diff --git a/flake.lock b/flake.lock index c083532..9ee7b0c 100644 --- a/flake.lock +++ b/flake.lock @@ -33,7 +33,28 @@ "type": "github" } }, - "helium": { + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nixvim", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1785627969, + "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "helium-browser": { "inputs": { "nixpkgs": [ "nixpkgs" @@ -42,11 +63,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1785641213, - "narHash": "sha256-V9HKF0TynM6AI1sTuClNFIyr0wIwC82zNQymJs7Ldlk=", + "lastModified": 1788065178, + "narHash": "sha256-ADzuZ/MqrdJOMucTux5j0QMxo0YnCHLxuZAYlK/wxPE=", "owner": "schembriaiden", "repo": "helium-browser-nix-flake", - "rev": "141470984a71fb22f1266fca6773d2a4d0991468", + "rev": "f1250fd4dcd8f22cb3d8aa1e8e00f56cc947e795", "type": "github" }, "original": { @@ -109,11 +130,11 @@ }, "nixpkgs-darwin": { "locked": { - "lastModified": 1785067121, - "narHash": "sha256-rdJdWxAcg5fnntU4DjPivPdVEN4F+VJavw+UWpEMeUI=", + "lastModified": 1787940818, + "narHash": "sha256-vFzVv78WlyEbTyV5BbrnicnV159wC0YPOcBe3QagyBI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "329c3d2af6d1b618705150ea39f72c15eb4e613e", + "rev": "f6107e546a5012172d93e79f1f7950da02ad798f", "type": "github" }, "original": { @@ -154,15 +175,39 @@ "type": "github" } }, + "nixvim": { + "inputs": { + "flake-parts": "flake-parts_2", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems_2" + }, + "locked": { + "lastModified": 1787536726, + "narHash": "sha256-aBh5Yk9tX8ZV4k10BJr2fvTq0/+iWGegaCMUOU7YKas=", + "owner": "nix-community", + "repo": "nixvim", + "rev": "e2c3f9f36326d07340626847543c557e2b95fb50", + "type": "github" + }, + "original": { + "owner": "nix-community", + "ref": "nixos-26.05", + "repo": "nixvim", + "type": "github" + } + }, "root": { "inputs": { "flake-file": "flake-file", "flake-parts": "flake-parts", - "helium": "helium", + "helium-browser": "helium-browser", "home-manager": "home-manager", "import-tree": "import-tree", "nixpkgs": "nixpkgs", - "nixpkgs-unstable": "nixpkgs-unstable" + "nixpkgs-unstable": "nixpkgs-unstable", + "nixvim": "nixvim" } }, "systems": { @@ -180,6 +225,21 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "utils": { "inputs": { "systems": "systems" diff --git a/flake.nix b/flake.nix index e7a489c..3357f20 100644 --- a/flake.nix +++ b/flake.nix @@ -7,7 +7,7 @@ # NixOS official package source, using the nixos-26.05 branch here nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; - helium = { + helium-browser = { url = "github:schembriaiden/helium-browser-nix-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -15,6 +15,10 @@ url = "github:nix-community/home-manager/release-26.05"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixvim = { + url = "github:nix-community/nixvim/nixos-26.05"; + inputs.nixpkgs.follows = "nixpkgs"; + }; flake-parts.url = "github:hercules-ci/flake-parts"; flake-file.url = "github:vic/flake-file"; import-tree.url = "github:vic/import-tree"; diff --git a/modules/hosts/nixos-desktop/nixos-desktop.nix b/modules/hosts/nixos-desktop/nixos-desktop.nix new file mode 100644 index 0000000..6192a53 --- /dev/null +++ b/modules/hosts/nixos-desktop/nixos-desktop.nix @@ -0,0 +1,12 @@ +{ inputs, ... }: { + flake.modules.nixos.nixos-desktop = { + imports = + with inputs.self.modules.nixos; + with inputs.self.factory; + [ + system-desktop + systemd-boot + i18n-de + ]; + }; +} diff --git a/modules/nix/tools/home-manager.nix b/modules/nix/tools/home-manager.nix index 14629af..1cd5ccb 100644 --- a/modules/nix/tools/home-manager.nix +++ b/modules/nix/tools/home-manager.nix @@ -20,6 +20,7 @@ home-manager = { verbose = true; useGlobalPkgs = true; + backupFileExtension = "backup"; }; }; } diff --git a/modules/programs/browser.nix b/modules/programs/browser.nix new file mode 100644 index 0000000..d60e8cb --- /dev/null +++ b/modules/programs/browser.nix @@ -0,0 +1,13 @@ +{ inputs, ... }: { + flake-file.inputs = { + helium-browser = { + url = "github:schembriaiden/helium-browser-nix-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + flake.modules.nixos.browser = { pkgs, ... }: { + environment.systemPackages = [ + inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.default + ]; + }; +} diff --git a/modules/programs/git.nix b/modules/programs/git.nix new file mode 100644 index 0000000..95c99f1 --- /dev/null +++ b/modules/programs/git.nix @@ -0,0 +1,5 @@ +{ + flake.modules.nixos.git = { pkgs, ... }: { + environment.systemPackages = [ pkgs.git ]; + }; +} diff --git a/modules/programs/nixvim/nixvim.nix b/modules/programs/nixvim/nixvim.nix new file mode 100644 index 0000000..32a3b7b --- /dev/null +++ b/modules/programs/nixvim/nixvim.nix @@ -0,0 +1,18 @@ +{ inputs, ... }: { + flake-file.inputs = { + nixvim.url = "github:nix-community/nixvim/nixos-26.05"; + nixvim.inputs.nixpkgs.follows = "nixpkgs"; + }; + + flake.modules.homeManager.nixvim = { + imports = [ + inputs.nixvim.homeModules.nixvim + ]; + + programs.nixvim = { + enable = true; + }; + + home.sessionVariables.EDITOR = "nvim"; + }; +} diff --git a/modules/programs/zsh/zsh.nix b/modules/programs/zsh/zsh.nix new file mode 100644 index 0000000..14b0543 --- /dev/null +++ b/modules/programs/zsh/zsh.nix @@ -0,0 +1,29 @@ +{ inputs, ... }: +{ + flake.modules.nixos.zsh = { + programs.zsh.enable = true; + + environment.pathsToLink = [ "/share/zsh" ]; + }; + + flake.modules.homeManager.zsh = { pkgs, ... }: { + imports = with inputs.self.modules.homeManager; [ + ]; + + programs.zsh = { + enable = true; + + autocd = true; + enableCompletion = true; + autosuggestion.enable = true; + syntaxHighlighting.enable = true; + + oh-my-zsh = { + enable = true; + plugins = [ + "git" + ]; + }; + }; + }; +} diff --git a/modules/services/pipewire.nix b/modules/services/pipewire.nix new file mode 100644 index 0000000..2d68202 --- /dev/null +++ b/modules/services/pipewire.nix @@ -0,0 +1,11 @@ +{ + flake.modules.nixos.pipewire = { + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + }; + }; +} diff --git a/modules/system-settings/amd-gpu.nix b/modules/system-settings/amd-gpu.nix new file mode 100644 index 0000000..32a9b3f --- /dev/null +++ b/modules/system-settings/amd-gpu.nix @@ -0,0 +1,5 @@ +{ + flake.modules.nixos.amd-gpu = { pkgs, ... }: { + boot.kernelModules = [ "kvm-amd" ]; + }; +} diff --git a/modules/system-settings/i18n-de.nix b/modules/system-settings/i18n-de.nix new file mode 100644 index 0000000..f7a7a60 --- /dev/null +++ b/modules/system-settings/i18n-de.nix @@ -0,0 +1,21 @@ +{ + flake.modules.nixos.i18n-de = { + time.timeZone = "Europe/Berlin"; + + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocales = [ "ja_JP.UTF-8/UTF-8" ]; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + console.keyMap = "de"; + }; +} diff --git a/modules/system-settings/linux-latest.nix b/modules/system-settings/linux-latest.nix new file mode 100644 index 0000000..a485605 --- /dev/null +++ b/modules/system-settings/linux-latest.nix @@ -0,0 +1,5 @@ +{ + flake.modules.nixos.linux-latest = { pkgs, ... }: { + # boot.kernelPackages.pkgs.linuxPackages_latest; + }; +} diff --git a/modules/system-settings/systemd-boot.nix b/modules/system-settings/systemd-boot.nix new file mode 100644 index 0000000..4712752 --- /dev/null +++ b/modules/system-settings/systemd-boot.nix @@ -0,0 +1,6 @@ +{ + flake.modules.nixos.systemd-boot = { + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + }; +} diff --git a/modules/system-types/desktop/desktop.nix b/modules/system-types/desktop/desktop.nix index 059436b..ea1524c 100644 --- a/modules/system-types/desktop/desktop.nix +++ b/modules/system-types/desktop/desktop.nix @@ -4,6 +4,7 @@ system-base hyprland pipewire + browser ]; home-manager.sharedModules = [ @@ -12,13 +13,14 @@ }; flake.modules.homeManager.system-desktop = { - imports = with inputs.self.modules.homeManager; [ - system-base + imports = + with inputs.self.modules.homeManager; + [ + system-base - kitty + kitty - browser - zsh - ]; + zsh + ]; }; } diff --git a/modules/users/snurm/snurm.nix b/modules/users/snurm/snurm.nix index e602f15..82d7345 100644 --- a/modules/users/snurm/snurm.nix +++ b/modules/users/snurm/snurm.nix @@ -27,6 +27,7 @@ imports = with self.modules.homeManager; [ snurm-git btop + nixvim ]; }; }