From: Andre Ramnitz Date: Fri, 5 Sep 2025 00:02:23 +0000 (+0200) Subject: hypr: update config for 0.50.x X-Git-Url: https://git.ramnitz.eu/?a=commitdiff_plain;h=4ec38cc89f91becca7eef5cfb347f24536963c95;p=dotfiles.git hypr: update config for 0.50.x --- diff --git a/dot-config/hypr/fragments/animations.conf b/dot-config/hypr/fragments/animations.conf index 5306d348..38d19a5a 100644 --- a/dot-config/hypr/fragments/animations.conf +++ b/dot-config/hypr/fragments/animations.conf @@ -54,7 +54,9 @@ animations { # Custom Animations / Overrides animation = windowsMove, 1, 3, easeOutQuad - animation = borderangle, 1, 60, border, loop + # animation = borderangle, 1, 5, border, loop + animation = workspacesIn, 1, 2.91, easeInOutExpo, slidefade 57% + animation = workspacesOut, 1, 2.21, easeInOutExpo, slidefade 57% } diff --git a/dot-config/hypr/fragments/keybinds.conf b/dot-config/hypr/fragments/keybinds.conf index 2a6c5e67..3c9171d9 100644 --- a/dot-config/hypr/fragments/keybinds.conf +++ b/dot-config/hypr/fragments/keybinds.conf @@ -14,8 +14,10 @@ bind = $mainmod Shift, Q, killactive, bind = $mainmod Shift, Return, exec, foot -w 1280x800 -o pad=0x0 -a popup bind = $mainmod, A, pseudo, # dwindle, A for Artificial bind = $mainmod, B, exec, $HOME/.config/hypr/scripts/browser_focus_or_run.sh -bind = $mainmod, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-startmenu.ini -bind = $mainmod Shift, D, exec, killall fuzzel || fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini +# 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, 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, sherlock bind = $mainmod, E, exec, foot -a lf lfrun bind = $mainmod SHIFT, E, exec, dolphin bind = $mainmod, F, fullscreen,1 @@ -34,12 +36,10 @@ bind = $mainmod, S, layoutmsg, swapwithmaster # master bind = $mainmod, S, togglesplit, # dwindle bind = $mainmod Shift, S, swapsplit, # dwindle bind = $mainmod, V, togglefloating -bind = $mainmod Shift, V, exec, killall fuzzel || cliphist list | fuzzel -d --config=$HOME/.config/fuzzel/fuzzel-centered.ini | cliphist decode | wl-copy 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, Z, centerwindow - # scratchpad bind = $mainmod, I, togglespecialworkspace, overlay bind = $mainmod SHIFT, I, movetoworkspace, special:overlay @@ -57,13 +57,12 @@ bind = $suremod, L, exec, ~/.config/hypr/scripts/powermen 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 SHIFT, F12, exec, ~/.config/hypr/scripts/gamemode.sh bind = ALT CTRL, L, exec, hyprlock # media keys # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── -bindl = , XF86AudioRaiseVolume, exec, wp+ -bindl = , XF86AudioLowerVolume, exec, wp- +bindl = , XF86AudioRaiseVolume, exec, /home/andy/.local/bin/wp+ +bindl = , XF86AudioLowerVolume, exec, /home/andy/.local/bin/wp- bindl = , XF86AudioMute, exec, ~/.config/hypr/scripts/muteorunmute.sh bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioNext, exec, playerctl next @@ -87,15 +86,16 @@ bind = $mainmod, L, movefocus, r bind = $mainmod, K, movefocus, u bind = $mainmod, J, movefocus, d -# move windows or entire groups -bind = $mainmod SHIFT, left, movewindow, l -bind = $mainmod SHIFT, right, movewindow, r -bind = $mainmod SHIFT, up, movewindow, u -bind = $mainmod SHIFT, down, movewindow, d -bind = $mainmod SHIFT, H, movewindow, l -bind = $mainmod SHIFT, L, movewindow, r -bind = $mainmod SHIFT, K, movewindow, u -bind = $mainmod SHIFT, J, movewindow, d +# swap windows or entire groups if tiled, move around if floated +$moveAmount = 120 +bind = $mainmod SHIFT, left, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount l +bind = $mainmod SHIFT, right, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount r +bind = $mainmod SHIFT, up, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount u +bind = $mainmod SHIFT, down, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount d +bind = $mainmod SHIFT, H, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount l +bind = $mainmod SHIFT, L, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount r +bind = $mainmod SHIFT, K, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount u +bind = $mainmod SHIFT, J, exec, $HOME/.config/hypr/scripts/moveorswapwindow.sh $moveAmount d # Move windows into or out of groups with $suremod bind = $mainmod CTRL, left, movewindoworgroup, l @@ -119,17 +119,6 @@ bind = $mainmod, U, changegroupactive, b bind = $mainmod SHIFT, O, movegroupwindow, f bind = $mainmod SHIFT, U, movegroupwindow, b -# Move floating windows u/d/l/r -bind = $mainmod ALT, left, moveactive, -40 0 -bind = $mainmod ALT, right, moveactive, 40 0 -bind = $mainmod ALT, up, moveactive, 0 -40 -bind = $mainmod ALT, down, moveactive, 0 40 -bind = $mainmod ALT, H, moveactive, -40 0 -bind = $mainmod ALT, L, moveactive, 40 0 -bind = $mainmod ALT, K, moveactive, 0 -40 -bind = $mainmod ALT, J, moveactive, 0 40 - - # workspaces # ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── diff --git a/dot-config/hypr/fragments/layerrules.conf b/dot-config/hypr/fragments/layerrules.conf index fe3222a4..ffed9af9 100644 --- a/dot-config/hypr/fragments/layerrules.conf +++ b/dot-config/hypr/fragments/layerrules.conf @@ -1,12 +1,26 @@ # kak: filetype=conf:tabstop=4:indentwidth=4:ai +# general layerrule = blurpopups, top + +# waybar layerrule = blur, waybar layerrule = ignorealpha 0.1, waybar +layerrule = xray 1, waybar +layerrule = noanim, waybar + +# mako layerrule = blur, notifications layerrule = ignorealpha 0.1, notifications layerrule = ignorezero, notifications + +# gtkdock layerrule = blur, GTKDock layerrule = ignorealpha 0.1, GTKDock +layerrule = xray 1, GTKDock + +# fuzzel layerrule = blur, launcher layerrule = ignorealpha 0.1, launcher +layerrule = dimaround, launcher +layerrule = animation layers, launcher diff --git a/dot-config/hypr/fragments/windowrules.conf b/dot-config/hypr/fragments/windowrules.conf index 832a3c71..3e1bc34b 100644 --- a/dot-config/hypr/fragments/windowrules.conf +++ b/dot-config/hypr/fragments/windowrules.conf @@ -17,6 +17,7 @@ windowrule = float, class:^(lxqt-.*)$ windowrule = float, class:^(vlc.*)$ windowrule = float, class:^(pcmanfm.*)$ windowrule = float, class:^(qalculate.*)$ +windowrule = size 1560 1000, class:^(org.kde.dolphin)$ windowrule = minsize 1 1, stayfocused, float, class:^(com.nextcloud.desktopclient.nextcloud)$ windowrule = stayfocused, class:^(com.nextcloud.desktopclient.nextcloud)$ @@ -24,10 +25,15 @@ windowrule = float, class: ^(com.nextcloud.desktopclient.nextcloud)$ windowrule = float, class:^(kdesystemsettings.*)$ windowrule = float, size 1560 1000, pin, workspace special:overlay, class:^(org.keepassxc.KeePassXC)$ -windowrule = stayfocused, class:^(org.kde.kwalletd6)$ + +# handle dialogs +windowrule = float, title:^((Über|About|Öffnen).*)$ +windowrule = stayfocused, title:^((Über|About|Öffnen).*)$ +windowrule = float, class:^((org.kde.kwalletd6|org.kde.ksecretd).*)$ +windowrule = stayfocused, class:^((org.kde.kwalletd6|org.kde.ksecretd).*)$ # indicate windows with special attention -windowrulev2 = bordercolor 0xff$base08 0x8a$base08 45deg, initialTitle:^(upgrayyedd)$ +windowrulev2 = bordercolor 0xff$berror 0xff$black 30deg, initialTitle:^(upgrayyedd)$ # handle windows tray items (xembedsniproxy) # dirty: can't match it since class+title are empty @@ -36,10 +42,6 @@ windowrulev2 = bordercolor 0xff$base08 0x8a$base08 45deg, initialTitle:^(upgrayy windowrule = opacity 0, title:^()$, class:^()$ windowrule = noblur, title:^()$, class:^()$ -# handle dialogs -windowrule = float, title:^((Über|About).*)$ -windowrule = stayfocused, title:^((Über|About).*)$ - # handle gimp (omg) windowrule = workspace 5, class:^(gimp)$ windowrule = float, class:^(gimp)$ @@ -47,19 +49,25 @@ windowrule = tile, class:^(gimp)$, title:^(.*GIMP)$ # handle krita windowrule = workspace 5, class:^(krita)$ -windowrule = float, class:^(krita)$,title:.*(?=\sKrita) -windowrule = minsize 1280 800, class:^(krita)$,title:.*(?=\sKrita) -windowrule = focusonactivate, class:^(krita)$,title:.*(?=\sKrita) +# windowrule = float, class:^(krita)$,title:.*(?=\sKrita) +# windowrule = minsize 1280 800, class:^(krita)$,title:.*(?=\sKrita) +# windowrule = focusonactivate, class:^(krita)$,title:.*(?=\sKrita) + +# handle Softmaker Office +windowrule = workspace 7, class:^(pm|tm|pr)$ # WIP: handle cava launched by .desktop file windowrule = float,class:^(cava|foot)$,title:cava -windowrule = noinitialfocus,^(cava|foot)$,title:cava +# windowrule = noinitialfocus,^(cava|foot)$,title:cava windowrule = size 1024 600,^(cava|foot)$,title:cava windowrule = move 100% 100%,^(cava|foot)$,title:cava # handle browsers -windowrule = tag +neverdim, class:^(firefox.*)$ 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)$ # handle video PiPs windowrule = float, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ @@ -68,9 +76,13 @@ windowrule = size 800 450, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in- windowrule = plugin:hyprbars:nobar, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ windowrule = noinitialfocus, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ windowrule = group deny, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ +windowrule = pin, class:^(firefox.*)$, title:^(Bild-im-Bild|Picture-in-picture)$ # handle terminal(s/-apps) windowrule = float, class:^(popup)$ +windowrule = float, class:^(clipse)$ +windowrule = plugin:hyprbars:nobar, class:^(clipse)$ + windowrule = pseudo, class:^(ncmpcpp)$ windowrule = workspace 4, class:^(ncmpcpp)$ windowrule = noinitialfocus, class:^(ncmpcpp)$ @@ -78,10 +90,12 @@ windowrule = float, stayfocused, center, opacity 1.0 override, class:^(kakpopup) # 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, class:^(lutris)$ +windowrule = workspace 7, class:^(thunderbird|thunderbird-bin)$ windowrule = float, class:^(pavucontrol.*)$ windowrule = maxsize 600 800, class:^(pavucontrol.*)$ @@ -105,20 +119,21 @@ 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)$ +windowrule = float, class:^(org.freedesktop.impl.portal.desktop.kde)$ +windowrule = stayfocused, class:^(org.freedesktop.impl.portal.desktop.kde)$ # handle steam client windowrule = float, class:^(steam)$ -windowrule = stayfocused, title:^()$, class:^(steam)$, title:^(Steam)$ -windowrule = suppressevent activate, class:^(steam)$, title:^(Steam)$ +windowrule = workspace 6, class:^(steam)$ windowrule = minsize 1 1, title:^()$, class:^(steam)$ -windowrule = noanim 1, class:^(steam)$ -windowrule = noblur 1, class:^(steam)$ -windowrule = norounding 1, class:^(steam)$ -windowrule = nodim 1, class:^(steam)$ -windowrule = decorate 0, class:^(steam)$ windowrule = plugin:hyprbars:nobar,class:^(steam)$ +# windowrule = decorate 0, class:^(steam)$ +# windowrule = stayfocused, title:^()$, class:^(steam)$, title:^(Steam)$ +# windowrule = suppressevent activate, class:^(steam)$, title:^(Steam)$ +# windowrule = noanim 1, class:^(steam)$ +# windowrule = noblur 1, class:^(steam)$ +# windowrule = norounding 1, class:^(steam)$ +# windowrule = nodim 1, class:^(steam)$ # handle wine/proton games $GAMES = ^(steam_app_.*|steam_proton|streaming_client|gamescope)$ diff --git a/dot-config/hypr/fragments/workspacerules.conf b/dot-config/hypr/fragments/workspacerules.conf index e1791795..8717c10c 100644 --- a/dot-config/hypr/fragments/workspacerules.conf +++ b/dot-config/hypr/fragments/workspacerules.conf @@ -3,10 +3,7 @@ # workspace rules #example: on-created-empty: exec, something" -workspace = 1, monitor:DP-1, default:true -workspace = 2, monitor:DP-1 -workspace = 3, monitor:DP-1 -workspace = 4, monitor:DP-1, gapsout:40, gapsin:20 -workspace = 5, monitor:DP-1 -workspace = 6, monitor:DP-1, float -workspace = special:magic, monitor:DP-1 +workspace = 1, default:1 +workspace = 4, gapsout:40, gapsin:20 +workspace = 6, float +workspace = special:magic diff --git a/dot-config/hypr/hyprland.conf b/dot-config/hypr/hyprland.conf index 604552be..3d4f6ac2 100644 --- a/dot-config/hypr/hyprland.conf +++ b/dot-config/hypr/hyprland.conf @@ -4,12 +4,12 @@ # ░▀░▀░░▀░░▀░░░▀░▀░▀▀▀░▀░▀░▀░▀░▀▀░░░░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀i # compiled plugins reside in /var/cache/hyprpm/[username]/ -# flavours integration -source=./base16-colors.conf +# colorscheme integration +source=./matugen-colors.conf # LG 34" monitorv2 { - output = DP-1 + output = DP-2 mode = preferred position = 0x0 scale = 1 @@ -24,30 +24,28 @@ monitorv2 { # other displays monitor=,preferred,auto-center-right,1,vrr,2 -exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP -exec-shutdown = setenv WAYLAND_DISPLAY= XDG_SESSION_TYPE= XDG_CURRENT_DESKTOP= - # Execute your favorite apps at launch +exec-once = dbus-update-activation-environment --systemd --all +# exec-once = /usr/bin/gnome-keyring-daemon --start --components=secrets --daemonize +exec-once = /usr/libexec/pam_kwallet_init exec-once = ~/.config/hypr/scripts/startup.sh -exec-once = hypridle exec-once = hyprpm reload -exec-once = swww-daemon -exec-once = swww img /home/andy/Bilder/Wallpapers/3440x1440\ SW.png -exec-once = hyprsunset -exec-once = flatpak run ch.threema.threema-desktop + +# Unset variables on exit +exec-shutdown = setenv WAYLAND_DISPLAY= XDG_SESSION_TYPE= XDG_CURRENT_DESKTOP= general { allow_tearing = 0 border_size = 2 gaps_in = 5 gaps_out = 10 - # col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg #vanilla colors - col.active_border = 0xea$base0C 0x8a$base0D 45deg - col.inactive_border = 0xea$base03 0xda$base02 45deg - col.nogroup_border_active = 0xea$base0E 0x8a$base08 45deg - col.nogroup_border = 0xea$base03 0xda$base02 45deg + # col.active_border = rgba(33ccffee) rgba(00ff99ee) 15deg #vanilla colors + col.active_border = 0xff$tertiary 0x88$tertiary 50deg + col.nogroup_border_active = 0xff$error 0x88$error 50deg + col.inactive_border = 0xff$background + col.nogroup_border = 0xff$background snap { - enabled = true + enabled = 1 window_gap = 10 monitor_gap = 0 border_overlap = 0 @@ -58,53 +56,52 @@ general { dwindle { pseudotile = yes force_split = 2 - smart_split = false + smart_split = 0 split_width_multiplier = 2.0 - single_window_aspect_ratio = 16 9 + single_window_aspect_ratio = 16 10 single_window_aspect_ratio_tolerance = 0.1 pseudotile = 1 # master switch for pseudotiling. Enabling is bound to mainMod + A in the keybinds section below - preserve_split = true # you probably want this + preserve_split = 1 # you probably want this } master { new_status = slave - allow_small_split = true + allow_small_split = 1 special_scale_factor = .80 mfact = .45 orientation = center slave_count_for_center_master = 2 center_master_fallback = left - inherit_fullscreen = false + inherit_fullscreen = 0 } decoration { - rounding = 4 + rounding = 10 dim_special = 0.3 - dim_inactive = true + dim_inactive = 1 dim_strength = 0.2 blur { - enabled = true - special = true - popups = false + enabled = 1 + special = 1 + popups = 0 size = 3 - passes = 1 - noise = 0.0317 + passes = 2 + noise = 0.0117 contrast = 0.8916 - brightness = 0.7172 + brightness = 0.8172 vibrancy = 0.1696 - vibrancy_darkness = 0.1 - ignore_opacity = true + vibrancy_darkness = 0.0 + ignore_opacity = 1 } shadow { - enabled = true - range = 20 + enabled = 1 + range = 5 render_power = 3 - sharp = false - ignore_window = true - color = 0xee$base01 - color_inactive = 0xee$base01 - offset = 1, 1 - scale = 0.9992 + ignore_window = 1 + color = 0xff$shadow + color_inactive = 0xff$shadow + offset = 0, 0 + scale = 1.0 } } @@ -132,60 +129,55 @@ device { accel_profile = custom 0.3308622437 0.000 0.224 0.449 0.673 0.997 1.335 1.672 2.010 2.348 2.685 3.186 3.699 4.212 4.725 5.237 5.750 6.263 6.776 7.288 7.801 8.314 8.827 9.339 9.852 10.365 10.878 11.390 11.903 12.416 13.476 } -gestures { - workspace_swipe = false -} - group { merge_groups_on_drag = 0 insert_after_current = 1 - col.border_active = 0xea$base0C 0xda$base0D 60deg - col.border_locked_active = 0xea$base0B 0xda$base0C 60deg - col.border_inactive = 0xea$base03 0xda$base02 60deg - col.border_locked_inactive = 0xea$base03 0xda$base02 60deg + col.border_active = 0xff$secondary 0x88$secondary 50deg + col.border_locked_active = 0xff$primary 0x88$primary 50deg + col.border_inactive = 0xff$background + col.border_locked_inactive = 0xff$background groupbar { enabled = 1 font_family = ZedMono NFP - font_size = 13 - font_weight_active = normal - font_weight_inactive = normal - text_color = 0xff$base01 - text_color_locked_active = 0xff$base05 - text_color_inactive = 0xff$base01 - text_color_locked_inactive = 0xff$base01 - height = 20 font_size = 16 - text_color = 0xFF$base00 - scrolling = false - col.active = 0xea$base0C 0x7a$base0C 45deg - col.inactive = 0xea$base03 0x6a$base03 45deg - col.locked_active = 0xea$base0B 0x6a$base0B 45deg - col.locked_inactive = 0xea$base03 0x6a$base03 45deg - indicator_gap = 1 - indicator_height = 8 - render_titles = false + font_weight_active = bold + font_weight_inactive = bold + text_color = 0xff$on_secondary + text_color_locked_active = 0xff$on_primary + text_color_inactive = 0xff$on_background + text_color_locked_inactive = 0xff$background + height = 22 + text_color = 0xff$on_secondary + scrolling = 1 + col.active = 0xff$secondary 0xaa$secondary 50deg + col.locked_active = 0xff$primary 0xaa$primary 50deg + col.inactive = 0xff$background + col.locked_inactive = 0xff$background + indicator_gap = 0 + indicator_height = 0 + render_titles = 1 priority = 3 rounding = 4 - round_only_edges = true - gradients = false - gradient_rounding = 4 - gradient_round_only_edges = true - stacked = false + round_only_edges = 1 + gradients = 1 + gradient_rounding = 10 + gradient_round_only_edges = 1 + stacked = 0 gaps_in = 2 gaps_out = 2 - keep_upper_gap = true + keep_upper_gap = 0 } } misc { force_default_wallpaper = 1 # Set to 0 to disable the anime mascot wallpapers - key_press_enables_dpms = true - vfr = true #enable for battery savings + key_press_enables_dpms = 1 + vfr = 1 #enable for battery savings render_unfocused_fps = 60 allow_session_lock_restore = 1 initial_workspace_tracking = 1 font_family = ZedMono NFP - enable_swallow = 1 + enable_swallow = 0 swallow_regex = ^(Alacritty|kitty|foot|footclient|konsole)$ } @@ -196,7 +188,7 @@ binds { } xwayland { - force_zero_scaling = true # unscale XWayland + force_zero_scaling = 1 # unscale XWayland } render { @@ -224,7 +216,7 @@ experimental { } debug { - disable_logs = false # file logging. defaults to 1 for production + disable_logs = 0 # file logging. defaults to 1 for production } plugin { @@ -232,15 +224,41 @@ plugin { bar_text_font = ZedMono NFP bar_text_size = 12 bar_height = 24 - bar_color = 0xfb$base00 - col.text = 0xff$base05 + bar_color = 0xff$surface + col.text = 0xff$on_surface bar_part_of_window = 1 bar_precedence_over_border = 1 #NOTE: hyprbars-button = color, size, icon, on-click - hyprbars-button = 0xaa$base08, 20, 󰖭, hyprctl dispatch killactive - hyprbars-button = 0xaa$base0A, 20, 󰁌, hyprctl dispatch fullscreen 1 - hyprbars-button = 0xaa$base0B, 20, , hyprctl dispatch pin active + hyprbars-button = 0xaa$error, 20, 󰖭, hyprctl dispatch killactive + hyprbars-button = 0xaa$primary, 20, 󰁌, hyprctl dispatch fullscreen 1 + hyprbars-button = 0xaa$secondary, 20, , hyprctl dispatch pin active } + hyprfoci { + # can be from -1 to 1, will be + # dynamic ratio with the window instead. + # recommend fixed size for image as dynamic can look weird + # in some cases. + # leave one as 0 to keep original image ratio (image only) + # width, height + size = 36, 0 + + # shift down right (can be from -1 to 1 similarly) + pos = 0, 2 + + # rounding of 3~4 usually results in circle + # depends on monitor type + # higher and lower will make it look square-ly + # doesn't affect image + rounding = 1.0 + + # color = rgba(FFDD33FF) + + #0: left/top, 1: middle, 2: down/right + origin = 1, 0 + + # Absolute path is needed + img = /media/multimedia/Bilder/Icons/gentoo-36px-Ripples-larry.svg.png + } } diff --git a/dot-config/hypr/hyprlock.conf b/dot-config/hypr/hyprlock.conf index ca499fb1..202cbef7 100644 --- a/dot-config/hypr/hyprlock.conf +++ b/dot-config/hypr/hyprlock.conf @@ -1,4 +1,4 @@ -source=./base16-colors.conf +source=./matugen-colors.conf $font = ZedMono NFP @@ -14,7 +14,7 @@ animations { background { monitor = path = ~/Bilder/Wallpapers-simple/atmosphere.png - color = 0xdd$base00 + color = 0xdd$background blur_passes = 2 blur_size = 7 noise = 0.0117 @@ -29,7 +29,7 @@ image { size = 200 rounding = -1 # negative values mean circle border_size = 4 - border_color = 0xff$base05 + border_color = 0xff$on_background 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 +43,10 @@ image { shape { size = 300, 20 - color = 0xff$base0C + color = 0xff$primary rounding = 8 border_size = 2 - border_color = 0xffbase01 + border_color = 0xff$outline_variant xray = false shadow_passes = 3 shadow_size = 8 @@ -61,7 +61,7 @@ label { text_align = right font_size = 64 font_family = $font - color = 0xff$base05 + color = 0xff$on_background position = 0, 360 halign = center @@ -76,7 +76,7 @@ label { text_align = right font_size = 15 font_family = $font - color = 0xff$base05 + color = 0xff$on_background position = -10, -5 halign = right @@ -89,7 +89,7 @@ label { text_align = right font_size = 15 font_family = $font - color = 0xff$base05 + color = 0xff$on_background position = 10, -5 halign = left @@ -99,22 +99,22 @@ label { input-field { monitor = - size = 300, 50 + size = 320, 50 outline_thickness = 3 dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 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$base00 - inner_color = 0xff$base05 - font_color = 0xff$base00 + outer_color = 0xff$outline + inner_color = 0xff$surface + font_color = 0xff$on_surface fade_on_empty = true fade_timeout = 1000 # Milliseconds before fade_on_empty is triggered. - placeholder_text = $PROMPT # Text rendered in the input box when it's empty. + 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$base07 - fail_color = 0xff$base08 # if authentication failed, changes outer_color and fail message color + check_color = 0xff$primary + fail_color = 0xff$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/scripts/RofiEmoji.sh b/dot-config/hypr/scripts/RofiEmoji.sh index fee9b92d..1f0c78b7 100755 --- a/dot-config/hypr/scripts/RofiEmoji.sh +++ b/dot-config/hypr/scripts/RofiEmoji.sh @@ -1,7 +1,6 @@ #!/bin/bash -# sed '1,/^### DATA ###$/d' $0 | rofi -dmenu -config ~/.config/rofi/config.rasi | cut -d ' ' -f 1 | tr -d '\n' | wl-copy -sed '1,/^### DATA ###$/d' $0 | fuzzel --config=$HOME/.config/fuzzel/fuzzel-centered.ini --dmenu | cut -d ' ' -f 1 | tr -d '\n' | wl-copy +sed '1,/^### DATA ###$/d' $0 | fuzzel --config=$HOME/.config/fuzzel/fuzzel-emojii.ini --dmenu | cut -d ' ' -f 1 | tr -d '\n' | wl-copy exit ### DATA ### diff --git a/dot-config/hypr/scripts/moveorswapwindow.sh b/dot-config/hypr/scripts/moveorswapwindow.sh new file mode 100755 index 00000000..01261589 --- /dev/null +++ b/dot-config/hypr/scripts/moveorswapwindow.sh @@ -0,0 +1,37 @@ +#!/bin/sh +#https://github.com/hyprwm/Hyprland/issues/2321 + +RESIZE_SIZE=${1:?Missing resize size} + +RESIZE_PARAMS_X=0 +RESIZE_PARAMS_Y=0 + +DIRECTION=${2:?Missing move direction} +case $DIRECTION in +l) + RESIZE_PARAMS_X=-$RESIZE_SIZE + ;; +r) + RESIZE_PARAMS_X=$RESIZE_SIZE + ;; +u) + RESIZE_PARAMS_Y=-$RESIZE_SIZE + ;; +d) + RESIZE_PARAMS_Y=$RESIZE_SIZE + ;; +*) + echo "kbye" + return 1 + ;; +esac + +ACTIVE_WINDOW=$(hyprctl activewindow -j) +IS_FLOATING=$(echo "$ACTIVE_WINDOW" | jq .floating) + +if [ "$IS_FLOATING" = "true" ]; then + hyprctl dispatch moveactive "$RESIZE_PARAMS_X" "$RESIZE_PARAMS_Y" +else + hyprctl dispatch movewindow "$DIRECTION" +fi + diff --git a/dot-config/hypr/scripts/startup.sh b/dot-config/hypr/scripts/startup.sh index c9e61e6e..58e88393 100755 --- a/dot-config/hypr/scripts/startup.sh +++ b/dot-config/hypr/scripts/startup.sh @@ -4,29 +4,6 @@ logger '============================' logger 'HYPRLAND MAIN STARTUP BEGIN' -# shellcheck disable=SC2155,SC2046 -# test ! -d "$XDG_RUNTIME_DIR" && export XDG_RUNTIME_DIR=$(mktemp -d /tmp/$(id -u)-runtime-dir.XXX) && logger 'xdg-runtime dir set NOW' -# test ! "$DBUS_SESSION_BUS_ADDRESS" && dbus-daemon --session --address=unix:path="$XDG_RUNTIME_DIR"/bus && logger 'dbus session daemon started' -dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - -# export PATH="$HOME/.local/bin:$HOME/.cargo/bin:$HOME/go/bin:$HOME/Applications:$PATH" - -#------------------------------------------------------ xdg-desktop-portal -# killall -e xdg-desktop-portal-hyprland -# killall -e xdg-desktop-portal-kde -# killall -e xdg-desktop-portal-gtk -# killall -e xdg-desktop-portal-gnome -# killall -e xdg-desktop-portal-wlr -# killall xdg-desktop-portal -# logger 'all xdg-desktop killed ' -# sleep 2 -# # test -f /usr/libexec/xdg-desktop-portal-kde && sleep 1 && /usr/libexec/xdg-desktop-portal-kde & -# test -f /usr/libexec/xdg-desktop-portal-gtk && /usr/libexec/xdg-desktop-portal-gtk & -# sleep 1 -# test -f /usr/libexec/xdg-desktop-portal-hyprland && /usr/libexec/xdg-desktop-portal-hyprland & -# sleep 2 -# test -f /usr/libexec/xdg-desktop-portal && /usr/libexec/xdg-desktop-portal & - #------------------------------------------------------ polkit-kde if ! pidof /usr/libexec/polkit-kde-authentication-agent-1; then if ! command -v /usr/libexec/polkit-kde-authentication-agent-1 &> /dev/null @@ -44,38 +21,31 @@ fi test -f ~/.Xresources && xrdb ~/.Xresources & logger '.Xresources merged' -#------------------------------------------------------ waybar and tray apps -# gentoo-pipewire-launcher restart > /dev/null 2>&1 & -# logger 'gentoo-pipewire-launcher (re-)started' +#------------------------------------------------------ wallpaper daemon +! pidof swww-daemon && /usr/bin/swww-daemon > /dev/null 2>&1 & -# sleep 2 -# ! pidof mpd && mpd # does fork unless called with --no-daemon -# logger 'mpd is running' -# pidof mpd-mpris && pkill mpd-mpris || mpd-mpris > /dev/null 2>&1 & -# logger 'mpd-mpris is running' - -sleep 1 +#------------------------------------------------------ waybar pidof waybar && pkill waybar || waybar > /dev/null 2>&1 & logger 'waybar started' +#------------------------------------------------------ fix mime association +# fix open_with menu in dolphin etc. +env XDG_MENU_PREFIX=plasma- kbuildsycoca6 + +#------------------------------------------------------ autorun tray apps pidof mako && pkill mako || mako > /dev/null 2>&1 & -pidof kwalletd6 && ~/.config/hypr/scripts/nextcloud.sh > /dev/null 2>&1 & -pidof kwalletd6 && nextcloud --background & pidof xembedsniproxy && pkill xembedsniproxy || xembedsniproxy > /dev/null 2>&1 & # xembedsniproxy needs plasma-workspace pidof udiskie && pkill udiskie || udiskie --no-automount --no-notify --tray > /dev/null 2>&1 & - openrgb --startminimized -p sunset > /dev/null 2>&1 & - -# ! pidof swww-daemon && nohup /usr/bin/swww-daemon > /dev/null 2>&1 -# sleep 0.5 && ~/.local/bin/rndwallpaper swww -# sleep 0.5 && ~/.local/bin/rndhyprpaper - -pidof wl-paste && pkill wl-paste || true -wl-paste --type text --watch cliphist store & -wl-paste --type image --watch cliphist store & - -# fix open_with menu in dolphin etc. -XDG_MENU_PREFIX=plasma- kbuildsycoca6 +! pidof hypridle && hypridle & +! pidof hyprsunset && hyprsunset & +! pidof clipse && clipse --listen + +#------------------------------------------------------ autorun flatpaks/other (delayed) +sleep 5 +! pidof nextcloud && nextcloud --background & +flatpak run ch.threema.threema-desktop > /dev/null 2>&1 & +flatpak run org.keepassxc.KeePassXC > /dev/null 2>&1 & logger 'HYPRLAND MAIN STARTUP END' logger '============================'