Introduces eww bar

This commit is contained in:
Michel Fedde 2025-11-11 17:44:06 +01:00
parent 75bc7eb6a7
commit e58899e4ae
30 changed files with 279 additions and 1147 deletions

View file

@ -17,4 +17,12 @@
}
}
button {
&.flat {
color: $foreground;
background: none;
}
}
@import "./widgets/media/style.scss"
@import "./widgets/bar/style.scss"

View file

@ -1,2 +1,4 @@
(include "./widgets/media/media.yuck")
(include "./widgets/hour-notify/widget.yuck")
(include "./widgets/bar/bar.yuck")

View file

@ -0,0 +1,40 @@
(include "./widgets/bar/elements/time.yuck")
(include "./widgets/bar/elements/workspaces.yuck")
(include "./widgets/bar/elements/audio.yuck")
(defwidget bar []
(centerbox
:class "bar"
(box
(bar-workspaces)
)
(box
(bar-time)
)
(box
:space-evenly false
:halign "end"
:spacing 10
(bar-audio)
(systray
:class "widget default-padding"
:space-evenly false
:spacing 10
:hexpand false
:halign "end"
)
)
)
)
(defwindow bar [monitor]
:monitor {monitor}
:geometry (geometry
:x "0px"
:y "10px"
:width "100%"
:height "0px"
:anchor "top center")
:stacking "fg"
(bar)
)

View file

@ -0,0 +1,22 @@
(defpoll bar-audio-icon :interval "1s" :initial "" `~/.config/eww/widgets/bar/scripts/audio.sh`)
(defpoll bar-audio-volume :interval "1s" :initial "" `pactl --format="json" get-sink-volume $(pactl get-default-sink) | jq '.volume | map(.value) | length as $amount | add / $amount'`)
(defwidget bar-audio []
(eventbox
:onclick "hyprctl dispatch exec pavucontrol"
:onrightclick "hyprctl dispatch exec rofi -show pactl"
(box
:hexpand false
:halign "end"
:space-evenly false
:spacing 20
:class "widget default-padding"
{bar-audio-icon}
(progress
:valign "center"
:value {(bar-audio-volume / 65536) * 100}
)
)
)
)

View file

@ -0,0 +1,8 @@
(defpoll bar-time-display :interval "1s" :initial "" `date +"󰃭 %d  %R"`)
(defwidget bar-time []
(box
:class "widget default-padding"
{bar-time-display}
)
)

View file

@ -0,0 +1,76 @@
(defpoll bar-workspace-data :interval "0.1s" :initial "[]" `~/.config/eww/widgets/bar/scripts/workspaces.sh`)
(defwidget bar-workspaces []
(box
:class "widget workspaces"
:space-evenly false
:hexpand false
:halign "start"
(for workspace in bar-workspace-data
(eventbox
:onclick "${EWW_CMD} open bar-workspace-window --arg workspaceId=${workspace.id}"
:cursor "pointer"
(box
:space-evenly false
:spacing 10
:class "workspace ${workspace.activeOnAnyScreen ? "active": ""} ${workspace.activeOnCurrentScreen ? "current": ""}"
(box
:space-evenly false
:spacing 10
(label
:text {workspace.name}
)
(box
:spacing 10
(for window in {workspace.windows}
(label
:text {window.icon}
)
)
)
)
)
)
)
)
)
(defwindow bar-workspace-window [workspaceId]
:monitor 1
:geometry (geometry
:x "10px"
:y "50px"
:width "512px"
:height "0px"
:anchor "top left")
:stacking "fg"
(box
(for workspace in bar-workspace-data
(box
:orientation "v"
:vexpand false
:valign "start"
:class "widget default-padding"
:space-evenly false
:spacing 10
:visible {workspaceId == workspace.id}
(for window in {workspace.windows}
(eventbox
:cursor "pointer"
:onclick "hyprctl dispatch focuswindow pid:${window.pid} && ${EWW_CMD} close bar-workspace-window"
:onrightclick "${EWW_CMD} close bar-workspace-window"
(label
:halign "start"
:text "${window.icon} ${window.title}"
:truncate false
)
)
)
)
)
)
)

View file

@ -0,0 +1,6 @@
{
"alsa_output.pci-0000_08_00.0.iec958-stereo": "󱟛",
"alsa_output.usb-Razer_Razer_Nari-00.pro-output-1": "",
"alsa_output.usb-Razer_Razer_Nari-00.pro-output-0": "",
"bluez_output.B4_9A_95_D3_B3_9E.1": "󰂯 󱟛"
}

View file

@ -0,0 +1,5 @@
#!/bin/bash
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
cat "$SCRIPT_DIR/audio-icons.json" | jq -r --arg currentSink "$(pactl get-default-sink)" '.[$currentSink]'

View file

@ -0,0 +1,39 @@
{
"firefox|org.mozilla.firefox|librewolf|floorp|mercury-browser|[Cc]achy-browser": "",
"kitty|konsole|com.mitchellh.ghostty": "",
"kitty-dropterm": "",
"Chromium|Thorium": "",
"zen": "󰰷",
"thunar": "󰝰",
"[Tt]hunderbird|[Tt]hunderbird-esr": "",
"eu.betterbird.Betterbird": "",
"discord|[Ww]ebcord|Vesktop": "",
"subl": "󰅳",
"mpv": "",
"celluloid|Zoom": "",
"Cider": "󰎆",
"virt-manager": "",
".virt-manager-wrapped": "",
"codeblocks": "󰅩",
"mousepad": "",
"libreoffice-writer": "",
"libreoffice-startcenter": "󰏆",
"com.obsproject.Studio": "",
"polkit-gnome-authentication-agent-1": "󰒃",
"nwg-look": "",
"waterfox|waterfox-bin": "",
"microsoft-edge": "",
"vlc": "󰕼",
"steam": "",
"microsoftteams-nativefier-6234c0": "󰊻",
"org.remmina.Remmina": "",
"com.github.th_ch.youtube_music": "",
"feishin": "",
"ONLYOFFICE": "",
"Beeper": "󰭹",
"blender": "",
"heroic": "",
"net.lutris.Lutris": "",
"Unity": "",
"jetbrains-rider|jetbrains-phpstorm": ""
}

View file

@ -0,0 +1,17 @@
$workspaces | map({
id: .id,
name: .name,
activeOnCurrentScreen: .id == $activeWorkspace.id,
activeOnAnyScreen: (.id as $workspaceId | any($monitors[]; .activeWorkspace.id == $workspaceId)),
windows: (
.id as $workspaceId | $clients | map ( select(.workspace.id == $workspaceId) | {
class: .class,
title: .title,
pid: .pid,
icon: (
.class as $class |
($clientIcons | keys | .[] | select(. as $regex | $class | test($regex)) | $clientIcons[.]) // " "
)
})
)
}) | sort_by(.id)

View file

@ -0,0 +1,11 @@
#!/bin/bash
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
jq --null-input \
--argjson activeWorkspace "$(hyprctl -j activeworkspace)" \
--argjson workspaces "$(hyprctl -j workspaces)" \
--argjson monitors "$(hyprctl -j monitors)" \
--argjson clients "$(hyprctl -j clients)" \
--argjson clientIcons "$(cat "$SCRIPT_DIR/clientIcons.json")" \
--from-file "$SCRIPT_DIR/workspaces.jq"

View file

@ -0,0 +1,22 @@
.bar {
margin: 0 10px;
.default-padding {
padding: 0.5rem 1rem;
}
}
.workspaces {
padding-right: 1rem;
.workspace {
padding: 0.5 1rem;
border-radius: $border-radius;
&.active {
box-shadow: 0 -1px 0 0 green inset;
}
&.current {
box-shadow: 0 -1px 0 0 yellow inset;
}
}
}

View file

@ -94,11 +94,11 @@
(defwindow media
:monitor 1
:geometry (geometry
:x "10px"
:y "50px"
:width "0px"
:height "10%"
:anchor "top right")
:x "10px"
:y "50px"
:width "0px"
:height "10%"
:anchor "top right")
:stacking "fg"
(media-control)
)

View file

@ -14,7 +14,6 @@ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CUR
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# starup apps
exec-once = waybar &
exec-once = nm-applet --indicator &
exec-once = swaync &
exec-once = ags &

View file

@ -8,7 +8,7 @@ $term = ghostty
$appLauncher = rofi -show drun -show-icons
# Toggle waybar visibility
bind = $mainMod, O, exec, killall -USR1 waybar
bind = $mainMod, O, exec, .config/scripts/toggle-bar.sh
# System
bind = $mainMod, N, exec, $scriptsDir/LockScreen.sh # screen lock

13
.config/scripts/toggle-bar.sh Executable file
View file

@ -0,0 +1,13 @@
#!/bin/bash
for display in $(hyprctl -j monitors | jq -r 'map("\(.id)\n") | add'); do
id="bar-${display}"
if eww active-windows | grep "${id}"; then
eww close "${id}"
continue
fi
eww open bar --id "${id}" --arg monitor="${display}"
done

View file

@ -8,6 +8,8 @@ source ~/.cache/wal/colors-tty.sh
export VISUAL='nvim'
export EDITOR="$VISUAL"
export PATH="$PATH:$HOME/.dotnet/tools/"
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias vim="nvim"

View file

@ -1,471 +0,0 @@
{
"temperature": {
"interval": 10,
"tooltip": true,
"hwmon-path": [
"/sys/class/hwmon/hwmon1/temp1_input",
"/sys/class/thermal/thermal_zone0/temp"
],
"critical-threshold": 82,
"format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": [
"󰈸"
],
"on-click-right": "kitty --title nvtop sh -c 'nvtop'"
},
"temperature#vertical": {
"interval": 10,
"tooltip": true,
"hwmon-path": [
"/sys/class/hwmon/hwmon1/temp1_input",
"/sys/class/thermal/thermal_zone0/temp"
],
"critical-threshold": 80,
"format-critical": "{icon}\n{temperatureC}°C",
"format": " {icon}",
"format-icons": [
"󰈸"
],
"on-click-right": "kitty --title nvtop sh -c 'nvtop'"
},
"backlight": {
"interval": 2,
"align": 0,
"rotate": 0,
"format-icons": [
" ",
" ",
" ",
"󰃝 ",
"󰃞 ",
"󰃟 ",
"󰃠 "
],
"format": "{icon}",
"tooltip-format": "backlight {percent}%",
"icon-size": 10,
"on-click": "",
"on-click-middle": "",
"on-click-right": "",
"on-update": "",
"on-scroll-up": "$HOME/.config/scripts/Brightness.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Brightness.sh --dec",
"smooth-scrolling-threshold": 1
},
"backlight#2": {
"device": "intel_backlight",
"format": "{icon} {percent}%",
"format-icons": ["", ""]
},
"battery": {
"align": 0,
"rotate": 0,
"full-at": 100,
"design-capacity": false,
"states": {
"good": 95,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": "󱘖 {capacity}%",
"format-alt-click": "click",
"format-full": "{icon} Full",
"format-alt": "{icon} {time}",
"format-icons": [
"󰂎", "󰁺", "󰁻", "󰁼", "󰁽", "󰁾", "󰁿", "󰂀", "󰂁", "󰂂", "󰁹"
],
"format-time": "{H}h {M}min",
"tooltip": true,
"tooltip-format": "{timeTo} {power}w",
"on-click-middle": "$HOME/.config/scripts/ChangeBlur.sh",
"on-click-right": "$HOME/.config/scripts/Wlogout.sh",
},
"bluetooth": {
"format": " ",
"format-disabled": "󰂳",
"format-connected": "󰂱 {num_connections}",
"tooltip-format": " {device_alias}",
"tooltip-format-connected": "{device_enumerate}",
"tooltip-format-enumerate-connected": " {device_alias} 󰂄{device_battery_percentage}%",
"tooltip": true,
"on-click": "blueman-manager",
},
"clock": {
"interval": 1,
"format": " {:%I:%M %p}",
"tooltip-format": "<tt> <small>{calendar}</small></tt>",
"calendar": {
"mode": "month",
"mode-mon-col": 3,
"weeks-pos": "right",
"on-scroll": 1,
"format": {
"months": "<span color='#ffead3'><b>{}</b></span>",
"days": "<span color='#ecc6d9'><b>{}</b></span>",
"weeks": "<span color='#99ffdd'><b>W{}</b></span>",
"weekdays": "<span color='#ffcc66'><b>{}</b></span>",
"today": "<span color='#ff6699'><b><u>{}</u></b></span>"
}
},
"actions": {
"on-click-right": "mode",
"on-scroll-up": "tz_up",
"on-scroll-down": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
}
},
"actions": {
"on-click-right": "mode",
"on-click-forward": "tz_up",
"on-click-backward": "tz_down",
"on-scroll-up": "shift_up",
"on-scroll-down": "shift_down"
},
"clock#2": {
"format": " {:%I:%M %p}",
"format-alt": "{:%A | %H:%M | %e %B}",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"
},
"clock#3": {
"format": "{:%I:%M %p - %d/%b}",
"tooltip": false
},
"clock#4": {
"interval": 60,
"format": "{:%B | %a %d, %Y | %I:%M %p}",
"format-alt": "{:%a %b %d, %G}",
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
},
"clock#5": {
"format": "{:%A, %I:%M %P}",
"format-alt": "{:%A, %d %B, %Y (%R)}",
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
},
"cpu": {
"format": "{usage}% 󰍛",
"interval": 1,
"min-length": 5,
"format-alt-click": "click",
"format-alt": "{icon0}{icon1}{icon2}{icon3} {usage:>2}% 󰍛",
"format-icons": [
"▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"
],
"on-click-right": "gnome-system-monitor",
},
"disk": {
"interval": 30,
"path": "/",
"format": "{percentage_used}% 󰋊",
"tooltip-format": "{used} used out of {total} on {path} ({percentage_used}%)",
},
"hyprland/language": {
"format": "Lang: {}",
"format-en": "US",
"format-tr": "Korea",
"keyboard-name": "at-translated-set-2-keyboard",
"on-click": "hyprctl switchxkblayout $SET_KB next"
},
"hyprland/submap": {
"format": "<span style=\"italic\"> {}</span>",
"tooltip": false,
},
"hyprland/window": {
"format": "{}",
"max-length": 20,
"separate-outputs": true,
"offscreen-css": true,
"offscreen-css-text": "(inactive)",
"rewrite": {
"(.*) — Mozilla Firefox": " $1",
"(.*) - fish": "> [$1]",
"(.*) - zsh": "> [$1]",
"(.*) - $term": "> [$1]",
},
},
"idle_inhibitor": {
"tooltip": true,
"tooltip-format-activated": "Idle_inhibitor active",
"tooltip-format-deactivated": "Idle_inhibitor not active",
"format": "{icon}",
"format-icons": {
"activated": " ",
"deactivated": " ",
}
},
"keyboard-state": {
"capslock": true,
"format": {
"numlock": "N {icon}",
"capslock": "󰪛 {icon}",
},
"format-icons": {
"locked": "",
"unlocked": ""
},
},
"memory": {
"interval": 10,
"format": "{used:0.1f}G 󰾆",
"format-alt": "{percentage}% 󰾆",
"format-alt-click": "click",
"tooltip": true,
"tooltip-format": "{used:0.1f}GB/{total:0.1f}G",
"on-click-right": "kitty --title btop sh -c 'btop'"
},
"mpris": {
"interval": 10,
"format": "{player_icon} ",
"format-paused": "{status_icon} <i>{dynamic}</i>",
"on-click-middle": "playerctl play-pause",
"on-click": "playerctl previous",
"on-click-right": "playerctl next",
"scroll-step": 5.0,
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --dec",
"smooth-scrolling-threshold": 1,
"player-icons": {
"chromium": "",
"default": "",
"firefox": "",
"kdeconnect": "",
"mopidy": "",
"mpv": "󰐹",
"spotify": "",
"vlc": "󰕼",
},
"status-icons": {
"paused": "󰐎",
"playing": "",
"stopped": "",
},
"max-length": 30,
},
"network": {
"format": "{ifname}",
"format-wifi": "{icon}",
"format-ethernet": "󰌘",
"format-disconnected": "󰌙",
"tooltip-format": "{ipaddr}  {bandwidthUpBits}  {bandwidthDownBits}",
"format-linked": "󰈁 {ifname} (No IP)",
"tooltip-format-wifi": "{essid} {icon} {signalStrength}%",
"tooltip-format-ethernet": "{ifname} 󰌘",
"tooltip-format-disconnected": "󰌙 Disconnected",
"max-length": 30,
"format-icons": [
"󰤯", "󰤟", "󰤢", "󰤥", "󰤨"
],
"on-click-right": "kitty nmtui"
},
"network#speed": {
"interval": 1,
"format": "{ifname}",
"format-wifi": "{icon}  {bandwidthUpBytes}  {bandwidthDownBytes}",
"format-ethernet": "󰌘  {bandwidthUpBytes}  {bandwidthDownBytes}",
"format-disconnected": "󰌙",
"tooltip-format": "{ipaddr}",
"format-linked": "󰈁 {ifname} (No IP)",
"tooltip-format-wifi": "{essid} {icon} {signalStrength}%",
"tooltip-format-ethernet": "{ifname} 󰌘",
"tooltip-format-disconnected": "󰌙 Disconnected",
"min-length": 24,
"max-length": 24,
"format-icons": [
"󰤯", "󰤟", "󰤢", "󰤥", "󰤨"
]
},
"power-profiles-daemon": {
"format": "{icon} ",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} 󰂰 {volume}%",
"format-muted": "󰖁",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"", "", "󰕾", ""
],
"ignored-sinks": [
"Easy Effects Sink"
],
},
"scroll-step": 5.0,
"on-click": "$HOME/.config/scripts/Volume.sh --toggle",
"on-click-right": "pavucontrol -t 3",
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --dec",
"tooltip-format": "{icon} {desc} | {volume}%",
"smooth-scrolling-threshold": 1,
},
"pulseaudio#1": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-bluetooth-muted": " {icon}",
"format-muted": "󰸈",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pamixer --toggle-mute",
"on-click-right": "pavucontrol -t 3",
"tooltip": true,
"tooltip-format": "{icon} {desc} | {volume}%",
},
"pulseaudio#microphone": {
"format": "{format_source}",
"format-source": " {volume}%",
"format-source-muted": "",
"on-click": "$HOME/.config/scripts/Volume.sh --toggle-mic",
"on-click-right": "pavucontrol -t 4",
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --mic-inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --mic-dec",
"tooltip-format": "{source_desc} | {source_volume}%",
"scroll-step": 5,
},
"tray": {
"icon-size": 20,
"spacing": 4,
},
"wireplumber": {
"format": "{icon} {volume} %",
"format-muted": " Mute",
"on-click": "$HOME/.config/scripts/Volume.sh --toggle",
"on-click-right": "pavucontrol -t 3",
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --dec",
"format-icons": [
"", "", "󰕾", ""
],
},
"wlr/taskbar": {
"format": "{icon} {name}",
"icon-size": 16,
"all-outputs": false,
"tooltip-format": "{title}",
"on-click": "activate",
"on-click-middle": "close",
"ignore-list": [
"wofi",
"rofi",
"kitty",
"kitty-dropterm"
],
},
"backlight#vertical": {
"interval": 2,
"align": 0.35,
"rotate": 1,
"format": "{icon}",
"format-icons": [
"", "", "", "", "", "", "", "", "", "", "", "", "", "", ""
],
"on-click": "",
"on-click-middle": "",
"on-click-right": "",
"on-update": "",
"on-scroll-up": "$HOME/.config/scripts/Brightness.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Brightness.sh --dec",
"smooth-scrolling-threshold": 1,
"tooltip-format": "{percent}%",
},
"clock#vertical": {
"format": "\n{:%H\n%M\n%S\n\n \n%d\n%m\n%y}",
"interval": 1,
"tooltip": true,
"tooltip-format": "{calendar}",
"calendar": {
"mode": "year",
"mode-mon-col": 3,
"format": {
"today": "<span color='#0dbc79'>{}</span>",
}
}
},
"cpu#vertical": {
"format": "󰍛\n{usage}%",
"interval": 1,
"on-click-right": "gnome-system-monitor",
},
"memory#vertical": {
"interval": 10,
"format": "󰾆\n{percentage}%",
"format-alt": "󰾆\n{used:0.1f}G",
"format-alt-click": "click",
"tooltip": true,
"tooltip-format": "{used:0.1f}GB/{total:0.1f}G",
"on-click-right": "kitty --title btop sh -c 'btop'",
},
"pulseaudio#vertical": {
"format": "{icon}",
"format-bluetooth": "󰂰",
"format-muted": "󰖁",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"", "", "󰕾", ""
],
"tooltip-format": "{icon} {desc} | {volume}%",
"ignored-sinks": [
"Easy Effects Sink"
],
},
"scroll-step": 5.0,
"on-click": "$HOME/.config/scripts/Volume.sh --toggle",
"on-click-right": "pavucontrol -t 3",
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --dec",
"tooltip-format": "{icon} {desc} | {volume}%",
"smooth-scrolling-threshold": 1,
},
"pulseaudio#microphone_vertical": {
"format": "{format_source}",
"format-source": "󰍬",
"format-source-muted": "󰍭",
"on-click-right": "pavucontrol",
"on-click": "$HOME/.config/scripts/Volume.sh --toggle-mic",
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --mic-inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --mic-dec",
"max-volume": 100,
"tooltip": true,
"tooltip-format": "{source_desc} | {source_volume}%",
},
"custom/power_vertical": {
"format": "⏻",
"exec": "echo ; echo 󰟡 power // blur",
"on-click": "$HOME/.config/scripts/Wlogout.sh",
"on-click-right": "$HOME/.config/scripts/ChangeBlur.sh",
"interval": 86400,
"tooltip": true,
},
}

View file

@ -1,235 +0,0 @@
//* ---- 💫 https://github.com/JaKooLit 💫 ---- *//
/* Waybar Modules - Custom Modules */
/* Basically created to reduce the lines in Waybar Modules bank */
/* NOTE: This is only for Custom Modules */
/* Custom Modules like weather browser, tty, file manager at the beginning */
{
"custom/weather": {
"format": "{}",
"format-alt": "{alt}: {}",
"format-alt-click": "click",
"interval": 3600,
"return-type": "json",
"exec": "$HOME/.config/scripts/Weather.sh",
//"exec": "$HOME/.config/hypr/UserScripts/Weather.py",
"exec-if": "ping wttr.in -c1",
"tooltip": true,
},
"custom/file_manager": {
"format": " ",
"on-click": "thunar",
"tooltip": true,
"tooltip-format": "File Manager",
},
"custom/tty": {
"format": " ",
"on-click": "kitty",
"tooltip": true,
"tooltip-format": "Launch Terminal",
},
"custom/browser": {
"format": " ",
"on-click": "firefox",
"tooltip": true,
"tooltip-format": "Launch Browser",
},
"custom/settings": {
"format": " ",
"on-click": "$HOME/.config/hypr/UserScripts/QuickEdit.sh",
"tooltip": true,
"tooltip-format": "Launch Quick Edit",
},
"custom/cycle_wall": {
"format": " ",
"on-click": "$HOME/.config/hypr/UserScripts/WallpaperSelect.sh",
"on-click-right": "$HOME/.config/hypr/UserScripts/WallpaperRandom.sh",
"on-click-middle": "$HOME/.config/scripts/WaybarStyles.sh",
"tooltip": true,
"tooltip-format": "Left Click: Wallpaper Menu\nMiddle Click: Random wallpaper\nRight Click: Waybar Styles Menu",
},
// Hypridle inhibitor
"custom/hypridle": {
"format": "󱫗 ",
"return-type": "json",
"escape": true,
"exec-on-event": true,
"interval": 60,
"exec": "$HOME/.config/scripts/Hypridle.sh status",
"on-click": "$HOME/.config/scripts/Hypridle.sh toggle",
"on-click-right": "hyprlock"
},
"custom/keyboard": {
"exec": "cat $HOME/.cache/kb_layout",
"interval": 1,
"format": " {}",
"on-click": "$HOME/.config/scripts/SwitchKeyboardLayout.sh",
},
"custom/light_dark": {
"format": "󰔎 ",
"on-click": "$HOME/.config/scripts/DarkLight.sh",
"on-click-right": "$HOME/.config/scripts/WaybarStyles.sh",
"on-click-middle": "$HOME/.config/hypr/UserScripts/WallpaperSelect.sh",
"tooltip": true,
"tooltip-format": "Left Click: Switch Dark-Light Themes\nMiddle Click: Wallpaper Menu\nRight Click: Waybar Styles Menu",
},
"custom/lock": {
"format": "󰌾",
"on-click": "$HOME/.config/scripts/LockScreen.sh",
"tooltip": true,
"tooltip-format": "󰷛 Screen Lock",
},
"custom/menu": {
"format": "",
"on-click": "pkill rofi || rofi -show drun -modi run,drun,filebrowser,window",
"on-click-middle": "$HOME/.config/hypr/UserScripts/WallpaperSelect.sh",
"on-click-right": "$HOME/.config/scripts/WaybarLayout.sh",
"tooltip": true,
"tooltip-format": "Left Click: Rofi Menu\nMiddle Click: Wallpaper Menu\nRight Click: Waybar Layout Menu",
},
// This is a custom cava visualizer
"custom/cava_mviz": {
"exec": "$HOME/.config/scripts/WaybarCava.sh",
"format": "{}"
},
"custom/playerctl": {
"format": "<span>{}</span>",
"return-type": "json",
"max-length": 35,
"exec": "playerctl -a metadata --format '{\"text\": \"{{artist}} $HOME {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F",
"on-click-middle": "playerctl play-pause",
"on-click": "playerctl previous",
"on-click-right": "playerctl next",
"scroll-step": 5.0,
"on-scroll-up": "$HOME/.config/scripts/Volume.sh --inc",
"on-scroll-down": "$HOME/.config/scripts/Volume.sh --dec",
"smooth-scrolling-threshold": 1,
},
"custom/power": {
"format": "⏻ ",
"on-click": "$HOME/.config/scripts/Wlogout.sh",
"on-click-right": "$HOME/.config/scripts/ChangeBlur.sh",
"tooltip": true,
"tooltip-format": "Left Click: Logout Menu\nRight Click: Change Blur",
},
"custom/swaync": {
"tooltip": true,
"tooltip-format": "Left Click: Launch Notification Center\nRight Click: Do not Disturb",
"format": "{icon} ",
"format-icons": {
"notification": "<span foreground='red'><sup></sup></span>",
"none": "",
"dnd-notification": "<span foreground='red'><sup></sup></span>",
"dnd-none": "",
"inhibited-notification": "<span foreground='red'><sup></sup></span>",
"inhibited-none": "",
"dnd-inhibited-notification": "<span foreground='red'><sup></sup></span>",
"dnd-inhibited-none": ""
},
"return-type": "json",
"exec-if": "which swaync-client",
"exec": "swaync-client -swb",
"on-click": "sleep 0.1 && swaync-client -t -sw",
"on-click-right": "swaync-client -d -sw",
"escape": true,
},
// NOTE:! This is only for Arch and Arch Based Distros depend: pacman-contrib
"custom/updater": {
"format": " {}",
"exec": "checkupdates | wc -l",
"exec-if": "[[ $(checkupdates | wc -l) ]]",
"interval": 15,
"on-click": "if command -v paru &> /dev/null; then kitty -T update paru -Syu; else kitty -T update yay -Syu; fi && notify-send 'The system has been updated'",
"tooltip": true,
"tooltip-format": "Left Click: Update System\nArch Linux Only",
},
// Separators
"custom/separator#dot": {
"format": "",
"interval": "once",
"tooltip": false
},
"custom/separator#dot-line": {
"format": "",
"interval": "once",
"tooltip": false
},
"custom/hoz-separator": {
"format": " ",
"interval": "once",
"tooltip": false
},
"custom/hoz-separator-dotted": {
"format": " ",
"interval": "once",
"tooltip": false
},
"custom/separator#line": {
"format": "|",
"interval": "once",
"tooltip": false
},
"custom/separator#blank": {
"format": "",
"interval": "once",
"tooltip": false
},
"custom/separator#blank_2": {
"format": " ",
"interval": "once",
"tooltip": false
},
"custom/separator#blank_3": {
"format": " ",
"interval": "once",
"tooltip": false
},
"custom/pulseaudio-control": {
"exec": "$HOME/.config/waybar/scripts/pulseaudio.sh text",
"on-click": "pulseaudio-control --node-blacklist 'alsa_output.usb-Razer_Razer_Nari-00.pro-output-0' next-node",
"on-click-middle": "exec pavucontrol &",
"on-click-right": "pulseaudio-control togmute"
},
"custom/pulseaudio-control#icons": {
"exec": "$HOME/.config/waybar/scripts/pulseaudio.sh icons",
"on-click": "pulseaudio-control --node-blacklist 'alsa_output.usb-Razer_Razer_Nari-00.pro-output-0' next-node",
"on-click-middle": "exec pavucontrol &",
"on-click-right": "pulseaudio-control togmute"
},
"custom/colorpicker": {
"format": "󰸱 ",
"on-click": "hyprpicker -a"
},
"custom/hypr-class": {
"format": "󰲌 ",
"on-click": "hyprctl activewindow | grep 'class:' | awk -F': ' '{print $2}' | wl-copy -n"
},
"custom/updates": {
"format": "{icon}{0}",
"return-type": "json",
"format-icons": {
"pending-updates": " ",
"updated": " "
},
"exec-if": "which waybar-updates",
"exec": "waybar-updates"
},
"custom/planify": {
"format": " ",
"on-click": "gtk-launch io.github.alainm23.planify.desktop"
}
}

View file

@ -1,97 +0,0 @@
//* ---- 💫 https://github.com/JaKooLit 💫 ---- *//
/* Waybar Modules - Groups Modules */
/* Basically created to reduce the lines in Waybar Modules bank */
/* NOTE: This is only for Groups */
{
// GROUPS
"group/app_drawer": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "custom/menu",
"transition-left-to-right": true
},
"modules": [
"custom/menu",
"custom/file_manager",
"custom/tty",
"custom/colorpicker",
"custom/hypr-class",
"custom/planify"
]
},
"group/motherboard": {
"orientation": "horizontal",
"modules": [
"cpu",
"power-profiles-daemon",
"memory",
"temperature",
"disk",
]
},
"group/mobo_drawer": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "cpu",
"transition-left-to-right": true
},
"modules": [
"temperature",
"cpu",
"power-profiles-daemon",
"memory",
"disk",
]
},
"group/laptop": {
"orientation": "inherit",
"modules": [
"backlight",
"battery",
]
},
"group/audio": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "pulseaudio",
"transition-left-to-right": true
},
"modules": [
"pulseaudio",
"pulseaudio#microphone",
]
},
"group/audio#pulsecontrol": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "pulseaudio",
"transition-left-to-right": true
},
"modules": [
"custom/pulseaudio-control#icons",
"pulseaudio#microphone",
]
},
"group/status": {
"orientation": "inherit",
"drawer": {
"transition-duration": 500,
"children-class": "custom/power",
"transition-left-to-right": false
},
"modules": [
"custom/power",
"custom/lock",
"keyboard-state",
"custom/keyboard",
]
},
}

View file

@ -1,202 +0,0 @@
//* ---- 💫 https://github.com/JaKooLit 💫 ---- *//
/* Waybar Workspaces modules */
/* Generally, this is a potential expanding of choices for hyprland/workspace */
// HYPRLAND WORKSPACES. CHOOSE as desired and place on waybar configs
{
// CIRCLES Style
"hyprland/workspaces": {
"active-only": false,
"all-outputs": true,
"format": "{icon}",
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"persistent-workspaces": {
"*": 5
},
"format-icons": {
"active": "",
"default": "",
},
},
// ROMAN Numerals style
"hyprland/workspaces#roman": {
"active-only": false,
"all-outputs": true,
"format": "{icon}",
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"persistent-workspaces": {
"*": 5
},
"format-icons": {
"1": "I",
"2": "II",
"3": "III",
"4": "IV",
"5": "V",
"6": "VI",
"7": "VII",
"8": "VIII",
"9": "IX",
"10": "X",
},
},
// PACMAN Style
"hyprland/workspaces#pacman": {
"active-only": false,
"all-outputs": true,
"format": "{icon}",
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"show-special": false,
"persistent-workspaces": {
"*": 5
},
"format": "{icon}",
"format-icons": {
"active": "<span font='12'>󰮯</span>",
"empty": "<span font='8'></span>",
"default": "󰊠",
},
},
// Kanji / Japanese style
"hyprland/workspaces#kanji": {
"disable-scroll": true,
"show-special": false,
"all-outputs": true,
"format": "{icon}",
"persistent-workspaces": {
"*": 5
},
"format-icons": {
"1": "一",
"2": "二",
"3": "三",
"4": "四",
"5": "五",
"6": "六",
"7": "七",
"8": "八",
"9": "九",
"10": "十",
}
},
// for Camilla or Spanish
"hyprland/workspaces#cam": {
"active-only":false,
"all-outputs": true,
"format": "{icon}",
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"persistent-workspaces": {
"*": 5
},
"format-icons": {
"1": "Uno",
"2": "Due",
"3": "Tre",
"4": "Quattro",
"5": "Cinque",
"6":"Sei",
"7":"Sette",
"8":"Otto",
"9":"Nove",
"10":"Dieci"
}
},
// NUMBERS and ICONS style
"hyprland/workspaces#4": {
"format": "{name}",
"format": " {name} {icon} ",
//"format": " {icon} ",
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"all-outputs": true,
"sort-by-number": true,
"format-icons": {
"1": " ",
"2": " ",
"3": " ",
"4": " ",
"5": " ",
"6": " ",
"7": "",
"8": " ",
"9": "",
"10": "10",
"focused": "",
"default": "",
},
},
// NUMBERS and ICONS style with window rewrite
"hyprland/workspaces#rw": {
"disable-scroll": true,
"all-outputs": true,
"warp-on-scroll": false,
"sort-by-number": true,
"show-special": false,
"on-click": "activate",
"on-scroll-up": "hyprctl dispatch workspace e+1",
"on-scroll-down": "hyprctl dispatch workspace e-1",
"format": "{icon} {windows}",
"format-window-separator": " ",
"window-rewrite-default": "",
"window-rewrite": {
"title<.*Picture-in-Picture.*>": " ",
"class<firefox|org.mozilla.firefox|librewolf|floorp|mercury-browser|[Cc]achy-browser>": " ",
"class<kitty|konsole|com.mitchellh.ghostty>": "",
"class<kitty-dropterm>": " ",
"class<Chromium|Thorium>": " ",
"class<org.telegram.desktop|io.github.tdesktop_x64.TDesktop>": " ",
"class<[Ss]potify>": " ",
"class<VSCode|code-url-handler|code-oss|codium|codium-url-handler|VSCodium>": "󰨞 ",
"class<zen>": "󰰷", //Zen Browsear
"class<thunar>": "󰝰 ",
"title<Yazi.*>": "󰝰 ",
"class<[Tt]hunderbird|[Tt]hunderbird-esr>": " ",
"class<eu.betterbird.Betterbird>": " ",
"class<discord|[Ww]ebcord|Vesktop>": " ",
"class<subl>": "󰅳 ",
"class<mpv>": " ",
"class<celluloid|Zoom>": " ",
"class<Cider>": "󰎆 ",
"class<virt-manager>": " ",
"class<.virt-manager-wrapped>": " ",
"class<codeblocks>": "󰅩 ",
"class<mousepad>": " ",
"class<libreoffice-writer>": " ",
"class<libreoffice-startcenter>": "󰏆 ",
"class<com.obsproject.Studio>": " ",
"class<polkit-gnome-authentication-agent-1>": "󰒃 ",
"class<nwg-look>": " ",
"class<waterfox|waterfox-bin>": " ",
"class<microsoft-edge>": " ",
"class<vlc>": "󰕼 ",
"class<steam>": " ",
"class<microsoftteams-nativefier-6234c0>": "󰊻 ",
"class<org.remmina.Remmina>": " ",
"class<com.github.th_ch.youtube_music>": " ",
"class<feishin>": " ",
"class<ONLYOFFICE>": " ",
"class<Beeper>": "󰭹 ",
"class<blender>": " ",
"class<heroic>": " ",
"class<net.lutris.Lutris>": " ",
"class<Unity>": " ",
"class<jetbrains-rider|jetbrains-phpstorm>": " "
}
},
}

View file

@ -1,3 +0,0 @@
{
"output": "eDP-1"
}

View file

@ -1 +0,0 @@
{}

View file

@ -1 +0,0 @@
configurations/hidden.json

View file

@ -1,44 +0,0 @@
{
"include": [
"$HOME/.config/waybar/Modules.json",
"$HOME/.config/waybar/ModulesWorkspaces.json",
"$HOME/.config/waybar/ModulesCustom.json",
"$HOME/.config/waybar/ModulesGroups.json",
"$HOME/.config/waybar/Output.config.json"
],
"layer": "top",
"exclusive": true,
"passthrough": false,
"position": "top",
"spacing": 3,
"fixed-center": true,
"ipc": true,
"margin-top": 3,
"margin-left": 8,
"margin-right": 8,
"modules-left": [
"group/app_drawer",
"custom/separator#dot-line",
"group/mobo_drawer",
"custom/separator#line",
"custom/weather",
],
"modules-center": [
"clock",
"custom/separator#line",
"hyprland/workspaces#rw",
],
"modules-right": [
"network#speed",
"group/laptop",
"custom/separator#line",
"tray",
"group/audio#pulsecontrol",
"custom/separator#dot-line",
"group/status",
"custom/swaync",
],
}

View file

@ -1,33 +0,0 @@
{
"include": [
"$HOME/.config/waybar/configurations/default.json"
],
"layer": "overlay",
"exclusive": false,
"position": "top",
"reload_style_on_change": true,
"name": "semi-hidden",
"id": "semi-hidden",
"start_hidden": true,
"margin-right": 10,
"modules-left": [
"group/app_drawer",
"group/mobo_drawer",
],
"modules-center": [
"clock",
"hyprland/workspaces#rw",
],
"modules-right": [
"group/laptop",
"tray",
"group/audio#pulsecontrol",
"group/status",
"custom/swaync",
],
}

View file

@ -1,28 +0,0 @@
#!/bin/env sh
SPEAKER_ICON="󰓃 "
HEADPHONE_ICON=" "
declare -A ICON_DEVICES
ICON_DEVICES[alsa_output.usb-Razer_Razer_Nari-00.pro-output-1]=$HEADPHONE_ICON
ICON_DEVICES[alsa_output.pci-0000_08_00.0.iec958-stereo]=$SPEAKER_ICON
ICON_VOLMUES=" , "
ICON_VOLUME_MUTED=" "
NICKNAME_SOURCE="device.nick"
FORMAT_DEFAULT='$VOL_ICON ${VOL_LEVEL}% $ICON_NODE $NODE_NICKNAME'
FORMAT_ICONS='$VOL_ICON $ICON_NODE $NODE_NICKNAME'
icon_devices_parameters=""
for device in "${!ICON_DEVICES[@]}"; do
icon_devices_parameters="${icon_devices_parameters} --node-nickname "${device}:${ICON_DEVICES[$device]}""
done
format=$FORMAT_DEFAULT
if [[ $1 == 'icons' ]]; then
format=$FORMAT_ICONS
fi
pulseaudio-control ${icon_devices_parameters} --icons-volume "${ICON_VOLMUES}" --icon-muted "${ICON_VOLUME_MUTED}" --node-nicknames-from "${NICKNAME_SOURCE}" --format "${format}" --color-muted "" listen

View file

@ -1,23 +0,0 @@
/* ---- 💫 https://github.com/JaKooLit 💫 ---- */
/* wallust template - colors-waybar */
@define-color foreground #F5F3F2;
@define-color background rgba(38,39,44,0.25);
@define-color cursor #F5F3F2;
@define-color color0 #4B4C52;
@define-color color1 #5B4438;
@define-color color2 #604A3F;
@define-color color3 #515870;
@define-color color4 #82756D;
@define-color color5 #A0865E;
@define-color color6 #A9A6A3;
@define-color color7 #E8E5E3;
@define-color color8 #A2A19F;
@define-color color9 #7A5A4B;
@define-color color10 #806254;
@define-color color11 #6C7596;
@define-color color12 #AE9B92;
@define-color color13 #D6B27D;
@define-color color14 #E2DDD9;
@define-color color15 #E8E5E3;

View file

@ -14,7 +14,7 @@ fi
if [ $XDG_SESSION_DESKTOP = "Hyprland" ]; then
addApplications hyprland \
waybar waybar-updates \
eww \
hyprlock hypr-idle \
swww \
hyprswitch \

View file

@ -1,6 +1,6 @@
#!/bin/env sh
addApplications python-pywal sass npm eww
addApplications python-pywal sass npm
addGitInstall "image-glsl-processing" "https://github.com/Neintonine/image-glsl-processing.git" setup_image_glsl_processing