From 3614169a29178696389f8c2bd9ee74885ef89d9a Mon Sep 17 00:00:00 2001 From: William Date: Thu, 9 Oct 2025 21:53:56 -0300 Subject: [PATCH] hyprland and dms --- flake.nix | 14 +-- hosts/modules/default.nix | 1 - hosts/modules/desktop.nix | 10 +- hosts/modules/rotterdam/hardware.nix | 5 +- hosts/modules/stylix.nix | 63 ----------- packages/plasticity.nix | 1 - users/modules/programs.nix | 10 +- users/modules/user/programs.nix | 157 ++++++++++++++++++++++++++- users/user.nix | 3 +- 9 files changed, 169 insertions(+), 95 deletions(-) delete mode 100644 hosts/modules/stylix.nix diff --git a/flake.nix b/flake.nix index 9b13d69..1d808be 100644 --- a/flake.nix +++ b/flake.nix @@ -14,11 +14,6 @@ inputs.nixpkgs.follows = "nixpkgs-stable"; }; - stylix = { - url = "github:danth/stylix"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - agenix = { url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs-stable"; @@ -29,6 +24,11 @@ inputs.nixpkgs.follows = "nixpkgs-stable"; }; + dms = { + url = "github:AvengeMedia/DankMaterialShell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nixos-cli.url = "github:nix-community/nixos-cli"; nix-flatpak.url = "github:gmodena/nix-flatpak/main"; @@ -43,8 +43,8 @@ nixpkgs-stable, home-manager, home-manager-stable, - stylix, disko, + dms, agenix, nixos-cli, nix-flatpak, @@ -91,7 +91,6 @@ hm.nixosModules.default impermanence.nixosModules.impermanence nix-flatpak.nixosModules.nix-flatpak - stylix.nixosModules.stylix nixos-cli.nixosModules.nixos-cli { nixpkgs.overlays = [ @@ -100,6 +99,7 @@ } ]; workstationModules = [ + dms.nixosModules.greeter { nixpkgs.overlays = [ self.overlays.workstationOverlay diff --git a/hosts/modules/default.nix b/hosts/modules/default.nix index 64c4aef..99cf017 100644 --- a/hosts/modules/default.nix +++ b/hosts/modules/default.nix @@ -13,7 +13,6 @@ ./programs.nix ./security.nix ./services.nix - ./stylix.nix ./users.nix ./virtualisation.nix ]; diff --git a/hosts/modules/desktop.nix b/hosts/modules/desktop.nix index 6002f3e..45dd1db 100644 --- a/hosts/modules/desktop.nix +++ b/hosts/modules/desktop.nix @@ -19,10 +19,6 @@ (lib.mkIf hostType.isWorkstation { services = { displayManager = { - autoLogin = { - enable = true; - user = "user"; - }; sddm = { enable = true; wayland = { @@ -31,7 +27,6 @@ }; }; }; - desktopManager.plasma6.enable = true; pipewire = { enable = true; alsa.enable = true; @@ -42,6 +37,11 @@ }; }; + programs.hyprland = { + enable = true; + withUWSM = true; + }; + hardware = { xpadneo.enable = true; bluetooth.enable = true; diff --git a/hosts/modules/rotterdam/hardware.nix b/hosts/modules/rotterdam/hardware.nix index ba7f866..6f76e99 100644 --- a/hosts/modules/rotterdam/hardware.nix +++ b/hosts/modules/rotterdam/hardware.nix @@ -2,10 +2,7 @@ { hardware = { - amdgpu = { - opencl.enable = true; - amdvlk.enable = true; - }; + amdgpu.opencl.enable = true; graphics.extraPackages = with pkgs; [ rocmPackages.clr.icd ]; }; } diff --git a/hosts/modules/stylix.nix b/hosts/modules/stylix.nix deleted file mode 100644 index b0345f2..0000000 --- a/hosts/modules/stylix.nix +++ /dev/null @@ -1,63 +0,0 @@ -{ - config, - hostType, - lib, - pkgs, - ... -}: - -{ - config = lib.mkMerge [ - # Common configuration - { - } - - # Server specific configuration - (lib.mkIf hostType.isServer { - }) - - # Workstation specific configuration - (lib.mkIf hostType.isWorkstation { - stylix = { - enable = true; - polarity = "dark"; - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; - cursor = { - package = pkgs.kdePackages.breeze-icons; - name = "Breeze_Light"; - size = 24; - }; - opacity = { - applications = 1.0; - desktop = 0.8; - popups = config.stylix.opacity.desktop; - terminal = 1.0; - }; - fonts = { - serif = { - package = pkgs.source-serif; - name = "Source Serif 4 Display"; - }; - sansSerif = { - package = pkgs.inter; - name = "Inter"; - }; - monospace = { - package = pkgs.nerd-fonts.fira-code; - name = "FiraCode Nerd Font"; - }; - emoji = { - package = pkgs.noto-fonts-emoji; - name = "Noto Color Emoji"; - }; - sizes = { - applications = 11; - desktop = config.stylix.fonts.sizes.applications; - popups = config.stylix.fonts.sizes.applications; - terminal = 12; - }; - }; - }; - }) - ]; -} diff --git a/packages/plasticity.nix b/packages/plasticity.nix index 4325e5f..320e314 100644 --- a/packages/plasticity.nix +++ b/packages/plasticity.nix @@ -62,7 +62,6 @@ stdenv.mkDerivation rec { hicolor-icon-theme libdrm libnotify - libsForQt5.kde-cli-tools libxkbcommon nspr nss diff --git a/users/modules/programs.nix b/users/modules/programs.nix index c18c17f..70079c6 100644 --- a/users/modules/programs.nix +++ b/users/modules/programs.nix @@ -93,15 +93,7 @@ # Workstation specific configuration (lib.mkIf hostType.isWorkstation { - programs.rio = { - enable = true; - settings = { - window = { - width = 1121; - height = 633; - }; - }; - }; + }) ]; } diff --git a/users/modules/user/programs.nix b/users/modules/user/programs.nix index a024663..bfaff58 100644 --- a/users/modules/user/programs.nix +++ b/users/modules/user/programs.nix @@ -112,13 +112,9 @@ # Workstation specific configuration (lib.mkIf hostType.isWorkstation { - fonts.fontconfig.enable = true; - programs = { password-store.package = pkgs.pass-wayland; - mangohud.enable = true; - obs-studio = { enable = true; plugins = [ @@ -127,7 +123,160 @@ pkgs.obs-studio-plugins.obs-pipewire-audio-capture ]; }; + dankMaterialShell = { + enable = true; + enableVPN = false; + }; + rio = { + enable = true; + settings = { + window = { + width = 1121; + height = 633; + }; + }; + }; }; + wayland.windowManager.hyprland = { + enable = true; + extraConfig = '' + ################ + ### MONITORS ### + ################ + monitor=,preferred,auto,auto + ################ + ### START-UP ### + ################ + exec-once = bash -c "wl-paste --watch cliphist store &" + exec-once = /usr/lib/mate-polkit/polkit-mate-authentication-agent-1 + exec-once = dms run + ##################### + ### LOOK AND FEEL ### + ##################### + general { + gaps_in = 5 + gaps_out = 20 + border_size = 2 + resize_on_border = true + allow_tearing = false + layout = dwindle + } + decoration { + rounding = 10 + rounding_power = 2 + dim_inactive = true + dim_strength = 0.3 + shadow { + enabled = true + range = 4 + render_power = 3 + } + blur { + enabled = true + size = 8 + passes = 1 + vibrancy = 0.1696 + } + } + animations { + enabled = yes, please :) + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + animation = global, 1, 1, default + animation = border, 1, 1, easeOutQuint + animation = windows, 1, 1, easeOutQuint + animation = windowsIn, 1, 0.3, quick, popin 95% # Much faster: 30ms with quick bezier + animation = windowsOut, 1, 1, linear, popin 87% + animation = fadeIn, 1, 1, almostLinear + animation = fadeOut, 1, 1, almostLinear + animation = fade, 1, 1, quick + animation = layers, 1, 1, easeOutQuint + animation = layersIn, 1, 1, easeOutQuint, fade + animation = layersOut, 1, 1, linear, fade + animation = fadeLayersIn, 1, 1, almostLinear + animation = fadeLayersOut, 1, 1, almostLinear + animation = workspaces, 1, 1, almostLinear, slidevert + } + misc { + force_default_wallpaper = 0 + disable_hyprland_logo = true + } + + ############# + ### INPUT ### + ############# + input { + kb_layout = us + kb_variant = altgr-intl + follow_mouse = 1 + sensitivity = 0 + accel_profile = flat + natural_scroll = true + touchpad { + natural_scroll = true + clickfinger_behavior = true + } + } + + ################### + ### KEYBINDINGS ### + ################### + $mainMod = SUPER + $terminal = rio + $menu = dms ipc call spotlight toggle + # APP SHORTCUTS + bind = ALT, SPACE, exec, $menu + bind = $mainMod, RETURN, exec, $terminal + # SESSION MANAGEMENT + bind = CTRL ALT, DELETE, exit, + bind = $mainMod, mouse_up, exec, hyprnome + bind = $mainMod, mouse_down, exec, hyprnome --previous + bind = CTRL ALT, j, exec, hyprnome + bind = CTRL ALT, k, exec, hyprnome --previous + bind = $mainMod CTRL ALT, j, exec, hyprnome --move + bind = $mainMod CTRL ALT, k, exec, hyprnome --move --previous + bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ + bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- + bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle + bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+ + bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%- + bindl = , XF86AudioNext, exec, playerctl next + bindl = , XF86AudioPause, exec, playerctl play-pause + bindl = , XF86AudioPlay, exec, playerctl play-pause + bindl = , XF86AudioPrev, exec, playerctl previous + bind = CTRL ALT SHIFT, a, exec, bash /home/user/.local/bin/toggle-audio-output.sh + # WINDOW MANAGEMENT + bind = ALT, F4, killactive, + bind = $mainMod, space, togglefloating, + bind = $mainMod, f, fullscreen + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow + bind = SUPER, h, movefocus, l + bind = SUPER, l, movefocus, r + bind = SUPER, k, movefocus, u + bind = SUPER, j, movefocus, d + bind = $mainMod CTRL, h, movewindow, l + bind = $mainMod CTRL, l, movewindow, r + bind = $mainMod CTRL, k, movewindow, u + bind = $mainMod CTRL, j, movewindow, d + # bind = $mainMod, r, scroller:cyclewidth, next + # bind = $mainMod CTRL, r, scroller:cyclewidth, prev + # bind = $mainMod, p, scroller:pin, + # bind = $mainMod, c, scroller:alignwindow, center + # bind = $mainMod CTRL, f, scroller:fitsize, all + + #################### + ### WINDOW RULES ### + #################### + windowrulev2 = suppressevent maximize, class:.* + windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 + ''; + }; + fonts.fontconfig.enable = true; }) ]; } diff --git a/users/user.nix b/users/user.nix index 9950533..a5832cc 100644 --- a/users/user.nix +++ b/users/user.nix @@ -1,4 +1,4 @@ -{ ... }: +{ inputs, ... }: { home = { @@ -10,5 +10,6 @@ imports = [ ./modules ./modules/user + inputs.dms.homeModules.dankMaterialShell.default ]; }