mirror of
https://github.com/hydroxycarbamide/dotfiles.git
synced 2025-07-06 13:09:25 -04:00
add labwc and update stuff
This commit is contained in:
parent
189e89212d
commit
8f02c07390
24 changed files with 1687 additions and 202 deletions
|
@ -24,6 +24,10 @@ group {
|
|||
}
|
||||
}
|
||||
|
||||
ecosystem {
|
||||
no_update_news = true
|
||||
}
|
||||
|
||||
# Tearing
|
||||
env = WLR_DRM_NO_ATOMIC,1
|
||||
windowrulev2 = immediate, class:^(cs2|osu\!|love|osu-lazer)$
|
||||
|
@ -97,7 +101,6 @@ dwindle {
|
|||
}
|
||||
|
||||
master {
|
||||
always_center_master = false
|
||||
mfact = 0.55
|
||||
new_status = master
|
||||
}
|
||||
|
@ -106,7 +109,7 @@ misc {
|
|||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
# force_hypr_chan = true
|
||||
vrr = 0
|
||||
vrr = 2
|
||||
# vfr = true
|
||||
|
||||
# animate_mouse_windowdragging = true
|
||||
|
|
|
@ -8,27 +8,32 @@ bindm = $mod, mouse:273, resizewindow
|
|||
# hyprctl / misc dispatchers
|
||||
bind = $mod SHIFT, R, exec, hyprctl reload
|
||||
bind = $mod SHIFT, Q, exit,
|
||||
# bind = $mod SHIFT, Q, exec, uwsm stop
|
||||
# bind = $mod, Q, exec, rofi -show power-menu -modi power-menu:rofi-power-menu
|
||||
bind = $mod, Q, exec, wlogout -p layer-shell
|
||||
bind = $mod, C, killactive,
|
||||
|
||||
# screenshot
|
||||
bind = $mod SHIFT, S, exec, hyprshot -m region
|
||||
bind = $mod CONTROL SHIFT, S, exec, grim -g "$(slurp)" /tmp/grim.png && tesseract -l eng+jpn /tmp/grim.png - | wl-copy && wl-paste | xargs -I{} notify-send "Tesseract" "Copied '{}'"
|
||||
bind = $mod CONTROL SHIFT, S, exec, tesseract-shot.sh
|
||||
bind = $mod, Print, exec, hyprshot -m window
|
||||
|
||||
# apps
|
||||
bind = $mod, Return, exec, footclient
|
||||
# bind = $mod, Return, exec, wezterm start --new-tab && hyprctl dispatch focuswindow initialclass:org.wezfurlong.wezterm
|
||||
bind = $mod SHIFT, Return, exec, footclient -F
|
||||
bind = $mod SHIFT, E, exec, xdg-open .
|
||||
# bind = $mod, E, exec, footclient -a "fm-term" tmux new-session -A -s filemanager 'nnn -da -P p'
|
||||
# bind = $mod, E, exec, kitty --class="fm-term" nnn -a -P p
|
||||
bind = $mod, E, exec, footclient -a "fm-term" yazi
|
||||
# bind = $mod, E, exec, footclient -a "fm-term" yazi
|
||||
bind = $mod, E, exec, wezterm start --class fm-term yazi
|
||||
bind = $mod, Space, togglefloating,
|
||||
bind = $mod, T, exec, swaync-client --toggle-panel
|
||||
# bind = $mod SHIFT, D, exec, tofi-drun --drun-launch=true
|
||||
bind = $mod, D, exec, rofi -show drun -theme catppuccin-macchiato
|
||||
# bind = $mod, D, exec, anyrun
|
||||
# bind = $mod, D, exec, rofi -show drun -theme catppuccin-macchiato
|
||||
bind = $mod, D, exec, anyrun
|
||||
bind = $mod, S, exec, anyrun
|
||||
|
||||
bind = $mod, W, exec, rofi -show window -theme catppuccin-macchiato
|
||||
# bind = ALT_L, Tab, exec, rofi -show window -theme catppuccin-macchiato
|
||||
# bind = ALT_L, Tab, exec, eww open overview
|
||||
|
@ -43,7 +48,14 @@ bind = CAPS, , exec, swayosd-client --caps-lock-led
|
|||
|
||||
# Scratch pad
|
||||
|
||||
bind = $mod CONTROL, Return, exec, footclient -a "floating-foot"
|
||||
# bind = $mod CONTROL, Return, exec, footclient -a "floating-foot"
|
||||
bind = $mod CONTROL, Return, exec, wezterm start --class floating-foot
|
||||
|
||||
bind = $mod, R, togglespecialworkspace, magic
|
||||
bind = $mod, R, movetoworkspace, +0
|
||||
bind = $mod, R, togglespecialworkspace, magic
|
||||
bind = $mod, R, movetoworkspace, special:magic
|
||||
bind = $mod, R, togglespecialworkspace, magic
|
||||
|
||||
# audio
|
||||
# bind = , 123, exec, pactl set-sink-volume @DEFAULT_SINK@ +2%
|
||||
|
@ -63,7 +75,7 @@ bind = , 173, exec, playerctl previous
|
|||
bind = $mod, U, focusurgentorlast,
|
||||
bind = $mod CONTROL, Tab, movewindow, mon:+1
|
||||
bind = $mod, Escape, cyclenext
|
||||
bind = $mod, S, togglesplit
|
||||
# bind = $mod, S, togglesplit
|
||||
|
||||
bind = $mod, F, fullscreen, 1
|
||||
bind = $mod SHIFT, F, fullscreen
|
||||
|
@ -109,6 +121,8 @@ bind = $mod, 5, workspace, 5
|
|||
bind = $mod, 6, workspace, 6
|
||||
bind = $mod, 7, workspace, 7
|
||||
bind = $mod, 8, workspace, 8
|
||||
bind = $mod, 9, workspace, 9
|
||||
bind = $mod, 0, workspace, 10
|
||||
|
||||
# bind = $mod, 1, split-workspace, 1
|
||||
# bind = $mod, 2, split-workspace, 2
|
||||
|
@ -130,6 +144,8 @@ bind = $mod SHIFT, 5, movetoworkspace, 5
|
|||
bind = $mod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# bind = $mod SHIFT, 1, split-movetoworkspace, 1
|
||||
# bind = $mod SHIFT, 2, split-movetoworkspace, 2
|
||||
|
@ -168,10 +184,10 @@ bind = $mod SHIFT, period, movewindow, mon:+1
|
|||
# bind = $mod SHIFT, M, togglespecialworkspace, minimized
|
||||
|
||||
# bind = $mod SHIFT, W, exec, pypr expose
|
||||
bind = $mod SHIFT, V, exec, pypr toggle volume
|
||||
bind = $mod, S, exec, pypr toggle term
|
||||
bind = $mod, O, exec, pypr toggle obsidian
|
||||
bind = $mod SHIFT, O, exec, pypr toggle logseq
|
||||
# bind = $mod SHIFT, V, exec, pypr toggle volume
|
||||
# bind = $mod SHIFT, S, exec, pypr toggle term
|
||||
# bind = $mod SHIFT, O, exec, pypr toggle obsidian
|
||||
# bind = $mod SHIFT, O, exec, pypr toggle logseq
|
||||
# bind = $mod SHIFT, W, togglespecialworkspace, exposed
|
||||
|
||||
# hycov
|
||||
|
|
|
@ -1,26 +1,29 @@
|
|||
# exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
|
||||
# exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
# exec-once = dbus-update-activation-environment --systemd --all
|
||||
exec-once = hyprpaper &
|
||||
exec-once = swaync &
|
||||
# exec-once = sleep 5 && mpvpaper "*" "/home/eric/Pictures/wallpapers/#animated/castorice-honkai-star-rail-moewalls-com.mp4" -o "loop-file=inf no-config hwdec=auto" --fork &
|
||||
exec-once = systemctl --user start swaync
|
||||
# exec-once = transmission-daemon
|
||||
# exec-once = fcitx5
|
||||
exec-once = kdeconnectd &
|
||||
exec-once = kdeconnect-indicator &
|
||||
exec-once = pypr &
|
||||
# exec-once = kdeconnectd &
|
||||
# exec-once = kdeconnect-indicator &
|
||||
# exec-once = pypr &
|
||||
exec-once = swayosd-server &
|
||||
# exec-once = eww daemon
|
||||
exec-once = nm-applet
|
||||
# exec-once = nm-applet
|
||||
exec-once=hyprctl setcursor Qogir-dark 24
|
||||
|
||||
exec-once = swayidle before-sleep 'loginctl lock-session' lock 'swaylock'
|
||||
# exec-once = swayidle before-sleep 'loginctl lock-session' lock 'swaylock'
|
||||
exec-once = systemctl --user restart hypridle
|
||||
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
|
||||
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
|
||||
exec-once = systemctl start --user foot-server
|
||||
exec-once = sunshine &
|
||||
# exec-once = sunshine &
|
||||
# exec-once = systemctl start --user gammastep
|
||||
# exec-once = flatpak run me.kozec.syncthingtk -m &
|
||||
# exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||
exec-once = /usr/lib/polkit-kde-authentication-agent-1 &
|
||||
exec-once = waybar &
|
||||
exec-once = systemctl --user start waybar
|
||||
exec-once = hyprpm reload -n
|
||||
# exec-once = uwsm finalize
|
||||
|
|
24
dot_config/hypr/hypridle.conf
Normal file
24
dot_config/hypr/hypridle.conf
Normal file
|
@ -0,0 +1,24 @@
|
|||
general {
|
||||
lock_cmd = swaylock
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend
|
||||
# after_sleep_cmd = hyprctl dispatch dpms on
|
||||
}
|
||||
|
||||
# Lock the screen
|
||||
# listener {
|
||||
# timeout = 300
|
||||
# on-timeout = loginctl lock-session
|
||||
# }
|
||||
|
||||
# Turn off screen
|
||||
# listener {
|
||||
# timeout = 90
|
||||
# on-timeout = hyprctl dispatch dpms off
|
||||
# on-resume = hyprctl dispatch dpms on
|
||||
# }
|
||||
|
||||
# Suspend the system
|
||||
# listener {
|
||||
# timeout = 600
|
||||
# on-timeout = systemctl suspend
|
||||
# }
|
100
dot_config/hypr/hyprlock.conf
Normal file
100
dot_config/hypr/hyprlock.conf
Normal file
|
@ -0,0 +1,100 @@
|
|||
source = $HOME/.config/hypr/macchiato.conf
|
||||
|
||||
$accent = $rosewater
|
||||
$accentAlpha = $rosewaterAlpha
|
||||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/Pictures/wallpapers/gray0_ctp_on_line_background.png
|
||||
blur_passes = 0
|
||||
color = $base
|
||||
}
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 30, -30
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# FINGERPRINT
|
||||
{
|
||||
monitor = "";
|
||||
text = "$FPRINTPROMPT";
|
||||
color = "$text";
|
||||
font_size = 14;
|
||||
font_family = font;
|
||||
position = "0, -107";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
size = 100
|
||||
border_color = $accent
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i> Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -47
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
|
@ -1,5 +1,8 @@
|
|||
preload = /home/eric/Pictures/wallpapers/ayaka.png
|
||||
# preload = /home/eric/Pictures/wallpapers/ayaka.png
|
||||
|
||||
wallpaper = DP-1,/home/eric/Pictures/wallpapers/ayaka.png
|
||||
wallpaper = HDMI-A-1,/home/eric/Pictures/wallpapers/ayaka.png
|
||||
# wallpaper = DP-1,/home/eric/Pictures/wallpapers/ayaka.png
|
||||
# wallpaper = HDMI-A-1,/home/eric/Pictures/wallpapers/ayaka.png
|
||||
preload = /home/eric/Pictures/wallpapers/void0/Castorice/xiadie4k.jpeg
|
||||
wallpaper = DP-1,/home/eric/Pictures/wallpapers/void0/Castorice/xiadie4k.jpeg
|
||||
wallpaper = HDMI-A-1,/home/eric/Pictures/wallpapers/void0/Castorice/xiadie4k.jpeg
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
input {
|
||||
kb_file =
|
||||
kb_layout =
|
||||
kb_variant =
|
||||
kb_layout = us #,us
|
||||
kb_variant = #,colemak
|
||||
kb_model =
|
||||
kb_options = compose:ralt #,caps:escape
|
||||
kb_options = grp:alt_shift_toggle,compose:ralt #,caps:escape
|
||||
kb_rules =
|
||||
|
||||
repeat_delay = 200
|
||||
|
|
78
dot_config/hypr/macchiato.conf
Normal file
78
dot_config/hypr/macchiato.conf
Normal file
|
@ -0,0 +1,78 @@
|
|||
|
||||
$rosewater = rgb(f4dbd6)
|
||||
$rosewaterAlpha = f4dbd6
|
||||
|
||||
$flamingo = rgb(f0c6c6)
|
||||
$flamingoAlpha = f0c6c6
|
||||
|
||||
$pink = rgb(f5bde6)
|
||||
$pinkAlpha = f5bde6
|
||||
|
||||
$mauve = rgb(c6a0f6)
|
||||
$mauveAlpha = c6a0f6
|
||||
|
||||
$red = rgb(ed8796)
|
||||
$redAlpha = ed8796
|
||||
|
||||
$maroon = rgb(ee99a0)
|
||||
$maroonAlpha = ee99a0
|
||||
|
||||
$peach = rgb(f5a97f)
|
||||
$peachAlpha = f5a97f
|
||||
|
||||
$yellow = rgb(eed49f)
|
||||
$yellowAlpha = eed49f
|
||||
|
||||
$green = rgb(a6da95)
|
||||
$greenAlpha = a6da95
|
||||
|
||||
$teal = rgb(8bd5ca)
|
||||
$tealAlpha = 8bd5ca
|
||||
|
||||
$sky = rgb(91d7e3)
|
||||
$skyAlpha = 91d7e3
|
||||
|
||||
$sapphire = rgb(7dc4e4)
|
||||
$sapphireAlpha = 7dc4e4
|
||||
|
||||
$blue = rgb(8aadf4)
|
||||
$blueAlpha = 8aadf4
|
||||
|
||||
$lavender = rgb(b7bdf8)
|
||||
$lavenderAlpha = b7bdf8
|
||||
|
||||
$text = rgb(cad3f5)
|
||||
$textAlpha = cad3f5
|
||||
|
||||
$subtext1 = rgb(b8c0e0)
|
||||
$subtext1Alpha = b8c0e0
|
||||
|
||||
$subtext0 = rgb(a5adcb)
|
||||
$subtext0Alpha = a5adcb
|
||||
|
||||
$overlay2 = rgb(939ab7)
|
||||
$overlay2Alpha = 939ab7
|
||||
|
||||
$overlay1 = rgb(8087a2)
|
||||
$overlay1Alpha = 8087a2
|
||||
|
||||
$overlay0 = rgb(6e738d)
|
||||
$overlay0Alpha = 6e738d
|
||||
|
||||
$surface2 = rgb(5b6078)
|
||||
$surface2Alpha = 5b6078
|
||||
|
||||
$surface1 = rgb(494d64)
|
||||
$surface1Alpha = 494d64
|
||||
|
||||
$surface0 = rgb(363a4f)
|
||||
$surface0Alpha = 363a4f
|
||||
|
||||
$base = rgb(24273a)
|
||||
$baseAlpha = 24273a
|
||||
|
||||
$mantle = rgb(1e2030)
|
||||
$mantleAlpha = 1e2030
|
||||
|
||||
$crust = rgb(181926)
|
||||
$crustAlpha = 181926
|
|
@ -18,11 +18,11 @@ max_workspaces = 8
|
|||
[expose]
|
||||
include_special = false
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "foot -a foot-dropterm"
|
||||
class = "foot-dropterm"
|
||||
size = "75% 60%"
|
||||
# [scratchpads.term]
|
||||
# animation = "fromTop"
|
||||
# command = "foot -a foot-dropterm"
|
||||
# class = "foot-dropterm"
|
||||
# size = "75% 60%"
|
||||
|
||||
[scratchpads.obsidian]
|
||||
animation = "fromTop"
|
||||
|
@ -30,14 +30,13 @@ command = "obsidian"
|
|||
class = "obsidian"
|
||||
size = "80% 80%"
|
||||
|
||||
[scratchpads.logseq]
|
||||
animation = "fromTop"
|
||||
command = "flatpak run com.logseq.Logseq"
|
||||
match_by = "class"
|
||||
class = "Logseq"
|
||||
size = "80% 80%"
|
||||
# process_tracking = false
|
||||
class_match = true
|
||||
# [scratchpads.logseq]
|
||||
# animation = "fromTop"
|
||||
# command = "flatpak run com.logseq.Logseq"
|
||||
# match_by = "class"
|
||||
# class = "Logseq"
|
||||
# size = "80% 80%"
|
||||
# class_match = true
|
||||
|
||||
[scratchpads.volume]
|
||||
animation = "fromRight"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
### Layers ###
|
||||
##############
|
||||
|
||||
layerrule = blur, waybar
|
||||
# layerrule = blur, waybar
|
||||
layerrule = blur, launcher
|
||||
layerrule = blur, lockscreen
|
||||
# layerrule = blur, swayosd
|
||||
|
@ -26,14 +26,19 @@ windowrulev2 = center, title:^(Move files)$
|
|||
windowrulev2 = fullscreen, class:^(genshinimpact.exe|starrail.exe|zenlesszonezero.exe)$
|
||||
windowrulev2 = fullscreenstate 3, class:^(genshinimpact.exe|starrail.exe|zenlesszonezero.exe)$
|
||||
|
||||
# windowrulev2 = idleinhibit fullscreen, class:^(*)$
|
||||
# windowrulev2 = idleinhibit fullscreen, title:^(*)$
|
||||
windowrulev2 = idleinhibit fullscreen, fullscreen:1
|
||||
windowrulev2 = idleinhibit always, class:^(mpv)$
|
||||
|
||||
# transparency
|
||||
windowrulev2 = opacity 1.0 override 0.9 override, class:^(kitty|foot|footclient|floating-foot|VSCodium|Code|neovide)$
|
||||
windowrulev2 = opacity 1.0 override 0.9 override, class:^(kitty|org.wezfurlong.wezterm|foot|footclient|floating-foot|VSCodium|Code|neovide)$
|
||||
|
||||
# 1 terminal
|
||||
windowrulev2 = workspace 1, class:^(kitty|foot|footclient)$
|
||||
windowrulev2 = workspace 1, class:^(kitty|foot|footclient|org.wezfurlong.wezterm)$
|
||||
|
||||
# 2 browser
|
||||
windowrulev2 = workspace 2, class:^(mullvadbrowser|zen-beta|floorp|firefox*|Pulse Browser|librewolf*|LibreWolf*|org.qutebrowser.qutebrowser|chromium|thorium*|brave*|vivaldi*)
|
||||
windowrulev2 = workspace 2, class:^(mullvadbrowser|zen|floorp|firefox*|Pulse Browser|librewolf*|LibreWolf*|org.qutebrowser.qutebrowser|chromium|thorium*|brave*|vivaldi*)
|
||||
|
||||
# 3 files
|
||||
windowrulev2 = workspace 3, class:^(thunar|org.qbittorrent.qBittorrent|org.kde.dolphin|pcmanfm-qt|deluge)$|^(org.gnome.Nautilus)$|^(org.gnome.NautilusDevel)$|^(nemo*)|fm-term
|
||||
|
@ -52,4 +57,4 @@ windowrulev2 = workspace 6, class:^(mpv|Spotify)$
|
|||
windowrulev2 = workspace 7, class:^(WebCord|discord|org.telegram.desktop|Signal|teams-for-linux)$
|
||||
|
||||
# 8 settings
|
||||
windowrulev2 = workspace 8, class:^(sc-controller|pavucontrol|org.pulseaudio.pavucontrol)$
|
||||
windowrulev2 = workspace 8, class:^(sc-controller|pavucontrol|org.pulseaudio.pavucontrol|org.keepassxc.KeePassXC)$
|
||||
|
|
|
@ -4,10 +4,12 @@ workspace = 1, monitor:DP-1, default:true
|
|||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:DP-1
|
||||
workspace = 5, monitor:HDMI-A-1
|
||||
workspace = 5, monitor:DP-1
|
||||
workspace = 6, monitor:HDMI-A-1
|
||||
workspace = 7, monitor:HDMI-A-1
|
||||
workspace = 8, monitor:HDMI-A-1
|
||||
workspace = 9, monitor:HDMI-A-1
|
||||
workspace = 10, monitor:HDMI-A-1
|
||||
workspace = special:exposed,gapsout:60,gapsin:30,bordersize:5,border:true,shadow:false
|
||||
|
||||
# With split plugins
|
||||
|
|
17
dot_config/labwc/autostart
Normal file
17
dot_config/labwc/autostart
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
hyprpaper >/dev/null 2>&1 &
|
||||
swayosd-server >/dev/null 2>&1 &
|
||||
# swayidle before-sleep 'loginctl lock-session' lock 'swaylock' >/dev/null 2>&1 &
|
||||
|
||||
wl-clip-persist --clipboard regular &
|
||||
wl-paste --type text --watch cliphist store >/dev/null 2>&1 &
|
||||
wl-paste --type image --watch cliphist store >/dev/null 2>&1 &
|
||||
|
||||
/usr/lib/polkit-kde-authentication-agent-1 &
|
||||
|
||||
systemctl start --user foot-server
|
||||
systemctl start --user swaync
|
||||
systemctl restart --user hypridle
|
||||
systemctl restart --user kanshi
|
||||
systemctl restart --user waybar
|
7
dot_config/labwc/environment
Normal file
7
dot_config/labwc/environment
Normal file
|
@ -0,0 +1,7 @@
|
|||
XKB_DEFAULT_LAYOUT=us
|
||||
XKB_DEFAULT_OPTIONS=compose:ralt
|
||||
|
||||
XCURSOR_THEME=Qogir-dark
|
||||
XCURSOR_SIZE=24
|
||||
|
||||
QT_QPA_PLATFORMTHEME=qt6ct
|
449
dot_config/labwc/rc.xml
Normal file
449
dot_config/labwc/rc.xml
Normal file
|
@ -0,0 +1,449 @@
|
|||
<labwc_config>
|
||||
<theme>
|
||||
<name></name>
|
||||
<cornerRadius>8</cornerRadius>
|
||||
<keepBorder>yes</keepBorder>
|
||||
<dropShadows>yes</dropShadows>
|
||||
<font place="ActiveWindow">
|
||||
<name>Lexend</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="InactiveWindow">
|
||||
<name>Lexend</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuHeader">
|
||||
<name>Lexend</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="MenuItem">
|
||||
<name>Lexend</name>
|
||||
<size>10</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
<font place="OnScreenDisplay">
|
||||
<name>Lexend</name>
|
||||
<size>12</size>
|
||||
<slant>normal</slant>
|
||||
<weight>normal</weight>
|
||||
</font>
|
||||
</theme>
|
||||
|
||||
<desktops number="4" />
|
||||
|
||||
<core>
|
||||
<decoration>server</decoration>
|
||||
<gap>20</gap>
|
||||
<adaptiveSync>fullscreen</adaptiveSync>
|
||||
<allowTearing>no</allowTearing>
|
||||
<reuseOutputMode>yes</reuseOutputMode>
|
||||
<xwaylandPersistence>no</xwaylandPersistence>
|
||||
</core>
|
||||
|
||||
<focus>
|
||||
<followMouse>yes</followMouse>
|
||||
<followMouseRequiresMovement>yes</followMouseRequiresMovement>
|
||||
<raiseOnFocus>no</raiseOnFocus>
|
||||
</focus>
|
||||
|
||||
<resistance>
|
||||
<screenEdgeStrength>30</screenEdgeStrength>
|
||||
<windowEdgeStrength>30</windowEdgeStrength>
|
||||
<!-- resistance for maximized/tiled windows -->
|
||||
<unSnapThreshold>30</unSnapThreshold>
|
||||
<!-- resistance for vertically/horizontally maximized windows -->
|
||||
<unMaximizeThreshold>150</unMaximizeThreshold>
|
||||
</resistance>
|
||||
|
||||
<snapping>
|
||||
<!-- Set range to 0 to disable window snapping completely -->
|
||||
<range>40</range>
|
||||
<overlay enabled="yes">
|
||||
<delay inner="200" outer="200" />
|
||||
</overlay>
|
||||
<topMaximize>yes</topMaximize>
|
||||
<notifyClient>always</notifyClient>
|
||||
</snapping>
|
||||
|
||||
<regions>
|
||||
<region name="top-right" x="50%" y="0%" width="50%" height="50%"></region>
|
||||
<region name="bottom-right" x="50%" y="50%" width="50%" height="50%"></region>
|
||||
<region name="bottom-left" x="0%" y="0%" width="50%" height="50%"></region>
|
||||
<region name="top-left" x="0%" y="50%" width="50%" height="50%"></region>
|
||||
<region name="half-left" x="0%" y="0%" width="50%" height="100%"></region>
|
||||
<region name="half-right" x="50%" y="0%" width="50%" height="100%"></region>
|
||||
<region name="half-top" x="0%" y="0%" width="100%" height="50%"></region>
|
||||
<region name="half-bottom" x="0%" y="50%" width="100%" height="50%"></region>
|
||||
<region name="center-full" x="0%" y="0%" width="100%" height="100%"></region>
|
||||
</regions>
|
||||
|
||||
<keyboard>
|
||||
<repeatRate>50</repeatRate>
|
||||
<repeatDelay>200</repeatDelay>
|
||||
|
||||
<keybind key="W-S-q"><action name="Exit" /></keybind>
|
||||
<keybind key="W-S-r"><action name="Reconfigure" /></keybind>
|
||||
|
||||
<keybind key="W-Return"><action name="Execute" command="footclient"/></keybind>
|
||||
<keybind key="W-S-e"><action name="Execute" command="xdg-open ."/></keybind>
|
||||
<keybind key="W-e"><action name="Execute" command="wezterm start --class fm-term yazi"/></keybind>
|
||||
<keybind key="W-d"><action name="Execute" command="anyrun"/></keybind>
|
||||
<keybind key="W-w"><action name="Execute" command="rofi -show window"/></keybind>
|
||||
<keybind key="W-q"><action name="Execute" command="wlogout -p layer-shell"/></keybind>
|
||||
<keybind key="W-v"><action name="Execute" command="sh -c 'cliphist list | rofi -dmenu | cliphist decode | wl-copy'"/></keybind>
|
||||
<keybind key="W-S-s"><action name="Execute" command="hyprshot -m region"/></keybind>
|
||||
<keybind key="W-p"><action name="Execute" command="hyprshot -m output"/></keybind>
|
||||
<keybind key="W-C-S-s"><action name="Execute" command="tesseract-shot.sh"/></keybind>
|
||||
<keybind key="W-b"><action name="Execute" command="killall -SIGUSR1 waybar"/></keybind>
|
||||
|
||||
<keybind key="W-c"><action name="Close"/></keybind>
|
||||
<keybind key="W-S-c"><action name="Kill"/></keybind>
|
||||
|
||||
<keybind key="W-f">
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="W-Space">
|
||||
<action name="ToggleMaximize" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="W-S-f">
|
||||
<action name="ToggleFullscreen" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="XF86_AudioLowerVolume">
|
||||
<action name="Execute" command="swayosd-client --output-volume lower" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioRaiseVolume">
|
||||
<action name="Execute" command="swayosd-client --output-volume raise" />
|
||||
</keybind>
|
||||
<keybind key="XF86_AudioMute">
|
||||
<action name="Execute" command="swayosd-client --output-volume mute-toggle" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessUp">
|
||||
<action name="Execute" command="brightnessctl set +10%" />
|
||||
</keybind>
|
||||
<keybind key="XF86_MonBrightnessDown">
|
||||
<action name="Execute" command="brightnessctl set 10%-" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="W-1"><action name="GoToDesktop" to="1" /></keybind>
|
||||
<keybind key="W-2"><action name="GoToDesktop" to="2" /></keybind>
|
||||
<keybind key="W-3"><action name="GoToDesktop" to="3" /></keybind>
|
||||
<keybind key="W-4"><action name="GoToDesktop" to="4" /></keybind>
|
||||
|
||||
<keybind key="W-S-1"><action name="SendToDesktop" to="1" /></keybind>
|
||||
<keybind key="W-S-2"><action name="SendToDesktop" to="2" /></keybind>
|
||||
<keybind key="W-S-3"><action name="SendToDesktop" to="3" /></keybind>
|
||||
<keybind key="W-S-4"><action name="SendToDesktop" to="4" /></keybind>
|
||||
|
||||
<!-- <keybind key="A-Tab"> -->
|
||||
<!-- <action name="NextWindow" /> -->
|
||||
<!-- </keybind> -->
|
||||
<!-- <keybind key="A-S-Tab"> -->
|
||||
<!-- <action name="PreviousWindow" /> -->
|
||||
<!-- </keybind> -->
|
||||
<keybind key="W-i">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-m">
|
||||
<action name="PreviousWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-j">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-k">
|
||||
<action name="PreviousWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-l">
|
||||
<action name="NextWindow" />
|
||||
</keybind>
|
||||
<keybind key="W-h">
|
||||
<action name="PreviousWindow" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="W-period">
|
||||
<action name="FocusOutput" direction="left" wrap="yes" />
|
||||
</keybind>
|
||||
<keybind key="W-comma">
|
||||
<action name="FocusOutput" direction="right" wrap="yes" />
|
||||
</keybind>
|
||||
<keybind key="W-Tab">
|
||||
<action name="FocusOutput" direction="right" wrap="yes" />
|
||||
</keybind>
|
||||
|
||||
<keybind key="W-S-period">
|
||||
<action name="MoveToOutput" direction="left" wrap="yes" />
|
||||
</keybind>
|
||||
<keybind key="W-S-comma">
|
||||
<action name="MoveToOutput" direction="right" wrap="yes" />
|
||||
</keybind>
|
||||
<keybind key="W-S-Tab">
|
||||
<action name="MoveToOutput" direction="right" wrap="yes" />
|
||||
</keybind>
|
||||
|
||||
<!-- <keybind key="A-Left"> -->
|
||||
<!-- <action name="MoveToEdge" direction="left" /> -->
|
||||
<!-- </keybind> -->
|
||||
<!-- <keybind key="A-Right"> -->
|
||||
<!-- <action name="MoveToEdge" direction="right" /> -->
|
||||
<!-- </keybind> -->
|
||||
<!-- <keybind key="A-Up"> -->
|
||||
<!-- <action name="MoveToEdge" direction="up" /> -->
|
||||
<!-- </keybind> -->
|
||||
<!-- <keybind key="A-Down"> -->
|
||||
<!-- <action name="MoveToEdge" direction="down" /> -->
|
||||
<!-- </keybind> -->
|
||||
<keybind key="W-Left">
|
||||
<action name="SnapToEdge" direction="left" />
|
||||
</keybind>
|
||||
<keybind key="W-Right">
|
||||
<action name="SnapToEdge" direction="right" />
|
||||
</keybind>
|
||||
<keybind key="W-Up">
|
||||
<action name="SnapToEdge" direction="up" />
|
||||
</keybind>
|
||||
<keybind key="W-Down">
|
||||
<action name="SnapToEdge" direction="down" />
|
||||
</keybind>
|
||||
<!-- <keybind key="A-Space"> -->
|
||||
<!-- <action name="ShowMenu" menu="client-menu" atCursor="no" /> -->
|
||||
<!-- </keybind> -->
|
||||
</keyboard>
|
||||
|
||||
|
||||
<mouse>
|
||||
<!-- time is in ms -->
|
||||
<doubleClickTime>500</doubleClickTime>
|
||||
|
||||
<context name="All">
|
||||
<mousebind direction="W-Up" action="Scroll">
|
||||
<action name="PreviousWindow" />
|
||||
</mousebind>
|
||||
<mousebind direction="W-Down" action="Scroll">
|
||||
<action name="NextWindow" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Frame">
|
||||
<mousebind button="W-Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="W-Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="W-Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="W-Right" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Top">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Left">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Right">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="Bottom">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BRCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="TLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
<context name="BLCorner">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Resize" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="TitleBar">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="Unshade" />
|
||||
<action name="Focus" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="Unfocus" />
|
||||
<action name="Shade" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Title">
|
||||
<mousebind button="Left" action="Drag">
|
||||
<action name="Move" />
|
||||
</mousebind>
|
||||
<mousebind button="Left" action="DoubleClick">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Maximize">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleMaximize" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ToggleMaximize" direction="horizontal" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Click">
|
||||
<action name="ToggleMaximize" direction="vertical" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="WindowMenu">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Icon">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Click">
|
||||
<action name="ShowMenu" menu="client-menu" atCursor="no" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Shade">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleShade" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="AllDesktops">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="ToggleOmnipresent" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Iconify">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Iconify" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Close">
|
||||
<mousebind button="Left" action="Click">
|
||||
<action name="Close" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Client">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="Focus" />
|
||||
<action name="Raise" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
<context name="Root">
|
||||
<mousebind button="Left" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Right" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
</mousebind>
|
||||
<mousebind button="Middle" action="Press">
|
||||
<action name="ShowMenu" menu="root-menu" />
|
||||
<!-- openbox default, swap with above line to activate -->
|
||||
<!-- <action name="ShowMenu" menu="client-list-combined-menu" /> -->
|
||||
</mousebind>
|
||||
<mousebind direction="Up" action="Scroll">
|
||||
<action name="GoToDesktop" to="left" wrap="yes" />
|
||||
</mousebind>
|
||||
<mousebind direction="Down" action="Scroll">
|
||||
<action name="GoToDesktop" to="right" wrap="yes" />
|
||||
</mousebind>
|
||||
</context>
|
||||
|
||||
</mouse>
|
||||
|
||||
<libinput>
|
||||
<device category="default">
|
||||
<naturalScroll></naturalScroll>
|
||||
<leftHanded></leftHanded>
|
||||
<pointerSpeed>0.0</pointerSpeed>
|
||||
<accelProfile>flat</accelProfile>
|
||||
<tap>yes</tap>
|
||||
<tapButtonMap></tapButtonMap>
|
||||
<tapAndDrag></tapAndDrag>
|
||||
<dragLock></dragLock>
|
||||
<middleEmulation></middleEmulation>
|
||||
<disableWhileTyping></disableWhileTyping>
|
||||
<clickMethod></clickMethod>
|
||||
<sendEventsMode></sendEventsMode>
|
||||
<calibrationMatrix></calibrationMatrix>
|
||||
<scrollFactor>1.0</scrollFactor>
|
||||
</device>
|
||||
</libinput>
|
||||
|
||||
<windowSwitcher show="yes" preview="yes" outlines="yes" allWorkspaces="no">
|
||||
<fields>
|
||||
<!-- <field content="type" width="25%" /> -->
|
||||
<field content="icon" width="5%" />
|
||||
<field content="desktop_entry_name" width="30%" />
|
||||
<!-- <field content="trimmed_identifier" width="25%" /> -->
|
||||
<!-- <field content="identifier" width="25%" /> -->
|
||||
<field content="title" width="50%" />
|
||||
</fields>
|
||||
</windowSwitcher>
|
||||
|
||||
<menu>
|
||||
<ignoreButtonReleasePeriod>250</ignoreButtonReleasePeriod>
|
||||
<showIcons>yes</showIcons>
|
||||
</menu>
|
||||
</labwc_config>
|
115
dot_config/labwc/themerc-override
Normal file
115
dot_config/labwc/themerc-override
Normal file
|
@ -0,0 +1,115 @@
|
|||
# This file contains all themerc options with default values
|
||||
#
|
||||
# System-wide and local themes can be overridden by creating a copy of this
|
||||
# file and renaming it to $HOME/.config/labwc/themerc-override. Be careful
|
||||
# though - if you only want to override a small number of specific options,
|
||||
# make sure all other lines are commented out or deleted.
|
||||
|
||||
# general
|
||||
border.width: 2
|
||||
|
||||
#
|
||||
# The global padding.{width,height} of openbox are not supported because
|
||||
# the default labwc button geometry deviates from that of openbox
|
||||
#
|
||||
window.titlebar.padding.width: 0
|
||||
window.titlebar.padding.height: 0
|
||||
|
||||
# window border
|
||||
window.active.border.color: #f4dbd6
|
||||
window.inactive.border.color: #1e2030
|
||||
|
||||
# ToggleKeybinds status indicator
|
||||
window.active.indicator.toggled-keybind.color: #ff0000
|
||||
|
||||
# window titlebar background
|
||||
window.active.title.bg.color: #1e2030
|
||||
window.inactive.title.bg.color: #181926
|
||||
|
||||
# window titlebar text
|
||||
window.active.label.text.color: #cad3f5
|
||||
window.inactive.label.text.color: #a5adcb
|
||||
window.label.text.justify: center
|
||||
|
||||
# window button width and spacing
|
||||
window.button.width: 26
|
||||
window.button.height: 26
|
||||
window.button.spacing: 0
|
||||
|
||||
# window button hover effect
|
||||
window.button.hover.bg.corner-radius: 0
|
||||
|
||||
# window buttons
|
||||
window.active.button.unpressed.image.color: #cad3f5
|
||||
window.inactive.button.unpressed.image.color: #a5adcb
|
||||
|
||||
# window drop-shadows
|
||||
window.active.shadow.size: 60
|
||||
window.inactive.shadow.size: 40
|
||||
window.active.shadow.color: #00000060
|
||||
window.inactive.shadow.color: #00000040
|
||||
|
||||
# Note that "menu", "iconify", "max", "close" buttons colors can be defined
|
||||
# individually by inserting the type after the button node, for example:
|
||||
#
|
||||
# window.active.button.iconify.unpressed.image.color: #333333
|
||||
|
||||
# menu
|
||||
menu.overlap.x: 0
|
||||
menu.overlap.y: 0
|
||||
menu.width.min: 20
|
||||
menu.width.max: 200
|
||||
menu.border.width: 1
|
||||
menu.border.color: #181926
|
||||
menu.items.bg.color: #1e2030
|
||||
menu.items.text.color: #cad3f5
|
||||
menu.items.active.bg.color: #363a4f
|
||||
menu.items.active.text.color: #cad3f5
|
||||
menu.items.padding.x: 7
|
||||
menu.items.padding.y: 4
|
||||
menu.separator.width: 1
|
||||
menu.separator.padding.width: 6
|
||||
menu.separator.padding.height: 3
|
||||
menu.separator.color: #888888
|
||||
menu.title.bg.color: #589bda
|
||||
menu.title.text.color: #ffffff
|
||||
menu.title.text.justify: Center
|
||||
|
||||
# on screen display (window-cycle dialog)
|
||||
osd.bg.color: #1e2030
|
||||
osd.border.color: #f4dbd6
|
||||
osd.border.width: 2
|
||||
osd.label.text.color: #cad3f5
|
||||
|
||||
# width can be set as percent (of screen width)
|
||||
# example 50% or 75% instead of 600, max 100%
|
||||
osd.window-switcher.width: 45%
|
||||
|
||||
osd.window-switcher.padding: 20
|
||||
osd.window-switcher.item.padding.x: 10
|
||||
osd.window-switcher.item.padding.y: 5
|
||||
osd.window-switcher.item.active.border.width: 2
|
||||
osd.window-switcher.preview.border.width: 2
|
||||
osd.window-switcher.preview.border.color: #eed49f
|
||||
|
||||
osd.workspace-switcher.boxes.width: 20
|
||||
osd.workspace-switcher.boxes.height: 20
|
||||
|
||||
# Default values for following options change depending on the rendering
|
||||
# backend. For software-based renderers, *.bg.enabled is "no" and
|
||||
# *.border.enabled is "yes" if not set. For hardware-based renderers,
|
||||
# *.bg.enabled is "yes" and *.border.enabled is "no" if not set.
|
||||
# Setting *.bg.enabled to "yes" for software-based renderer with translucent
|
||||
# background color may severely impact performance.
|
||||
#
|
||||
# snapping.overlay.region.bg.enabled:
|
||||
# snapping.overlay.edge.bg.enabled:
|
||||
# snapping.overlay.region.border.enabled:
|
||||
# snapping.overlay.edge.border.enabled:
|
||||
|
||||
snapping.overlay.region.bg.color: #f4dbd680
|
||||
snapping.overlay.edge.bg.color: #f4dbd680
|
||||
snapping.overlay.region.border.width: 1
|
||||
snapping.overlay.edge.border.width: 1
|
||||
snapping.overlay.region.border.color: #dddda6,#000000,#dddda6
|
||||
snapping.overlay.edge.border.color: #dddda6,#000000,#dddda6
|
|
@ -141,6 +141,9 @@ layout {
|
|||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
shadow {
|
||||
on
|
||||
}
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
|
@ -199,9 +202,8 @@ layout {
|
|||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
proportion 1.0
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
|
@ -413,9 +415,11 @@ animations {
|
|||
/// Workspaces
|
||||
|
||||
window-rule {
|
||||
match app-id="steam_app_*"
|
||||
// match app-id="steam_app_*"
|
||||
match app-id="cs2"
|
||||
match app-id="gmod"
|
||||
match app-id="genshinimpact.exe"
|
||||
match app-id="henpri.exe"
|
||||
match app-id="starrail.exe"
|
||||
match app-id="zenlesszonezero.exe"
|
||||
match app-id="osu!"
|
||||
|
@ -424,7 +428,6 @@ window-rule {
|
|||
match app-id="SamabakeScramble*"
|
||||
match app-id="samabakescramble*"
|
||||
match app-id="gamescope"
|
||||
match app-id="steam"
|
||||
|
||||
variable-refresh-rate true
|
||||
open-on-output "DP-1"
|
||||
|
@ -441,8 +444,30 @@ window-rule {
|
|||
// open-on-workspace "syncplay"
|
||||
}
|
||||
|
||||
/// Floating rules
|
||||
|
||||
|
||||
window-rule {
|
||||
match app-id="firefox$" title="^Picture-in-Picture$"
|
||||
match app-id="floorp$" title="^Picture-in-Picture$"
|
||||
match app-id="zen$" title="^Picture-in-Picture$"
|
||||
|
||||
open-floating true
|
||||
default-floating-position x=50 y=50 relative-to="bottom-right"
|
||||
max-height 320
|
||||
}
|
||||
window-rule {
|
||||
// match app-id="launcher.exe$" title="^Holoearth Launcher$"
|
||||
match app-id="launcher.exe$"
|
||||
// match title="^Holoearth*"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
/// Custom rules
|
||||
|
||||
window-rule {
|
||||
match app-id="foot*"
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
match app-id="fm-term"
|
||||
default-column-width { proportion 0.5; }
|
||||
}
|
||||
|
@ -463,6 +488,50 @@ window-rule {
|
|||
clip-to-geometry true
|
||||
}
|
||||
|
||||
layer-rule {
|
||||
match namespace="^rofi$"
|
||||
|
||||
shadow {
|
||||
on
|
||||
}
|
||||
|
||||
geometry-corner-radius 10
|
||||
}
|
||||
|
||||
window-rule {
|
||||
match is-window-cast-target=true
|
||||
|
||||
focus-ring {
|
||||
active-color "#ee99a0"
|
||||
inactive-color "#ed8796"
|
||||
}
|
||||
|
||||
border {
|
||||
inactive-color "#ed8796"
|
||||
}
|
||||
|
||||
shadow {
|
||||
color "#7d0d2d70"
|
||||
}
|
||||
|
||||
tab-indicator {
|
||||
active-color "#ee99a0"
|
||||
inactive-color "#ed8796"
|
||||
}
|
||||
}
|
||||
|
||||
/// Layer rules
|
||||
|
||||
layer-rule {
|
||||
match namespace="^swayosd$"
|
||||
|
||||
shadow {
|
||||
on
|
||||
}
|
||||
|
||||
geometry-corner-radius 9999
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
|
@ -480,14 +549,19 @@ binds {
|
|||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+Return { spawn "footclient"; }
|
||||
// Mod+Return { spawn "wezterm" "start" "--new-tab"; }
|
||||
// Mod+Return { spawn "wezterm"; }
|
||||
Mod+B { spawn "killall" "-SIGUSR1" "waybar"; }
|
||||
// Mod+D { spawn "wofi" "-show" "drun" "-theme" "catppuccin-macchiato"; }
|
||||
Mod+D { spawn "anyrun"; }
|
||||
Mod+W { spawn "rofi" "-show" "window" "-theme" "catppuccin-macchiato"; }
|
||||
Mod+S { spawn "anyrun"; }
|
||||
Mod+Shift+W { spawn "rofi" "-show" "window" "-theme" "catppuccin-macchiato"; }
|
||||
Mod+W repeat=false { toggle-overview; }
|
||||
Mod+Q repeat=false { spawn "wlogout" "-p" "layer-shell"; }
|
||||
|
||||
// Mod+E repeat=false { spawn "kitty" "--class='fm-term'" "nnn" "-da" "-P" "p"; }
|
||||
Mod+E repeat=false { spawn "footclient" "-a" "fm-term" "yazi"; }
|
||||
// Mod+E repeat=false { spawn "footclient" "-a" "fm-term" "yazi"; }
|
||||
Mod+E repeat=false { spawn "wezterm" "start" "--class" "fm-term" "yazi"; }
|
||||
Mod+Shift+E repeat=false { spawn "xdg-open" "."; }
|
||||
|
||||
Mod+V { spawn "bash" "-c" "cliphist list | rofi -dmenu | cliphist decode | wl-copy"; }
|
||||
|
@ -527,6 +601,8 @@ binds {
|
|||
Mod+Shift+K { move-window-up; }
|
||||
Mod+Shift+L { move-column-right; }
|
||||
|
||||
Mod+G { toggle-column-tabbed-display; }
|
||||
|
||||
// Alternative commands that move across workspaces when reaching
|
||||
// the first or last window in a column.
|
||||
// Mod+J { focus-window-or-workspace-down; }
|
||||
|
@ -573,11 +649,11 @@ binds {
|
|||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Y { focus-workspace-up; }
|
||||
Mod+Shift+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Shift+U { move-column-to-workspace-down; }
|
||||
Mod+Shift+I { move-column-to-workspace-up; }
|
||||
Mod+Shift+Y { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
|
@ -662,7 +738,8 @@ binds {
|
|||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
Mod+Tab { focus-workspace-previous; }
|
||||
Mod+Tab { focus-monitor-next; }
|
||||
Mod+Shift+Tab { move-window-to-monitor-next; }
|
||||
|
||||
// Mod+Shift+BracketLeft { consume-window-into-column; }
|
||||
// Mod+Shift+BracketRight { expel-window-from-column; }
|
||||
|
@ -747,7 +824,7 @@ debug {
|
|||
|
||||
// Disable the use of the cursor plane.
|
||||
// The cursor will be rendered together with the rest of the frame.
|
||||
disable-cursor-plane
|
||||
// disable-cursor-plane
|
||||
|
||||
// Override the DRM device that niri will use for all rendering.
|
||||
// render-drm-device "/dev/dri/renderD128"
|
||||
|
@ -768,18 +845,19 @@ debug {
|
|||
// spawn-at-startup "alacritty" "-e" "fish"
|
||||
spawn-at-startup "hyprpaper"
|
||||
spawn-at-startup "swaync"
|
||||
spawn-at-startup "waybar"
|
||||
// spawn-at-startup "waybar"
|
||||
spawn-at-startup "systemctl" "restart" "--user" "waybar"
|
||||
spawn-at-startup "systemctl" "start" "--user" "foot-server"
|
||||
spawn-at-startup "systemctl" "start" "--user" "xwayland-satellite"
|
||||
// spawn-at-startup "systemctl" "start" "--user" "gammastep"
|
||||
spawn-at-startup "/usr/lib/polkit-kde-authentication-agent-1"
|
||||
spawn-at-startup "kdeconnectd"
|
||||
spawn-at-startup "kdeconnect-indicator"
|
||||
// spawn-at-startup "kdeconnectd"
|
||||
// spawn-at-startup "kdeconnect-indicator"
|
||||
spawn-at-startup "wl-paste" "--type" "text" "--watch" "cliphist" "store"
|
||||
spawn-at-startup "wl-paste" "--type" "image" "--watch" "cliphist" "store"
|
||||
spawn-at-startup "swayosd-server"
|
||||
spawn-at-startup "swayidle" "before-sleep" "'loginctl lock-session'" "lock" "'swaylock'"
|
||||
// spawn-at-startup "sunshine"
|
||||
spawn-at-startup "systemctl" "restart" "--user" "sunshine"
|
||||
// spawn-at-startup "systemctl" "restart" "--user" "sunshine"
|
||||
// spawn-at-startup "trackma"
|
||||
// spawn-at-startup "xwayland-satellite"
|
||||
|
|
509
dot_config/niri/default-config.kdl
Normal file
509
dot_config/niri/default-config.kdl
Normal file
|
@ -0,0 +1,509 @@
|
|||
// This config is in the KDL format: https://kdl.dev
|
||||
// "/-" comments out the following node.
|
||||
// Check the wiki for a full description of the configuration:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Overview
|
||||
|
||||
// Input device configuration.
|
||||
// Find the full list of options on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Input
|
||||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
// You can set rules, model, layout, variant and options.
|
||||
// For more information, see xkeyboard-config(7).
|
||||
|
||||
// For example:
|
||||
// layout "us,ru"
|
||||
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||
}
|
||||
}
|
||||
|
||||
// Next sections include libinput settings.
|
||||
// Omitting settings disables them, or leaves them at their default values.
|
||||
touchpad {
|
||||
// off
|
||||
tap
|
||||
// dwt
|
||||
// dwtp
|
||||
natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "two-finger"
|
||||
// disabled-on-external-mouse
|
||||
}
|
||||
|
||||
mouse {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "no-scroll"
|
||||
}
|
||||
|
||||
trackpoint {
|
||||
// off
|
||||
// natural-scroll
|
||||
// accel-speed 0.2
|
||||
// accel-profile "flat"
|
||||
// scroll-method "on-button-down"
|
||||
// scroll-button 273
|
||||
// middle-emulation
|
||||
}
|
||||
|
||||
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||
// warp-mouse-to-focus
|
||||
|
||||
// Focus windows and outputs automatically when moving the mouse into them.
|
||||
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||
// focus-follows-mouse max-scroll-amount="0%"
|
||||
}
|
||||
|
||||
// You can configure outputs by their name, which you can find
|
||||
// by running `niri msg outputs` while inside a niri instance.
|
||||
// The built-in laptop monitor is usually called "eDP-1".
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs
|
||||
// Remember to uncomment the node by removing "/-"!
|
||||
/-output "eDP-1" {
|
||||
// Uncomment this line to disable this output.
|
||||
// off
|
||||
|
||||
// Resolution and, optionally, refresh rate of the output.
|
||||
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||
// for the resolution.
|
||||
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||
mode "1920x1080@120.030"
|
||||
|
||||
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||
scale 2
|
||||
|
||||
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||
transform "normal"
|
||||
|
||||
// Position of the output in the global coordinate space.
|
||||
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||
// The cursor can only move between directly adjacent outputs.
|
||||
// Output scale and rotation has to be taken into account for positioning:
|
||||
// outputs are sized in logical, or scaled, pixels.
|
||||
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||
// If the position is unset or results in an overlap, the output is instead placed
|
||||
// automatically.
|
||||
position x=1280 y=0
|
||||
}
|
||||
|
||||
// Settings that influence how windows are positioned and sized.
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Layout
|
||||
layout {
|
||||
// Set gaps around windows in logical pixels.
|
||||
gaps 16
|
||||
|
||||
// When to center a column when changing focus, options are:
|
||||
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||
// or right edge of the screen.
|
||||
// - "always", the focused column will always be centered.
|
||||
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||
// together with the previously focused column.
|
||||
center-focused-column "never"
|
||||
|
||||
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||
preset-column-widths {
|
||||
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||
proportion 0.33333
|
||||
proportion 0.5
|
||||
proportion 0.66667
|
||||
|
||||
// Fixed sets the width in logical pixels exactly.
|
||||
// fixed 1920
|
||||
}
|
||||
|
||||
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||
// preset-window-heights { }
|
||||
|
||||
// You can change the default width of the new windows.
|
||||
default-column-width { proportion 0.5; }
|
||||
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||
// default-column-width {}
|
||||
|
||||
// By default focus ring and border are rendered as a solid background rectangle
|
||||
// behind windows. That is, they will show up through semitransparent windows.
|
||||
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||
//
|
||||
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||
// client-side decorations.
|
||||
//
|
||||
// Alternatively, you can override it with a window rule called
|
||||
// `draw-border-with-background`.
|
||||
|
||||
// You can change how the focus ring looks.
|
||||
focus-ring {
|
||||
// Uncomment this line to disable the focus ring.
|
||||
// off
|
||||
|
||||
// How many logical pixels the ring extends out from the windows.
|
||||
width 4
|
||||
|
||||
// Colors can be set in a variety of ways:
|
||||
// - CSS named colors: "red"
|
||||
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||
|
||||
// Color of the ring on the active monitor.
|
||||
active-color "#7fc8ff"
|
||||
|
||||
// Color of the ring on inactive monitors.
|
||||
inactive-color "#505050"
|
||||
|
||||
// You can also use gradients. They take precedence over solid colors.
|
||||
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||
// The angle is the same as in linear-gradient, and is optional,
|
||||
// defaulting to 180 (top-to-bottom gradient).
|
||||
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||
// Changing the color space is also supported, check the wiki for more info.
|
||||
//
|
||||
// active-gradient from="#80c8ff" to="#bbddff" angle=45
|
||||
|
||||
// You can also color the gradient relative to the entire view
|
||||
// of the workspace, rather than relative to just the window itself.
|
||||
// To do that, set relative-to="workspace-view".
|
||||
//
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||
border {
|
||||
// The settings are the same as for the focus ring.
|
||||
// If you enable the border, you probably want to disable the focus ring.
|
||||
off
|
||||
|
||||
width 4
|
||||
active-color "#ffc87f"
|
||||
inactive-color "#505050"
|
||||
|
||||
// active-gradient from="#ffbb66" to="#ffc880" angle=45 relative-to="workspace-view"
|
||||
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||
}
|
||||
|
||||
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||
// Left and right struts will cause the next window to the side to always be visible.
|
||||
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||
// layer-shell panels and regular gaps.
|
||||
struts {
|
||||
// left 64
|
||||
// right 64
|
||||
// top 64
|
||||
// bottom 64
|
||||
}
|
||||
}
|
||||
|
||||
// Add lines like this to spawn processes at startup.
|
||||
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||
// which may be more convenient to use.
|
||||
// See the binds section below for more spawn examples.
|
||||
// spawn-at-startup "alacritty" "-e" "fish"
|
||||
|
||||
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||
// If the client will specifically ask for CSD, the request will be honored.
|
||||
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||
// prefer-no-csd
|
||||
|
||||
// You can change the path where screenshots are saved.
|
||||
// A ~ at the front will be expanded to the home directory.
|
||||
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||
|
||||
// You can also set this to null to disable saving screenshots to disk.
|
||||
// screenshot-path null
|
||||
|
||||
// Animation settings.
|
||||
// The wiki explains how to configure individual animations:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Animations
|
||||
animations {
|
||||
// Uncomment to turn off all animations.
|
||||
// off
|
||||
|
||||
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||
// slowdown 3.0
|
||||
}
|
||||
|
||||
// Window rules let you adjust behavior for individual windows.
|
||||
// Find more information on the wiki:
|
||||
// https://github.com/YaLTeR/niri/wiki/Configuration:-Window-Rules
|
||||
|
||||
// Work around WezTerm's initial configure bug
|
||||
// by setting an empty default-column-width.
|
||||
window-rule {
|
||||
// This regular expression is intentionally made as specific as possible,
|
||||
// since this is the default config, and we want no false positives.
|
||||
// You can get away with just app-id="wezterm" if you want.
|
||||
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||
default-column-width {}
|
||||
}
|
||||
|
||||
// Open the Firefox picture-in-picture player as floating by default.
|
||||
window-rule {
|
||||
// This app-id regular expression will work for both:
|
||||
// - host Firefox (app-id is "firefox")
|
||||
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||
open-floating true
|
||||
}
|
||||
|
||||
// Example: block out two password managers from screen capture.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||
|
||||
block-out-from "screen-capture"
|
||||
|
||||
// Use this instead if you want them visible on third-party screenshot tools.
|
||||
// block-out-from "screencast"
|
||||
}
|
||||
|
||||
// Example: enable rounded corners for all windows.
|
||||
// (This example rule is commented out with a "/-" in front.)
|
||||
/-window-rule {
|
||||
geometry-corner-radius 12
|
||||
clip-to-geometry true
|
||||
}
|
||||
|
||||
binds {
|
||||
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||
// in the end. To find an XKB name for a particular key, you may use a program
|
||||
// like wev.
|
||||
//
|
||||
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||
// when running as a winit window.
|
||||
//
|
||||
// Most actions that you can bind here can also be invoked programmatically with
|
||||
// `niri msg action do-something`.
|
||||
|
||||
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||
// shows a list of important hotkeys.
|
||||
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||
|
||||
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||
Mod+T { spawn "alacritty"; }
|
||||
Mod+D { spawn "fuzzel"; }
|
||||
Super+Alt+L { spawn "swaylock"; }
|
||||
|
||||
// You can also use a shell. Do this if you need pipes, multiple commands, etc.
|
||||
// Note: the entire command goes as a single argument in the end.
|
||||
// Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
|
||||
|
||||
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||
XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; }
|
||||
XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; }
|
||||
XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; }
|
||||
XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; }
|
||||
|
||||
Mod+Q { close-window; }
|
||||
|
||||
Mod+Left { focus-column-left; }
|
||||
Mod+Down { focus-window-down; }
|
||||
Mod+Up { focus-window-up; }
|
||||
Mod+Right { focus-column-right; }
|
||||
Mod+H { focus-column-left; }
|
||||
Mod+J { focus-window-down; }
|
||||
Mod+K { focus-window-up; }
|
||||
Mod+L { focus-column-right; }
|
||||
|
||||
Mod+Ctrl+Left { move-column-left; }
|
||||
Mod+Ctrl+Down { move-window-down; }
|
||||
Mod+Ctrl+Up { move-window-up; }
|
||||
Mod+Ctrl+Right { move-column-right; }
|
||||
Mod+Ctrl+H { move-column-left; }
|
||||
Mod+Ctrl+J { move-window-down; }
|
||||
Mod+Ctrl+K { move-window-up; }
|
||||
Mod+Ctrl+L { move-column-right; }
|
||||
|
||||
// Alternative commands that move across workspaces when reaching
|
||||
// the first or last window in a column.
|
||||
// Mod+J { focus-window-or-workspace-down; }
|
||||
// Mod+K { focus-window-or-workspace-up; }
|
||||
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||
|
||||
Mod+Home { focus-column-first; }
|
||||
Mod+End { focus-column-last; }
|
||||
Mod+Ctrl+Home { move-column-to-first; }
|
||||
Mod+Ctrl+End { move-column-to-last; }
|
||||
|
||||
Mod+Shift+Left { focus-monitor-left; }
|
||||
Mod+Shift+Down { focus-monitor-down; }
|
||||
Mod+Shift+Up { focus-monitor-up; }
|
||||
Mod+Shift+Right { focus-monitor-right; }
|
||||
Mod+Shift+H { focus-monitor-left; }
|
||||
Mod+Shift+J { focus-monitor-down; }
|
||||
Mod+Shift+K { focus-monitor-up; }
|
||||
Mod+Shift+L { focus-monitor-right; }
|
||||
|
||||
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
// And you can also move a whole workspace to another monitor:
|
||||
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||
// ...
|
||||
|
||||
Mod+Page_Down { focus-workspace-down; }
|
||||
Mod+Page_Up { focus-workspace-up; }
|
||||
Mod+U { focus-workspace-down; }
|
||||
Mod+I { focus-workspace-up; }
|
||||
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||
// ...
|
||||
|
||||
Mod+Shift+Page_Down { move-workspace-down; }
|
||||
Mod+Shift+Page_Up { move-workspace-up; }
|
||||
Mod+Shift+U { move-workspace-down; }
|
||||
Mod+Shift+I { move-workspace-up; }
|
||||
|
||||
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||
// These binds will change direction based on the natural-scroll setting.
|
||||
//
|
||||
// To avoid scrolling through workspaces really fast, you can use
|
||||
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||
|
||||
Mod+WheelScrollRight { focus-column-right; }
|
||||
Mod+WheelScrollLeft { focus-column-left; }
|
||||
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||
|
||||
// Usually scrolling up and down with Shift in applications results in
|
||||
// horizontal scrolling; these binds replicate that.
|
||||
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||
|
||||
// Similarly, you can bind touchpad scroll "ticks".
|
||||
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||
// discrete intervals.
|
||||
// These binds are also affected by touchpad's natural-scroll, so these
|
||||
// example binds are "inverted", since we have natural-scroll enabled for
|
||||
// touchpads by default.
|
||||
// Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
|
||||
// Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
|
||||
|
||||
// You can refer to workspaces by index. However, keep in mind that
|
||||
// niri is a dynamic workspace system, so these commands are kind of
|
||||
// "best effort". Trying to refer to a workspace index bigger than
|
||||
// the current workspace count will instead refer to the bottommost
|
||||
// (empty) workspace.
|
||||
//
|
||||
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||
// will all refer to the 3rd workspace.
|
||||
Mod+1 { focus-workspace 1; }
|
||||
Mod+2 { focus-workspace 2; }
|
||||
Mod+3 { focus-workspace 3; }
|
||||
Mod+4 { focus-workspace 4; }
|
||||
Mod+5 { focus-workspace 5; }
|
||||
Mod+6 { focus-workspace 6; }
|
||||
Mod+7 { focus-workspace 7; }
|
||||
Mod+8 { focus-workspace 8; }
|
||||
Mod+9 { focus-workspace 9; }
|
||||
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||
|
||||
// Alternatively, there are commands to move just a single window:
|
||||
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||
|
||||
// Switches focus between the current and the previous workspace.
|
||||
// Mod+Tab { focus-workspace-previous; }
|
||||
|
||||
// The following binds move the focused window in and out of a column.
|
||||
// If the window is alone, they will consume it into the nearby column to the side.
|
||||
// If the window is already in a column, they will expel it out.
|
||||
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||
Mod+BracketRight { consume-or-expel-window-right; }
|
||||
|
||||
// Consume one window from the right to the bottom of the focused column.
|
||||
Mod+Comma { consume-window-into-column; }
|
||||
// Expel the bottom window from the focused column to the right.
|
||||
Mod+Period { expel-window-from-column; }
|
||||
|
||||
Mod+R { switch-preset-column-width; }
|
||||
Mod+Shift+R { switch-preset-window-height; }
|
||||
Mod+Ctrl+R { reset-window-height; }
|
||||
Mod+F { maximize-column; }
|
||||
Mod+Shift+F { fullscreen-window; }
|
||||
Mod+C { center-column; }
|
||||
|
||||
// Finer width adjustments.
|
||||
// This command can also:
|
||||
// * set width in pixels: "1000"
|
||||
// * adjust width in pixels: "-5" or "+5"
|
||||
// * set width as a percentage of screen width: "25%"
|
||||
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||
Mod+Minus { set-column-width "-10%"; }
|
||||
Mod+Equal { set-column-width "+10%"; }
|
||||
|
||||
// Finer height adjustments when in column with other windows.
|
||||
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||
|
||||
// Move the focused window between the floating and the tiling layout.
|
||||
Mod+V { toggle-window-floating; }
|
||||
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||
|
||||
// Actions to switch layouts.
|
||||
// Note: if you uncomment these, make sure you do NOT have
|
||||
// a matching layout switch hotkey configured in xkb options above.
|
||||
// Having both at once on the same hotkey will break the switching,
|
||||
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||
// Mod+Space { switch-layout "next"; }
|
||||
// Mod+Shift+Space { switch-layout "prev"; }
|
||||
|
||||
Print { screenshot; }
|
||||
Ctrl+Print { screenshot-screen; }
|
||||
Alt+Print { screenshot-window; }
|
||||
|
||||
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||
Mod+Shift+E { quit; }
|
||||
Ctrl+Alt+Delete { quit; }
|
||||
|
||||
// Powers off the monitors. To turn them back on, do any input like
|
||||
// moving the mouse or pressing any other key.
|
||||
Mod+Shift+P { power-off-monitors; }
|
||||
}
|
|
@ -6,6 +6,8 @@
|
|||
|
||||
# Super+Return to start an instance of foot (https://codeberg.org/dnkl/foot)
|
||||
riverctl map normal Super Return spawn footclient
|
||||
# riverctl map normal Super Return spawn "wezterm start --new-tab"
|
||||
riverctl map normal Super+Shift Return spawn "wezterm"
|
||||
|
||||
# Super+C to close the focused view
|
||||
riverctl map normal Super C close
|
||||
|
@ -17,13 +19,18 @@ riverctl map normal Super+Shift Q exit
|
|||
riverctl map normal Super+Shift R spawn "$HOME/.config/river/init"
|
||||
|
||||
# Rofi menu
|
||||
riverctl map normal Super Q spawn 'rofi -show power-menu -modi power-menu:rofi-power-menu'
|
||||
# riverctl map normal Super Q spawn 'rofi -show power-menu -modi power-menu:rofi-power-menu'
|
||||
riverctl map normal Super Q spawn 'wlogout -p layer-shell'
|
||||
|
||||
# Super+J and Super+K to focus the next/previous view in the layout stack
|
||||
riverctl map normal Super J focus-view next
|
||||
riverctl map normal Super K focus-view previous
|
||||
riverctl map normal Super H focus-view left
|
||||
riverctl map normal Super L focus-view right
|
||||
riverctl map normal Super Down focus-view next
|
||||
riverctl map normal Super Up focus-view previous
|
||||
riverctl map normal Super Left focus-view left
|
||||
riverctl map normal Super Right focus-view right
|
||||
|
||||
# Super+Shift+J and Super+Shift+K to swap the focused view with the next/previous
|
||||
# view in the layout stack
|
||||
|
@ -40,8 +47,11 @@ riverctl map normal Super Comma focus-output previous
|
|||
riverctl map normal Super+Shift Period send-to-output next
|
||||
riverctl map normal Super+Shift Comma send-to-output previous
|
||||
|
||||
riverctl map normal Super Tab focus-output next
|
||||
riverctl map normal Super+Shift Tab send-to-output next
|
||||
|
||||
# Super+Return to bump the focused view to the top of the layout stack
|
||||
riverctl map normal Super+Shift Return zoom
|
||||
# riverctl map normal Super+Shift Return zoom
|
||||
riverctl map normal Super X zoom
|
||||
|
||||
# Super+H and Super+L to decrease/increase the main ratio of rivertile(1)
|
||||
|
@ -51,6 +61,8 @@ riverctl map normal Super+Control L send-layout-cmd rivertile "main-ratio +0.05"
|
|||
# Super+Shift+H and Super+Shift+L to increment/decrement the main count of rivertile(1)
|
||||
riverctl map normal Super+Shift+Control H send-layout-cmd rivertile "main-count +1"
|
||||
riverctl map normal Super+Shift+Control L send-layout-cmd rivertile "main-count -1"
|
||||
riverctl map normal Super bracketleft send-layout-cmd rivertile "main-count +1"
|
||||
riverctl map normal Super bracketright send-layout-cmd rivertile "main-count -1"
|
||||
|
||||
# Super+Alt+{H,J,K,L} to move views
|
||||
riverctl map normal Super+Alt H move left 100
|
||||
|
@ -154,10 +166,12 @@ done
|
|||
# Applications
|
||||
##############
|
||||
|
||||
riverctl map normal Super D spawn "rofi -show drun -theme catppuccin-macchiato"
|
||||
#riverctl map normal Super D spawn "rofi -show drun -theme catppuccin-macchiato"
|
||||
riverctl map normal Super D spawn "anyrun"
|
||||
riverctl map normal Super W spawn "rofi -show window -theme catppuccin-macchiato"
|
||||
# riverctl map normal Super E spawn "kitty --class='fm-term' nnn -da -P p"
|
||||
riverctl map normal Super E spawn "footclient -a fm-term yazi"
|
||||
# riverctl map normal Super E spawn "footclient -a fm-term yazi"
|
||||
riverctl map normal Super E spawn "wezterm start --class fm-term yazi"
|
||||
riverctl map normal Super+Shift E spawn "xdg-open $HOME"
|
||||
|
||||
# shellcheck disable=SC2016
|
||||
|
@ -192,6 +206,7 @@ rivertile -view-padding 6 -outer-padding 10 &
|
|||
# view-padding 6, \
|
||||
# outer-padding 10, &
|
||||
|
||||
riverctl allow-tearing disabled
|
||||
|
||||
|
||||
# cursor
|
||||
|
@ -220,18 +235,6 @@ riverctl input *Touchpad tap enabled
|
|||
# Clipboard
|
||||
riverctl map normal Super V spawn 'bash -c "cliphist list | rofi -dmenu | cliphist decode | wl-copy"'
|
||||
|
||||
|
||||
##########
|
||||
# Monitors
|
||||
##########
|
||||
|
||||
# wlr-randr
|
||||
# wlr-randr --output HDMI-A-1 --on --mode 1920x1080@60Hz --pos 1920,0 --output DP-1 --on --mode 1920x1080@144.001007Hz --pos 0,0
|
||||
|
||||
# kanshi
|
||||
kanshi &
|
||||
|
||||
|
||||
#######
|
||||
# Rules
|
||||
#######
|
||||
|
@ -239,22 +242,17 @@ kanshi &
|
|||
# ssd
|
||||
riverctl rule-add ssd
|
||||
|
||||
# output
|
||||
riverctl rule-add -app-id 'cs2' output DP-1
|
||||
riverctl rule-add -app-id 'starrail.exe' output DP-1
|
||||
riverctl rule-add -app-id 'genshinimpact.exe' output DP-1
|
||||
riverctl rule-add -app-id 'zenlesszonezero.exe' output DP-1
|
||||
|
||||
# tags
|
||||
declare -a rule_sets
|
||||
|
||||
rule_sets[1]="footclient kitty foot"
|
||||
rule_sets[2]="LibreWolf firefox"
|
||||
rule_sets[1]="footclient kitty foot org.wezfurlong.wezterm"
|
||||
rule_sets[2]="LibreWolf firefox zen*"
|
||||
rule_sets[3]="org.gnome.Nautilus fm-term org.qbittorrent.qBittorrent syncplay org.kde.dolphin org.kde.ktorrent"
|
||||
rule_sets[4]="com.usebottles.bottles cs2 osu* org.prismlauncher.PrismLauncher moe.launcher.sleepy-launcher moe.launcher.an-anime-game-launcher moe.launcher.the-honkers-railway-launcher genshinimpact.exe starrail.exe zenlesszonezero.exe Steam steam steam_app_*"
|
||||
rule_sets[4]="com.usebottles.bottles cs2 osu* org.prismlauncher.PrismLauncher moe.launcher.sleepy-launcher moe.launcher.an-anime-game-launcher moe.launcher.the-honkers-railway-launcher genshinimpact.exe starrail.exe zenlesszonezero.exe steam_app_* net.lutris.Lutris"
|
||||
rule_sets[5]="org.remmina.Remmina Code VSCodium"
|
||||
rule_sets[6]="io.github.celluloid_player.Celluloid mpv Spotify"
|
||||
rule_sets[7]="discord vesktop teams-for-linux 'Microsoft Teams - Preview'"
|
||||
rule_sets[8]="org.keepassxc.KeePassXC"
|
||||
|
||||
for index in "${!rule_sets[@]}"; do
|
||||
tags=$((1 << (index - 1)))
|
||||
|
@ -264,8 +262,27 @@ for index in "${!rule_sets[@]}"; do
|
|||
done
|
||||
done
|
||||
|
||||
riverctl rule-add -app-id "steam" tags $(( 1 << 4 - 1 ))
|
||||
riverctl rule-add -app-id "Steam" tags $(( 1 << 4 - 1 ))
|
||||
|
||||
# tags+
|
||||
|
||||
# output
|
||||
riverctl rule-add -app-id 'cs2' output DP-1
|
||||
riverctl rule-add -app-id 'starrail.exe' output DP-1
|
||||
riverctl rule-add -app-id 'genshinimpact.exe' output DP-1
|
||||
riverctl rule-add -app-id 'zenlesszonezero.exe' output DP-1
|
||||
|
||||
riverctl rule-add -app-id steam output HDMI-A-1
|
||||
riverctl rule-add -app-id 'net.lutris.Lutris' output HDMI-A-1
|
||||
|
||||
index=4
|
||||
tags=$((1 << (index - 1)))
|
||||
for element in ${rule_sets[4]}; do
|
||||
riverctl rule-add -app-id "$element" output DP-1
|
||||
# riverctl rule-add -app-id "$element" tearing
|
||||
done
|
||||
|
||||
|
||||
#########
|
||||
# Wayland
|
||||
|
@ -279,13 +296,13 @@ dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
|||
###########
|
||||
|
||||
## background
|
||||
hyprpaper --no-fractional &
|
||||
hyprpaper &
|
||||
|
||||
## bar
|
||||
waybar &
|
||||
systemctl --user start waybar
|
||||
|
||||
## notification daemon
|
||||
swaync &
|
||||
systemctl --user start swaync
|
||||
|
||||
## kdeconnect
|
||||
/usr/lib/kdeconnectd &
|
||||
|
@ -296,17 +313,21 @@ swayosd-server &
|
|||
|
||||
## systemctl restarts
|
||||
systemctl start --user foot-server
|
||||
systemctl start --user sunshine
|
||||
# systemctl restart --user sunshine
|
||||
# systemctl start --user gammastep.service
|
||||
systemctl restart --user hypridle
|
||||
systemctl start --user kanshi
|
||||
|
||||
## cliphist
|
||||
wl-paste --type text --watch cliphist store & #Stores only text data
|
||||
wl-paste --type image --watch cliphist store & #Stores only image data
|
||||
|
||||
## lock
|
||||
swayidle before-sleep 'loginctl lock-session' lock 'swaylock' &
|
||||
|
||||
# passwords
|
||||
keepassxc &
|
||||
|
||||
# polkit
|
||||
## /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &
|
||||
/usr/lib/polkit-kde-authentication-agent-1 &
|
||||
|
||||
## lock
|
||||
swayidle before-sleep 'loginctl lock-session' lock '/home/eric/.config/hypr/bsplock' &
|
||||
|
||||
|
|
|
@ -1,44 +1,35 @@
|
|||
[
|
||||
{
|
||||
"output": ["DP-1", "HDMI-A-1"],
|
||||
"layer": "top",
|
||||
"position": "top",
|
||||
"layer": "bottom",
|
||||
"position": "bottom",
|
||||
"height": 32,
|
||||
"include": ["~/.config/waybar/default-modules.jsonc"],
|
||||
"modules-left": [
|
||||
"dwl/tags",
|
||||
"hyprland/workspaces",
|
||||
"sway/workspaces#sway",
|
||||
"niri/workspaces",
|
||||
"river/tags"
|
||||
"river/tags",
|
||||
// "custom/workspaces",
|
||||
// "river/layout",
|
||||
|
||||
// "group/visualisation"
|
||||
"group/visualisation"
|
||||
// "custom/media",
|
||||
// "hyprland/window",
|
||||
],
|
||||
"modules-right": [
|
||||
"group/hardware",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
"group/rightmost"
|
||||
]
|
||||
},
|
||||
{
|
||||
"output": ["DP-1", "HDMI-A-1"],
|
||||
"layer": "top",
|
||||
"position": "bottom",
|
||||
"height": 44,
|
||||
"include": ["~/.config/waybar/default-modules.jsonc"],
|
||||
"modules-left": [
|
||||
"group/visualisation"
|
||||
],
|
||||
"modules-center": [
|
||||
"group/tray-group",
|
||||
"wlr/taskbar"
|
||||
// "mpd",
|
||||
],
|
||||
"modules-right": [
|
||||
"group/hardware",
|
||||
// "pulseaudio",
|
||||
"wireplumber",
|
||||
// "hyprland/language",
|
||||
"network",
|
||||
"group/rightmost"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
},
|
||||
"group/visualisation": {
|
||||
"orientation": "horizontal",
|
||||
// "drawer": {
|
||||
// "transition-duration": 500,
|
||||
// "children-class": "visualiser",
|
||||
// "transition-left-to-right": true
|
||||
// },
|
||||
"drawer": {
|
||||
"transition-duration": 500,
|
||||
"children-class": "visualiser",
|
||||
"transition-left-to-right": true
|
||||
},
|
||||
"modules": [
|
||||
"cava",
|
||||
"group/mpdris"
|
||||
|
@ -43,6 +43,9 @@
|
|||
// "custom/logo"
|
||||
]
|
||||
},
|
||||
"dwl/tags": {
|
||||
"num-tags":9
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"active-only": false,
|
||||
"disable-scroll": true,
|
||||
|
@ -58,7 +61,7 @@
|
|||
"6": " ",
|
||||
"7": " ",
|
||||
"8": " ",
|
||||
"default": ""
|
||||
"default": " "
|
||||
}
|
||||
// "persistent-workspaces": {
|
||||
// "*": 4,
|
||||
|
@ -137,16 +140,18 @@
|
|||
"wlr/taskbar": {
|
||||
"all-outputs": true,
|
||||
"format": "{icon}",
|
||||
"icon-size": 24,
|
||||
"icon-theme": "Papirus-Dark",
|
||||
"icon-size": 14,
|
||||
"icon-theme": "Adwaita",
|
||||
// "icon-theme": "Papirus-Dark",
|
||||
"active-first": false,
|
||||
"tooltip-format": "{title} [{app_id}]",
|
||||
"on-click": "activate",
|
||||
"on-click-right": "minimize-raise",
|
||||
"on-click-middle": "close",
|
||||
"ignore-list": [],
|
||||
"app_ids-mapping": {
|
||||
"firefoxdeveloperedition": "firefox-developer-edition",
|
||||
"zen-alpha": "firefox"
|
||||
// "zen-alpha": "firefox"
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
|
@ -195,8 +200,8 @@
|
|||
"format": "{player_icon} <span>{title}</span>\n{artist} <i>{album}</i>",
|
||||
// "format": "{player_icon} {dynamic}",
|
||||
// "format-paused": "{status_icon} <i>{dynamic}</i>",
|
||||
"title-len": 60,
|
||||
"dynamic-len": 60,
|
||||
"title-len": 100,
|
||||
"dynamic-len": 100,
|
||||
"player-icons": {
|
||||
"default": " ",
|
||||
"mpv": " ",
|
||||
|
@ -219,14 +224,14 @@
|
|||
// "format": " {}%",
|
||||
"format": "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}{icon8}{icon9}{icon10}{icon11}{icon12}{icon13}{icon14}{icon15}",
|
||||
"format-icons": [
|
||||
"<span color='#a6da95'>▁</span>", // green
|
||||
"<span color='#8aadf4'>▂</span>", // blue
|
||||
"<span color='#b7bdf8'>▃</span>", // white
|
||||
"<span color='#b7bdf8'>▄</span>", // white
|
||||
"<span color='#eed49f'>▅</span>", // yellow
|
||||
"<span color='#f5a97f'>▆</span>", // yellow
|
||||
"<span color='#ee99a0'>▇</span>", // orange
|
||||
"<span color='#ed8796'>█</span>" // red
|
||||
"<span color='#171717'>▁</span>",
|
||||
"<span color='#262626'>▂</span>",
|
||||
"<span color='#404040'>▃</span>",
|
||||
"<span color='#525252'>▄</span>",
|
||||
"<span color='#737373'>▅</span>",
|
||||
"<span color='#a3a3a3'>▆</span>",
|
||||
"<span color='#d4d4d4'>▇</span>",
|
||||
"<span color='#e5e5e5'>█</span>"
|
||||
]
|
||||
},
|
||||
"custom/notification": {
|
||||
|
@ -289,14 +294,14 @@
|
|||
"format": "{icon}",
|
||||
"tooltip-format": "CPU: {temperatureC}°C",
|
||||
"format-icons": [
|
||||
"<span color='#a6da95'> ▁</span>", // green
|
||||
"<span color='#8aadf4'> ▂</span>", // blue
|
||||
"<span color='#b7bdf8'> ▃</span>", // white
|
||||
"<span color='#b7bdf8'> ▄</span>", // white
|
||||
"<span color='#eed49f'> ▅</span>", // yellow
|
||||
"<span color='#f5a97f'> ▆</span>", // yellow
|
||||
"<span color='#ee99a0'> ▇</span>", // orange
|
||||
"<span color='#ed8796'> █</span>" // red
|
||||
"<span color='#171717'> ▁</span>", // green
|
||||
"<span color='#262626'> ▂</span>", // blue
|
||||
"<span color='#404040'> ▃</span>", // white
|
||||
"<span color='#525252'> ▄</span>", // white
|
||||
"<span color='#737373'> ▅</span>", // yellow
|
||||
"<span color='#a3a3a3'> ▆</span>", // yellow
|
||||
"<span color='#d4d4d4'> ▇</span>", // orange
|
||||
"<span color='#e5e5e5'> █</span>" // red
|
||||
]
|
||||
},
|
||||
"temperature#amdgpu": {
|
||||
|
@ -307,14 +312,14 @@
|
|||
"format": "{icon}",
|
||||
"tooltip-format": "GPU (edge): {temperatureC}°C",
|
||||
"format-icons": [
|
||||
"<span color='#a6da95'> ▁</span>", // green
|
||||
"<span color='#8aadf4'> ▂</span>", // blue
|
||||
"<span color='#b7bdf8'> ▃</span>", // white
|
||||
"<span color='#b7bdf8'> ▄</span>", // white
|
||||
"<span color='#eed49f'> ▅</span>", // yellow
|
||||
"<span color='#f5a97f'> ▆</span>", // yellow
|
||||
"<span color='#ee99a0'> ▇</span>", // orange
|
||||
"<span color='#ed8796'> █</span>" // red
|
||||
"<span color='#171717'> ▁</span>", // green
|
||||
"<span color='#262626'> ▂</span>", // blue
|
||||
"<span color='#404040'> ▃</span>", // white
|
||||
"<span color='#525252'> ▄</span>", // white
|
||||
"<span color='#737373'> ▅</span>", // yellow
|
||||
"<span color='#a3a3a3'> ▆</span>", // yellow
|
||||
"<span color='#d4d4d4'> ▇</span>", // orange
|
||||
"<span color='#e5e5e5'> █</span>" // red
|
||||
]
|
||||
},
|
||||
"network": {
|
||||
|
@ -344,11 +349,24 @@
|
|||
"on-click-release": "rofi -show power-menu -modi power-menu:rofi-power-menu"
|
||||
},
|
||||
"wireplumber": {
|
||||
"format": "{volume}%",
|
||||
"format-muted": "",
|
||||
"on-click": "helvum",
|
||||
// "format": "{volume}%",
|
||||
"format": "{icon}",
|
||||
"format-muted": "<span color='#ed8796'> </span>",
|
||||
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle",
|
||||
"on-click-middle": "sh ~/.config/waybar/modules/swap-sinks.sh",
|
||||
"on-click-right": "pavucontrol",
|
||||
"max-volume": 150,
|
||||
"scroll-step": 0.2
|
||||
"scroll-step": 5,
|
||||
"format-icons": [
|
||||
"<span color='#171717'> ▁</span>", // green
|
||||
"<span color='#262626'> ▂</span>", // blue
|
||||
"<span color='#404040'> ▃</span>", // white
|
||||
"<span color='#525252'> ▄</span>", // white
|
||||
"<span color='#737373'> ▅</span>", // yellow
|
||||
"<span color='#a3a3a3'> ▆</span>", // yellow
|
||||
"<span color='#d4d4d4'> ▇</span>", // orange
|
||||
"<span color='#e5e5e5'> █</span>" // red
|
||||
]
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon}",
|
||||
|
@ -393,7 +411,7 @@
|
|||
"bars": 16,
|
||||
"lower_cutoff_freq": 50,
|
||||
"higher_cutoff_freq": 10000,
|
||||
"method": "pulse",
|
||||
"method": "pipewire",
|
||||
"source": "auto",
|
||||
"stereo": true,
|
||||
"reverse": false,
|
||||
|
|
25
dot_config/waybar/modules/executable_swap-sinks.sh
Normal file
25
dot_config/waybar/modules/executable_swap-sinks.sh
Normal file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
newSink=""
|
||||
|
||||
Headphones="alsa_output.usb-Blue_Microphones_Yeti_Stereo_Microphone_797_2018_09_06_94890-00.analog-stereo" #Change this device's to headphone pactl name
|
||||
Speaker="alsa_output.pci-0000_0b_00.6.analog-stereo" #Change this to device's speaker pactl name
|
||||
currentSink=$(pactl info | sed -n 's/Default Sink: //p')
|
||||
|
||||
if [ "$Speaker" = "$currentSink" ]; then
|
||||
newSink="$Headphones"
|
||||
else
|
||||
newSink="$Speaker"
|
||||
fi
|
||||
|
||||
pactl set-default-sink "$newSink"
|
||||
|
||||
sleep 0.1
|
||||
description=$(pactl list sinks | awk '/State: RUNNING/{active=1} active && /Description:/{print substr($0, index($0, $2)); exit}')
|
||||
notify-send -i audio-speakers -u low "Audio Output Changed" "$description"
|
||||
|
||||
# pactl list short sink-inputs|while read stream; do
|
||||
# streamId=$(echo "$stream"|cut '-d ' -f1)
|
||||
# echo "moving stream $streamId"
|
||||
# pactl move-sink-input "$streamId" "$newSink"
|
||||
# done
|
|
@ -8,13 +8,14 @@
|
|||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(24, 25, 38, 0.0);
|
||||
/* background: rgba(24, 25, 38, 1.0); */
|
||||
background-color: rgba(10, 10, 10, 1);
|
||||
color: white;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: rgba(24, 25, 38, 0.95);
|
||||
border-radius: 10px;
|
||||
border-radius: 8px;
|
||||
border-width: 0px;
|
||||
border-style: solid;
|
||||
border-color: rgb(24, 25, 38);
|
||||
|
@ -22,12 +23,23 @@ tooltip {
|
|||
|
||||
.modules-left,
|
||||
window.bottom .modules-center,
|
||||
window:not(.bottom) .modules-right {
|
||||
background-color: #24273a;
|
||||
margin: 2px;
|
||||
.modules-right {
|
||||
border-color: rgba(255, 255, 255, 0.06);
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
background-color: #171717;
|
||||
}
|
||||
|
||||
window:not(.bottom) .modules-left,
|
||||
window.bottom .modules-center {
|
||||
/* margin: 10px; */
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-right {
|
||||
/* margin: 10px; */
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-center,
|
||||
.modules-right {
|
||||
padding: 2px;
|
||||
|
@ -43,7 +55,7 @@ window:not(.bottom) .modules-left,
|
|||
#layout,
|
||||
#custom-notification.notification
|
||||
{
|
||||
border-radius: 10px 10px 10px 10px;
|
||||
border-radius: 8px 8px 8px 8px;
|
||||
}
|
||||
|
||||
#tray,
|
||||
|
@ -57,34 +69,38 @@ widget>label {
|
|||
|
||||
#visualisation
|
||||
{
|
||||
color: #1e2030;
|
||||
background-color: #f4dbd6;
|
||||
color: #0a0a0a;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#layout {
|
||||
color: #f4dbd6;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
|
||||
#layout.focused {
|
||||
margin-right: 2px;
|
||||
color: #1e2030;
|
||||
background-color: #f4dbd6;
|
||||
color: #0a0a0a;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#tags button {
|
||||
color: #939ab7;
|
||||
color: #737373;
|
||||
margin-right: 2px;
|
||||
border-radius: 10px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
#tags button.occupied {
|
||||
color: #f4dbd6;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
color: #f4dbd6;
|
||||
border-radius: 10px;
|
||||
color: #e5e5e5;
|
||||
border-radius: 8px;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
}
|
||||
|
@ -99,35 +115,35 @@ widget>label {
|
|||
|
||||
#workspaces button.empty,
|
||||
#workspaces.sway button.persistent {
|
||||
color: #939ab7;
|
||||
color: #737373;
|
||||
}
|
||||
|
||||
#workspaces button.empty.active {
|
||||
background-color: #939ab7;
|
||||
background-color: #737373;
|
||||
}
|
||||
|
||||
#tags button.urgent,
|
||||
#workspaces button.urgent {
|
||||
color: #0f0f0f;
|
||||
background-color: #9ec3c4;
|
||||
color: #0a0a0a;
|
||||
background-color: #fda4af;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background-color: rgba(244, 219, 214, 0.7);
|
||||
color: #0f0f0f;
|
||||
background-color: #a3a3a3;
|
||||
color: #0a0a0a;
|
||||
}
|
||||
|
||||
#workspaces.sway button.persistent:hover,
|
||||
#workspaces button.empty:hover {
|
||||
background-color: rgba(147, 154, 183, 0.7);
|
||||
color: #0f0f0f;
|
||||
background-color: #404040;
|
||||
color: #0a0a0a;
|
||||
}
|
||||
|
||||
#workspaces button.active,
|
||||
#workspaces button.focused,
|
||||
#tags button.focused {
|
||||
color: #0f0f0f;
|
||||
background-color: #f4dbd6;
|
||||
color: #0a0a0a;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
|
||||
|
@ -136,27 +152,26 @@ widget>label {
|
|||
}
|
||||
|
||||
#custom-notification {
|
||||
color: #eb6f92;
|
||||
color: #e5e5e5;
|
||||
padding-left: 12px;
|
||||
margin-right: 2px;
|
||||
}
|
||||
|
||||
#custom-notification.notification {
|
||||
color: #0f0f0f;
|
||||
background-color: #eb6f92;
|
||||
color: #0a0a0a;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
padding-top: 2px;
|
||||
padding-bottom: 2px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
border-radius: 0px;
|
||||
transition-duration: 150ms;
|
||||
margin: 0px 2px;
|
||||
padding: 2px 8px;
|
||||
border-radius: 8px;
|
||||
transition-duration: 600ms;
|
||||
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
|
||||
}
|
||||
|
||||
#taskbar button:hover {
|
||||
background-color: #363a4f;
|
||||
background-color: #404040;
|
||||
}
|
||||
|
||||
#taskbar button:last-child {
|
||||
|
@ -165,24 +180,30 @@ widget>label {
|
|||
|
||||
#taskbar button.maximized,
|
||||
#taskbar button.fullscreen {
|
||||
border-top: 1px solid #8aadf4;
|
||||
border: 2px solid #e5e5e5;
|
||||
}
|
||||
|
||||
|
||||
#taskbar button.minimized {
|
||||
border-bottom: 2px solid #e5e5e5;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background-color: #494d64;
|
||||
border-bottom: 2px solid #b7bdf8;
|
||||
background-color: #e5e5e5;
|
||||
border-radius: 8px;
|
||||
/* border-bottom: 2px solid #b7bdf8; */
|
||||
}
|
||||
|
||||
|
||||
#clock {
|
||||
color: #1e2030;
|
||||
background-color: #8aadf4;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#custom-updates {
|
||||
margin-right: 2px;
|
||||
color: #1e2030;
|
||||
background-color: #9ccfd8;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#custom-downloads {
|
||||
|
@ -194,19 +215,19 @@ widget>label {
|
|||
}
|
||||
|
||||
#network {
|
||||
color: #f5a97f;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #a6da95;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #7dc4e4;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#pulseaudio.bluetooth {
|
||||
color: #8aadf4;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#pulseaudio.muted {
|
||||
|
@ -245,11 +266,11 @@ widget>label {
|
|||
}
|
||||
|
||||
#memory {
|
||||
color: #b7bdf8;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#temperature {
|
||||
color: #91d7e3;
|
||||
color: #e5e5e5;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
|
|
|
@ -61,6 +61,7 @@ keymap = [
|
|||
# Operation
|
||||
{ on = "o", run = "open", desc = "Open selected files" },
|
||||
{ on = "O", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
{ on = "O", run = "open --interactive", desc = "Open selected files interactively" },
|
||||
{ on = "<Enter>", run = "enter", desc = "Open selected files" },
|
||||
{ on = "<S-Enter>", run = "enter", desc = "Open selected files interactively" },
|
||||
{ on = "y", run = "yank", desc = "Yank selected files (copy)" },
|
||||
|
|
|
@ -73,7 +73,7 @@ rules = [
|
|||
# Empty file
|
||||
{ mime = "inode/x-empty", use = [ "edit", "reveal" ] },
|
||||
# Fallback
|
||||
{ name = "*", use = [ "open", "reveal" ] },
|
||||
{ name = "*", use = [ "edit", "open", "reveal" ] },
|
||||
]
|
||||
|
||||
[tasks]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue