[Build] Start refactor
This commit is contained in:
239
configs/userland/hypr/hyprland/binds.conf
Normal file
239
configs/userland/hypr/hyprland/binds.conf
Normal file
@@ -0,0 +1,239 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ KEYBINDS │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
$mainMod = SUPER
|
||||
# These key-binds are non-specific, laptop config has a separate file that includes
|
||||
# extra config for it specifically
|
||||
bind = $mainMod, Q, killactive
|
||||
bind = $mainMod, Return, exec, kitty
|
||||
bind = $mainMod SHIFT, E, exec, thunar
|
||||
bind = $mainMod, E, exec, kitty --hold fish -c "y"
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, F, fullscreen,
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ AGS │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
# ┌ ┐
|
||||
# │ Notifications │
|
||||
# └ ┘
|
||||
bind = $mainMod, N, exec, astal -i notifier toggle
|
||||
bind = $mainMod, C, exec, astal -i notifier clear-newest
|
||||
bind = $mainMod SHIFT, C, exec, astal -i notifier clear
|
||||
bind = $mainMod SHIFT, N, exec, astal -i notifier show
|
||||
bind = $mainMod CTRL SHIFT, N, exec, astal -i notifier hide
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ General │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Launch commands │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, L, exec, librewolf
|
||||
bind = $mainMod SHIFT, D, exec, vesktop
|
||||
bind = $mainMod SHIFT, V, exec, vscodium
|
||||
bind = $mainMod SHIFT, T, exec, thunderbird
|
||||
bind = $mainMod CTRL, H, exec, heroic
|
||||
bind = $mainMod SHIFT, Z, exec, zathura
|
||||
bind = $mainMod SHIFT, I, exec, notify-send 'AirPlay video server starting...' --app-name="AirPlay Video" && terminator -e "systemctl start avahi-daemon && sleep 5 && uxplay -n LinuxVideoPlay -nh"
|
||||
bind = $mainMod SHIFT, A, exec, notify-send 'AirPlay server starting...' --app-name="AirPlay Audio" && terminator -T "hidden-terminator" -e "systemctl start avahi-daemon && shairport-sync -a LinuxPlay"
|
||||
bind = $mainMod SHIFT, P, exec, notify-send 'Steam is launching...' --app-name="Steam" && steam
|
||||
bind = $mainMod CTRL, K, exec, notify-send 'Insta-Kill activated' --app-name="Hyprctl" && hyprctl kill
|
||||
bind = $mainMod SHIFT, O, exec, terminator -e "~/projects/dotfiles/ai.sh"
|
||||
|
||||
# ┌ ┐
|
||||
# │ Screenshots │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, S, exec, grimblast --notify copy area
|
||||
bind = $mainMod CTRL, S, exec, grimblast --notify copysave area
|
||||
bind = $mainMod ALT, S, exec, grimblast --notify save area
|
||||
bind = , PRINT, exec, grimblast --notify copy screen
|
||||
bind = CTRL, PRINT, exec, grimblast --notify copysave screen
|
||||
bind = SHIFT, PRINT, exec, grimblast --notify save screen
|
||||
|
||||
# ┌ ┐
|
||||
# │ Rofi commands │
|
||||
# └ ┘
|
||||
bind = $mainMod, Space, exec, killall rofi || rofi -show combi -modes combi -combi-modes "window,drun,run"
|
||||
bind = $mainMod SHIFT, H, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
||||
|
||||
# ┌ ┐
|
||||
# │ Logout commands │
|
||||
# └ ┘
|
||||
bind = $mainMod, escape, exec, wlogout
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Layout binds │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Same with vim-motions │
|
||||
# └ ┘
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, j, movefocus, d
|
||||
bind = $mainMod, k, movefocus, u
|
||||
|
||||
# ┌ ┐
|
||||
# │ Switch workspaces with mainMod + [0-9] │
|
||||
# └ ┘
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
bind = $mainMod CTRL, left, workspace, e-1
|
||||
bind = $mainMod CTRL, right, workspace, e+1
|
||||
bind = $mainMod CTRL, h, workspace, e-1
|
||||
bind = $mainMod CTRL, l, workspace, e+1
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Move active window to a workspace with │
|
||||
# │ mainMod + SHIFT + [0-9] │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
bind = $mainMod SHIFT, left, movetoworkspace, e-1
|
||||
bind = $mainMod SHIFT, right, movetoworkspace, e+1
|
||||
bind = $mainMod SHIFT, j, movetoworkspace, e-1
|
||||
bind = $mainMod SHIFT, k, movetoworkspace, e+1
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Special workspace │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, M, movetoworkspace, special
|
||||
bind = $mainMod, M, togglespecialworkspace
|
||||
|
||||
# ┌ ┐
|
||||
# │ Scroll through existing workspaces with │
|
||||
# │ mainMod + scroll │
|
||||
# └ ┘
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ move to next window / previous window with │
|
||||
# │ ALT + Tab / SHIFT + ALT + Tab │
|
||||
# └ ┘
|
||||
bind = ALT SHIFT, tab, cyclenext, prev
|
||||
bind = ALT, tab, focusurgentorlast
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Dwindle layout commands │
|
||||
# └ ┘
|
||||
bind = $mainMod CTRL, M, layoutmsg, swapsplit
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Move/resize windows with mainMod + LMB/RMB │
|
||||
# │ and dragging │
|
||||
# └ ┘
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Resize window with keybinds (change split) │
|
||||
# └ ┘
|
||||
bind = $mainMod ALT, T, submap, split
|
||||
|
||||
# Submap for split
|
||||
submap = split
|
||||
binde = , H, splitratio, -0.01
|
||||
binde = , L, splitratio, +0.01
|
||||
|
||||
# Reset bind
|
||||
bind = , escape, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Truly resize window with keybind (submap) │
|
||||
# └ ┘
|
||||
bind = $mainMod ALT, R, submap, resize
|
||||
|
||||
# Submap for resize
|
||||
submap = resize
|
||||
binde = , L, resizeactive, 10 0
|
||||
binde = , H, resizeactive, -10 0
|
||||
binde = , K, resizeactive, 0 -10
|
||||
binde = , J, resizeactive, 0 10
|
||||
|
||||
# Reset bind
|
||||
bind = , escape, submap, reset
|
||||
|
||||
submap = reset
|
||||
|
||||
# ┌ ┐
|
||||
# │ Freeze │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, escape, exec, hyprfreeze -a
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Volume control │
|
||||
# └ ┘
|
||||
bind = ,code:123, exec, pamixer -i 5
|
||||
bind = ,code:122, exec, pamixer -d 5
|
||||
bind = ,code:121, exec, pamixer -t
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Brightness-Control │
|
||||
# └ ┘
|
||||
bind = ,code:232, exec, light -U 5
|
||||
bind = ,code:233, exec, light -A 5
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Monitor config binds │
|
||||
# └ ┘
|
||||
bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl"
|
||||
bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl"
|
||||
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Funny windows user trolling binds │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
bind = CTRL ALT, Delete, exec, notify-send 'I am not Windows' 'Did ya really think that was gonna do anything? Only an eternally broken OS could need such a stupid keybind'
|
||||
bind = ALT, F4, exec, notify-send 'I am not Windows' 'That just feels like a way too unergonomic keybind to be used for such a common action'
|
||||
bind = $mainMod, left, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, right, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, up, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, down, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
18
configs/userland/hypr/hyprland/colors.conf
Normal file
18
configs/userland/hypr/hyprland/colors.conf
Normal file
@@ -0,0 +1,18 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ COLOURS │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
exec = swaybg -m fill -i /home/janis/NextCloud/Wallpapers/hypercar/ferrari_499p.jpg
|
||||
|
||||
general {
|
||||
col.active_border = rgba(ebc405cc) rgba(b81c15cc) rgba(673722cc) 45deg
|
||||
col.inactive_border = rgb(000000)
|
||||
}
|
||||
|
||||
decoration {
|
||||
shadow {
|
||||
color = rgb(282828)
|
||||
}
|
||||
}
|
||||
135
configs/userland/hypr/hyprland/general.conf
Normal file
135
configs/userland/hypr/hyprland/general.conf
Normal file
@@ -0,0 +1,135 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ LAUNCHING OF PROGRAMS │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
|
||||
source = ./colors.conf
|
||||
exec-once = ~/.config/hypr/xdg-portal-hyprland
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XAUTHORITY DISPLAY
|
||||
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = hypridle
|
||||
exec-once = nm-applet
|
||||
exec-once = nextcloud --background
|
||||
exec-once = sleep 2 && bash -c "ags run -d ~/projects/dotfiles/config/astal/ --gtk 4 >> /tmp/runner-log 2>&1"
|
||||
exec-once = bash -c "ags run -d ~/projects/dotfiles/config/ags/notifications/ --gtk 3 >> /tmp/notifier-log 2>&1"
|
||||
|
||||
|
||||
# ── wlhist ──────────────────────────────────────────────────────────
|
||||
exec-once = wl-paste --type text --watch cliphist store # Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store # Stores only image data
|
||||
|
||||
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = QT_QPA_PLATFORM_THEME,qt6ct
|
||||
env = OLLAMA_HOST,0.0.0.0
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ INPUT │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant = altgr-intl
|
||||
natural_scroll = true
|
||||
|
||||
numlock_by_default = true
|
||||
repeat_delay = 400
|
||||
|
||||
follow_mouse = 2
|
||||
mouse_refocus = true
|
||||
scroll_factor = 2
|
||||
accel_profile = flat
|
||||
|
||||
touchpad {
|
||||
disable_while_typing = true
|
||||
natural_scroll = true
|
||||
scroll_factor = 4
|
||||
}
|
||||
|
||||
focus_on_close = 1
|
||||
|
||||
sensitivity = 0
|
||||
}
|
||||
|
||||
|
||||
# ── Cursors ─────────────────────────────────────────────────────────
|
||||
cursor {
|
||||
no_warps = false
|
||||
inactive_timeout = 5
|
||||
}
|
||||
|
||||
|
||||
# ── Bind config ─────────────────────────────────────────────────────
|
||||
binds {
|
||||
workspace_back_and_forth = true
|
||||
}
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ GENERAL CONFIG │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
general {
|
||||
gaps_in = 3
|
||||
gaps_out = 4
|
||||
border_size = 2
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Style │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
decoration {
|
||||
inactive_opacity = 1
|
||||
rounding = 10
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
}
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
xray = true
|
||||
new_optimizations = true
|
||||
size = 1
|
||||
passes = 2
|
||||
}
|
||||
dim_inactive = true
|
||||
dim_strength = 0.1
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 4, myBezier
|
||||
animation = windowsOut, 1, 6, default, popin 80%
|
||||
animation = border, 1, 8, default
|
||||
animation = fade, 1, 3, default
|
||||
animation = workspaces, 1, 2, default
|
||||
animation = specialWorkspaceIn, 1, 2, default, fade
|
||||
animation = specialWorkspaceOut, 1, 2, default, fade
|
||||
}
|
||||
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = false
|
||||
vrr = 3
|
||||
allow_session_lock_restore = true
|
||||
}
|
||||
|
||||
dwindle {
|
||||
pseudotile = true
|
||||
force_split = 2
|
||||
preserve_split = true
|
||||
}
|
||||
15
configs/userland/hypr/hyprland/gestures.conf
Normal file
15
configs/userland/hypr/hyprland/gestures.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Gestures │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
gestures {
|
||||
workspace_swipe_distance = 200
|
||||
workspace_swipe_cancel_ratio = 0.3
|
||||
workspace_swipe_forever = true
|
||||
workspace_swipe_direction_lock = false
|
||||
}
|
||||
|
||||
gesture = 3, horizontal, workspace,
|
||||
gesture = 3, down, close
|
||||
gesture = 3, up, fullscreen
|
||||
14
configs/userland/hypr/hyprland/modal-binds/README.md
Normal file
14
configs/userland/hypr/hyprland/modal-binds/README.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# hyprvim
|
||||
Using Vim Motions and in general vim-style commands is really neat - so why not apply to the Window Manager as well?
|
||||
|
||||
## Mapping
|
||||
- `Super + W`: Manage windows (close windows, resize them, change split)
|
||||
- `Super + Y`: Workspace management (change workspace, move windows to workspaces)
|
||||
- `Super + C`: Notification management (dismiss notifications)
|
||||
- `Super + X`: Launch commands (for software)
|
||||
- `Super + D`: Device management (brightness, volume, media, etc)
|
||||
- `Super + S`: Screenshot
|
||||
|
||||
There are several quick binds available, such as `Super + [0-9]` to switch workspaces, `Super + Shift + [0-9]` to move windows as well as `Super + [hjkl]` to move focus.
|
||||
|
||||
Additionally, there are shortcuts to commonly used apps, such as `Super + Enter` for `kitty`, `Super + Shift + L` for `librewolf` and `Super + Space` for `rofi`
|
||||
56
configs/userland/hypr/hyprland/modal-binds/device.conf
Normal file
56
configs/userland/hypr/hyprland/modal-binds/device.conf
Normal file
@@ -0,0 +1,56 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ device config │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
|
||||
# ── Brightness-Control ──────────────────────────────────────────────
|
||||
bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%'
|
||||
bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%'
|
||||
|
||||
|
||||
# ── Volume control ──────────────────────────────────────────────────
|
||||
bind = ,code:123, exec, pamixer -i 5
|
||||
bind = ,code:122, exec, pamixer -d 5
|
||||
bind = ,code:121, exec, pamixer -t
|
||||
|
||||
|
||||
# ── Submap ──────────────────────────────────────────────────────────
|
||||
bind = $mainMod, D, submap, device
|
||||
submap = device
|
||||
|
||||
|
||||
# ── Swapescape ──────────────────────────────────────────────────────
|
||||
bind = , S, exec, fish -c "toggle-swapescape"
|
||||
bind = , S, submap, reset
|
||||
|
||||
|
||||
# ── FPV goggles binds ───────────────────────────────────────────────
|
||||
bind = CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl"
|
||||
bind = CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl"
|
||||
|
||||
|
||||
# ── Monitor config binds ────────────────────────────────────────────
|
||||
bind = SHIFT, D, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1, mirror, eDP-1 && notify-send 'Set to mirror internal display' --app-name="Hyprctl"
|
||||
bind = SHIFT, E, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1 && notify-send 'Set to expand external display' --app-name="Hyprctl"
|
||||
|
||||
|
||||
# ── Internal display controls ───────────────────────────────────────
|
||||
bind = , E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to battery optimized settings' --app-name="PowerProfiles"
|
||||
bind = , B, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to balanced performance settings' --app-name="PowerProfiles"
|
||||
bind = , P, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -p && notify-send 'Set to performance optimized settings' --app-name="PowerProfiles"
|
||||
|
||||
|
||||
# ── Using docked ────────────────────────────────────────────────────
|
||||
bind = , D, exec, hyprctl keyword monitor eDP-1, disable
|
||||
|
||||
# Keyboard layout
|
||||
bind = , U, exec, hyprctl keyword input:kb_layout us && hyprctl keyword input:kb_variant altgr-intl && notify-send 'Set to US keyboard layout' --app-name="Keyboard layout"
|
||||
bind = , U, submap, reset
|
||||
bind = , C, exec, hyprctl keyword input:kb_layout ch && hyprctl keyword input:kb_variant '' && notify-send 'Set to CH keyboard layout' --app-name="Keyboard layout"
|
||||
bind = , C, submap, reset
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
86
configs/userland/hypr/hyprland/modal-binds/launch.conf
Normal file
86
configs/userland/hypr/hyprland/modal-binds/launch.conf
Normal file
@@ -0,0 +1,86 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ App launching │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
bind = $mainMod, Return, exec, kitty
|
||||
|
||||
|
||||
# ── Rofi ────────────────────────────────────────────────────────────
|
||||
bind = $mainMod, Space, exec, killall rofi || rofi -show combi -modes combi -combi-modes "window,drun,run"
|
||||
bind = $mainMod SHIFT, H, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
|
||||
|
||||
|
||||
# ── Power / logout ──────────────────────────────────────────────────
|
||||
bind = $mainMod, escape, exec, wlogout
|
||||
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Launch submap │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
bind = $mainMod, X, submap, launch
|
||||
submap = launch
|
||||
|
||||
|
||||
# ── Kitty ───────────────────────────────────────────────────────────
|
||||
bind = , K, exec, kitty
|
||||
bind = , K, submap, reset
|
||||
bind = , Return, exec, kitty
|
||||
bind = , Return, submap, reset
|
||||
|
||||
|
||||
# ── Others ──────────────────────────────────────────────────────────
|
||||
bind = , Q, exec, qutebrowser
|
||||
bind = , Q, submap, reset
|
||||
|
||||
bind = , L, exec, librewolf
|
||||
bind = , L, submap, reset
|
||||
|
||||
bind = , E, exec, thunar
|
||||
bind = , E, submap, reset
|
||||
|
||||
bind = , D, exec, vesktop
|
||||
bind = , D, submap, reset
|
||||
|
||||
bind = SHIFT, B, exec, brave
|
||||
bind = SHIFT, B, submap, reset
|
||||
|
||||
bind = , F, exec, filezilla
|
||||
bind = , F, submap, reset
|
||||
|
||||
bind = , V, exec, vscodium
|
||||
bind = , V, submap, reset
|
||||
|
||||
bind = , T, exec, thunderbird
|
||||
bind = , T, submap, reset
|
||||
|
||||
bind = , H, exec, heroic
|
||||
bind = , H, submap, reset
|
||||
|
||||
bind = , Z, exec, zathura
|
||||
bind = , Z, submap, reset
|
||||
|
||||
bind = , B, exec, /opt/bs-manager/bs-manager
|
||||
bind = , B, submap, reset
|
||||
|
||||
bind = , P, exec, alvr_dashboard
|
||||
bind = , P, submap, reset
|
||||
|
||||
bind = , C, exec, qalculate-qt
|
||||
bind = , C, submap, reset
|
||||
|
||||
bind = , A, exec, notify-send 'AirPlay server starting...' --app-name="AirPlay Audio" && terminator -T "hidden-terminator" -e "systemctl start avahi-daemon && shairport-sync -a LinuxPlay"
|
||||
bind = , A, submap, reset
|
||||
|
||||
bind = SHIFT, A, exec, notify-send 'AirPlay video server starting...' --app-name="AirPlay Video" && terminator -T "hidden-terminator" -e "systemctl start avahi-daemon && sleep 5 && uxplay -n LinuxVideoPlay -nh"
|
||||
bind = SHIFT, A, submap, reset
|
||||
|
||||
bind = , S, exec, notify-send 'Steam is launching...' --app-name="Steam" && steam
|
||||
bind = , S, submap, reset
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
@@ -0,0 +1,30 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Notifications │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
|
||||
# ── Submap ──────────────────────────────────────────────────────────
|
||||
bind = $mainMod, C, submap, notifications
|
||||
submap = notifications
|
||||
|
||||
|
||||
bind = , T, exec, astal -i notifier toggle
|
||||
bind = , T, submap, reset
|
||||
|
||||
bind = , D, exec, astal -i notifier clear-newest
|
||||
bind = , D, submap, reset
|
||||
|
||||
bind = , C, exec, astal -i notifier clear
|
||||
bind = , C, submap, reset
|
||||
|
||||
bind = , S, exec, astal -i notifier show
|
||||
bind = , S, submap, reset
|
||||
|
||||
bind = , H, exec, astal -i notifier hide
|
||||
bind = , H, submap, reset
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
25
configs/userland/hypr/hyprland/modal-binds/screenshot.conf
Normal file
25
configs/userland/hypr/hyprland/modal-binds/screenshot.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Screenshotting binds │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
bind = $mainMod, S, submap, screenshotting
|
||||
submap = screenshotting
|
||||
|
||||
bind = , Y, exec, grimblast --notify copy area
|
||||
bind = , Y, submap, reset
|
||||
bind = , C, exec, grimblast --notify copysave area
|
||||
bind = , C, submap, reset
|
||||
bind = , S, exec, grimblast --notify save area
|
||||
bind = , S, submap, reset
|
||||
bind = SHIFT, Y, exec, grimblast --notify copy screen
|
||||
bind = SHIFT, Y, submap, reset
|
||||
bind = SHIFT, C, exec, grimblast --notify copysave screen
|
||||
bind = SHIFT, C, submap, reset
|
||||
bind = SHIFT, S, exec, grimblast --notify save screen
|
||||
bind = SHIFT, S, submap, reset
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
@@ -0,0 +1,40 @@
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Window management submap │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
bind = $mainMod, Q, killactive
|
||||
|
||||
# ── Resize, move using mouse plus mainMod ───────────────────────────
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
|
||||
# ── Submap ──────────────────────────────────────────────────────────
|
||||
bind = $mainMod, W, submap, windowing
|
||||
submap = windowing
|
||||
|
||||
# ── Resize windows ──────────────────────────────────────────────────
|
||||
binde = , L, resizeactive, 10 0
|
||||
binde = , H, resizeactive, -10 0
|
||||
binde = , K, resizeactive, 0 -10
|
||||
binde = , J, resizeactive, 0 10
|
||||
|
||||
|
||||
# ── Change splitratio ───────────────────────────────────────────────
|
||||
binde = SHIFT, H, splitratio, -0.01
|
||||
binde = SHIFT, L, splitratio, +0.01
|
||||
|
||||
|
||||
# ── Kill, freeze, etc ───────────────────────────────────────────────
|
||||
bind = SHIFT, f, exec, hyprfreeze -a
|
||||
bind = , x, killactive
|
||||
bind = , q, killactive
|
||||
bind = , f, fullscreen
|
||||
bind = , v, togglefloating
|
||||
bind = SHIFT, k, exec, notify-send 'Insta-Kill activated' --app-name="Hyprctl" && hyprctl kill
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
118
configs/userland/hypr/hyprland/modal-binds/workspace.conf
Normal file
118
configs/userland/hypr/hyprland/modal-binds/workspace.conf
Normal file
@@ -0,0 +1,118 @@
|
||||
# ┌ ┐
|
||||
# │ Switch workspaces with mainMod + [0-9] │
|
||||
# └ ┘
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# ┌ ┐
|
||||
# │ Move active window to a workspace with │
|
||||
# │ mainMod + SHIFT + [0-9] │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# ┌ ┐
|
||||
# │ Move focus with vim motions │
|
||||
# └ ┘
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, j, movefocus, d
|
||||
bind = $mainMod, k, movefocus, u
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Special workspace │
|
||||
# └ ┘
|
||||
bind = $mainMod SHIFT, M, movetoworkspace, special
|
||||
bind = $mainMod, M, togglespecialworkspace
|
||||
|
||||
# ┌ ┐
|
||||
# │ Scroll through existing workspaces with │
|
||||
# │ mainMod + scroll │
|
||||
# └ ┘
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# ┌ ┐
|
||||
# │ move to next window / previous window with │
|
||||
# │ ALT + Tab / SHIFT + ALT + Tab │
|
||||
# └ ┘
|
||||
bind = ALT SHIFT, tab, cyclenext, prev
|
||||
bind = ALT, tab, focusurgentorlast
|
||||
|
||||
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ Submap for workspace management │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
bind = $mainMod, A, submap, workspace
|
||||
submap = workspace
|
||||
|
||||
# ── Move to workspace ───────────────────────────────────────────────
|
||||
bind = , 1, workspace, 1
|
||||
bind = , 2, workspace, 2
|
||||
bind = , 3, workspace, 3
|
||||
bind = , 4, workspace, 4
|
||||
bind = , 5, workspace, 5
|
||||
bind = , 6, workspace, 6
|
||||
bind = , 7, workspace, 7
|
||||
bind = , 8, workspace, 8
|
||||
bind = , 9, workspace, 9
|
||||
bind = , 0, workspace, 10
|
||||
|
||||
|
||||
# ── Move active window to workspace ─────────────────────────────────
|
||||
bind = SHIFT, 1, movetoworkspace, 1
|
||||
bind = SHIFT, 2, movetoworkspace, 2
|
||||
bind = SHIFT, 3, movetoworkspace, 3
|
||||
bind = SHIFT, 4, movetoworkspace, 4
|
||||
bind = SHIFT, 5, movetoworkspace, 5
|
||||
bind = SHIFT, 6, movetoworkspace, 6
|
||||
bind = SHIFT, 7, movetoworkspace, 7
|
||||
bind = SHIFT, 8, movetoworkspace, 8
|
||||
bind = SHIFT, 9, movetoworkspace, 9
|
||||
bind = SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
|
||||
# ── Move workspace with vim motions or mouse scroll ─────────────────
|
||||
bind = , h, workspace, e-1
|
||||
bind = , l, workspace, e+1
|
||||
bind = , mouse_down, workspace, e+1
|
||||
bind = , mouse_up, workspace, e-1
|
||||
|
||||
|
||||
# ── Move window to workspace with vim motions ───────────────────────
|
||||
bind = SHIFT, h, movetoworkspace, e-1
|
||||
bind = SHIFT, l, movetoworkspace, e+1
|
||||
|
||||
|
||||
# ── Special workspace ───────────────────────────────────────────────
|
||||
bind = , s, togglespecialworkspace
|
||||
bind = SHIFT, s, movetoworkspace, special
|
||||
|
||||
|
||||
# ── dwindle ─────────────────────────────────────────────────────────
|
||||
bind = , M, layoutmsg, swapsplit
|
||||
|
||||
|
||||
# ── Exit submap ─────────────────────────────────────────────────────
|
||||
bind = , escape, submap, reset
|
||||
submap = reset
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
15
configs/userland/hypr/hyprland/mode-binds.conf
Normal file
15
configs/userland/hypr/hyprland/mode-binds.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
$mainMod = SUPER
|
||||
source=./modal-binds/workspace.conf
|
||||
source=./modal-binds/launch.conf
|
||||
source=./modal-binds/notifications.conf
|
||||
source=./modal-binds/window-management.conf
|
||||
source=./modal-binds/screenshot.conf
|
||||
source=./modal-binds/device.conf
|
||||
|
||||
|
||||
bind = CTRL ALT, Delete, exec, notify-send 'I am not Windows' 'Did ya really think that was gonna do anything? Only an eternally broken OS could need such a stupid keybind'
|
||||
bind = ALT, F4, exec, notify-send 'I am not Windows' 'That just feels like a way too unergonomic keybind to be used for such a common action'
|
||||
bind = $mainMod, left, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, right, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, up, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
bind = $mainMod, down, exec, notify-send 'I am not Windows' 'This is no inefficient stacking manager. Tiling happens automatically'
|
||||
127
configs/userland/hypr/hyprland/windowrules.conf
Normal file
127
configs/userland/hypr/hyprland/windowrules.conf
Normal file
@@ -0,0 +1,127 @@
|
||||
$mainMod = SUPER
|
||||
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
# ╭────────────────────────────────────────────────╮
|
||||
# │ WINDOW RULES │
|
||||
# ╰────────────────────────────────────────────────╯
|
||||
# ────────────────────────────────────────────────────────────────────
|
||||
windowrule = move 1450 50, match:title (.*)Power menu$
|
||||
windowrule = workspace 2, match:class evince
|
||||
windowrule = workspace 2, match:title .*Okular.*
|
||||
windowrule = workspace 2, match:class org.pwmt.zathura
|
||||
windowrule = fullscreen on, match:title wlogout
|
||||
windowrule = workspace 2, match:class librewolf
|
||||
windowrule = workspace 2, match:title LibreWolf
|
||||
windowrule = workspace 2, match:title BSManager
|
||||
windowrule = workspace 1, match:title ALVR(.*)
|
||||
windowrule = workspace 2, match:title (.*)Beat Saber(.*)
|
||||
windowrule = fullscreen on, match:title (.*)Beat Saber(.*)
|
||||
windowrule = workspace 2, match:title (.*)Discord(.*)
|
||||
windowrule = workspace 3, match:title ^(Steam)(.*)$
|
||||
windowrule = float off, match:title ^(Steam)(.*)$
|
||||
windowrule = workspace 1, match:title (.*)(VSCodium)$
|
||||
windowrule = center on, match:title ^(.*)(VSCodium)$
|
||||
windowrule = workspace 3, match:class minecraft-launcher
|
||||
windowrule = tile on, match:class minecraft-launcher
|
||||
windowrule = fullscreen on, match:title ^(.*)(Minecraft)(.*)$
|
||||
windowrule = workspace 3, match:title ^(.*)(Minecraft)(.*)$
|
||||
|
||||
windowrule = workspace 1, match:title ^(.*)hidden-terminator*(.*)$
|
||||
windowrule = size 0 0, match:title ^(.*)hidden-terminator*(.*)$
|
||||
windowrule = move 0 0, match:title ^(.*)hidden-terminator*(.*)$
|
||||
windowrule = float on, match:title ^(.*)hidden-terminator*(.*)$
|
||||
|
||||
# ┌ ┐
|
||||
# │ Set rule for yazi filepicker │
|
||||
# └ ┘
|
||||
windowrule = float on, match:title ^(.*)termfilechooser*(.*)$
|
||||
windowrule = size 1400 800, match:title ^(.*)termfilechooser*(.*)$
|
||||
windowrule = center on, match:title ^(.*)termfilechooser*(.*)$
|
||||
windowrule = dim_around on, match:title ^(.*)termfilechooser*(.*)$
|
||||
|
||||
# ┌ ┐
|
||||
# │ Set floating windows & position them centered │
|
||||
# └ ┘
|
||||
windowrule = float on, match:class file_progress
|
||||
windowrule = center on, match:class file_progress
|
||||
|
||||
windowrule = float on, match:class confirm
|
||||
windowrule = center on, match:class confirm
|
||||
|
||||
windowrule = float on, match:class dialog
|
||||
windowrule = center on, match:class dialog
|
||||
|
||||
windowrule = float on, match:class download
|
||||
windowrule = center on, match:class download
|
||||
|
||||
windowrule = float on, match:class notification
|
||||
windowrule = center on, match:class notification
|
||||
|
||||
windowrule = float on, match:class error
|
||||
windowrule = center on, match:class error
|
||||
|
||||
windowrule = float on, match:class splash
|
||||
windowrule = center on, match:class splash
|
||||
|
||||
windowrule = float on, match:class confirmreset
|
||||
windowrule = center on, match:class confirmreset
|
||||
|
||||
windowrule = float on, match:title Open File
|
||||
windowrule = center on, match:title Open File
|
||||
|
||||
windowrule = float on, match:title branchdialog
|
||||
windowrule = center on, match:title branchdialog
|
||||
|
||||
windowrule = float on, match:class Lxappearance
|
||||
windowrule = center on, match:class Lxappearance
|
||||
|
||||
windowrule = float on, match:title ^(Media viewer)$
|
||||
windowrule = center on, match:title ^(Media viewer)$
|
||||
|
||||
windowrule = float on, match:title ^(Volume Control)$
|
||||
windowrule = center on, match:title ^(Volume Control)$
|
||||
|
||||
windowrule = float on, match:title ^(Picture-in-Picture)$
|
||||
windowrule = center on, match:title ^(Picture-in-Picture)$
|
||||
|
||||
windowrule = float on, match:title ^(File Operation Progress)$
|
||||
windowrule = center on, match:title ^(File Operation Progress)$
|
||||
|
||||
windowrule = float on, match:title ^(Loading)(.*)$
|
||||
windowrule = center on, match:title ^(Loading)(.*)$
|
||||
|
||||
windowrule = float on, match:title ^(Qalculate)(.*)$
|
||||
windowrule = center on, match:title ^(Qalculate)(.*)$
|
||||
windowrule = workspace special, match:title ^(Qalculate)(.*)$
|
||||
windowrule = size 1200 800, match:title ^(Qalculate)(.*)$
|
||||
|
||||
windowrule = float on, match:class pavucontrol-qt
|
||||
windowrule = center on, match:class pavucontrol-qt
|
||||
|
||||
windowrule = float on, match:class pavucontrol
|
||||
windowrule = center on, match:class pavucontrol
|
||||
|
||||
windowrule = float on, match:class file-roller
|
||||
windowrule = center on, match:class file-roller
|
||||
|
||||
# idleinhibit
|
||||
windowrule = idle_inhibit focus, match:title ^(Rocket League)(.*)$
|
||||
windowrule = fullscreen on, match:title ^(Steam Big Picture)$
|
||||
windowrule = idle_inhibit always, match:class steam
|
||||
windowrule = idle_inhibit always, match:class lutris
|
||||
windowrule = idle_inhibit focus, match:class vlc
|
||||
windowrule = idle_inhibit focus, match:class supertuxkart
|
||||
windowrule = idle_inhibit fullscreen, match:title ^(.*)(Discord)(.*)$
|
||||
windowrule = idle_inhibit fullscreen, match:title ^(.*)(~)(.*)$
|
||||
|
||||
# Do not screenshare bitwarden windows
|
||||
windowrule = no_screen_share on, match:title (.*)(Bitwarden)(.*)
|
||||
windowrule = no_screen_share on, match:class nm-connection-editor
|
||||
windowrule = no_screen_share on, match:title (.*)(secret)(.*)
|
||||
windowrule = no_screen_share on, match:class (.*)[aA]uthentication(.*)
|
||||
|
||||
|
||||
# ┌ ┐
|
||||
# │ Layer rules │
|
||||
# └ ┘
|
||||
layerrule = dim_around on, match:namespace rofi
|
||||
Reference in New Issue
Block a user