adds overview, removes old stuff
This commit is contained in:
@@ -1,15 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Animations Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Animations/
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = overshot, 0.13, 0.99, 0.29, 1.1
|
||||
animation = windowsIn, 1, 4, overshot, popin
|
||||
animation = windowsOut, 1, 5, default, popin 80%
|
||||
animation = border, 1, 5, default
|
||||
animation = workspacesIn, 1, 6, overshot, slide
|
||||
animation = workspacesOut, 1, 6, overshot, slidefade 80%
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Autostart Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# Autostart wiki https://wiki.hyprland.org/0.45.0/Configuring/Keywords/#executing #
|
||||
exec-once = qs
|
||||
exec-once = blueman-applet &
|
||||
exec-once = fcitx5 -d &
|
||||
exec-once = mako &
|
||||
exec-once = nm-applet --indicator &
|
||||
exec-once = bash -c "mkfifo /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob && tail -f /tmp/$HYPRLAND_INSTANCE_SIGNATURE.wob | wob -c ~/.config/hypr/wob.ini & disown" &
|
||||
exec-once = /usr/lib/polkit-kde-authentication-agent-1 &
|
||||
|
||||
exec-once = waypaper --restore
|
||||
|
||||
# ## Slow app launch fix
|
||||
exec-once = systemctl --user import-environment &
|
||||
exec-once = hash dbus-update-activation-environment 2>/dev/null &
|
||||
exec-once = dbus-update-activation-environment --systemd &
|
||||
|
||||
# ## Idle configuration
|
||||
exec-once = $idlehandler
|
||||
|
||||
# Clipboard fix
|
||||
# https://github.com/hyprwm/Hyprland/issues/2319#issuecomment-2409983376
|
||||
#exec-once = wl-paste -t text -w xclip -selection clipboard &
|
||||
#exec-once = wl-paste --watch cliphist store &
|
||||
|
||||
# vicinae
|
||||
exec-once = vicinae server
|
||||
|
||||
# pyprland
|
||||
exec-once = /usr/bin/pypr --debug /tmp/pypr.log
|
||||
@@ -1,19 +0,0 @@
|
||||
$wallpaper = /usr/share/wallpapers/downloaded/pexels-8kspain-21564213.jpg
|
||||
$background = rgb(252425)
|
||||
$foreground = rgb(F9F1D9)
|
||||
$color0 = rgb(505051)
|
||||
$color1 = rgb(9C604E)
|
||||
$color2 = rgb(807A52)
|
||||
$color3 = rgb(908BAB)
|
||||
$color4 = rgb(B7815F)
|
||||
$color5 = rgb(B9BECA)
|
||||
$color6 = rgb(EED793)
|
||||
$color7 = rgb(EEE3C1)
|
||||
$color8 = rgb(A79F87)
|
||||
$color9 = rgb(9C604E)
|
||||
$color10 = rgb(807A52)
|
||||
$color11 = rgb(908BAB)
|
||||
$color12 = rgb(B7815F)
|
||||
$color13 = rgb(B9BECA)
|
||||
$color14 = rgb(EED793)
|
||||
$color15 = rgb(EEE3C1)
|
||||
@@ -1,22 +1,22 @@
|
||||
-- config/colors.lua
|
||||
-- Centralised palette
|
||||
-- Use these Lua globals throughout every other module.
|
||||
background = "rgb(090A0D)"
|
||||
foreground = "rgb(B1B2B5)"
|
||||
color0 = "rgb(484338)"
|
||||
color1 = "rgb(5C564B)"
|
||||
color2 = "rgb(54708A)"
|
||||
color3 = "rgb(8B7C56)"
|
||||
color4 = "rgb(537FBA)"
|
||||
color5 = "rgb(E3D096)"
|
||||
color6 = "rgb(6886F3)"
|
||||
color7 = "rgb(86898D)"
|
||||
color8 = "rgb(5E6063)"
|
||||
color9 = "rgb(5C564B)"
|
||||
color10 = "rgb(54708A)"
|
||||
color11 = "rgb(8B7C56)"
|
||||
color12 = "rgb(537FBA)"
|
||||
color13 = "rgb(E3D096)"
|
||||
color14 = "rgb(6886F3)"
|
||||
color15 = "rgb(86898D)"
|
||||
wallpaper = "/usr/share/wallpapers/downloaded/pexels-philippedonn-1114690.jpg"
|
||||
background = "rgb(080701)"
|
||||
foreground = "rgb(AEADA7)"
|
||||
color0 = "rgb(463E37)"
|
||||
color1 = "rgb(3B3E4D)"
|
||||
color2 = "rgb(5D8071)"
|
||||
color3 = "rgb(464E89)"
|
||||
color4 = "rgb(1982B3)"
|
||||
color5 = "rgb(609D75)"
|
||||
color6 = "rgb(73BAFF)"
|
||||
color7 = "rgb(848279)"
|
||||
color8 = "rgb(5C5B54)"
|
||||
color9 = "rgb(3B3E4D)"
|
||||
color10 = "rgb(5D8071)"
|
||||
color11 = "rgb(464E89)"
|
||||
color12 = "rgb(1982B3)"
|
||||
color13 = "rgb(609D75)"
|
||||
color14 = "rgb(73BAFF)"
|
||||
color15 = "rgb(848279)"
|
||||
wallpaper = "/usr/share/wallpapers/downloaded/pexels-jplenio-1102908.jpg"
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Decorations Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/colors.conf
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#decoration
|
||||
|
||||
decoration {
|
||||
active_opacity = 1
|
||||
inactive_opacity = 0.7
|
||||
rounding = 1
|
||||
dim_inactive = true
|
||||
dim_strength = 0.1
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#blur
|
||||
blur {
|
||||
size = 30
|
||||
passes = 2 # more passes = more resource intensive.
|
||||
xray = true
|
||||
noise = 0.01
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#shadow
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 10
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Defaults Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
$filemanager = nemo
|
||||
#$applauncher = tofi-drun --drun-launch=true
|
||||
#$applauncher = rofi -show combi -modi window,run,combi -combi-modi window,run
|
||||
$dmenu = vicinae dmenu --placeholder
|
||||
$applauncher = vicinae toggle
|
||||
$terminal = kitty
|
||||
$idlehandler = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000'
|
||||
$capturing = grim -g "$(slurp)" - | swappy -f -
|
||||
@@ -1,21 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Enviroment Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
envd = HYPRCURSOR_THEME,vimix-kanagawa-hyprcursors-lotus
|
||||
envd = HYPRCURSOR_SIZE,34
|
||||
env = XCURSOR_THEME,vimix-kanagawa-hyprcursors-lotus
|
||||
envd = XCURSOR_SIZE,34
|
||||
envd = QT_CURSOR_SIZE,34
|
||||
|
||||
# Force electron apps to use wayland
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = QT_QPA_PLATFORM, wayland
|
||||
env = SDL_VIDEODRIVER, wayland
|
||||
env = CLUTTER_BACKEND, wayland
|
||||
env = XDG_SESSION_TYPE, wayland
|
||||
env = MOZ_ENABLE_WAYLAND, 1
|
||||
env = NIXOS_OZONE_WL, 1
|
||||
|
||||
# fixes full screen flickering
|
||||
env = WLR_DRM_NO_DIRECT_SCANOUT,1
|
||||
@@ -1,12 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Input Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Input wiki https://wiki.hyprland.org/0.45.0/Configuring/Variables/#input
|
||||
|
||||
input {
|
||||
kb_layout = de
|
||||
follow_mouse = 2 # 0|1|2|3
|
||||
float_switch_override_focus = 2
|
||||
numlock_by_default = true
|
||||
}
|
||||
@@ -1,175 +0,0 @@
|
||||
# 0. Includes
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# 1. Applications
|
||||
# https://wiki.hyprland.org/Configuring/Binds/
|
||||
bindd = $mainMod, RETURN, Opens your preferred terminal emulator ($terminal), exec, $terminal
|
||||
bindd = $mainMod, E, Opens your preferred filemanager ($filemanager), exec, $filemanager
|
||||
#bindd = $mainMod, A, Screen capture selection, exec, $capturing
|
||||
bindd = $mainMod, Q, Closes (not kill) current window, killactive,
|
||||
bindd = $mainMod SHIFT, M, Exits Hyprland by terminating the user sessions, exec, loginctl terminate-user ""
|
||||
bindd = $mainMod, V, Switches current window between floating and tiling mode, togglefloating,
|
||||
bindd = $mainMod, SPACE, Runs your application launcher, exec, $applauncher
|
||||
bindd = $mainMod, F, Toggles current window fullscreen mode, fullscreen
|
||||
bindd = $mainMod, Y, Pin current window (shows on all workspaces),pin
|
||||
bindd = $mainMod, J, Toggles curren window split mode, togglesplit, # dwindle
|
||||
|
||||
# ======= Grouping Windows =======
|
||||
bindd = $mainMod, K, Toggles current window group mode (ungroup all related), togglegroup,
|
||||
bindd = $mainMod, Tab, Switches to the next window in the group, changegroupactive, f
|
||||
|
||||
# ======= Volume Control =======
|
||||
|
||||
bindel = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volume-helper.sh up
|
||||
bindel = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volume-helper.sh down
|
||||
bindel = , XF86AudioMute, exec, ~/.config/hypr/scripts/volume-helper.sh toggle
|
||||
|
||||
# ======= Playback Control =======
|
||||
|
||||
bindd = , XF86AudioPlay, Toggles play/pause, exec, playerctl play-pause
|
||||
bindd = , XF86AudioNext, Next track, exec, playerctl next
|
||||
bindd = , XF86AudioPrev, Previous track, exec, playerctl previous
|
||||
|
||||
# ======= Screen Brightness =======
|
||||
|
||||
bindel = , XF86MonBrightnessUp, exec, brightnessctl s +5% #Increases brightness 5%
|
||||
bindel = , XF86MonBrightnessDown, exec, brightnessctl s 5%- #Decreases brightness 5%
|
||||
bindd = $mainMod SHIFT, P, Runs the calculator application, exec, gnome-calculator
|
||||
bindd = $mainMod, L, Lock the screen, exec, ~/.config/swaylock/lockscript.sh
|
||||
bindd = $mainMod, O, Reload/restarts Waybar, exec, killall -SIGUSR2 waybar
|
||||
|
||||
# ======= Window Actions =======
|
||||
|
||||
## Move window with mainMod + LMB/RMB and dragging
|
||||
bindd = $mainMod, mouse:272, Move the window towards a direction, movewindow
|
||||
## Move window towards a direction
|
||||
bindd = $mainMod SHIFT, left, Move active window to the left, movewindow, l
|
||||
bindd = $mainMod SHIFT, right, Move active window to the right, movewindow, r
|
||||
bindd = $mainMod SHIFT, up, Move active window upwards, movewindow, u
|
||||
bindd = $mainMod SHIFT, down, Move active window downwards, movewindow, d
|
||||
## Move focus with mainMod + arrow keys
|
||||
bindd = $mainMod, left, Move focus to the left, movefocus, l
|
||||
bindd = $mainMod, right, Move focus to the right, movefocus, r
|
||||
bindd = $mainMod, up, Move focus upwards, movefocus, u
|
||||
bindd = $mainMod, down, Move focus downwards, movefocus, d
|
||||
## Resizing windows
|
||||
# Activate keyboard window resize mode
|
||||
# https://wiki.hyprland.org/Configuring/Binds/#submaps
|
||||
bindd = $mainMod, R, Activates window resizing mode, submap, resize
|
||||
submap = resize
|
||||
bindd = , right, Resize to the right (resizing mode), resizeactive, 15 0
|
||||
bindd = , left, Resize to the left (resizing mode), resizeactive, -15 0
|
||||
bindd = , up, Resize upwards (resizing mode), resizeactive, 0 -15
|
||||
bindd = , down, Resize downwards (resizing mode), resizeactive, 0 15
|
||||
bindd = , l, Resize to the right (resizing mode), resizeactive, 15 0
|
||||
bindd = , h, Resize to the left (resizing mode), resizeactive, -15 0
|
||||
bindd = , k, Resize upwards (resizing mode), resizeactive, 0 -15
|
||||
bindd = , j, Resize downwards (resizing mode), resizeactive, 0 15
|
||||
bindd = , escape, Ends window resizing mode, submap, reset
|
||||
submap = reset
|
||||
# Quick resize window with keyboard
|
||||
# !!! added $mainMod here because CTRL + SHIFT is used for word selection in various text editors
|
||||
bindd = $mainMod CTRL SHIFT, right, Resize to the right, resizeactive, 25 0
|
||||
bindd = $mainMod CTRL SHIFT, left, Resize to the left, resizeactive, -25 0
|
||||
bindd = $mainMod CTRL SHIFT, up, Resize upwards, resizeactive, 0 -25
|
||||
bindd = $mainMod CTRL SHIFT, down, Resize downwards, resizeactive, 0 25
|
||||
bindd = $mainMod CTRL SHIFT, l, Resize to the right, resizeactive, 15 0
|
||||
bindd = $mainMod CTRL SHIFT, h, Resize to the left, resizeactive, -15 0
|
||||
bindd = $mainMod CTRL SHIFT, k, Resize upwards, resizeactive, 0 -15
|
||||
bindd = $mainMod CTRL SHIFT, j, Resize downwards, resizeactive, 0 15
|
||||
# Resize window with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:273, resizewindow #Resize the window towards a direction
|
||||
bindm = $mainMod, mouse:272, movewindow #Drag window
|
||||
## Resizing Windows End #
|
||||
## Move active window to a workspace with $mainMod + CTRL + [0-9]
|
||||
bindd = $mainMod CTRL, 1, Move window and switch to workspace 1, movetoworkspace, 1
|
||||
bindd = $mainMod CTRL, 2, Move window and switch to workspace 2, movetoworkspace, 2
|
||||
bindd = $mainMod CTRL, 3, Move window and switch to workspace 3, movetoworkspace, 3
|
||||
bindd = $mainMod CTRL, 4, Move window and switch to workspace 4, movetoworkspace, 4
|
||||
bindd = $mainMod CTRL, 5, Move window and switch to workspace 5, movetoworkspace, 5
|
||||
bindd = $mainMod CTRL, 6, Move window and switch to workspace 6, movetoworkspace, 6
|
||||
bindd = $mainMod CTRL, 7, Move window and switch to workspace 7, movetoworkspace, 7
|
||||
bindd = $mainMod CTRL, 8, Move window and switch to workspace 8, movetoworkspace, 8
|
||||
bindd = $mainMod CTRL, 9, Move window and switch to workspace 9, movetoworkspace, 9
|
||||
bindd = $mainMod CTRL, 0, Move window and switch to workspace 10, movetoworkspace, 10
|
||||
bindd = $mainMod CTRL, left, Move window and switch to the next workspace, movetoworkspace, -1
|
||||
bindd = $mainMod CTRL, right, Move window and switch to the previous workspace, movetoworkspace, +1
|
||||
## Same as above, but doesn't switch to the workspace
|
||||
bindd = $mainMod SHIFT, 1, Move window silently to workspace 1, movetoworkspacesilent, 1
|
||||
bindd = $mainMod SHIFT, 2, Move window silently to workspace 2, movetoworkspacesilent, 2
|
||||
bindd = $mainMod SHIFT, 3, Move window silently to workspace 3, movetoworkspacesilent, 3
|
||||
bindd = $mainMod SHIFT, 4, Move window silently to workspace 4, movetoworkspacesilent, 4
|
||||
bindd = $mainMod SHIFT, 5, Move window silently to workspace 5, movetoworkspacesilent, 5
|
||||
bindd = $mainMod SHIFT, 6, Move window silently to workspace 6, movetoworkspacesilent, 6
|
||||
bindd = $mainMod SHIFT, 7, Move window silently to workspace 7, movetoworkspacesilent, 7
|
||||
bindd = $mainMod SHIFT, 8, Move window silently to workspace 8, movetoworkspacesilent, 8
|
||||
bindd = $mainMod SHIFT, 9, Move window silently to workspace 9, movetoworkspacesilent, 9
|
||||
bindd = $mainMod SHIFT, 0, Move window silently to workspace 10, movetoworkspacesilent, 10
|
||||
# Window actions End #
|
||||
# ======= Workspace Actions =======
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bindd = $mainMod, 1, Switch to workspace 1, workspace, 1
|
||||
bindd = $mainMod, 2, Switch to workspace 2, workspace, 2
|
||||
bindd = $mainMod, 3, Switch to workspace 3, workspace, 3
|
||||
bindd = $mainMod, 4, Switch to workspace 4, workspace, 4
|
||||
bindd = $mainMod, 5, Switch to workspace 5, workspace, 5
|
||||
bindd = $mainMod, 6, Switch to workspace 6, workspace, 6
|
||||
bindd = $mainMod, 7, Switch to workspace 7, workspace, 7
|
||||
bindd = $mainMod, 8, Switch to workspace 8, workspace, 8
|
||||
bindd = $mainMod, 9, Switch to workspace 9, workspace, 9
|
||||
bindd = $mainMod, 0, Switch to workspace 10, workspace, 10
|
||||
# Scroll through existing workspaces with mainMod + , or .
|
||||
bindd = $mainMod, PERIOD, Scroll through workspaces incrementally, workspace, e+1
|
||||
bindd = $mainMod, COMMA, Scroll through workspaces decrementally, workspace, e-1
|
||||
# With $mainMod + Alt + Left / Right
|
||||
bindd = $mainMod ALT, left, Switch to the previous workspace, workspace, e-1
|
||||
bindd = $mainMod ALT, right, Switch to the next workspace, workspace, e+1
|
||||
# With $mainMod + scroll
|
||||
bindd = $mainMod, mouse_down, Scroll through workspaces incrementally, workspace, e+1
|
||||
bindd = $mainMod, mouse_up, Scroll through workspaces decrementally, workspace, e-1
|
||||
bindd = $mainMod, slash, Switch to the previous workspace, workspace, previous
|
||||
# Special workspaces (scratchpads)
|
||||
bindd = $mainMod, minus, Move active window to Special workspace, movetoworkspace,special
|
||||
bindd = $mainMod, equal, Toggles the Special workspace, togglespecialworkspace, special
|
||||
bindd = $mainMod, F1, Call special workspace scratchpad, togglespecialworkspace, scratchpad
|
||||
bindd = $mainMod ALT SHIFT, F1, Move active window to s~/.config/hypr/scripts/pecial workspace scratchpad, movetoworkspacesilent, special:scratchpad
|
||||
|
||||
# ======= Screenshot =======
|
||||
# Screenshot a window
|
||||
bind = $mainMod, PRINT, exec, hyprshot -m window
|
||||
# Screenshot a monitor
|
||||
bind = , PRINT, exec, hyprshot -m output
|
||||
# Screenshot a region
|
||||
bind = $shiftMod, PRINT, exec, hyprshot -m region
|
||||
# Screenrec
|
||||
bind = $mainMod, S, exec, ~/.config/hypr/scripts/record-or-screenshot.sh -d "$dmenu"
|
||||
|
||||
# ======= Color Picker =======
|
||||
bindd = $mainMod, P, Launch hyprpicker to pick a color, exec, hyprpicker -a
|
||||
|
||||
# ======= Additional Settings =======
|
||||
#bind = $mainMod, c, exec, cliphist list | tofi --prompt-text="clip:" | cliphist decode | wl-copy
|
||||
bind = $mainMod, c, exec, vicinae vicinae://extensions/vicinae/clipboard/history
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Binds
|
||||
binds {
|
||||
allow_workspace_cycles = 1
|
||||
workspace_back_and_forth = 1
|
||||
workspace_center_on = 1
|
||||
movefocus_cycles_fullscreen = true
|
||||
window_direction_monitor_fallback = true
|
||||
}
|
||||
|
||||
# Toggle Waybar
|
||||
bind = $mainMod, W, exec, killall -SIGUSR1 waybar
|
||||
bind = $mainMod SHIFT, W, exec, killall -SIGUSR2 waybar # restart
|
||||
|
||||
# ======= Monitors =======
|
||||
# Toggle Monitor Flip
|
||||
bind = $mainMod, F7, exec, ~/.config/hypr/scripts/rotate_current_screen.sh
|
||||
|
||||
bind = $mainMod, F8, exec, ~/.config/hypr/scripts/monitor-toggle.sh toggle-externals
|
||||
# bind = $mainMod, F8, exec, ~/.config/hypr/scripts/monitor-toggle.sh laptop
|
||||
bind = $mainMod, F9, exec, ~/.config/hypr/scripts/monitor-toggle.sh dual
|
||||
bind = $mainMod, F10, exec, ~/.config/hypr/scripts/monitor-toggle.sh triple
|
||||
@@ -17,7 +17,16 @@ hl.bind(S .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
|
||||
|
||||
-- ── Groups ───────────────────────────────────────────────────
|
||||
hl.bind(S .. " + K", hl.dsp.group.toggle())
|
||||
hl.bind(S .. " + Tab", hl.dsp.group.next( window ))
|
||||
-- hl.bind(S .. " + Tab", hl.dsp.group.next( window ))
|
||||
|
||||
hl.bind(S .. " + Tab", function()
|
||||
local w = hl.get_active_window()
|
||||
if w and w.group then
|
||||
hl.dispatch(hl.dsp.group.next())
|
||||
else
|
||||
hl.dispatch(hl.dsp.exec_cmd("qs ipc -c own call overview toggle"))
|
||||
end
|
||||
end)
|
||||
|
||||
-- ── Volume ───────────────────────────────────────────────────
|
||||
local vol = "~/.config/hypr/scripts/volume-helper.sh"
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Monitor Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Monitor wiki https://wiki.hyprland.org/0.45.0/Configuring/Monitors/
|
||||
|
||||
monitor = eDP-2, highres@highrr, 0x0, 1, vrr, 1
|
||||
|
||||
#monitor = HDMI-A-1, highres@highrr, auto-right, 1, transform, 1
|
||||
#monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
|
||||
monitor = desc:Samsung Electric Company S24F350 H4ZK111233, highres@highrr, 1920x0, 1#, transform, 1
|
||||
|
||||
# monitor = HDMI-A-1, highres@highrr, auto-right, 1, vrr, 0
|
||||
|
||||
# If you need to scale things like steam etc, please uncomment these lines.
|
||||
# Adjust GDK_SCALE accordingly to your liking.
|
||||
#xwayland {
|
||||
# force_zero_scaling = true # Unscale XWayland
|
||||
#}
|
||||
|
||||
#env = GDK_SCALE, 1.25 # GDK Scaling Factor
|
||||
@@ -1,12 +0,0 @@
|
||||
# https://github.com/sandwichfarm/hyprexpo-plus
|
||||
# currently not working
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 3
|
||||
gap_size = 5
|
||||
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
keynav_enable = 1
|
||||
keynav_wrap_h = 1 # wrap horizontally at row edges
|
||||
keynav_wrap_v = 1 # wrap vertically at column edges
|
||||
}
|
||||
}
|
||||
@@ -1,89 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Variables Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
source = ~/.config/hypr/config/colors.conf
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 2
|
||||
gaps_out = 1
|
||||
border_size = 1
|
||||
col.active_border = $color4
|
||||
col.inactive_border = $color2
|
||||
layout = dwindle # master|dwindle
|
||||
resize_on_border = true
|
||||
extend_border_grab_area = 10
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#snap
|
||||
snap {
|
||||
enabled = true
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#group
|
||||
group {
|
||||
col.border_active = $color6
|
||||
col.border_inactive = $color2
|
||||
col.border_locked_active = $color3
|
||||
col.border_locked_inactive = $color0
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#groupbar
|
||||
groupbar {
|
||||
font_size = 13
|
||||
height = 1
|
||||
indicator_height = 16
|
||||
rounding = 2
|
||||
font_family = "Roboto Sanss"
|
||||
text_color = $foreground
|
||||
text_offset = -8
|
||||
font_weight_active = ultraheavy
|
||||
font_weight_inactive = semibold
|
||||
col.active = $color6
|
||||
col.inactive = $color2
|
||||
col.locked_active = $color3
|
||||
col.locked_inactive = $color0
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#misc
|
||||
misc {
|
||||
font_family = "Roboto Sans"
|
||||
splash_font_family = "Roboto Sans"
|
||||
disable_hyprland_logo = true
|
||||
col.splash = $color2
|
||||
background_color = $background
|
||||
enable_swallow = true
|
||||
swallow_regex = ^(cachy-browser|firefox|nautilus|nemo|thunar|btrfs-assistant.)$
|
||||
focus_on_activate = true
|
||||
vrr = 0
|
||||
# Hypridle cmatrix fix:
|
||||
session_lock_xray = true
|
||||
middle_click_paste = false
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#render
|
||||
render {
|
||||
direct_scanout = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/0.45.0/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
special_scale_factor = 0.8
|
||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
preserve_split = true
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/0.45.0/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
special_scale_factor = 0.8
|
||||
}
|
||||
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
|
||||
device {
|
||||
name = logitech-gaming-mouse-g502
|
||||
sensitivity=0.9
|
||||
}
|
||||
@@ -23,21 +23,21 @@ hl.config({
|
||||
},
|
||||
|
||||
group = {
|
||||
["col.border_active"] = color6,
|
||||
["col.border_active"] = color9,
|
||||
["col.border_inactive"] = color2,
|
||||
["col.border_locked_active"] = color3,
|
||||
["col.border_locked_inactive"] = color0,
|
||||
groupbar = {
|
||||
font_size = 13,
|
||||
height = 1,
|
||||
font_size = 12,
|
||||
height = 16,
|
||||
indicator_height = 16,
|
||||
rounding = 2,
|
||||
rounding = 3,
|
||||
font_family = "Roboto Sans",
|
||||
text_color = foreground,
|
||||
text_offset = -8,
|
||||
font_weight_active = "ultraheavy",
|
||||
font_weight_inactive = "semibold",
|
||||
["col.active"] = color6,
|
||||
text_color = background,
|
||||
text_offset = -16,
|
||||
font_weight_active = "bold",
|
||||
font_weight_inactive = "normal",
|
||||
["col.active"] = color4,
|
||||
["col.inactive"] = color2,
|
||||
["col.locked_active"] = color3,
|
||||
["col.locked_inactive"] = color0,
|
||||
|
||||
@@ -1,315 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Windowrules Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ #
|
||||
|
||||
# Float Necessary Windows
|
||||
windowrule {
|
||||
name = windowrule-1
|
||||
float = on
|
||||
match:title = Rofi
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-2
|
||||
float = on
|
||||
match:class = ^(org.pulseaudio.pavucontrol)
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-3
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Picture in picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-4
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Save File)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-5
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Open File)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-6
|
||||
float = on
|
||||
match:class = ^(LibreWolf)$
|
||||
match:title = ^(Picture-in-Picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-7
|
||||
float = on
|
||||
match:class = ^(blueman-manager)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-8
|
||||
float = on
|
||||
match:class = ^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-9
|
||||
float = on
|
||||
size = 260 340
|
||||
match:class = ^(pomodorolm)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-10
|
||||
float = on
|
||||
match:title = ^(Extension:.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-11
|
||||
float = on
|
||||
match:class = ^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-12
|
||||
float = on
|
||||
match:class = ^(CachyOSHello)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-13
|
||||
float = on
|
||||
match:class = ^(zenity)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-14
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Steam - Self Updater)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-15
|
||||
float = on
|
||||
match:class = ^(Zotero)$
|
||||
match:title = ^(Progress)$
|
||||
}
|
||||
|
||||
# Increase the opacity
|
||||
windowrule {
|
||||
name = windowrule-16
|
||||
opacity = 0.92
|
||||
match:class = ^(thunar|nemo|dolphin)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-17
|
||||
opacity = 0.96
|
||||
match:class = ^(discord|armcord|webcord)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-18
|
||||
opacity = 0.95
|
||||
match:title = ^(QQ|Telegram)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-19
|
||||
opacity = 0.95
|
||||
match:title = ^(NetEase Cloud Music Gtk4)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-20
|
||||
opacity = 1
|
||||
match:class = ^(kitty)$
|
||||
}
|
||||
|
||||
# General window rules
|
||||
windowrule {
|
||||
name = windowrule-21
|
||||
float = on
|
||||
size = 960 540
|
||||
move = ((monitor_w*0.25)-)
|
||||
match:title = ^(Picture-in-Picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-22
|
||||
float = on
|
||||
match:title = ^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-23
|
||||
move = ((monitor_w*0.25)-)
|
||||
size = 960 540
|
||||
match:title = ^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-24
|
||||
pin = on
|
||||
match:title = ^(danmufloat)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-25
|
||||
rounding = 5
|
||||
match:title = ^(danmufloat|termfloat)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-26
|
||||
animation = slide right
|
||||
match:class = ^(kitty|Alacritty)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-27
|
||||
no_blur = on
|
||||
match:class = ^(org.mozilla.firefox)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-28
|
||||
no_dim = on
|
||||
match:class = ^(zen)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-29
|
||||
float = on
|
||||
match:title = ^(Zotero Settings)$
|
||||
}
|
||||
|
||||
# Decorations related to floating windows on workspaces 1 to 10
|
||||
windowrule {
|
||||
name = windowrule-30
|
||||
border_size = 2
|
||||
border_color = $color4
|
||||
rounding = 8
|
||||
match:float = 1
|
||||
match:workspace = w[fv1-10]
|
||||
}
|
||||
|
||||
# Decorations related to tiling windows on workspaces 1 to 10
|
||||
windowrule {
|
||||
name = windowrule-31
|
||||
border_size = 3
|
||||
rounding = 4
|
||||
match:float = 0
|
||||
match:workspace = f[1-10]
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-32
|
||||
opacity = 0.9
|
||||
match:title = ^(.+nvim$)
|
||||
}
|
||||
|
||||
# Windows Rules End #
|
||||
|
||||
# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ #
|
||||
# workspace = 1, default:true, monitor:$priMon
|
||||
# workspace = 6, default:true, monitor:$secMon
|
||||
# Workspace selectors https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#workspace-selectors
|
||||
# workspace = r[1-5], monitor:$priMon
|
||||
# workspace = r[6-10], monitor:$secMon
|
||||
# workspace = special:scratchpad, on-created-empty:$applauncher
|
||||
# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same
|
||||
# Smart gaps from 0.45.0 https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#smart-gaps
|
||||
#workspace = w[tv1-10], gapsout:5, gapsin:3
|
||||
#workspace = f[1], gapsout:5, gapsin:3
|
||||
# Workspaces Rules End #
|
||||
|
||||
# Layers Rules #
|
||||
layerrule {
|
||||
name = layerrule-1
|
||||
animation = slide top
|
||||
match:namespace = logout_dialog
|
||||
}
|
||||
|
||||
# layerrule = animation popin 50%, waybar
|
||||
layerrule {
|
||||
name = layerrule-2
|
||||
animation = slide down
|
||||
match:namespace = waybar
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = layerrule-3
|
||||
animation = fade 50%
|
||||
match:namespace = wallpaper
|
||||
}
|
||||
|
||||
# vicinae
|
||||
layerrule {
|
||||
name = vicinae-blur
|
||||
blur = on
|
||||
animation = popin
|
||||
dim_around = on
|
||||
ignore_alpha = 1
|
||||
match:namespace = vicinae
|
||||
}
|
||||
|
||||
# Layers Rules End #
|
||||
|
||||
# Zotero Libreoffice
|
||||
windowrule {
|
||||
name = windowrule-33
|
||||
float = on
|
||||
center = on
|
||||
no_anim = on
|
||||
match:class = ^(Zotero)$
|
||||
match:title = ^(Citation Dialog)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = libreoffice-opaque
|
||||
match:class = ^(libreoffice.*)$
|
||||
|
||||
# active, inactive, fullscreen (all forced to 1.0)
|
||||
opacity = 1.0 override 1.0 override 1.0 override
|
||||
}
|
||||
|
||||
|
||||
# gnome calendar
|
||||
windowrule {
|
||||
name = windowrule-cal
|
||||
float = on
|
||||
center = on
|
||||
match:class = ^(org.gnome.Calendar)$
|
||||
match:title = ^(Calendar)$
|
||||
animation = popin
|
||||
opacity = 0.8
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = waypaper-fix
|
||||
match:class = ^(waypaper)$
|
||||
float = on
|
||||
center = on
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = calcure
|
||||
match:title = ^(calcure)$
|
||||
float = on
|
||||
center = on
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = gnome-calculator-fix
|
||||
match:class = ^(org.gnome.Calculator)$
|
||||
float = on
|
||||
center = on
|
||||
}
|
||||
@@ -1,77 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Windowrules Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ #
|
||||
|
||||
# Float Necessary Windows
|
||||
windowrule = float, title:Rofi
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol)
|
||||
windowrule = float, class:^()$,title:^(Picture in picture)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Open File)$
|
||||
windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$
|
||||
windowrule = float, class:^(blueman-manager)$
|
||||
windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
windowrule = float, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Extension:.*)$
|
||||
windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
windowrule = float, class:^(CachyOSHello)$
|
||||
windowrule = float, class:^(zenity)$
|
||||
windowrule = float, class:^()$,title:^(Steam - Self Updater)$
|
||||
windowrule = float, class:^(Zotero)$,title:^(Progress)$
|
||||
# Increase the opacity
|
||||
windowrule = opacity 0.92, class:^(thunar|nemo|dolphin)$
|
||||
windowrule = opacity 0.96, class:^(discord|armcord|webcord)$
|
||||
windowrule = opacity 0.95, title:^(QQ|Telegram)$
|
||||
windowrule = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$
|
||||
windowrule = opacity 1, class:^(kitty)$
|
||||
# General window rules
|
||||
windowrule = size 260 340, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Picture-in-Picture)$
|
||||
windowrule = size 960 540, title:^(Picture-in-Picture)$
|
||||
windowrule = move 25%-, title:^(Picture-in-Picture)$
|
||||
windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$
|
||||
windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = pin, title:^(danmufloat)$
|
||||
windowrule = rounding 5, title:^(danmufloat|termfloat)$
|
||||
windowrule = animation slide right, class:^(kitty|Alacritty)$
|
||||
windowrule = noblur, class:^(org.mozilla.firefox)$
|
||||
windowrule = nodim, class:^(zen)$
|
||||
windowrule = float, title:^(Zotero Settings)$
|
||||
# Decorations related to floating windows on workspaces 1 to 10
|
||||
windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = bordercolor $color4, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = rounding 8, floating:1, onworkspace:w[fv1-10]
|
||||
# Decorations related to tiling windows on workspaces 1 to 10
|
||||
windowrule = bordersize 3, floating:0, onworkspace:f[1-10]
|
||||
windowrule = rounding 4, floating:0, onworkspace:f[1-10]
|
||||
windowrule = opacity 0.9, title:^(.+nvim$)
|
||||
# Windows Rules End #
|
||||
|
||||
# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ #
|
||||
# workspace = 1, default:true, monitor:$priMon
|
||||
# workspace = 6, default:true, monitor:$secMon
|
||||
# Workspace selectors https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#workspace-selectors
|
||||
# workspace = r[1-5], monitor:$priMon
|
||||
# workspace = r[6-10], monitor:$secMon
|
||||
# workspace = special:scratchpad, on-created-empty:$applauncher
|
||||
# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same
|
||||
# Smart gaps from 0.45.0 https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#smart-gaps
|
||||
#workspace = w[tv1-10], gapsout:5, gapsin:3
|
||||
#workspace = f[1], gapsout:5, gapsin:3
|
||||
# Workspaces Rules End #
|
||||
|
||||
# Layers Rules #
|
||||
layerrule = animation slide top, logout_dialog
|
||||
# layerrule = animation popin 50%, waybar
|
||||
layerrule = animation slide down, waybar
|
||||
layerrule = animation fade 50%, wallpaper
|
||||
# Layers Rules End #
|
||||
|
||||
# Zotero Libreoffice
|
||||
windowrule = float,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = center,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = noanim,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
@@ -1,14 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Monitor Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
workspace = 1, monitor:eDP-2
|
||||
workspace = 2, monitor:eDP-2
|
||||
workspace = 3, monitor:eDP-2
|
||||
workspace = 4, monitor:eDP-2
|
||||
workspace = 5, monitor:eDP-2
|
||||
workspace = 6, monitor:eDP-2
|
||||
workspace = 7, monitor:eDP-2
|
||||
|
||||
workspace = 8, monitor:DP-2
|
||||
workspace = 9, monitor:HDMI-A-1
|
||||
@@ -1,29 +0,0 @@
|
||||
general {
|
||||
lock_cmd = pidof swaylock || swaylock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = brightnessctl -r # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 7200 # 2.5min.
|
||||
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
|
||||
on-resume = brightnessctl -r # monitor backlight restore.
|
||||
}
|
||||
|
||||
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
|
||||
listener {
|
||||
timeout = 7200 # 2.5min.
|
||||
on-timeout = brightnessctl -sd asus::kbd_backlight set 0 # turn off keyboard backlight.
|
||||
on-resume = brightnessctl -rd asus::kbd_backlight # turn on keyboard backlight.
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 7200 # 5min
|
||||
on-timeout = ~/.config/swaylock/lockscript.sh # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 900 # 15min
|
||||
# on-timeout = hyprctl dispatch dpms off 5.5 # screen off when timeout has passed
|
||||
# on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
# }
|
||||
@@ -1,24 +0,0 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ CachyOS Hyprland Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
$mainMod = SUPER
|
||||
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Source Files ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
source = ~/.config/hypr/config/animations.conf
|
||||
source = ~/.config/hypr/config/autostart.conf
|
||||
source = ~/.config/hypr/config/decorations.conf
|
||||
source = ~/.config/hypr/config/environment.conf
|
||||
source = ~/.config/hypr/config/input.conf
|
||||
source = ~/.config/hypr/config/keybinds.conf
|
||||
source = ~/.config/hypr/config/monitor.conf
|
||||
source = ~/.config/hypr/config/variables.conf
|
||||
source = ~/.config/hypr/config/windowrules.conf
|
||||
source = ~/.config/hypr/config/workspaces.conf
|
||||
source = ~/.config/hypr/config/plugins.conf
|
||||
|
||||
# Modifying these configs can be done by creating a user defined config in the home directory, e.g.
|
||||
## ~/.config/hypr/config/user-config.conf
|
||||
# source ~/.config/hypr/config/user-config.conf
|
||||
@@ -1,6 +0,0 @@
|
||||
# Generated by nwg-displays on 2026-02-04 at 14:45:07. Do not edit manually.
|
||||
|
||||
monitor=desc:BOE NE156FHM-NX6,1920x1080@144.0,0x0,1.0
|
||||
monitor=desc:Samsung Electric Company S24F350 H4ZK111233,1920x1080@60.0,1920x0,1.0
|
||||
monitor=desc:Samsung Electric Company S24F350 H4ZK111233,transform,1
|
||||
monitor=desc:Samsung Electric Company S24F350 H4ZR302705,1920x1080@60.0,3000x0,1.0
|
||||
@@ -1,4 +0,0 @@
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"shift_monitors",
|
||||
]
|
||||
@@ -1,33 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# start waybar if not started
|
||||
if ! pgrep -x "waybar" > /dev/null; then
|
||||
waybar &
|
||||
fi
|
||||
|
||||
# current checksums
|
||||
current_checksum_config=$(md5sum ~/.config/waybar/config)
|
||||
current_checksum_style=$(md5sum ~/.config/waybar/style.css)
|
||||
current_checksum_colors=$(md5sum ~/.config/waybar/colors-wallust.css)
|
||||
|
||||
# loop forever
|
||||
while true; do
|
||||
# new checksums
|
||||
new_checksum_config=$(md5sum ~/.config/waybar/config)
|
||||
new_checksum_style=$(md5sum ~/.config/waybar/style.css)
|
||||
new_checksum_colors==$(md5sum ~/.config/waybar/colors-wallust.css)
|
||||
|
||||
# if checksums are different
|
||||
if [ "$current_checksum_config" != "$new_checksum_config" ] || [ "$current_checksum_style" != "$new_checksum_style" ] || [ "$current_checksum_colors" != "$new_checksum_colors" ]; then
|
||||
# kill waybar
|
||||
killall waybar
|
||||
|
||||
# start waybar
|
||||
waybar &
|
||||
|
||||
# update checksums
|
||||
current_checksum_config=$new_checksum_config
|
||||
current_checksum_style=$new_checksum_style
|
||||
current_checksum_colors=$new_checksum_colors
|
||||
fi
|
||||
done
|
||||
@@ -2,256 +2,65 @@
|
||||
set -euo pipefail
|
||||
|
||||
PRIMARY="eDP-2"
|
||||
RIGHT_EXTERNAL_NAME="DP-2"
|
||||
MIDDLE_EXTERNAL_NAME="HDMI-A-1"
|
||||
DP_OUT="DP-2"
|
||||
HDMI_OUT="HDMI-A-1"
|
||||
|
||||
# Exact enable lines (from your config)
|
||||
EXT1='desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1'
|
||||
EXT2='desc:Samsung Electric Company S24F350 H4ZK111233, highres@highrr, auto-right, 1, transform, 1'
|
||||
|
||||
# In dual mode, which one do we prefer?
|
||||
DUAL_MAIN="$EXT1"
|
||||
|
||||
# Optional: restart Waybar after layout changes (0=off, 1=on)
|
||||
RESTART_WAYBAR=1
|
||||
|
||||
# Dock/MST settle timing (tune if needed)
|
||||
SETTLE_SECS=1.0
|
||||
DPMS_KICK_RETRIES=2
|
||||
DPMS_KICK_SLEEP=0.35
|
||||
# eDP-2 at scale 1.5 → logical width 1280px → externals start at x=1280
|
||||
# DP-2 at 1920px wide → HDMI starts at x=1280+1920=3200
|
||||
|
||||
notify() {
|
||||
if command -v notify-send >/dev/null 2>&1; then
|
||||
notify-send -a "Hyprland" "$1" "${2:-}"
|
||||
else
|
||||
[ -n "${2:-}" ] && printf '%s: %s\n' "$1" "$2" >&2 || printf '%s\n' "$1" >&2
|
||||
fi
|
||||
notify-send -a "monitor-toggle" "$1" "${2:-}" 2>/dev/null || true
|
||||
}
|
||||
|
||||
hypr() {
|
||||
local out
|
||||
if ! out="$(hyprctl "$@" 2>&1)"; then
|
||||
notify "hyprctl failed" "$out"
|
||||
exit 1
|
||||
fi
|
||||
printf '%s' "$out"
|
||||
active_monitors() {
|
||||
hyprctl -j monitors | jq -r '.[] | select(.disabled != true) | .name'
|
||||
}
|
||||
|
||||
hypr_batch() {
|
||||
local out
|
||||
if ! out="$(hyprctl --batch "$1" 2>&1)"; then
|
||||
notify "hyprctl --batch failed" "$out"
|
||||
exit 1
|
||||
fi
|
||||
printf '%s' "$out"
|
||||
}
|
||||
|
||||
restart_waybar() {
|
||||
[ "${RESTART_WAYBAR:-0}" -eq 1 ] || return 0
|
||||
if pgrep -x waybar >/dev/null 2>&1; then
|
||||
pkill -SIGUSR2 waybar >/dev/null 2>&1 || true
|
||||
fi
|
||||
}
|
||||
|
||||
jqok() { command -v jq >/dev/null 2>&1; }
|
||||
monjson() { hyprctl -j monitors 2>/dev/null || true; }
|
||||
|
||||
sleep_s() { python - <<PY 2>/dev/null || sleep 1
|
||||
import time
|
||||
time.sleep(float("$1"))
|
||||
PY
|
||||
}
|
||||
|
||||
# --- monitor discovery helpers ---
|
||||
|
||||
enabled_monitor_names() {
|
||||
if jqok; then
|
||||
monjson | jq -r '.[] | select(.disabled != true) | .name'
|
||||
else
|
||||
# Fallback is weaker; jq is strongly recommended
|
||||
hyprctl monitors | awk '
|
||||
/^Monitor /{name=$2}
|
||||
/disabled: false/{print name}
|
||||
'
|
||||
fi
|
||||
}
|
||||
|
||||
focused_monitor_name() {
|
||||
if jqok; then
|
||||
monjson | jq -r '.[] | select(.focused==true) | .name // empty'
|
||||
else
|
||||
hyprctl monitors | awk '
|
||||
/^Monitor /{name=$2}
|
||||
/focused: yes/{print name; exit}
|
||||
'
|
||||
fi
|
||||
}
|
||||
|
||||
external_enabled() {
|
||||
local n
|
||||
while IFS= read -r n; do
|
||||
[ "$n" != "$PRIMARY" ] && return 0
|
||||
done < <(enabled_monitor_names)
|
||||
return 1
|
||||
}
|
||||
|
||||
# We don’t try to parse desc lines; we just treat them as “enable rules”
|
||||
enable_rule() {
|
||||
local rule="$1"
|
||||
[ -n "$rule" ] && printf 'keyword monitor %s; ' "$rule"
|
||||
}
|
||||
|
||||
disable_by_name() {
|
||||
local name="$1"
|
||||
[ -n "$name" ] && printf 'keyword monitor %s, disable; ' "$name"
|
||||
}
|
||||
|
||||
# Disable all *currently enabled* externals by name (minimal churn)
|
||||
batch_disable_enabled_externals() {
|
||||
local batch="" n=""
|
||||
while IFS= read -r n; do
|
||||
[ "$n" = "$PRIMARY" ] && continue
|
||||
batch+="$(disable_by_name "$n")"
|
||||
done < <(enabled_monitor_names)
|
||||
printf '%s' "$batch"
|
||||
}
|
||||
|
||||
# Dock settle wait: give MST/alt-mode time to re-enumerate before we apply rules / kick DPMS
|
||||
dock_settle() {
|
||||
sleep_s "$SETTLE_SECS"
|
||||
}
|
||||
|
||||
# DPMS kick for all enabled externals (works well for dock hotplug weirdness)
|
||||
kick_externals() {
|
||||
local names=() n=""
|
||||
if jqok; then
|
||||
mapfile -t names < <(monjson | jq -r --arg P "$PRIMARY" '
|
||||
.[] | select(.name != $P and (.disabled != true)) | .name
|
||||
')
|
||||
else
|
||||
mapfile -t names < <(enabled_monitor_names | awk -v P="$PRIMARY" '$0!=P')
|
||||
fi
|
||||
|
||||
[ "${#names[@]}" -eq 0 ] && return 0
|
||||
|
||||
for _ in $(seq 1 "$DPMS_KICK_RETRIES"); do
|
||||
for n in "${names[@]}"; do hypr dispatch dpms off "$n" >/dev/null 2>&1 || true; done
|
||||
sleep_s "$DPMS_KICK_SLEEP"
|
||||
for n in "${names[@]}"; do hypr dispatch dpms on "$n" >/dev/null 2>&1 || true; done
|
||||
sleep_s "$DPMS_KICK_SLEEP"
|
||||
done
|
||||
}
|
||||
|
||||
enforce_triple_order() {
|
||||
# Keep HDMI between the laptop panel and DP-2, with DP-2 always on the right.
|
||||
enabled_monitor_names | grep -qx "$MIDDLE_EXTERNAL_NAME" || return 0
|
||||
enabled_monitor_names | grep -qx "$RIGHT_EXTERNAL_NAME" || return 0
|
||||
|
||||
local py=0 px=0 pspan=1920 mspan=1920 mx rx
|
||||
if jqok; then
|
||||
read -r px py pspan < <(monjson | jq -r --arg N "$PRIMARY" '
|
||||
.[] | select(.name == $N) |
|
||||
(.transform // 0) as $t |
|
||||
"\(.x // 0) \(.y // 0) \(if (($t % 2) == 1) then (.height // 1080) else (.width // 1920) end)"
|
||||
')
|
||||
read -r mspan < <(monjson | jq -r --arg N "$MIDDLE_EXTERNAL_NAME" '
|
||||
.[] | select(.name == $N) |
|
||||
(.transform // 0) as $t |
|
||||
"\(if (($t % 2) == 1) then (.height // 1080) else (.width // 1920) end)"
|
||||
')
|
||||
fi
|
||||
|
||||
mx=$((px + pspan))
|
||||
rx=$((mx + mspan))
|
||||
|
||||
hypr keyword monitor "$MIDDLE_EXTERNAL_NAME, highres@highrr, ${mx}x${py}, 1, transform, 1" >/dev/null 2>&1 || true
|
||||
hypr keyword monitor "$RIGHT_EXTERNAL_NAME, highres@highrr, ${rx}x${py}, 1" >/dev/null 2>&1 || true
|
||||
}
|
||||
|
||||
apply_profile() {
|
||||
local label="$1"
|
||||
local batch="$2"
|
||||
dock_settle
|
||||
[ -n "$batch" ] && hypr_batch "$batch" >/dev/null
|
||||
dock_settle
|
||||
kick_externals
|
||||
notify "Profile: $label" ""
|
||||
restart_waybar
|
||||
has_external() {
|
||||
active_monitors | grep -qvx "$PRIMARY"
|
||||
}
|
||||
|
||||
profile_laptop() {
|
||||
# Minimal: disable only currently enabled externals
|
||||
local batch=""
|
||||
batch+="$(batch_disable_enabled_externals)"
|
||||
apply_profile "Laptop-only" "$batch"
|
||||
wlr-randr --output "$DP_OUT" --off 2>/dev/null || true
|
||||
wlr-randr --output "$HDMI_OUT" --off 2>/dev/null || true
|
||||
notify "Laptop only"
|
||||
}
|
||||
|
||||
profile_dual() {
|
||||
# Disable enabled externals, then enable preferred main external rule
|
||||
local batch=""
|
||||
batch+="$(batch_disable_enabled_externals)"
|
||||
batch+="$(enable_rule "$DUAL_MAIN")"
|
||||
apply_profile "Dual" "$batch"
|
||||
wlr-randr --output "$PRIMARY" --on --mode 1920x1080@144 --pos 0,0 --scale 1
|
||||
wlr-randr --output "$HDMI_OUT" --on --mode 1920x1080@60 --pos 1920,0 --scale 1
|
||||
wlr-randr --output "$DP_OUT" --off 2>/dev/null || true
|
||||
notify "Dual"
|
||||
}
|
||||
|
||||
profile_triple() {
|
||||
# Disable enabled externals, then enable both rules
|
||||
# Order: EXT2 first so it tends to appear “middle” with auto-right
|
||||
local batch=""
|
||||
batch+="$(batch_disable_enabled_externals)"
|
||||
batch+="$(enable_rule "$EXT2")"
|
||||
batch+="$(enable_rule "$EXT1")"
|
||||
apply_profile "Triple" "$batch"
|
||||
dock_settle
|
||||
enforce_triple_order
|
||||
wlr-randr --output "$PRIMARY" --on --mode 1920x1080@144 --pos 0,0 --scale 1
|
||||
wlr-randr --output "$HDMI_OUT" --on --mode 1920x1080@60 --pos 1920,0 --scale 1
|
||||
wlr-randr --output "$DP_OUT" --on --mode 1920x1080@60 --pos 3840,0 --scale 1 --transform 90
|
||||
notify "Triple"
|
||||
}
|
||||
|
||||
toggle_externals() {
|
||||
if external_enabled; then
|
||||
toggle() {
|
||||
if has_external; then
|
||||
profile_laptop
|
||||
else
|
||||
if [ -n "$EXT1" ] && [ -n "$EXT2" ]; then
|
||||
profile_triple
|
||||
else
|
||||
profile_dual
|
||||
fi
|
||||
profile_triple
|
||||
fi
|
||||
}
|
||||
|
||||
dpms_toggle_focused() {
|
||||
local name
|
||||
name="$(focused_monitor_name)"
|
||||
[ -z "$name" ] && { notify "No focused monitor" ""; exit 2; }
|
||||
hypr dispatch dpms toggle "$name" >/dev/null
|
||||
notify "DPMS toggle" "$name"
|
||||
}
|
||||
|
||||
status() {
|
||||
echo "Enabled monitors:"
|
||||
enabled_monitor_names | sed 's/^/ - /'
|
||||
echo
|
||||
echo "Focused: $(focused_monitor_name || true)"
|
||||
echo "Active monitors:"
|
||||
active_monitors | sed 's/^/ - /'
|
||||
}
|
||||
|
||||
case "${1:-}" in
|
||||
laptop) profile_laptop ;;
|
||||
dual) profile_dual ;;
|
||||
triple) profile_triple ;;
|
||||
toggle-externals) toggle_externals ;;
|
||||
dpms-toggle-focused) dpms_toggle_focused ;;
|
||||
kick-externals) dock_settle; kick_externals; notify "Kicked externals (DPMS)" "" ;;
|
||||
status) status ;;
|
||||
laptop) profile_laptop ;;
|
||||
dual) profile_dual ;;
|
||||
triple) profile_triple ;;
|
||||
toggle) toggle ;;
|
||||
status) status ;;
|
||||
*)
|
||||
cat <<EOF
|
||||
Usage:
|
||||
$(basename "$0") laptop # eDP-2 only (disable enabled externals)
|
||||
$(basename "$0") dual # eDP-2 + preferred external
|
||||
$(basename "$0") triple # eDP-2 + both externals
|
||||
$(basename "$0") toggle-externals # laptop-only <-> (dual/triple)
|
||||
$(basename "$0") dpms-toggle-focused # blank/unblank focused output (layout unchanged)
|
||||
$(basename "$0") kick-externals # DPMS off/on for enabled externals
|
||||
$(basename "$0") status # print enabled + focused
|
||||
EOF
|
||||
exit 2
|
||||
echo "Usage: $(basename "$0") laptop|dual|triple|toggle|status"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/env bash
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# CLI options
|
||||
DMENU_CMD=""
|
||||
|
||||
@@ -31,7 +31,7 @@ else
|
||||
elif [[ $line =~ ^[[:space:]]*description:[[:space:]]*(.*)$ ]]; then
|
||||
DESC="${BASH_REMATCH[1]}"
|
||||
elif [[ $line =~ ^[[:space:]]*transform:[[:space:]]*([0-9]+)$ ]]; then
|
||||
TFORM="${BASHREMATCH[1]}"
|
||||
TFORM="${BASH_REMATCH[1]}"
|
||||
elif [[ $line =~ ^[[:space:]]*focused:[[:space:]]*yes$ ]]; then
|
||||
FOC=1
|
||||
elif [[ -z $line ]]; then
|
||||
|
||||
Reference in New Issue
Block a user