From: Andre Ramnitz Date: Fri, 23 Jan 2026 17:41:55 +0000 (+0100) Subject: hypr: 0.53.x migration X-Git-Url: https://git.ramnitz.eu/?a=commitdiff_plain;h=49715adf7f9bdb421c0c0b681c95fde01cf157dd;p=dotfiles.git hypr: 0.53.x migration --- diff --git a/dot-config/hypr/fragments/animations.conf b/dot-config/hypr/fragments/animations.conf index d7c333a..f3577c3 100644 --- a/dot-config/hypr/fragments/animations.conf +++ b/dot-config/hypr/fragments/animations.conf @@ -1,4 +1,7 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ animations { enabled = yes diff --git a/dot-config/hypr/fragments/env.conf b/dot-config/hypr/fragments/env.conf index 93ca1fd..0124b46 100644 --- a/dot-config/hypr/fragments/env.conf +++ b/dot-config/hypr/fragments/env.conf @@ -1,14 +1,15 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ # xdg stuff env = AMD_VULKAN_ICD=RADV -env = XDG_CURRENT_DESKTOP,Hyprland -env = XDG_SESSION_DESKTOP,Hyprland -env = XDG_SESSION_TYPE,wayland # prefer wayland env = QT_QPA_PLATFORM,wayland;xcb env = QT_QPA_PLATFORMTHEME,kde +# env = QT_QPA_PLATFORMTHEME,hyprqt6engine # experimental env = GDK_BACKEND,wayland,x11,* env = GTK_USE_PORTAL,1 env = MOZ_ENABLE_WAYLAND,1 @@ -30,9 +31,6 @@ env = HYPRCURSOR_SIZE,40 # tweak applications/frameworks env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = XDG_MENU_PREFIX,plasma- -# try hyprqt6engine -env = QT_QPA_PLATFORMTHEME=hyprqt6engine -# test stuff -env = TERMINAL,/usr/bin/foot diff --git a/dot-config/hypr/fragments/keybinds.conf b/dot-config/hypr/fragments/keybinds.conf index fb43633..64c8914 100644 --- a/dot-config/hypr/fragments/keybinds.conf +++ b/dot-config/hypr/fragments/keybinds.conf @@ -1,4 +1,7 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ # modifiers # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── @@ -11,14 +14,15 @@ $mainmod = SUPER # example: bind = $mainmod Shift, Return, exec, [float; size 1280 800;] foot -o pad=0x0 bind = $mainmod, Return, exec, footclient bind = $mainmod Ctrl, Return, exec, foot -bind = $mainmod Shift, Return, exec, footclient -w 1280x800 -o pad=0x0 -a popup +bind = $mainmod Shift, Return, exec, foot -w 1280x800 -o pad=0x0 -a popup bind = $mainmod Shift, Q, killactive, bind = $mainmod, A, pseudo, # dwindle, A for Artificial bind = $mainmod, B, exec, $HOME/.config/hypr/scripts/browser_focus_or_run.sh # bind = $mainmod, C, exec, killall fuzzel || cliphist list | fuzzel -d --config=$HOME/.config/fuzzel/fuzzel-emojii.ini --prompt='Copy > ' | cliphist decode | wl-copy -bind = $mainmod Ctrl, C, exec, foot -a clipse -e clipse -bind = $mainmod, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini -bind = $mainmod SHIFT, D, exec, hyprlauncher +# bind = $mainmod Ctrl, C, exec, foot -a clipse -e clipse +bind = $mainmod, C, exec, qs -c noctalia-shell ipc call launcher clipboard +bind = $mainmod, D, exec, qs -c noctalia-shell ipc call launcher toggle +bind = $mainmod SHIFT, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini bind = $mainmod, E, exec, foot -a lf lf bind = $mainmod SHIFT, E, exec, dolphin bind = $mainmod, F, fullscreen,1 @@ -35,7 +39,8 @@ bind = $mainmod Shift, S, swapsplit, # dwindle bind = $mainmod, V, togglefloating bind = $mainmod, W, exec, killall -SIGUSR1 waybar bind = $mainmod SHIFT, W, exec, killall -SIGUSR2 waybar -bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh +# bind = $mainmod, grave, exec, ~/.config/hypr/scripts/RofiEmoji.sh +bind = $mainmod, grave, exec, qs -c noctalia-shell ipc call launcher emoji bind = $mainmod, C, centerwindow # scratchpad bind = $mainmod, I, togglespecialworkspace, overlay @@ -67,10 +72,9 @@ bind = $suremod, L, exec, ~/.config/hypr/scripts/powermen # misc keys # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -bind = $mainmod, Print, exec, hyprshot -m output -m active -o $HOME/Bilder/Screenshots -bind = SHIFT, Print, exec, hyprshot -m window -m active -o $HOME/Bilder/Screenshots -bind = CTRL, Print, exec, hyprshot -z -m region -o $HOME/Bilder/Screenshots -bind = ALT CTRL, L, exec, hyprlock +bind = $mainmod, Print, exec, flatpak run be.alexandervanhee.gradia --screenshot=INTERACTIVE +bind = SHIFT, Print, exec, flatpak run be.alexandervanhee.gradia --screenshot=FULL +bind = ALT CTRL, L, exec, qs -c noctalia-shell ipc call sessionMenu lockAndSuspend # media keys # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── diff --git a/dot-config/hypr/fragments/layerrules.conf b/dot-config/hypr/fragments/layerrules.conf index ffed9af..ccb19e1 100644 --- a/dot-config/hypr/fragments/layerrules.conf +++ b/dot-config/hypr/fragments/layerrules.conf @@ -1,26 +1,52 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ -# general -layerrule = blurpopups, top +layerrule { + name = general + blur_popups = on + match:namespace = top +} -# waybar -layerrule = blur, waybar -layerrule = ignorealpha 0.1, waybar -layerrule = xray 1, waybar -layerrule = noanim, waybar +layerrule { + name = waybar + blur = on + ignore_alpha = 0.1 + xray = 1 + no_anim = on + match:namespace = waybar +} -# mako -layerrule = blur, notifications -layerrule = ignorealpha 0.1, notifications -layerrule = ignorezero, notifications +layerrule { + name = mako + blur = on + ignore_alpha = 0 + match:namespace = notifications +} -# gtkdock -layerrule = blur, GTKDock -layerrule = ignorealpha 0.1, GTKDock -layerrule = xray 1, GTKDock +layerrule { + name = gtkdock + blur = on + ignore_alpha = 0.1 + xray = 1 + match:namespace = GTKDock +} + +layerrule { + name = fuzzel + blur = on + blur_popups = true + ignore_alpha = 0.5 + animation = layers + match:namespace = launcher +} + +layerrule { + name = noctalia + match:namespace = noctalia-background-.*$ + ignore_alpha = 0.5 + blur = true + blur_popups = true +} -# fuzzel -layerrule = blur, launcher -layerrule = ignorealpha 0.1, launcher -layerrule = dimaround, launcher -layerrule = animation layers, launcher diff --git a/dot-config/hypr/fragments/matugen-theme.conf b/dot-config/hypr/fragments/matugen-theme.conf new file mode 100644 index 0000000..a934bba --- /dev/null +++ b/dot-config/hypr/fragments/matugen-theme.conf @@ -0,0 +1,30 @@ +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + +general { + # col.active_border = rgba(33ccffee) rgba(00ff99ee) 15deg #vanilla colors + col.active_border = 0xee$secondary_container 0xa1$secondary_container 50deg + col.nogroup_border_active = 0xee$error 0xa1$error 50deg + col.inactive_border = 0x77$surface + col.nogroup_border = 0x77$error +} + +group { + col.border_active = 0xee$secondary_container 0xa1$secondary_container 50deg + col.border_locked_active = 0xee$green_container 0xa1$green_container 50deg + col.border_inactive = 0xcc$background + col.border_locked_inactive = 0xcc$background + groupbar { + col.active = 0xee$secondary_container 0xa1$secondary_container 50deg + col.locked_active = 0xff$green_container 0xa1$green_container 50deg + col.inactive = 0xcc$background 0x80$background 50deg + col.locked_inactive = 0xff$background 0x80$background 50deg + text_color = 0xff$on_secondary_container + text_color_locked_active = 0xff$on_green_container + text_color_inactive = 0xaf$on_background + text_color_locked_inactive = 0xaf$on_background + } +} + diff --git a/dot-config/hypr/fragments/permissions.conf b/dot-config/hypr/fragments/permissions.conf index e453b3a..951b510 100644 --- a/dot-config/hypr/fragments/permissions.conf +++ b/dot-config/hypr/fragments/permissions.conf @@ -1,4 +1,7 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow permission = /(usr|usr/local)/bin/(grim|wl-screenrec|wf-recorder), screencopy, ask diff --git a/dot-config/hypr/fragments/windowrules.conf b/dot-config/hypr/fragments/windowrules.conf index 8ab0440..b58d790 100644 --- a/dot-config/hypr/fragments/windowrules.conf +++ b/dot-config/hypr/fragments/windowrules.conf @@ -1,41 +1,84 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai - -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule -# windowrule = float,class:^(kitty)$,title:^(kitty)$ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# more windowrules +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ # hide hyprbars on non-floating windows -windowrule = plugin:hyprbars:nobar, floating:0 - -# handle plasma/kde/qt apps -windowrule = float, class:^(org.kde.*)$ -windowrule = float, class:^(ark.*)$ -windowrule = float, class:^(lxqt-.*)$ -windowrule = float, class:^(vlc.*)$ -windowrule = float, class:^(pcmanfm.*)$ -windowrule = float, class:^(qalculate.*)$ -windowrule = size 1280 720, class:^(org.kde.dolphin)$ - -windowrule = minsize 1 1, stayfocused, float, class:^(com.nextcloud.desktopclient.nextcloud)$ -windowrule = stayfocused, class:^(com.nextcloud.desktopclient.nextcloud)$ -windowrule = float, class: ^(com.nextcloud.desktopclient.nextcloud)$ - -windowrule = float, class:^(kdesystemsettings.*)$ -windowrule = float, class:^(org.keepassxc.KeePassXC|KeePassXC)$ - -# handle dialogs -windowrule = float, title:^((Über|About|Öffnen).*)$ -windowrule = stayfocused, title:^((Über|About|Öffnen|Neuen Ordner erstellen|Datei überschreiben|Create New Folder).*)$ -windowrule = float, class:^((org.kde.kwalletd6|org.kde.ksecretd|org.kde.polkit-kde-authentication-agent-1).*)$ -windowrule = stayfocused, class:^((org.kde.kwalletd6|org.kde.ksecretd|org.kde.polkit-kde-authentication-agent-1).*)$ -windowrule = float, title:^(.*)auncher$ -windowrule = stayfocused, class:negative:heroic,title:^(.*)Launcher$ +windowrule { + name = nobar1 + match:float = 0 + hyprbars:no_bar = 1 +} + +# hide hyprbars on specific windows +windowrule { + name = nobar2 + match:class = ^((steam).*)$ + hyprbars:no_bar = 1 +} + +windowrule { + name = floating_enable + float = on + size = 1280 800 + match:class = ^((org.kde|ark|lxqt|vlc|pcmanfm|qalculate|kdesystemsettings|org.keepassxc|KeePassXC|gimp|clipse|openrgb|nwg-look|alsa-scarlett-gui|lstopo|org.corectrl.CoreCtrl|LACT|lutris|blueman-manager|org.freedesktop.impl.portal|be.alexandervanhee.gradia).*)$ +} + +windowrule { + name = gimp_mainwindow + tile = on + float = off + match:class = ^(gimp)$ + match:title = ^(.*GIMP)$ +} + +windowrule { + name = nextcloud + min_size = 1 1 + stay_focused = on + float = on + match:class = ^(com.nextcloud.desktopclient.nextcloud)$ +} + +windowrule { + name = dialogs_floating + float = on + match:title = ^((Über|About|Öffnen|org.freedesktop.impl.portal.desktop.kde).*)$ +} + +windowrule { + name = dialogs_focused + stay_focused = on + match:title = ^((Über|About|Öffnen|Neuen Ordner erstellen|Datei überschreiben|Create New Folder|org.freedesktop.impl.portal).*)$ +} + +windowrule { + name = kwallet + float = on + stay_focused = on + match:class = ^((org.kde.kwalletd6|org.kde.ksecretd|org.kde.polkit-kde-authentication-agent-1).*)$ +} + +windowrule { + name = game_launchers + float = on + match:title = ^(.*)auncher$ +} + +windowrule { + name = heroic + stay_focused = on + match:class = negative:heroic + match:title = ^(.*)Launcher$ +} + # indicate windows with special attention -windowrulev2 = bordercolor 0xff$berror 0xff$black 30deg, initialTitle:^(upgrayyedd)$ +windowrule { + name = upgrayyedd + border_color = 0xff$berror 0xff$black 30deg + match:initial_title = ^(upgrayyedd)$ +} # handle windows tray items (xembedsniproxy) # dirty: can't match it since class+title are empty @@ -44,117 +87,157 @@ windowrulev2 = bordercolor 0xff$berror 0xff$black 30deg, initialTitle:^(upgrayye # windowrule = opacity 0, title:^()$, class:^()$ # windowrule = noblur, title:^()$, class:^()$ -# handle gimp (omg) -windowrule = workspace 5, class:^(gimp)$ -windowrule = float, class:^(gimp)$ -windowrule = tile, class:^(gimp)$, title:^(.*GIMP)$ - -# handle krita -windowrule = workspace 5, class:^(krita)$ - -# handle Softmaker Office -windowrule = workspace 7, class:^(pm|tm|pr)$ - -# handle browsers -windowrule = tag +neverdim, class:^(org.qutebrowser.*)$ -windowrule = tag +neverdim, class:^(Microsoft-edge.*)$ -windowrule = tag +neverdim, class:^(firefox.*)$ -windowrule = workspace 1, class:^(firefox.*)$ -windowrule = group barred, class:^(firefox.*)$, title:^(Mozilla Firefox)$ -windowrule = workspace 1, class:^(org.qutebrowser.*)$ -windowrule = group barred, class:^(org.qutebrowser.*)$ +windowrule { + name = browsers + tag = +neverdim + workspace = 1 + group = deny + match:class = ^(firefox|firefox-bin|org.qutebrowser.*|Microsoft-edge.*|qutebrowser)$ +} + +windowrule { + name = workspace3 + pseudo = on + no_initial_focus = on + workspace = 3 + match:class = ^(Threema.*|discord.*)$ +} + +windowrule { + name = workspace4 + workspace = 4 + match:class = ^((deezer|ncmpcpp|spotify|ardour).*)$ +} + +windowrule { + name = workspace5 + workspace = 5 + match:class = ^(gimp|krita)$ +} + +windowrule { + name = workspace6 + workspace = 6 + match:initial_class = ^(steam|heroic)$ +} + +windowrule { + name = workspace7 + workspace = 7 + match:class = ^(pm|tm|pr|thunderbird|thunderbird-bin)$ +} # handle video PiPs -windowrule = float, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = move onscreen 100%-w-10 52, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = size 800 450, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = plugin:hyprbars:nobar, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = noinitialfocus, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = group deny, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = pin, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = noborder, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ -windowrule = content video, class:^(firefox.*)$, initialTitle:^(Bild-im-Bild|Picture-in-Picture)$ +windowrule { + name = windowrule-26 + float = on + move = ((monitor_w-window_w)-10) (42) + size = 800 450 + no_initial_focus = on + group = deny + pin = on + border_size = 0 + content = video + tag = +neverdim + hyprbars:no_bar = 1 + match:class = ^(firefox.*)$ + match:initial_title = ^(Bild-im-Bild|Picture-in-Picture)$ +} # handle terminal(s/-apps) -windowrule = maxsize 1698 1374, initialClass:^(foot|footclient)$ -windowrule = float, class:^(popup)$ -windowrule = float, class:^(clipse)$ -windowrule = plugin:hyprbars:nobar, class:^(clipse)$ -windowrule = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup)$ - -# handle music player clients -windowrule = pseudo, class:^(ncmpcpp)$ -windowrule = workspace 4, class:^(ncmpcpp)$ -windowrule = noinitialfocus, class:^(ncmpcpp)$ -windowrule = workspace 4, class:^(deezer-nativefier.*)$ - -# handle other clients -windowrule = float, class:^(openrgb)$ -windowrule = float, class:^(nwg-look)$ -windowrule = float, class:^(alsa-scarlett-gui)$ -windowrule = float, class:^(lstopo)$ -windowrule = float, class:^(org.corectrl.CoreCtrl)$ -windowrule = float, initialTitle:^(LACT)$ -windowrule = float, class:^(lutris)$ -windowrule = workspace 7, class:^(thunderbird|thunderbird-bin)$ -windowrule = tag +neverdim, class:^(Gkrellm)$ - -windowrule = float, class:^(pavucontrol.*)$ -windowrule = maxsize 600 800, class:^(pavucontrol.*)$ - -windowrule = pseudo, class:^(Threema.*)$ -windowrule = noinitialfocus, class:^(Threema.*)$ -windowrule = workspace 3, class:^(Threema.*)$ - -windowrule = pseudo, class:^(discord.*)$ -windowrule = noinitialfocus, class:^(discord.*)$ -windowrule = workspace 3, class:^(discord.*)$ - -windowrule = float, class:^(blueman-manager.*)$ -windowrule = float, class:^(org.pulseaudio.pavucontrol.*)$ +# windowrule { +# name = wsize_limit +# match:class = ^(foot|footclient)$ +# } + +windowrule { + name = popup_class + float = on + match:class = ^(popup)$ +} + +windowrule { + name = kakpopup + float = 1 + stay_focused = 1 + opacity = 1.0 override + move = ((monitor_w-window_w)-10) ((monitor_h-window_h)-10) + match:class = ^(kakpopup)$ +} # handle ueberzugpp -windowrule = noanim, class:^(ueberzugpp.*)$ -windowrule = noinitialfocus, class:^(ueberzugpp.*)$ -windowrule = decorate off, class:^(ueberzugpp.*)$ -windowrule = noshadow on, class:^(ueberzugpp.*)$ -windowrule = group deny, class:^(ueberzugpp.*)$ - -# handle portals -windowrule = float, class:^(org.freedesktop.impl.portal.desktop.kde)$ -windowrule = stayfocused, class:^(org.freedesktop.impl.portal.desktop.kde)$ - -# handle game launchers -$GAMELAUNCHERS = ^(steam|heroic)$ - -windowrule = workspace 6, initialClass:$GAMELAUNCHERS -windowrule = float, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ -windowrule = float, initialClass:^(steam)$, title:negative:^()$ -windowrule = size 300 800, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ -windowrule = move onscreen 100%-w-10 25%, initialclass:^(steam)$, title:^(Freundesliste|Friendlist)$ -windowrule = minsize 1 1, initialClass:^(steam)$, title:^()$ -windowrule = plugin:hyprbars:nobar,class:^(steam)$ +windowrule { + name = windowrule-49 + no_anim = on + no_initial_focus = on + decorate = off + no_shadow = on + group = deny + match:class = ^(ueberzugpp.*)$ +} + +windowrule { + name = steam_general + float = on + match:initial_class = ^(steam)$ + match:title = negative:^()$ + rounding = 3 +} + +windowrule { + name = steam_artifacts + min_size = 1 1 + match:initial_class = ^(steam)$ + match:title = ^()$ +} + +windowrule { + name = steam_friendlist + match:initial_class = ^(steam)$ + match:title = ^(Freundesliste|Friendlist)$ + float = on + size = 300 800 + move = ((monitor_w*1)-window_w-10) ((monitor_h*0.25)) +} # handle wine/proton games $GAMES = ^(steam_app_.*|steam_proton|streaming_client|gamescope)$ -windowrule = tag +game, initialClass:$GAMES -windowrule = content game, tag:game +windowrule { + name = windowrule-56 + tag = +game + match:initial_class = $GAMES +} + +windowrule { + name = windowrule-57 + content = game + float = 1 + no_dim = 1 + no_blur = 1 + rounding = 0 + no_shadow = 1 + no_anim = 1 + opaque = 1 + min_size = 1280 800 + move = ((monitor_w*0.5)) ((monitor_h*0.5)) + idle_inhibit = always + fullscreen = 2 + match:tag = game +} # handle TAGS (always handle tags last) -windowrule = nodim 1, tag:neverdim - -windowrule = float, tag:game -windowrule = nodim 1, tag:game -windowrule = noblur 1, tag:game -windowrule = norounding 1, tag:game -windowrule = noshadow 1, tag:game -windowrule = noanim 1, tag:game -windowrule = opaque 1, tag:game -windowrule = minsize 1280 800, tag:game -windowrule = move 50% 50%, tag:game -windowrule = plugin:hyprbars:nobar, tag:game -windowrule = idleinhibit always, tag:game -windowrule = fullscreen, tag:game -windowrule = fullscreen, initialTitle:^(vkcube)$ +windowrule { + name = neverdim + no_dim = 1 + match:tag = neverdim +} + +windowrule { + name = windowrule-60 + fullscreen = on + match:initial_title = ^(vkcube)$ +} + # windowrule = immediate, tag:game #experimental + diff --git a/dot-config/hypr/fragments/workspacerules.conf b/dot-config/hypr/fragments/workspacerules.conf index 8717c10..23685f0 100644 --- a/dot-config/hypr/fragments/workspacerules.conf +++ b/dot-config/hypr/fragments/workspacerules.conf @@ -1,4 +1,7 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ # workspace rules #example: on-created-empty: exec, something" diff --git a/dot-config/hypr/hypridle.conf b/dot-config/hypr/hypridle.conf index d0829dc..22f2f84 100644 --- a/dot-config/hypr/hypridle.conf +++ b/dot-config/hypr/hypridle.conf @@ -1,3 +1,8 @@ +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + general { lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. before_sleep_cmd = loginctl lock-session # lock before suspend. diff --git a/dot-config/hypr/hyprland.conf b/dot-config/hypr/hyprland.conf index 0b1099c..9cc5a82 100644 --- a/dot-config/hypr/hyprland.conf +++ b/dot-config/hypr/hyprland.conf @@ -1,11 +1,9 @@ -# kak: filetype=conf:tabstop=4:indentwidth=4:ai +# kak: filetype=conf:tabstop=4:indentwidth=4 # ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ # ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ -# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀i +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ # compiled plugins reside in /var/cache/hyprpm/[username]/ - -# colorscheme integration -source=./matugen-colors.conf +source = ~/.config/hypr/noctalia/noctalia-colors.conf # LG 34" monitorv2 { @@ -27,29 +25,23 @@ monitor=,preferred,auto-center-right,1,vrr,2 # Execute your favorite apps at launch # exec-once = ~/.config/hypr/scripts/startup.sh -exec-once = dbus-update-activation-environment --systemd --all +# exec-once = dbus-update-activation-environment --systemd --all exec-once = /usr/libexec/pam_kwallet_init -exec-once = openrc --user hyprland # AFTER pam_kwallet_init!!! exec-once = hyprpm reload -exec-once = env XDG_MENU_PREFIX=plasma- kbuildsycoca6 -exec-once = matugen -t scheme-content image /home/andy/Wallpapers/3440x1440\ comet.jpg -# exec-once = openrgb -p default +exec-once = openrc --user hyprland # AFTER pam_kwallet_init!!! +# exec-once = env XDG_MENU_PREFIX=plasma- kbuildsycoca6 +# exec-once = matugen -m light image /media/multimedia/Wallpapers/7680x2160-purpleclouds.webp # Unset variables on exit -exec-shutdown = lastwall save +# exec-shutdown = lastwall save exec-shutdown = openrc --user default -exec-shutdown = setenv WAYLAND_DISPLAY= XDG_SESSION_TYPE= XDG_CURRENT_DESKTOP= +# exec-shutdown = setenv WAYLAND_DISPLAY= XDG_SESSION_TYPE= XDG_CURRENT_DESKTOP= general { allow_tearing = 1 - border_size = 2 - gaps_in = 10 - gaps_out = 20 - # col.active_border = rgba(33ccffee) rgba(00ff99ee) 15deg #vanilla colors - col.active_border = 0xff$primary 0x88$primary 50deg - col.nogroup_border_active = 0xff$error 0x88$error 50deg - col.inactive_border = 0xff$background - col.nogroup_border = 0xff$background + border_size = 3 + gaps_in = 5 + gaps_out = 10 snap { enabled = 1 window_gap = 10 @@ -57,6 +49,8 @@ general { border_overlap = 0 } layout = dwindle + # col.nogroup_border = $surface + # col.nogroup_border_active = $secondary } dwindle { @@ -78,12 +72,11 @@ master { orientation = center slave_count_for_center_master = 2 center_master_fallback = left - inherit_fullscreen = 0 } decoration { - rounding = 5 - rounding_power = 2 + rounding = 8 + rounding_power = 3 dim_special = 0.3 dim_inactive = 1 dim_strength = 0.2 @@ -102,12 +95,11 @@ decoration { } shadow { enabled = 1 - range = 5 + range = 4 render_power = 3 ignore_window = 1 - color = 0xff$shadow - color_inactive = 0xff$shadow - offset = 0, 0 + color = 0xee1a1a1a + offset = 0.25, 0.25 scale = 1.0 } } @@ -135,7 +127,7 @@ input { device { name = razer-razer-basilisk-v3 - sensitivity = 0 + sensitivity = -0.0 accel_profile = custom 0.0965014878 0.000 0.110 0.220 0.330 0.440 0.550 0.697 0.862 1.028 1.194 1.359 1.525 1.690 1.856 2.022 2.187 2.392 2.597 2.802 3.05 3.335 3.650 3.901 4.153 4.404 4.656 4.908 5.159 5.411 5.662 5.914 6.165 6.417 6.668 6.920 7.171 7.423 7.675 7.926 8.178 8.429 8.681 8.932 9.184 9.435 9.687 9.938 10.190 10.442 10.961 } @@ -148,35 +140,25 @@ device { group { merge_groups_on_drag = 0 insert_after_current = 1 - col.border_active = 0xff$secondary 0x88$secondary 50deg - col.border_locked_active = 0xff$tertiary 0x88$tertiary 50deg - col.border_inactive = 0xff$background - col.border_locked_inactive = 0xff$background groupbar { enabled = 1 - font_family = ZedMono NFP - font_size = 16 - font_weight_active = bold - font_weight_inactive = bold - text_color = 0xff$on_secondary - text_color_locked_active = 0xff$on_tertiary - text_color_inactive = 0xaa$on_background - text_color_locked_inactive = 0xaa$on_background - height = 22 + font_family = IBM Plex Sans + font_size = 15 + font_weight_active = medium + font_weight_inactive = medium + # text_color = 0xffefefef + # text_color_inactive = 0xff6f6f6f + height = 21 scrolling = 1 - col.active = 0xcc$secondary 0x80$secondary 50deg - col.locked_active = 0xcc$tertiary 0x80$tertiary 50deg - col.inactive = 0xcc$background 0x80$background 50deg - col.locked_inactive = 0xff$background 0x80$background 50deg indicator_gap = 0 indicator_height = 0 render_titles = 1 priority = 3 round_only_edges = 1 gradients = 1 - gradient_rounding = 5 - gradient_rounding_power = 2 - gradient_round_only_edges = 1 + gradient_rounding = 12 + gradient_rounding_power = 3 + gradient_round_only_edges = 0 stacked = 0 gaps_in = 2 gaps_out = 2 @@ -196,9 +178,11 @@ misc { initial_workspace_tracking = 1 font_family = ZedMono NFP enable_swallow = 0 - swallow_regex = ^(Alacritty|kitty|foot|footclient|konsole)$ - size_limits_tiled = 1 + swallow_regex = class:^((Alacritty|kitty|foot|footclient|konsole).*)$ + swallow_exception_regex = class:^((popup).*$ + size_limits_tiled = 0 session_lock_xray = 1 + on_focus_under_fullscreen = 1 } binds { @@ -213,7 +197,7 @@ xwayland { render { direct_scanout = 1 - cm_fs_passthrough = 2 + cm_fs_passthrough = 1 cm_enabled = 1 send_content_type = 1 cm_auto_hdr = 0 @@ -234,7 +218,7 @@ ecosystem { } experimental { - xx_color_management_v4 = 1 + # xx_color_management_v4 = 1 } debug { @@ -243,21 +227,20 @@ debug { plugin { hyprbars { - bar_text_font = ZedMono NFP - bar_text_size = 12 - bar_height = 24 - bar_color = 0xff$surface - col.text = 0xff$on_surface + bar_text_font = IBM Plex Sans + bar_text_size = 11 + bar_height = 21 + bar_color = rgb(101010) + col.text = rgb(efefef) bar_part_of_window = 1 bar_precedence_over_border = 1 #NOTE: hyprbars-button = color, size, icon, on-click - hyprbars-button = 0xaa$red, 18, 󰖭, hyprctl dispatch killactive - hyprbars-button = 0xaa$yellow, 18, 󰁌, hyprctl dispatch fullscreen 1 - hyprbars-button = 0xaa$green, 18, , hyprctl dispatch movetoworkspacesilent special:min + hyprbars-button = $error, 18, 󰖭, hyprctl dispatch killactive + hyprbars-button = $tertiary, 18, 󰁌, hyprctl dispatch fullscreen 1 + hyprbars-button = $secondary, 18, , hyprctl dispatch movetoworkspacesilent special:min } } - source=./fragments/animations.conf source=./fragments/env.conf source=./fragments/permissions.conf diff --git a/dot-config/hypr/hyprlauncher.conf b/dot-config/hypr/hyprlauncher.conf index cc1d2f9..e29bbf9 100644 --- a/dot-config/hypr/hyprlauncher.conf +++ b/dot-config/hypr/hyprlauncher.conf @@ -1,3 +1,8 @@ +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + finders { default_finder = desktop # desktop_launch_prefix = diff --git a/dot-config/hypr/hyprlock.conf b/dot-config/hypr/hyprlock.conf index 664bcac..3cdeb0a 100644 --- a/dot-config/hypr/hyprlock.conf +++ b/dot-config/hypr/hyprlock.conf @@ -1,4 +1,9 @@ -source=./matugen-colors.conf +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + +source=./noctalia/noctalia-colors.conf $font = ZedMono NFP @@ -13,8 +18,7 @@ animations { background { monitor = - # path = ~/Bilder/Wallpapers-simple/atmosphere.png - color = 0xee$background + color = rgba(000000a1) blur_passes = 3 blur_size = 7 noise = 0.117 @@ -25,11 +29,11 @@ background { } image { - path = /home/andy/Bilder/avatar.jpg + path = /media/universal/Avatare/2025.jpg size = 200 rounding = -1 # negative values mean circle border_size = 4 - border_color = 0xff$on_background + border_color = rgb(101010) rotate = 0 reload_time = -1 # seconds between reloading, 0 to reload with SIGUSR2 reload_cmd = # command to get new path. if empty, old path will be used. don't run "follow" commands like tail -F @@ -43,10 +47,10 @@ image { shape { size = 300, 20 - color = 0xff$secondary + color = $secondary rounding = 8 border_size = 2 - border_color = 0xff$outline_variant + border_color = rgb(101010) xray = false shadow_passes = 3 shadow_size = 8 @@ -56,19 +60,49 @@ shape { zindex = 0 } +# load average +shape { + size = 300, 20 + color = $tertiary + rounding = 8 + border_size = 2 + border_color = rgb(101010) + xray = false + shadow_passes = 3 + shadow_size = 8 + position = -100, -50 + halign = center + valign = center + zindex = 0 +} + label { - text = $TIME + text = cmd[update:1000] echo "load avg:$(uptime | cut -f5 -d':') " text_align = right - font_size = 64 + font_size = 15 font_family = $font - color = 0xff$on_background + color = $tertiary - position = 0, 360 + position = 10, -5 + halign = left + valign = top + zindex = 10 +} + +# input method +shape { + size = 300, 20 + color = $secondary + rounding = 8 + border_size = 2 + border_color = rgb(101010) + xray = false + shadow_passes = 3 + shadow_size = 8 + position = 0, 333 halign = center valign = center - shadow_passes = 3 - shadow_size = 4 - zindex = 10 + zindex = 0 } label { @@ -76,7 +110,7 @@ label { text_align = right font_size = 15 font_family = $font - color = 0xff$on_background + color = $tertiary position = -10, -5 halign = right @@ -84,16 +118,19 @@ label { zindex = 10 } +# time label { - text = cmd[update:1000] echo "load avg:$(uptime | cut -f5 -d':') " + text = $TIME text_align = right - font_size = 15 + font_size = 64 font_family = $font - color = 0xff$on_background + color = rgb(efefef) - position = 10, -5 - halign = left - valign = top + position = 0, 360 + halign = center + valign = center + shadow_passes = 3 + shadow_size = 4 zindex = 10 } @@ -105,16 +142,16 @@ input-field { dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 dots_center = false dots_rounding = -1 # -1 default circle, -2 follow input-field rounding - outer_color = 0xff$outline - inner_color = 0xff$surface - font_color = 0xff$on_surface + outer_color = rgb(000000) + inner_color = rgb(efefef) + font_color = rgb(000000) fade_on_empty = true fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. placeholder_text = Password required... # Text rendered in the input box when it's empty. hide_input = false rounding = -1 # -1 means complete rounding (circle/oval) - check_color = 0xff$primary - fail_color = 0xff$error # if authentication failed, changes outer_color and fail message color + check_color = $secondary + fail_color = $error # if authentication failed, changes outer_color and fail message color fail_text = $FAIL ($ATTEMPTS) # can be set to empty fail_transition = 300 # transition time in ms between normal outer_color and fail_color capslock_color = -1 diff --git a/dot-config/hypr/hyprpaper.conf b/dot-config/hypr/hyprpaper.conf index 46af24d..f89f983 100644 --- a/dot-config/hypr/hyprpaper.conf +++ b/dot-config/hypr/hyprpaper.conf @@ -1,3 +1,8 @@ +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + preload = ~/Bilder/Wallpapers-simple/beach.png preload = ~/Bilder/Wallpapers-simple/pulppixel22.png preload = ~/Bilder/Wallpapers-simple/WP.jpg diff --git a/dot-config/hypr/hyprqt6engine.conf b/dot-config/hypr/hyprqt6engine.conf index 2681f7a..6ab5b8a 100644 --- a/dot-config/hypr/hyprqt6engine.conf +++ b/dot-config/hypr/hyprqt6engine.conf @@ -1,9 +1,15 @@ +# kak: filetype=conf:tabstop=4:indentwidth=4 +# ░█░█░█░█░█▀█░█▀▄░█░░░█▀█░█▀█░█▀▄░░░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀ +# ░█▀█░░█░░█▀▀░█▀▄░█░░░█▀█░█░█░█░█░░░█░░░█░█░█░█░█▀▀░░█░░█░█ +# ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀ + theme { + color_scheme = style = Breeze - font_fixed = monospace - font_fixed_size = 14 - font = Sans Serif - font_size = 14 + font_fixed = BlexMono Nerd Font Propo + font_fixed_size = 11 + font = IBM Plex Sans + font_size = 11 icon_theme = Breeze Dark } diff --git a/dot-config/hypr/scripts/gamemode.sh b/dot-config/hypr/scripts/gamemode.sh index e023d52..b5b7b94 100755 --- a/dot-config/hypr/scripts/gamemode.sh +++ b/dot-config/hypr/scripts/gamemode.sh @@ -13,9 +13,11 @@ if [ "$HYPRGAMEMODE" = 1 ] ; then keyword group:groupbar:rounding 0;\ keyword input:force_no_accel 1;\ keyword input:follow mouse 0;" - sunsetr p gamemode + # sunsetr p gamemode + echo on > "$HOME/.cache/hyprgamemode" exit fi -sunsetr p default +# sunsetr p default +echo "" > "$HOME/.cache/hyprgamemode" hyprctl reload diff --git a/dot-config/hypr/scripts/grimblast b/dot-config/hypr/scripts/grimblast index 27c37e1..61af30b 100755 --- a/dot-config/hypr/scripts/grimblast +++ b/dot-config/hypr/scripts/grimblast @@ -47,7 +47,7 @@ env_editor_confirm() { echo "GRIMBLAST_EDITOR is set. Continuing..." else echo "GRIMBLAST_EDITOR is not set. Defaulting to gimp" - GRIMBLAST_EDITOR=gimp + GRIMBLAST_EDITOR="/bin/satty -f" fi }