From 0524def0ad57229629cf873aaf8949f71117822e Mon Sep 17 00:00:00 2001 From: Weckyy702 Date: Mon, 12 Jan 2026 11:23:10 +0100 Subject: [PATCH] WIP --- flake.lock | 49 +++++++++++++++++++ flake.nix | 33 +++++++++++++ home-manager/core.nix | 10 ++++ .../default.nix | 0 .../hyprland/default.nix | 0 .../hyprland/settings.nix | 0 .../zsh/default.nix | 0 .../zsh/p10k.zsh | 0 .../keith/{configuration.nix => default.nix} | 13 ++--- nixos-modules/apps.nix | 7 --- nixos-modules/desktop.nix | 2 - nixos-modules/devtools.nix | 22 --------- nixos/hypr.nix | 19 +++++++ nixos/zsh.nix | 4 ++ users/weckyy702/home.nix | 24 +++++++++ users/weckyy702/nixos.nix | 12 +++++ 16 files changed, 154 insertions(+), 41 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home-manager/core.nix rename {homemanager-modules => home-manager}/default.nix (100%) rename {homemanager-modules => home-manager}/hyprland/default.nix (100%) rename {homemanager-modules => home-manager}/hyprland/settings.nix (100%) rename {homemanager-modules => home-manager}/zsh/default.nix (100%) rename {homemanager-modules => home-manager}/zsh/p10k.zsh (100%) rename hosts/keith/{configuration.nix => default.nix} (87%) delete mode 100644 nixos-modules/apps.nix delete mode 100644 nixos-modules/desktop.nix delete mode 100644 nixos-modules/devtools.nix create mode 100644 nixos/hypr.nix create mode 100644 nixos/zsh.nix create mode 100644 users/weckyy702/home.nix create mode 100644 users/weckyy702/nixos.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..0e7fabc --- /dev/null +++ b/flake.lock @@ -0,0 +1,49 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767910483, + "narHash": "sha256-MOU5YdVu4DVwuT5ztXgQpPuRRBjSjUGIdUzOQr9iQOY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "82fb7dedaad83e5e279127a38ef410bcfac6d77c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "release-25.11", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1768028080, + "narHash": "sha256-50aDK+8eLvsLK39TzQhKNq50/HcXyP4hyxOYoPoVxjo=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d03088749a110d52a4739348f39a63f84bb0be14", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-25.11", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..75d171a --- /dev/null +++ b/flake.nix @@ -0,0 +1,33 @@ +{ + description = "Weckyy702's (hopefully nice) NixOS config"; + + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; + home-manager.url = "github:nix-community/home-manager/release-25.11"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + #TODO: nixvim, etc + }; + + outputs = { self, nixpkgs, home-manager, ... }@inputs: { + nixosConfigurations.keith = + let + hostname = "keith"; + username = "weckyy702"; + specialArgs = { inherit inputs; inherit hostname; inherit username; }; + in + nixpkgs.lib.nixosSystem { + inherit specialArgs; + modules = [ + ./hosts/keith + ./users/${username}/nixos.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + + home-manager.extraSpecialArgs = specialArgs; + home-manager.users.${username} = import ./users/${username}/home.nix; + } + ]; + }; + }; +} diff --git a/home-manager/core.nix b/home-manager/core.nix new file mode 100644 index 0000000..e9688bc --- /dev/null +++ b/home-manager/core.nix @@ -0,0 +1,10 @@ +{username, ...}: { + home = { + inherit username; + homeDirectory = "/home/${username}"; + + stateVersion = "25.11"; + }; + + programs.home-manager.enable = true; +} diff --git a/homemanager-modules/default.nix b/home-manager/default.nix similarity index 100% rename from homemanager-modules/default.nix rename to home-manager/default.nix diff --git a/homemanager-modules/hyprland/default.nix b/home-manager/hyprland/default.nix similarity index 100% rename from homemanager-modules/hyprland/default.nix rename to home-manager/hyprland/default.nix diff --git a/homemanager-modules/hyprland/settings.nix b/home-manager/hyprland/settings.nix similarity index 100% rename from homemanager-modules/hyprland/settings.nix rename to home-manager/hyprland/settings.nix diff --git a/homemanager-modules/zsh/default.nix b/home-manager/zsh/default.nix similarity index 100% rename from homemanager-modules/zsh/default.nix rename to home-manager/zsh/default.nix diff --git a/homemanager-modules/zsh/p10k.zsh b/home-manager/zsh/p10k.zsh similarity index 100% rename from homemanager-modules/zsh/p10k.zsh rename to home-manager/zsh/p10k.zsh diff --git a/hosts/keith/configuration.nix b/hosts/keith/default.nix similarity index 87% rename from hosts/keith/configuration.nix rename to hosts/keith/default.nix index 7bdfe76..560fd09 100644 --- a/hosts/keith/configuration.nix +++ b/hosts/keith/default.nix @@ -2,27 +2,22 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, ... }: +{ config, pkgs, inputs, hostname, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - ./../../nixos-modules/devtools.nix - ./../../nixos-modules/desktop.nix - ./../../nixos-modules/apps.nix - ./../../homemanager-modules - ]; + ]; # Bootloader. boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/nvme0n1"; - boot.loader.grub.useOSProber = true; # Use latest kernel. boot.kernelPackages = pkgs.linuxPackages_latest; - networking.hostName = "keith"; # Define your hostname. + networking.hostName = hostname; # Define your hostname. # Enable networking networking.networkmanager.enable = true; @@ -53,7 +48,6 @@ "nix-command" "flakes" ]; - nix.settings.trusted-users = [ "weckyy702" ]; # Allow unfree packages nixpkgs.config.allowUnfree = true; @@ -91,5 +85,4 @@ # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "25.11"; # Did you read the comment? - } diff --git a/nixos-modules/apps.nix b/nixos-modules/apps.nix deleted file mode 100644 index 0688525..0000000 --- a/nixos-modules/apps.nix +++ /dev/null @@ -1,7 +0,0 @@ -{config, pkgs, ... }: { - programs.steam = { - enable = true; - extest.enable = true; - protontricks.enable = true; - }; -} diff --git a/nixos-modules/desktop.nix b/nixos-modules/desktop.nix deleted file mode 100644 index 6d6cba7..0000000 --- a/nixos-modules/desktop.nix +++ /dev/null @@ -1,2 +0,0 @@ -{ config, pkgs, ...}: { -} diff --git a/nixos-modules/devtools.nix b/nixos-modules/devtools.nix deleted file mode 100644 index 303c57e..0000000 --- a/nixos-modules/devtools.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ config, pkgs, ...} : { - programs = { - neovim = { - enable = true; - defaultEditor = true; - }; - git = { - enable = true; - config = { - init = { - defaultBranch = "main"; - }; - }; - }; - ssh = { - enableAskPassword = true; - knownHosts = { - #TODO: gopher, ferris etc. - }; - }; - }; -} diff --git a/nixos/hypr.nix b/nixos/hypr.nix new file mode 100644 index 0000000..a8ec9ee --- /dev/null +++ b/nixos/hypr.nix @@ -0,0 +1,19 @@ +{pkgs, username, ...}: { + + # enable auto-login + #TODO: this should be optional + services.getty.autologinUser = username; + + programs.hyprland = { + enable = true; + xwayland.enable = true; + withUWSM = true; + }; + + programs.hyprlock.enable = true; + + environment.systemPackages = with pkgs; [ + kitty + hyprpaper + ]; +} diff --git a/nixos/zsh.nix b/nixos/zsh.nix new file mode 100644 index 0000000..8edbb2d --- /dev/null +++ b/nixos/zsh.nix @@ -0,0 +1,4 @@ +{pkgs, username, ...}: { + programs.zsh.enable = true; + users.users.${username}.shell = pkgs.zsh; +} diff --git a/users/weckyy702/home.nix b/users/weckyy702/home.nix new file mode 100644 index 0000000..57c2792 --- /dev/null +++ b/users/weckyy702/home.nix @@ -0,0 +1,24 @@ +# home-manager config for weckyy702 +{ pkgs, ...}: { + imports = [ + ../../home-manager/core.nix + + #TODO: user programs + ]; + + programs.zsh = { + enable = true; + + # For autologin + profileExtra = '' + if [ -z "$WAYLAND_DISPLAY" ] && [ "$XDG_VTNR" = 1]; then + exec uwsm start -S hyprland-uwsm.desktop + fi + ''; + }; + + programs.git.settings = { + name = "Weckyy702"; + email = "konstvelt@gmail.com"; + }; +} diff --git a/users/weckyy702/nixos.nix b/users/weckyy702/nixos.nix new file mode 100644 index 0000000..4802a0c --- /dev/null +++ b/users/weckyy702/nixos.nix @@ -0,0 +1,12 @@ +{pkgs, ...}: +{ + imports = [ + ../../nixos/zsh.nix + ../../nixos/hypr.nix + ]; + + users.users.weckyy702 = { + isNormalUser = true; + extraGroups = [ "networkmanager" "wheel" ]; + }; +}