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 = {
config = {
general.layout = "master";
master = {
orientation = "right";
mfact = 0.65;
always_keep_position = true;
};
input.kb_options = [ "lv3:caps_switch" ];
};
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 = {
@@ -52,6 +65,5 @@
};
};
wayland.windowManager.hyprland.settings.input.kb_options = [ "lv3:caps_switch" ];
services.nextcloud-client.enable = true;
}
+1 -1
View File
@@ -17,7 +17,7 @@
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;
systemd.user.services = {
nm-applet = {
@@ -14,12 +14,27 @@ let
'';
};
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
{
config = lib.mkIf cfg.enable {
wayland.windowManager.hyprland = {
enable = true;
configType = "lua";
settings = {
config = {
general = {
allow_tearing = true;
layout = lib.mkIf cfg.scrolling "scrolling";
@@ -28,63 +43,68 @@ in
accel_profile = "flat";
kb_layout = osConfig.services.xserver.xkb.layout;
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 = {
layers_hog_keyboard_focus = false;
disable_hyprland_logo = true;
disable_splash_rendering = true;
vrr = lib.mkDefault 2;
enable_swallow = true;
swallow_regex = "^kitty$";
};
binds.scroll_event_delay = 0;
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";
"match:class" = "^(neovide)$";
match.class = "^(neovide)$";
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.sunwait
];
text = ''
text =
# sh
''
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper
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/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 = [
pkgs.adw-gtk3
pkgs.awww
pkgs.tela-icon-theme
theme-script
];
@@ -344,43 +347,17 @@ in
};
wayland.windowManager.hyprland = {
settings = {
windowrule = [
settings.window_rule = [
{
name = "floating-zenity";
"match:class" = "^(zenity)$";
match.class = "^(zenity)$";
float = true;
}
];
decoration = {
inactive_opacity = 0.8;
shadow = {
enabled = true;
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
extraConfig =
# lua
''
require("theme")
'';
};
@@ -518,8 +495,8 @@ in
})
// (lib.optionalAttrs osConfig.programs.hyprland.enable {
hyprland = {
input_path = ./hyprland.conf;
output_path = "${config.xdg.configHome}/hypr/theme.conf";
input_path = ./hyprland.lua;
output_path = "${config.xdg.configHome}/hypr/theme.lua";
post_hook = pkgs.writeShellScript "reload-hyprland-theme" ''
if command -v hyprctl &> /dev/null; then
hyprctl reload
+1 -1
View File
@@ -28,7 +28,7 @@ in
systemd.enable = false;
package = null;
portalPackage = null;
settings = {
settings.config = {
ecosystem = {
no_update_news = true;
no_donation_nag = true;
+16 -44
View File
@@ -32,76 +32,48 @@ in
'')
];
home-manager.users.${username} =
let
monitorline = "DP-3,3840x2160@144,0x0,1,bitdepth,10,cm,${if cfg.hdr then "hdr" else "srgb"}";
in
{
home-manager.users.${username} = {
programs.mpv.config = {
vo = "gpu-next";
gpu-api = "vulkan";
gpu-context = "waylandvk";
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 = {
config = {
scrolling = {
column_width = 0.4;
focus_fit_method = 0;
fullscreen_on_one_column = false;
};
master = {
orientation = "center";
slave_count_for_center_master = 0;
mfact = 0.4;
allow_small_split = true;
wrap_focus = false;
};
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";
mode = "3840x2160@144";
position = "0x0";
scale = 1;
bitdepth = 10;
addreserved = "80,0,0,0";
cm = if cfg.hdr then "hdredid" else "srgb";
reserved_area.top = 80;
sdr_min_luminance = 0.25;
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 =
let
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness";
cmd =
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";
cmd = "${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in
{
"custom/saturation" = { };
@@ -52,7 +52,7 @@ in
nvidiaPersistenced = false;
};
home-manager.users.${username}.wayland.windowManager.hyprland.settings = {
home-manager.users.${username}.wayland.windowManager.hyprland.settings.config = {
cursor.no_hardware_cursors = true;
opengl.nvidia_anti_flicker = true;
# render.direct_scanout = 1;
+6 -4
View File
@@ -17,11 +17,13 @@ in
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
wayland.windowManager.hyprland.settings = {
windowrule = [
window_rule = [
{
name = "firefox-pip";
"match:class" = "^(firefox)$";
"match:title" = "^(Picture-in-Picture)$";
match = {
class = "^(firefox)$";
title = "^(Picture-in-Picture)$";
};
float = true;
no_follow_mouse = true;
opaque = true;
@@ -29,7 +31,7 @@ in
fullscreen_state = "2 0";
move = "240 8";
keep_aspect_ratio = true;
border_size = "0";
border_size = 0;
animation = "fade";
}
];
+2 -2
View File
@@ -21,10 +21,10 @@ in
bind = [
"SUPER_SHIFT,V,exec,XDG_CURRENT_DESKTOP=sway uwsm app -- flameshot gui --clipboard"
];
windowrule = [
window_rule = [
{
name = "Flameshot";
"match:class" = "^(flameshot)$";
match.class = "^(flameshot)$";
animation = "fade";
float = true;
}
+2 -2
View File
@@ -16,10 +16,10 @@ in
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
wayland.windowManager.hyprland.settings.windowrule = [
wayland.windowManager.hyprland.settings.window_rule = [
{
name = "Gnome Keyring";
"match:class" = "^(gcr-prompter)$";
match.class = "^(gcr-prompter)$";
border_size = 0;
rounding = 10;
animation = "slide";
+6 -1
View File
@@ -19,7 +19,12 @@ in
wayland.windowManager.hyprland = {
settings = {
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
[
"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 {
home-manager.users.${username} = {
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 = {
enable = true;
+9 -1
View File
@@ -17,7 +17,15 @@ in
config = lib.mkIf cfg.enable {
home-manager.users.${username} = {
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 = [
# TODO: Add layer rules for walker