10
hypr/.luarc.json
Normal file
10
hypr/.luarc.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"workspace": {
|
||||||
|
"library": [
|
||||||
|
"/usr/share/hypr/stubs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"diagnostics": {
|
||||||
|
"globals": ["hl"]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
# Window management
|
|
||||||
bind = SUPER, Q, killactive,
|
|
||||||
bind = SUPER, M, togglefloating,
|
|
||||||
bind = SUPER, M, centerwindow
|
|
||||||
bind = SUPER, SPACE, global, quickshell:peek_bar
|
|
||||||
bind = SUPER, SUPER_L, exec, quickshell ipc call topbar toggle
|
|
||||||
bind = SUPER, K, layoutmsg, movetoroot
|
|
||||||
bind = SUPER, B, layoutmsg, togglesplit
|
|
||||||
bind = SUPER, x, layoutmsg, swapsplit
|
|
||||||
|
|
||||||
$select = winsel
|
|
||||||
bind = SUPER, A, exec, $select 0
|
|
||||||
bind = SUPER, O, exec, $select 1
|
|
||||||
bind = SUPER, E, exec, $select 2
|
|
||||||
bind = SUPER, U, exec, $select 3
|
|
||||||
|
|
||||||
# Screen locking
|
|
||||||
bindl = SUPER, ESCAPE, exec, ~/.config/scripts/lock.sh
|
|
||||||
bind = , XF86Go, exec, ~/.config/scripts/idle-toggle.sh
|
|
||||||
bindl= ,switch:on:Lid Switch, exec, quickshell ipc call lock instalock; sleep 0.5; systemctl suspend
|
|
||||||
|
|
||||||
# Navigate multiple monitors
|
|
||||||
bind = SUPER, PERIOD, focusmonitor, -1
|
|
||||||
bind = SUPER, P, movecurrentworkspacetomonitor, -1
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = SUPER, 1, workspace, 1
|
|
||||||
bind = SUPER, 2, workspace, 2
|
|
||||||
bind = SUPER, 3, workspace, 3
|
|
||||||
bind = SUPER, 4, workspace, 4
|
|
||||||
bind = SUPER, 5, workspace, 5
|
|
||||||
bind = SUPER, 6, workspace, 6
|
|
||||||
bind = SUPER, 7, workspace, 7
|
|
||||||
bind = SUPER, 8, workspace, 8
|
|
||||||
bind = SUPER, 9, workspace, 9
|
|
||||||
|
|
||||||
bind = SUPER, apostrophe, hyprexpo:expo, toggle
|
|
||||||
# bind = SUPER SHIFT, apostrophe, hymission:open, forceall
|
|
||||||
# gesture = 3, vertical, dispatcher, hymission:toggle, forceall
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = SUPER SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = SUPER SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = SUPER SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = SUPER SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = SUPER SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = SUPER SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = SUPER SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = SUPER SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = SUPER SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = SUPER SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Manage special workspace (scratchpad)
|
|
||||||
bind = SUPER, V, togglespecialworkspace
|
|
||||||
bind = SUPER, W, movewindow, mon:current
|
|
||||||
bind = SUPER, W, movetoworkspacesilent, special
|
|
||||||
|
|
||||||
# Move/resize windows
|
|
||||||
bindm = SUPER, mouse:272, movewindow
|
|
||||||
bindm = SUPER, mouse:273, resizewindow
|
|
||||||
bind = SUPER, F, fullscreen
|
|
||||||
|
|
||||||
# Resize windows with super + arrow keys
|
|
||||||
binde = SUPER ALT, H, resizeactive, -50 0
|
|
||||||
binde = SUPER ALT, T, resizeactive, 0 -50
|
|
||||||
binde = SUPER ALT, N, resizeactive, 0 50
|
|
||||||
binde = SUPER ALT, S, resizeactive, 50 0
|
|
||||||
|
|
||||||
# Open favourites
|
|
||||||
bind = SUPER, G, exec, zen-browser
|
|
||||||
bind = SUPER, C, exec, vesktop
|
|
||||||
bind = SUPER, R, exec, keepassxc
|
|
||||||
bind = SUPER, L, exec, kitty
|
|
||||||
|
|
||||||
# Adjust brightness
|
|
||||||
bindle = , XF86MonBrightnessUp, global, quickshell:increase_brightness
|
|
||||||
bindle = , XF86MonBrightnessDown, global, quickshell:decrease_brightness
|
|
||||||
bindle = SHIFT, XF86MonBrightnessDown, exec, brillo -S 0% -q -u 1000000
|
|
||||||
bind = , Cancel, exec, ~/.config/scripts/sunset-toggle.sh
|
|
||||||
|
|
||||||
# Adjust volume and media
|
|
||||||
bindle = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +1%
|
|
||||||
bindle = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -1%
|
|
||||||
bindle = , XF86AudioRaiseVolume, exec, quickshell ipc call osd open
|
|
||||||
bindle = , XF86AudioLowerVolume, exec, quickshell ipc call osd open
|
|
||||||
bind = , XF86AudioMicMute, exec, playerctl next
|
|
||||||
bind = , XF86AudioMute, exec, playerctl play-pause
|
|
||||||
|
|
||||||
# Screen capturing
|
|
||||||
bind = SUPER, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m region
|
|
||||||
bind = SUPER ALT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m window
|
|
||||||
bind = SUPER SHIFT, COMMA, exec, pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m active -m output
|
|
||||||
bind = SUPER, SEMICOLON, exec, ~/.config/scripts/zoom.sh
|
|
||||||
bind = SHIFT, XF86Display, exec, ~/.config/scripts/vnc-toggle.sh
|
|
||||||
bind = , XF86Display, exec, killall quickshell; quickshell
|
|
||||||
bind = ALT, XF86Display, exec, sleep 0.5 && hyprctl dispatch dpms off
|
|
||||||
bind = SUPER, D, exec, wayscriber --active
|
|
||||||
bind = SUPER SHIFT, D, exec, wl-paste | satty -f -
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
$primary = rgba(00FFAAFF)
|
|
||||||
$primary_container = rgba(555555ff)
|
|
||||||
@@ -1,195 +0,0 @@
|
|||||||
source = ~/.config/hypr/hardware.conf
|
|
||||||
source = ~/.config/hypr/monitors.conf
|
|
||||||
source = ~/.config/hypr/hyprcolors.conf
|
|
||||||
# monitor = , preferred, auto, 1.0
|
|
||||||
|
|
||||||
# Run stuff on launch
|
|
||||||
env = PATH, $PATH:$HOME/.local/bin:$HOME/.cargo/bin
|
|
||||||
# exec-once = hyprlock
|
|
||||||
exec-once = quickshell
|
|
||||||
exec-once = hypridle
|
|
||||||
exec-once = /lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
|
||||||
exec-once = keyd-application-mapper -d
|
|
||||||
exec-once = hyprpm reload
|
|
||||||
exec-once = kanshi
|
|
||||||
|
|
||||||
# Theming with envvars for some reason
|
|
||||||
env = XCURSOR_SIZE, 22
|
|
||||||
env = XCURSOR_THEME, GoogleDot-Black
|
|
||||||
envd = GTK_THEME, Graphite-Dark
|
|
||||||
env = GTK_ICON_THEME, YAMIS
|
|
||||||
env = HYPRCURSOR_SIZE, 22
|
|
||||||
env = HYPRCURSOR_THEME, GoogleDot-hypr
|
|
||||||
env = QT_QPA_PLATFORMTHEME, gtk3
|
|
||||||
env = QT_QPA_PLATFORM, wayland;xcb
|
|
||||||
|
|
||||||
env = FREETYPE_PROPERTIES,cff:no-stem-darkening=0 autofitter:no-stem-darkening=0
|
|
||||||
|
|
||||||
# Mouse and keyboard settings
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant = dvorak
|
|
||||||
repeat_delay = 600
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
gaps_in = 4
|
|
||||||
gaps_out = 6
|
|
||||||
border_size = 0
|
|
||||||
|
|
||||||
layout = dwindle
|
|
||||||
no_focus_fallback = true
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
rounding = 12
|
|
||||||
rounding_power = 2
|
|
||||||
# active_opacity = 0.9
|
|
||||||
# inactive_opacity = 0.92
|
|
||||||
# fullscreen_opacity = 1.0
|
|
||||||
blur {
|
|
||||||
enabled = true
|
|
||||||
size = 8
|
|
||||||
passes = 3
|
|
||||||
new_optimizations = true
|
|
||||||
ignore_opacity = true
|
|
||||||
special = false
|
|
||||||
brightness = 0.2
|
|
||||||
}
|
|
||||||
shadow {
|
|
||||||
range = 18
|
|
||||||
render_power = 4
|
|
||||||
scale = 0.9995
|
|
||||||
color = rgba(000000ff)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
workspace = special:special, gapsin:32, gapsout:64
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = yes
|
|
||||||
|
|
||||||
bezier = default , 0.16, 1 , 0.30, 1
|
|
||||||
bezier = easeOut , 0.16, 1 , 0.3 , 1
|
|
||||||
bezier = easeIn , 0.64, 0 , 0.78, 0
|
|
||||||
|
|
||||||
animation = fadeIn , 1, 4, default
|
|
||||||
animation = fadeOut , 1, 3, default
|
|
||||||
animation = windowsIn , 1, 4, default, popin 85%
|
|
||||||
animation = windowsOut , 1, 4, default, popin 85%
|
|
||||||
animation = windowsMove , 1, 3, easeOut
|
|
||||||
animation = border , 1, 5, default
|
|
||||||
animation = layersIn , 1, 3, easeOut, slide
|
|
||||||
animation = layersOut , 1, 2, easeIn, slide
|
|
||||||
animation = fadeLayersIn , 1, 3, easeOut
|
|
||||||
animation = fadeLayersOut , 1, 2, easeIn
|
|
||||||
animation = workspaces , 1, 3, easeOut, slidefade 15%
|
|
||||||
animation = specialWorkspace , 1, 3, default, slidefadevert 10%
|
|
||||||
animation = zoomFactor , 1, 3, default
|
|
||||||
animation = monitorAdded , 1, 3, default
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
preserve_split = true
|
|
||||||
smart_split = false
|
|
||||||
use_active_for_splits = true
|
|
||||||
force_split = 2
|
|
||||||
}
|
|
||||||
|
|
||||||
plugin {
|
|
||||||
hyprexpo {
|
|
||||||
columns = 3
|
|
||||||
gap_size = 6
|
|
||||||
bg_col = rgb(111111)
|
|
||||||
workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1
|
|
||||||
|
|
||||||
skip_empty = false
|
|
||||||
}
|
|
||||||
#dynamic-cursors {
|
|
||||||
# enabled = true
|
|
||||||
# mode = stretch
|
|
||||||
# stretch {
|
|
||||||
# limit = 3000
|
|
||||||
# function = linear
|
|
||||||
# }
|
|
||||||
#}
|
|
||||||
# hymission {
|
|
||||||
# outer_padding_top = 80
|
|
||||||
# outer_padding_right = 80
|
|
||||||
# outer_padding_left = 80
|
|
||||||
# outer_padding_bottom = 80
|
|
||||||
# expand_selected_window = true
|
|
||||||
# }
|
|
||||||
}
|
|
||||||
|
|
||||||
# Smart gaps
|
|
||||||
workspace = w[tv1]s[false], gapsout:0, gapsin:0
|
|
||||||
workspace = f[1]s[false], gapsout:0, gapsin:0
|
|
||||||
windowrule = border_size 0, match:float 0, match:workspace w[tv1]s[false]
|
|
||||||
windowrule = rounding 0, match:float 0, match:workspace w[tv1]s[false]
|
|
||||||
windowrule = border_size 0, match:float 0, match:workspace f[1]s[false]
|
|
||||||
windowrule = rounding 0, match:float 0, match:workspace f[1]s[false]
|
|
||||||
|
|
||||||
# The bell doesn't fullscreen you, I do.
|
|
||||||
windowrule = match:class .*, suppress_event fullscreen
|
|
||||||
|
|
||||||
# Misc window rules
|
|
||||||
windowrule = match:title (Write:), float on
|
|
||||||
windowrule = match:class xdg-desktop-portal-gtk, float on
|
|
||||||
windowrule = match:title (Open File), no_blur on
|
|
||||||
windowrule = match:class (Xdg-desktop-portal-gtk), no_blur on
|
|
||||||
windowrule = match:class (eog), float on, center on
|
|
||||||
windowrule = match:class steam_app.*, fullscreen on
|
|
||||||
windowrule = match:class steam_app.*, workspace 5
|
|
||||||
windowrule = match:class (mpv|loupe|com.gabm.satty), float on
|
|
||||||
windowrule = match:class (mpv|loupe|com.gabm.satty), size 90% 95%
|
|
||||||
# windowrule = center 1, floating:1
|
|
||||||
|
|
||||||
# Misc layer rules
|
|
||||||
layerrule = match:namespace bar, animation slide
|
|
||||||
layerrule = match:namespace swww-daemon, animation popin
|
|
||||||
layerrule = match:namespace selection, animation fade
|
|
||||||
layerrule = match:namespace hyprpicker, animation fade
|
|
||||||
layerrule = match:namespace picker, animation fade
|
|
||||||
layerrule = match:namespace wayscriber, animation fade
|
|
||||||
layerrule = match:namespace quickshell, no_anim on
|
|
||||||
|
|
||||||
layerrule = match:namespace lazerpopup, animation popin 40%
|
|
||||||
layerrule = match:namespace notification, no_anim on
|
|
||||||
layerrule = match:namespace notifpanel, dim_around on
|
|
||||||
layerrule = match:namespace bar, order 1
|
|
||||||
layerrule = match:namespace lazerpopup, order 2
|
|
||||||
layerrule = match:namespace notifpanel, order 3
|
|
||||||
layerrule = match:namespace notification, order 4
|
|
||||||
|
|
||||||
source = ~/.config/hypr/hyprbinds.conf
|
|
||||||
|
|
||||||
binds {
|
|
||||||
disable_keybind_grabbing = true
|
|
||||||
}
|
|
||||||
|
|
||||||
misc {
|
|
||||||
disable_hyprland_logo = true
|
|
||||||
disable_splash_rendering = false
|
|
||||||
on_focus_under_fullscreen = 2
|
|
||||||
key_press_enables_dpms = true
|
|
||||||
mouse_move_enables_dpms = true
|
|
||||||
focus_on_activate = true
|
|
||||||
session_lock_xray = false
|
|
||||||
animate_manual_resizes = true
|
|
||||||
enable_anr_dialog = false
|
|
||||||
background_color = 0x141414
|
|
||||||
enable_swallow = true
|
|
||||||
swallow_regex = ^neovide$
|
|
||||||
}
|
|
||||||
|
|
||||||
cursor {
|
|
||||||
persistent_warps = true
|
|
||||||
}
|
|
||||||
|
|
||||||
xwayland {
|
|
||||||
force_zero_scaling = true
|
|
||||||
}
|
|
||||||
6
hypr/hyprland.lua
Normal file
6
hypr/hyprland.lua
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
require("hyprland.config")
|
||||||
|
require("hyprland.binds")
|
||||||
|
require("hyprland.hardware")
|
||||||
|
require("hyprland.environment")
|
||||||
|
require("hyprland.animations")
|
||||||
|
require("hyprland.rules")
|
||||||
103
hypr/hyprland/animations.lua
Normal file
103
hypr/hyprland/animations.lua
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
hl.curve("easeIn", {
|
||||||
|
type = "bezier",
|
||||||
|
points = { {0.64, 0}, {0.78, 0} }
|
||||||
|
})
|
||||||
|
hl.curve("easeOut", {
|
||||||
|
type = "bezier",
|
||||||
|
points = { {0.16, 1}, {0.3, 1} }
|
||||||
|
})
|
||||||
|
hl.curve("linear", {
|
||||||
|
type = "bezier",
|
||||||
|
points = { {0, 0}, {1, 1} }
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.animation({
|
||||||
|
leaf = "fadeIn",
|
||||||
|
enabled = true,
|
||||||
|
speed = 4,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "fadeOut",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "windowsIn",
|
||||||
|
enabled = true,
|
||||||
|
speed = 4,
|
||||||
|
bezier = "easeOut",
|
||||||
|
style = "popin 85%"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "windowsOut",
|
||||||
|
enabled = true,
|
||||||
|
speed = 4,
|
||||||
|
bezier = "easeOut",
|
||||||
|
style = "popin 85%"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "windowsMove",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "border",
|
||||||
|
enabled = true,
|
||||||
|
speed = 5,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "layersIn",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "linear",
|
||||||
|
style = "fade"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "layersOut",
|
||||||
|
enabled = true,
|
||||||
|
speed = 2,
|
||||||
|
bezier = "linear",
|
||||||
|
style = "fade"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "fadeLayersIn",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "fadeLayersOut",
|
||||||
|
enabled = true,
|
||||||
|
speed = 2,
|
||||||
|
bezier = "easeIn"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "workspaces",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut",
|
||||||
|
style = "slidefade 15%"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "specialWorkspace",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut",
|
||||||
|
style = "slidefadevert 10%"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "zoomFactor",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
|
hl.animation({
|
||||||
|
leaf = "monitorAdded",
|
||||||
|
enabled = true,
|
||||||
|
speed = 3,
|
||||||
|
bezier = "easeOut"
|
||||||
|
})
|
||||||
132
hypr/hyprland/binds.lua
Normal file
132
hypr/hyprland/binds.lua
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
-- Window management
|
||||||
|
hl.bind("SUPER + Q", hl.dsp.window.close())
|
||||||
|
|
||||||
|
hl.bind("SUPER + M", hl.dsp.window.float())
|
||||||
|
hl.bind("SUPER + M", hl.dsp.window.center())
|
||||||
|
|
||||||
|
hl.bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"))
|
||||||
|
hl.bind("SUPER + SPACE", hl.dsp.global("quickshell:peek_bar"), {release = true})
|
||||||
|
hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd("quickshell ipc call topbar toggle"))
|
||||||
|
|
||||||
|
hl.bind("SUPER + K", hl.dsp.layout("movetoroot"))
|
||||||
|
hl.bind("SUPER + B", hl.dsp.layout("togglesplit"))
|
||||||
|
hl.bind("SUPER + x", hl.dsp.layout("swapsplit"))
|
||||||
|
|
||||||
|
local function focus_window(n)
|
||||||
|
local windows = hl.get_windows({workspace = hl.get_active_workspace()})
|
||||||
|
table.sort(
|
||||||
|
windows,
|
||||||
|
function (a, b)
|
||||||
|
if a.at.x < b.at.x then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
if a.at.y < b.at.y then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
)
|
||||||
|
if windows[n] ~= nil then
|
||||||
|
hl.dispatch(hl.dsp.focus({window = windows[n]}))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
hl.bind("SUPER + A", function() focus_window(1) end)
|
||||||
|
hl.bind("SUPER + O", function() focus_window(2) end)
|
||||||
|
hl.bind("SUPER + E", function() focus_window(3) end)
|
||||||
|
hl.bind("SUPER + U", function() focus_window(4) end)
|
||||||
|
hl.bind("SUPER + SHIFT + A", function() focus_window(5) end)
|
||||||
|
hl.bind("SUPER + SHIFT + O", function() focus_window(6) end)
|
||||||
|
hl.bind("SUPER + SHIFT + E", function() focus_window(7) end)
|
||||||
|
hl.bind("SUPER + SHIFT + U", function() focus_window(8) end)
|
||||||
|
|
||||||
|
-- Screen locking
|
||||||
|
hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("~/.config/scripts/lock.sh"), {locked = true})
|
||||||
|
hl.bind("XF86Go", hl.dsp.exec_cmd("~/.config/scripts/idle-toggle.sh"))
|
||||||
|
hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd(
|
||||||
|
"quickshell ipc call lock instalock; sleep 0.5; systemctl suspend"
|
||||||
|
))
|
||||||
|
|
||||||
|
-- Multi-monitor
|
||||||
|
hl.bind("SUPER + PERIOD", hl.dsp.focus({monitor = -1}))
|
||||||
|
hl.bind("SUPER + P", hl.dsp.workspace.move({monitor = -1}))
|
||||||
|
|
||||||
|
-- Workspaces
|
||||||
|
hl.bind("SUPER + 1", hl.dsp.focus({workspace = 1}))
|
||||||
|
hl.bind("SUPER + 2", hl.dsp.focus({workspace = 2}))
|
||||||
|
hl.bind("SUPER + 3", hl.dsp.focus({workspace = 3}))
|
||||||
|
hl.bind("SUPER + 4", hl.dsp.focus({workspace = 4}))
|
||||||
|
hl.bind("SUPER + 5", hl.dsp.focus({workspace = 5}))
|
||||||
|
hl.bind("SUPER + 6", hl.dsp.focus({workspace = 6}))
|
||||||
|
hl.bind("SUPER + 7", hl.dsp.focus({workspace = 7}))
|
||||||
|
hl.bind("SUPER + 8", hl.dsp.focus({workspace = 8}))
|
||||||
|
hl.bind("SUPER + 9", hl.dsp.focus({workspace = 9}))
|
||||||
|
|
||||||
|
hl.bind("SUPER + SHIFT + 1", hl.dsp.window.move({workspace = 1, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 2", hl.dsp.window.move({workspace = 2, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 3", hl.dsp.window.move({workspace = 3, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 4", hl.dsp.window.move({workspace = 4, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 5", hl.dsp.window.move({workspace = 5, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 6", hl.dsp.window.move({workspace = 6, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 7", hl.dsp.window.move({workspace = 7, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 8", hl.dsp.window.move({workspace = 8, follow = true}))
|
||||||
|
hl.bind("SUPER + SHIFT + 9", hl.dsp.window.move({workspace = 9, follow = true}))
|
||||||
|
|
||||||
|
-- Special workspace
|
||||||
|
hl.bind("SUPER + V", hl.dsp.workspace.toggle_special())
|
||||||
|
hl.bind("SUPER + W", hl.dsp.window.move({workspace = -1}))
|
||||||
|
|
||||||
|
-- Move/resize windows
|
||||||
|
hl.bind("SUPER + mouse:272", hl.dsp.window.drag(), ({mouse = true}))
|
||||||
|
hl.bind("SUPER + mouse:273", hl.dsp.window.resize(), ({mouse = true}))
|
||||||
|
|
||||||
|
-- Open favourites
|
||||||
|
hl.bind("SUPER + G", hl.dsp.exec_cmd("zen-browser"))
|
||||||
|
hl.bind("SUPER + C", hl.dsp.exec_cmd("vesktop"))
|
||||||
|
hl.bind("SUPER + R", hl.dsp.exec_cmd("keepassxc"))
|
||||||
|
hl.bind("SUPER + L", hl.dsp.exec_cmd("kitty"))
|
||||||
|
|
||||||
|
-- Adjust brightness
|
||||||
|
hl.bind(
|
||||||
|
"XF86MonBrightnessUp",
|
||||||
|
hl.dsp.global("quickshell:increase_brightness"),
|
||||||
|
{locked = true, repeating = true}
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"XF86MonBrightnessDown",
|
||||||
|
hl.dsp.global("quickshell:decrease_brightness"),
|
||||||
|
{locked = true, repeating = true}
|
||||||
|
)
|
||||||
|
hl.bind(
|
||||||
|
"SHIFT + XF86MonBrightnessDown",
|
||||||
|
hl.dsp.exec_cmd("brillo -S 0% -q -u 1000000"),
|
||||||
|
{locked = true, repeating = true}
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Adjust volume and media
|
||||||
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd(
|
||||||
|
"pactl set-sink-volume @DEFAULT_SINK@ +1%"
|
||||||
|
))
|
||||||
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd(
|
||||||
|
"pactl set-sink-volume @DEFAULT_SINK@ -1%"
|
||||||
|
))
|
||||||
|
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("quickshell ipc call osd open"))
|
||||||
|
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("quickshell ipc call osd open"))
|
||||||
|
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("playerctl next"))
|
||||||
|
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("playerctl play-pause"))
|
||||||
|
|
||||||
|
-- Screen capturing
|
||||||
|
hl.bind("SUPER + COMMA", hl.dsp.exec_cmd(
|
||||||
|
"pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m region"
|
||||||
|
))
|
||||||
|
hl.bind("SUPER + ALT + COMMA", hl.dsp.exec_cmd(
|
||||||
|
"pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m window"
|
||||||
|
))
|
||||||
|
hl.bind("SUPER + SHIFT + COMMA", hl.dsp.exec_cmd(
|
||||||
|
"pgrep slurp || hyprshot -o ~/Pictures/Screenshots -z -s -m active -m output"
|
||||||
|
))
|
||||||
|
hl.bind("SUPER + SEMICOLON", hl.dsp. exec_cmd("~/.config/scripts/zoom.sh"))
|
||||||
|
hl.bind("SHIFT + XF86Display", hl.dsp.exec_cmd("~/.config/scripts/vnc-toggle.sh"))
|
||||||
|
hl.bind("XF86Display", hl.dsp.exec_cmd("pkill -x quickshell; quickshell"))
|
||||||
|
hl.bind("SUPER + D", hl.dsp.exec_cmd("wayscriber --active"))
|
||||||
|
hl.bind("SUPER + SHIFT + D", hl.dsp.exec_cmd("wl-paste | satty -f -"))
|
||||||
67
hypr/hyprland/config.lua
Normal file
67
hypr/hyprland/config.lua
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
hl.config({
|
||||||
|
input = {
|
||||||
|
kb_layout = "us",
|
||||||
|
kb_variant = "dvorak",
|
||||||
|
repeat_delay = 600,
|
||||||
|
touchpad = {
|
||||||
|
natural_scroll = true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
general = {
|
||||||
|
gaps_in = 4,
|
||||||
|
gaps_out = 6,
|
||||||
|
border_size = 0,
|
||||||
|
|
||||||
|
layout = "dwindle",
|
||||||
|
no_focus_fallback = true
|
||||||
|
},
|
||||||
|
decoration = {
|
||||||
|
rounding = 12,
|
||||||
|
rounding_power = 2,
|
||||||
|
-- active_opacity = 0.95,
|
||||||
|
-- inactive_opacity = 0.9,
|
||||||
|
-- fullscreen_opacity = 1.0,
|
||||||
|
blur = {
|
||||||
|
enabled = true,
|
||||||
|
size = 8,
|
||||||
|
passes = 3,
|
||||||
|
new_optimizations = true,
|
||||||
|
ignore_opacity = true,
|
||||||
|
special = false,
|
||||||
|
brightness = 0.2,
|
||||||
|
},
|
||||||
|
shadow = {
|
||||||
|
range = 18,
|
||||||
|
render_power = 4,
|
||||||
|
scale = 0.9995,
|
||||||
|
color = "#000000",
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dwindle = {
|
||||||
|
preserve_split = true,
|
||||||
|
smart_split = false,
|
||||||
|
use_active_for_splits = true,
|
||||||
|
force_split = 2,
|
||||||
|
},
|
||||||
|
binds = {
|
||||||
|
disable_keybind_grabbing = true
|
||||||
|
},
|
||||||
|
misc = {
|
||||||
|
disable_hyprland_logo = true,
|
||||||
|
disable_splash_rendering = false,
|
||||||
|
on_focus_under_fullscreen = 2,
|
||||||
|
key_press_enables_dpms = true,
|
||||||
|
mouse_move_enables_dpms = true,
|
||||||
|
focus_on_activate = true,
|
||||||
|
session_lock_xray = false,
|
||||||
|
animate_manual_resizes = true,
|
||||||
|
enable_anr_dialog = false,
|
||||||
|
background_color = "#141414",
|
||||||
|
},
|
||||||
|
cursor = {
|
||||||
|
persistent_warps = true,
|
||||||
|
},
|
||||||
|
xwayland = {
|
||||||
|
force_zero_scaling = true,
|
||||||
|
},
|
||||||
|
})
|
||||||
19
hypr/hyprland/environment.lua
Normal file
19
hypr/hyprland/environment.lua
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
hl.on("hyprland.start", function()
|
||||||
|
hl.exec_cmd("quickshell")
|
||||||
|
hl.exec_cmd("hypridle")
|
||||||
|
hl.exec_cmd("/lib/polkit-gnome/polkit-gnome-authentication-agent-1")
|
||||||
|
hl.exec_cmd("keyd-application-mapper -d")
|
||||||
|
hl.exec_cmd("hyprpm reload")
|
||||||
|
hl.exec_cmd("kanshi")
|
||||||
|
end)
|
||||||
|
|
||||||
|
hl.env("XCURSOR_SIZE", "22")
|
||||||
|
hl.env("XCURSOR_THEME", "GoogleDot-Black")
|
||||||
|
hl.env("GTK_THEME", "Graphite-Dark")
|
||||||
|
hl.env("GTK_ICON_THEME", "YAMIS")
|
||||||
|
hl.env("HYPRCURSOR_SIZE", "22")
|
||||||
|
hl.env("HYPRCURSOR_THEME", "GoogleDot-hypr")
|
||||||
|
hl.env("QT_QPA_PLATFORMTHEME", "gtk3")
|
||||||
|
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
|
||||||
|
hl.env("FREETYPE_PROPERTIES", ":no-stem-darkening=0 autofitter:no-stem-darkening=0")
|
||||||
37
hypr/hyprland/hardware.lua
Normal file
37
hypr/hyprland/hardware.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
hl.config({
|
||||||
|
input = {
|
||||||
|
accel_profile = "flat",
|
||||||
|
sensitivity = 0,
|
||||||
|
follow_mouse = 2,
|
||||||
|
float_switch_override_focus = 0,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.device({
|
||||||
|
name = "tpps/2-elan-trackpoint",
|
||||||
|
sensitivity = 0.5,
|
||||||
|
enabled = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.device({
|
||||||
|
name = "elan067b:00-04f3:31f8-mouse",
|
||||||
|
sensitivity = 0.5,
|
||||||
|
enabled = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.device({
|
||||||
|
name = "pixart-hp-usb-optical-mouse",
|
||||||
|
enabled = true,
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "eDP-1",
|
||||||
|
mode = "preferred",
|
||||||
|
})
|
||||||
|
|
||||||
|
hl.monitor({
|
||||||
|
output = "",
|
||||||
|
mode = "preferred",
|
||||||
|
position = "auto",
|
||||||
|
scale = 1
|
||||||
|
})
|
||||||
47
hypr/hyprland/rules.lua
Normal file
47
hypr/hyprland/rules.lua
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
-- Smart gaps
|
||||||
|
hl.workspace_rule({ workspace = "w[tv1]s[false]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
hl.workspace_rule({ workspace = "f[1]s[false]", gaps_out = 0, gaps_in = 0 })
|
||||||
|
hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, border_size = 0 })
|
||||||
|
hl.window_rule({ match = { float = false, workspace = "w[tv1]s[false]" }, rounding = 0 })
|
||||||
|
hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, border_size = 0 })
|
||||||
|
hl.window_rule({ match = { float = false, workspace = "f[1]s[false]" }, rounding = 0 })
|
||||||
|
|
||||||
|
-- Misc window rules
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
class = "Write:"
|
||||||
|
},
|
||||||
|
float = true
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
class = "xdg-desktop-portal-gtk"
|
||||||
|
},
|
||||||
|
float = true
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
title = "(Open File)"
|
||||||
|
},
|
||||||
|
no_blur = true
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
class = "(Xdg-desktop-portal-gtk)"
|
||||||
|
},
|
||||||
|
no_blur = true
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
class = "(eog)"
|
||||||
|
},
|
||||||
|
float = true,
|
||||||
|
center = true
|
||||||
|
})
|
||||||
|
hl.window_rule({
|
||||||
|
match = {
|
||||||
|
class = "(mpv|loupe|com.gabm.satty)"
|
||||||
|
},
|
||||||
|
float = true,
|
||||||
|
size = { "monitor_w*0.95", "monitor_h*0.95"}
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user