From 72fda87328ea78f34f7c47c4466e0849de009531 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Tue, 28 Oct 2025 09:54:37 +0100 Subject: [PATCH] flake-parts: yggdrasil done --- flake.lock | 17 --- flake.nix | 8 +- modules/base/kitty.nix | 2 +- modules/base/network/default.nix | 9 -- modules/base/system/default.nix | 2 - modules/base/system/nixdaemon.nix | 10 +- modules/desktop/hyprland.nix | 36 +++--- modules/desktop/niri.nix | 164 +++++++++++++++++++++++++++- modules/hosts/yggdrasil/default.nix | 30 ++++- modules/users/cholli/default.nix | 8 +- 10 files changed, 228 insertions(+), 58 deletions(-) diff --git a/flake.lock b/flake.lock index f40b388..df93dd9 100644 --- a/flake.lock +++ b/flake.lock @@ -1276,22 +1276,6 @@ "type": "github" } }, - "nixpkgs-tuya-vacuum": { - "locked": { - "lastModified": 1743180016, - "narHash": "sha256-REuNO+d3gTjk+03wZEcwCvXZNQGbb0nv44gwoLMTj4Q=", - "owner": "Daholli", - "repo": "nixpkgs", - "rev": "84b34e39e7a0879367189f34401191f6a0364bcf", - "type": "github" - }, - "original": { - "owner": "Daholli", - "repo": "nixpkgs", - "rev": "84b34e39e7a0879367189f34401191f6a0364bcf", - "type": "github" - } - }, "nixpkgs-unstable": { "locked": { "lastModified": 1761373498, @@ -1450,7 +1434,6 @@ "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs_3", "nixpkgs-latest-factorio": "nixpkgs-latest-factorio", - "nixpkgs-tuya-vacuum": "nixpkgs-tuya-vacuum", "nixpkgs-unstable": "nixpkgs-unstable", "simple-nixos-mailserver": "simple-nixos-mailserver", "sops-nix": "sops-nix", diff --git a/flake.nix b/flake.nix index 4f704c1..ffbe81b 100644 --- a/flake.nix +++ b/flake.nix @@ -16,8 +16,10 @@ import-tree.url = "github:vic/import-tree"; treefmt-nix.url = "github:numtide/treefmt-nix"; + catppuccin.url = "github:catppuccin/nix"; + sops-nix.url = "github:Mic92/sops-nix"; + nixpkgs-latest-factorio.url = "github:Daholli/nixpkgs/e880129391be2f558d6c205cfd931be338b3b707"; - nixpkgs-tuya-vacuum.url = "github:Daholli/nixpkgs/84b34e39e7a0879367189f34401191f6a0364bcf"; home-manager = { url = "github:nix-community/home-manager/master"; @@ -90,13 +92,9 @@ flake = false; }; - sops-nix.url = "github:Mic92/sops-nix"; - - ## temporary zen-browser.url = "github:0xc000022070/zen-browser-flake"; simple-nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver"; - catppuccin.url = "github:catppuccin/nix"; ################ ## inputs for dev shells diff --git a/modules/base/kitty.nix b/modules/base/kitty.nix index 810b609..2145448 100644 --- a/modules/base/kitty.nix +++ b/modules/base/kitty.nix @@ -7,8 +7,8 @@ home.packages = [ pkgs.kitty - pkgs.xfce.thunar ]; + home.sessionVariables.TERMINAL = "kitty"; home.file.".config/Thunar/uca.xml".text = '' diff --git a/modules/base/network/default.nix b/modules/base/network/default.nix index 9e31b67..f806c0e 100644 --- a/modules/base/network/default.nix +++ b/modules/base/network/default.nix @@ -9,14 +9,5 @@ enable = true; }; }; - - # systemd = { - # services.NetworkManager-wait-online.enable = false; - # network.wait-online.enable = false; - # }; - - services.resolved = { - enable = true; - }; }; } diff --git a/modules/base/system/default.nix b/modules/base/system/default.nix index dd2c164..733c1c2 100644 --- a/modules/base/system/default.nix +++ b/modules/base/system/default.nix @@ -13,7 +13,6 @@ { imports = [ inputs.sops-nix.homeManagerModules.sops - inputs.catppuccin.homeModules.catppuccin ]; home = { @@ -31,7 +30,6 @@ { imports = [ inputs.sops-nix.nixosModules.sops - inputs.catppuccin.nixosModules.catppuccin ]; environment.systemPackages = with pkgs; [ diff --git a/modules/base/system/nixdaemon.nix b/modules/base/system/nixdaemon.nix index 8eb56a9..826c6e5 100644 --- a/modules/base/system/nixdaemon.nix +++ b/modules/base/system/nixdaemon.nix @@ -11,12 +11,18 @@ username = "cholli"; in { + imports = [ inputs.nix-ld.nixosModules.nix-ld ]; + environment.systemPackages = with pkgs; [ nixfmt-rfc-style nix-prefetch-git - nix-index + nix-output-monitor + + nix-du + nix-weather + nix-index ]; programs.nh = { @@ -26,6 +32,8 @@ }; nix = { + package = pkgs.lix; + settings = let users = [ diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix index 501d408..2aef42e 100644 --- a/modules/desktop/hyprland.nix +++ b/modules/desktop/hyprland.nix @@ -255,28 +255,28 @@ "$mod CTRL, right, movecurrentworkspacetomonitor, r" # move focus - "$mod, h, hy3:movefocus, l" - "$mod, j, hy3:movefocus, d" - "$mod, k, hy3:movefocus, u" - "$mod, l, hy3:movefocus, r" - "$mod, left, hy3:movefocus, l" - "$mod, down, hy3:movefocus, d" - "$mod, up, hy3:movefocus, u" - "$mod, right, hy3:movefocus, r" + "$mod, h, movefocus, l" + "$mod, j, movefocus, d" + "$mod, k, movefocus, u" + "$mod, l, movefocus, r" + "$mod, left, movefocus, l" + "$mod, down, movefocus, d" + "$mod, up, movefocus, u" + "$mod, right, movefocus, r" # move focus - "$mod SHIFT, h, hy3:movewindow, l, once" - "$mod SHIFT, j, hy3:movewindow, d, once" - "$mod SHIFT, k, hy3:movewindow, u, once" - "$mod SHIFT, l, hy3:movewindow, r, once" - "$mod SHIFT, left, hy3:movewindow, l, once" - "$mod SHIFT, down, hy3:movewindow, d, once" - "$mod SHIFT, up, hy3:movewindow, u, once" - "$mod SHIFT, right, hy3:movewindow, r, once" + "$mod SHIFT, h, movewindow, l, once" + "$mod SHIFT, j, movewindow, d, once" + "$mod SHIFT, k, movewindow, u, once" + "$mod SHIFT, l, movewindow, r, once" + "$mod SHIFT, left, movewindow, l, once" + "$mod SHIFT, down, movewindow, d, once" + "$mod SHIFT, up, movewindow, u, once" + "$mod SHIFT, right, movewindow, r, once" #run important programs "$mod, Return, exec, kitty" - "$mod, D, exec, rofi -show drun" + "$mod, D, exec, fuzzel" "$mod, P, exec, focus-or-open-1pass" # "$mod, D, exec, rofi -show combi" @@ -294,7 +294,7 @@ in [ "$mod, code:1${toString i}, workspace, ${toString ws}" - "$mod SHIFT, code:1${toString i}, hy3:movetoworkspace, ${toString ws}" + "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}" ] ) 9 ) diff --git a/modules/desktop/niri.nix b/modules/desktop/niri.nix index a0d81f3..d6efbbe 100644 --- a/modules/desktop/niri.nix +++ b/modules/desktop/niri.nix @@ -1,3 +1,165 @@ { - flake.modules.nixos.niri = { ... }: { }; + flake.modules = { + nixos.niri = + { inputs, pkgs, ... }: + { + imports = [ + inputs.niri-flake.nixosModules.niri + ]; + + programs.niri = { + enable = true; + package = inputs.niri-flake.packages.${pkgs.system}.niri-unstable; + }; + + environment.systemPackages = [ + pkgs.alacritty + pkgs.fuzzel + ]; + }; + + homeManager.cholli = + { + config, + inputs, + lib, + osConfig, + pkgs, + ... + }: + { + config = lib.mkIf osConfig.programs.niri.enable { + programs.niri.settings = { + input = { + keyboard = { + numlock = true; + }; + }; + + outputs."DP-1" = { + mode = { + width = 3440; + height = 1440; + }; + }; + outputs."HDMI-A-1" = { + mode = { + width = 1920; + height = 1080; + }; + transform.rotation = 90; + }; + + layout = { + gaps = 5; + center-focused-column = "never"; + + default-column-width = { + proportion = 0.5; + }; + + preset-column-widths = [ + { proportion = 1. / 3.; } + { proportion = 1. / 2.; } + { proportion = 2. / 3.; } + + ]; + + focus-ring = { + width = 1; + active = { + color = "#7fc8ff"; + }; + inactive = { + color = "#505050"; + }; + }; + }; + + hotkey-overlay.skip-at-startup = true; + + screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"; + + # block 1pass from screenshots and window capture + window-rules = [ + ]; + + binds = + with config.lib.niri; + let + workspaces = (builtins.genList (x: x + 1) 9); + + focus-workspaces = builtins.listToAttrs ( + map (num: { + name = "Mod+${toString num}"; + value = { + action.focus-workspace = num; + }; + }) workspaces + ); + in + + lib.mkMerge [ + { + "Mod+Shift+Slash".action = actions.show-hotkey-overlay; + + "Mod+Return".action.spawn = "${lib.getExe pkgs.kitty}"; + "Mod+D".action.spawn = "${lib.getExe pkgs.fuzzel}"; + "Mod+Alt+L".action.spawn = "hyprlock-blur"; + + "Mod+Shift+Q" = { + action = actions.close-window; + repeat = false; + }; + + "Mod+O" = { + action = actions.toggle-overview; + repeat = false; + }; + + "XF86AudioRaiseVolume" = { + action.spawn = [ + "wpctl" + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.1+" + ]; + allow-when-locked = true; + }; + "XF86AudioLowerVolume" = { + action.spawn = [ + "wpctl" + "set-volume" + "@DEFAULT_AUDIO_SINK@" + "0.1-" + ]; + allow-when-locked = true; + }; + "XF86AudioMute" = { + action.spawn = [ + "wpctl" + "set-mute" + "@DEFAULT_AUDIO_SINK@" + "toggle" + ]; + allow-when-locked = true; + }; + "XF86AudioMicMute" = { + action.spawn = [ + "wpctl" + "set-mute" + "@DEFAULT_AUDIO_SOURCE@" + "toggle" + ]; + allow-when-locked = true; + }; + } + focus-workspaces + ]; + + }; + + }; + }; + }; } diff --git a/modules/hosts/yggdrasil/default.nix b/modules/hosts/yggdrasil/default.nix index d08d755..5d2b45d 100644 --- a/modules/hosts/yggdrasil/default.nix +++ b/modules/hosts/yggdrasil/default.nix @@ -6,7 +6,12 @@ let in { flake.modules.nixos."hosts/yggdrasil" = - { lib, pkgs, ... }: + { + inputs, + lib, + pkgs, + ... + }: { nixpkgs.config.allowUnfree = true; @@ -19,7 +24,18 @@ in diebahn path-of-building + bottles + + # to be removed + kdePackages.bluez-qt + zed-editor + seahorse + font-manager + vesktop + rofi-unwrapped ]; + # to be removed + virtualisation.waydroid.enable = true; services.teamviewer.enable = true; environment.pathsToLink = [ "/libexec" ]; @@ -31,6 +47,11 @@ in imports = with config.flake.modules.nixos; [ + inputs.nixos-hardware.nixosModules.common-cpu-amd + inputs.nixos-hardware.nixosModules.common-pc + inputs.nixos-hardware.nixosModules.common-pc-ssd + inputs.catppuccin.nixosModules.catppuccin + # System modules base dev @@ -44,6 +65,7 @@ in # dektops hyprland + niri # apps _1password @@ -55,6 +77,9 @@ in { home-manager.users.cholli = { imports = with config.flake.modules.homeManager; [ + inputs.catppuccin.homeModules.catppuccin + + # components base dev @@ -106,8 +131,6 @@ in }; - services.fstrim.enable = true; - fileSystems = { "/" = { device = "/dev/disk/by-uuid/b1a956f4-91d5-456e-a92b-be505bb719bd"; @@ -144,6 +167,7 @@ in ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.enableRedistributableFirmware = true; hardware.cpu.amd.updateMicrocode = true; }; } diff --git a/modules/users/cholli/default.nix b/modules/users/cholli/default.nix index c98b79e..5e3a14d 100644 --- a/modules/users/cholli/default.nix +++ b/modules/users/cholli/default.nix @@ -47,7 +47,7 @@ }; homeManager.cholli = - { ... }: + { pkgs, ... }: let defaultIconFileName = "profile.png"; in @@ -64,6 +64,12 @@ ".face".source = ./${defaultIconFileName}; "Pictures/${defaultIconFileName}".source = ./${defaultIconFileName}; }; + + packages = with pkgs; [ graphviz ]; + shellAliases = { + nixsize = "nix-du -n=50 | dot -Tsvg > ~/Pictures/store.svg"; + }; + }; }; };