Hyprland and co.

This commit is contained in:
2026-02-01 23:18:04 +01:00
parent af0053b08b
commit b0e31c7ca1
12 changed files with 361 additions and 143 deletions

View File

@@ -54,7 +54,7 @@ alias dice='echo $[ 1 + $RANDOM % 6 ]'
alias d20='echo $[ 1 + $RANDOM % 20 ]'
# IP addresses
alias myip="dig +short myip.opendns.com @resolver1.opendns.com"
alias myip="doggo --short myip.opendns.com @resolver1.opendns.com"
alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
# Canonical hex dump; some systems have this symlinked
@@ -92,3 +92,4 @@ alias gitup='for dir in $(find . -name ".git"); do cd ${dir%/*}; pwd ; git pull
alias xclip="xclip -selection c"
alias mirrorup='sudo reflector --verbose -c Poland -c Germany -c France -l 25 -a 2 -p https --sort rate --save /etc/pacman.d/mirrorlist'
alias lock="swaylock --screenshots --clock --indicator --indicator-radius 100 --indicator-thickness 7 --effect-blur 7x5 --effect-vignette 0.5:0.5 --ring-color bb00cc --key-hl-color 880033 --line-color 00000000 --inside-color 00000088 --separator-color 00000000 --grace 2 --fade-in 0.2"
alias displays='seq 1 2 | xargs -I {} ddcutil -d {} setvcp 10'

View File

@@ -4,3 +4,5 @@ then
else
[ -r ~/.path ] && [ -f ~/.path ] && source ~/.path;
fi
[ -f ~/.fzf.bash ] && source ~/.fzf.bash

View File

@@ -25,7 +25,7 @@ font:
# - (macOS) Menlo
# - (Linux/BSD) monospace
# - (Windows) Consolas
family: Noto Color Emoji
# family: Noto Color Emoji
family: SauceCodePro NFM
# The `style` can be specified to pick a specific face.

View File

@@ -1,17 +1,17 @@
[Settings]
gtk-theme-name=Catppuccin-Macchiato-Standard-Red-Dark
gtk-icon-theme-name=Papirus-Dark
gtk-font-name=Lexend Deca 11
gtk-cursor-theme-name=Vimix-white-cursors
gtk-cursor-theme-size=16
gtk-theme-name=catppuccin-macchiato-red-standard+default
gtk-icon-theme-name=Vimix-ruby
gtk-font-name=Adwaita Sans 11
gtk-cursor-theme-name=Posy_Cursor
gtk-cursor-theme-size=24
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintfull
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
gtk-application-prefer-dark-theme=1
gtk-application-prefer-dark-theme=0

View File

@@ -3,6 +3,6 @@ xhost + local: ;
swww init;
flameshot &
wayvnc &
dex -a &
#dex -a &
dunst &
$HOME/.config/waybar/launcher.sh

View File

@@ -1,84 +1,82 @@
# vim: set filetype=hyprlang :
# This is an example Hyprland config file.
# Syntax is the same as in Hypr, but settings might differ.
#
# Refer to the wiki for more information.
source=./monitors.conf
#workspace=DP-1,1
workspace=1, m:DP-1
workspace=2, m:DP-1
workspace=3, m:DP-1
workspace=4, m:DP-1
workspace=5, m:DP-1
workspace=6, m:DP-3
workspace=7, m:DP-3
workspace=8, m:DP-3
workspace=9, m:DP-3
workspace=10, m:DP-3
#workspace=1, monitor:DP-1
#workspace=2, monitor:DP-1
#workspace=3, monitor:DP-1
#workspace=4, monitor:DP-1
#workspace=5, monitor:DP-1
#workspace=6, monitor:DP-3
#workspace=7, monitor:DP-3
#workspace=8, monitor:DP-3
#workspace=9, monitor:DP-3
#workspace=10, monitor:DP-3
input {
kb_layout=pl
kb_variant=
kb_model=
kb_options=
kb_rules=
numlock_by_default=true
follow_mouse=1
touchpad {
natural_scroll=true
kb_layout=pl
kb_variant=
kb_model=
kb_options=
kb_rules=
numlock_by_default=true
follow_mouse=1
touchpad {
natural_scroll=true
tap-and-drag=false
}
}
device {
name=ploopy-corporation-ploopy-adept-trackball-mouse
#accel_profile=custom 10 0.0 1.0 2.0 4.0
sensitivity=-1
}
general {
#max_fps=60 # deprecated, unused
#main_mod=SUPER
gaps_in=5
gaps_out=20
border_size=2
col.active_border=0x66ee1111
col.inactive_border=0x66333333
resize_on_border=true
#damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
$main_mod=SUPER
gaps_in=5
gaps_out=20
border_size=2
col.active_border=0x66ee1111
col.inactive_border=0x66333333
resize_on_border=false
#damage_tracking=full # leave it on full unless you hate your GPU and want to make it suffer
}
gestures {
workspace_swipe=true
#workspace_swipe=true
workspace_swipe_touch=true
}
decoration {
rounding=10
rounding=10
blur {
enabled=1
size=3 # minimum 1
passes=3 # minimum 1, more passes = more resource intensive.
enabled=1
size=3 # minimum 1
passes=3 # minimum 1, more passes = more resource intensive.
}
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
# if you want heavy blur, you need to up the blur_passes.
# the more passes, the more you can up the blur_size without noticing artifacts.
}
dwindle {
pseudotile=0 # enable pseudotiling on dwindle
pseudotile=1 # enable pseudotiling on dwindle
}
#debug {
# full_cm_proto=true
#}
misc {
force_default_wallpaper=0
vrr=1
enable_anr_dialog=0
force_default_wallpaper=0
vrr=1
enable_anr_dialog=0
}
# example window rules
# for windows named/classed as abc and xyz
#windowrule=move 69 420,abc
#windowrule=size 420 69,abc
#windowrule=tile,xyz
#windowrule=float,abc
#windowrule=pseudo,abc
#windowrule=monitor 0,xyz
# example binds
bind=SUPERSHIFT,Z,exec,alacritty
bind=SUPER,Z,exec,wezterm
bind=SUPER,X,killactive,
@@ -118,6 +116,20 @@ bind=SUPER,8,workspace,8
bind=SUPER,9,workspace,9
bind=SUPER,0,workspace,10
bind=SUPER_ALT,1,workspace,11
bind=SUPER_ALT,2,workspace,12
bind=SUPER_ALT,3,workspace,13
bind=SUPER_ALT,4,workspace,14
bind=SUPER_ALT,5,workspace,15
bind=SUPER_ALT,6,workspace,16
bind=SUPER_ALT,7,workspace,17
bind=SUPER_ALT,8,workspace,18
bind=SUPER_ALT,9,workspace,19
bind=SUPER_ALT,0,workspace,20
bind=SUPER_SHIFT,1,movetoworkspacesilent,1
bind=SUPER_SHIFT,2,movetoworkspacesilent,2
bind=SUPER_SHIFT,3,movetoworkspacesilent,3
@@ -129,6 +141,19 @@ bind=SUPER_SHIFT,8,movetoworkspacesilent,8
bind=SUPER_SHIFT,9,movetoworkspacesilent,9
bind=SUPER_SHIFT,0,movetoworkspacesilent,10
bind=SUPER_ALT_SHIFT,1,movetoworkspacesilent,11
bind=SUPER_ALT_SHIFT,2,movetoworkspacesilent,12
bind=SUPER_ALT_SHIFT,3,movetoworkspacesilent,13
bind=SUPER_ALT_SHIFT,4,movetoworkspacesilent,14
bind=SUPER_ALT_SHIFT,5,movetoworkspacesilent,15
bind=SUPER_ALT_SHIFT,6,movetoworkspacesilent,16
bind=SUPER_ALT_SHIFT,7,movetoworkspacesilent,17
bind=SUPER_ALT_SHIFT,8,movetoworkspacesilent,18
bind=SUPER_ALT_SHIFT,9,movetoworkspacesilent,19
bind=SUPER_ALT_SHIFT,0,movetoworkspacesilent,20
bind=SUPERSHIFT,S,exec,flameshot gui
bind=,PRINT,exec,flameshot full
bind=CTRL,PRINT,exec,flameshot gui
@@ -146,35 +171,63 @@ bind=,XF86Launch3,exec,touch-mode
bind=CTRL,XF86Launch3,exec,hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1"
bind=SHIFT,XF86Launch3,exec,hyprctl keyword monitor "eDP-1,1920x1080@60,0x0,1.5"
bind=,XF86Launch6,exec,equibop --toggle-mic
bind=,mouse:282,exec,equibop --toggle-mic
bind=SHIFT,XF86MonBrightnessDown,exec,xbacklight -set 0.01
bind=SHIFT,XF86MonBrightnessUp,exec,xbacklight -set 100
exec-once=dash ~/.config/hypr/autostart.sh
exec-once=hyprctl setcursor Vimix-white-cursors 24
exec-once=hyprctl setcursor Posy_Cursor 24
# exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = carla -n ~/Default.carxp
windowrule {
name = flameshot-main
match:title = ^(flameshot)$
float = on
pin = on
fullscreen = on
maximize = on
#center = on
#monitor = 3
size = monitor_w*2 monitor_h*1
move = 0 0
}
windowrule {
name = flameshot-pin
match:title = ^(flameshot-pin)$
float = on
pin = on
pseudo = on
#fullscreen = on
#maximize = on
#center = on
#monitor = 3
#size = monitor_w*2 monitor_h*1
#move = 0 0
}
windowrulev2 = opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$
windowrulev2 = nofocus,class:^(xwaylandvideobridge)$
windowrulev2 = noinitialfocus,class:^(xwaylandvideobridge)$
windowrulev2 = noblur,class:^(xwaylandvideobridge)$
windowrule {
name=xwaylandvideobridge-hide
match:class = ^(xwaylandvideobridge)$
float = on
#fullscreen = on
#maximize = on
#center = on
#monitor = 3
#size = monitor_w*2 monitor_h*1
#move = 0 0
opacity = 0.0 0.0 0.0
no_focus = on
no_blur = on
no_initial_focus = on
}
windowrule = no_initial_focus on,match:class ^(com-eteks-sweethome3d-SweetHome3D)$
windowrulev2 = pin,class:^(scrcpy)$
windowrulev2 = move onscreen 100%-30,class:^(scrcpy)$
windowrulev2 = stayfocused,title:^rofi
windowrulev2 = float,class:^(flameshot)$
windowrulev2 = pin,class:^(flameshot)$
windowrulev2 = opacity 0.0 override 0.0 override,title:^(.+Espanso Sync Tool.+)$
windowrulev2 = float,title:^(Espanso Sync Tool)$
windowrulev2 = size 0.1 0.1,title:^(Espanso Sync Tool)$
windowrulev2 = move 100% 100%,title:^(Espanso Sync Tool)$
windowrulev2 = noblur,title:^(Espanso Sync Tool)$
windowrule = stay_focused on,match:title ^rofi
# Envars; to play along with wayland nicely
@@ -185,59 +238,6 @@ env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_QPA_PLATFORMTHEME,qt5ct
env = XDG_CURRENT_DESKTOP,Hyprland
plugin {
hyprbars {
# example config
bar_height = 20
# example buttons (R -> L)
# hyprbars-button = color, size, on-click
bar_color = rgb(000000)
hyprbars-button = rgb(ff4040), 10, 󰖭, hyprctl dispatch killactive
hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1
hyprbars-button = rgb(11ee11), 10, ¥, hyprctl dispatch togglefloating
}
hyprfocus {
enabled = yes
source=plugins.conf
focus_animation = shrink
bezier = bezIn, 0.5,0.0,1.0,0.5
bezier = bezOut, 0.0,0.5,0.5,1.0
flash {
flash_opacity = 0.7
in_bezier = bezIn
in_speed = 0.5
out_bezier = bezOut
out_speed = 3
}
shrink {
shrink_percentage = 0.98
in_bezier = bezIn
in_speed = 0.5
out_bezier = bezOut
out_speed = 3
}
}
hyprtrails {
color = rgba(ff0000ff)
}
hyprexpo {
columns = 3
gap_size = 5
bg_col = rgb(111111)
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad, 4 fingers
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
}
#exec-once = hyprpm reload -n

View File

@@ -1,4 +1,6 @@
monitor=DP-1,1920x1080@60,0x0,1
monitor=DP-3,1920x1080@60,1920x0,1
monitor=eDP-1,1920x1080@60,0x0,1
monitor=HDMI-A-1,1920x1080@60,1920x0,1
# Generated by nwg-displays on 2025-09-26 at 22:24:14. Do not edit manually.
monitor=DP-1,1920x1080@60.0,0x0,1.0
monitor=DP-3,1920x1080@60.0,1920x0,1.0
monitor=HEADLESS-2,1920x1080@12.0,3840x0,1.0
monitor=HEADLESS-3,1920x1080@12.0,5760x0,1.0

207
.config/hypr/plugins.conf Normal file
View File

@@ -0,0 +1,207 @@
plugin:dynamic-cursors {
# enables the plugin
enabled = true
# sets the cursor behaviour, supports these values:
# tilt - tilt the cursor based on x-velocity
# rotate - rotate the cursor based on movement direction
# stretch - stretch the cursor shape based on direction and velocity
# none - do not change the cursors behaviour
mode = rotate
# minimum angle difference in degrees after which the shape is changed
# smaller values are smoother, but more expensive for hw cursors
threshold = 2
# override the mode behaviour per shape
# this is a keyword and can be repeated many times
# by default, there are no rules added
# see the dedicated `shape rules` section below!
#shaperule = <shape-name>, <mode> (optional), <property>: <value>, ...
#shaperule = <shape-name>, <mode> (optional), <property>: <value>, ...
# for mode = rotate
rotate {
# length in px of the simulated stick used to rotate the cursor
# most realistic if this is your actual cursor size
length = 20
# clockwise offset applied to the angle in degrees
# this will apply to ALL shapes
offset = 0.0
}
# for mode = tilt
tilt {
# controls how powerful the tilt is, the lower, the more power
# this value controls at which speed (px/s) the full tilt is reached
# the full tilt being 60° in both directions
limit = 5000
# relationship between speed and tilt, supports these values:
# linear - a linear function is used
# quadratic - a quadratic function is used (most realistic to actual air drag)
# negative_quadratic - negative version of the quadratic one, feels more aggressive
# see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done
function = negative_quadratic
# time window (ms) over which the speed is calculated
# higher values will make slow motions smoother but more delayed
window = 100
}
# for mode = stretch
stretch {
# controls how much the cursor is stretched
# this value controls at which speed (px/s) the full stretch is reached
# the full stretch being twice the original length
limit = 3000
# relationship between speed and stretch amount, supports these values:
# linear - a linear function is used
# quadratic - a quadratic function is used
# negative_quadratic - negative version of the quadratic one, feels more aggressive
# see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done
function = quadratic
# time window (ms) over which the speed is calculated
# higher values will make slow motions smoother but more delayed
window = 100
}
# configure shake to find
# magnifies the cursor if its is being shaken
shake {
# enables shake to find
enabled = true
# use nearest-neighbour (pixelated) scaling when shaking
# may look weird when effects are enabled
nearest = true
# controls how soon a shake is detected
# lower values mean sooner
threshold = 6.0
# magnification level immediately after shake start
base = 4.0
# magnification increase per second when continuing to shake
speed = 4.0
# how much the speed is influenced by the current shake intensitiy
influence = 0.0
# maximal magnification the cursor can reach
# values below 1 disable the limit (e.g. 0)
limit = 0.0
# time in millseconds the cursor will stay magnified after a shake has ended
timeout = 2000
# show cursor behaviour `tilt`, `rotate`, etc. while shaking
effects = true
# enable ipc events for shake
# see the `ipc` section below
ipc = true
}
# use hyprcursor to get a higher resolution texture when the cursor is magnified
# see the `hyprcursor` section below
hyprcursor {
# use nearest-neighbour (pixelated) scaling when magnifing beyond texture size
# this will also have effect without hyprcursor support being enabled
# 0 / false - never use pixelated scaling
# 1 / true - use pixelated when no highres image
# 2 - always use pixleated scaling
nearest = true
# enable dedicated hyprcursor support
enabled = true
# resolution in pixels to load the magnified shapes at
# be warned that loading a very high-resolution image will take a long time and might impact memory consumption
# -1 means we use [normal cursor size] * [shake:base option]
resolution = -1
# shape to use when clientside cursors are being magnified
# see the shape-name property of shape rules for possible names
# specifying clientside will use the actual shape, but will be pixelated
fallback = clientside
}
}
plugin {
hyprbars {
# example config
bar_height = 20
# example buttons (R -> L)
# hyprbars-button = color, size, on-click
bar_color = rgb(000000)
hyprbars-button = rgb(ff4040), 10, 󰖭, hyprctl dispatch killactive
hyprbars-button = rgb(eeee11), 10, , hyprctl dispatch fullscreen 1
hyprbars-button = rgb(11ee11), 10, ¥, hyprctl dispatch togglefloating
}
hyprfocus {
enabled = yes
focus_animation = shrink
bezier = bezIn, 0.5,0.0,1.0,0.5
bezier = bezOut, 0.0,0.5,0.5,1.0
flash {
flash_opacity = 0.7
in_bezier = bezIn
in_speed = 0.5
out_bezier = bezOut
out_speed = 3
}
shrink {
shrink_percentage = 0.98
in_bezier = bezIn
in_speed = 0.5
out_bezier = bezOut
out_speed = 3
}
}
hyprtrails {
color = rgba(ff0000ff)
}
hyprexpo {
columns = 3
gap_size = 5
bg_col = rgb(111111)
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad, 4 fingers
gesture_distance = 300 # how far is the "max"
gesture_positive = true # positive = swipe down. Negative = swipe up.
}
}
plugin:hyprwinwrap {
# class is an EXACT match and NOT a regex!
class = kitty-bg
# you can also use title
title = kitty-bg
# you can add the position of the window in a percentage
pos_x = 25
pos_y = 30
# you can add the size of the window in a percentage
size_x = 40
size_y = 70
}
#exec-once = hyprpm reload -n

View File

View File

@@ -26,7 +26,7 @@ icon_size = 26
icon_text_spacing = 10
icon_norm_alpha = 100
icon_sel_alpha = 100
icon_theme = Papirus
icon_theme = Vimix-ruby
icon_theme_fallback = xtg
color_menu_bg = #24273A 100
color_norm_bg = #24273A 0

View File

@@ -1,9 +1,10 @@
[Added Associations]
application/javascript=vim.desktop;
application/vnd.rar=engrampa.desktop;
image/jpeg=feh.desktop;
image/jpeg=feh.desktop;nsxiv.desktop;
image/png=feh.desktop;
text/html=vim.desktop;
text/plain=neovide.desktop;
[Default Applications]
application/pdf=xreader.desktop;
@@ -13,8 +14,8 @@ application/x-remmina=org.remmina.Remmina.desktop;
application/x-wine-extension-ini=vim.desktop;
application/x-yaml=vim.desktop;
application/xhtml+xml=firefox-developer-edition.desktop;
image/jpeg=feh.desktop;
image/png=feh.desktop;
image/jpeg=nsxiv.desktop
image/png=nsxiv.desktop;
image/svg+xml=feh.desktop;
inode/directory=nemo.desktop;
text/plain=vim.desktop;
@@ -22,13 +23,17 @@ text/yaml=vim.desktop;
video/mp4=mpv.desktop;
video/mpeg=mpv.desktop;
video/webm=mpv.desktop;
x-scheme-handler/discord=equibop.desktop
x-scheme-handler/gitkraken=GitKraken.desktop;
x-scheme-handler/http=firefox-developer-edition.desktop;
x-scheme-handler/https=firefox-developer-edition.desktop;
x-scheme-handler/mpv=mpv-handler.desktop;
x-scheme-handler/nc=com.nextcloud.desktopclient.nextcloud.desktop;
x-scheme-handler/rdp=org.remmina.Remmina.desktop;
x-scheme-handler/remmina=org.remmina.Remmina.desktop;
x-scheme-handler/ror2mm=r2modman.desktop
x-scheme-handler/spice=org.remmina.Remmina.desktop;
x-scheme-handler/terminal=kitty.desktop;
x-scheme-handler/tetrio=tetrio-desktop.desktop;
x-scheme-handler/vnc=org.remmina.Remmina.desktop;
x-scheme-handler/tetrio=tetrio-desktop.desktop
application/uproject=com.epicgames.UnrealEngineEditor.desktop

View File

@@ -151,13 +151,14 @@
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"family": "ipv4",
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} 󰈀",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"on-click-right": "kitty nmtui"
"on-click-right": "$TERM nmtui"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float