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
+20 -8
View File
@@ -16,15 +16,28 @@
]; ];
}; };
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
general.layout = "master"; config = {
master = { general.layout = "master";
orientation = "right"; master = {
mfact = 0.65; orientation = "right";
always_keep_position = true; mfact = 0.65;
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,77 +14,97 @@ 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 = {
general = { config = {
allow_tearing = true; general = {
layout = lib.mkIf cfg.scrolling "scrolling"; allow_tearing = true;
}; layout = lib.mkIf cfg.scrolling "scrolling";
input = { };
accel_profile = "flat"; input = {
kb_layout = osConfig.services.xserver.xkb.layout; accel_profile = "flat";
kb_variant = osConfig.services.xserver.xkb.variant; kb_layout = osConfig.services.xserver.xkb.layout;
kb_variant = osConfig.services.xserver.xkb.variant;
touchpad.natural_scroll = true;
};
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;
}; };
bind = [ bind = [
"SUPER,C,killactive" (bind "SUPER + C" "hl.dsp.window.close()")
"SUPER,P,togglefloating," (bind "SUPER + P" ''
"SUPER,P,pin," function()
"SUPER,D,fullscreen,1" hl.dsp.window.float()
"SUPER,V,fullscreen,0" hl.dsp.window.pin()
end
'')
(bind "SUPER + D" "hl.dsp.window.fullscreen({ mode = 'maximized' })")
(bind "SUPER + V" "hl.dsp.window.fullscreen({ mode = 'fullscreen' })")
"SUPER,f,workspace,r-1" (bind "SUPER + F" "hl.dsp.focus({ workspace = 'r-1' })")
"SUPER,h,workspace,r+1" (bind "SUPER + H" "hl.dsp.focus({ workspace = 'r+1' })")
"SUPER_SHIFT,f,movetoworkspace,r-1" (bind "SUPER + SHIFT + F" "hl.dsp.window.move({ workspace = 'r-1' })")
"SUPER_SHIFT,h,movetoworkspace,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 if cfg.scrolling then
[ [
"SUPER,up,layoutmsg,focus u" (bind "SUPER + SHIFT + LEFT" "hl.dsp.layout('swapcol l')")
"SUPER,down,layoutmsg,focus d" (bind "SUPER + SHIFT + RIGHT" "hl.dsp.layout('swapcol r')")
"SUPER,right,layoutmsg,focus r"
"SUPER,left,layoutmsg,focus l"
"SUPER_SHIFT,up,layoutmsg,movewindowto u" (bind "SUPER + UP" "hl.dsp.layout('focus u')")
"SUPER_SHIFT,down,layoutmsg,movewindowto d" (bind "SUPER + DOWN" "hl.dsp.layout('focus d')")
"SUPER_SHIFT,left,layoutmsg,swapcol l" (bind "SUPER + LEFT" "hl.dsp.layout('focus l')")
"SUPER_SHIFT,right,layoutmsg,swapcol r" (bind "SUPER + RIGHT" "hl.dsp.layout('focus r')")
"SUPER,mouse_up,layoutmsg,focus r" (bind "SUPER + mouse_up" "hl.dsp.layout('focus r')")
"SUPER,mouse_down,layoutmsg,focus l" (bind "SUPER + mouse_down" "hl.dsp.layout('focus l')")
] ]
else else
[ [
"SUPER_SHIFT,up,movewindow,u" (bind "SUPER + SHIFT + UP" "hl.dsp.window.move({ direction = 'up' })")
"SUPER_SHIFT,down,movewindow,d" (bind "SUPER + SHIFT + DOWN" "hl.dsp.window.move({ direction = 'down' })")
"SUPER_SHIFT,left,movewindow,l" (bind "SUPER + SHIFT + LEFT" "hl.dsp.window.move({ direction = 'left' })")
"SUPER_SHIFT,right,movewindow,r" (bind "SUPER + SHIFT + RIGHT" "hl.dsp.window.move({ direction = 'right' })")
"SUPER,up,movefocus,u" (bind "SUPER + UP" "hl.dsp.focus({ direction = 'up' })")
"SUPER,down,movefocus,d" (bind "SUPER + DOWN" "hl.dsp.focus({ direction = 'down' })")
"SUPER,left,movefocus,l" (bind "SUPER + LEFT" "hl.dsp.focus({ direction = 'left' })")
"SUPER,right,movefocus,r" (bind "SUPER + RIGHT" "hl.dsp.focus({ direction = 'right' })")
"SUPER,mouse_up,workspace,r+1" (bind "SUPER + mouse_up" "hl.dsp.focus({ workspace = 'r-1' })")
"SUPER,mouse_down,workspace,r-1" (bind "SUPER + mouse_down" "hl.dsp.focus({ 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;
};
decoration.border_part_of_window = false;
input.touchpad.natural_scroll = true;
}; };
}; };
+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" })
+107 -130
View File
@@ -189,104 +189,106 @@ in
pkgs.zenity pkgs.zenity
pkgs.sunwait pkgs.sunwait
]; ];
text = '' text =
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper # sh
STATE=${config.xdg.stateHome}/md3-evo ''
WALLPAPER=${config.xdg.configHome}/matugen/wallpaper
STATE=${config.xdg.stateHome}/md3-evo
SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme) SCHEME=$(dconf read /org/gnome/desktop/interface/color-scheme)
if [ "$SCHEME" = "'prefer-light'" ]; then if [ "$SCHEME" = "'prefer-light'" ]; then
MODE="light" MODE="light"
else
MODE="dark"
fi
if [ ! -d "$STATE" ]; then
mkdir -p "$STATE"
fi
if [ -f "$STATE/mode" ]; then
MODE=$(cat "$STATE/mode")
fi
if [ $# -eq 0 ]; then
echo -e "\033[1mUsage:\033[0m mode|light|dark|auto|toggle|wallpaper"
exit 1
elif [ "$1" = "mode" ]; then
echo -e "$MODE"
exit 0
elif [ "$1" = "wallpaper" ]; then
if [ $# -eq 1 ]; then
PICKED=$(zenity --file-selection --file-filter='Images | *.png *.jpg *.jpeg *.svg *.bmp *.gif')
cp "$PICKED" "$WALLPAPER"
else else
cp "$2" "$WALLPAPER" MODE="dark"
fi fi
elif [ "$1" = "toggle" ]; then
if [ ! -d "$STATE" ]; then
mkdir -p "$STATE"
fi
if [ -f "$STATE/mode" ]; then
MODE=$(cat "$STATE/mode")
fi
if [ $# -eq 0 ]; then
echo -e "\033[1mUsage:\033[0m mode|light|dark|auto|toggle|wallpaper"
exit 1
elif [ "$1" = "mode" ]; then
echo -e "$MODE"
exit 0
elif [ "$1" = "wallpaper" ]; then
if [ $# -eq 1 ]; then
PICKED=$(zenity --file-selection --file-filter='Images | *.png *.jpg *.jpeg *.svg *.bmp *.gif')
cp "$PICKED" "$WALLPAPER"
else
cp "$2" "$WALLPAPER"
fi
elif [ "$1" = "toggle" ]; then
if [ "$MODE" = "light" ]; then
MODE="dark"
else
MODE="light"
fi
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "light" ] || [ "$1" = "dark" ] || [ "$1" == "auto" ]; then
MODE="$1"
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "init" ]; then
echo -e "\033[1mSetting up matugen\033[0m"
else
echo -e "\033[31mInvalid argument\033[0m"
exit 1
fi
if [ ! -f $WALLPAPER ]; then
echo -e "\033[31,1mNo wallpaper set\033[0m"
exit 1
fi
THEME_SERVICE_PATH="${config.xdg.configHome}/systemd/user/theme-init.timer"
if [ "$MODE" = "auto" ]; then
TIME=$(sunwait poll ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E || :)
if [ "$TIME" = "DAY" ]; then
MODE="light"
NEXT=6
else
MODE="dark"
NEXT=4
fi
NEXT=$(sunwait report ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E | awk "/Daylight:/ {print \$$NEXT}")
cat <<EOF | tee "$THEME_SERVICE_PATH" > /dev/null
[Unit]
Description=Next theme change timer
[Timer]
OnCalendar=*-*-* $(date -d "$NEXT today + 5 minutes" +'%H:%M'):00
AccuracySec=1min
[Install]
WantedBy=timers.target
EOF
else
rm -f "$THEME_SERVICE_PATH"
fi
systemctl --user daemon-reload &> /dev/null || :
systemctl --user restart theme-init.timer &> /dev/null || :
if command -v niri &> /dev/null; then
niri msg action do-screen-transition --delay-ms 500
fi
if [ "$MODE" = "light" ]; then if [ "$MODE" = "light" ]; then
MODE="dark" GTK_THEME="adw-gtk3"
else else
MODE="light" GTK_THEME="adw-gtk3-dark"
fi fi
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "light" ] || [ "$1" = "dark" ] || [ "$1" == "auto" ]; then
MODE="$1"
echo "$MODE" > "$STATE/mode"
elif [ "$1" = "init" ]; then
echo -e "\033[1mSetting up matugen\033[0m"
else
echo -e "\033[31mInvalid argument\033[0m"
exit 1
fi
if [ ! -f $WALLPAPER ]; then matugen image "$WALLPAPER" --type scheme-${cfg.flavour} --contrast ${builtins.toString cfg.contrast} --mode "$MODE"
echo -e "\033[31,1mNo wallpaper set\033[0m" awww img "$WALLPAPER"
exit 1
fi
THEME_SERVICE_PATH="${config.xdg.configHome}/systemd/user/theme-init.timer" dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
if [ "$MODE" = "auto" ]; then dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
TIME=$(sunwait poll ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E || :) dconf write /org/gnome/desktop/interface/icon-theme "'Tela'"
if [ "$TIME" = "DAY" ]; then '';
MODE="light"
NEXT=6
else
MODE="dark"
NEXT=4
fi
NEXT=$(sunwait report ${builtins.toString cfg.auto-dark.lat}N ${builtins.toString cfg.auto-dark.lon}E | awk "/Daylight:/ {print \$$NEXT}")
cat <<EOF | tee "$THEME_SERVICE_PATH" > /dev/null
[Unit]
Description=Next theme change timer
[Timer]
OnCalendar=*-*-* $(date -d "$NEXT today + 5 minutes" +'%H:%M'):00
AccuracySec=1min
[Install]
WantedBy=timers.target
EOF
else
rm -f "$THEME_SERVICE_PATH"
fi
systemctl --user daemon-reload &> /dev/null || :
systemctl --user restart theme-init.timer &> /dev/null || :
if command -v niri &> /dev/null; then
niri msg action do-screen-transition --delay-ms 500
fi
if [ "$MODE" = "light" ]; then
GTK_THEME="adw-gtk3"
else
GTK_THEME="adw-gtk3-dark"
fi
matugen image "$WALLPAPER" --type scheme-${cfg.flavour} --contrast ${builtins.toString cfg.contrast} --mode "$MODE"
awww img "$WALLPAPER"
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'"
'';
} }
); );
in in
@@ -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,44 +347,18 @@ 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; }
} ];
]; extraConfig =
decoration = { # lua
inactive_opacity = 0.8; ''
shadow = { require("theme")
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
'';
}; };
# TODO: include is coming in the next release # TODO: include is coming in the next release
@@ -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;
+73 -101
View File
@@ -32,120 +32,92 @@ in
'') '')
]; ];
home-manager.users.${username} = home-manager.users.${username} = {
let programs.mpv.config = {
monitorline = "DP-3,3840x2160@144,0x0,1,bitdepth,10,cm,${if cfg.hdr then "hdr" else "srgb"}"; vo = "gpu-next";
in gpu-api = "vulkan";
{ gpu-context = "waylandvk";
programs.mpv.config = { target-colorspace-hint = "auto";
vo = "gpu-next"; };
gpu-api = "vulkan"; wayland.windowManager.hyprland.settings = {
gpu-context = "waylandvk"; config = {
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 = {
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 = {
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";
sdr_min_luminance = 0.25;
sdr_max_luminance = 250;
};
xwayland.force_zero_scaling = true; xwayland.force_zero_scaling = true;
misc.vrr = 2; # VA suffers from VRR flicker misc.vrr = 2; # VA suffers from VRR flicker
quirks.prefer_hdr = 1;
cursor = { cursor = {
min_refresh_rate = 48; min_refresh_rate = 48;
no_break_fs_vrr = 1; no_break_fs_vrr = 1;
}; };
# experimental.xx_color_management_v4 = true;
}; };
monitor = {
programs.waybar.settings.mainBar = output = "DP-3";
let mode = "3840x2160@144";
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness"; position = "0x0";
cmd = scale = 1;
if cfg.hdr then bitdepth = 10;
# sh reserved_area.top = 80;
'' sdr_min_luminance = 0.25;
BRIGHTNESS=$(cat ${tmpFile} || echo "0") sdr_max_luminance = 250;
BRIGHTNESS=$(printf "1.%02d" $((BRIGHTNESS / 2))) icc = toString ./fv43u.icc;
hyprctl keyword monitor ${monitorline},sdrbrightness,$BRIGHTNESS cm = "dcip3";
'' };
else
"${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in
{
"custom/saturation" = { };
"custom/brightness" = {
return-type = "json";
exec = pkgs.writeShellScript "waybar-brightness" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
if [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 1)} ]; then
ICON="󰃚"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 2)} ]; then
ICON="󰃛"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 3)} ]; then
ICON="󰃜"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 4)} ]; then
ICON="󰃝"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 5)} ]; then
ICON="󰃞"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 6)} ]; then
ICON="󰃟"
else
ICON="󰃠"
fi
echo "{\"text\": \"$ICON $BRIGHTNESS%\"}"
'';
on-scroll-up = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS + 5))
BRIGHTNESS=$((BRIGHTNESS > 100 ? 100 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
on-scroll-down = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS - 5))
BRIGHTNESS=$((BRIGHTNESS < 0 ? 0 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
exec-on-event = true;
exec-if = "sleep 0.1";
interval = "once";
};
};
}; };
programs.waybar.settings.mainBar =
let
tmpFile = "${config.home-manager.users.${username}.xdg.configHome}/gbmonctl-brightness";
cmd = "${pkgs.gbmonctl}/bin/gbmonctl -prop brightness -val $BRIGHTNESS";
in
{
"custom/saturation" = { };
"custom/brightness" = {
return-type = "json";
exec = pkgs.writeShellScript "waybar-brightness" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
if [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 1)} ]; then
ICON="󰃚"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 2)} ]; then
ICON="󰃛"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 3)} ]; then
ICON="󰃜"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 4)} ]; then
ICON="󰃝"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 5)} ]; then
ICON="󰃞"
elif [ "$BRIGHTNESS" -lt ${toString (100 / 7 * 6)} ]; then
ICON="󰃟"
else
ICON="󰃠"
fi
echo "{\"text\": \"$ICON $BRIGHTNESS%\"}"
'';
on-scroll-up = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS + 5))
BRIGHTNESS=$((BRIGHTNESS > 100 ? 100 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
on-scroll-down = pkgs.writeShellScript "waybar-brightness-up" ''
BRIGHTNESS=$(cat ${tmpFile} || echo "0")
BRIGHTNESS=$((BRIGHTNESS - 5))
BRIGHTNESS=$((BRIGHTNESS < 0 ? 0 : BRIGHTNESS))
echo $BRIGHTNESS > ${tmpFile}
${cmd}
'';
exec-on-event = true;
exec-if = "sleep 0.1";
interval = "once";
};
};
};
}; };
} }
@@ -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