diff --git a/common/desktop-node.nix b/common/desktop-node.nix index ce19400..82468a7 100644 --- a/common/desktop-node.nix +++ b/common/desktop-node.nix @@ -27,12 +27,6 @@ pulse.enable = true; }; - # XDG portal for screen sharing, file pickers, etc. - xdg.portal = { - enable = true; - extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; - }; - # Fonts fonts.packages = with pkgs; [ noto-fonts @@ -43,23 +37,8 @@ fira-code-symbols ]; - # Enable greetd with tuigreet for login - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.writeText "sessions" '' - Hyprland:Hyprland - Console:fish - ''}"; - user = "greeter"; - }; - }; - }; - # Environment variables for Wayland environment.sessionVariables = { NIXOS_OZONE_WL = "1"; # Hint electron apps to use Wayland - WLR_NO_HARDWARE_CURSORS = "1"; # Fix cursor rendering on some hardware }; } diff --git a/flake.lock b/flake.lock index b20ccbf..c380c1b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,58 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "omarchy-nix", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "omarchy-nix", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753216019, + "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "be166e11d86ba4186db93e10c54a141058bdce49", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, + "base16-schemes": { + "flake": false, + "locked": { + "lastModified": 1696158499, + "narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=", + "owner": "tinted-theming", + "repo": "base16-schemes", + "rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-schemes", + "type": "github" + } + }, "browser-previews": { "inputs": { "flake-utils": "flake-utils", @@ -144,6 +197,22 @@ "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": "nixpkgs-lib" @@ -269,6 +338,29 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -290,6 +382,287 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "omarchy-nix", + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "omarchy-nix", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1754305013, + "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-protocols": "hyprland-protocols", + "hyprland-qtutils": "hyprland-qtutils", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems_6", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1755184403, + "narHash": "sha256-VI+ZPD/uIFjzYW8IcyvBgvwyDIvUe4/xh/kOHTbITX8=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "60d769a89908c29e19100059985db15a7b6bab6a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1749046714, + "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "omarchy-nix", + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1749154592, + "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, + "hyprland-qtutils": { + "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "omarchy-nix", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "omarchy-nix", + "hyprland", + "hyprland-qtutils", + "hyprlang", + "hyprutils" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753819801, + "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qtutils", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "omarchy-nix", + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753622892, + "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1754481650, + "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1751897909, + "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, "impermanence": { "locked": { "lastModified": 1737831083, @@ -333,6 +706,25 @@ "type": "github" } }, + "nix-colors": { + "inputs": { + "base16-schemes": "base16-schemes", + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1707825078, + "narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=", + "owner": "misterio77", + "repo": "nix-colors", + "rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1", + "type": "github" + }, + "original": { + "owner": "misterio77", + "repo": "nix-colors", + "type": "github" + } + }, "nix-index-database": { "inputs": { "nixpkgs": [ @@ -384,6 +776,21 @@ "type": "github" } }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1697935651, + "narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs-unstable": { "locked": { "lastModified": 1760872779, @@ -416,6 +823,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1754725699, + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts_2", @@ -462,6 +885,55 @@ "type": "github" } }, + "omarchy-nix": { + "inputs": { + "home-manager": [ + "home-manager" + ], + "hyprland": "hyprland", + "nix-colors": "nix-colors", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760558991, + "narHash": "sha256-E8MMVwy7QNURBtCLiCjFXfv7uZUEg6QVSZLu4q9YGpk=", + "owner": "henrysipp", + "repo": "omarchy-nix", + "rev": "fba993c589920fbe68d9f7918e52903c476adad2", + "type": "github" + }, + "original": { + "owner": "henrysipp", + "repo": "omarchy-nix", + "type": "github" + } + }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat_3", + "gitignore": "gitignore", + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1754416808, + "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "browser-previews": "browser-previews", @@ -474,6 +946,7 @@ "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable_2", "nixvim": "nixvim", + "omarchy-nix": "omarchy-nix", "sops-nix": "sops-nix" } }, @@ -572,6 +1045,21 @@ "type": "github" } }, + "systems_6": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" + } + }, "treefmt-nix": { "inputs": { "nixpkgs": [ @@ -610,6 +1098,53 @@ "repo": "flake-utils", "type": "github" } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "omarchy-nix", + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "omarchy-nix", + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "omarchy-nix", + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "omarchy-nix", + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "omarchy-nix", + "hyprland", + "nixpkgs" + ], + "systems": [ + "omarchy-nix", + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1753633878, + "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 1c2d989..51395a5 100644 --- a/flake.nix +++ b/flake.nix @@ -33,6 +33,11 @@ url = "github:nix-community/browser-previews"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + omarchy-nix = { + url = "github:henrysipp/omarchy-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.home-manager.follows = "home-manager"; + }; }; outputs = @@ -47,6 +52,7 @@ impermanence, sops-nix, browser-previews, + omarchy-nix, ... }@inputs: let @@ -82,8 +88,15 @@ disko.nixosModules.disko sops-nix.nixosModules.sops impermanence.nixosModules.impermanence + omarchy-nix.nixosModules.default home-manager.nixosModules.home-manager { + omarchy = { + full_name = "Petru Paler"; + email_address = "petru@paler.net"; + theme = "tokyo-night"; + monitors = [ "DP-1,preferred,auto,1.5" ]; + }; home-manager = { useGlobalPkgs = true; useUserPackages = true; @@ -92,6 +105,7 @@ (inputs.impermanence + "/home-manager.nix") inputs.nix-index-database.homeModules.nix-index inputs.nixvim.homeModules.nixvim + omarchy-nix.homeManagerModules.default ./home ]; }; diff --git a/home/programs/desktop.nix b/home/programs/desktop.nix index 41d76d9..27cde08 100644 --- a/home/programs/desktop.nix +++ b/home/programs/desktop.nix @@ -2,83 +2,15 @@ { imports = [ ./workstation.nix ]; - # Hyprland window manager configuration wayland.windowManager.hyprland = { enable = true; settings = { - monitor = "DP-1,preferred,auto,1.5"; - # Remap CapsLock to Super (Mod4) "$mod" = "SUPER"; input = { kb_options = "caps:super"; - follow_mouse = 1; - sensitivity = 0; }; - - master = { - new_status = "master"; - }; - - # Key bindings - bind = [ - # Application launchers - "$mod, Q, exec, foot" - "$mod, D, exec, wofi --show drun" - "$mod SHIFT, D, exec, wofi --show run" - "$mod, C, killactive," - "$mod SHIFT, E, exit," - "$mod, V, togglefloating," - "$mod, P, pseudo," - "$mod, J, togglesplit," - - # Move focus with mod + arrow keys - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" - - # Move focus with mod + hjkl (vim-style) - "$mod, h, movefocus, l" - "$mod, l, movefocus, r" - "$mod, k, movefocus, u" - "$mod, j, movefocus, d" - - # Switch workspaces with mod + [0-9] - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" - - # Move active window to a workspace with mod + SHIFT + [0-9] - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - "$mod SHIFT, 0, movetoworkspace, 10" - - # Scroll through existing workspaces with mod + scroll - "$mod, mouse_down, workspace, e+1" - "$mod, mouse_up, workspace, e-1" - ]; - - # Mouse bindings - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; }; }; } diff --git a/hosts/sparky/default.nix b/hosts/sparky/default.nix index 54e71f6..f6e8a49 100644 --- a/hosts/sparky/default.nix +++ b/hosts/sparky/default.nix @@ -1,4 +1,4 @@ -{ pkgs, inputs, ... }: +{ pkgs, inputs, lib, ... }: { imports = [ ../../common/encrypted-btrfs-layout.nix @@ -16,5 +16,7 @@ }; networking.hostName = "sparky"; + # enabled by omarchy-nix, conflicts with useDHCP + networking.networkmanager.enable = lib.mkForce false; services.tailscaleAutoconnect.authkey = "tskey-auth-kBCKN7QNv411CNTRL-n5Td7Jw7h3TAjubEeLmy1THy33JvD9JnM"; }