463 lines
12 KiB
Plaintext
463 lines
12 KiB
Plaintext
# ========
|
|
# ========
|
|
# !!MONITORS!! #
|
|
# --------------------------------------------------------------------------------- #
|
|
# !!MONITORS!! #
|
|
# run `hyprctl monitors all` to see all your monitors!!!
|
|
source = $XDG_CACHE_HOME/wal/colors-hyprland
|
|
source = $XDG_CONFIG_HOME/hypr/monitors.conf
|
|
source = $XDG_CONFIG_HOME/hypr/wallpaper.conf
|
|
|
|
exec-once = systemd-timer-notify &
|
|
exec-once = [workspace special:magic silent] discord
|
|
|
|
$fileManager = thunar
|
|
$menu = rofi -combi-modi window,drun -show combi -show-icons -theme-str 'window {width: 15%; height: 42%;}'
|
|
$browser = rofi -show file-browser-extended -show-icons -theme-str 'window {width: 20%; height: 32%;}'
|
|
# $emoji = rofi -modi "emoji:rofimoji" -show emoji -theme-str 'window {width: 20%; height: 12%;}'
|
|
# $calc = rofi -show calc -no-show-match -no-sort -theme-str 'window {width: 20%; height: 10%;}'
|
|
$screenshot = slurp | grim -g - - | wl-copy
|
|
$scripts = $XDG_CONFIG_HOME/hypr/scripts
|
|
$power = $scripts/power.sh
|
|
$notes = $scripts/notes.sh
|
|
$move = $scripts/move.sh
|
|
$actions = $scripts/actions.sh
|
|
# $picker = hyprpicker -a 2>/dev/null
|
|
$notifications = swaync-client -t
|
|
|
|
# Environment variables
|
|
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
|
env = XCURSOR_SIZE,24
|
|
env = XCURSOR_THEME,Posy_Cursor
|
|
env = HYPRCURSOR_SIZE,24
|
|
env = HYPRCURSOR_THEME,Posy_Cursor
|
|
|
|
|
|
$swpw_name = `(echo -n '90' && (hyprctl activeworkspace -j | jq -r '.name')) | sed 's/9090//g' | tr -d '\n'`
|
|
$special_workspace_per_workspace = hyprctl dispatch workspace $swpw_name
|
|
$move_to_special_workspace_per_workspace = hyprctl dispatch movetoworkspace $swpw_name
|
|
|
|
# Special Workspace per Workspace bindings
|
|
|
|
# !!INPUT!! #
|
|
# --------------------------------------------------------------------------------- #
|
|
# !!INPUT!! #
|
|
render = {direct_scanout=1}
|
|
# READ https://wiki.hyprland.org/Configuring/Variables/#input IF CONFUSED!
|
|
# Example keyboard/mouse input settings.
|
|
input {
|
|
kb_layout = us
|
|
|
|
# Set as needed
|
|
kb_rules =
|
|
kb_variant =
|
|
kb_model =
|
|
accel_profile = flat
|
|
follow_mouse = 1
|
|
force_no_accel = true
|
|
|
|
# Range is -1.0 to 1.0 | 0 means no modification to sensitivity.
|
|
sensitivity = 0
|
|
|
|
touchpad {
|
|
natural_scroll = false
|
|
}
|
|
}
|
|
|
|
cursor {
|
|
no_hardware_cursors = true
|
|
}
|
|
|
|
|
|
# !!DESIGN!! #
|
|
# --------------------------------------------------------------------------------- #
|
|
# !!DESIGN!! #
|
|
|
|
animations {
|
|
enabled = true
|
|
|
|
bezier = myBezier, 0, 1, 0.18, 1.0
|
|
|
|
animation = windows, 1, 1.5, myBezier
|
|
animation = windowsOut, 1, 2, myBezier, popin 95%
|
|
animation = border, 1, 12, myBezier
|
|
animation = borderangle, 1, 5, default
|
|
animation = fade, 1, 6, default
|
|
animation = workspaces, 1, 6, default
|
|
}
|
|
|
|
# The gaps between windows, as well as border colors.
|
|
# proportional to the taskbar values.
|
|
general {
|
|
# Inner and Outer gaps between windows.
|
|
gaps_in = 5
|
|
gaps_out = 20 14 20 20
|
|
|
|
# I prefer a thin border
|
|
border_size = 2
|
|
|
|
# Border colors.
|
|
col.active_border = $color0
|
|
col.inactive_border = $color1
|
|
|
|
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
|
resize_on_border = true
|
|
|
|
layout = dwindle
|
|
|
|
# READ https://wiki.hyprland.org/Configuring/Tearing/ BEFORE TURNING ON!
|
|
allow_tearing = false
|
|
}
|
|
|
|
# Window Decorations! Shadow, Blur, etc.
|
|
decoration {
|
|
rounding = 12
|
|
|
|
active_opacity = 1
|
|
inactive_opacity = 1
|
|
|
|
# Window Shadow
|
|
shadow:enabled = true
|
|
shadow:range = 16
|
|
shadow:render_power = 5
|
|
shadow:color = rgba(0,0,0,0.35)
|
|
|
|
# Transparent Window Blur
|
|
blur{
|
|
enabled = true
|
|
size = 2
|
|
passes = 3
|
|
vibrancy = 0.1696
|
|
}
|
|
}
|
|
|
|
# Read https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more info on dwindle layout.
|
|
dwindle {
|
|
pseudotile = true
|
|
preserve_split = true
|
|
}
|
|
|
|
# Read https://wiki.hyprland.org/Configuring/Master-Layout/ for more info on master layout.
|
|
master {
|
|
new_status = master
|
|
}
|
|
|
|
misc {
|
|
force_default_wallpaper = 0
|
|
disable_hyprland_logo = true
|
|
enable_anr_dialog = false
|
|
}
|
|
|
|
# No need for gestures unless you have a touch display.
|
|
gestures {
|
|
}
|
|
|
|
# !!KEYBINDS!! #
|
|
# --------------------------------------------------------------------------------- #
|
|
# !!KEYBINDS!! #
|
|
$mainMod = SUPER
|
|
|
|
bind = $mainMod Shift, L, exit
|
|
bind = $mainMod, Return, exec, $TERMINAL
|
|
bind = $mainMod, Q, killactive,
|
|
bind = $mainMod, G, exec, $screenshot
|
|
bind = $mainMod SHIFT, E, exec, $fileManager
|
|
bind = $mainMod, V, togglefloating
|
|
bind = $mainMod, F, fullscreen
|
|
bind = $mainMod, P, pseudo
|
|
bind = $mainMod, T, togglesplit
|
|
bindr = $mainMod, Tab, exec, pkill rofi || $menu
|
|
# bindr = $mainMod Shift, P, exec, pkill hyprpicker || $picker
|
|
# bindr = $mainMod Shift, C, exec, pkill rofi || $calc
|
|
bindr = $mainMod Shift, T, exec, pkill rofi || $toggles
|
|
bindr = $mainMod Shift, R, exec, pkill rofi || $power
|
|
bindr = $mainMod, E, exec, pkill rofi || $browser
|
|
bindr = $mainMod, N, exec, pkill rofi || $notes
|
|
# bindr = $mainMod Shift, M, exec, pkill rofi || $emoji
|
|
|
|
bindr = $mainMod Shift, Y, exec, pkill rofi || $scripts/runner
|
|
bindr = $mainMod, D, exec, pkill rofi || $actions
|
|
|
|
bindr = $mainMod Shift, W, exec, $move
|
|
bindr = $mainMod, W, exec, $move --same
|
|
|
|
bind = $mainMod, M, exec, pkill rmpc || kitty +kitten panel --edge center --layer overlay --focus-policy on-demand --margin-top 60 --margin-bottom 800 --margin-right 1200 --margin-left 22 rmpc
|
|
|
|
bind = $mainMod Shift, N, exec, $notifications
|
|
|
|
bind = $mainMod, A, exec, $special_workspace_per_workspace
|
|
bind = $mainMod SHIFT, A, exec, $move_to_special_workspace_per_workspace
|
|
|
|
# Switch current workspaces with mainMod + [0-9]
|
|
bind = $mainMod, 1, workspace, 1
|
|
bind = $mainMod, 2, workspace, 2
|
|
bind = $mainMod, 3, workspace, 3
|
|
bind = $mainMod, 4, workspace, 4
|
|
bind = $mainMod, 5, workspace, 5
|
|
bind = $mainMod, 6, workspace, 6
|
|
bind = $mainMod, 7, workspace, 7
|
|
bind = $mainMod, 8, workspace, 8
|
|
bind = $mainMod, 9, workspace, 9
|
|
bind = $mainMod, 0, workspace, 10
|
|
|
|
# Move a focused window to a workspace with mainMod + SHIFT + [0-9]
|
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
|
|
# Move focus with mainMod + arrow keys
|
|
bind = $mainMod, left, movefocus, l
|
|
bind = $mainMod, right, movefocus, r
|
|
bind = $mainMod, up, movefocus, u
|
|
bind = $mainMod, down, movefocus, d
|
|
bind = $mainMod, h, movefocus, l
|
|
bind = $mainMod, j, movefocus, r
|
|
bind = $mainMod, k, movefocus, u
|
|
bind = $mainMod, l, movefocus, d
|
|
|
|
bind = $mainMod, S, togglespecialworkspace, magic
|
|
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
|
|
|
# Scroll through existing workspaces with mainMod + scroll
|
|
bind = $mainMod, mouse_down, workspace, e+1
|
|
bind = $mainMod, mouse_up, workspace, e-1
|
|
|
|
# Move and Resize windows with mainMod + LMB/RMB and dragging, drag on edges to resize.
|
|
bindm = $mainMod, mouse:272, movewindow
|
|
bindm = $mainMod, mouse:273, resizewindow
|
|
|
|
# Laptop multimedia keys for volume and LCD brightness
|
|
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, brightnessctl s 10%+
|
|
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
|
|
|
|
# !!WINDOW RULES!! #
|
|
# --------------------------------------------------------------------------------- #
|
|
# !!WINDOW RULES!! #
|
|
# Read https://wiki.hyprland.org/Configuring/Window-Rules/ for more info
|
|
# Read https://wiki.hyprland.org/Configuring/Workspace-Rules/ for more info
|
|
|
|
layerrule {
|
|
name = layerrule-1
|
|
blur = on
|
|
match:namespace = rofi
|
|
}
|
|
|
|
layerrule {
|
|
name = layerrule-2
|
|
ignore_alpha = 0.01
|
|
match:namespace = rofi # This is so entirely transparent things aren't blurred.
|
|
}
|
|
|
|
|
|
# Add blur to waybar, for same reason as above. Since we have two versions
|
|
# of the waybar design, one with translucency.
|
|
layerrule {
|
|
name = layerrule-3
|
|
blur = on
|
|
blur_popups = on
|
|
match:namespace = waybar
|
|
}
|
|
|
|
layerrule {
|
|
name = layerrule-4
|
|
ignore_alpha = 1.0
|
|
match:namespace = waybar # this is so entirely transparent things aren't blurred.
|
|
}
|
|
|
|
|
|
# Add blur to eww widgets
|
|
layerrule {
|
|
name = layerrule-5
|
|
blur = on
|
|
blur_popups = on
|
|
ignore_alpha = 0.01
|
|
match:namespace = eww
|
|
}
|
|
|
|
# Fix dragging issues with XWayland
|
|
windowrule {
|
|
name = windowrule-1
|
|
no_focus = on
|
|
match:class = ^$
|
|
match:title = ^$
|
|
match:xwayland = 1
|
|
match:float = 1
|
|
match:fullscreen = 0
|
|
match:pin = 0
|
|
}
|
|
|
|
|
|
# -------------CUSTOMIZE BELOW------------------------
|
|
|
|
# Discord
|
|
windowrule {
|
|
name = windowrule-2
|
|
float = on
|
|
size = 1200 800
|
|
move = (200) (100)
|
|
workspace = special:magic
|
|
no_screen_share = on
|
|
match:class = ^(discord)$
|
|
}
|
|
|
|
|
|
# File manager + archiver
|
|
windowrule {
|
|
name = windowrule-3
|
|
float = on
|
|
center = on
|
|
size = 971 670
|
|
opacity = 0.8 0.7
|
|
match:class = .*(?i)(thunar)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-4
|
|
float = on
|
|
center = on
|
|
size = 971 670
|
|
opacity = 0.8 0.7
|
|
match:class = ^(xarchiver)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-5
|
|
float = on
|
|
center = on
|
|
size = 568 138
|
|
match:title = ^(File\ Operation\ Progress)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-6
|
|
float = on
|
|
center = on
|
|
size = 971 670
|
|
opacity = 0.8 0.7
|
|
match:title = ^(Open.*)$
|
|
}
|
|
|
|
|
|
# XDG Portal
|
|
windowrule {
|
|
name = windowrule-7
|
|
float = on
|
|
center = on
|
|
size = 971 670
|
|
opacity = 0.8 0.7
|
|
match:class = ^(xdg-desktop-portal-gtk)$
|
|
}
|
|
|
|
|
|
# Runelite
|
|
windowrule {
|
|
name = windowrule-8
|
|
float = on
|
|
match:title = ^(RuneLite)$
|
|
}
|
|
|
|
|
|
# Notes dmenu app
|
|
windowrule {
|
|
name = windowrule-9
|
|
float = on
|
|
center = on
|
|
size = (monitor_w*0.2) (monitor_h*0.25)
|
|
opacity = 0.8 0.7
|
|
match:class = ^(notes)$
|
|
}
|
|
|
|
|
|
# Opacity rules
|
|
windowrule {
|
|
name = windowrule-10
|
|
opacity = 0.8 0.7
|
|
match:class = ^(kitty)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-11
|
|
opacity = 0.8 0.7
|
|
match:class = ^(steam)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-12
|
|
opacity = 0.8 0.7
|
|
match:class = ^(PrismLauncher)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-13
|
|
float = on
|
|
match:class = ^(steam)$
|
|
match:title = ^(Friends\ List)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-14
|
|
float = on
|
|
opacity = 0.8 0.7
|
|
match:class = ^(io.lampnet.*)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-15
|
|
float = on
|
|
size = 1496 790
|
|
match:title = ^(System Update)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-16
|
|
float = on
|
|
match:class = ^(mpv)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-17
|
|
float = on
|
|
match:class = ^(feh)$
|
|
}
|
|
|
|
|
|
windowrule {
|
|
name = windowrule-18
|
|
border_size = 0
|
|
no_blur = on
|
|
no_shadow = on
|
|
match:class = ^(DeskPet)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-19
|
|
float = on
|
|
move = 2240 54
|
|
match:title = ^(Photo\ Gallery)$
|
|
}
|
|
|
|
windowrule {
|
|
name = windowrule-20
|
|
float = on
|
|
move = 2240 54
|
|
match:title = ^(Music\ Controller)$
|
|
# no_blur = on
|
|
# no_shadow = on
|
|
}
|