Compare commits
2 Commits
649e324ac7
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 810060dc10 | |||
| 03e8aa1343 |
@@ -7,7 +7,7 @@
|
||||
animations {
|
||||
enabled = yes
|
||||
bezier = overshot, 0.13, 0.99, 0.29, 1.1
|
||||
animation = windowsIn, 1, 4, overshot, slide
|
||||
animation = windowsIn, 1, 4, overshot, popin
|
||||
animation = windowsOut, 1, 5, default, popin 80%
|
||||
animation = border, 1, 5, default
|
||||
animation = workspacesIn, 1, 6, overshot, slide
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# Autostart wiki https://wiki.hyprland.org/0.45.0/Configuring/Keywords/#executing #
|
||||
|
||||
exec-once = /home/michaelb/.config/hypr/scripts/launch-waybar.sh &
|
||||
exec-once = blueman-applet &
|
||||
exec-once = fcitx5 -d &
|
||||
@@ -26,5 +25,11 @@ exec-once = $idlehandler
|
||||
|
||||
# Clipboard fix
|
||||
# https://github.com/hyprwm/Hyprland/issues/2319#issuecomment-2409983376
|
||||
exec-once = wl-paste -t text -w xclip -selection clipboard &
|
||||
exec-once = wl-paste --watch cliphist store &
|
||||
#exec-once = wl-paste -t text -w xclip -selection clipboard &
|
||||
#exec-once = wl-paste --watch cliphist store &
|
||||
|
||||
# vicinae
|
||||
exec-once = vicinae server
|
||||
|
||||
# pyprland
|
||||
exec-once = /usr/bin/pypr --debug /tmp/pypr.log
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
$wallpaper = /usr/share/wallpapers/downloaded/pexels-zetong-li-880728-18780512.jpg
|
||||
$background = rgb(0D0F10)
|
||||
$foreground = rgb(FCF1D3)
|
||||
$color0 = rgb(38393A)
|
||||
$color1 = rgb(7F4E47)
|
||||
$color2 = rgb(7D7F54)
|
||||
$color3 = rgb(8B7C7D)
|
||||
$color4 = rgb(61868C)
|
||||
$color5 = rgb(D2D1E6)
|
||||
$color6 = rgb(F5D782)
|
||||
$color7 = rgb(F2E3B8)
|
||||
$color8 = rgb(A99F81)
|
||||
$color9 = rgb(7F4E47)
|
||||
$color10 = rgb(7D7F54)
|
||||
$color11 = rgb(8B7C7D)
|
||||
$color12 = rgb(61868C)
|
||||
$color13 = rgb(D2D1E6)
|
||||
$color14 = rgb(F5D782)
|
||||
$color15 = rgb(F2E3B8)
|
||||
$wallpaper = /usr/share/wallpapers/downloaded/pexels-jplenio-1102912.jpg
|
||||
$background = rgb(0E0E11)
|
||||
$foreground = rgb(FDF2DE)
|
||||
$color0 = rgb(38393C)
|
||||
$color1 = rgb(424652)
|
||||
$color2 = rgb(6A3E40)
|
||||
$color3 = rgb(736956)
|
||||
$color4 = rgb(897C88)
|
||||
$color5 = rgb(9B8166)
|
||||
$color6 = rgb(F9D9A2)
|
||||
$color7 = rgb(F4E4C8)
|
||||
$color8 = rgb(AA9F8C)
|
||||
$color9 = rgb(424652)
|
||||
$color10 = rgb(6A3E40)
|
||||
$color11 = rgb(736956)
|
||||
$color12 = rgb(897C88)
|
||||
$color13 = rgb(9B8166)
|
||||
$color14 = rgb(F9D9A2)
|
||||
$color15 = rgb(F4E4C8)
|
||||
@@ -9,16 +9,16 @@ source = ~/.config/hypr/config/colors.conf
|
||||
decoration {
|
||||
active_opacity = 1
|
||||
inactive_opacity = 0.7
|
||||
rounding = 10
|
||||
rounding = 1
|
||||
dim_inactive = true
|
||||
dim_strength = 0.1
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#blur
|
||||
blur {
|
||||
size = 15
|
||||
size = 30
|
||||
passes = 2 # more passes = more resource intensive.
|
||||
xray = true
|
||||
noise = 0.03
|
||||
noise = 0.01
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#shadow
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
# ┃ Defaults Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
$filemanager = dolphin
|
||||
$applauncher = tofi-drun --drun-launch=true
|
||||
$filemanager = nemo
|
||||
#$applauncher = tofi-drun --drun-launch=true
|
||||
#$applauncher = rofi -show combi -modi window,run,combi -combi-modi window,run
|
||||
$dmenu = vicinae dmenu --placeholder
|
||||
$applauncher = vicinae toggle
|
||||
$terminal = kitty
|
||||
$idlehandler = swayidle -w timeout 300 'swaylock -f -c 000000' before-sleep 'swaylock -f -c 000000'
|
||||
$capturing = grim -g "$(slurp)" - | swappy -f -
|
||||
|
||||
@@ -7,13 +7,13 @@ envd = XCURSOR_SIZE,24
|
||||
envd = QT_CURSOR_SIZE,24
|
||||
|
||||
# Force electron apps to use wayland
|
||||
# env = ELECTRON_OZONE_PLATFORM_HINT, auto
|
||||
# env = QT_QPA_PLATFORM, wayland
|
||||
# env = SDL_VIDEODRIVER, wayland
|
||||
# env = CLUTTER_BACKEND, wayland
|
||||
# env = XDG_SESSION_TYPE, wayland
|
||||
# env = MOZ_ENABLE_WAYLAND, 1
|
||||
# env = NIXOS_OZONE_WL, 1
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
|
||||
env = QT_QPA_PLATFORM, wayland
|
||||
env = SDL_VIDEODRIVER, wayland
|
||||
env = CLUTTER_BACKEND, wayland
|
||||
env = XDG_SESSION_TYPE, wayland
|
||||
env = MOZ_ENABLE_WAYLAND, 1
|
||||
env = NIXOS_OZONE_WL, 1
|
||||
|
||||
# fixes full screen flickering
|
||||
env = WLR_DRM_NO_DIRECT_SCANOUT,1
|
||||
|
||||
@@ -1,14 +1,11 @@
|
||||
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Keybinds ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# 0. Includes
|
||||
source = ~/.config/hypr/config/defaults.conf
|
||||
|
||||
# 1. Applications
|
||||
# https://wiki.hyprland.org/Configuring/Binds/
|
||||
bindd = $mainMod, RETURN, Opens your preferred terminal emulator ($terminal), exec, $terminal
|
||||
bindd = $mainMod, E, Opens your preferred filemanager ($filemanager), exec, $filemanager
|
||||
bindd = $mainMod, A, Screen capture selection, exec, $capturing
|
||||
#bindd = $mainMod, A, Screen capture selection, exec, $capturing
|
||||
bindd = $mainMod, Q, Closes (not kill) current window, killactive,
|
||||
bindd = $mainMod SHIFT, M, Exits Hyprland by terminating the user sessions, exec, loginctl terminate-user ""
|
||||
bindd = $mainMod, V, Switches current window between floating and tiling mode, togglefloating,
|
||||
@@ -146,14 +143,14 @@ bind = , PRINT, exec, hyprshot -m output
|
||||
# Screenshot a region
|
||||
bind = $shiftMod, PRINT, exec, hyprshot -m region
|
||||
# Screenrec
|
||||
bind = $mainMod, S, exec, ~/.config/hypr/scripts/record-or-screenshot.sh
|
||||
bind = $mainMod, S, exec, ~/.config/hypr/scripts/record-or-screenshot.sh -d "$dmenu"
|
||||
|
||||
# ======= Color Picker =======
|
||||
bindd = $mainMod, P, Launch hyprpicker to pick a color, exec, hyprpicker -a
|
||||
|
||||
# ======= Additional Settings =======
|
||||
|
||||
bind = $mainMod, c, exec, cliphist list | tofi --prompt-text="clip:" | cliphist decode | wl-copy
|
||||
#bind = $mainMod, c, exec, cliphist list | tofi --prompt-text="clip:" | cliphist decode | wl-copy
|
||||
bind = $mainMod, c, exec, vicinae vicinae://extensions/vicinae/clipboard/history
|
||||
|
||||
# https://wiki.hyprland.org/Configuring/Binds
|
||||
binds {
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
|
||||
# Monitor wiki https://wiki.hyprland.org/0.45.0/Configuring/Monitors/
|
||||
|
||||
monitor = eDP-2, highres@highrr, 0x0, 1, vrr, 0
|
||||
monitor = DP-2, highres@highrr, auto-left, 1, vrr, 0
|
||||
monitor = desc:BOE NE156FHM-NX6, highres@highrr, 0x0, 1, vrr, 1
|
||||
# monitor = DP-2, highres@highrr, auto-left, 1, vrr, 0
|
||||
|
||||
monitor = HDMI-A-1, highres@highrr, auto-left, 1, transform, 1
|
||||
monitor = HDMI-A-1, highres@highrr, auto-right, 1, transform, 1
|
||||
monitor = desc:Samsung Electric Company S24F350 H4ZK111233, highres@highrr, auto-right, 1, transform, 1
|
||||
monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
|
||||
#monitor = desc:Samsung Electric Company S24F350 H4ZR302705, highres@highrr, auto-right, 1
|
||||
|
||||
# monitor = HDMI-A-1, highres@highrr, auto-right, 1, vrr, 0
|
||||
|
||||
# If you need to scale things like steam etc, please uncomment these lines.
|
||||
# Adjust GDK_SCALE accordingly to your liking.
|
||||
|
||||
12
.config/hypr/config/plugins.conf
Normal file
12
.config/hypr/config/plugins.conf
Normal file
@@ -0,0 +1,12 @@
|
||||
# https://github.com/sandwichfarm/hyprexpo-plus
|
||||
# currently not working
|
||||
plugin {
|
||||
hyprexpo {
|
||||
columns = 3
|
||||
gap_size = 5
|
||||
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
keynav_enable = 1
|
||||
keynav_wrap_h = 1 # wrap horizontally at row edges
|
||||
keynav_wrap_v = 1 # wrap vertically at column edges
|
||||
}
|
||||
}
|
||||
@@ -20,15 +20,6 @@ general {
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#gestures
|
||||
gestures {
|
||||
workspace_swipe = true
|
||||
workspace_swipe_fingers = 4
|
||||
workspace_swipe_distance = 250
|
||||
workspace_swipe_min_speed_to_force = 15
|
||||
workspace_swipe_create_new = false
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#group
|
||||
group {
|
||||
col.border_active = $color6
|
||||
@@ -67,6 +58,7 @@ misc {
|
||||
vrr = 2
|
||||
# Hypridle cmatrix fix:
|
||||
session_lock_xray = true
|
||||
middle_click_paste = false
|
||||
}
|
||||
|
||||
# https://wiki.hyprland.org/0.45.0/Configuring/Variables/#render
|
||||
@@ -90,3 +82,8 @@ master {
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
|
||||
device {
|
||||
name = logitech-gaming-mouse-g502
|
||||
sensitivity=0.9
|
||||
}
|
||||
|
||||
@@ -5,49 +5,217 @@
|
||||
# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ #
|
||||
|
||||
# Float Necessary Windows
|
||||
windowrule = float, title:Rofi
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol)
|
||||
windowrule = float, class:^()$,title:^(Picture in picture)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Open File)$
|
||||
windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$
|
||||
windowrule = float, class:^(blueman-manager)$
|
||||
windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
windowrule = float, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Extension:.*)$
|
||||
windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
windowrule = float, class:^(CachyOSHello)$
|
||||
windowrule = float, class:^(zenity)$
|
||||
windowrule = float, class:^()$,title:^(Steam - Self Updater)$
|
||||
windowrule = float, class:^(Zotero)$,title:^(Progress)$
|
||||
windowrule {
|
||||
name = windowrule-1
|
||||
float = on
|
||||
match:title = Rofi
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-2
|
||||
float = on
|
||||
match:class = ^(org.pulseaudio.pavucontrol)
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-3
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Picture in picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-4
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Save File)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-5
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Open File)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-6
|
||||
float = on
|
||||
match:class = ^(LibreWolf)$
|
||||
match:title = ^(Picture-in-Picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-7
|
||||
float = on
|
||||
match:class = ^(blueman-manager)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-8
|
||||
float = on
|
||||
match:class = ^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-9
|
||||
float = on
|
||||
size = 260 340
|
||||
match:class = ^(pomodorolm)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-10
|
||||
float = on
|
||||
match:title = ^(Extension:.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-11
|
||||
float = on
|
||||
match:class = ^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-12
|
||||
float = on
|
||||
match:class = ^(CachyOSHello)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-13
|
||||
float = on
|
||||
match:class = ^(zenity)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-14
|
||||
float = on
|
||||
match:class = ^()$
|
||||
match:title = ^(Steam - Self Updater)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-15
|
||||
float = on
|
||||
match:class = ^(Zotero)$
|
||||
match:title = ^(Progress)$
|
||||
}
|
||||
|
||||
# Increase the opacity
|
||||
windowrule = opacity 0.92, class:^(thunar|nemo|dolphin)$
|
||||
windowrule = opacity 0.96, class:^(discord|armcord|webcord)$
|
||||
windowrule = opacity 0.95, title:^(QQ|Telegram)$
|
||||
windowrule = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$
|
||||
windowrule = opacity 1, class:^(kitty)$
|
||||
windowrule {
|
||||
name = windowrule-16
|
||||
opacity = 0.92
|
||||
match:class = ^(thunar|nemo|dolphin)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-17
|
||||
opacity = 0.96
|
||||
match:class = ^(discord|armcord|webcord)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-18
|
||||
opacity = 0.95
|
||||
match:title = ^(QQ|Telegram)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-19
|
||||
opacity = 0.95
|
||||
match:title = ^(NetEase Cloud Music Gtk4)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-20
|
||||
opacity = 1
|
||||
match:class = ^(kitty)$
|
||||
}
|
||||
|
||||
# General window rules
|
||||
windowrule = size 260 340, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Picture-in-Picture)$
|
||||
windowrule = size 960 540, title:^(Picture-in-Picture)$
|
||||
windowrule = move 25%-, title:^(Picture-in-Picture)$
|
||||
windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$
|
||||
windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = pin, title:^(danmufloat)$
|
||||
windowrule = rounding 5, title:^(danmufloat|termfloat)$
|
||||
windowrule = animation slide right, class:^(kitty|Alacritty)$
|
||||
windowrule = noblur, class:^(org.mozilla.firefox)$
|
||||
windowrule = nodim, class:^(zen)$
|
||||
windowrule = float, title:^(Zotero Settings)$
|
||||
windowrule {
|
||||
name = windowrule-21
|
||||
float = on
|
||||
size = 960 540
|
||||
move = ((monitor_w*0.25)-)
|
||||
match:title = ^(Picture-in-Picture)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-22
|
||||
float = on
|
||||
match:title = ^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-23
|
||||
move = ((monitor_w*0.25)-)
|
||||
size = 960 540
|
||||
match:title = ^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-24
|
||||
pin = on
|
||||
match:title = ^(danmufloat)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-25
|
||||
rounding = 5
|
||||
match:title = ^(danmufloat|termfloat)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-26
|
||||
animation = slide right
|
||||
match:class = ^(kitty|Alacritty)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-27
|
||||
no_blur = on
|
||||
match:class = ^(org.mozilla.firefox)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-28
|
||||
no_dim = on
|
||||
match:class = ^(zen)$
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-29
|
||||
float = on
|
||||
match:title = ^(Zotero Settings)$
|
||||
}
|
||||
|
||||
# Decorations related to floating windows on workspaces 1 to 10
|
||||
windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = bordercolor $color4, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = rounding 8, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule {
|
||||
name = windowrule-30
|
||||
border_size = 2
|
||||
border_color = $color4
|
||||
rounding = 8
|
||||
match:float = 1
|
||||
match:workspace = w[fv1-10]
|
||||
}
|
||||
|
||||
# Decorations related to tiling windows on workspaces 1 to 10
|
||||
windowrule = bordersize 3, floating:0, onworkspace:f[1-10]
|
||||
windowrule = rounding 4, floating:0, onworkspace:f[1-10]
|
||||
windowrule = opacity 0.9, title:^(.+nvim$)
|
||||
windowrule {
|
||||
name = windowrule-31
|
||||
border_size = 3
|
||||
rounding = 4
|
||||
match:float = 0
|
||||
match:workspace = f[1-10]
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = windowrule-32
|
||||
opacity = 0.9
|
||||
match:title = ^(.+nvim$)
|
||||
}
|
||||
|
||||
# Windows Rules End #
|
||||
|
||||
# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ #
|
||||
@@ -64,13 +232,61 @@ windowrule = opacity 0.9, title:^(.+nvim$)
|
||||
# Workspaces Rules End #
|
||||
|
||||
# Layers Rules #
|
||||
layerrule = animation slide top, logout_dialog
|
||||
layerrule {
|
||||
name = layerrule-1
|
||||
animation = slide top
|
||||
match:namespace = logout_dialog
|
||||
}
|
||||
|
||||
# layerrule = animation popin 50%, waybar
|
||||
layerrule = animation slide down, waybar
|
||||
layerrule = animation fade 50%, wallpaper
|
||||
layerrule {
|
||||
name = layerrule-2
|
||||
animation = slide down
|
||||
match:namespace = waybar
|
||||
}
|
||||
|
||||
layerrule {
|
||||
name = layerrule-3
|
||||
animation = fade 50%
|
||||
match:namespace = wallpaper
|
||||
}
|
||||
|
||||
# vicinae
|
||||
layerrule {
|
||||
name = vicinae-blur
|
||||
blur = on
|
||||
animation = popin
|
||||
dim_around = on
|
||||
ignore_alpha = 1
|
||||
match:namespace = vicinae
|
||||
}
|
||||
|
||||
# Layers Rules End #
|
||||
|
||||
# Zotero Libreoffice
|
||||
windowrule = float,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = center,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = noanim,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule {
|
||||
name = windowrule-33
|
||||
float = on
|
||||
center = on
|
||||
no_anim = on
|
||||
match:class = ^(Zotero)$
|
||||
match:title = ^(Citation Dialog)$
|
||||
}
|
||||
|
||||
# gnome calendar
|
||||
windowrule {
|
||||
name = windowrule-cal
|
||||
float = on
|
||||
center = on
|
||||
match:class = ^(org.gnome.Calendar)$
|
||||
match:title = ^(Calendar)$
|
||||
animation = popin
|
||||
opacity = 0.8
|
||||
}
|
||||
|
||||
windowrule {
|
||||
name = waypaper-fix
|
||||
match:class = ^(waypaper)$
|
||||
float = on
|
||||
center = on
|
||||
}
|
||||
77
.config/hypr/config/windowrules.conf_bak
Normal file
77
.config/hypr/config/windowrules.conf_bak
Normal file
@@ -0,0 +1,77 @@
|
||||
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||
# ┃ Windowrules Configuration ┃
|
||||
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
|
||||
|
||||
# Windows Rules https://wiki.hyprland.org/0.45.0/Configuring/Window-Rules/ #
|
||||
|
||||
# Float Necessary Windows
|
||||
windowrule = float, title:Rofi
|
||||
windowrule = float, class:^(org.pulseaudio.pavucontrol)
|
||||
windowrule = float, class:^()$,title:^(Picture in picture)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Save File)$
|
||||
windowrule = float, class:^()$,title:^(Open File)$
|
||||
windowrule = float, class:^(LibreWolf)$,title:^(Picture-in-Picture)$
|
||||
windowrule = float, class:^(blueman-manager)$
|
||||
windowrule = float, class:^(xdg-desktop-portal-gtk|xdg-desktop-portal-kde|xdg-desktop-portal-hyprland)(.*)$
|
||||
windowrule = float, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Extension:.*)$
|
||||
windowrule = float, class:^(polkit-gnome-authentication-agent-1|hyprpolkitagent|org.org.kde.polkit-kde-authentication-agent-1)(.*)$
|
||||
windowrule = float, class:^(CachyOSHello)$
|
||||
windowrule = float, class:^(zenity)$
|
||||
windowrule = float, class:^()$,title:^(Steam - Self Updater)$
|
||||
windowrule = float, class:^(Zotero)$,title:^(Progress)$
|
||||
# Increase the opacity
|
||||
windowrule = opacity 0.92, class:^(thunar|nemo|dolphin)$
|
||||
windowrule = opacity 0.96, class:^(discord|armcord|webcord)$
|
||||
windowrule = opacity 0.95, title:^(QQ|Telegram)$
|
||||
windowrule = opacity 0.95, title:^(NetEase Cloud Music Gtk4)$
|
||||
windowrule = opacity 1, class:^(kitty)$
|
||||
# General window rules
|
||||
windowrule = size 260 340, class:^(pomodorolm)$
|
||||
windowrule = float, title:^(Picture-in-Picture)$
|
||||
windowrule = size 960 540, title:^(Picture-in-Picture)$
|
||||
windowrule = move 25%-, title:^(Picture-in-Picture)$
|
||||
windowrule = float, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp|nwg-look|nwg-displays)$
|
||||
windowrule = move 25%-, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = size 960 540, title:^(imv|mpv|danmufloat|termfloat|nemo|ncmpcpp)$
|
||||
windowrule = pin, title:^(danmufloat)$
|
||||
windowrule = rounding 5, title:^(danmufloat|termfloat)$
|
||||
windowrule = animation slide right, class:^(kitty|Alacritty)$
|
||||
windowrule = noblur, class:^(org.mozilla.firefox)$
|
||||
windowrule = nodim, class:^(zen)$
|
||||
windowrule = float, title:^(Zotero Settings)$
|
||||
# Decorations related to floating windows on workspaces 1 to 10
|
||||
windowrule = bordersize 2, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = bordercolor $color4, floating:1, onworkspace:w[fv1-10]
|
||||
windowrule = rounding 8, floating:1, onworkspace:w[fv1-10]
|
||||
# Decorations related to tiling windows on workspaces 1 to 10
|
||||
windowrule = bordersize 3, floating:0, onworkspace:f[1-10]
|
||||
windowrule = rounding 4, floating:0, onworkspace:f[1-10]
|
||||
windowrule = opacity 0.9, title:^(.+nvim$)
|
||||
# Windows Rules End #
|
||||
|
||||
# Workspaces Rules https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/ #
|
||||
# workspace = 1, default:true, monitor:$priMon
|
||||
# workspace = 6, default:true, monitor:$secMon
|
||||
# Workspace selectors https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#workspace-selectors
|
||||
# workspace = r[1-5], monitor:$priMon
|
||||
# workspace = r[6-10], monitor:$secMon
|
||||
# workspace = special:scratchpad, on-created-empty:$applauncher
|
||||
# no_gaps_when_only deprecated instead workspaces rules with selectors can do the same
|
||||
# Smart gaps from 0.45.0 https://wiki.hyprland.org/0.45.0/Configuring/Workspace-Rules/#smart-gaps
|
||||
#workspace = w[tv1-10], gapsout:5, gapsin:3
|
||||
#workspace = f[1], gapsout:5, gapsin:3
|
||||
# Workspaces Rules End #
|
||||
|
||||
# Layers Rules #
|
||||
layerrule = animation slide top, logout_dialog
|
||||
# layerrule = animation popin 50%, waybar
|
||||
layerrule = animation slide down, waybar
|
||||
layerrule = animation fade 50%, wallpaper
|
||||
# Layers Rules End #
|
||||
|
||||
# Zotero Libreoffice
|
||||
windowrule = float,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = center,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
windowrule = noanim,class:^(Zotero)$,title:^(Citation Dialog)$
|
||||
@@ -7,10 +7,6 @@ workspace = 2, monitor:eDP-2
|
||||
workspace = 3, monitor:eDP-2
|
||||
workspace = 4, monitor:eDP-2
|
||||
|
||||
workspace = 5, monitor:DP-2
|
||||
workspace = 6, monitor:DP-2
|
||||
workspace = 7, monitor:DP-2
|
||||
workspace = 7, monitor:desc:Samsung Electric Company S24F350 H4ZR302705
|
||||
workspace = 8, monitor:DP-2
|
||||
|
||||
workspace = 7, monitor:HDMI-A-1
|
||||
workspace = 8, monitor:HDMI-A-1
|
||||
workspace = 9, monitor:HDMI-A-1
|
||||
|
||||
@@ -22,8 +22,8 @@ listener {
|
||||
on-timeout = ~/.config/swaylock/lockscript.sh # lock screen when timeout has passed
|
||||
}
|
||||
|
||||
listener {
|
||||
timeout = 900 # 15min
|
||||
on-timeout = hyprctl dispatch dpms off 5.5 # screen off when timeout has passed
|
||||
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
# listener {
|
||||
# timeout = 900 # 15min
|
||||
# on-timeout = hyprctl dispatch dpms off 5.5 # screen off when timeout has passed
|
||||
# on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected after timeout has fired.
|
||||
# }
|
||||
|
||||
4
.config/hypr/pyprland.toml
Normal file
4
.config/hypr/pyprland.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[pyprland]
|
||||
plugins = [
|
||||
"shift_monitors",
|
||||
]
|
||||
@@ -79,8 +79,8 @@ profile_dual() {
|
||||
profile_triple() {
|
||||
# Ensure both externals are on (and only those two)
|
||||
disable_all_externals
|
||||
enable_line "$EXT2" # ext2 first so it appears in the middle
|
||||
enable_line "$EXT1"
|
||||
enable_line "$EXT2"
|
||||
# You can drop EXT_FALLBACK if you don't actually need it:
|
||||
# enable_line "$EXT_FALLBACK"
|
||||
notify "Profile: Triple" "Enabled both externals"
|
||||
|
||||
@@ -1,20 +1,22 @@
|
||||
#!/bin/env bash
|
||||
|
||||
# Menu launcher wrapper
|
||||
menu_prompt() {
|
||||
if command -v tofi &>/dev/null; then
|
||||
printf "%b" "$1" | tofi --prompt-text="$2"
|
||||
elif command -v fuzzel &>/dev/null; then
|
||||
printf "%b" "$1" | fuzzel -d -p "$2" -w 25 -l 10
|
||||
elif command -v wofi &>/dev/null; then
|
||||
printf "%b" "$1" | wofi --dmenu --prompt="$2"
|
||||
elif command -v rofi &>/dev/null; then
|
||||
printf "%b" "$1" | rofi -dmenu -p "$2"
|
||||
else
|
||||
notify-send "No compatible launcher found" "Install tofi, fuzzel, wofi, or rofi."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
# CLI options
|
||||
DMENU_CMD=""
|
||||
while getopts ":d:" opt; do
|
||||
case "$opt" in
|
||||
d) DMENU_CMD="$OPTARG" ;;
|
||||
*) ;;
|
||||
esac
|
||||
done
|
||||
shift $((OPTIND - 1))
|
||||
|
||||
if [ -z "$DMENU_CMD" ]; then
|
||||
notify-send "Missing launcher" "Use -d to provide a dmenu command"
|
||||
exit 1
|
||||
fi
|
||||
read -r -a DMENU_ARR <<< "$DMENU_CMD"
|
||||
DMENU_BIN="${DMENU_ARR[0]}"
|
||||
command -v "$DMENU_BIN" &>/dev/null || { notify-send "Launcher not found" "$DMENU_BIN is not installed"; exit 1; }
|
||||
|
||||
# Directories
|
||||
SCREENSHOT_DIR="${HOME}/Pictures"
|
||||
@@ -29,7 +31,7 @@ if pgrep -u "$USER" wl-screenrec > /dev/null; then
|
||||
notify-send "Recording stopped"
|
||||
|
||||
# Ask if user wants to compress the video
|
||||
COMPRESS=$(menu_prompt "✅ compress\n❌ keep original" "🗜️ Compress video?")
|
||||
COMPRESS=$(printf "%b" "✅ compress\n❌ keep original" | "${DMENU_ARR[@]}" "🗜️ Compress video?")
|
||||
if [[ "$COMPRESS" == "✅ compress" ]]; then
|
||||
# Find the most recent video file
|
||||
LATEST_VIDEO=$(find "$RECORDING_DIR" -name "*.mp4" -type f -printf '%T@ %p\n' | sort -n | tail -1 | cut -d' ' -f2-)
|
||||
@@ -39,7 +41,7 @@ if pgrep -u "$USER" wl-screenrec > /dev/null; then
|
||||
if ffmpeg -i "$LATEST_VIDEO" -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k "$COMPRESSED_VIDEO" -y &>/dev/null; then
|
||||
notify-send "Compression complete" "$COMPRESSED_VIDEO"
|
||||
# Ask if user wants to delete original
|
||||
DELETE_ORIGINAL=$(menu_prompt "🗑️ delete original\n📁 keep both" "Delete original?")
|
||||
DELETE_ORIGINAL=$(printf "%b" "🗑️ delete original\n📁 keep both" | "${DMENU_ARR[@]}" "Delete original?")
|
||||
if [[ "$DELETE_ORIGINAL" == "🗑️ delete original" ]]; then
|
||||
rm "$LATEST_VIDEO"
|
||||
notify-send "Original deleted" "Keeping compressed version only"
|
||||
@@ -66,12 +68,12 @@ record all
|
||||
EOF
|
||||
)
|
||||
|
||||
SELECTION=$(menu_prompt "$OPTIONS" " ")
|
||||
SELECTION=$(printf "%b" "$OPTIONS" | "${DMENU_ARR[@]}" " ")
|
||||
[ -z "$SELECTION" ] && exit 0
|
||||
|
||||
# Ask for audio mode if it's a recording
|
||||
select_audio_mode() {
|
||||
AUDIO_MODE=$(menu_prompt "🎤 mic\n💻 internal\n🚫 none" "🎙️ Audio?")
|
||||
AUDIO_MODE=$(printf "%b" "🎤 mic\n💻 internal\n🚫 none" | "${DMENU_ARR[@]}" "🎙️ Audio?")
|
||||
[ -z "$AUDIO_MODE" ] && echo "__cancel__" && return
|
||||
|
||||
case "$AUDIO_MODE" in
|
||||
|
||||
0
.config/hypr/workspaces.conf
Normal file
0
.config/hypr/workspaces.conf
Normal file
@@ -1,26 +1,25 @@
|
||||
[colors.bright]
|
||||
black = "{{color8}}"
|
||||
red = "{{color9}}"
|
||||
green = "{{color10}}"
|
||||
yellow = "{{color11}}"
|
||||
blue = "{{color12}}"
|
||||
magenta = "{{color13}}"
|
||||
cyan = "{{color14}}"
|
||||
white = "{{color15}}"
|
||||
|
||||
black = "{{color8}}" # Often a brighter version of normal black, could be slightly desaturated light grey
|
||||
red = "{{color9}}" # More saturated red for emphasis
|
||||
green = "{{color10}}" # More saturated green for emphasis
|
||||
yellow = "{{color11}}" # More saturated yellow, good for prompts or warnings
|
||||
blue = "{{color12}}" # More saturated blue
|
||||
magenta = "{{color13}}" # More saturated magenta
|
||||
cyan = "{{color14}}" # Make cyan lighter to stand out on dark backgrounds
|
||||
white = "{{color15}}" # Should be the brightest possible
|
||||
[colors.cursor]
|
||||
cursor = "{{cursor}}"
|
||||
|
||||
[colors.normal]
|
||||
black = "{{color0}}"
|
||||
red = "{{color1}}"
|
||||
green = "{{color2}}"
|
||||
yellow = "{{color3}}"
|
||||
blue = "{{color4}}"
|
||||
magenta = "{{color5}}"
|
||||
cyan = "{{color6}}"
|
||||
white = "{{color7}}"
|
||||
black = "{{color0}}" # Main dark grey/black
|
||||
red = "{{color1}}" # Normal red
|
||||
green = "{{color2}}" # Normal green
|
||||
yellow = "{{color3}}" # Normal yellow
|
||||
blue = "{{color4}}" # Normal blue
|
||||
magenta = "{{color5}}" # Normal magenta
|
||||
cyan = "{{color6}}" # This needs attention. If background is dark, this should be brighter than the background. If background is light, darker.
|
||||
white = "{{color7}}" # Main light grey/white
|
||||
|
||||
[colors.primary]
|
||||
background = "{{background}}"
|
||||
foreground = "{{foreground}}"
|
||||
foreground = "{{foreground}}" # Force foreground to be the absolute brightest color from the palette
|
||||
|
||||
@@ -12,8 +12,8 @@ width = 100%
|
||||
height = 100%
|
||||
|
||||
hide-cursor = false
|
||||
text-color = #{{ color1 | strip }}55
|
||||
prompt-color = #{{ foreground | strip }}77
|
||||
text-color = #{{ color1 | strip }}88
|
||||
prompt-color = #{{ foreground | strip }}99
|
||||
selection-color = #{{ color5 | strip }}
|
||||
background-color = #{{ background | strip }}99
|
||||
|
||||
|
||||
119
.config/wallust/templates/vicinae.toml
Normal file
119
.config/wallust/templates/vicinae.toml
Normal file
@@ -0,0 +1,119 @@
|
||||
# Vicinae Theme - Wallust Generated
|
||||
# This file is a template. Place it in your wallust templates directory
|
||||
# and configure wallust.toml to output it to your vicinae themes folder.
|
||||
# obtained from https://github.com/saatvik333/niri-dotfiles
|
||||
|
||||
[meta]
|
||||
name = "Wallust Generated"
|
||||
description = "Dynamic theme generated from current wallpaper"
|
||||
variant = "dark" # Wallust defaults to dark variants usually.
|
||||
inherits = "vicinae-dark"
|
||||
|
||||
# ============================================================================
|
||||
# Core Colors
|
||||
# ============================================================================
|
||||
|
||||
[colors.core]
|
||||
accent = "{{color4}}" # Standard ANSI Blue for primary actions
|
||||
accent_foreground = "{{background}}" # Text on accent should be dark for contrast
|
||||
background = "{{background}}" # Main wallpaper-derived background
|
||||
foreground = "{{foreground}}" # Main text color
|
||||
secondary_background = "{{color0 | lighten(0.05)}}" # Slightly elevated surface
|
||||
border = "{{color8 | darken(0.3)}}" # Subtler border than raw bright-black
|
||||
|
||||
# ============================================================================
|
||||
# Window-Specific Colors
|
||||
# ============================================================================
|
||||
|
||||
[colors.main_window]
|
||||
border = "{{color8 | darken(0.3)}}"
|
||||
|
||||
[colors.settings_window]
|
||||
border = "{{color8 | darken(0.3)}}"
|
||||
|
||||
# ============================================================================
|
||||
# Accent Colors
|
||||
# ============================================================================
|
||||
|
||||
[colors.accents]
|
||||
blue = "{{color4}}"
|
||||
green = "{{color2}}"
|
||||
magenta = "{{color5}}"
|
||||
orange = "{{color3}}" # ANSI Yellow/Orange are often swapped or similar
|
||||
red = "{{color1}}"
|
||||
yellow = "{{color3}}"
|
||||
cyan = "{{color6}}"
|
||||
purple = "{{color5}}"
|
||||
|
||||
# ============================================================================
|
||||
# Text Colors
|
||||
# ============================================================================
|
||||
|
||||
[colors.text]
|
||||
default = "{{foreground}}"
|
||||
muted = "{{foreground | darken(0.4)}}" # Derived from foreground for consistent tone
|
||||
danger = "{{color1}}" # Red for errors
|
||||
success = "{{color2}}" # Green for success
|
||||
placeholder = "{{foreground | darken(0.6)}}" # Even darker than muted
|
||||
selection = { background = "{{color4}}", foreground = "{{background}}" }
|
||||
|
||||
[colors.text.links]
|
||||
default = "{{color4}}"
|
||||
visited = "{{color5 | darken(0.1)}}"
|
||||
|
||||
# ============================================================================
|
||||
# Input Fields
|
||||
# ============================================================================
|
||||
|
||||
[colors.input]
|
||||
border = "{{color8 | darken(0.3)}}"
|
||||
border_focus = "{{color4}}"
|
||||
border_error = "{{color1}}"
|
||||
|
||||
# ============================================================================
|
||||
# Buttons
|
||||
# ============================================================================
|
||||
|
||||
[colors.button.primary]
|
||||
background = "{{color0 | lighten(0.1)}}" # Explicitly elevated button background
|
||||
foreground = "{{foreground}}"
|
||||
hover = { background = "{{color8 | darken(0.1)}}" } # Smoother hover state
|
||||
focus = { outline = "{{color4}}" }
|
||||
|
||||
# ============================================================================
|
||||
# Lists
|
||||
# ============================================================================
|
||||
|
||||
[colors.list.item.hover]
|
||||
background = "{{color8 | darken(0.2)}}" # darker hover for better text contrast
|
||||
foreground = "{{foreground}}"
|
||||
|
||||
[colors.list.item.selection]
|
||||
background = "{{color8}}" # Selected item background
|
||||
foreground = "{{foreground}}"
|
||||
secondary_background = "{{color8}}"
|
||||
secondary_foreground = "{{foreground}}"
|
||||
|
||||
# ============================================================================
|
||||
# Grid Items
|
||||
# ============================================================================
|
||||
|
||||
[colors.grid.item]
|
||||
background = "{{color0 | lighten(0.05)}}"
|
||||
hover = { outline = "{{foreground | darken(0.2)}}" }
|
||||
selection = { outline = "{{color4}}" }
|
||||
|
||||
# ============================================================================
|
||||
# Scrollbars
|
||||
# ============================================================================
|
||||
|
||||
[colors.scrollbars]
|
||||
background = "{{color0}}"
|
||||
|
||||
# ============================================================================
|
||||
# Loading Indicators
|
||||
# ============================================================================
|
||||
|
||||
[colors.loading]
|
||||
bar = "{{color4}}"
|
||||
spinner = "{{color4}}"
|
||||
@@ -41,6 +41,7 @@ check_contrast = true
|
||||
|
||||
[templates]
|
||||
waybar = { template = 'waybar.css', target = '~/.config/waybar/colors-wallust.css' }
|
||||
vicinae = { src = 'vicinae.toml', dst = '~/.local/share/vicinae/themes/wallust.toml'}
|
||||
# alacritty = { template = 'alacritty.toml', target = '~/.config/alacritty/colors.toml' }
|
||||
hyprland = { template = 'hyprland.conf', target = '~/.config/hypr/config/colors.conf' }
|
||||
vscode = { template = 'vscode', target = '~/.cache/wal/colors' }
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
@define-color cursor #AA9BB0;
|
||||
@define-color background #1B1D1E;
|
||||
@define-color foreground #E1E9EE;
|
||||
@define-color color0 #424345;
|
||||
@define-color color1 #58120D;
|
||||
@define-color color2 #744E72;
|
||||
@define-color color3 #517185;
|
||||
@define-color color4 #DD2A4A;
|
||||
@define-color color5 #DEACB3;
|
||||
@define-color color6 #A9BFCE;
|
||||
@define-color color7 #CCD7DE;
|
||||
@define-color color8 #8E969B;
|
||||
@define-color color9 #58120D;
|
||||
@define-color color10 #744E72;
|
||||
@define-color color11 #517185;
|
||||
@define-color color12 #DD2A4A;
|
||||
@define-color color13 #DEACB3;
|
||||
@define-color color14 #A9BFCE;
|
||||
@define-color color15 #CCD7DE;
|
||||
@define-color cursor #9D7C73;
|
||||
@define-color background #0E0E11;
|
||||
@define-color foreground #FDF2DE;
|
||||
@define-color color0 #38393C;
|
||||
@define-color color1 #424652;
|
||||
@define-color color2 #6A3E40;
|
||||
@define-color color3 #736956;
|
||||
@define-color color4 #897C88;
|
||||
@define-color color5 #9B8166;
|
||||
@define-color color6 #F9D9A2;
|
||||
@define-color color7 #F4E4C8;
|
||||
@define-color color8 #AA9F8C;
|
||||
@define-color color9 #424652;
|
||||
@define-color color10 #6A3E40;
|
||||
@define-color color11 #736956;
|
||||
@define-color color12 #897C88;
|
||||
@define-color color13 #9B8166;
|
||||
@define-color color14 #F9D9A2;
|
||||
@define-color color15 #F4E4C8;
|
||||
|
||||
@@ -1,385 +0,0 @@
|
||||
{
|
||||
// -------------------------------------------------------------------------
|
||||
// Global configuration
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
"layer": "top",
|
||||
|
||||
"position": "top",
|
||||
|
||||
"height": 20,
|
||||
|
||||
"margin-left": 10,
|
||||
"margin-bottom": 0,
|
||||
"margin-right": 10,
|
||||
|
||||
"spacing": 5, // Gaps between modules (4px)
|
||||
|
||||
"modules-left": [
|
||||
//"custom/rofi",
|
||||
"hyprland/workspaces",
|
||||
"custom/weather",
|
||||
"clock",
|
||||
//"hyprland/submap",
|
||||
"temperature",
|
||||
//"idle_inhibitor",
|
||||
//"mpd",
|
||||
"custom/spotify"
|
||||
],
|
||||
"modules-center": [
|
||||
"hyprland/window"
|
||||
//"custom/gammastep"
|
||||
],
|
||||
"modules-right": [
|
||||
"backlight",
|
||||
"custom/storage",
|
||||
"memory",
|
||||
"cpu",
|
||||
"battery",
|
||||
//"pulseaudio",
|
||||
"wireplumber",
|
||||
"bluetooth",
|
||||
//"custom/screenshot_t",
|
||||
"tray",
|
||||
"custom/power"
|
||||
],
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Modules
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
"custom/sp1": {
|
||||
"format": " | ",
|
||||
"tooltip": false
|
||||
},
|
||||
"custom/sp2": {
|
||||
"format": " |",
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/rofi": {
|
||||
"format": "",
|
||||
"tooltip": false,
|
||||
"on-click-right": "nwg-drawer",
|
||||
"on-click": "wofi --show run",
|
||||
"on-click-middle": "pkill -9 wofi"
|
||||
},
|
||||
"custom/screenshot_t":{
|
||||
"format":" ",
|
||||
"on-click": "~/.config/hypr/scripts/screenshot_full",
|
||||
"on-click-right":"~/.config/hypr/scripts/screenshot_area"
|
||||
},
|
||||
|
||||
"clock#1": {
|
||||
"format": " {:%a}",
|
||||
"tooltip": false,
|
||||
"on-click": "gsimplecal"
|
||||
},
|
||||
"clock#2": {
|
||||
"format": " {:%d-%h-%Y}",
|
||||
"tooltip": false,
|
||||
"on-click": "gsimplecal"
|
||||
},
|
||||
"clock#3": {
|
||||
"format": " {:%H:%M:%S %p}",
|
||||
"tooltip": false,
|
||||
"on-click": "gsimplecal"
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
// "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system
|
||||
"format": "",
|
||||
"format-connected": " {num_connections} connected",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
|
||||
"on-click": "blueman-manager"
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
// "thermal-zone": 1,
|
||||
"interval": 4,
|
||||
//"hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": " {temperatureC}°C",
|
||||
"format-critical": " {temperatureC}°C",
|
||||
"format": "{icon} {temperatureC}°C",
|
||||
"format-icons": ["", "", ""],
|
||||
"max-length": 7,
|
||||
"min-length": 7,
|
||||
"on-click": "xsensors"
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {used:0.2f} / {total:0.0f} GB",
|
||||
"on-click": "alacritty -e btop"
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"interval": 2,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": " {essid} ({signalStrength}%)",
|
||||
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format": "",
|
||||
"format-disconnected": "",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
"on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)",
|
||||
"on-click-right": "wl-copy $(ip address show up scope global | grep inet6 | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c6-)",
|
||||
"tooltip-format": " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n",
|
||||
"tooltip-format-wifi": " {essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}",
|
||||
"interval": 10
|
||||
},
|
||||
"custom/storage": {
|
||||
"format": " {}",
|
||||
"format-alt": "{percentage}% ",
|
||||
"format-alt-click": "click-right",
|
||||
"return-type": "json",
|
||||
"interval": 60,
|
||||
"exec": "~/.config/waybar/modules/storage.sh"
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-alt": "{percent}% {icon}",
|
||||
"format-alt-click": "click-right",
|
||||
//"format-icons": ["", ""],
|
||||
"format-icons": ["", ""],
|
||||
"on-scroll-down": "brightnessctl s 5%-",
|
||||
"on-scroll-up": "brightnessctl s +5%"
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
},
|
||||
"tooltip": "true"
|
||||
},
|
||||
"custom/weather": {
|
||||
"format": "{}",
|
||||
"format-alt": "{alt}: {}",
|
||||
"format-alt-click": "click-right",
|
||||
"interval": 3600,
|
||||
"exec": "curl -s 'https://wttr.in/?format=1'",
|
||||
//"return-type": "json",
|
||||
//"exec": "~/.config/waybar/modules/weather.sh",
|
||||
"exec-if": "ping wttr.in -c1"
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": "<big></big> {}",
|
||||
"interval": 3600, // every hour
|
||||
"exec": "checkupdates | wc -l", // # of updates
|
||||
"exec-if": "exit 0", // always run; consider advanced run conditions
|
||||
"on-click": "alacritty -e 'paru'; pkill -SIGRTMIN+8 waybar", // update system
|
||||
"signal": 8,
|
||||
"max-length": 5,
|
||||
"min-length": 3
|
||||
},
|
||||
|
||||
"custom/spotify": {
|
||||
"exec": "~/.config/waybar/mediaplayer.py --player spotify",
|
||||
"format": "{} ",
|
||||
"return-type": "json",
|
||||
"on-click": "playerctl play-pause",
|
||||
"on-scroll-up": "playerctl next",
|
||||
"on-scroll-down": "playerctl previous"
|
||||
},
|
||||
|
||||
"custom/media": {
|
||||
"format": "{0} {1}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"format-icons": {
|
||||
"spotify": "",
|
||||
"default": "🎜"
|
||||
},
|
||||
"escape": true,
|
||||
//"exec": "~/.config/waybar/mediaplayer.py" // Script in resources folder
|
||||
// "exec": "~/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": " ",
|
||||
"tooltip": false,
|
||||
"on-click": "wlogout"
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": " {:%H:%M %e %b}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"today-format": "<b>{}</b>"
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%H:%M \n %e %b}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"today-format": "<b>{}</b>"
|
||||
},
|
||||
|
||||
"custom/gammastep": {
|
||||
"interval": 5,
|
||||
"return-type": "json",
|
||||
"exec": {
|
||||
"pre": "if unit_status=\"$(systemctl --user is-active gammastep)\"; then\nstatus=\"$unit_status ($(journalctl --user -u gammastep.service -g 'Period: ' | tail -1 | cut -d ':' -f6 | xargs))\"\nelse\nstatus=\"$unit_status\"\nfi",
|
||||
"alt": "${status:-inactive}",
|
||||
"tooltip": "Gammastep is $status",
|
||||
},
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activating": " ",
|
||||
"deactivating": " ",
|
||||
"inactive": "? ",
|
||||
"active (Night)": " ",
|
||||
"active (Nighttime)": " ",
|
||||
"active (Transition (Night)": " ",
|
||||
"active (Transition (Nighttime)": " ",
|
||||
"active (Day)": " ",
|
||||
"active (Daytime)": " ",
|
||||
"active (Transition (Day)": " ",
|
||||
"active (Transition (Daytime)": " ",
|
||||
},
|
||||
"on-click": "systemctl --user is-active gammastep && systemctl --user stop gammastep || systemctl --user start gammastep",
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
//"format": " {}%", // Icon: microchip
|
||||
"format": "{max_frequency}GHz <span color=\"darkgray\">| {usage}%</span>",
|
||||
"max-length": 13,
|
||||
"min-length": 13
|
||||
},
|
||||
|
||||
"mpd": {
|
||||
"max-length": 25,
|
||||
"format": "<span foreground='#bb9af7'></span> {title}",
|
||||
"format-paused": " {title}",
|
||||
"format-stopped": "<span foreground='#bb9af7'></span>",
|
||||
"format-disconnected": "",
|
||||
"on-click": "mpc --quiet toggle",
|
||||
"on-click-right": "mpc update; mpc ls | mpc add",
|
||||
"on-click-middle": "alacritty -e ncmpcpp",
|
||||
"on-scroll-up": "mpc --quiet prev",
|
||||
"on-scroll-down": "mpc --quiet next",
|
||||
"smooth-scrolling-threshold": 5,
|
||||
"tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})"
|
||||
},
|
||||
|
||||
"custom/title": {
|
||||
"format": "{}",
|
||||
"interval": 0,
|
||||
"return-type": "json",
|
||||
//"max-length": 35,
|
||||
"tooltip": false
|
||||
},
|
||||
|
||||
"custom/title#name": {
|
||||
"format": "{}",
|
||||
"interval": 0,
|
||||
"return-type": "json",
|
||||
|
||||
"max-length": 35,
|
||||
"exec": "$HOME/.scripts/title"
|
||||
},
|
||||
|
||||
/*"custom/keyboard": {
|
||||
"format": " {}",
|
||||
"interval": 1,
|
||||
"exec": "$HOME/.config/waybar/get_kbdlayout.sh"
|
||||
},*/
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": true,
|
||||
"format": "{name}",
|
||||
"format-icons": {
|
||||
"1": "一",
|
||||
"2": "二",
|
||||
"3": "三",
|
||||
"4": "四",
|
||||
"5": "五",
|
||||
"6": "六",
|
||||
"7": "七",
|
||||
"8": "八",
|
||||
"9": "九",
|
||||
"10": "十",
|
||||
},
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null",
|
||||
"sort-by-number": true,
|
||||
"active-only": false,
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"max-length": 100,
|
||||
"separate-outputs": true
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"scroll-step": 3, // %, can be a float
|
||||
"format": "{icon} {volume}% {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
//"format-source": "{volume}% ",
|
||||
//"format-source-muted": "",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "amixer sset Master toggle"
|
||||
},
|
||||
|
||||
"wireplumber": {
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "amixer sset Master toggle 1>/dev/null",
|
||||
//on-click: "${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
//on-scroll-down: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04+";
|
||||
//on-scroll-up: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04-";
|
||||
"format": "<span foreground='#fab387'>{icon}</span> {volume}%",
|
||||
"format-muted": " ",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
//"format-muted": "<span foreground='#fab387'> </span>",
|
||||
//"format-icons": [ "<span foreground='#fab387'></span>" ]
|
||||
"format-icons": {
|
||||
"headphone": " ",
|
||||
"hands-free": " ",
|
||||
"headset": " ",
|
||||
"phone": " ",
|
||||
"portable": " ",
|
||||
"car": " ",
|
||||
"default": [" ", " ", " "]
|
||||
},
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 5
|
||||
}
|
||||
}
|
||||
439
.config/waybar/config.jsonc
Normal file
439
.config/waybar/config.jsonc
Normal file
@@ -0,0 +1,439 @@
|
||||
{
|
||||
// -------------------------------------------------------------------------
|
||||
// Global configuration
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
"layer": "top",
|
||||
|
||||
"position": "top",
|
||||
|
||||
"height": 36,
|
||||
|
||||
"margin-left": 2,
|
||||
"margin-bottom": 1,
|
||||
"margin-right": 2,
|
||||
|
||||
"spacing": 1, // Gaps between modules (4px)
|
||||
|
||||
"modules-left": [
|
||||
"clock",
|
||||
"custom/weather",
|
||||
//"custom/rofi",
|
||||
"hyprland/workspaces",
|
||||
//"hyprland/submap",
|
||||
//"idle_inhibitor",
|
||||
//"mpd",
|
||||
"custom/spotify",
|
||||
"hyprland/window",
|
||||
],
|
||||
// "modules-center": [
|
||||
// //"custom/gammastep"
|
||||
// ],
|
||||
"modules-right": [
|
||||
//"wlr/taskbar",
|
||||
//"custom/storage",
|
||||
"memory",
|
||||
"cpu",
|
||||
"temperature",
|
||||
"battery",
|
||||
//"pulseaudio",
|
||||
"wireplumber",
|
||||
"cava",
|
||||
//"backlight",
|
||||
"bluetooth",
|
||||
//"custom/screenshot_t",
|
||||
"custom/power_profiles",
|
||||
//"tray",
|
||||
"custom/power",
|
||||
],
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// Modules
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
"wlr/taskbar": {
|
||||
"on-click": "activate",
|
||||
"on-click-middle": "close",
|
||||
"format": "{icon}",
|
||||
"icon-size": 12,
|
||||
"icon-theme": "Numix-Circle",
|
||||
},
|
||||
|
||||
"custom/sp1": {
|
||||
"format": " | ",
|
||||
"tooltip": false,
|
||||
},
|
||||
"custom/sp2": {
|
||||
"format": " |",
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"custom/rofi": {
|
||||
"format": "",
|
||||
"tooltip": false,
|
||||
"on-click-right": "nwg-drawer",
|
||||
"on-click": "wofi --show run",
|
||||
"on-click-middle": "pkill -9 wofi",
|
||||
},
|
||||
"custom/screenshot_t": {
|
||||
"format": " ",
|
||||
"on-click": "~/.config/hypr/scripts/screenshot_full",
|
||||
"on-click-right": "~/.config/hypr/scripts/screenshot_area",
|
||||
},
|
||||
|
||||
"clock#1": {
|
||||
"format": " {:%a}",
|
||||
"tooltip": false,
|
||||
"on-click": "gnome-calendar",
|
||||
},
|
||||
"clock#2": {
|
||||
"format": " {:%d-%h-%Y}",
|
||||
"tooltip": false,
|
||||
"on-click": "gnome-calendar",
|
||||
},
|
||||
"clock#3": {
|
||||
"format": " {:%H:%M:%S %p}",
|
||||
"tooltip": false,
|
||||
"on-click": "gnome-calendar",
|
||||
},
|
||||
|
||||
"bluetooth": {
|
||||
// "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system
|
||||
"format": "ᛒ {status}",
|
||||
"format-connected": "ᛒ {device_alias}",
|
||||
"format-disabled": "ᛒ off",
|
||||
"tooltip-format": "{controller_alias}\t{controller_address}",
|
||||
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}",
|
||||
"tooltip-format-enumerate-connected": "{device_alias}\t{device_address}",
|
||||
"on-click": "blueman-manager",
|
||||
},
|
||||
|
||||
"temperature": {
|
||||
// "thermal-zone": 1,
|
||||
"interval": 4,
|
||||
//"hwmon-path": "/sys/class/hwmon/hwmon3/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": " {temperatureC}°C",
|
||||
"format-critical": " {temperatureC}°C",
|
||||
"format": "{icon} {temperatureC}°C",
|
||||
"format-icons": ["", "", ""],
|
||||
"max-length": 7,
|
||||
"min-length": 7,
|
||||
"on-click": "xsensors",
|
||||
},
|
||||
|
||||
"memory": {
|
||||
"interval": 30,
|
||||
"format": " {used:0.2f} / {total:0.0f} GB",
|
||||
"on-click": "kitty -e btop",
|
||||
},
|
||||
|
||||
"battery": {
|
||||
"interval": 2,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
},
|
||||
"network": {
|
||||
"format-wifi": " {essid} ({signalStrength}%)",
|
||||
"format-ethernet": "{ifname}: {ipaddr}/{cidr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format": "",
|
||||
"format-disconnected": "",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||
"on-click": "wl-copy $(ip address show up scope global | grep inet | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c5-)",
|
||||
"on-click-right": "wl-copy $(ip address show up scope global | grep inet6 | head -n1 | cut -d/ -f 1 | tr -d [:space:] | cut -c6-)",
|
||||
"tooltip-format": " {bandwidthUpBits} {bandwidthDownBits}\n{ifname}\n{ipaddr}/{cidr}\n",
|
||||
"tooltip-format-wifi": " {essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\nIP: {ipaddr}/{cidr}\n {bandwidthUpBits} {bandwidthDownBits}",
|
||||
"interval": 10,
|
||||
},
|
||||
"custom/storage": {
|
||||
"format": " {}",
|
||||
"format-alt": "{percentage}% ",
|
||||
"format-alt-click": "click-right",
|
||||
"return-type": "json",
|
||||
"interval": 60,
|
||||
"exec": "~/.config/waybar/modules/storage.sh",
|
||||
},
|
||||
|
||||
"backlight": {
|
||||
"device": "intel_backlight",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-alt": "{percent}% {icon}",
|
||||
"format-alt-click": "click-right",
|
||||
//"format-icons": ["", ""],
|
||||
"format-icons": ["", ""],
|
||||
"on-scroll-down": "brightnessctl s 5%-",
|
||||
"on-scroll-up": "brightnessctl s +5%",
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": "",
|
||||
},
|
||||
"tooltip": "true",
|
||||
},
|
||||
"custom/weather": {
|
||||
"format": "{}",
|
||||
"format-alt": "{alt}: {}",
|
||||
"format-alt-click": "click-right",
|
||||
"interval": 3600,
|
||||
"exec": "curl -s 'https://wttr.in/?format=1'",
|
||||
//"return-type": "json",
|
||||
//"exec": "~/.config/waybar/modules/weather.sh",
|
||||
"exec-if": "ping wttr.in -c1",
|
||||
},
|
||||
"custom/pacman": {
|
||||
"format": "<big></big> {}",
|
||||
"interval": 3600, // every hour
|
||||
"exec": "checkupdates | wc -l", // # of updates
|
||||
"exec-if": "exit 0", // always run; consider advanced run conditions
|
||||
"on-click": "alacritty -e 'paru'; pkill -SIGRTMIN+8 waybar", // update system
|
||||
"signal": 8,
|
||||
"max-length": 5,
|
||||
"min-length": 3,
|
||||
},
|
||||
|
||||
"custom/spotify": {
|
||||
"exec": "~/.config/waybar/mediaplayer.py --player spotify",
|
||||
"format": "{} ",
|
||||
"return-type": "json",
|
||||
"on-click": "playerctl play-pause",
|
||||
"on-scroll-up": "playerctl next",
|
||||
"on-scroll-down": "playerctl previous",
|
||||
},
|
||||
|
||||
"custom/media": {
|
||||
"format": "{0} {1}",
|
||||
"return-type": "json",
|
||||
"max-length": 40,
|
||||
"format-icons": {
|
||||
"spotify": "",
|
||||
"default": "🎜",
|
||||
},
|
||||
"escape": true,
|
||||
//"exec": "~/.config/waybar/mediaplayer.py" // Script in resources folder
|
||||
// "exec": "~/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
},
|
||||
|
||||
"clock": {
|
||||
"format": " {:%H:%M %e %b}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"today-format": "<b>{}</b>",
|
||||
"on-click": "gnome-calendar",
|
||||
},
|
||||
|
||||
"clock#date": {
|
||||
"format": " {:%H:%M \n %e %b}",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"today-format": "<b>{}</b>",
|
||||
},
|
||||
|
||||
"custom/gammastep": {
|
||||
"interval": 5,
|
||||
"return-type": "json",
|
||||
"exec": {
|
||||
"pre": "if unit_status=\"$(systemctl --user is-active gammastep)\"; then\nstatus=\"$unit_status ($(journalctl --user -u gammastep.service -g 'Period: ' | tail -1 | cut -d ':' -f6 | xargs))\"\nelse\nstatus=\"$unit_status\"\nfi",
|
||||
"alt": "${status:-inactive}",
|
||||
"tooltip": "Gammastep is $status",
|
||||
},
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activating": " ",
|
||||
"deactivating": " ",
|
||||
"inactive": "? ",
|
||||
"active (Night)": " ",
|
||||
"active (Nighttime)": " ",
|
||||
"active (Transition (Night)": " ",
|
||||
"active (Transition (Nighttime)": " ",
|
||||
"active (Day)": " ",
|
||||
"active (Daytime)": " ",
|
||||
"active (Transition (Day)": " ",
|
||||
"active (Transition (Daytime)": " ",
|
||||
},
|
||||
"on-click": "systemctl --user is-active gammastep && systemctl --user stop gammastep || systemctl --user start gammastep",
|
||||
},
|
||||
|
||||
"cpu": {
|
||||
"interval": 1,
|
||||
//"format": " {}%", // Icon: microchip
|
||||
"format": "{max_frequency}GHz <span color=\"darkgray\">| {usage}%</span>",
|
||||
"max-length": 13,
|
||||
"min-length": 13,
|
||||
},
|
||||
|
||||
"mpd": {
|
||||
"max-length": 25,
|
||||
"format": "<span foreground='#bb9af7'></span> {title}",
|
||||
"format-paused": " {title}",
|
||||
"format-stopped": "<span foreground='#bb9af7'></span>",
|
||||
"format-disconnected": "",
|
||||
"on-click": "mpc --quiet toggle",
|
||||
"on-click-right": "mpc update; mpc ls | mpc add",
|
||||
"on-click-middle": "alacritty -e ncmpcpp",
|
||||
"on-scroll-up": "mpc --quiet prev",
|
||||
"on-scroll-down": "mpc --quiet next",
|
||||
"smooth-scrolling-threshold": 5,
|
||||
"tooltip-format": "{title} - {artist} ({elapsedTime:%M:%S}/{totalTime:%H:%M:%S})",
|
||||
},
|
||||
|
||||
"custom/title": {
|
||||
"format": "{}",
|
||||
"interval": 0,
|
||||
"return-type": "json",
|
||||
//"max-length": 35,
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"custom/title#name": {
|
||||
"format": "{}",
|
||||
"interval": 0,
|
||||
"return-type": "json",
|
||||
|
||||
"max-length": 35,
|
||||
"exec": "$HOME/.scripts/title",
|
||||
},
|
||||
|
||||
/*"custom/keyboard": {
|
||||
"format": " {}",
|
||||
"interval": 1,
|
||||
"exec": "$HOME/.config/waybar/get_kbdlayout.sh"
|
||||
},*/
|
||||
|
||||
"hyprland/workspaces": {
|
||||
"all-outputs": false,
|
||||
"format": "{name}",
|
||||
"format-icons": {
|
||||
"1": "一",
|
||||
"2": "二",
|
||||
"3": "三",
|
||||
"4": "四",
|
||||
"5": "五",
|
||||
"6": "六",
|
||||
"7": "七",
|
||||
"8": "八",
|
||||
"9": "九",
|
||||
"10": "十",
|
||||
},
|
||||
"on-scroll-up": "hyprctl dispatch workspace e+1 1>/dev/null",
|
||||
"on-scroll-down": "hyprctl dispatch workspace e-1 1>/dev/null",
|
||||
"sort-by-number": true,
|
||||
"active-only": false,
|
||||
},
|
||||
|
||||
"hyprland/window": {
|
||||
"max-length": 200,
|
||||
"separate-outputs": true,
|
||||
},
|
||||
|
||||
"pulseaudio": {
|
||||
"scroll-step": 3, // %, can be a float
|
||||
"format": "{icon} {volume}% {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
//"format-source": "{volume}% ",
|
||||
//"format-source-muted": "",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""],
|
||||
},
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "amixer sset Master toggle",
|
||||
},
|
||||
|
||||
"wireplumber": {
|
||||
"on-click": "pavucontrol",
|
||||
"on-click-right": "amixer sset Master toggle 1>/dev/null",
|
||||
//on-click: "${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||
//on-scroll-down: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04+";
|
||||
//on-scroll-up: "${wpctl} set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 0.04-";
|
||||
"format": "<span foreground='#fab387'>{icon}</span> {volume}%",
|
||||
"format-muted": " ",
|
||||
"format-source": "",
|
||||
"format-source-muted": "",
|
||||
//"format-muted": "<span foreground='#fab387'> </span>",
|
||||
//"format-icons": [ "<span foreground='#fab387'></span>" ]
|
||||
"format-icons": {
|
||||
"headphone": " ",
|
||||
"hands-free": " ",
|
||||
"headset": " ",
|
||||
"phone": " ",
|
||||
"portable": " ",
|
||||
"car": " ",
|
||||
"default": [" ", " ", " "],
|
||||
},
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 15,
|
||||
"spacing": 5,
|
||||
},
|
||||
|
||||
"custom/power_profiles": {
|
||||
"format": "{}",
|
||||
"return-type": "json",
|
||||
"interval": 2,
|
||||
"exec": "~/.config/waybar/modules/power_profiles.py",
|
||||
"menu": "on-click",
|
||||
"menu-file": "~/.config/waybar/modules/power_profiles_menu.xml",
|
||||
"menu-actions": {
|
||||
"performance": "~/.config/waybar/modules/power_profiles.py --set performance",
|
||||
"balanced": "~/.config/waybar/modules/power_profiles.py --set balanced",
|
||||
"power-saver": "~/.config/waybar/modules/power_profiles.py --set power-saver",
|
||||
},
|
||||
"tooltip": true,
|
||||
},
|
||||
|
||||
"custom/power": {
|
||||
"format": "⏻ ",
|
||||
"tooltip": false,
|
||||
"menu": "on-click",
|
||||
"menu-file": "~/.config/waybar/modules/power_menu.xml",
|
||||
"menu-actions": {
|
||||
"shutdown": "shutdown",
|
||||
"reboot": "reboot",
|
||||
"suspend": "systemctl suspend",
|
||||
"hibernate": "systemctl hibernate",
|
||||
},
|
||||
},
|
||||
|
||||
"cava": {
|
||||
// "cava_config": "$XDG_CONFIG_HOME/cava/cava.conf",
|
||||
"framerate": 30,
|
||||
"autosens": 1,
|
||||
"sensitivity": 100,
|
||||
"bars": 14,
|
||||
"lower_cutoff_freq": 50,
|
||||
"higher_cutoff_freq": 10000,
|
||||
"hide_on_silence": false,
|
||||
// "format_silent": "quiet",
|
||||
"method": "pulse",
|
||||
"source": "auto",
|
||||
"stereo": true,
|
||||
"reverse": false,
|
||||
"bar_delimiter": 0,
|
||||
"monstercat": false,
|
||||
"waves": false,
|
||||
"noise_reduction": 0.77,
|
||||
"input_delay": 2,
|
||||
"format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"],
|
||||
"actions": {
|
||||
"on-click-right": "mode",
|
||||
},
|
||||
},
|
||||
}
|
||||
127
.config/waybar/mediaplayer.py
Executable file
127
.config/waybar/mediaplayer.py
Executable file
@@ -0,0 +1,127 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import logging
|
||||
import sys
|
||||
import signal
|
||||
import gi
|
||||
import json
|
||||
gi.require_version('Playerctl', '2.0')
|
||||
from gi.repository import Playerctl, GLib
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def write_output(text, player):
|
||||
logger.info('Writing output')
|
||||
|
||||
output = {'text': text,
|
||||
'class': 'custom-' + player.props.player_name,
|
||||
'alt': player.props.player_name}
|
||||
|
||||
sys.stdout.write(json.dumps(output) + '\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def on_play(player, status, manager):
|
||||
logger.info('Received new playback status')
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def on_metadata(player, metadata, manager):
|
||||
logger.info('Received new metadata')
|
||||
track_info = ''
|
||||
|
||||
if player.props.player_name == 'spotify' and \
|
||||
'mpris:trackid' in metadata.keys() and \
|
||||
':ad:' in player.props.metadata['mpris:trackid']:
|
||||
track_info = 'AD PLAYING'
|
||||
elif player.get_artist() != '' and player.get_title() != '':
|
||||
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
|
||||
title=player.get_title())
|
||||
else:
|
||||
track_info = player.get_title()
|
||||
|
||||
if player.props.status != 'Playing' and track_info:
|
||||
track_info = ' ' + track_info
|
||||
write_output(track_info, player)
|
||||
|
||||
|
||||
def on_player_appeared(manager, player, selected_player=None):
|
||||
if player is not None and (selected_player is None or player.name == selected_player):
|
||||
init_player(manager, player)
|
||||
else:
|
||||
logger.debug("New player appeared, but it's not the selected player, skipping")
|
||||
|
||||
|
||||
def on_player_vanished(manager, player):
|
||||
logger.info('Player has vanished')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def init_player(manager, name):
|
||||
logger.debug('Initialize player: {player}'.format(player=name.name))
|
||||
player = Playerctl.Player.new_from_name(name)
|
||||
player.connect('playback-status', on_play, manager)
|
||||
player.connect('metadata', on_metadata, manager)
|
||||
manager.manage_player(player)
|
||||
on_metadata(player, player.props.metadata, manager)
|
||||
|
||||
|
||||
def signal_handler(sig, frame):
|
||||
logger.debug('Received signal to stop, exiting')
|
||||
sys.stdout.write('\n')
|
||||
sys.stdout.flush()
|
||||
# loop.quit()
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
def parse_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
# Increase verbosity with every occurance of -v
|
||||
parser.add_argument('-v', '--verbose', action='count', default=0)
|
||||
|
||||
# Define for which player we're listening
|
||||
parser.add_argument('--player')
|
||||
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def main():
|
||||
arguments = parse_arguments()
|
||||
|
||||
# Initialize logging
|
||||
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG,
|
||||
format='%(name)s %(levelname)s %(message)s')
|
||||
|
||||
# Logging is set by default to WARN and higher.
|
||||
# With every occurrence of -v it's lowered by one
|
||||
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
|
||||
|
||||
# Log the sent command line arguments
|
||||
logger.debug('Arguments received {}'.format(vars(arguments)))
|
||||
|
||||
manager = Playerctl.PlayerManager()
|
||||
loop = GLib.MainLoop()
|
||||
|
||||
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
|
||||
manager.connect('player-vanished', on_player_vanished)
|
||||
|
||||
signal.signal(signal.SIGINT, signal_handler)
|
||||
signal.signal(signal.SIGTERM, signal_handler)
|
||||
|
||||
for player in manager.props.player_names:
|
||||
if arguments.player is not None and arguments.player != player.name:
|
||||
logger.debug('{player} is not the filtered player, skipping it'
|
||||
.format(player=player.name)
|
||||
)
|
||||
continue
|
||||
|
||||
init_player(manager, player)
|
||||
|
||||
loop.run()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
31
.config/waybar/modules/power_menu.xml
Normal file
31
.config/waybar/modules/power_menu.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<object class="GtkMenu" id="menu">
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="suspend">
|
||||
<property name="label">Suspend</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="hibernat">
|
||||
<property name="label">Hibernate</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="shutdown">
|
||||
<property name="label">Shutdown</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparatorMenuItem" id="delimiter1"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="reboot">
|
||||
<property name="label">Reboot</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
||||
150
.config/waybar/modules/power_profiles.py
Executable file
150
.config/waybar/modules/power_profiles.py
Executable file
@@ -0,0 +1,150 @@
|
||||
#!/usr/bin/env python3
|
||||
import subprocess
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
def get_current_profile():
|
||||
"""Get the current power profile"""
|
||||
try:
|
||||
result = subprocess.run(
|
||||
["powerprofilesctl", "get"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=5
|
||||
)
|
||||
if result.returncode == 0:
|
||||
return result.stdout.strip()
|
||||
except Exception as e:
|
||||
print(f"Error getting profile: {e}", file=sys.stderr)
|
||||
return "unknown"
|
||||
|
||||
def get_available_profiles():
|
||||
"""Get list of available power profiles"""
|
||||
try:
|
||||
result = subprocess.run(
|
||||
["powerprofilesctl", "list"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
timeout=5
|
||||
)
|
||||
if result.returncode == 0:
|
||||
profiles = []
|
||||
for line in result.stdout.split('\n'):
|
||||
line = line.strip()
|
||||
if line and ':' in line and not line.startswith('Cpu') and not line.startswith('Platform') and not line.startswith('Degraded'):
|
||||
profile_name = line.split(':')[0].strip()
|
||||
if profile_name and not profile_name.startswith('*'):
|
||||
profiles.append(profile_name)
|
||||
elif profile_name.startswith('*'):
|
||||
profiles.append(profile_name[1:].strip())
|
||||
return profiles
|
||||
except Exception as e:
|
||||
print(f"Error getting profiles: {e}", file=sys.stderr)
|
||||
return []
|
||||
|
||||
def set_profile(profile):
|
||||
"""Set the power profile"""
|
||||
try:
|
||||
subprocess.run(
|
||||
["powerprofilesctl", "set", profile],
|
||||
capture_output=True,
|
||||
timeout=5
|
||||
)
|
||||
except Exception as e:
|
||||
print(f"Error setting profile: {e}", file=sys.stderr)
|
||||
|
||||
def write_menu_file(menu_path, profiles, current):
|
||||
"""Write a GTK menu XML file for Waybar."""
|
||||
items = []
|
||||
if not profiles:
|
||||
items.append(
|
||||
" <child>\n"
|
||||
" <object class=\"GtkMenuItem\" id=\"none\">\n"
|
||||
" <property name=\"label\">No profiles</property>\n"
|
||||
" <property name=\"sensitive\">false</property>\n"
|
||||
" </object>\n"
|
||||
" </child>\n"
|
||||
)
|
||||
else:
|
||||
for profile in profiles:
|
||||
label = profile
|
||||
if profile == current:
|
||||
label = f"{profile} (current)"
|
||||
items.append(
|
||||
" <child>\n"
|
||||
f" <object class=\"GtkMenuItem\" id=\"{profile}\">\n"
|
||||
f" <property name=\"label\">{label}</property>\n"
|
||||
" </object>\n"
|
||||
" </child>\n"
|
||||
)
|
||||
|
||||
content = (
|
||||
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
|
||||
"<interface>\n"
|
||||
" <object class=\"GtkMenu\" id=\"menu\">\n"
|
||||
+ "".join(items) +
|
||||
" </object>\n"
|
||||
"</interface>\n"
|
||||
)
|
||||
try:
|
||||
menu_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
menu_path.write_text(content)
|
||||
except Exception as e:
|
||||
print(f"Error writing menu file: {e}", file=sys.stderr)
|
||||
|
||||
def format_output(profile):
|
||||
"""Format output for waybar"""
|
||||
# Icons for each profile
|
||||
icons = {
|
||||
"performance": "⚡",
|
||||
"balanced": "⚖",
|
||||
"power-saver": "🔋"
|
||||
}
|
||||
|
||||
icon = icons.get(profile, "⚡")
|
||||
|
||||
output = {
|
||||
"text": f"{icon}",
|
||||
"alt": profile,
|
||||
"class": f"power-profile-{profile}",
|
||||
"tooltip": f"Current: {profile}"
|
||||
}
|
||||
|
||||
return json.dumps(output)
|
||||
|
||||
def main():
|
||||
menu_path = Path("~/.config/waybar/modules/power_profiles_menu.xml").expanduser()
|
||||
|
||||
if len(sys.argv) > 2 and sys.argv[1] == "--set":
|
||||
target = sys.argv[2]
|
||||
set_profile(target)
|
||||
current = get_current_profile()
|
||||
available = get_available_profiles()
|
||||
write_menu_file(menu_path, available, current)
|
||||
print(format_output(current))
|
||||
return
|
||||
|
||||
if len(sys.argv) > 1 and sys.argv[1] == "--next":
|
||||
# Cycle to next profile
|
||||
current = get_current_profile()
|
||||
available = get_available_profiles()
|
||||
write_menu_file(menu_path, available, current)
|
||||
|
||||
if current in available and available:
|
||||
idx = available.index(current)
|
||||
next_profile = available[(idx + 1) % len(available)]
|
||||
set_profile(next_profile)
|
||||
print(format_output(next_profile))
|
||||
else:
|
||||
print(format_output(current))
|
||||
return
|
||||
|
||||
# Just display current profile
|
||||
current = get_current_profile()
|
||||
available = get_available_profiles()
|
||||
write_menu_file(menu_path, available, current)
|
||||
print(format_output(current))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
20
.config/waybar/modules/power_profiles_menu.xml
Normal file
20
.config/waybar/modules/power_profiles_menu.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<object class="GtkMenu" id="menu">
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="performance">
|
||||
<property name="label">performance</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="balanced">
|
||||
<property name="label">balanced (current)</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkMenuItem" id="power-saver">
|
||||
<property name="label">power-saver</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -1,31 +1,33 @@
|
||||
/* Import wallust colors */
|
||||
@import url("colors-wallust.css");
|
||||
|
||||
/* Global defaults */
|
||||
* {
|
||||
font-family: "Fira Sans Semibold", "Font Awesome 6 Free", FontAwesome, Roboto,
|
||||
font-family:
|
||||
"Fira Sans Condensed", "Font Awesome 6 Free", FontAwesome, Roboto,
|
||||
Helvetica, Arial, sans-serif;
|
||||
font-size: 12px;
|
||||
font-weight: 900;
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
}
|
||||
|
||||
/* Reset all styles */
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 3px;
|
||||
min-height: 0;
|
||||
margin: 0;
|
||||
transition: background-color 0.5s;
|
||||
}
|
||||
|
||||
.modules-left,
|
||||
.modules-right {
|
||||
background-color: rgba(17, 24, 39, 0.5);
|
||||
margin-top: 2px;
|
||||
border-radius: 3px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
|
||||
/* The whole bar */
|
||||
#waybar {
|
||||
background-color: alpha(@background, 0);
|
||||
color: @foreground;
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
border-radius: 0px;
|
||||
margin: 0;
|
||||
}
|
||||
@@ -48,6 +50,12 @@ window#waybar.empty #window {
|
||||
font-size: 9px; /* Slightly smaller font size */
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: transparent;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: @foreground;
|
||||
background: @color3;
|
||||
@@ -61,21 +69,15 @@ window#waybar.empty #window {
|
||||
background-color: @color9;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: rgba(17, 24, 39, 0.5);
|
||||
margin-top: 2px;
|
||||
border-radius: 3px;
|
||||
padding: 3px 6px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: alpha(@background, 0.5);
|
||||
background-color: alpha(@background, 0.1);
|
||||
color: @foreground;
|
||||
border-radius: 3px;
|
||||
padding: 1px 10px; /* Reduced padding */
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
/* Shared module styling */
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
@@ -84,27 +86,52 @@ window#waybar.empty #window {
|
||||
#custom-weather,
|
||||
#bluetooth,
|
||||
#custom-media,
|
||||
#custom-power_profiles,
|
||||
#custom-power,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#wireplumber,
|
||||
#pulseaudio {
|
||||
background-color: alpha(@background, 0.3);
|
||||
background-color: alpha(@foreground, 0.15);
|
||||
color: @foreground;
|
||||
padding: 0 10px;
|
||||
padding: 0px 10px;
|
||||
margin: 2px;
|
||||
}
|
||||
|
||||
#clock:hover,
|
||||
#battery:hover,
|
||||
#cpu:hover,
|
||||
#memory:hover,
|
||||
#custom-storage:hover,
|
||||
#custom-weather:hover,
|
||||
#bluetooth:hover,
|
||||
#custom-media:hover,
|
||||
#custom-power_profiles:hover,
|
||||
#custom-power:hover,
|
||||
#temperature:hover,
|
||||
#backlight:hover,
|
||||
#network:hover,
|
||||
#wireplumber:hover,
|
||||
#pulseaudio:hover {
|
||||
background: @color2;
|
||||
}
|
||||
|
||||
#bluetooth {
|
||||
background-color: alpha(@color3, 0.3);
|
||||
}
|
||||
|
||||
#bluetooth.disabled {
|
||||
background-color: alpha(@color8, 0);
|
||||
background-color: alpha(@color2, 1);
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
color: @color1;
|
||||
background-color: alpha(@color2, 1);
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: alpha(@foreground, 0.5);
|
||||
background-color: alpha(@color2, 1);
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
@@ -125,20 +152,22 @@ window#waybar.empty #window {
|
||||
color: rgba(45, 52, 54, 1);
|
||||
}
|
||||
|
||||
#language {
|
||||
background: rgba(0, 176, 147, 0.5);
|
||||
color: rgba(116, 8, 100, 0.5);
|
||||
/* Language + keyboard state */
|
||||
#language,
|
||||
#keyboard-state {
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#language {
|
||||
background: rgba(0, 176, 147, 0.5);
|
||||
color: rgba(116, 8, 100, 0.5);
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
background: rgba(151, 225, 173, 0.5);
|
||||
color: rgba(0, 0, 0, 0.5);
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
@@ -148,3 +177,30 @@ window#waybar.empty #window {
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#taskbar {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#taskbar button {
|
||||
padding: 0px 3px 0px 6px;
|
||||
margin: 2px 1px;
|
||||
border-radius: 6px;
|
||||
color: @foreground;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#taskbar button.active {
|
||||
background: alpha(@foreground, 0.2);
|
||||
transition: all 0.4s ease-in-out;
|
||||
}
|
||||
|
||||
menu {
|
||||
border-radius: 15px;
|
||||
background: rgba(22, 19, 32, 0);
|
||||
color: #b5e8e0;
|
||||
padding: 5px;
|
||||
}
|
||||
menuitem {
|
||||
border-radius: 15px;
|
||||
}
|
||||
|
||||
10
.config/waybar/waybar.sh
Executable file
10
.config/waybar/waybar.sh
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# Terminate already running bar instances
|
||||
killall -q waybar
|
||||
|
||||
# Wait until the processes have been shut down
|
||||
while pgrep -x waybar >/dev/null; do sleep 1; done
|
||||
|
||||
# Launch main
|
||||
waybar &
|
||||
@@ -2,9 +2,9 @@
|
||||
language = en
|
||||
folder = /usr/share/wallpapers
|
||||
monitors = All
|
||||
wallpaper = /usr/share/wallpapers/wallpaper/lofoten2.jpg
|
||||
wallpaper = /usr/share/wallpapers/downloaded/pexels-blooddrainer-1655901.jpg
|
||||
show_path_in_tooltip = True
|
||||
backend = swww
|
||||
backend = swaybg
|
||||
fill = fill
|
||||
sort = name
|
||||
color = #ffffff
|
||||
@@ -12,9 +12,9 @@ subfolders = True
|
||||
all_subfolders = False
|
||||
show_hidden = False
|
||||
show_gifs_only = False
|
||||
post_command = wallust run '$wallpaper'
|
||||
post_command = wallust run '$wallpaper' -s
|
||||
number_of_columns = 3
|
||||
swww_transition_type = none
|
||||
swww_transition_type = wipe
|
||||
swww_transition_step = 90
|
||||
swww_transition_angle = 0
|
||||
swww_transition_duration = 2
|
||||
@@ -22,5 +22,6 @@ swww_transition_fps = 60
|
||||
mpvpaper_sound = False
|
||||
mpvpaper_options =
|
||||
use_xdg_state = False
|
||||
zen_mode = False
|
||||
zen_mode = True
|
||||
stylesheet = /home/michaelb/.config/waypaper/style.css
|
||||
|
||||
|
||||
Reference in New Issue
Block a user