From 28cb840ca15077ddb1d0038e4b30753e96bc8ef4 Mon Sep 17 00:00:00 2001 From: Alex van de Sandt Date: Mon, 11 May 2026 17:10:28 -0500 Subject: [PATCH] Add hyprland aspects --- flake.lock | 474 +++++++++++++++++++++++++++++++++- flake.nix | 4 + modules/dendritic.nix | 4 + modules/hyprland/hyprland.nix | 36 +++ modules/hyprland/settings.nix | 245 ++++++++++++++++++ modules/kitty.nix | 43 +++ modules/users/igneous.nix | 2 + modules/vm.nix | 6 +- 8 files changed, 810 insertions(+), 4 deletions(-) create mode 100644 modules/hyprland/hyprland.nix create mode 100644 modules/hyprland/settings.nix create mode 100644 modules/kitty.nix diff --git a/flake.lock b/flake.lock index cfdabd2..deb86da 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,38 @@ { "nodes": { + "aquamarine": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777499565, + "narHash": "sha256-nU55VWk99Pn1QzQDDjFISocC4SgDZ3Xp+zb6ji3JclM=", + "owner": "hyprwm", + "repo": "aquamarine", + "rev": "813c1e8981893c11e118b19c125d6bc282f51765", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "aquamarine", + "type": "github" + } + }, "den": { "locked": { "lastModified": 1778511985, @@ -15,6 +48,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1767039857, + "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", + "owner": "NixOS", + "repo": "flake-compat", + "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "flake-compat", + "type": "github" + } + }, "flake-file": { "locked": { "lastModified": 1777679829, @@ -71,6 +120,28 @@ "type": "github" } }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "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": [ @@ -91,6 +162,327 @@ "type": "github" } }, + "hyprcursor": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776511930, + "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", + "owner": "hyprwm", + "repo": "hyprcursor", + "rev": "39435900785d0c560c6ae8777d29f28617d031ef", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprcursor", + "type": "github" + } + }, + "hyprgraphics": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776426399, + "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", + "owner": "hyprwm", + "repo": "hyprgraphics", + "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprgraphics", + "type": "github" + } + }, + "hyprland": { + "inputs": { + "aquamarine": "aquamarine", + "hyprcursor": "hyprcursor", + "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", + "hyprland-protocols": "hyprland-protocols", + "hyprlang": "hyprlang", + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "hyprwire": "hyprwire", + "nixpkgs": [ + "nixpkgs" + ], + "pre-commit-hooks": "pre-commit-hooks", + "systems": "systems", + "xdph": "xdph" + }, + "locked": { + "lastModified": 1778504983, + "narHash": "sha256-F70mt2snAYPobaMEEGRJmCqOmqU/zDM31HldpMUIWi0=", + "owner": "hyprwm", + "repo": "Hyprland", + "rev": "5e441cae538c9396f2ee30338419bec12969608c", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "Hyprland", + "type": "github" + } + }, + "hyprland-guiutils": { + "inputs": { + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1776426575, + "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "rev": "a968d211048e3ed538e47b84cb3649299578f19d", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-guiutils", + "type": "github" + } + }, + "hyprland-protocols": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1772460177, + "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", + "owner": "hyprwm", + "repo": "hyprland-protocols", + "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-protocols", + "type": "github" + } + }, + "hyprlang": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777320127, + "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", + "owner": "hyprwm", + "repo": "hyprlang", + "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprlang", + "type": "github" + } + }, + "hyprtoolkit": { + "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprland-guiutils", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "hyprland-guiutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-guiutils", + "systems" + ] + }, + "locked": { + "lastModified": 1772462885, + "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", + "owner": "hyprwm", + "repo": "hyprtoolkit", + "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprtoolkit", + "type": "github" + } + }, + "hyprutils": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1778234770, + "narHash": "sha256-jAcsogZwWMfXT9MfXxZzkwliAqIuZUV0p71h6Ba9ReE=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "a2dbd8a4cc51f7cbe4224732668392bb1aa79df2", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777159683, + "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwire": { + "inputs": { + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777388329, + "narHash": "sha256-40YxVGF2rA9iH3D7am5fy4EOSBbMgpJtJ9yhl0Cx+qI=", + "owner": "hyprwm", + "repo": "hyprwire", + "rev": "04be2897e05f9b271d532b5ae56ca088d2eeac02", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwire", + "type": "github" + } + }, "import-tree": { "locked": { "lastModified": 1773693634, @@ -125,7 +517,7 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1778510615, @@ -141,18 +533,57 @@ "type": "github" } }, + "pre-commit-hooks": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": [ + "hyprland", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1776796298, + "narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "root": { "inputs": { "den": "den", "flake-file": "flake-file", "flake-parts": "flake-parts", "home-manager": "home-manager", + "hyprland": "hyprland", "import-tree": "import-tree", "nixpkgs": "nixpkgs", "nixvim": "nixvim" } }, "systems": { + "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" + } + }, + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -166,6 +597,47 @@ "repo": "default", "type": "github" } + }, + "xdph": { + "inputs": { + "hyprland-protocols": [ + "hyprland", + "hyprland-protocols" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" + ], + "nixpkgs": [ + "hyprland", + "nixpkgs" + ], + "systems": [ + "hyprland", + "systems" + ] + }, + "locked": { + "lastModified": 1777585783, + "narHash": "sha256-JTeWRy42VElroJ0rVdZuVXSoTLsx+NzQfGPKMbtn3SU=", + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "rev": "fa50d6fbaff8f42c61071b87b034a90d82a33558", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "xdg-desktop-portal-hyprland", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 6b25dac..17204a5 100644 --- a/flake.nix +++ b/flake.nix @@ -14,6 +14,10 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + hyprland = { + url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; import-tree.url = "github:vic/import-tree"; nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; nixvim = { diff --git a/modules/dendritic.nix b/modules/dendritic.nix index 50564f5..064cd5f 100644 --- a/modules/dendritic.nix +++ b/modules/dendritic.nix @@ -13,6 +13,10 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + hyprland = { + url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/hyprland/hyprland.nix b/modules/hyprland/hyprland.nix new file mode 100644 index 0000000..e5de8f1 --- /dev/null +++ b/modules/hyprland/hyprland.nix @@ -0,0 +1,36 @@ +{ den, inputs, ... }: +let + hyprland = inputs.hyprland; +in +{ + den.aspects.hyprland = { + includes = [ + den.aspects.kitty + + den.aspects.hyprland.settings + ]; + + nixos = + { pkgs, ... }: + { + # Enable hyprland + programs.hyprland = { + enable = true; + package = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; + portalPackage = hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; + xwayland.enable = true; + withUWSM = true; + }; + }; + + homeManager = { + xdg.portal.config.common.default = "*"; + + wayland.windowManager.hyprland = { + enable = true; + package = null; + systemd.enable = true; + }; + }; + }; +} diff --git a/modules/hyprland/settings.nix b/modules/hyprland/settings.nix new file mode 100644 index 0000000..c7ce8d4 --- /dev/null +++ b/modules/hyprland/settings.nix @@ -0,0 +1,245 @@ +{ + den.aspects.hyprland.settings = { + homeManager.wayland.windowManager.hyprland = { + settings = { + # monitor settings https://wiki.hypr.land/0.54.0/Configuring/Monitors/ + # TODO: separate aspect + monitor = [ "HDMI-A-2, 2560x1440@144.00Hz, auto, auto, cm, auto" ]; + + # keywords https://wiki.hypr.land/0.54.0/Configuring/Keywords/ + "$terminal" = "kitty"; + "$browser " = "firefox"; + "$menu " = "hyprlauncher"; + "$mainMod" = "SUPER"; + + # autostart + exec-once = [ + # "waybar &" + "1password --silent &" + "hyprpaper &" + ]; + + # environment variables https://wiki.hypr.land/0.54.0/Configuring/Environment-variables/ + # TODO: cursor aspect + # env = [ + # "XCURSOR_SIZE,24" + # "HYPRCURSOR_SIZE,24" + # "HYPRCURSOR_THEME,phinger-cursors-dark" + # ]; + + # look and feel, https://wiki.hypr.land/0.54.0/Configuring/Variables/#general + general = { + gaps_in = 3; + gaps_out = 3; + border_size = 3; + + "col.active_border " = "rgba(800080aa)"; + "col.inactive_border " = "rgba(a3a3a3ee)"; + }; + + resize_on_border = false; + + allow_tearing = false; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#decoration + decoration = { + rounding = 10; + rounding_power = 10; + + active_opacity = 1.0; + inactive_opacity = 1.0; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#blur + shadow = { + enabled = true; + range = 4; + render_power = 3; + color = "rgba(1a1a1aee)"; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#blur + blur = { + enabled = true; + size = 3; + passes = 1; + + vibrancy = 0.1696; + }; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#animations + animations = { + enabled = true; + + bezier = [ + #NAME, X0, Y0, X1, Y1 + "easeOutQuint, 0.23, 1, 0.32, 1" + "easeInOutCubic, 0.65, 0.05, 0.36, 1" + "linear, 0, 0, 1, 1" + "almostLinear, 0.5, 0.5, 0.75, 1" + "quick, 0.15, 0, 0.1, 1" + ]; + + # defaults, https://wiki.hypr.land/0.54.0/Configuring/Animations/ + animation = [ + #NAME, ONOFF, SPEED, CURVE, [STYLE] + "global, 1, 10, default" + "border, 1, 5.39, easeOutQuint" + "windows, 1, 4.79, easeOutQuint" + "windowsIn, 1, 4.1, easeOutQuint, popin 87%" + "windowsOut, 1, 1.49, linear, popin 87%" + "fadeIn, 1, 1.73, almostLinear" + "fadeOut, 1, 1.46, almostLinear" + "fade, 1, 3.03, quick" + "layers, 1, 3.81, easeOutQuint" + "layersIn, 1, 4, easeOutQuint, fade" + "layersOut, 1, 1.5, linear, fade" + "fadeLayersIn, 1, 1.79, almostLinear" + "fadeLayersOut, 1, 1.39, almostLinear" + "workspaces, 1, 1.94, almostLinear, fade" + "workspacesIn, 1, 1.21, almostLinear, fade" + "workspacesOut, 1, 1.94, almostLinear, fade" + "zoomFactor, 1, 7, quick" + ]; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Dwindle-Layout/ + dwindle = { + preserve_split = true; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Master-Layout/ + master = { + new_status = "master"; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#misc + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#misc + misc = { + # disable default wallpaper + force_default_wallpaper = 0; + # disable logo rendering + disable_hyprland_logo = true; + # disable annoying random background text + disable_splash_rendering = true; + }; + + # https://wiki.hypr.land/0.54.0/Configuring/Variables/#misc + input = { + kb_layout = "us"; + follow_mouse = 0; + }; + + # keybindings, https://wiki.hypr.land/0.54.0/Configuring/Binds/ + bindu = [ + "$mainMod, return, exec, $terminal" + ]; + bind = [ + "$mainMod SHIFT, Q, killactive," + "$mainMod, M, exit," + "$mainMod, V, togglefloating," + "$mainMod, SPACE, exec, $menu" + "$mainMod, P, pseudo, # dwindle" + "$mainMod, F, exec, $browser" + "$mainMod, TAB, focuscurrentorlast" + + # Move focus with mainMod + arrow keys + "$mainMod, H, movefocus, l" + "$mainMod, L, movefocus, r" + "$mainMod, K, movefocus, u" + "$mainMod, J, movefocus, d" + + # Move windows + "$mainMod SHIFT, H, movewindow, l" + "$mainMod SHIFT, L, movewindow, r" + "$mainMod SHIFT, K, movewindow, u" + "$mainMod SHIFT, J, movewindow, d" + + # Switch workspaces with mainMod + [0-9] + "$mainMod, 1, workspace, 1" + "$mainMod, 2, workspace, 2" + "$mainMod, 3, workspace, 3" + "$mainMod, 4, workspace, 4" + "$mainMod, 5, workspace, 5" + "$mainMod, 6, workspace, 6" + "$mainMod, 7, workspace, 7" + "$mainMod, 8, workspace, 8" + "$mainMod, 9, workspace, 9" + "$mainMod, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mainMod SHIFT, 1, movetoworkspace, 1" + "$mainMod SHIFT, 2, movetoworkspace, 2" + "$mainMod SHIFT, 3, movetoworkspace, 3" + "$mainMod SHIFT, 4, movetoworkspace, 4" + "$mainMod SHIFT, 5, movetoworkspace, 5" + "$mainMod SHIFT, 6, movetoworkspace, 6" + "$mainMod SHIFT, 7, movetoworkspace, 7" + "$mainMod SHIFT, 8, movetoworkspace, 8" + "$mainMod SHIFT, 9, movetoworkspace, 9" + "$mainMod SHIFT, 0, movetoworkspace, 10" + + # Scroll through existing workspaces with mainMod + scroll + "$mainMod, mouse_up, workspace, e+1" + "$mainMod, mouse_down, workspace, e-1" + + # Enter resize mode + "$mainMod SHIFT, R, submap, resize" + ]; + + bindm = [ + # Move/resize windows with mainMod + LMB/RMB and dragging + "$mainMod, mouse:272, movewindow" + "$mainMod, mouse:273, resizewindow" + ]; + + bindel = [ + # Laptop multimedia keys for volume and LCD brightness + ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" + ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" + ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" + + # Requires playerctl + ", XF86AudioNext, exec, playerctl next" + ", XF86AudioPause, exec, playerctl play-pause" + ", XF86AudioPlay, exec, playerctl play-pause" + ", XF86AudioPrev, exec, playerctl previous" + ]; + + windowrule = [ + { + # Ignore maximize requests from all apps. You'll probably like this. + name = "suppress-maximize-events"; + "match:class" = ".*"; + suppress_event = "maximize"; + } + { + # Fix some dragging issues with XWayland + name = "fix-xwayland-drags"; + "match:class" = "^$"; + "match:title" = "^$"; + "match:xwayland" = true; + "match:float" = true; + "match:fullscreen" = false; + "match:pin" = false; + no_focus = true; + } + ]; + }; + + submaps.resize.settings = { + binde = [ + # hold vim keys to expand or shrink window + ", h, resizeactive, -10 0" + ", l, resizeactive, 10 0" + ", k, resizeactive, 0 -10" + ", j, resizeactive, 0 10" + + # reset with any key + ", catchall, submap, reset" + ", escape, submap, reset" + ]; + }; + }; + }; +} diff --git a/modules/kitty.nix b/modules/kitty.nix new file mode 100644 index 0000000..3014260 --- /dev/null +++ b/modules/kitty.nix @@ -0,0 +1,43 @@ +{ + den.aspects.kitty = { + homeManager.programs.kitty = { + enable = true; + enableGitIntegration = true; + + themeFile = "Catppuccin-Frappe"; + settings = { + # font_family = "Berkeley Mono"; + # font_family = "family='Berkeley Mono' postscript_name=BerkeleyMono-Regular"; + cursor_trail = 1; + + scrollbar = "hovered"; + scrollbar_width = 1.5; + scrollbar_hover_width = 1.5; + scrollbar_radius = 0.5; + + mouse_hide_wait = "1.0 0 0 no"; + + strip_trailing_spaces = "smart"; + + active_border_color = "blue"; + inactive_border_color = "white"; + bell_border_color = "red"; + + inactive_text_alpha = 0.6; + + tab_bar_style = "slant"; + + background_opacity = 0.9; + transparent_background_colors = "#3b3f53@0.9"; + }; + keybindings = { + "ctrl+up" = "neighboring_window up"; + "ctrl+right" = "neighboring_window right"; + "ctrl+down" = "neighboring_window down"; + "ctrl+left" = "neighboring_window left"; + "ctrl+shfit+p" = "nth_window -1"; + "ctrl+alt+t" = "detach_window new-tab"; + }; + }; + }; +} diff --git a/modules/users/igneous.nix b/modules/users/igneous.nix index 334a295..59645cd 100644 --- a/modules/users/igneous.nix +++ b/modules/users/igneous.nix @@ -9,6 +9,8 @@ den.aspects.git den.aspects.git.verification + den.aspects.hyprland + den.aspects.shell den.aspects.shell.zsh diff --git a/modules/vm.nix b/modules/vm.nix index 6e7668d..f46bf8a 100644 --- a/modules/vm.nix +++ b/modules/vm.nix @@ -1,6 +1,6 @@ -# enables `nix run .#vm`. it is very useful to have a VM -# you can edit your config and launch the VM to test stuff -# instead of having to reboot each time. +# # enables `nix run .#vm`. it is very useful to have a VM +# # you can edit your config and launch the VM to test stuff +# # instead of having to reboot each time. { inputs, den, ... }: { -- 2.51.2