Finish hypr config

This commit is contained in:
2026-06-07 19:32:56 +01:00
parent 316a8e0b08
commit deb94ccecf
15 changed files with 52 additions and 829 deletions
-10
View File
@@ -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
-183
View File
@@ -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
+1 -1
View File
@@ -388,7 +388,7 @@ hl.window_rule({
no_initial_focus = true, no_initial_focus = true,
no_dim = true, no_dim = true,
size = { 320, 180 }, size = { 320, 180 },
position = { "(monitor_w-360)", "(monitor_h-220)" }, move = { "(monitor_w-360)", "(monitor_h-220)" },
match = { match = {
title = "WebcamOverlay", title = "WebcamOverlay",
}, },
-12
View File
@@ -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
-205
View File
@@ -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
+22 -18
View File
@@ -80,22 +80,22 @@ hl.bind(
-- Requires playerctl -- Requires playerctl
hl.bind( hl.bind(
"F86AudioNext", "XF86AudioNext",
hl.dsp.exec_cmd(osdclient .. " --playerctl next"), hl.dsp.exec_cmd(osdclient .. " --playerctl next"),
{ locked = true, description = "Next track" } { locked = true, description = "Next track" }
) )
hl.bind( hl.bind(
"F86AudioPause", "XF86AudioPause",
hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"), hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"),
{ locked = true, description = "Pause" } { locked = true, description = "Pause" }
) )
hl.bind( hl.bind(
"F86AudioPlay", "XF86AudioPlay",
hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"), hl.dsp.exec_cmd(osdclient .. " --playerctl play-pause"),
{ locked = true, description = "Play" } { locked = true, description = "Play" }
) )
hl.bind( hl.bind(
"F86AudioPrev", "XF86AudioPrev",
hl.dsp.exec_cmd(osdclient .. " --playerctl previous"), hl.dsp.exec_cmd(osdclient .. " --playerctl previous"),
{ locked = true, description = "Previous track" } { locked = true, description = "Previous track" }
) )
@@ -110,10 +110,10 @@ hl.bind(
-- ========================== -- ==========================
-- Copy & Paste -- Copy & Paste
-- ========================== -- ==========================
hl.bind("SUPER + C", hl.dsp.send_shortcut("CTRL + Insert"), { description = "Universal copy" }) hl.bind("SUPER + C", hl.dsp.send_shortcut({ mods = "CTRL", key = "Insert" }), { description = "Universal copy" })
hl.bind("SUPER + V", hl.dsp.send_shortcut("SHIFT + Insert"), { description = "Universal paste" }) hl.bind("SUPER + V", hl.dsp.send_shortcut({ mods = "SHIFT", key = "Insert" }), { description = "Universal paste" })
hl.bind("SUPER + X", hl.dsp.send_shortcut("CTRL + X"), { description = "Universal cut" }) hl.bind("SUPER + X", hl.dsp.send_shortcut({ mods = "CRTL", key = "X" }), { description = "Universal cut" })
hl.bind("SUPER + A", hl.dsp.send_shortcut("CTRL + A"), { description = "Universal cut" }) hl.bind("SUPER + A", hl.dsp.send_shortcut({ mods = "CTRL", key = "A" }), { description = "Universal cut" })
hl.bind( hl.bind(
"SUPER + CTRL + V", "SUPER + CTRL + V",
hl.dsp.exec_cmd("station-launch-walker -m clipboard"), hl.dsp.exec_cmd("station-launch-walker -m clipboard"),
@@ -121,7 +121,7 @@ hl.bind(
) )
-- Close windows -- 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 -- Tiling
@@ -138,7 +138,7 @@ hl.bind(
-- Move focus with SUPER + arrow keys -- Move focus with SUPER + arrow keys
hl.bind("SUPER + H", hl.dsp.focus({ direction = "left" }), { description = "Move window focus left" }) 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 + 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 + 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" }) 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 + S", hl.dsp.workspace.toggle_special("scratchpad"), { description = "Toggle scratchpad" })
hl.bind( hl.bind(
"SUPER + ALT + S", "SUPER + ALT + S",
hl.dsp.window.move({ worspace = "special:scratchpad" }), hl.dsp.window.move({ workspace = "special:scratchpad" }),
{ description = "Move window to 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 + 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 + 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("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("SUPER + K", hl.dsp.exec_cmd("station-menu-keybindings"), { description = "Show key bindings" })
hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator"), { description = "Calculator" }) 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 -- Waybar-less information
hl.bind( 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")"'), hl.dsp.exec_cmd('notify-send " $(date +"%A %H:%M — %d %B W%V %Y")"'),
{ description = "Show time" } { description = "Show time" }
) )
hl.bind( hl.bind(
"SUPER + CTRL ALT + B", "SUPER + CTRL + ALT + B",
hl.dsp.exec_cmd('notify-send "󰁹 Battery is at $(station-battery-remaining)%"'), hl.dsp.exec_cmd('notify-send "󰁹 Battery is at $(station-battery-remaining)%"'),
{ description = "Show battery remaining" } { description = "Show battery remaining" }
) )
hl.bind( 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)"\')"'), hl.dsp.exec_cmd('notify-send "$(hyprctl activewindow -j | jq -r \'"Window: (.title)\nClass: (.class)"\')"'),
{ description = "Show active window name and 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')"), hl.dsp.exec_cmd("hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1')"),
{ description = "Zoom in" } { 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 -- Lock system
-- hl.bind("SUPER CTRL + L", hl.dsp.exec_cmd("station-lock-screen"), { description = "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 + SHIFT + F", hl.dsp.exec_cmd("uwsm-app -- nautilus --new-window"), { description = "File manager" })
hl.bind( hl.bind(
"SUPER + ALT SHIFT + F", "SUPER + ALT + SHIFT + F",
hl.dsp.exec_cmd('uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"'), hl.dsp.exec_cmd('uwsm-app -- nautilus --new-window "$(station-cmd-terminal-cwd)"'),
{ description = "File manager (cwd)" } { description = "File manager (cwd)" }
) )
@@ -312,7 +316,7 @@ hl.bind(
{ description = "Browser" } { description = "Browser" }
) )
hl.bind( hl.bind(
"SUPER + SHIFT ALT + B", "SUPER + SHIFT + ALT + B",
hl.dsp.exec_cmd("station-launch-browser --private"), hl.dsp.exec_cmd("station-launch-browser --private"),
{ description = "Browser (private)" } { description = "Browser (private)" }
) )
-29
View File
@@ -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
}
-71
View File
@@ -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
-162
View File
@@ -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
-25
View File
@@ -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
-15
View File
@@ -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
+1 -8
View File
@@ -1,11 +1,4 @@
-- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -- 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) -- Tag all windows for default opacity (apps can override with -default-opacity tag)
hl.window_rule({ hl.window_rule({
name = "default-opacity", name = "default-opacity",
@@ -34,5 +27,5 @@ require("apps")
hl.window_rule({ hl.window_rule({
name = "apply-opacity", name = "apply-opacity",
match = { tag = "default-opacity" }, match = { tag = "default-opacity" },
opacity = "0.97, 0.9", opacity = "0.97 0.9",
}) })
-33
View File
@@ -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
+28 -45
View File
@@ -1,78 +1,61 @@
hl.workspace_rule({ hl.workspace_rule({
workspace = 1, workspace = "1",
monitor = "DP-1", monitor = "DP-1",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 2, workspace = "2",
monitor = "DP-2", monitor = "DP-2",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 3, workspace = "3",
monitor = "DP-1", monitor = "DP-1",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 4, workspace = "4",
monitor = "DP-2", monitor = "DP-2",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 5, workspace = "5",
monitor = "DP-1", monitor = "DP-1",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 6, workspace = "6",
monitor = "DP-2", monitor = "DP-2",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 7, workspace = "7",
monitor = "DP-1", monitor = "DP-1",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 8, workspace = "8",
monitor = "DP-2", monitor = "DP-2",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 9, workspace = "9",
monitor = "DP-1", monitor = "DP-1",
}) })
hl.workspace_rule({ hl.workspace_rule({
workspace = 10, workspace = "10",
monitor = "DP-2", 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 = "2" }), { description = "Switch to Home" })
hl.bind("SUPER + code:10", hl.dsp.focus({ workspace = 1 }), { 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 = "4" }), { description = "Switch to Dev" })
hl.bind("SUPER + code:11", hl.dsp.focus({ workspace = 3 }), { 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 = "6" }), { description = "Switch to Art" })
hl.bind("SUPER + code:12", hl.dsp.focus({ workspace = 5 }), { 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 = "8" }), { description = "Switch to Gaming" })
hl.bind("SUPER + code:13", hl.dsp.focus({ workspace = 7 }), { 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 = "10" }), { description = "Switch to Writing" })
hl.bind("SUPER + code:14", hl.dsp.focus({ workspace = 9 }), { 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] -- Move active window to a workspace with SUPER + SHIFT + [1-9; 0]
hl.bind( for i = 1, 5 do
"SUPER + SHIFT + code:10", hl.bind("SUPER + SHIFT + code:1" .. (i - 1), function()
hl.dsp.window.move({ workspace = 1 }), local active_workspace = hl.get_active_workspace()
{ description = "Move window to workspace 1" } local new_workspace = (i * 2) - (active_workspace.id % 2)
) hl.notification.create({ text = new_workspace, duration = 2000 })
hl.bind( hl.dispatch(hl.dsp.window.move({ workspace = tostring(new_workspace), follow = false }))
"SUPER + SHIFT + code:11", end, { description = "Move window to workspace "..i })
hl.dsp.window.move({ workspace = 2 }), end
{ 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" }
)
-12
View File
@@ -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"