Compare commits

...

2 commits

Author SHA1 Message Date
Paul-Henri Froidmont
258ff8a600
wm: migrate from swaylock to hyprlock and add hypridle locking 2026-03-24 23:57:18 +01:00
Paul-Henri Froidmont
30ffdf6a2f
fix(stellaris): stabilize hybrid GPU stack for Wayland/Proton and fix external monitor mode 2026-03-24 23:20:08 +01:00
3 changed files with 95 additions and 58 deletions

View file

@ -66,14 +66,9 @@
services.network-manager-applet.enable = true; services.network-manager-applet.enable = true;
services.blueman-applet.enable = true; services.blueman-applet.enable = true;
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
env = [
"LIBVA_DRIVER_NAME,nvidia"
"__GLX_VENDOR_LIBRARY_NAME,nvidia"
];
monitor = [ monitor = [
"eDP-1, 2560x1600@240, 0x0, 1.6" "eDP-1, 2560x1600@240, 0x0, 1.6"
"desc:Microstep MPG321UX OLED 0x01010101, @239.99001, auto-right, 1.6" "desc:Microstep MPG321UX OLED 0x01010101, 3840x2160@239.99001, auto-right, 1.6"
", preferred, auto, 1" ", preferred, auto, 1"
]; ];

View file

@ -20,7 +20,14 @@
"sdhci_pci" "sdhci_pci"
]; ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [
"kvm-amd"
"amdgpu"
"nvidia"
"nvidia_drm"
"nvidia_uvm"
];
boot.kernelParams = [ "nvidia-drm.modeset=1" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
@ -76,18 +83,20 @@
"nvidia" "nvidia"
]; ];
hardware.graphics = {
enable = true;
enable32Bit = true;
};
hardware.nvidia = { hardware.nvidia = {
modesetting.enable = true; modesetting.enable = true;
powerManagement.enable = false; powerManagement.enable = false;
powerManagement.finegrained = true; powerManagement.finegrained = false;
open = true; open = true;
nvidiaSettings = true; nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable; package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = { prime = {
offload = { sync.enable = true;
enable = true;
enableOffloadCmd = true;
};
# nix run github:eclairevoyant/pcids # nix run github:eclairevoyant/pcids
amdgpuBusId = "PCI:7:0:0"; amdgpuBusId = "PCI:7:0:0";
nvidiaBusId = "PCI:1:0:0"; nvidiaBusId = "PCI:1:0:0";

View file

@ -127,7 +127,7 @@ in
"$mod, semicolon, splitratio, +0.1" "$mod, semicolon, splitratio, +0.1"
"$mod, F, fullscreen, 0" "$mod, F, fullscreen, 0"
"$mod, X, exec, swaylock" "$mod, X, exec, hyprlock"
# Move focus # Move focus
"$mod, H, movefocus, l" "$mod, H, movefocus, l"
@ -402,52 +402,85 @@ in
]; ];
}; };
programs.swaylock = { programs.hyprlock = {
enable = true; enable = true;
package = pkgs.swaylock-effects;
settings = { settings = {
ignore-empty-password = true; general = {
daemonize = true; hide_cursor = true;
# fade-in = 0.5; ignore_empty_input = true;
indicator = true; };
clock = true;
datestr = "%d/%m/%Y"; background = [
screenshots = true; {
hide-keyboard-layout = true; monitor = "";
indicator-caps-lock = true; path = "screenshot";
bs-hl-color = "7daea3cc"; blur_passes = 3;
caps-lock-bs-hl-color = "7daea3cc"; blur_size = 8;
caps-lock-key-hl-color = "d3869bcc"; }
font = "MesloLGS Nerd Font Propo"; ];
font-size = "35";
indicator-idle-visible = true; input-field = [
indicator-radius = 100; {
indicator-thickness = 7; monitor = "";
inside-color = "32302f66"; size = "320, 58";
inside-clear-color = "89b48266"; position = "0, -80";
inside-caps-lock-color = "e78a4e66"; halign = "center";
inside-ver-color = "7daea366"; valign = "center";
inside-wrong-color = "ea696266"; dots_center = true;
key-hl-color = "a9b665cc"; fade_on_empty = false;
layout-bg-color = "32302f00"; outline_thickness = 3;
layout-text-color = "d4be98"; inner_color = "rgb(50, 48, 47)";
line-color = "00000000"; outer_color = "rgb(231, 138, 78)";
ring-color = "e78a4ecc"; font_color = "rgb(212, 190, 152)";
ring-clear-color = "89b482cc"; placeholder_text = "Password...";
ring-caps-lock-color = "e78a4ecc"; }
ring-ver-color = "7daea3cc"; ];
ring-wrong-color = "ea6962cc";
separator-color = "00000000"; label = [
text-color = "d4be98"; {
text-clear-color = "d4be98"; monitor = "";
text-caps-lock-color = "d4be98"; text = "$TIME";
text-ver-color = "d4be98"; color = "rgb(212, 190, 152)";
text-wrong-color = "d4be98"; font_size = 42;
effect-blur = "9x9"; font_family = "MesloLGS Nerd Font Propo";
effect-greyscale = true; position = "0, 160";
# effect-vignette = "0.5:0.5"; halign = "center";
valign = "center";
}
{
monitor = "";
text = "cmd[update:1000] date +%d/%m/%Y";
color = "rgb(212, 190, 152)";
font_size = 18;
font_family = "MesloLGS Nerd Font Propo";
position = "0, 120";
halign = "center";
valign = "center";
}
];
};
};
services.hypridle = {
enable = true;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
};
listener = [
{
timeout = 300;
on-timeout = "loginctl lock-session";
}
{
timeout = 330;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
}; };
}; };
}; };
@ -466,7 +499,7 @@ in
hardware.graphics.enable = true; hardware.graphics.enable = true;
security.pam.services.swaylock = { }; security.pam.services.hyprlock = { };
}; };
} }