more stuff

This commit is contained in:
2026-02-20 00:56:09 +01:00
parent d9a2cb3e32
commit 10a398e821
26 changed files with 718 additions and 0 deletions

79
dotfiles/hypr/colors.conf Normal file
View File

@@ -0,0 +1,79 @@
$rosewater = rgb(dc8a78)
$rosewaterAlpha = dc8a78
$flamingo = rgb(dd7878)
$flamingoAlpha = dd7878
$pink = rgb(ea76cb)
$pinkAlpha = ea76cb
$mauve = rgb(8839ef)
$mauveAlpha = 8839ef
$red = rgb(d20f39)
$redAlpha = d20f39
$maroon = rgb(e64553)
$maroonAlpha = e64553
$peach = rgb(fe640b)
$peachAlpha = fe640b
$yellow = rgb(df8e1d)
$yellowAlpha = df8e1d
$green = rgb(40a02b)
$greenAlpha = 40a02b
$teal = rgb(179299)
$tealAlpha = 179299
$sky = rgb(04a5e5)
$skyAlpha = 04a5e5
$sapphire = rgb(209fb5)
$sapphireAlpha = 209fb5
$blue = rgb(1e66f5)
$blueAlpha = 1e66f5
$lavender = rgb(7287fd)
$lavenderAlpha = 7287fd
$text = rgb(4c4f69)
$textAlpha = 4c4f69
$subtext1 = rgb(5c5f77)
$subtext1Alpha = 5c5f77
$subtext0 = rgb(6c6f85)
$subtext0Alpha = 6c6f85
$overlay2 = rgb(7c7f93)
$overlay2Alpha = 7c7f93
$overlay1 = rgb(8c8fa1)
$overlay1Alpha = 8c8fa1
$overlay0 = rgb(9ca0b0)
$overlay0Alpha = 9ca0b0
$surface2 = rgb(acb0be)
$surface2Alpha = acb0be
$surface1 = rgb(bcc0cc)
$surface1Alpha = bcc0cc
$surface0 = rgb(ccd0da)
$surface0Alpha = ccd0da
$base = rgb(eff1f5)
$baseAlpha = eff1f5
$mantle = rgb(e6e9ef)
$mantleAlpha = e6e9ef
$crust = rgb(dce0e8)
$crustAlpha = dce0e8
$openrgb_color = 09ce30

View File

@@ -0,0 +1,23 @@
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
before_sleep_cmd = hyprlock # 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 = 300 # 5min
on-timeout = hyprlock # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 330 # 5.5min
on-timeout = openrgb -c black
on-resume = openrgb -c green
}

View File

@@ -0,0 +1,53 @@
env = XCURSOR_SIZE, 32
env = HYPRCURSOR_SIZE, 32
env = HYPRCURSOR_THEME, theme_phinger-cursors-light
env = XDG_CURRENT_DESKTOP,Hyprland
$mainMod = SUPER # Sets "Windows" key as main modifier
$terminal = uwsm app -- kitty
$menu = hyprlauncher
$music_player = flatpak run com.spotify.Client
$notes = obsidian
$browser = zen-browser
input {
kb_layout = pl
kb_variant =
kb_model =
kb_options = caps:escape_shifted_capslock
kb_rules =
follow_mouse = 1
left_handed = true
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
}
}
cursor {
no_hardware_cursors = true
inactive_timeout = 5
warp_on_change_workspace = 1
zoom_factor = 1.0
hide_on_key_press = 1
}
misc {
force_default_wallpaper = 0
disable_hyprland_logo = true
middle_click_paste = false
}
xwayland {
force_zero_scaling = 1
}
# IMPORTS
source = ./colors.conf
source = ./hyprland/binds/*
source = ./hyprland/*

View File

@@ -0,0 +1,12 @@
# Requires pactl
bindel=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+ && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga
bindel=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- && ~/.local/bin/wp-vol.sh && paplay /usr/share/sounds/freedesktop/stereo/bell.oga
bindel=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_SOURCE@ toggle
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_SINK@ toggle && ~/.local/bin/check-if-muted.sh
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , Pause, exec, playerctl play-pause
bindl = $mainMod, Pause, exec, playerctl play-pause --player spotify
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous

View File

@@ -0,0 +1,2 @@
bind = $mainMod, V, exec, cliphist list | hyprlauncher -m | cliphist decode | wl-copy
bind = $mainMod ALT_L, V, exec, cliphist wipe && notify-send "Clipboard" "Clipboard cleared!"

View File

@@ -0,0 +1,12 @@
# Zoom
binde = $mainMod alt, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 1.1}')
binde = $mainMod alt, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor | awk '/^float.*/ {print $2 * 0.9}')
bind = $mainMod alt, 0, exec, hyprctl -q keyword cursor:zoom_factor 1
# Brightness
bindel = ,XF86MonBrightnessDown, exec, hyprctl hyprsunset gamma -10
bindel = ,XF86MonBrightnessUp, exec, hyprctl hyprsunset gamma +10
# Wallpaper
bind = $mainMod, M, exec, [float] waypaper

View File

@@ -0,0 +1,109 @@
# Move windows around
## Move focus with mainMod + vim keys
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d
## Resize with mainMod + shift + vim keys
binde = $mainMod L_SHIFT, l, resizeactive, 10 0 # right
binde = $mainMod L_SHIFT, h, resizeactive, -10 0 # left
binde = $mainMod L_SHIFT, k, resizeactive, 0 -10 #up
binde = $mainMod L_SHIFT, j, resizeactive, 0 10 # down
## Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
## Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
## Move to different monitor
bind = $mainMod L_SHIFT, right, exec, hyprctl dispatch movecurrentworkspacetomonitor +1
bind = $mainMod L_SHIFT, left, exec, hyprctl dispatch movecurrentworkspacetomonitor -1
## Switch 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 active 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
## Change display settings
bindd = $mainMod, F, Make app fullscreen, fullscreen
bindd = $mainMod, T, Toggle floating, togglefloating
bindd = $mainMod, P, Toggle pseudo, pseudo
bindd = $mainMod, S, Toggle split, togglesplit
bindd = $mainMod, Q, Kill active window, killactive
## special workspace
bind = $mainMod, TAB, togglespecialworkspace, magic
bind = $mainMod SHIFT, TAB, movetoworkspace, special:magic
## master layout
bind = $mainMod, S, layoutmsg, swapwithmaster
bind = $mainMod, n, layoutmsg, swapnext
bind = $mainMod, p, layoutmsg, swapprev
# APPS
## general
bind = $mainMod, RETURN, exec, [workspace 4] $terminal
bind = $mainMod CONTROL_L, RETURN, exec, $terminal
bind = $mainMod, space , exec, $menu
bind = $mainMod ALT_L, c, exec, openrgb -c $openrgb_color # restore openrgb color
### messages
bind = $mainMod Control_L, s, exec,[workspace 1] signal-desktop --password-store="kwallet6"
bind = $mainMod Control_L, s, focuswindow, class:^(signal)$
bind = $mainMod Control_L, s, focuswindow, title:^(signal)$
bind = $mainMod Control_L, v, sendshortcut, ctrl, k, class:^(vesktop)$
bind = $mainMod Control_L, v, exec, uwsm app -- vesktop
bind = $mainMod Control_L, v, focuswindow, class:^(vesktop)$
### games
bind = $mainMod Control_L, g, exec, uwsm app -- steam
bind = $mainMod Control_L, g, focuswindow, class:^(steam)$
### browser
bind = $mainMod Control_L, b, exec, uwsm app -- $browser
bind = $mainMod Control_L, b, focuswindow, class:^(zen)$
### notes
bind = $mainMod Control_L, n, exec, [workspace 6] uwsm app -- $notes
bind = $mainMod Control_L, n, focuswindow, class:^(obsidian)$
### music player
bind = $mainMod Control_L, m, exec, [workspace 9] uwsm app -- $music_player
### youtube ig
bind = $mainMod Control_L, f, exec, uwsm app -- freetube
bind = $mainMod Control_L, f, focuswindow, class:^(freetube)$
### x
bind = $mainMod Control_L, x, exec, uwsm app -- ~/.local/share/applications/x.desktop
bind = $mainMod Control_L, x, focuswindow, class:^(chrome-x.com__-Default)$
## restart status bar
bind = $mainMod CONTROL_L L_SHIFT, B, exec, killall ashell && uwsm app -- ashell

View File

@@ -0,0 +1,5 @@
bind = $mainMod L_SHIFT ctrl, l, exec, hyprlock # lock
bind = $mainMod L_SHIFT ctrl, r, exec, openrgb -c black && systemctl reboot
bind = $mainMod L_SHIFT ctrl, p, exec, openrgb -c black && systemctl poweroff
bind = $mainMod L_SHIFT ctrl, s, exec, openrgb -c black && pidof hyprlock || sleep 1 && systemctl sleep
bind = $mainMod L_SHIFT ctrl, m, exec, uwsm stop

View File

@@ -0,0 +1,3 @@
bindt = , PRINT, exec, ~/.local/bin/screenshot.sh region
bindt = $mainMod, PRINT, exec, ~/.local/bin/screenshot.sh fullscreen
bindt = alt_l, PRINT, exec, ~/.local/bin/screenshot.sh window

View File

@@ -0,0 +1,25 @@
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 1
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 1
render_power = 1
color = $overlay0
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 1
passes = 1
vibrancy = 0.1696
}
}

View File

@@ -0,0 +1,7 @@
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = uwsm app -- kdeconnect-indicator
exec-once = uwsm app -- ashell
exec-once = swww-daemon
exec-once = openrgb -c $openrgb_color

View File

@@ -0,0 +1,47 @@
general {
gaps_in = 4
gaps_out = 6
border_size = 4
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = $blue $sky
col.inactive_border = $overlay1
# 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
}
animations {
enabled = yes, please :)
# 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, 7, default
animation = border, 1, 3.39, easeOutQuint
animation = windows, 1, 2.79, easeOutQuint
animation = windowsIn, 1, 2.1, easeOutQuint, popin 87%
animation = windowsOut, 1, 1, linear, popin 87%
animation = fadeIn, 1, 1.4, almostLinear
animation = fadeOut, 1, 1.2, almostLinear
animation = fade, 1, 3.03, quick
animation = layers, 1, 2, easeOutQuint
animation = layersIn, 1, 2, easeOutQuint, fade
animation = layersOut, 1, 1, linear, fade
animation = fadeLayersIn, 1, 1.4, almostLinear
animation = fadeLayersOut, 1, 1.1, almostLinear
animation = workspaces, 1, 1.4, quick, slidevert
animation = workspacesIn, 1, 0.5, quick, slidevert
animation = workspacesOut, 1, 0.5, quick, slidevert
}

View File

@@ -0,0 +1,10 @@
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
master {
new_status = slave
allow_small_split = true
orientation = left
}

View File

@@ -0,0 +1,40 @@
monitorv2 {
output = DP-1
mode = 2560x1440@180.06
position = 0x0
scale = 1
vrr = 1
supports_wide_color = 1
bitdepth = 10
sdr_min_luminance = 0.005
sdr_max_luminance = 220
cm = hdr
supports_hdr = 1
}
monitorv2 {
output = DP-2
mode = 1920x1080@144
position = auto-left
vrr = 1
scale = 1.0
}
monitorv2 {
output = HDMI-A-2
mode = highres
position = auto-up
scale = 1
}
monitorv2 {
output =
position = auto-right
scale = 1
}
quirks {
prefer_hdr = 1
}

View File

@@ -0,0 +1,67 @@
windowrule {
name = pavucontrol-float
match:class = ^(org.pulseaudio.pavucontrol)$
float = 1
size = 80% 60%
stay_focused = 1
center = 1
pin = 1
}
windowrule {
name = share-picker-float
match:class = ^(hyprland-share-picker)$
float = 1
center = 1
pin = 1
}
windowrule {
name = steam-friends-list
match:title = ^(Lista znajomych)$
float = 1
center = 1
size = 40% 60%
}
windowrule {
name = vesktop-dont-focus-pls
match:class = ^(vesktop)$
no_initial_focus = 1
focus_on_activate = 0
render_unfocused = 1
}
windowrule {
name = xdg-desktop-portal-gtk
match:class = ^(xdg-desktop-portal-gtk)$
float = 1
center = 1
size = 55% 50%
}
windowrule {
name = picture-in-picture
match:title = ^(Obraz w obrazie)$
pseudo = 1
no_initial_focus = 1
}
windowrule {
name = login-google-zen
match:title = ^(Logowanie Konta Google — Zen Browser)$
float = 1
center = 1
}
windowrule {
name = prism-launcher
match:class = ^(org.prismlauncher.PrismLauncher)$
workspace = 3
}
windowrule {
name = gamescope
match:class = ^(gamescope)$
workspace = 3
}

View File

@@ -0,0 +1,7 @@
ecosystem {
enforce_permissions = true
}
permission = /usr/bin/grim, screencopy, allow
permission = /usr/bin/hyprlock, screencopy, allow
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow

View File

@@ -0,0 +1,54 @@
workspace = 1, monitor:DP-2
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-1
workspace = 7, monitor:HDMI-A-2
workspace = 9, monitor:DP-2
workspace = 10, monitor:DP-2
# smart gaps or smt
workspace = w[tv1], gapsout:0, gapsin:0
workspace = f[1], gapsout:0, gapsin:0
windowrule = border_size 0, match:float 0, match:workspace w[tv1]
windowrule = rounding 0, match:float 0, match:workspace w[tv1]
windowrule = border_size 0, match:float 0, match:workspace f[1]
windowrule = rounding 0, match:float 0, match:workspace f[1]
# assign windows to workspaces
# Workspace 1
windowrule = match:class ^(signal)$, workspace 1
windowrule = match:class ^(vesktop)$, workspace 1 silent
windowrule = match:class ^(chrome-facebook.com__-Default)$, workspace 1
# Workspace 2
windowrule = match:class ^(zen)$, workspace 2
windowrule = match:class ^(com.github.IsmaelMartinez.teams_for_linux)$, workspace 2
windowrule = match:class ^(FreeTube)$, workspace 2
windowrule = match:class ^(chrome-x.com__-Default)$, workspace 2
windowrule = match:class ^(chrome-www.inoreader.com__all_articles-Default)$, workspace 2
windowrule = match:class ^(chrome-mail.proton.me__u_0_inbox.com-Default)$, workspace 2
windowrule = match:class ^(chrome-app.tuta.com__-Default)$, workspace 2
# Workspace 3
windowrule = match:class ^(steam)$, workspace 3 silent
windowrule = match:class ^(heroic)$, workspace 3
windowrule = match:class ^(net.lutris.Lutris)$, workspace 3
windowrule = match:class ^(rpcs3)$, workspace 3
# Workspace 5
windowrule = match:class ^(winboat)$, workspace 5
# Workspace 6
windowrule = match:class ^(obsidian)$, workspace 6
# Workspace 8
windowrule = match:class ^(gimp)$, workspace 8
# Workspace 9
windowrule = match:class .*potify, workspace 9 silent
# Workspace 10
windowrule = match:class ^(com.obsproject.Studio)$, workspace 10

View File

@@ -0,0 +1 @@
desktop_launch_prefix = uwsm app --

106
dotfiles/hypr/hyprlock.conf Normal file
View File

@@ -0,0 +1,106 @@
# sample hyprlock.conf
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
#
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
#
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
#
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
#
$font = Monospace
general {
hide_cursor = false
}
# uncomment to enable fingerprint authentication
# auth {
# fingerprint {
# enabled = true
# ready_message = Scan fingerprint to unlock
# present_message = Scanning...
# retry_delay = 250 # in milliseconds
# }
# }
animations {
enabled = true
bezier = linear, 1, 1, 0, 0
animation = fadeIn, 1, 5, linear
animation = fadeOut, 1, 5, linear
animation = inputFieldDots, 1, 2, linear
}
background {
monitor =
path = screenshot
blur_passes = 3
}
input-field {
monitor =
size = 20%, 5%
outline_thickness = 3
inner_color = rgba(0, 0, 0, 0.0) # no fill
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
font_color = rgb(143, 143, 143)
fade_on_empty = false
rounding = 15
font_family = $font
placeholder_text = Input password...
fail_text = $PAMFAIL
# uncomment to use a letter instead of a dot to indicate the typed password
# dots_text_format = *
# dots_size = 0.4
dots_spacing = 0.3
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
# hide_input = true
position = 0, -20
halign = center
valign = center
}
# TIME
label {
monitor =
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90
font_family = $font
position = -30, 0
halign = right
valign = top
}
# DATE
label {
monitor =
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
font_size = 25
font_family = $font
position = -30, -150
halign = right
valign = top
}
label {
monitor =
text = $LAYOUT[en,ru]
font_size = 24
onclick = hyprctl switchxkblayout all next
position = 250, -20
halign = center
valign = center
}

View File

@@ -0,0 +1,4 @@
preload = /home/szymon/Obrazy/tapety/sfw/forrest.png
wallpaper = ,/home/szymon/Obrazy/tapety/sfw/forrest.png
splash = off
ipc = on

View File

@@ -0,0 +1,13 @@
max-gamma = 150
profile {
time = 7:00
identity = true
}
profile {
time = 21:00
identity = false
temperature = 4500
gamma = 0.8
}