From deb94ccecfde720a10872d880af376b4cf0b2e24 Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 7 Jun 2026 19:32:56 +0100 Subject: [PATCH] Finish hypr config --- .config/hypr/__hyprland.conf | 10 -- .config/hypr/apps.conf | 183 ------------------------ .config/hypr/apps.lua | 2 +- .config/hypr/autostart.conf | 12 -- .config/hypr/bindings.conf | 205 --------------------------- .config/hypr/bindings.lua | 40 +++--- .config/hypr/envs.conf | 29 ---- .config/hypr/input.conf | 71 ---------- .config/hypr/looknfeel.conf | 162 --------------------- .config/hypr/monitors.conf | 25 ---- .config/hypr/windows.conf | 15 -- .config/hypr/windows.lua | 9 +- .config/hypr/workspaces.conf | 33 ----- .config/hypr/workspaces.lua | 73 ++++------ .local/bin/station-move-to-workspace | 12 -- 15 files changed, 52 insertions(+), 829 deletions(-) delete mode 100644 .config/hypr/__hyprland.conf delete mode 100644 .config/hypr/apps.conf delete mode 100644 .config/hypr/autostart.conf delete mode 100644 .config/hypr/bindings.conf delete mode 100644 .config/hypr/envs.conf delete mode 100644 .config/hypr/input.conf delete mode 100644 .config/hypr/looknfeel.conf delete mode 100644 .config/hypr/monitors.conf delete mode 100644 .config/hypr/windows.conf delete mode 100644 .config/hypr/workspaces.conf delete mode 100755 .local/bin/station-move-to-workspace diff --git a/.config/hypr/__hyprland.conf b/.config/hypr/__hyprland.conf deleted file mode 100644 index 51bbb1c..0000000 --- a/.config/hypr/__hyprland.conf +++ /dev/null @@ -1,10 +0,0 @@ -source = ~/.config/hypr/autostart.conf -source = ~/.config/hypr/bindings.conf -source = ~/.config/hypr/envs.conf -source = ~/.config/hypr/looknfeel.conf -source = ~/.config/hypr/input.conf -source = ~/.config/hypr/windows.conf -source = ~/.config/hypr/monitors.conf -source = ~/.config/hypr/looknfeel.conf -source = ~/.config/hypr/autostart.conf -source = ~/.config/hypr/workspaces.conf diff --git a/.config/hypr/apps.conf b/.config/hypr/apps.conf deleted file mode 100644 index 9f816ac..0000000 --- a/.config/hypr/apps.conf +++ /dev/null @@ -1,183 +0,0 @@ -# Browser types -windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) -windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) -windowrule = tag -default-opacity, match:tag chromium-based-browser -windowrule = tag -default-opacity, match:tag firefox-based-browser - -# Video apps: remove chromium browser tag so they don't get opacity applied -windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) -windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) - -# Force chromium-based browsers into a tile to deal with --app bug -windowrule = tile on, match:tag chromium-based-browser - -# Only a subtle opacity change, but not for video sites -windowrule = opacity 1.0 0.97, match:tag chromium-based-browser -windowrule = opacity 1.0 0.97, match:tag firefox-based-browser - -windowrule { - name = geforce - match:class = GeForceNOW - idle_inhibit = fullscreen -} - -# Remove 1px border around hyprshot screenshots -layerrule = no_anim on, match:namespace selection - -# Jetbrains -# Fix splash screen showing in weird places and prevent annoying focus takeovers -windowrule { - name = jetbrains-splash - match:class = ^(jetbrains-.*)$ - match:title = ^(splash)$ - match:float = 1 - tag = +jetbrains-splash - center = on - no_focus = on - border_size = 0 -} - -# Center popups/find windows -windowrule { - name = jetbrains-popup - match:class = ^(jetbrains-.*) - match:title = ^()$ - match:float = 1 - tag = +jetbrains - center = on - # Enabling this makes it possible to provide input in popup dialogs (search window, new file, etc.) - stay_focused = on - border_size = 0 - min_size = (monitor_w*0.5) (monitor_h*0.5) - } - -# Disable window flicker when autocomplete or tooltips appear -windowrule { - name = jetbrains-tooltip - match:class = ^(jetbrains-.*)$ - match:title = ^(win.*)$ - match:float = 1 - no_initial_focus = on -} - -# Disable mouse focus -windowrule { - name = jetbrains-focus - no_follow_mouse = on - match:class = ^(jetbrains-.*)$ -} - -# Keep enpass focused -windowrule { - name = enpass-assistant - match:title = ^(Enpass Assistant)$ - match:class = ^(Enpass)$ - stay_focused = on - center = on -} - -# Float LocalSend and fzf file picker -windowrule = float on, match:class (Share|localsend) -windowrule = center on, match:class (Share|localsend) - -# Picture-in-picture overlays -windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture) -windowrule = tag -default-opacity, match:tag pip -windowrule = float on, match:tag pip -windowrule = pin on, match:tag pip -windowrule = size 600 338, match:tag pip -windowrule = keep_aspect_ratio on, match:tag pip -windowrule = border_size 0, match:tag pip -windowrule = opacity 1 1, match:tag pip -windowrule = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip - -# qemu -windowrule = tag -default-opacity, match:class qemu -windowrule = opacity 1 1, match:class qemu - -# Retroarch -windowrule = fullscreen on, match:class com.libretro.RetroArch -windowrule = workspace 5, match:class com.libretro.RetroArch -windowrule = tag -default-opacity, match:class com.libretro.RetroArch -windowrule = opacity 1 1, match:class com.libretro.RetroArch -windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch - -# Scratchpad apps -windowrule = workspace special:scratchpad, match:class Spotify -windowrule = workspace special:scratchpad, match:class signal -windowrule = workspace special:scratchpad, match:class ^(chrome-discord.com__channels_@me-Default)$ -windowrule = workspace special:scratchpad, match:class ^(chrome-web.whatsapp.com__-Default)$ - -# Float Nextcloud -windowrule = float on, match:class com.nextcloud.desktopclient.nextcloud - -# Position drawing -windowrule = workspace 5, match:class (krita) -windowrule = tag -default-opacity, match:class (krita) -windowrule = opacity 1 1, match:class (krita) - -# Position TV -windowrule = workspace 7, match:class ^(chrome-youtube.com__-Default)$ -windowrule = workspace 7, match:class ^(chrome-netflix.com__-Default)$ - -# Float Steam -windowrule = float on, match:class steam -windowrule = workspace 7, match:class steam -windowrule = center on, match:class steam, match:title Steam -windowrule = tag -default-opacity, match:class steam.* -windowrule = opacity 1 1, match:class steam.* -windowrule = size 1100 700, match:class steam, match:title Steam -windowrule = size 460 800, match:class steam, match:title Friends List -windowrule = idle_inhibit fullscreen, match:class steam - -# Float Lunar Client -windowrule = float on, match:class lunarclient -windowrule = workspace 7, match:class lunarclient -windowrule = center on, match:class lunarclient -windowrule = tag -default-opacity, match:class lunarclient -windowrule = opacity 1 1, match:class lunarclient -windowrule = size 1100 700, match:class lunarclient -windowrule = idle_inhibit fullscreen, match:class lunarclient - -# Floating windows -windowrule = float on, match:tag floating-window -windowrule = center on, match:tag floating-window -windowrule = size 875 600, match:tag floating-window - -windowrule = tag +floating-window, match:class (org.station.bluetui|org.station.impala|org.station.wiremix|org.station.btop|org.station.terminal|org.station.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Station|About|TUI.float|imv|mpv) -windowrule = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) -windowrule = float on, match:class org.gnome.Calculator - -# Fullscreen screensaver -windowrule = fullscreen on, match:class org.station.screensaver -windowrule = float on, match:class org.station.screensaver -windowrule = animation slide, match:class org.station.screensaver - -# No transparency on media windows -windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ -windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ - -# Popped window rounding -windowrule = rounding 8, match:tag pop - -# Prevent idle while open -windowrule = idle_inhibit always, match:tag noidle - -# Prevent Telegram from stealing focus on new messages -windowrule = focus_on_activate off, match:class org.telegram.desktop - -# Define terminal tag to style them uniformly -windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) -windowrule = tag -default-opacity, match:tag terminal -windowrule = opacity 0.97 0.9, match:tag terminal - -# Application-specific animation -layerrule = no_anim on, match:namespace walker - -# Webcam overlay for screen recording -windowrule = float on, match:title WebcamOverlay -windowrule = pin on, match:title WebcamOverlay -windowrule = no_initial_focus on, match:title WebcamOverlay -windowrule = no_dim on, match:title WebcamOverlay -windowrule = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay - diff --git a/.config/hypr/apps.lua b/.config/hypr/apps.lua index e0dfeb5..d208641 100644 --- a/.config/hypr/apps.lua +++ b/.config/hypr/apps.lua @@ -388,7 +388,7 @@ hl.window_rule({ no_initial_focus = true, no_dim = true, size = { 320, 180 }, - position = { "(monitor_w-360)", "(monitor_h-220)" }, + move = { "(monitor_w-360)", "(monitor_h-220)" }, match = { title = "WebcamOverlay", }, diff --git a/.config/hypr/autostart.conf b/.config/hypr/autostart.conf deleted file mode 100644 index 14f54ce..0000000 --- a/.config/hypr/autostart.conf +++ /dev/null @@ -1,12 +0,0 @@ -exec-once = uwsm-app -- hypridle -exec-once = uwsm-app -- mako -exec-once = uwsm app -- hyprsunset -# exec-once = Enpass -# exec-once = uwsm-app -- waybar -exec-once = uwsm-app -- fcitx5 --disable notificationitem -exec-once = station-bg-random -exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 - -# Slow app launch fix -- set systemd vars -exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1) -exec-once = dbus-update-activation-environment --systemd --all diff --git a/.config/hypr/bindings.conf b/.config/hypr/bindings.conf deleted file mode 100644 index 2dc9b21..0000000 --- a/.config/hypr/bindings.conf +++ /dev/null @@ -1,205 +0,0 @@ -# ========================== -# Media -# ========================== -# Only display the OSD on the currently focused monitor -$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')" - -# Laptop multimedia keys for volume and LCD brightness (with OSD) -bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise -bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower -bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle -bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle -bindeld = ,XF86MonBrightnessUp, Brightness up, exec, station-brightness-display +5% -bindeld = ,XF86MonBrightnessDown, Brightness down, exec, station-brightness-display 5%- -bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, station-brightness-keyboard up -bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, station-brightness-keyboard down -bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, station-brightness-keyboard cycle - -# Precise 1% multimedia adjustments with Alt modifier -bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1 -bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1 -bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, station-brightness-display +1% -bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, station-brightness-display 1%- - -# Requires playerctl -bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next -bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause -bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause -bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous - -# Switch audio output with Super + Mute -bindld = SUPER, XF86AudioMute, Switch audio output, exec, station-cmd-audio-switch - -# ========================== -# Copy & Paste -# ========================== -bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, -bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, -bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, -bindd = SUPER, A, Universal cut, sendshortcut, CTRL, A, -bindd = SUPER CTRL, V, Clipboard manager, exec, station-launch-walker -m clipboard - -# Close windows -bindd = SUPER, Q, Close window, killactive, - -# ========================== -# Tiling -# ========================== -bindd = SUPER, P, Pseudo window, pseudo, # dwindle -bindd = SUPER, F, Full screen, fullscreen, 0 -bindd = SUPER CTRL, F, Full width, fullscreen, 1 -bindd = SUPER, T, Pop window out (float & pin), exec, station-hyprland-window-pop -bindd = SUPER CTRL, L, Toggle workspace layout, exec, station-hyprland-workspace-layout-toggle - -# Move focus with SUPER + arrow keys -bindd = SUPER, H, Move window focus left, movefocus, l -bindd = SUPER, L, Move window focus right, movefocus, r -bindd = SUPER, K, Move window focus up, movefocus, u -bindd = SUPER, J, Move window focus down, movefocus, d - -# Control scratchpad -bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad -bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad - -# Cycle through applications on active workspace -bindd = SUPER, TAB, Cycle to next window, cyclenext, visible -bindd = SUPER SHIFT, TAB, Cycle to prev window, cyclenext, visible prev -bindd = SUPER, TAB, Reveal active window on top, bringactivetotop -bindd = SUPER SHIFT, TAB, Reveal active window on top, bringactivetotop - -# Resize active window -bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key -bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key -bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 -bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100 - -# Scroll through existing workspaces with SUPER + scroll -bindd = SUPER, mouse_down, Scroll active workspace forward, workspace, e+1 -bindd = SUPER, mouse_up, Scroll active workspace backward, workspace, e-1 - -# Move/resize windows with mainMod + LMB/RMB and dragging -bindmd = SUPER, mouse:272, Move window, movewindow -bindmd = SUPER, mouse:273, Resize window, resizewindow - -# Toggle groups -bindd = SUPER, G, Toggle window grouping, togglegroup -bindd = SUPER ALT, G, Move active window out of group, moveoutofgroup - -# Join groups -bindd = SUPER ALT, LEFT, Move window to group on left, moveintogroup, l -bindd = SUPER ALT, RIGHT, Move window to group on right, moveintogroup, r -bindd = SUPER ALT, UP, Move window to group on top, moveintogroup, u -bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d - -# Navigate a single set of grouped windows -bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f -bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b - -# Window navigation for grouped windows -bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b -bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f - -# Scroll through a set of grouped windows with SUPER + ALT + scroll -bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f -bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b - -# Activate window in a group by number -bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1 -bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2 -bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3 -bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4 -bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5 - -# ========================== -# Utilities -# ========================== -# Menus -bindd = SUPER, SPACE, Launch apps, exec, station-launch-walker -bindd = SUPER CTRL, E, Emoji picker, exec, station-launch-walker -m symbols -bindd = SUPER CTRL, C, Capture menu, exec, station-menu capture -bindd = SUPER CTRL, O, Toggle menu, exec, station-menu toggle -bindd = SUPER ALT, SPACE, Station menu, exec, station-menu -bindd = SUPER, ESCAPE, System menu, exec, station-menu system -bindld = , XF86PowerOff, Power menu, exec, station-menu system -bindd = SUPER, K, Show key bindings, exec, station-menu-keybindings -bindd = , XF86Calculator, Calculator, exec, gnome-calculator - -# Aesthetics -bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, station-toggle-waybar -bindd = SUPER CTRL, SPACE, Theme background menu, exec, station-menu background -# bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, station-menu theme -bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle -bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, station-hyprland-window-gaps-toggle -bindd = SUPER CTRL, Backspace, Toggle single-window square aspect, exec, station-hyprland-window-single-square-aspect-toggle - -# Notifications -bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss -bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all -bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, station-toggle-notification-silencing -bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke -bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore - -# Toggles -bindd = SUPER CTRL, I, Toggle locking on idle, exec, station-toggle-idle -bindd = SUPER CTRL, N, Toggle nightlight, exec, station-toggle-nightlight - -# Captures -bindd = , PRINT, Screenshot, exec, station-cmd-screenshot -bindd = ALT, PRINT, Screenrecording, exec, station-menu screenrecord -bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a - -# File sharing -# bindd = SUPER CTRL, S, Share, exec, station-menu share - -# Waybar-less information -bindd = SUPER CTRL ALT, T, Show time, exec, notify-send " $(date +"%A %H:%M — %d %B W%V %Y")" -bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send "󰁹 Battery is at $(station-battery-remaining)%" -bindd = SUPER CTRL ALT, W, Show active window name and class, exec, notify-send "$(hyprctl activewindow -j | jq -r '"Window: \(.title)\nClass: \(.class)"')" - -# Control panels -bindd = SUPER CTRL, A, Audio controls, exec, station-launch-audio -bindd = SUPER CTRL, B, Bluetooth controls, exec, station-launch-bluetooth -bindd = SUPER CTRL, W, Wifi controls, exec, station-launch-wifi -bindd = SUPER CTRL, T, Activity, exec, station-launch-tui btop - -# Dictation -# bindd = SUPER CTRL, X, Toggle dictation, exec, voxtype record toggle - -# Zoom -bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1') -bindd = SUPER CTRL ALT, Z, Reset zoom, exec, hyprctl keyword cursor:zoom_factor 1 - -# Lock system -# bindd = SUPER CTRL, L, Lock system, exec, station-lock-screen - -# ========================== -# Applications -# ========================== -bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec -bindd = SUPER ALT, RETURN, Tmux, exec, uwsm-app -- xdg-terminal-exec --dir="$(station-cmd-terminal-cwd)" tmux new -bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window -bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)" -bindd = SUPER SHIFT, B, Browser, exec, /home/chris/.local/bin/station-launch-browser -bindd = SUPER SHIFT ALT, B, Browser (private), exec, station-launch-browser --private -bindd = SUPER SHIFT, M, Music, exec, station-launch-or-focus spotify -bindd = SUPER SHIFT, N, Editor, exec, station-launch-editor -# bindd = SUPER SHIFT, D, Docker, exec, station-launch-tui lazydocker -bindd = SUPER SHIFT, G, Signal, exec, station-launch-or-focus ^signal$ "uwsm-app -- signal-desktop" -bindd = SUPER SHIFT, O, Obsidian, exec, station-launch-or-focus ^obsidian$ "uwsm-app -- obsidian -disable-gpu --enable-wayland-ime" -# bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime -bindd = SUPER SHIFT, SLASH, Passwords, exec, Enpass showassistant -bindd = SUPER SHIFT, E, Email, exec, station-launch-or-focus mailspring - -# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment -bindd = SUPER SHIFT, A, ChatGPT, exec, station-launch-webapp "https://gemini.google.com/app" -bindd = SUPER SHIFT, C, Calendar, exec, station-launch-webapp "https://tower.scarif.space/apps/calendar" -bindd = SUPER SHIFT, Y, YouTube, exec, station-launch-or-focus-webapp "YouTube" "https://youtube.com/" -bindd = SUPER SHIFT ALT, G, WhatsApp, exec, station-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/" -bindd = SUPER SHIFT CTRL, G, Google Maps, exec, station-launch-or-focus-webapp "Google Maps" "https://maps.google.com" -# bindd = SUPER SHIFT, P, Google Photos, exec, station-launch-or-focus-webapp "Google Photos" "https://photos.google.com/" -# bindd = SUPER SHIFT, X, X, exec, station-launch-webapp "https://x.com/" -# bindd = SUPER SHIFT ALT, X, X Post, exec, station-launch-webapp "https://x.com/compose/post" - -# Add extra bindings -bind = SUPER SHIFT, R, exec, ghostty -e ssh scarif - diff --git a/.config/hypr/bindings.lua b/.config/hypr/bindings.lua index 1445cf1..8992bdb 100644 --- a/.config/hypr/bindings.lua +++ b/.config/hypr/bindings.lua @@ -80,22 +80,22 @@ hl.bind( -- Requires playerctl hl.bind( - "F86AudioNext", + "XF86AudioNext", hl.dsp.exec_cmd(osdclient .. " --playerctl next"), { locked = true, description = "Next track" } ) hl.bind( - "F86AudioPause", + "XF86AudioPause", hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"), { locked = true, description = "Pause" } ) hl.bind( - "F86AudioPlay", + "XF86AudioPlay", hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"), { locked = true, description = "Play" } ) hl.bind( - "F86AudioPrev", + "XF86AudioPrev", hl.dsp.exec_cmd(osdclient .. " --playerctl previous"), { locked = true, description = "Previous track" } ) @@ -110,10 +110,10 @@ hl.bind( -- ========================== -- Copy & Paste -- ========================== -hl.bind("SUPER + C", hl.dsp.send_shortcut("CTRL + Insert"), { description = "Universal copy" }) -hl.bind("SUPER + V", hl.dsp.send_shortcut("SHIFT + Insert"), { description = "Universal paste" }) -hl.bind("SUPER + X", hl.dsp.send_shortcut("CTRL + X"), { description = "Universal cut" }) -hl.bind("SUPER + A", hl.dsp.send_shortcut("CTRL + A"), { description = "Universal cut" }) +hl.bind("SUPER + C", hl.dsp.send_shortcut({ mods = "CTRL", key = "Insert" }), { description = "Universal copy" }) +hl.bind("SUPER + V", hl.dsp.send_shortcut({ mods = "SHIFT", key = "Insert" }), { description = "Universal paste" }) +hl.bind("SUPER + X", hl.dsp.send_shortcut({ mods = "CRTL", key = "X" }), { description = "Universal cut" }) +hl.bind("SUPER + A", hl.dsp.send_shortcut({ mods = "CTRL", key = "A" }), { description = "Universal cut" }) hl.bind( "SUPER + CTRL + V", hl.dsp.exec_cmd("station-launch-walker -m clipboard"), @@ -121,7 +121,7 @@ hl.bind( ) -- Close windows -hl.bind("SUPER + Q", hl.dsp.window.kill(), { description = "Close window" }) +hl.bind("SUPER + Q", hl.dsp.window.close(), { description = "Close window" }) -- ========================== -- Tiling @@ -138,7 +138,7 @@ hl.bind( -- Move focus with SUPER + arrow keys hl.bind("SUPER + H", hl.dsp.focus({ direction = "left" }), { description = "Move window focus left" }) -hl.bind("SUPER + L", hl.dsp.focus({ description = "right" }), { description = "Move window focus right" }) +hl.bind("SUPER + L", hl.dsp.focus({ direction = "right" }), { description = "Move window focus right" }) hl.bind("SUPER + K", hl.dsp.focus({ direction = "up" }), { description = "Move window focus up" }) hl.bind("SUPER + J", hl.dsp.focus({ direction = "down" }), { description = "Move window focus down" }) hl.bind("SUPER + SHIFT + H", hl.dsp.window.move({ direction = "left" }), { description = "Move window left" }) @@ -150,7 +150,7 @@ hl.bind("SUPER + SHIFT + J", hl.dsp.window.move({ direction = "down" }), { descr hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" }) hl.bind( "SUPER + ALT + S", - hl.dsp.window.move({ worspace = "special:scratchpad" }), + hl.dsp.window.move({ workspace = "special:scratchpad" }), { description = "Move window to scratchpad" } ) @@ -199,7 +199,7 @@ hl.bind("SUPER + CTRL + C", hl.dsp.exec_cmd("station-menu capture"), { descripti hl.bind("SUPER + CTRL + O", hl.dsp.exec_cmd("station-menu toggle"), { description = "Toggle menu" }) hl.bind("SUPER + ALT + SPACE", hl.dsp.exec_cmd("station-menu"), { description = "Station menu" }) hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("station-menu system"), { description = "System menu" }) -hl.bind("F86PowerOff", hl.dsp.exec_cmd("station-menu system"), { locked = true, description = "Power menu" }) +hl.bind("XF86PowerOff", hl.dsp.exec_cmd("station-menu system"), { locked = true, description = "Power menu" }) hl.bind("SUPER + K", hl.dsp.exec_cmd("station-menu-keybindings"), { description = "Show key bindings" }) hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator"), { description = "Calculator" }) @@ -256,17 +256,17 @@ hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { -- Waybar-less information hl.bind( - "SUPER + CTRL ALT + T", + "SUPER + CTRL + ALT + T", hl.dsp.exec_cmd('notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"'), { description = "Show time" } ) hl.bind( - "SUPER + CTRL ALT + B", + "SUPER + CTRL + ALT + B", hl.dsp.exec_cmd('notify-send "󰁹 Battery is at $(station-battery-remaining)%"'), { description = "Show battery remaining" } ) hl.bind( - "SUPER + CTRL ALT + W", + "SUPER + CTRL + ALT + W", hl.dsp.exec_cmd('notify-send "$(hyprctl activewindow -j | jq -r \'"Window: (.title)\nClass: (.class)"\')"'), { description = "Show active window name and class" } ) @@ -286,7 +286,11 @@ hl.bind( hl.dsp.exec_cmd("hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1')"), { description = "Zoom in" } ) -hl.bind("SUPER + CTRL ALT + Z", hl.dsp.exec_cmd("hyprctl keyword cursor:zoom_factor 1"), { description = "Reset zoom" }) +hl.bind( + "SUPER + CTRL + ALT + Z", + hl.dsp.exec_cmd("hyprctl keyword cursor:zoom_factor 1"), + { description = "Reset zoom" } +) -- Lock system -- hl.bind("SUPER CTRL + L", hl.dsp.exec_cmd("station-lock-screen"), { description = "Lock system" }) @@ -302,7 +306,7 @@ hl.bind( ) hl.bind("SUPER + SHIFT + F", hl.dsp.exec_cmd("uwsm-app -- nautilus --new-window"), { description = "File manager" }) hl.bind( - "SUPER + ALT SHIFT + F", + "SUPER + ALT + SHIFT + F", hl.dsp.exec_cmd('uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"'), { description = "File manager (cwd)" } ) @@ -312,7 +316,7 @@ hl.bind( { description = "Browser" } ) hl.bind( - "SUPER + SHIFT ALT + B", + "SUPER + SHIFT + ALT + B", hl.dsp.exec_cmd("station-launch-browser --private"), { description = "Browser (private)" } ) diff --git a/.config/hypr/envs.conf b/.config/hypr/envs.conf deleted file mode 100644 index e6139e0..0000000 --- a/.config/hypr/envs.conf +++ /dev/null @@ -1,29 +0,0 @@ -# Cursor size -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 - -# Force all apps to use Wayland -env = GDK_BACKEND,wayland,x11,* -env = QT_QPA_PLATFORM,wayland;xcb -env = QT_STYLE_OVERRIDE,kvantum -env = SDL_VIDEODRIVER,wayland,x11 -env = MOZ_ENABLE_WAYLAND,1 -env = ELECTRON_OZONE_PLATFORM_HINT,wayland -env = OZONE_PLATFORM,wayland -env = XDG_SESSION_TYPE,wayland - -# Allow better support for screen sharing (Google Meet, Discord, etc) -env = XDG_CURRENT_DESKTOP,Hyprland -env = XDG_SESSION_DESKTOP,Hyprland - -xwayland { - force_zero_scaling = true -} - -# Use XCompose file -env = XCOMPOSEFILE,~/.config/xcompose - -# Don't show update on first launch -ecosystem { - no_update_news = true -} diff --git a/.config/hypr/input.conf b/.config/hypr/input.conf deleted file mode 100644 index 323ec76..0000000 --- a/.config/hypr/input.conf +++ /dev/null @@ -1,71 +0,0 @@ -# https://wiki.hyprland.org/Configuring/Variables/#input -input { - # Use multiple keyboard layouts and switch between them with Left Alt + Right Alt - kb_layout = gb,ro - # Use a specific keyboard variant if needed (e.g. intl for international keyboards) - # kb_variant = intl - # kb_model = - kb_options = compose:caps - # kb_rules = - - # Change speed of keyboard repeat - repeat_rate = 40 - repeat_delay = 600 - - # Start with numlock on by default - numlock_by_default = true - - - follow_mouse = 1 - - # Increase sensitivity for mouse/trackpad (default: 0) - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. - - # Turn off mouse acceleration (default: false) - # force_no_accel = true - - # Use natural (inverse) scrolling - # natural_scroll = true - - # Use two-finger clicks for right-click instead of lower-right corner - # clickfinger_behavior = true - - # Control the speed of your scrolling - scroll_factor = 0.4 - - # Enable the touchpad while typing - # disable_while_typing = false - - # Left-click-and-drag with three fingers - # drag_3fg = 1 - - touchpad { - # Use natural (inverse) scrolling - natural_scroll = false - - # Use two-finger clicks for right-click instead of lower-right corner - # clickfinger_behavior = true - - # Control the speed of your scrolling - scroll_factor = 0.4 - - # Enable the touchpad while typing - # disable_while_typing = false - - # Left-click-and-drag with three fingers - # drag_3fg = 1 - } -} - -misc { - key_press_enables_dpms = true # key press will trigger wake - mouse_move_enables_dpms = true # mouse move will trigger wake -} - -# Scroll nicely in the terminal -windowrule = match:class (Alacritty|kitty), scroll_touchpad 1.5 -windowrule = match:class com.mitchellh.ghostty, scroll_touchpad 0.2 - -# Enable touchpad gestures for changing workspaces -# See https://wiki.hyprland.org/Configuring/Gestures/ -# gesture = 3, horizontal, workspace diff --git a/.config/hypr/looknfeel.conf b/.config/hypr/looknfeel.conf deleted file mode 100644 index 7393732..0000000 --- a/.config/hypr/looknfeel.conf +++ /dev/null @@ -1,162 +0,0 @@ -# Variables -# $activeBorderColor = rgba(33ccffee) rgba(00ff99ee) 45deg -# $inactiveBorderColor = rgba(595959aa) - -source = ~/.cache/wal/colors-hyprland.conf - -$activeBorderColor = $color14 -$inactiveBorderColor = $background - -# https://wiki.hyprland.org/Configuring/Variables/#general -general { - gaps_in = 5 - gaps_out = 10 - - border_size = 2 - - # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors - col.active_border = $activeBorderColor - col.inactive_border = $inactiveBorderColor - - # Set to true enable resizing windows by clicking and dragging on borders and gaps - resize_on_border = false - - # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on - allow_tearing = false - - # layout = scrolling # Change to niri-like side-scrolling layout - layout = dwindle -} - -# https://wiki.hyprland.org/Configuring/Variables/#decoration -decoration { - # rounding = 8 # Use round window corners - rounding = 0 - - # Dim unfocused windows (0.0 = no dim, 1.0 = fully dimmed) - # dim_inactive = true - # dim_strength = 0.15 - - shadow { - enabled = true - range = 2 - render_power = 3 - color = rgba(1a1a1aee) - } - - # https://wiki.hyprland.org/Configuring/Variables/#blur - blur { - enabled = true - size = 2 - passes = 2 - special = true - brightness = 0.60 - contrast = 0.75 - } -} - -# https://wiki.hypr.land/Configuring/Variables/#group -group { - col.border_active = $activeBorderColor - col.border_inactive = $inactiveBorderColor - # col.border_locked_active = -1 - # col.border_locked_inactive = -1 - - groupbar { - font_size = 12 - font_family = monospace - font_weight_active = ultraheavy - font_weight_inactive = normal - - indicator_height = 0 - indicator_gap = 5 - height = 22 - gaps_in = 5 - gaps_out = 0 - - text_color = rgb(ffffff) - text_color_inactive = rgba(ffffff90) - col.active = rgba(00000040) - col.inactive = rgba(00000020) - - gradients = true - gradient_rounding = 0 - gradient_round_only_edges = false - } -} - - -# https://wiki.hyprland.org/Configuring/Variables/#animations -animations { - # enabled = no # Disable all animations - enabled = yes, please :) - - # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = easeOutQuint,0.23,1,0.32,1 - bezier = easeInOutCubic,0.65,0.05,0.36,1 - bezier = linear,0,0,1,1 - bezier = almostLinear,0.5,0.5,0.75,1.0 - bezier = quick,0.15,0,0.1,1 - - animation = global, 1, 10, default - animation = border, 1, 5.39, easeOutQuint - animation = windows, 1, 4.79, easeOutQuint - animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% - animation = windowsOut, 1, 1.49, linear, popin 87% - animation = fadeIn, 1, 1.73, almostLinear - animation = fadeOut, 1, 1.46, almostLinear - animation = fade, 1, 3.03, quick - animation = layers, 1, 3.81, easeOutQuint - animation = layersIn, 1, 4, easeOutQuint, fade - animation = layersOut, 1, 1.5, linear, fade - animation = fadeLayersIn, 1, 1.79, almostLinear - animation = fadeLayersOut, 1, 1.39, almostLinear - animation = workspaces, 0, 0, ease -} - -# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more -dwindle { - # pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true # You probably want this - force_split = 2 # Always split on the right -} - -# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more -master { - new_status = master -} - -# https://wiki.hyprland.org/Configuring/Variables/#misc -misc { - disable_hyprland_logo = true - disable_splash_rendering = true - focus_on_activate = true - anr_missed_pings = 3 - on_focus_under_fullscreen = 1 - disable_watchdog_warning = true -} - -# https://wiki.hypr.land/Configuring/Variables/#cursor -cursor { - hide_on_key_press = true - warp_on_change_workspace = 1 -} - -# Auto toggle scratchpad on switching workspace from scratchpad -binds { - hide_special_on_workspace_change = true -} - -# https://wiki.hypr.land/Configuring/Variables/#layout -layout { - # Avoid overly wide single-window layouts on wide screens - # single_window_aspect_ratio = 1 1 -} - -# Style Gum confirm to match terminal theme -env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan -env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black -env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green -env = GUM_CONFIRM_UNSELECTED_FOREGROUND,7 # White -env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey diff --git a/.config/hypr/monitors.conf b/.config/hypr/monitors.conf deleted file mode 100644 index 0cdeb0f..0000000 --- a/.config/hypr/monitors.conf +++ /dev/null @@ -1,25 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Monitors/ -# List current monitors and resolutions possible: hyprctl monitors -# Format: monitor = [port], resolution, position, scale - -# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K. -# monitor=eDP-1,3840x2160,0x0,2 -monitor=desc:Samsung Electric Company LU28R55 HNMN500475,3840x2160,auto-left,1.5 -monitor=desc:Samsung Electric Company LU28R55 HNMN500462,3840x2160,auto-right,1.5 -# monitor=HDMI-A-1,preferred,auto,auto - -# Good compromise for 27" or 32" 4K monitors (but fractional!) -# env = GDK_SCALE,1.75 -# monitor=,preferred,auto,1.6 - -# Straight 1x setup for low-resolution displays like 1080p or 1440p -# Or for ultrawide monitors like 34" 3440x1440 or 49" 5120x1440 -# env = GDK_SCALE,1 -# monitor=,preferred,auto,1 - -# Portrait/rotated secondary monitor (transform: 1 = 90°, 3 = 270°) -# monitor = DP-2, preferred, auto, 1, transform, 1 - -# Example for Framework 13 w/ 6K XDR Apple display -# monitor = DP-5, 6016x3384@60, auto, 2 -# monitor = eDP-1, 2880x1920@120, auto, 2 diff --git a/.config/hypr/windows.conf b/.config/hypr/windows.conf deleted file mode 100644 index f18f77e..0000000 --- a/.config/hypr/windows.conf +++ /dev/null @@ -1,15 +0,0 @@ -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# Hyprland 0.53+ syntax -windowrule = suppress_event maximize, match:class .* - -# Tag all windows for default opacity (apps can override with -default-opacity tag) -windowrule = tag +default-opacity, match:class .* - -# Fix some dragging issues with XWayland -windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 - -# App-specific tweaks (may remove default-opacity tag) -source = ~/.config/hypr/apps.conf - -# Apply default opacity after apps have had a chance to opt out -windowrule = opacity 0.97 0.9, match:tag default-opacity diff --git a/.config/hypr/windows.lua b/.config/hypr/windows.lua index 051a0b0..1097765 100644 --- a/.config/hypr/windows.lua +++ b/.config/hypr/windows.lua @@ -1,11 +1,4 @@ -- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more --- Hyprland 0.53+ syntax -hl.window_rule({ - name = "suppress-maximise-events", - match = { class = ".*" }, - supress_event = "maximize", -}) - -- Tag all windows for default opacity (apps can override with -default-opacity tag) hl.window_rule({ name = "default-opacity", @@ -34,5 +27,5 @@ require("apps") hl.window_rule({ name = "apply-opacity", match = { tag = "default-opacity" }, - opacity = "0.97, 0.9", + opacity = "0.97 0.9", }) diff --git a/.config/hypr/workspaces.conf b/.config/hypr/workspaces.conf deleted file mode 100644 index e00ca4f..0000000 --- a/.config/hypr/workspaces.conf +++ /dev/null @@ -1,33 +0,0 @@ -workspace = 1, monitor:DP-1 -workspace = 2, monitor:DP-2 -workspace = 3, monitor:DP-1 -workspace = 4, monitor:DP-2 -workspace = 5, monitor:DP-1 -workspace = 6, monitor:DP-2 -workspace = 7, monitor:DP-1 -workspace = 8, monitor:DP-2 -workspace = 9, monitor:DP-1 -workspace = 10, monitor:DP-2 - -bindd = SUPER, code:10, Switch to Home, workspace, 2 -bindd = SUPER, code:10, Switch to Home, workspace, 1 -bindd = SUPER, code:11, Switch to Dev, workspace, 4 -bindd = SUPER, code:11, Switch to Dev, workspace, 3 -bindd = SUPER, code:12, Switch to Art, workspace, 6 -bindd = SUPER, code:12, Switch to Art, workspace, 5 -bindd = SUPER, code:13, Switch to Gaming, workspace, 8 -bindd = SUPER, code:13, Switch to Gaming, workspace, 7 -bindd = SUPER, code:14, Switch to Writing, workspace, 10 -bindd = SUPER, code:14, Switch to Writing, workspace, 9 - -# Move active window to a workspace with SUPER + SHIFT + [1-9; 0] -bindd = SUPER SHIFT, code:10, Move window to workspace 1, exec, station-move-to-workspace 1 -bindd = SUPER SHIFT, code:11, Move window to workspace 1, exec, station-move-to-workspace 2 -bindd = SUPER SHIFT, code:12, Move window to workspace 1, exec, station-move-to-workspace 3 -bindd = SUPER SHIFT, code:13, Move window to workspace 1, exec, station-move-to-workspace 4 -bindd = SUPER SHIFT, code:14, Move window to workspace 1, exec, station-move-to-workspace 5 - -bindd = SUPER SHIFT, L, Move window to right monitor, movewindow, r -bindd = SUPER SHIFT, H, Move window to left monitor, movewindow, l -bindd = SUPER SHIFT, J, Move window to right monitor, movewindow, d -bindd = SUPER SHIFT, K, Move window to left monitor, movewindow, u diff --git a/.config/hypr/workspaces.lua b/.config/hypr/workspaces.lua index 946b634..589ef71 100644 --- a/.config/hypr/workspaces.lua +++ b/.config/hypr/workspaces.lua @@ -1,78 +1,61 @@ hl.workspace_rule({ - workspace = 1, + workspace = "1", monitor = "DP-1", }) hl.workspace_rule({ - workspace = 2, + workspace = "2", monitor = "DP-2", }) hl.workspace_rule({ - workspace = 3, + workspace = "3", monitor = "DP-1", }) hl.workspace_rule({ - workspace = 4, + workspace = "4", monitor = "DP-2", }) hl.workspace_rule({ - workspace = 5, + workspace = "5", monitor = "DP-1", }) hl.workspace_rule({ - workspace = 6, + workspace = "6", monitor = "DP-2", }) hl.workspace_rule({ - workspace = 7, + workspace = "7", monitor = "DP-1", }) hl.workspace_rule({ - workspace = 8, + workspace = "8", monitor = "DP-2", }) hl.workspace_rule({ - workspace = 9, + workspace = "9", monitor = "DP-1", }) hl.workspace_rule({ - workspace = 10, + workspace = "10", monitor = "DP-2", }) -hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = 2 }), { description = "Switch to Home" }) -hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = 1 }), { description = "Switch to Home" }) -hl.bind("SUPER + code:11", hl.dsp.focus({ workspace = 4 }), { description = "Switch to Dev" }) -hl.bind("SUPER + code:11", hl.dsp.focus({ workspace = 3 }), { description = "Switch to Dev" }) -hl.bind("SUPER + code:12", hl.dsp.focus({ workspace = 6 }), { description = "Switch to Art" }) -hl.bind("SUPER + code:12", hl.dsp.focus({ workspace = 5 }), { description = "Switch to Art" }) -hl.bind("SUPER + code:13", hl.dsp.focus({ workspace = 8 }), { description = "Switch to Gaming" }) -hl.bind("SUPER + code:13", hl.dsp.focus({ workspace = 7 }), { description = "Switch to Gaming" }) -hl.bind("SUPER + code:14", hl.dsp.focus({ workspace = 10 }), { description = "Switch to Writing" }) -hl.bind("SUPER + code:14", hl.dsp.focus({ workspace = 9 }), { description = "Switch to Writing" }) +hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = "2" }), { description = "Switch to Home" }) +hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = "1" }), { description = "Switch to Home" }) +hl.bind("SUPER + code:11", hl.dsp.focus({ workspace = "4" }), { description = "Switch to Dev" }) +hl.bind("SUPER + code:11", hl.dsp.focus({ workspace = "3" }), { description = "Switch to Dev" }) +hl.bind("SUPER + code:12", hl.dsp.focus({ workspace = "6" }), { description = "Switch to Art" }) +hl.bind("SUPER + code:12", hl.dsp.focus({ workspace = "5" }), { description = "Switch to Art" }) +hl.bind("SUPER + code:13", hl.dsp.focus({ workspace = "8" }), { description = "Switch to Gaming" }) +hl.bind("SUPER + code:13", hl.dsp.focus({ workspace = "7" }), { description = "Switch to Gaming" }) +hl.bind("SUPER + code:14", hl.dsp.focus({ workspace = "10" }), { description = "Switch to Writing" }) +hl.bind("SUPER + code:14", hl.dsp.focus({ workspace = "9" }), { description = "Switch to Writing" }) -- Move active window to a workspace with SUPER + SHIFT + [1-9; 0] -hl.bind( - "SUPER + SHIFT + code:10", - hl.dsp.window.move({ workspace = 1 }), - { description = "Move window to workspace 1" } -) -hl.bind( - "SUPER + SHIFT + code:11", - hl.dsp.window.move({ workspace = 2 }), - { description = "Move window to workspace 2" } -) -hl.bind( - "SUPER + SHIFT + code:12", - hl.dsp.window.move({ workspace = 3 }), - { description = "Move window to workspace 3" } -) -hl.bind( - "SUPER + SHIFT + code:13", - hl.dsp.window.move({ workspace = 4 }), - { description = "Move window to workspace 4" } -) -hl.bind( - "SUPER + SHIFT + code:14", - hl.dsp.window.move({ workspace = 5 }), - { description = "Move window to workspace 5" } -) +for i = 1, 5 do + hl.bind("SUPER + SHIFT + code:1" .. (i - 1), function() + local active_workspace = hl.get_active_workspace() + local new_workspace = (i * 2) - (active_workspace.id % 2) + hl.notification.create({ text = new_workspace, duration = 2000 }) + hl.dispatch(hl.dsp.window.move({ workspace = tostring(new_workspace), follow = false })) + end, { description = "Move window to workspace "..i }) +end diff --git a/.local/bin/station-move-to-workspace b/.local/bin/station-move-to-workspace deleted file mode 100755 index 8107846..0000000 --- a/.local/bin/station-move-to-workspace +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -# Moves the active window to the relevant workspace - -workspace=$1 - -active_window=$(hyprctl activewindow -j | jq -r ".address") -active_workspace=$(hyprctl activeworkspace -j | jq -r ".id") - -new_workspace=$((($workspace*2)-($active_workspace%2))) - -hyprctl dispatch movetoworkspacesilent "$new_workspace,address:$active_window"