viking-mate: match Hyprland style/binds to cn-arch

This commit is contained in:
2025-09-19 13:53:06 +02:00
parent f0dd9a766e
commit 599ddbadef
4 changed files with 247 additions and 49 deletions

View File

@@ -1,7 +1,103 @@
general { gaps_in = 6; gaps_out = 12; border_size = 2; col.active_border = rgba(4f84ccff) rgba(3c6eb1ff) 45deg; col.inactive_border = rgba(4f84cc80); layout = master; }
decoration { rounding = 8; blur = yes; blur_size = 7; blur_passes = 3; drop_shadow = yes; shadow_range = 20; shadow_render_power = 3; col.shadow = rgba(00000066); }
animations { enabled = yes; bezier = ease, 0.05, 0.9, 0.1, 1.0; animation = windows, 1, 5, ease, slide; animation = windowsOut, 1, 5, ease, slide; animation = border, 1, 10, default; animation = fade, 1, 7, ease; animation = workspaces, 1, 6, ease; }
# Laptop adopts desktop look & feel
# Theme, blur, shadows, groupbar, master tuning
general {
layout = master
gaps_in = 3
gaps_out = 0 2 2 2
border_size = 1
col.active_border = rgba(79,132,204,0.8)
col.inactive_border = rgba(21,40,64,0.5)
resize_on_border = false
allow_tearing = false
# Match Waybar/kitty frosting like PC
layerrule = blur, waybar
layerrule = blurpopups, waybar
layerrule = ignorealpha 0.2, waybar
layerrule = blur, kitty
layerrule = ignorealpha 0.1, kitty
}
group {
col.border_active = rgba(79,132,204,0.8)
col.border_inactive = rgba(21,40,64,0.4)
col.border_locked_active = 0xfc6a0300
col.border_locked_inactive = 0x66775500
groupbar {
font_size = 12
height = 18
gradients = true
col.active = rgb(79,132,204)
col.inactive = rgba(21,40,64,0.3)
}
}
decoration {
rounding = 5
rounding_power = 4.0
active_opacity = 1
inactive_opacity = 1
fullscreen_opacity = 1
dim_inactive = false
dim_strength = 0.2
dim_around = 1.0
blur {
enabled = true
size = 2
passes = 3
xray = true
vibrancy = 0.18
}
shadow {
enabled = true
range = 6
render_power = 2
sharp = false
ignore_window = true
color = 0xdd0b1b2b
scale = 1.0
}
}
animations {
enabled = true
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
dwindle {
pseudotile = true
preserve_split = true
}
master {
new_status = slave
orientation = center
mfact = 0.6
slave_count_for_center_master = 4
new_on_top = true
inherit_fullscreen = true
new_on_active = after
center_master_fallback = left
}
misc {
force_default_wallpaper = 1
disable_hyprland_logo = false
}
xwayland { force_zero_scaling = true }
# Laptop-only input niceties
input {
kb_layout = ultimatekeys
follow_mouse = 1
@@ -12,6 +108,3 @@ input {
}
}
master { new_is_master = true; mfact = 0.56; orientation = left; }
xwayland { force_zero_scaling = true; }

View File

@@ -1,43 +1,111 @@
# same as desktop + brightness keys are useful on laptops
$mod = SUPER
bind = $mod, SPACE, exec, rofi -show drun
bind = $mod, RETURN, exec, kitty
bind = $mod, B, exec, firefox
# Same spirit as desktop; laptop gets brightness keys too
bind = $mod, Q, killactive,
bind = $mod, F, fullscreen, 0
bind = $mod, V, togglefloating,
$mainMod = SUPER
bind = $mod, H, movefocus, l
bind = $mod, L, movefocus, r
bind = $mod, K, movefocus, u
bind = $mod, J, movefocus, d
# App commands (match desktop stack)
$terminal = uwsm app -- kitty
$fileManager = uwsm app -- nautilus
$launcher = uwsm app -- walker
$uuctl = uwsm app -- uuctl walker -d
$emote = uwsm app -- emote
$notcenter = uwsm app -- swaync-client -t -sw
$notdnd = uwsm app -- swaync-client -d
$nothide = uwsm app -- swaync-client --hide-latest
$notclose = uwsm app -- swaync-client --close-latest
$notcloseall = uwsm app -- swaync-client --close-all
$lockcmd = hyprlock
bind = $mod, 1, workspace, 1
bind = $mod, 2, workspace, 2
bind = $mod, 3, workspace, 3
bind = $mod, 4, workspace, 4
bind = $mod, 5, workspace, 5
bind = $mod, 6, workspace, 6
bind = $mod, 7, workspace, 7
bind = $mod, 8, workspace, 8
bind = $mod, 9, workspace, 9
bind = $mod, 0, workspace, 10
# Layout / groups (like desktop)
bind = $mainMod, P, pseudo,
bind = $mainMod, J, togglesplit,
bind = $mainMod SHIFT, J, swapsplit,
bind = $mainMod SHIFT, T, togglegroup,
bind = $mainMod, T, changegroupactive,
bind = $mainMod, F, fullscreen,
bind = $mainMod, V, togglefloating,
# Screenshots
bind = , PRINT, exec, grimblast copy screen
bind = SHIFT, PRINT, exec, grimblast copy area
# Window move (match desktop)
bind = $mainMod ALT_L, H, movewindoworgroup, l
bind = $mainMod ALT_L, J, movewindoworgroup, d
bind = $mainMod ALT_L, K, movewindoworgroup, u
bind = $mainMod ALT_L, L, movewindoworgroup, r
# Audio / mic / brightness
bindle =, XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bindle =, XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bindle =, XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bindle =, XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindle =, XF86MonBrightnessUp, exec, brightnessctl set +5%
bindle =, XF86MonBrightnessDown, exec, brightnessctl set 5%-
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioNext, exec, playerctl next
# Usability
bind = $mainMod SHIFT, Q, killactive,
bind = $mainMod, L, exec, $lockcmd
bind = $mainMod, M, exit,
bind = $mod, ESCAPE, exec, hyprlock
# Apps
bind = $mainMod, return, exec, $terminal
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, D, exec, $launcher
bind = $mainMod SHIFT, D, exec, $uuctl
bind = $mainMod, PERIOD, exec, $emote
# SwayNC controls
bind = $mainMod, Grave, exec, $notcenter
bind = $mainMod SHIFT, Grave, exec, $notdnd
bind = $mainMod, A, exec, $nothide
bind = $mainMod SHIFT, A, exec, $notclose
bind = $mainMod CTRL, A, exec, $notcloseall
# Screenshots (use your Satty build like desktop)
bind = ALT SHIFT, 3, exec, GRIMBLAST_EDITOR="/home/cnachtigall/data/git/clone/Satty/target/debug/satty -f" grimblast --notify edit output
bind = ALT SHIFT, 4, exec, GRIMBLAST_EDITOR="/home/cnachtigall/data/git/clone/Satty/target/debug/satty -f" grimblast --notify edit area
# Focus / move (arrows like desktop)
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Workspaces (match numbering)
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move to workspaces
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Drag move/resize like desktop
bindm = $mainMod SHIFT, mouse:272, movewindow
bindm = $mainMod SHIFT, mouse:273, resizewindow
# Audio via PipeWire ctl (desktop style)
bindl = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindl = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
# SwayOSD feedback (same as PC)
bindel = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
bindel = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
bindel = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
bindel = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
# Brightness (laptop useful)
bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise
bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower

View File

@@ -1,8 +1,13 @@
exec-once = bash -lc 'command -v /usr/lib/lxqt-policykit-agent >/dev/null && /usr/lib/lxqt-policykit-agent &'
exec-once = hyprpaper
exec-once = hypridle
# Align with desktop services + laptop extras
exec-once = uwsm app -- swaync
exec-once = xsettingsd
exec-once = ~/.config/waybar/scripts/hyprsunset_daemon.sh
exec-once = uwsm app -- waybar
exec = hyprpaper -c $HOME/.config/hyprpaper.conf
exec = swayosd-server
exec-once = hypridle
# Laptop applets (only if present)
exec-once = bash -lc 'command -v nm-applet >/dev/null && nm-applet &'
exec-once = bash -lc 'command -v blueman-applet >/dev/null && blueman-applet &'
exec-once = waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/style.css

View File

@@ -1,7 +1,39 @@
## Communications
windowrule = workspace 10, class:^(info\.mumble\.Mumble|discord|TeamSpeak|vesktop)$
windowrule = workspace 9, class:^(Element|signal|Signal|org\.telegram\.desktop)$
windowrule = noscreenshare, class:^(Element|signal|Signal|org\.telegram\.desktop)$
## Multimedia
windowrule = workspace 8, class:Spotify
## Development
windowrule = float, class:jetbrains-webstorm, title:Welcome to WebStorm
windowrule = size 1080 720, class:jetbrains-webstorm, title:Welcome to WebStorm
## Launchers / Games (kept from PC; harmless on laptop)
windowrule = workspace 2, class:^(steam|battle\.net\.exe|net\.lutris\.Lutris)$
windowrule = center 1, class:^(battle\.net\.exe|net\.lutris\.Lutris)$
windowrule = float, class:^(battle\.net\.exe|net\.lutris\.Lutris)$
windowrule = float, class:steam, title:Friends List
# windowrule = workspace 1,force, class:^(wowclassic|wow)\.exe$, title:World of Warcraft
# windowrule = fullscreen, class:^(wowclassic|wow)\.exe$, title:World of Warcraft
## System helpers & screenshot editor
windowrule = float, class:org.keepassxc.KeePassXC
windowrule = noscreenshare, class:org.keepassxc.KeePassXC
windowrule = float, class:org.kde.dolphin
windowrule = float, class:com.saivert.pwvucontrol
windowrule = float, class:org.gnome.Nautilus
windowrule = float, class:org.gnome.NautilusPreviewer
windowrule = float, class:org.gnome.FileRoller
windowrule = float, class:com.gabm.satty
windowrule = size >700 >400, class:com.gabm.satty
## Focus tweaks
windowrule = focusonactivate, class:zen
## Generic floaters you already had
windowrulev2 = float, class:^(pavucontrol|blueman-manager|nm-connection-editor|wdisplays|org.gnome.Calculator|qalculate-gtk)$
windowrulev2 = center, class:^(pavucontrol|blueman-manager|nm-connection-editor|wdisplays|org.gnome.Calculator|qalculate-gtk)$
windowrulev2 = size 1000 640, class:^(pavucontrol|blueman-manager)$
windowrulev2 = workspace 2, class:^(firefox|zen)$
windowrulev2 = workspace 3, class:^(spotify|Spotify)$