Finish hypr config
This commit is contained in:
@@ -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
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
@@ -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",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
@@ -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)" }
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
@@ -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,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",
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -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
@@ -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" }
|
|
||||||
)
|
|
||||||
|
|||||||
@@ -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"
|
|
||||||
Reference in New Issue
Block a user