Everywhere: Add Hyprland Wayland config
This commit is contained in:
@@ -0,0 +1,12 @@
|
||||
general {
|
||||
lock_cmd = pidof hyprlock || hyprlock
|
||||
before_sleep_cmd = loginctl lock-session
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # avoid having to press a key twice to turn on display
|
||||
}
|
||||
|
||||
# Turn the screen off after 30 seconds on the lock-screen
|
||||
listener {
|
||||
timeout = 30
|
||||
on-timeout = pidof hyprlock && hyprctl dispatch dpms off
|
||||
on-resume = hyprctl dispatch dpms on
|
||||
}
|
||||
@@ -0,0 +1,406 @@
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = ghostty
|
||||
$fileManager = thunar
|
||||
$menu = rofi -show drun
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# System level
|
||||
exec-once = gammastep
|
||||
exec-once = systemctl --user start hyprpolkitagent
|
||||
exec-once = hyprctl setcursor capitaine-cursors-light 24
|
||||
exec-once = hypridle
|
||||
|
||||
# Scripts
|
||||
exec-once = ${HOME}/.local/bin/wm/wallpaper.sh
|
||||
exec-once = ${HOME}/.local/bin/panel/waybar.sh
|
||||
|
||||
# Applications
|
||||
exec-once = [workspace 1] firefox
|
||||
exec-once = [workspace 2] $terminal
|
||||
exec-once = [workspace 3] thunar --daemon
|
||||
exec-once = [workspace 3] thunar
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
|
||||
env = XDG_CURRENT_DESKTOP,Hyprland
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = XDG_SESSION_DESKTOP,Hyprland
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hyprland.org/Configuring/Variables/
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 10
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgb(404552)
|
||||
col.inactive_border = rgb(2b2e39)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 0
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = false
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = true
|
||||
|
||||
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = easeOutQuint,0.23,1,0.32,1
|
||||
bezier = easeInOutCubic,0.65,0.05,0.36,1
|
||||
bezier = linear,0,0,1,1
|
||||
bezier = almostLinear,0.5,0.5,0.75,1.0
|
||||
bezier = quick,0.15,0,0.1,1
|
||||
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
}
|
||||
|
||||
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
workspace = w[tv1], gapsout:0, gapsin:0
|
||||
workspace = f[1], gapsout:0, gapsin:0
|
||||
windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
|
||||
windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
force_split = 2 # split to the bottom right
|
||||
preserve_split = true
|
||||
pseudotile = false
|
||||
}
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#misc
|
||||
misc {
|
||||
disable_hyprland_logo = true
|
||||
vfr = true # lower amount of sent frames when nothing is happening on-screen
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = caps:swapescape
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = false
|
||||
}
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
|
||||
device { # hyprctl devices
|
||||
name = logitech-wireless-mouse-pid:4038
|
||||
sensitivity = -0.5
|
||||
accel_profile = flat
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Bind docs https://wiki.hyprland.org/Configuring/Binds/
|
||||
|
||||
#--- Control ---#
|
||||
|
||||
# Reload hyprland
|
||||
bind = $mainMod Control_L, r, forcerendererreload
|
||||
|
||||
# Close hyprland
|
||||
bind = $mainMod SHIFT, M, exit,
|
||||
|
||||
#--- Window ---#
|
||||
|
||||
# Close window
|
||||
bind = $mainMod, q, killactive,
|
||||
|
||||
#-- State/flags --#
|
||||
|
||||
# Toggle fullscreen mode
|
||||
bind = $mainMod, f, fullscreen
|
||||
|
||||
# Toggle tiled/floating
|
||||
bind = $mainMod, Space, togglefloating,
|
||||
|
||||
#-- Focus --#
|
||||
|
||||
# Focus window in direction
|
||||
bind = $mainMod, h, movefocus, l
|
||||
bind = $mainMod, j, movefocus, d
|
||||
bind = $mainMod, k, movefocus, u
|
||||
bind = $mainMod, l, movefocus, r
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Focus previous/next window
|
||||
bind = $mainMod, Tab, cyclenext
|
||||
bind = $mainMod SHIFT, Tab, cyclenext, prev
|
||||
|
||||
# Focus workspace
|
||||
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
|
||||
|
||||
# Focus previous/next workspace
|
||||
bind = $mainMod, equal, workspace, e+1
|
||||
bind = $mainMod, minus, workspace, e-1
|
||||
|
||||
# Focus last workspace
|
||||
bind = $mainMod, GRAVE, focuscurrentorlast
|
||||
|
||||
# Focus previous/next monitor
|
||||
# TODO
|
||||
|
||||
# Special workspace (scratchpad)
|
||||
bind = $mainMod, T, togglespecialworkspace, magic
|
||||
|
||||
#-- Move --#
|
||||
|
||||
# Send window to workspace
|
||||
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 window to previous/next workspace
|
||||
bind = $mainMod SHIFT, equal, movetoworkspace, e+1
|
||||
bind = $mainMod SHIFT, minus, movetoworkspace, e-1
|
||||
|
||||
# Move window to previous/next monitor
|
||||
# TODO
|
||||
|
||||
# Move floating window
|
||||
bind = Control_L Alt_L, h, moveactive, -30 0
|
||||
bind = Control_L Alt_L, j, moveactive, 0 30
|
||||
bind = Control_L Alt_L, k, moveactive, 0 -30
|
||||
bind = Control_L Alt_L, l, moveactive, 30 0
|
||||
bind = Control_L Alt_L, left, moveactive, -30 0
|
||||
bind = Control_L Alt_L, right, moveactive, 30 0
|
||||
bind = Control_L Alt_L, up, moveactive, 0 -30
|
||||
bind = Control_L Alt_L, down, moveactive, 0 30
|
||||
|
||||
# Flip the tree from the current windows parent
|
||||
bind = $mainMod Alt_L, 5, swapsplit, # dwindle
|
||||
bind = $mainMod Alt_L, 6, togglesplit, # dwindle
|
||||
|
||||
# Special workspace (scratchpad)
|
||||
bind = $mainMod SHIFT, T, movetoworkspace, special:magic
|
||||
|
||||
#-- Resize --#
|
||||
|
||||
# Resize windows
|
||||
bind = $mainMod Alt_L, h, resizeactive, -10 0
|
||||
bind = $mainMod Alt_L, j, resizeactive, 0 10
|
||||
bind = $mainMod Alt_L, k, resizeactive, 0 -10
|
||||
bind = $mainMod Alt_L, l, resizeactive, 10 0
|
||||
bind = $mainMod Alt_L, left, resizeactive, -10 0
|
||||
bind = $mainMod Alt_L, right, resizeactive, 10 0
|
||||
bind = $mainMod Alt_L, up, resizeactive, 0 -10
|
||||
bind = $mainMod Alt_L, down, resizeactive, 0 10
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
#-- Preselect node --#
|
||||
|
||||
bind = SUPER Control_L, h, layoutmsg, preselect left
|
||||
bind = SUPER Control_L, j, layoutmsg, preselect down
|
||||
bind = SUPER Control_L, k, layoutmsg, preselect up
|
||||
bind = SUPER Control_L, l, layoutmsg, preselect right
|
||||
bind = SUPER Control_L, left, layoutmsg, preselect left
|
||||
bind = SUPER Control_L, right, layoutmsg, preselect right
|
||||
bind = SUPER Control_L, up, layoutmsg, preselect up
|
||||
bind = SUPER Control_L, down, layoutmsg, preselect down
|
||||
|
||||
#--- General ---#
|
||||
|
||||
# Start terminal
|
||||
bind = $mainMod, Return, exec, $terminal
|
||||
|
||||
# Start rofi (program launcher)
|
||||
bind = $mainMod, d, exec, $menu
|
||||
|
||||
# mpv
|
||||
bind = $mainMod, m, exec, play
|
||||
bind = $mainMod SHIFT, m, exec, play queue
|
||||
|
||||
#--- Control, compositor agnostic ---#
|
||||
|
||||
# Reload
|
||||
bind = $mainMod Control_L, r, exec, ${HOME}/.local/bin/panel/waybar.sh
|
||||
|
||||
# System
|
||||
bind = $mainMod SHIFT, s, exec, system
|
||||
|
||||
# Screen brightness
|
||||
bind = $mainMod, F2, exec, brictl dec 10
|
||||
bind = $mainMod, F3, exec, brictl inc 10
|
||||
|
||||
# Screen capture
|
||||
bind = , Print, exec, printscreen
|
||||
bind = Control_L, Print, exec, aliases screencast
|
||||
|
||||
# Laptop multimedia keys
|
||||
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = , XF86MonBrightnessUp, exec, brictl inc 10
|
||||
bindel = , XF86MonBrightnessDown, exec, brictl dec 10
|
||||
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
bindl = , XF86HomePage, exec, inputctl -d toggle # toggle touchpad
|
||||
bindl = , XF86Search, exec, inputctl -s toggle # toggle touchscreen
|
||||
|
||||
#--- Notification ---#
|
||||
|
||||
# Notifiation
|
||||
bind = Control_L, space, exec, dunstctl close
|
||||
bind = Control_L SHIFT, space, exec, dunstctl close-all
|
||||
bind = Control_L, grave, exec, dunstctl history-pop
|
||||
bind = Control_L SHIFT, period, exec, dunstctl context
|
||||
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
windowrulev2 = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
# Set to floating
|
||||
windowrule = float, feh # window rule v1 can only do either class or title, not both
|
||||
windowrule = float, mpv
|
||||
windowrule = float, org.pulseaudio.pavucontrol
|
||||
windowrule = float, xarchiver
|
||||
windowrulev2 = float, class:firefox, title:Library
|
||||
windowrulev2 = float, class:firefox, title:^About.*
|
||||
windowrulev2 = float, class:thunar, title:File Operation Progress
|
||||
|
||||
# Resize floating windows
|
||||
windowrule = size >50% >70%, org.pulseaudio.pavucontrol
|
||||
@@ -0,0 +1,72 @@
|
||||
$font_size = 48
|
||||
$font_size_small = 16
|
||||
$image_size = 175
|
||||
|
||||
general {
|
||||
hide_cursor = true
|
||||
ignore_empty_input = true
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 2
|
||||
blur_size = 2
|
||||
noise = 0
|
||||
}
|
||||
|
||||
label {
|
||||
font_family = DejaVu Sans Serif
|
||||
font_size = $font_size
|
||||
|
||||
text = $TIME12
|
||||
text_align = center
|
||||
|
||||
position = 0, 275
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
font_family = DejaVu Sans Serif
|
||||
font_size = $font_size_small
|
||||
|
||||
text = cmd[] date "+%A, %B %d"
|
||||
|
||||
position = 0, 200
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
image {
|
||||
monitor =
|
||||
path = ~/.local/bin/wm/lock.png
|
||||
size = $image_size
|
||||
rounding = -1
|
||||
border_size = 0
|
||||
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = $image_size, $image_size
|
||||
|
||||
outline_thickness = 10
|
||||
outer_color = rgba(0, 0, 0, 0.0)
|
||||
inner_color = rgba(0, 0, 0, 0.0)
|
||||
check_color = rgba(0, 0, 0, 0.0)
|
||||
|
||||
font_family = DejaVu Sans Serif
|
||||
font_color = rgba(255, 255, 255, 0.9)
|
||||
placeholder_text =
|
||||
fail_text =
|
||||
|
||||
hide_input = true
|
||||
rounding = -1
|
||||
fade_on_empty = false
|
||||
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
Reference in New Issue
Block a user