Compare commits

2 Commits

Author SHA1 Message Date
nvrl 26f8c79767 update 2025-11-02 23:53:10 +01:00
nvrl a1ac6850bb updated waybar 2025-08-28 19:45:40 +02:00
20 changed files with 722 additions and 71 deletions
+4 -1
View File
@@ -1,4 +1,4 @@
#? Config file for btop v. 1.4.4 #? Config file for btop v. 1.4.5
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
@@ -115,6 +115,9 @@ cpu_bottom = False
#* Shows the system uptime in the CPU box. #* Shows the system uptime in the CPU box.
show_uptime = True show_uptime = True
#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo.
show_cpu_watts = True
#* Show cpu temperature. #* Show cpu temperature.
check_temp = True check_temp = True
+3
View File
@@ -0,0 +1,3 @@
function mpv_vr --wraps='mpv --script=360plugin.lua --script-opts=360plugin-enabled=yes' --description 'alias mpv_vr=mpv --script=360plugin.lua --script-opts=360plugin-enabled=yes'
mpv --script=~/.config/mpv/scripts/360plugin.lua --script-opts=360plugin-enabled=yes $argv;
end
+2 -2
View File
@@ -1,4 +1,4 @@
# preload = ~/Pictures/red_moon/red_moon-latte.jpg # preload = ~/Pictures/red_moon/red_moon-latte.jpg
preload = ~/Pictures/wallpapers/rem-latte.jpg preload = ~/Pictures/wallpapers/rem.jpg
# wallpaper = ,~/Pictures/red_moon/red_moon-latte.jpg # wallpaper = ,~/Pictures/red_moon/red_moon-latte.jpg
wallpaper = ,~/Pictures/wallpapers/rem-latte.jpg wallpaper = ,~/Pictures/wallpapers/rem.jpg
+3
View File
@@ -0,0 +1,3 @@
color_scheme=/usr/share/qt6ct/colors/catppuccin-mocha-maroon.conf
icon_theme=Papirus
style=Fusion
+3
View File
@@ -12,3 +12,6 @@ env = LIBVA_DRIVER_NAME,radeonsi
env = VDPAU_DRIVER,radeonsi env = VDPAU_DRIVER,radeonsi
env = MOZ_ENABLE_WAYLAND,1 env = MOZ_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,wayland env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = AMD_VULKAN_ICD,RADV
env = WLR_NO_HARDWARE_CURSORS,0
env = QT_QPA_PLATFORMTHEME,hyprqt6engine
-5
View File
@@ -17,8 +17,3 @@ input {
natural_scroll = false natural_scroll = false
} }
} }
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
+2
View File
@@ -62,6 +62,8 @@ bind = ALT, Tab, changegroupactive, next
# Example special workspace (scratchpad) # Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic bind = $mainMod SHIFT, S, movetoworkspace, special:magic
bind = $mainMod, D, togglespecialworkspace, discord
bind = $mainMod SHIFT, D, movetoworkspace, special:discord
# Scroll through existing workspaces with mainMod + scroll # Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_down, workspace, e+1
+4 -3
View File
@@ -63,9 +63,10 @@ windowrulev2=noblur,class:^(pavucontrol|blueman-manager|nm-connection-editor)$
# windowrule=workspace 3,class:^(Code)$ # windowrule=workspace 3,class:^(Code)$
windowrulev2=workspace special:magic silent,class:^(Spotify)$ windowrulev2=workspace special:magic,class:^(Spotify)$
windowrulev2=workspace special:magic silent,class:^(spotify)$ windowrulev2=workspace special:magic,class:^(spotify)$
windowrulev2=workspace special:magic silent,class:^(discord|vesktop)$ windowrulev2=workspace special:discord,class:^(discord|vesktop)$
# windowrulev2=workspace 2, class:^(brave-browser)$
# steam rules # steam rules
+23 -3
View File
@@ -1,15 +1,35 @@
[Default Applications] [Default Applications]
text/html=brave-browser.desktop text/html=zen.desktop
x-scheme-handler/http=brave-browser.desktop x-scheme-handler/http=zen.desktop
x-scheme-handler/https=brave-browser.desktop x-scheme-handler/https=zen.desktop
x-scheme-handler/about=brave-browser.desktop x-scheme-handler/about=brave-browser.desktop
x-scheme-handler/unknown=brave-browser.desktop x-scheme-handler/unknown=brave-browser.desktop
image/png=feh.desktop image/png=feh.desktop
x-scheme-handler/discord=vesktop.desktop x-scheme-handler/discord=vesktop.desktop
image/jpeg=feh.desktop image/jpeg=feh.desktop
audio/flac=mpv.desktop audio/flac=mpv.desktop
x-scheme-handler/ror2mm=r2modman.desktop
image/webp=feh.desktop
x-scheme-handler/chrome=zen.desktop
application/x-extension-htm=zen.desktop
application/x-extension-html=zen.desktop
application/x-extension-shtml=zen.desktop
application/xhtml+xml=zen.desktop
application/x-extension-xhtml=zen.desktop
application/x-extension-xht=zen.desktop
[Added Associations] [Added Associations]
image/png=feh.desktop; image/png=feh.desktop;
image/jpeg=feh.desktop; image/jpeg=feh.desktop;
audio/flac=mpv.desktop; audio/flac=mpv.desktop;
image/webp=feh.desktop;
x-scheme-handler/http=zen.desktop;
x-scheme-handler/https=zen.desktop;
x-scheme-handler/chrome=zen.desktop;
text/html=zen.desktop;
application/x-extension-htm=zen.desktop;
application/x-extension-html=zen.desktop;
application/x-extension-shtml=zen.desktop;
application/xhtml+xml=zen.desktop;
application/x-extension-xhtml=zen.desktop;
application/x-extension-xht=zen.desktop;
+69 -18
View File
@@ -2,13 +2,11 @@
{ {
"layer": "top", "layer": "top",
"position": "top", "position": "top",
"height": 50, "height": 36,
"modules-left": [ "modules-left": [
"hyprland/workspaces" "hyprland/workspaces"
], ],
"modules-center": [ "modules-center": [
"tray",
"clock"
], ],
"modules-right": [ "modules-right": [
// "custom/bluetooth-audio", // "custom/bluetooth-audio",
@@ -16,12 +14,26 @@
"custom/mem", "custom/mem",
"custom/cpu", "custom/cpu",
"custom/gpu", "custom/gpu",
"custom/network",
"custom/disk-root",
// "custom/disk-gdrive",
"custom/disk-data",
"custom/disk-games",
// "network", // "network",
"custom/gpu-screen-recorder",
"custom/gamemode",
"custom/audio-output", "custom/audio-output",
"wireplumber", "wireplumber",
"tray",
"custom/gpu-screen-recorder",
"custom/droidcam",
"custom/gamemode",
"clock"
], ],
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
},
"hyprland/workspaces": { "hyprland/workspaces": {
"format": "{icon}", "format": "{icon}",
"on-click": "activate" "on-click": "activate"
@@ -33,7 +45,7 @@
"clock": { "clock": {
"format": "{:%a %d %b %H:%M}", "format": "{:%a %d %b %H:%M}",
"format-alt": false, "format-alt": false,
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown", "on-click-right": "xdg-open https://calendar.proton.me/u/0/month > /dev/null ",
"tooltip": false, "tooltip": false,
}, },
"cpu": { "cpu": {
@@ -59,8 +71,8 @@
"hands-free": "", "hands-free": "",
"default": ["", "", ""] "default": ["", "", ""]
}, },
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle", "on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle ",
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle", "on-click-right": "~/.config/waybar/scripts/audio.sh cycle ",
"on-click-middle": "pavucontrol", "on-click-middle": "pavucontrol",
"scroll-step": 1 "scroll-step": 1
}, },
@@ -70,7 +82,7 @@
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh", "exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
"interval": 3, "interval": 3,
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect" "on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect "
}, },
"pulseaudio": { "pulseaudio": {
@@ -85,7 +97,7 @@
"car": "", "car": "",
"default": ["", ""] "default": ["", ""]
}, },
"on-click": "pavucontrol" "on-click": "pavucontrol "
}, },
"tray": { "tray": {
"icon-size": 18, "icon-size": 18,
@@ -94,7 +106,7 @@
"custom/power": { "custom/power": {
"format": "", "format": "",
"tooltip": false, "tooltip": false,
"on-click": "~/.config/hypr/scripts/powermenu.sh" "on-click": "~/.config/hypr/scripts/powermenu.sh "
}, },
"custom/tlp": { "custom/tlp": {
"format": "{}", "format": "{}",
@@ -119,42 +131,51 @@
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh", "exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
"interval": 5, "interval": 5,
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect", "on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect ",
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc" "on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc "
}, },
"custom/audio-output": { "custom/audio-output": {
"format": "{}", "format": "{}",
"return-type": "json", "return-type": "json",
"exec": "/home/narl/.config/waybar/scripts/audio.sh show", "exec": "/home/narl/.config/waybar/scripts/audio.sh show",
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle", "on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle ",
"interval": 1 "interval": 1
}, },
"custom/gamemode": { "custom/gamemode": {
"format": "{}", "format": "{}",
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/gamemode_status.sh", "exec": "~/.config/waybar/scripts/gamemode_status.sh",
"on-click": "~/.config/hypr/scripts/gamemode.sh", "on-click": "~/.config/hypr/scripts/gamemode.sh ",
"interval": 1 "interval": 1
}, },
"custom/droidcam": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/droidcam_status.sh",
"on-click": "~/.config/hypr/scripts/droidcam-ctrl.sh toggle",
"interval": 1
},
"custom/gpu-screen-recorder": { "custom/gpu-screen-recorder": {
"format": "{}", "format": "{}",
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh", "exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save", "on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save ",
"on-click-middle": "nautilus ~/Videos/replay", "on-click-middle": "nautilus ~/Videos/replay ",
"on-click": "~/.config/waybar/scripts/toggle-replay.sh", "on-click": "~/.config/waybar/scripts/toggle-replay.sh ",
"interval": 1 "interval": 1
}, },
"custom/gpu": { "custom/gpu": {
"format": "{}", "format": "{}",
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/gpu_info.sh", "exec": "~/.config/waybar/scripts/gpu_info.sh",
"on-click": "lact gui ",
"interval": 3 "interval": 3
}, },
"custom/cpu": { "custom/cpu": {
"format": "{}", "format": "{}",
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/cpu_info.sh", "exec": "~/.config/waybar/scripts/cpu_info.sh",
"on-click": "zenmonitor ",
"interval": 3 "interval": 3
}, },
"custom/mem": { "custom/mem": {
@@ -162,5 +183,35 @@
"return-type": "json", "return-type": "json",
"exec": "~/.config/waybar/scripts/memory.sh", "exec": "~/.config/waybar/scripts/memory.sh",
"interval": 3 "interval": 3
},
"custom/btrfs": {
"format": "{}",
"exec": "~/.config/waybar/scripts/btrfs.sh",
"return-type": "json",
"interval": 30
},
"custom/disk-root": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh /",
"interval": 30
},
"custom/disk-gdrive": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
"interval": 30
},
"custom/disk-data": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
"interval": 30
},
"custom/disk-games": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
"interval": 30
} }
} }
+402
View File
@@ -0,0 +1,402 @@
// ~/.config/waybar/config.jsonc
[{
"layer": "top",
"position": "top",
"output": "eDP-1",
"height": 30,
"modules-left": ["hyprland/workspaces"],
"modules-center": [],
"modules-right": [
"custom/pixelbuds_pro",
"wireplumber",
"custom/audio-output",
"custom/network",
"custom/mem",
"custom/cpu",
"custom/disk-root",
"custom/disk-gdrive",
"custom/tlp",
"tray",
"clock"
],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
},
"hyprland/window": {
"format": "{}",
"max-length": 35
},
"clock": {
"format": "{:%a %d %b %H:%M}",
"format-alt": false,
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
"tooltip": false,
},
"cpu": {
"format": "CPU: {usage}%",
"tooltip": true,
"interval": 1
},
"memory": {
"format": "MEM: {used}/{total}GB",
"interval": 3
},
"network": {
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
"format-ethernet": "{ifname}: {ipaddr}",
"format-disconnected": "Disconnected",
"tooltip-format": "{ifname} via {gwaddr}"
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"default": ["", "", ""]
},
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle",
"on-click-middle": "pavucontrol",
"scroll-step": 1
},
"custom/bluetooth-audio": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
"interval": 3,
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect & disown"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": " Muted",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol & disown"
},
"tray": {
"icon-size": 18,
"spacing": 6
},
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown"
},
"custom/tlp": {
"format": "{}",
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
"return-type": "json",
"interval": 5
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}%",
"format-charging": "{capacity}%",
"format-plugged": "{capacity}%",
"format-alt": "{time} {icon}",
"format-full": "{capacity}%",
"format-icons": ["", "", "", "", ""]
},
"custom/pixelbuds_pro": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
"interval": 5,
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect & disown",
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc & disown"
},
"custom/audio-output": {
"format": "{}",
"return-type": "json",
"exec": "/home/narl/.config/waybar/scripts/audio.sh show",
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle & disown",
"interval": 1
},
"custom/gamemode": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
"on-click": "~/.config/hypr/scripts/gamemode.sh & disown",
"interval": 1
},
"custom/gpu-screen-recorder": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown",
"on-click-middle": "nautilus ~/Videos/replay & disown",
"on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown",
"interval": 1
},
"custom/gpu": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu_info.sh",
"on-click": "lact gui & disown",
"interval": 3
},
"custom/cpu": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/cpu_info.sh",
"on-click": "zenmonitor & disown",
"interval": 3
},
"custom/mem": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/memory.sh",
"interval": 3
},
"custom/btrfs": {
"format": "{}",
"exec": "~/.config/waybar/scripts/btrfs.sh",
"return-type": "json",
"interval": 30
},
"custom/disk-root": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh /",
"interval": 30
},
"custom/disk-gdrive": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
"interval": 30
},
"custom/disk-data": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
"interval": 30
},
"custom/disk-games": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
"interval": 30
},
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
}
},{
"layer": "top",
"position": "top",
"output": "!eDP-1",
"height": 30,
"modules-left": ["hyprland/workspaces"],
"modules-center": [],
"modules-right": [
// "custom/pixelbuds_pro",
"wireplumber",
"custom/audio-output",
"custom/network",
"custom/mem",
"custom/cpu",
"custom/disk-root",
"custom/disk-gdrive",
"custom/tlp",
"tray",
"clock"
],
"hyprland/workspaces": {
"format": "{icon}",
"on-click": "activate"
},
"hyprland/window": {
"format": "{}",
"max-length": 35
},
"clock": {
"format": "{:%a %d %b %H:%M}",
"format-alt": false,
"on-click-right": "xdg-open https://calendar.proton.me/u/0/month &> /dev/null & disown",
"tooltip": false,
},
"cpu": {
"format": "CPU: {usage}%",
"tooltip": true,
"interval": 1
},
"memory": {
"format": "MEM: {used}/{total}GB",
"interval": 3
},
"network": {
"format-wifi": "{essid} ({signalStrength}%): {ipaddr}",
"format-ethernet": "{ifname}: {ipaddr}",
"format-disconnected": "Disconnected",
"tooltip-format": "{ifname} via {gwaddr}"
},
"wireplumber": {
"format": "{volume}% {icon}",
"format-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"default": ["", "", ""]
},
"on-click": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
"on-click-right": "~/.config/waybar/scripts/audio.sh cycle",
"on-click-middle": "pavucontrol",
"scroll-step": 1
},
"custom/bluetooth-audio": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/bluetooth_audio.sh",
"interval": 3,
"on-click": "~/.config/waybar/scripts/bluetooth_audio.sh disconnect & disown"
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-muted": " Muted",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"on-click": "pavucontrol & disown"
},
"tray": {
"icon-size": 18,
"spacing": 6
},
"custom/power": {
"format": "",
"tooltip": false,
"on-click": "~/.config/hypr/scripts/powermenu.sh & disown"
},
"custom/tlp": {
"format": "{}",
"exec": "~/.config/waybar/scripts/tlp-profile.sh",
"return-type": "json",
"interval": 5
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}%",
"format-charging": "{capacity}%",
"format-plugged": "{capacity}%",
"format-alt": "{time} {icon}",
"format-full": "{capacity}%",
"format-icons": ["", "", "", "", ""]
},
"custom/pixelbuds_pro": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/pixelbuds_pro_control.sh",
"interval": 5,
"on-click": "~/.config/waybar/scripts/pixelbuds_pro_control.sh connect & disown",
"on-click-right": "~/.config/waybar/scripts/pixelbuds_pro_control.sh cycle_anc & disown"
},
"custom/audio-output": {
"format": "{}",
"return-type": "json",
"exec": "/home/narl/.config/waybar/scripts/audio.sh show",
"on-click": "/home/narl/.config/waybar/scripts/audio.sh cycle & disown",
"interval": 1
},
"custom/gamemode": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gamemode_status.sh",
"on-click": "~/.config/hypr/scripts/gamemode.sh & disown",
"interval": 1
},
"custom/gpu-screen-recorder": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu-screen-recorder-status.sh",
"on-click-right": "~/.config/hypr/scripts/replay-ctrl.sh save & disown",
"on-click-middle": "nautilus ~/Videos/replay & disown",
"on-click": "~/.config/waybar/scripts/toggle-replay.sh & disown",
"interval": 1
},
"custom/gpu": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/gpu_info.sh",
"on-click": "lact gui & disown",
"interval": 3
},
"custom/cpu": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/cpu_info.sh",
"on-click": "zenmonitor & disown",
"interval": 3
},
"custom/mem": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/memory.sh",
"interval": 3
},
"custom/btrfs": {
"format": "{}",
"exec": "~/.config/waybar/scripts/btrfs.sh",
"return-type": "json",
"interval": 30
},
"custom/disk-root": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh /",
"interval": 30
},
"custom/disk-gdrive": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/gdrive",
"interval": 30
},
"custom/disk-data": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/data",
"interval": 30
},
"custom/disk-games": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/waybar/scripts/disk_info.sh ~/games",
"interval": 30
},
"custom/network": {
"exec": "~/.config/waybar/scripts/network.sh",
"interval": 2, // in seconds
"format": "{}",
"return-type": "json"
}
}]
+45
View File
@@ -0,0 +1,45 @@
#!/bin/bash
# Get BTRFS filesystems
btrfs_filesystems=$(df -hT | grep btrfs)
# Initialize variables
total_used=0
total_size=0
# Process each BTRFS filesystem
while read -r line; do
size_str=$(echo "$line" | awk '{print $3}')
used_str=$(echo "$line" | awk '{print $4}')
size=$(echo "$size_str" | sed 's/[GT]//')
used=$(echo "$used_str" | sed 's/[GT]//')
if [[ $size_str == *T ]]; then
size=$(awk -v s="$size" 'BEGIN {print s*1024}')
fi
if [[ $used_str == *T ]]; then
used=$(awk -v u="$used" 'BEGIN {print u*1024}')
fi
total_size=$(awk -v total="$total_size" -v size="$size" 'BEGIN {print total+size}')
total_used=$(awk -v total="$total_used" -v used="$used" 'BEGIN {print total+used}')
done <<< "$btrfs_filesystems"
# Calculate usage percentage
usage_percentage=$(awk -v used="$total_used" -v total="$total_size" 'BEGIN {printf "%.0f", (used/total)*100}')
# Set class based on usage
if [ "$usage_percentage" -gt 95 ]; then
class="max"
elif [ "$usage_percentage" -gt 80 ]; then
class="high"
else
class="normal"
fi
text="$(printf "%.0f" $total_used)G / $(printf "%.0f" $total_size)G"
# Manually construct the JSON output
echo "{\"text\": \"$text\", \"tooltip\": \"\", \"class\": \"$class\"}"
+3 -2
View File
@@ -5,7 +5,7 @@ TEXT="$(printf "%.1f" $(echo "$USAGE"))% $(printf "%.1f" $(echo "scale=2; $TEMP"
CPU=$(lscpu | grep 'Model name' | awk -F': ' '{print $2}' | sed 's/^[ \t]*//') CPU=$(lscpu | grep 'Model name' | awk -F': ' '{print $2}' | sed 's/^[ \t]*//')
# TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk '{output = output sprintf("%.1f%%\t%s\\n", $1, $2)} END {printf "%s", output}') # TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk '{output = output sprintf("%.1f%%\t%s\\n", $1, $2)} END {printf "%s", output}')
# TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\n", $1/ncores, $2}') # TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\n", $1/ncores, $2}')
TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\\n", $1/ncores, $2}') # TOOLTIP=$(ps -eo %cpu,comm --sort=-%cpu | head -n 6 | sed '1d' | awk -v ncores=$(nproc) '{printf "%.1f%%\t%s\\n", $1/ncores, $2}')
# TOOLTIP=$(top -b -n 1 | sed '1,7d' | head -n 5 | awk '{output = output sprintf("%.1f%%\t%s\\n", $9, $12)} END {printf "%s", output}') # TOOLTIP=$(top -b -n 1 | sed '1,7d' | head -n 5 | awk '{output = output sprintf("%.1f%%\t%s\\n", $9, $12)} END {printf "%s", output}')
CLASS="" CLASS=""
@@ -18,4 +18,5 @@ else
CLASS="normal" CLASS="normal"
fi fi
echo "{\"text\":\"CPU: $TEXT\", \"tooltip\": \"$TOOLTIP\", \"class\":\"$CLASS\"}" # echo "{\"text\":\"CPU: $TEXT\", \"tooltip\": \"$TOOLTIP\", \"class\":\"$CLASS\"}"
echo "{\"text\":\"CPU: $TEXT\", \"class\":\"$CLASS\"}"
+31
View File
@@ -0,0 +1,31 @@
#!/bin/sh
if [ -z "$1" ]; then
echo "Usage: $0 <mountpoint>"
exit 1
fi
MOUNTPOINT=$1
# Get disk usage info
USED=$(df -h --output=used "$MOUNTPOINT" | sed '1d' | awk '{print $1}')
TOTAL=$(df -h --output=size "$MOUNTPOINT" | sed '1d' | awk '{print $1}')
PERCENTAGE=$(df --output=pcent "$MOUNTPOINT" | sed '1d' | tr -d '%' | awk '{print $1}')
# Set class based on usage
CLASS="normal"
if [ "$PERCENTAGE" -gt 95 ]; then
CLASS="max"
elif [ "$PERCENTAGE" -gt 80 ]; then
CLASS="high"
fi
# Create tooltip with more details
TOOLTIP=$(df -h "$MOUNTPOINT" | sed '1d' | awk '{printf "Used: %s\nTotal: %s\nFree: %s", $3, $2, $4}')
# Output JSON for Waybar using jq
jq -n -c \
--arg text "$1 $USED/$TOTAL" \
--arg tooltip "$TOOLTIP" \
--arg class "$CLASS" \
'{"text": $text, "tooltip": $tooltip, "class": $class}'
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
if [ -f /tmp/droidcam.pid ]; then
echo "{\"text\": \"\", \"class\": \"active\"}"
else
echo "{\"text\": \"\"}"
fi
+2 -2
View File
@@ -1,8 +1,8 @@
#!/bin/bash #!/bin/bash
PID_FILE="/tmp/gpu-screen-recorder.pid" PID_FILE="/tmp/gpu-screen-recorder.pid"
FORMAT_RECORDING="<span size='large'></span>" FORMAT_RECORDING="<span size='large'>󰄄</span>"
FORMAT_STOPPED="<span size='large'></span>" FORMAT_STOPPED="<span size='large'>󰄄</span>"
if [ -f "$PID_FILE" ]; then if [ -f "$PID_FILE" ]; then
PID=$(cat "$PID_FILE") PID=$(cat "$PID_FILE")
+3 -2
View File
@@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
TOOLTIP=$(ps -eo rss,comm --sort=-rss | head -n 6 | sed '1d' | awk '{output = output sprintf("%.2f GB\t%s\\n", $1/1024/1024, $2)} END {printf "%s", output}') # TOOLTIP=$(ps -eo rss,comm --sort=-rss | head -n 6 | sed '1d' | awk '{output = output sprintf("%.2f GB\t%s\\n", $1/1024/1024, $2)} END {printf "%s", output}')
TOTAL=$(awk '/MemTotal/ {printf "%.2f\n", $2/1024/1024}' /proc/meminfo) TOTAL=$(awk '/MemTotal/ {printf "%.2f\n", $2/1024/1024}' /proc/meminfo)
USED=$(awk '/MemTotal/ {total=$2} /MemAvailable/ {available=$2} END {printf "%.2f\n", (total-available)/1024/1024}' /proc/meminfo) USED=$(awk '/MemTotal/ {total=$2} /MemAvailable/ {available=$2} END {printf "%.2f\n", (total-available)/1024/1024}' /proc/meminfo)
RATIO=$(echo "$USED/ $TOTAL" | bc -l) RATIO=$(echo "$USED/ $TOTAL" | bc -l)
@@ -15,4 +15,5 @@ else
CLASS="normal" CLASS="normal"
fi fi
printf '{"text": "%s/%sGB", "tooltip": "%s", "class": "%s"}' "$USED" "$TOTAL" "$TOOLTIP" "$CLASS" # printf '{"text": "%s/%sGB", "tooltip": "%s", "class": "%s"}' "$USED" "$TOTAL" "$TOOLTIP" "$CLASS"
printf '{"text": "%s/%sGB", "class": "%s"}' "$USED" "$TOTAL" "$CLASS"
+62
View File
@@ -0,0 +1,62 @@
#!/bin/bash
# Path for the temporary file to store previous stats
STATS_FILE="/tmp/waybar_net_stats"
# Find the primary default network interface by sorting routing metrics.
# This correctly prioritizes a VPN connection when it's active.
INTERFACE_INFO=$(ip route list | grep '^default' | sort -k 9 -n | head -n1)
INTERFACE=$(echo "$INTERFACE_INFO" | awk '{print $5}')
# Exit if no active interface is found
if [ -z "$INTERFACE" ]; then
echo "{\"text\": \"No connection\"}"
exit 0
fi
# Get the IP address for the interface
IP_ADDR=$(ip -4 addr show "$INTERFACE" | grep -oP 'inet \K[\d.]+')
# Get current time and byte counts
TIME_NOW=$(date +%s)
RX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/rx_bytes")
TX_BYTES_NOW=$(cat "/sys/class/net/$INTERFACE/statistics/tx_bytes")
# Initialize speeds to 0
RX_MBPS="0.00"
TX_MBPS="0.00"
# Read previous values if the stats file exists
if [ -f "$STATS_FILE" ]; then
source "$STATS_FILE" # This loads PREV_TIME, PREV_RX_BYTES, PREV_TX_BYTES
fi
# Calculate speed if we have previous data and time has passed
if [ -n "$PREV_TIME" ] && [ "$TIME_NOW" -gt "$PREV_TIME" ]; then
TIME_DIFF=$((TIME_NOW - PREV_TIME))
RX_BPS=$(( (RX_BYTES_NOW - PREV_RX_BYTES) / TIME_DIFF ))
TX_BPS=$(( (TX_BYTES_NOW - PREV_TX_BYTES) / TIME_DIFF ))
# Using printf for better formatting (forces two decimal places)
RX_MBPS=$(printf "%.2f" "$(echo "$RX_BPS / 1024 / 1024" | bc -l)")
TX_MBPS=$(printf "%.2f" "$(echo "$TX_BPS / 1024 / 1024" | bc -l)")
fi
# Save current values for the next run
echo "PREV_TIME=$TIME_NOW" > "$STATS_FILE"
echo "PREV_RX_BYTES=$RX_BYTES_NOW" >> "$STATS_FILE"
echo "PREV_TX_BYTES=$TX_BYTES_NOW" >> "$STATS_FILE"
# Format the main output string
OUTPUT_TEXT="$INTERFACE ($IP_ADDR):  ${RX_MBPS} MB/s  ${TX_MBPS} MB/s"
# Prepend a VPN icon if a common VPN interface is active
case "$INTERFACE" in
tun*|wg*|ppp*|pvpn*)
OUTPUT_TEXT="$OUTPUT_TEXT"
;;
esac
# Output JSON for Waybar
echo "{\"text\": \"$OUTPUT_TEXT\"}"
+47 -18
View File
@@ -21,9 +21,6 @@ window#waybar.hidden {
opacity: 0.5; opacity: 0.5;
} }
#workspaces {
}
#workspaces button { #workspaces button {
all: initial; all: initial;
/* Remove GTK theme values (waybar #1351) */ /* Remove GTK theme values (waybar #1351) */
@@ -32,8 +29,8 @@ window#waybar.hidden {
box-shadow: inset 0 -3px transparent; box-shadow: inset 0 -3px transparent;
/* Use box-shadow instead of border so the text isn't offset */ /* Use box-shadow instead of border so the text isn't offset */
padding: 6px 18px; padding: 6px 18px;
margin: 6px 3px; margin: 0px 3px;
border-radius: 4px; border-radius: 10px;
background-color: @base; background-color: @base;
color: @subtext0; color: @subtext0;
} }
@@ -66,14 +63,21 @@ window#waybar.hidden {
#backlight, #backlight,
#wireplumber, #wireplumber,
#network, #network,
#custom-network,
#clock, #clock,
#tray, #tray,
#custom-disk-root,
#custom-disk-gdrive,
#custom-disk-games,
#custom-disk-data,
#custom-pixelbuds_pro, #custom-pixelbuds_pro,
#custom-bluetooth-audio, #custom-bluetooth-audio,
#custom-audio-output, #custom-audio-output,
#custom-gpu-screen-recorder { #custom-btrfs,
border-radius: 4px; #custom-gpu-screen-recorder,
margin: 6px 3px; #custom-droidcam {
border-radius: 10px;
margin: 0px 3px;
padding: 6px 12px; padding: 6px 12px;
background-color: @base; background-color: @base;
color: @text; color: @text;
@@ -92,7 +96,13 @@ window#waybar.hidden {
#custom-gpu-screen-recorder, #custom-gpu-screen-recorder,
#custom-gpu-screen-recorder.recording { #custom-gpu-screen-recorder.recording {
padding-right: 18px; padding-right: 14px;
padding-left: 10px;
}
#custom-droidcam,
#custom-droidcam.active {
padding-right: 14px;
padding-left: 10px; padding-left: 10px;
} }
@@ -122,7 +132,8 @@ window#waybar.hidden {
} }
#custom-gpu-screen-recorder, #custom-gpu-screen-recorder,
#custom-gamemode { #custom-gamemode,
#custom-droidcam {
background-color: @base; background-color: @base;
color: @subtext1; color: @subtext1;
border-bottom: 3px solid @subtext1; border-bottom: 3px solid @subtext1;
@@ -133,9 +144,10 @@ window#waybar.hidden {
} }
#custom-gpu-screen-recorder.recording, #custom-gpu-screen-recorder.recording,
#custom-gamemode.active { #custom-gamemode.active,
color: @blue; #custom-droidcam.active {
border-bottom: 3px solid @blue; color: @maroon;
border-bottom: 3px solid @maroon;
} }
#custom-tlp { #custom-tlp {
@@ -178,23 +190,40 @@ window#waybar.hidden {
#custom-gpu.max, #custom-gpu.max,
#custom-cpu.max, #custom-cpu.max,
#custom-mem.max { #custom-mem.max,
#custom-btrfs.max,
#custom-disk-root.max,
#custom-disk-gdrive.max,
#custom-disk-games.max,
#custom-disk-data.max {
color: @maroon; color: @maroon;
/* border-bottom: 3px solid @maroon; */ /* border-bottom: 3px solid @maroon; */
} }
#custom-gpu.high, #custom-gpu.high,
#custom-gpu.high, #custom-gpu.high,
#custom-mem.high { #custom-mem.high,
#custom-btrfs.high,
#custom-disk-root.high,
#custom-disk-gdrive.high,
#custom-disk-games.high,
#custom-disk-data.high {
color: @yellow; color: @yellow;
/* border-bottom: 3px solid @yellow; */ /* border-bottom: 3px solid @yellow; */
} }
#memory, #memory,
#cpu, #cpu,
#disk,
#custom-network,
#custom-gpu.normal, #custom-gpu.normal,
#custom-cpu.normal, #custom-cpu.normal,
#custom-mem.normal { #custom-mem.normal,
#custom-btrfs.normal,
#custom-disk-root.normal,
#custom-disk-gdrive.normal,
#custom-disk-games.normal,
#custom-disk-data.normal {
color: @blue; color: @blue;
/* border-bottom: 3px solid @mauve; */ /* border-bottom: 3px solid @mauve; */
} }
@@ -226,7 +255,7 @@ window#waybar.hidden {
} }
tooltip { tooltip {
border-radius: 8px; border-radius: 10px;
padding: 15px; padding: 15px;
background-color: @base; background-color: @base;
} }
@@ -2,7 +2,12 @@ monitor.alsa.rules = [
{ {
matches = [ matches = [
{ {
node.name = "alsa_output.usb-iFi__by_AMR__iFi__by_AMR__HD_USB_Audio_0003-00.analog-stereo" # iFi (by AMR) HD USB Audio
device.name = "*iFi*"
},
{
# UMC204HD 192k
node.description = "*UMC204HD*"
} }
] ]
actions = { actions = {
@@ -12,18 +17,5 @@ monitor.alsa.rules = [
session.suspend-timeout-seconds = 0 session.suspend-timeout-seconds = 0
} }
} }
},
{
matches = [
{
node.name = "alsa_output.hw_U192k_0"
}
]
actions = {
update-props = {
audio.format = "S32_LE"
audio.rate = 96000
}
}
} }
] ]