update system

This commit is contained in:
2026-06-06 13:11:00 +02:00
parent 7c3a4f9cb6
commit cf2108ad82
17 changed files with 361 additions and 325 deletions
+15 -3
View File
@@ -16,15 +16,28 @@
]; ];
}; };
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
config = {
general.layout = "master"; general.layout = "master";
master = { master = {
orientation = "right"; orientation = "right";
mfact = 0.65; mfact = 0.65;
always_keep_position = true; always_keep_position = true;
}; };
input.kb_options = [ "lv3:caps_switch" ];
};
monitor = [ monitor = [
"eDP-1,3840x2160@60,0x0,2" {
"HDMI-A-4,2560x1440@75,1920x-768,1" output = "eDP-1";
mode = "3840x2160@60";
position = "0x0";
scale = 2;
}
{
output = "HDMI-A-4";
mode = "2560x1440@75";
position = "1920x-768";
scale = 1;
}
]; ];
}; };
systemd.user.services = { systemd.user.services = {
@@ -52,6 +65,5 @@
}; };
}; };
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ];
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
} }
+1 -1
View File
@@ -17,7 +17,7 @@
gamma-launcher gamma-launcher
]; ];
}; };
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ]; wayland.windowManager.hyprland.settings.config.input.kb_options = [ "lv3:caps_switch" ];
services.nextcloud-client.enable = true; services.nextcloud-client.enable = true;
systemd.user.services = { systemd.user.services = {
nm-applet = { nm-applet = {
@@ -14,12 +14,27 @@ let
''; '';
}; };
cfg = osConfig.desktops.hyprland; cfg = osConfig.desktops.hyprland;
bind = bind: action: {
_args = [
bind
(lib.generators.mkLuaInline action)
];
};
bindm = bind: action: {
_args = [
bind
(lib.generators.mkLuaInline action)
{ mouse = true; }
];
};
in in
{ {
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
configType = "lua";
settings = { settings = {
config = {
general = { general = {
allow_tearing = true; allow_tearing = true;
layout = lib.mkIf cfg.scrolling "scrolling"; layout = lib.mkIf cfg.scrolling "scrolling";
@@ -28,63 +43,68 @@ in
accel_profile = "flat"; accel_profile = "flat";
kb_layout = osConfig.services.xserver.xkb.layout; kb_layout = osConfig.services.xserver.xkb.layout;
kb_variant = osConfig.services.xserver.xkb.variant; kb_variant = osConfig.services.xserver.xkb.variant;
touchpad.natural_scroll = true;
}; };
bind = [
"SUPER,C,killactive"
"SUPER,P,togglefloating,"
"SUPER,P,pin,"
"SUPER,D,fullscreen,1"
"SUPER,V,fullscreen,0"
"SUPER,f,workspace,r-1"
"SUPER,h,workspace,r+1"
"SUPER_SHIFT,f,movetoworkspace,r-1"
"SUPER_SHIFT,h,movetoworkspace,r+1"
]
++ (
if cfg.scrolling then
[
"SUPER,up,layoutmsg,focus u"
"SUPER,down,layoutmsg,focus d"
"SUPER,right,layoutmsg,focus r"
"SUPER,left,layoutmsg,focus l"
"SUPER_SHIFT,up,layoutmsg,movewindowto u"
"SUPER_SHIFT,down,layoutmsg,movewindowto d"
"SUPER_SHIFT,left,layoutmsg,swapcol l"
"SUPER_SHIFT,right,layoutmsg,swapcol r"
"SUPER,mouse_up,layoutmsg,focus r"
"SUPER,mouse_down,layoutmsg,focus l"
]
else
[
"SUPER_SHIFT,up,movewindow,u"
"SUPER_SHIFT,down,movewindow,d"
"SUPER_SHIFT,left,movewindow,l"
"SUPER_SHIFT,right,movewindow,r"
"SUPER,up,movefocus,u"
"SUPER,down,movefocus,d"
"SUPER,left,movefocus,l"
"SUPER,right,movefocus,r"
"SUPER,mouse_up,workspace,r+1"
"SUPER,mouse_down,workspace,r-1"
]
);
bindm = [
"SUPER,mouse:272,movewindow"
"SUPER,mouse:273,resizewindow"
];
misc = { misc = {
layers_hog_keyboard_focus = false; layers_hog_keyboard_focus = false;
disable_hyprland_logo = true; disable_hyprland_logo = true;
disable_splash_rendering = true; disable_splash_rendering = true;
vrr = lib.mkDefault 2; vrr = lib.mkDefault 2;
enable_swallow = true;
swallow_regex = "^kitty$";
}; };
binds.scroll_event_delay = 0;
decoration.border_part_of_window = false; decoration.border_part_of_window = false;
input.touchpad.natural_scroll = true; };
bind = [
(bind "SUPER + C" "hl.dsp.window.close()")
(bind "SUPER + P" ''
function()
hl.dsp.window.float()
hl.dsp.window.pin()
end
'')
(bind "SUPER + D" "hl.dsp.window.fullscreen({ mode = 'maximized' })")
(bind "SUPER + V" "hl.dsp.window.fullscreen({ mode = 'fullscreen' })")
(bind "SUPER + F" "hl.dsp.focus({ workspace = 'r-1' })")
(bind "SUPER + H" "hl.dsp.focus({ workspace = 'r+1' })")
(bind "SUPER + SHIFT + F" "hl.dsp.window.move({ workspace = 'r-1' })")
(bind "SUPER + SHIFT + H" "hl.dsp.window.move({ workspace = 'r+1' })")
(bindm "SUPER + mouse:272" "hl.dsp.window.drag()")
(bindm "SUPER + mouse:273" "hl.dsp.window.resize()")
]
++ (
if cfg.scrolling then
[
(bind "SUPER + SHIFT + LEFT" "hl.dsp.layout('swapcol l')")
(bind "SUPER + SHIFT + RIGHT" "hl.dsp.layout('swapcol r')")
(bind "SUPER + UP" "hl.dsp.layout('focus u')")
(bind "SUPER + DOWN" "hl.dsp.layout('focus d')")
(bind "SUPER + LEFT" "hl.dsp.layout('focus l')")
(bind "SUPER + RIGHT" "hl.dsp.layout('focus r')")
(bind "SUPER + mouse_up" "hl.dsp.layout('focus r')")
(bind "SUPER + mouse_down" "hl.dsp.layout('focus l')")
]
else
[
(bind "SUPER + SHIFT + UP" "hl.dsp.window.move({ direction = 'up' })")
(bind "SUPER + SHIFT + DOWN" "hl.dsp.window.move({ direction = 'down' })")
(bind "SUPER + SHIFT + LEFT" "hl.dsp.window.move({ direction = 'left' })")
(bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.move({ direction = 'right' })")
(bind "SUPER + UP" "hl.dsp.focus({ direction = 'up' })")
(bind "SUPER + DOWN" "hl.dsp.focus({ direction = 'down' })")
(bind "SUPER + LEFT" "hl.dsp.focus({ direction = 'left' })")
(bind "SUPER + RIGHT" "hl.dsp.focus({ direction = 'right' })")
(bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = 'r-1' })")
(bind "SUPER + mouse_down" "hl.dsp.focus({ workspace = 'r+1' })")
]
);
}; };
}; };
+2 -2
View File
@@ -29,10 +29,10 @@
]; ];
}; };
}; };
wayland.windowManager.hyprland.settings.windowrule = [ wayland.windowManager.hyprland.settings.window_rule = [
{ {
name = "Suppress maximize for neovide"; name = "Suppress maximize for neovide";
"match:class" = "^(neovide)$"; match.class = "^(neovide)$";
suppress_event = "maximize"; suppress_event = "maximize";
} }
]; ];
-20
View File
@@ -1,20 +0,0 @@
general {
col.inactive_border = 0x00000000
col.active_border = 0x00000000
# col.inactive_border = rgba({{colors.surface.default.hex_stripped}}{{custom.transparency_hex | to_lower}})
# col.active_border = rgb({{colors.primary.default.hex_stripped}})
border_size = 0
extend_border_grab_area = 4
gaps_in = {{custom.padding}}
gaps_out = {{custom.double_padding}}
}
decoration {
rounding = {{custom.radius}}
blur {
size = {{custom.blur}}
passes = 3
popups = true
}
}
+50
View File
@@ -0,0 +1,50 @@
hl.config({
general = {
col = {
inactive_border = "rgba(00000000)",
active_border = "rgba(00000000)",
},
border_size = 0,
extend_border_grab_area = 4,
-- stylua: ignore
gaps_in = {{custom.padding}},
-- stylua: ignore
gaps_out = {{custom.double_padding}},
},
decoration = {
-- stylua: ignore
rounding = {{custom.radius}},
blur = {
-- stylua: ignore
size = {{custom.blur}},
passes = 3,
popups = true,
},
inactive_opacity = 0.8,
shadow = {
enabled = true,
range = 32,
render_power = 8,
color = "rgba(000000aa)",
color_inactive = "rgba(00000011)",
},
},
animations = {
enabled = true,
},
})
hl.curve("default", { type = "spring", mass = 1, stiffness = 90, dampening = 30 })
hl.curve("linear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.5, 0.5 } } })
hl.animation({ leaf = "windows", enabled = true, speed = 1, spring = "default", style = "slide" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 1, spring = "default", style = "slide bottom" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1, spring = "default", style = "slide bottom" })
hl.animation({ leaf = "border", enabled = true, speed = 1, spring = "default" })
hl.animation({ leaf = "fade", enabled = true, speed = 3, bezier = "linear" })
hl.animation({ leaf = "fadeShadow", enabled = true, speed = 4, bezier = "linear" })
hl.animation({ leaf = "fadeDim", enabled = true, speed = 4, bezier = "linear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1, spring = "default" })
+13 -36
View File
@@ -189,7 +189,9 @@ in
pkgs.zenity pkgs.zenity
pkgs.sunwait pkgs.sunwait
]; ];
text = '' text =
# sh
''
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper WALLPAPER=${config.xdg.configHome}/matugen/wallpaper
STATE=${config.xdg.stateHome}/md3-evo STATE=${config.xdg.stateHome}/md3-evo
@@ -285,7 +287,7 @@ in
dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'" dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'" dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
dconf write /org/gnome/desktop/interface/icon-theme "'Adwaita'" dconf write /org/gnome/desktop/interface/icon-theme "'Tela'"
''; '';
} }
); );
@@ -294,6 +296,7 @@ in
home.packages = [ home.packages = [
pkgs.adw-gtk3 pkgs.adw-gtk3
pkgs.awww pkgs.awww
pkgs.tela-icon-theme
theme-script theme-script
]; ];
@@ -344,43 +347,17 @@ in
}; };
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings.window_rule = [
windowrule = [
{ {
name = "floating-zenity"; name = "floating-zenity";
"match:class" = "^(zenity)$"; match.class = "^(zenity)$";
float = true; float = true;
} }
]; ];
decoration = { extraConfig =
inactive_opacity = 0.8; # lua
shadow = { ''
enabled = true; require("theme")
range = 32;
render_power = 8;
color = "rgba(000000aa)";
color_inactive = "rgba(00000011)";
};
};
animations = {
enabled = "yes";
bezier = [
"expoOut, 0.16, 1, 0.3, 1"
];
animation = [
"windowsIn, 1, 5, expoOut, slide bottom"
"windows, 1, 5, expoOut, slide"
"windowsOut, 1, 5, expoOut, slide bottom"
"border, 1, 10, default"
"fade, 1, 7, default"
"fadeShadow, 1, 10, default"
"fadeDim, 1, 10, default"
"workspaces, 1, 6, default"
];
};
};
extraConfig = ''
source=./theme.conf
''; '';
}; };
@@ -518,8 +495,8 @@ in
}) })
// (lib.optionalAttrs osConfig.programs.hyprland.enable { // (lib.optionalAttrs osConfig.programs.hyprland.enable {
hyprland = { hyprland = {
input_path = ./hyprland.conf; input_path = ./hyprland.lua;
output_path = "${config.xdg.configHome}/hypr/theme.conf"; output_path = "${config.xdg.configHome}/hypr/theme.lua";
post_hook = pkgs.writeShellScript "reload-hyprland-theme" '' post_hook = pkgs.writeShellScript "reload-hyprland-theme" ''
if command -v hyprctl &> /dev/null; then if command -v hyprctl &> /dev/null; then
hyprctl reload hyprctl reload
+1 -1
View File
@@ -28,7 +28,7 @@ in
systemd.enable = false; systemd.enable = false;
package = null; package = null;
portalPackage = null; portalPackage = null;
settings = { settings.config = {
ecosystem = { ecosystem = {
no_update_news = true; no_update_news = true;
no_donation_nag = true; no_donation_nag = true;
+16 -44
View File
@@ -32,76 +32,48 @@ in
'') '')
]; ];
home-manager.users.${username} = home-manager.users.${username} = {
let
monitorline = "DP-3,3840x2160@144,0x0,1,bitdepth,10,cm,${if cfg.hdr then "hdr" else "srgb"}";
in
{
programs.mpv.config = { programs.mpv.config = {
vo = "gpu-next"; vo = "gpu-next";
gpu-api = "vulkan"; gpu-api = "vulkan";
gpu-context = "waylandvk"; gpu-context = "waylandvk";
target-colorspace-hint = "auto"; target-colorspace-hint = "auto";
}; };
programs.niri.settings = {
prefer-no-csd = true;
outputs."DP-3" = {
scale = 1;
mode = {
width = 3840;
height = 2160;
refresh = 143.999;
};
variable-refresh-rate = "on-demand";
};
layout.struts.top = 80;
};
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
config = {
scrolling = { scrolling = {
column_width = 0.4; column_width = 0.4;
focus_fit_method = 0; focus_fit_method = 0;
fullscreen_on_one_column = false; fullscreen_on_one_column = false;
}; wrap_focus = false;
master = {
orientation = "center";
slave_count_for_center_master = 0;
mfact = 0.4;
allow_small_split = true;
}; };
render.direct_scanout = 0; render.direct_scanout = 0;
monitorv2 = { xwayland.force_zero_scaling = true;
misc.vrr = 2; # VA suffers from VRR flicker
quirks.prefer_hdr = 1;
cursor = {
min_refresh_rate = 48;
no_break_fs_vrr = 1;
};
};
monitor = {
output = "DP-3"; output = "DP-3";
mode = "3840x2160@144"; mode = "3840x2160@144";
position = "0x0"; position = "0x0";
scale = 1; scale = 1;
bitdepth = 10; bitdepth = 10;
addreserved = "80,0,0,0"; reserved_area.top = 80;
cm = if cfg.hdr then "hdredid" else "srgb";
sdr_min_luminance = 0.25; sdr_min_luminance = 0.25;
sdr_max_luminance = 250; sdr_max_luminance = 250;
icc = toString ./fv43u.icc;
cm = "dcip3";
}; };
xwayland.force_zero_scaling = true;
misc.vrr = 2; # VA suffers from VRR flicker
cursor = {
min_refresh_rate = 48;
no_break_fs_vrr = 1;
};
# experimental.xx_color_management_v4 = true;
}; };
programs.waybar.settings.mainBar = programs.waybar.settings.mainBar =
let let
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness"; tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness";
cmd = cmd = "${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
if cfg.hdr then
# sh
''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$(printf "1.%02d" $((BRIGHTNESS / 2)))
hyprctl keyword monitor ${monitorline},sdrbrightness,$BRIGHTNESS
''
else
"${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in in
{ {
"custom/saturation" = { }; "custom/saturation" = { };
@@ -52,7 +52,7 @@ in
nvidiaPersistenced = false; nvidiaPersistenced = false;
}; };
home-manager.users.${username}.wayland.windowManager.hyprland.settings = { home-manager.users.${username}.wayland.windowManager.hyprland.settings.config = {
cursor.no_hardware_cursors = true; cursor.no_hardware_cursors = true;
opengl.nvidia_anti_flicker = true; opengl.nvidia_anti_flicker = true;
# render.direct_scanout = 1; # render.direct_scanout = 1;
+6 -4
View File
@@ -17,11 +17,13 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
windowrule = [ window_rule = [
{ {
name = "firefox-pip"; name = "firefox-pip";
"match:class" = "^(firefox)$"; match = {
"match:title" = "^(Picture-in-Picture)$"; class = "^(firefox)$";
title = "^(Picture-in-Picture)$";
};
float = true; float = true;
no_follow_mouse = true; no_follow_mouse = true;
opaque = true; opaque = true;
@@ -29,7 +31,7 @@ in
fullscreen_state = "2 0"; fullscreen_state = "2 0";
move = "240 8"; move = "240 8";
keep_aspect_ratio = true; keep_aspect_ratio = true;
border_size = "0"; border_size = 0;
animation = "fade"; animation = "fade";
} }
]; ];
+2 -2
View File
@@ -21,10 +21,10 @@ in
bind = [ bind = [
"SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard" "SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard"
]; ];
windowrule = [ window_rule = [
{ {
name = "Flameshot"; name = "Flameshot";
"match:class" = "^(flameshot)$"; match.class = "^(flameshot)$";
animation = "fade"; animation = "fade";
float = true; float = true;
} }
+2 -2
View File
@@ -16,10 +16,10 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.windowrule = [ wayland.windowManager.hyprland.settings.window_rule = [
{ {
name = "Gnome Keyring"; name = "Gnome Keyring";
"match:class" = "^(gcr-prompter)$"; match.class = "^(gcr-prompter)$";
border_size = 0; border_size = 0;
rounding = 10; rounding = 10;
animation = "slide"; animation = "slide";
+6 -1
View File
@@ -19,7 +19,12 @@ in
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
settings = { settings = {
bind = [ bind = [
"SUPER_SHIFT,V,exec,uwsm app -- ${lib.getExe pkgs.grimblast} --freeze copy area" {
_args = [
"SUPER + SHIFT + V"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${lib.getExe pkgs.grimblast} --freeze copy area')")
];
}
]; ];
}; };
}; };
+6 -1
View File
@@ -22,7 +22,12 @@ in
''; '';
in in
[ [
"SUPER_SHIFT,C,exec,uwsm app -- ${color-picker}" {
_args = [
"SUPER + SHIFT + C"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${color-picker}')")
];
}
]; ];
}; };
} }
+6 -1
View File
@@ -16,7 +16,12 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.bind = [ wayland.windowManager.hyprland.settings.bind = [
"SUPER,T,exec,uwsm app -- kitty" {
_args = [
"SUPER + T"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- kitty')")
];
}
]; ];
programs.kitty = { programs.kitty = {
enable = true; enable = true;
+9 -1
View File
@@ -17,7 +17,15 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
home-manager.users.${username} = { home-manager.users.${username} = {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
bindr = [ "SUPER,SUPER_L,exec,uwsm app -- ${lib.getExe pkgs.walker}" ]; bind = [
{
_args = [
"SUPER + SUPER_L"
(lib.generators.mkLuaInline "hl.dsp.exec_cmd('uwsm app -- ${lib.getExe pkgs.walker}')")
{ release = true; }
];
}
];
/* /*
layerrule = [ layerrule = [
# TODO: Add layer rules for walker # TODO: Add layer rules for walker