diff --git a/private_dot_config/waybar/_modules/executable_dualsense-notifier.sh b/private_dot_config/waybar/_modules/executable_dualsense-notifier.sh new file mode 100644 index 0000000..8e873f8 --- /dev/null +++ b/private_dot_config/waybar/_modules/executable_dualsense-notifier.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +notify_id=0 +#icon="/usr/share/icons/breeze-dark/devices/64/input-gamepad.svg" +icon="/usr/share/icons/Arc/devices/64/input-gaming.png" + +dev=$(echo $DS_DEV | tr '[:lower:]' '[:upper:]') + +case "$1" in +add) + notify_id=$(notify-send -r $notify_id -i $icon "$dev" "Controller connected") + while true; do + class="" + battery=$(dualsensectl battery 2> /dev/null) + perc=$(echo $battery | cut -d' ' -f1) + state=$(echo $perc | cut -d' ' -f2) + if [ -z "$perc" -o -z "$state" ]; then + exit; + fi + if [ $perc -lt 15 -a "$state" != "charging" ]; then + notify_id=$(notify-send -r $notify_id -i $icon "$dev" "Low battery ${perc}%") + fi + echo "{\"class\": \"$class\", \"text\": \" ${perc}%\"}" + sleep 5m + done + ;; +remove) + notify_id=$(notify-send -r $notify_id -i $icon "$dev" "Controller disconnected") + echo "{\"text\": \"\"}" + ;; +*) + echo "{\"text\": \"\"}" + exec dualsensectl monitor add "${BASH_SOURCE[0]} add" remove "${BASH_SOURCE[0]} remove" + ;; +esac diff --git a/private_dot_config/waybar/_modules/executable_storage.sh b/private_dot_config/waybar/_modules/executable_storage.sh new file mode 100644 index 0000000..90cc3dc --- /dev/null +++ b/private_dot_config/waybar/_modules/executable_storage.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +mount="/" +warning=20 +critical=10 + +df -h -P -l "$mount" | awk -v warning=$warning -v critical=$critical ' +/\/.*/ { + text=$4 + tooltip="Filesystem: "$1"\rSize: "$2"\rUsed: "$3"\rAvail: "$4"\rUse%: "$5"\rMounted on: "$6 + use=$5 + exit 0 +} +END { + class="" + gsub(/%$/,"",use) + if ((100 - use) < critical) { + class="critical" + } else if ((100 - use) < warning) { + class="warning" + } + print "{\"text\":\""text"\", \"percentage\":"use",\"tooltip\":\""tooltip"\", \"class\":\""class"\"}" +} +' + diff --git a/private_dot_config/waybar/_modules/executable_wittr.sh b/private_dot_config/waybar/_modules/executable_wittr.sh new file mode 100644 index 0000000..cc6ed5e --- /dev/null +++ b/private_dot_config/waybar/_modules/executable_wittr.sh @@ -0,0 +1,6 @@ +#!/usr/bin/sh +#req=$(curl -s wttr.in/CITY?format="%t|%l+(%c%f)+%h,+%C") +req=$(curl -s wttr.in/?format="%t|%l+(%c%f)+%h,+%C") # Use GeoIP +bar=$(echo $req | awk -F "|" '{print $1}') +tooltip=$(echo $req | awk -F "|" '{print $2}') +echo "{\"text\":\"$bar\", \"tooltip\":\"$tooltip\"}" diff --git a/private_dot_config/waybar/dracula/colors.css b/private_dot_config/waybar/dracula/colors.css new file mode 100644 index 0000000..c1d5bda --- /dev/null +++ b/private_dot_config/waybar/dracula/colors.css @@ -0,0 +1,12 @@ +@define-color background-darker rgba(30, 31, 41, 230); +@define-color background #282a36; +@define-color selection #44475a; +@define-color foreground #f8f8f2; +@define-color comment #6272a4; +@define-color cyan #8be9fd; +@define-color green #50fa7b; +@define-color orange #ffb86c; +@define-color pink #ff79c6; +@define-color purple #bd93f9; +@define-color red #ff5555; +@define-color yellow #f1fa8c; diff --git a/private_dot_config/waybar/dracula/config b/private_dot_config/waybar/dracula/config new file mode 100644 index 0000000..620c00b --- /dev/null +++ b/private_dot_config/waybar/dracula/config @@ -0,0 +1,53 @@ +{ + "layer": "top", + "position": "top", + "height": 24, + "spacing": 4, + "modules-left": [ + "hyprland/workspaces", + "wlr/taskbar" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "tray", + "hyprland/language", + "custom/weather", + "clock" + ], + "wlr/taskbar": { + "on-click": "activate", + "on-click-middle": "close", + "ignore-list": [ + "foot" + ] + }, + "hyprland/workspaces": { + "on-click": "activate", + "on-scroll-up": "hyprctl dispatch workspace e-1", + "on-scroll-down": "hyprctl dispatch workspace e+1" + }, + "hyprland/window": { + "max-length": 128 + }, + "clock": { + "format": "{:%c}", + "tooltip-format": "{:%Y %B}\n{calendar}" + }, + "tray": { + "spacing": 4 + }, + "custom/weather": { + "exec": "~/.config/waybar/_modules/wittr.sh", + "return-type": "json", + "format": "{}", + "tooltip": true, + "interval": 900 + }, + "hyprland/language": { + "format-pl": "[pl]", + "format-en": "[us]", + "on-click": "hyprctl switchxkblayout at-translated-set-2-keyboard next" + } +} diff --git a/private_dot_config/waybar/dracula/style.css b/private_dot_config/waybar/dracula/style.css new file mode 100644 index 0000000..f5e160e --- /dev/null +++ b/private_dot_config/waybar/dracula/style.css @@ -0,0 +1,37 @@ +@import url("./colors.css"); +* { + border: none; + border-radius: 0; + font-family: Iosevka; + font-size: 11pt; + min-height: 0; +} +window#waybar { + opacity: 0.9; + background: @background-darker; + color: @foreground; + border-bottom: 2px solid @background; +} +#workspaces button { + padding: 0 10px; + background: @background; + color: @foreground; +} +#workspaces button:hover { + box-shadow: inherit; + text-shadow: inherit; + background-image: linear-gradient(0deg, @selection, @background-darker); +} +#workspaces button.active { + background-image: linear-gradient(0deg, @purple, @selection); +} +#workspaces button.urgent { + background-image: linear-gradient(0deg, @red, @background-darker); +} +#taskbar button.active { + background-image: linear-gradient(0deg, @selection, @background-darker); +} +#clock { + padding: 0 4px; + background: @background; +} diff --git a/private_dot_config/waybar/geo/config b/private_dot_config/waybar/geo/config new file mode 100644 index 0000000..e62e404 --- /dev/null +++ b/private_dot_config/waybar/geo/config @@ -0,0 +1,175 @@ +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + // "height": 14, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/mode"], + // "modules-center": ["sway/window"], + "modules-right": ["custom/arch_update", "custom/disk_home", "custom/disk_root","temperature", "cpu", "memory", "custom/mail", "network", "backlight", "pulseaudio", "clock", "battery", "idle_inhibitor", "tray"], + + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "sway/mode": { + "format": "{}" + }, + "custom/arch_update": { + "format": "{}", + "interval": 30, + "exec": "~/.config/i3blocks/bin/arch_update.py -b '#e4e4e4' -u '#e4e4e4' -q" + }, + "custom/disk_home": { + "format": "🏠 {} ", + "interval": 30, + "exec": "df -h --output=avail $HOME | tail -1 | tr -d ' '" + }, + "custom/disk_root": { + "format": "💽 {} ", + "interval": 30, + "exec": "df -h --output=avail / | tail -1 | tr -d ' '" + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{icon} {temperatureC}°C", + "format-icons": ["", "", ""] + }, + "cpu": { + "format": "🏭 {usage}%", + "tooltip": false + }, + "memory": { + "format": "💾 {used:0.1f}G" + }, + "custom/mail": { + "format": "📩{}", + "interval": 30, + "exec": "notmuch count tag:flagged OR tag:inbox AND NOT tag:killed" + }, + "network": { + "family": "ipv4", + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": " {essid} {frequency} {signaldBm} dB {bandwidthUpBits}/{bandwidthDownBits}", + "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}", + "interval": 5 + }, + "backlight": { + // "device": "acpi_video1", + "format": "{icon} {percent}%", + "format-icons": ["🔅", "🔆"] + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{icon} {volume}% {format_source}", + "format-muted": "🔇 {format_source}", + "format-bluetooth": "{icon} {volume}% {format_source}", + "format-bluetooth-muted": "🔇 {format_source}", + + "format-source": " {volume}%", + "format-source-muted": "", + + "format-icons": { + "headphones": "", + "handsfree": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["🔈", "🔉", "🔊"] + }, + "on-click": "ponymix -N -t sink toggle", + "on-click-right": "ponymix -N -t source toggle" + }, + "clock": { + "interval": 1, + "format": "⏰ {:%H:%M:%S}", + "tooltip-format": "{:%Y-%m-%d | %H:%M:%S}" + // "format-alt": "{:%Y-%m-%d}" + }, + "battery": { + "states": { + // "good": 95, + "warning": 20, + "critical": 10 + }, + "format": "{icon} {capacity}% ({time})", + "format-charging": " {capacity}%", + "format-plugged": "{icon} {capacity}% ({time})", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + }, + "on-click-right": "swaylock -eFfki ~/.config/lockscreen-origin.png" + }, + "tray": { + // "icon-size": 21, + "spacing": 10 + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + } +} diff --git a/private_dot_config/waybar/geo/executable_weather.sh b/private_dot_config/waybar/geo/executable_weather.sh new file mode 100644 index 0000000..5d5d80a --- /dev/null +++ b/private_dot_config/waybar/geo/executable_weather.sh @@ -0,0 +1,12 @@ +#!/bin/bash +LOC="$1" +# HTML encode string as %20 +LOCATION=$(sed -e "s/ /%20/g" <<<"$LOC") +content=$(curl -sS "https://thisdavej.azurewebsites.net/api/weather/current?loc=$LOCATION°=C") +ICON=$(curl 'https://wttr.in/?format=1' | sed 's/[+0-9a-cA-Z°]//g' ) +# echo $ICON +TEMP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)"' | sed 's/"//g') +TOOLTIP=$(echo $content | jq -r '. | "\(.temperature)°\(.degType)\n\(.skytext)"' | sed 's/"//g') +CLASS=$(echo $content | jq .skytext) +echo '{"text": "'$TEMP'", "tooltip": "'$ICON $TOOLTIP'", "class": '$CLASS' }' + diff --git a/private_dot_config/waybar/geo/style.css b/private_dot_config/waybar/geo/style.css new file mode 100644 index 0000000..d72b646 --- /dev/null +++ b/private_dot_config/waybar/geo/style.css @@ -0,0 +1,121 @@ +* { + border: none; + border-radius: 0; + font-family: "monospace"; + font-size: 12px; + min-height: 16px; + margin: 0px; +} + +window#waybar { + /*background: #000000;*/ + background: rgba(0, 0, 0, 0.7); + color: gray; + color: #ffffff; +} + +#window { + color: #e4e4e4; + font-weight: bold; +} + +#workspaces { + padding: 0px; + margin: 0px; +} + +#workspaces button { + padding: 0 2px; + margin: 0px; + background: transparent; + color: #ff8700; + /* + color: #00afd7; + color: #ffffff; + border: 1px solid #00afd7; + */ + border: 1px solid #1b1d1e; + font-weight: bold; +} +#workspaces button:hover { + box-shadow: inherit; + text-shadow: inherit; +} + +#workspaces button.focused { + background: #e88939; + background: #00afd7; + color: #1b1d1e; +} + +#workspaces button.urgent { + background: #af005f; + color: #1b1d1e; +} + +#mode { + background: #af005f; + color: #1b1d1e; +} +#clock, #battery, #cpu, #memory, #network, #pulseaudio, #custom-spotify, #tray, #mode { + padding: 0 3px; + margin: 0 2px; +} + +#clock { +} + +#battery { +} + +#battery icon { + color: red; +} + +#battery.charging { +} + +@keyframes blink { + to { + background-color: #af005f; + } +} + +#battery.warning:not(.charging) { + background-color: #ff8700; + color: #1b1d1e; +} +#battery.critical:not(.charging) { + color: white; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#cpu { +} + +#memory { +} + +#network { +} + +#network.disconnected { + background: #f53c3c; +} + +#pulseaudio { +} + +#pulseaudio.muted { +} + +#custom-spotify { + color: rgb(102, 220, 105); +} + +#tray { +} diff --git a/private_dot_config/waybar/jinks/bak.css b/private_dot_config/waybar/jinks/bak.css new file mode 100644 index 0000000..edc4b99 --- /dev/null +++ b/private_dot_config/waybar/jinks/bak.css @@ -0,0 +1,81 @@ +@import url("./colors.css"); +* { + border: none; + border-radius: 0; + font-family: InputSans Nerd Font; + font-size: 12px; + min-height: 0; +} +window#waybar { + opacity: 0.9; + background: transparent; + color: @foreground; + border-bottom: 2px solid @background; +} +#workspaces { + margin-top: 0px; + margin-left: 0px; + margin-bottom: 0; + border-radius: 26px; + background: @background; + transition: none; +} +#workspaces button { + padding: 0 10px; + background: transparent; + color: @foreground; +} +#workspaces button:hover { + box-shadow: inherit; + text-shadow: inherit; +} +#workspaces button.active { + /*background-image: linear-gradient(0deg, @purple, @selection);*/ + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #556892) + ); +} +#workspaces button.urgent { + background-image: linear-gradient(0deg, @red, @background-darker); +} +#taskbar button.active { + background-image: linear-gradient(0deg, @selection, @background-darker); +} +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#bluetooth, +#tray, +#idle_inhibitor, +#mpris, +#keyboard-state, +#battery, +#custom-swaync, +#custom-storage, +#custom-power +{ + padding: 0 7px; + opacity: 0.75; + background: @background; +} + +#temperature.critical { + color: @red; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: @red; +} diff --git a/private_dot_config/waybar/jinks/colors.css b/private_dot_config/waybar/jinks/colors.css new file mode 100644 index 0000000..c1d5bda --- /dev/null +++ b/private_dot_config/waybar/jinks/colors.css @@ -0,0 +1,12 @@ +@define-color background-darker rgba(30, 31, 41, 230); +@define-color background #282a36; +@define-color selection #44475a; +@define-color foreground #f8f8f2; +@define-color comment #6272a4; +@define-color cyan #8be9fd; +@define-color green #50fa7b; +@define-color orange #ffb86c; +@define-color pink #ff79c6; +@define-color purple #bd93f9; +@define-color red #ff5555; +@define-color yellow #f1fa8c; diff --git a/private_dot_config/waybar/jinks/config b/private_dot_config/waybar/jinks/config new file mode 100644 index 0000000..f93fba0 --- /dev/null +++ b/private_dot_config/waybar/jinks/config @@ -0,0 +1,262 @@ +{ + "layer": "bottom", // (top|bottom|overlay) + + "position": "top", // (top|bottom|left|right) + + "height": 16, // leave blank for a dynamic value + + "spacing": 0, // Gaps between modules + + "fixed-center": false, + + "modules-left": [ + "hyprland/workspaces", + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "custom/swaync", + "idle_inhibitor", + "cpu", + "memory", + "temperature#cpu", + "temperature#gpu", + "custom/storage", + "network", + "bluetooth", + "battery", + "pulseaudio", + "tray", + "clock", + "custom/weather", + "custom/power", + ], + + + // Module Config + "hyprland/workspaces": { + "format": "{id}", + "smooth-scrolling-threshold": 1.0, + "on-scroll-up": "hyprctl dispatch workspace m-1", + "on-scroll-down": "hyprctl dispatch workspace m+1", + "on-click": "activate" + }, + + "hyprland/window": { + "max-length": 200, + "on-scroll-up": "hyprctl dispatch workspace m-1", + "on-scroll-down": "hyprctl dispatch workspace m+1", + "separate-outputs": true + }, + + "tray": { + "icon-size": 15, + "spacing": 4 + }, + + "custom/swaync": { + "tooltip": false, + "format": "{icon}", + "format-icons": { + "notification": "", + "none": " ", + "dnd-notification": "", + "dnd-none": " ", + "inhibited-notification": "", + "inhibited-none": " ", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": " " + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "cpu": { + "format": " {max_frequency}GHz | {usage}%" , + }, + "memory": { + "format": "󰮌 {}%", + "on-click": "missioncenter" + }, + + "temperature#gpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:03.1/0000:05:00.0/0000:06:00.0/0000:07:00.0/hwmon", + "input-filename": "temp2_input", + "critical-threshold": 110, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true + }, + + "temperature#cpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/", + "input-filename": "temp1_input", + "critical-threshold": 90, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true, + "on-click": "xsensors" + }, + + "custom/storage": { + "format": " {}", + "format-alt": "{percentage}% ", + "format-alt-click": "click-right", + "return-type": "json", + "interval": 60, + "exec": "~/.config/waybar/_modules/storage.sh" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-ethernet": "󰌗 {bandwidthUpBytes} {bandwidthDownBytes}", + "format-wifi": " {bandwidthUpBytes} {bandwidthDownBytes}", + "tooltip-format": "[{ipaddr}/{cidr}] {ifname} via {gwaddr}", + "tooltip-format-wifi": "{essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\n[{ipaddr}/{cidr}] {ifname} via {gwaddr}", + "format-linked": "󰌗 {ifname} (No IP)", + "format-disconnected": "⚠ Disconnected", + "interval": 10, + "on-click": "nm-connection-editor", + "on-click-right": "rfkill toggle wlan" + }, + "battery": { + "interval": 2, + "states": { + "good": 85, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": "󱐋 {capacity}%", + "format-plugged": " {capacity}%", + "format-icons": [ + "", "", "", "", "" + ] + }, + + "bluetooth": { + // "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system + "format-on": "", + "format-off": "", + "format-disabled": "󰂲", // an empty format will hide the module + "format-connected": " 󰾰 {num_connections}", + "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}]", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t {device_battery_percentage}%\t[{device_address}]", + "on-click": "blueman-manager", + "on-click-right": "rfkill toggle bluetooth" + }, + + "wireplumber": { + "format": "{icon} {volume}%", + "format-muted": "󰖁 MUTE", + "on-click": "pulsecontrol", + "format-icons": ["󰕿", "󰖀", "󰕾"] + }, + + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": " {icon} {volume}% {format_source}", + "format-bluetooth": "{icon} {volume}% {format_source}", + "format-bluetooth-muted": "{icon} 󰖁 {format_source}", + "format-muted": "󰖁 {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["󰕿", "󰖀", "󰕾"] + }, + "on-click": "pulsecontrol" + }, + + "clock": { + "format": " {:%H:%M %Z}", + "tooltip-format": "{:%B %d %Y}\n{calendar}", + "format-alt": " {:%a, %d %b, W%V %Y} ", + "calendar": { + "mode" : "month", + "weeks-pos" : "right", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "on-click-right": "gsimplecal" + }, + + "custom/power": { + "format": "", + "tooltip": false, + "on-click": "wlogout" + }, + + "custom/weather": { + "exec": "~/.config/waybar/_modules/wittr.sh", + "return-type": "json", + "format": "{}", + "tooltip": true, + "interval": 900 + }, + +// Unused modules +// "keyboard-state": { +// "numlock": true, +// "capslock": true, +// "format": "{name} {icon}", +// "format-icons": { +// "locked": "", +// "unlocked": "" +// } +// }, +// "disk": { +// "format": " {percentage_used}%", +// "tooltip-format": "{used} of {total} on {path}", +// "path": "/" +// }, +// "mpris": { +// "format": "{player_icon} {artist} - {title}", +// "format-paused": "{status_icon} {artist} - {title}", +// "player-icons": { +// "default": "⏵", +// "mpv": "󰝚" +// }, +// "status-icons": { +// "paused": "⏯" +// }, +// "ignored-players": ["firefox"] +// }, +} diff --git a/private_dot_config/waybar/jinks/style.css b/private_dot_config/waybar/jinks/style.css new file mode 100644 index 0000000..431e389 --- /dev/null +++ b/private_dot_config/waybar/jinks/style.css @@ -0,0 +1,108 @@ +* { + border: none; + font-family: InputSans Nerd Font; + font-size: 12px; + color: #ffffff; + border-radius: 20px; +} + +window { + /*font-weight: bold;*/ +} +window#waybar { + background: rgba(0, 0, 0, 0); +} +/*-----module groups----*/ +.modules-left { + margin: 1px 0 1px 5px; + background-color: #282a36; +} +.modules-center { + background-color: rgba(0,43,51,0.85); + background: rgba(0, 0, 0, 0); + margin: 2px 0 0 0; +} +.modules-right { + background-color: rgba(0,43,51,0.85); + margin: 1px 10px 1px 0; +} +/*-----modules indv----*/ +#workspaces button { + margin: -5px 0; + padding: 0px 5px; + background-color: transparent; +} +#workspaces button:hover { + box-shadow: inherit; + background-color: #44475a; +} + +#workspaces button.active { + box-shadow: inherit; + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #556892) + ); +} + +#workspaces button.urgent { + box-shadow: inherit; + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #eb4d4b) + ); +} + +#clock, +#battery, +#cpu, +#memory, +#temperature, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#custom-power, +#custom-menu, +#idle_inhibitor { + padding: 0 10px; +} +#mode { + color: #cc3436; + font-weight: bold; +} +#custom-power { + background-color: rgba(0,119,179,0.6); + border-radius: 100px; + margin: 0px 5px; + padding: 1px 1px 1px 6px; +} +/*-----Indicators----*/ +#idle_inhibitor.activated { + color: #2dcc36; +} +#pulseaudio.muted { + color: #cc3436; +} +#battery.charging { + color: #2dcc36; +} +#battery.warning:not(.charging) { + color: #e6e600; +} +#battery.critical:not(.charging) { + color: #cc3436; +} +#temperature.critical { + color: #cc3436; +} +/*-----Colors----*/ +/* + *rgba(0,85,102,1),#005566 --> Indigo(dye) + *rgba(0,43,51,1),#002B33 --> Dark Green + *rgba(0,153,153,1),#009999 --> Persian Green + * + */ diff --git a/private_dot_config/waybar/siren/config b/private_dot_config/waybar/siren/config new file mode 100644 index 0000000..57b7520 --- /dev/null +++ b/private_dot_config/waybar/siren/config @@ -0,0 +1,273 @@ +{ + "layer": "bottom", // (top|bottom|overlay) + + "position": "top", // (top|bottom|left|right) + + "height": 16, // leave blank for a dynamic value + + "spacing": 0, // Gaps between modules + + "fixed-center": false, + + "modules-left": [ + "hyprland/workspaces", + "custom/arrow8" + ], + "modules-center": [ + "hyprland/window" + ], + "modules-right": [ + "custom/arrow0", + "custom/swaync", + "idle_inhibitor", + "custom/arrow1", + "cpu", + "custom/arrow2", + "memory", + "custom/arrow3", + "temperature#cpu", + "temperature#gpu", + "custom/arrow4", + "custom/storage", + "custom/arrow5", + "network", + "custom/arrow6", + "bluetooth", + "battery", + "pulseaudio", + "custom/arrow7", + "tray", + "clock", + "custom/power" + ], + + + // Module Config + "hyprland/workspaces": { + "format": "{id}", + "smooth-scrolling-threshold": 1.0, + "on-scroll-up": "hyprctl dispatch workspace m-1", + "on-scroll-down": "hyprctl dispatch workspace m+1", + "on-click": "activate" + }, + + "hyprland/window": { + "max-length": 200, + "on-scroll-up": "hyprctl dispatch workspace m-1", + "on-scroll-down": "hyprctl dispatch workspace m+1", + "separate-outputs": true + }, + + "tray": { + "icon-size": 15, + "spacing": 4 + }, + + "custom/swaync": { + "tooltip": false, + "format": "{icon}", + "format-icons": { + "notification": "", + "none": " ", + "dnd-notification": "", + "dnd-none": " ", + "inhibited-notification": "", + "inhibited-none": " ", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": " " + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "cpu": { + "format": " {max_frequency}GHz | {usage}%" , + }, + "memory": { + "format": "󰮌 {}%", + "on-click": "missioncenter" + }, + + "temperature#gpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:03.1/0000:05:00.0/0000:06:00.0/0000:07:00.0/hwmon", + "input-filename": "temp2_input", + "critical-threshold": 110, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true + }, + + "temperature#cpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/", + "input-filename": "temp1_input", + "critical-threshold": 90, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true, + "on-click": "xsensors" + }, + + "custom/storage": { + "format": " {}", + "format-alt": "{percentage}% ", + "format-alt-click": "click-right", + "return-type": "json", + "interval": 60, + "exec": "~/.config/waybar/_modules/storage.sh" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-ethernet": "󰌗 {bandwidthUpBytes} {bandwidthDownBytes}", + "format-wifi": " {bandwidthUpBytes} {bandwidthDownBytes}", + "tooltip-format": "[{ipaddr}/{cidr}] {ifname} via {gwaddr}", + "tooltip-format-wifi": "{essid} {frequency}MHz\nStrength: {signaldBm}dBm ({signalStrength}%)\n[{ipaddr}/{cidr}] {ifname} via {gwaddr}", + "format-linked": "󰌗 {ifname} (No IP)", + "format-disconnected": "⚠ Disconnected", + "interval": 10, + "on-click": "nm-connection-editor", + "on-click-right": "rfkill toggle wlan" + }, + "battery": { + "interval": 2, + "states": { + "good": 85, + "warning": 30, + "critical": 15 + }, + "format": "{icon} {capacity}%", + "format-charging": "󱐋 {capacity}%", + "format-plugged": " {capacity}%", + "format-icons": [ + "", "", "", "", "" + ] + }, + + "bluetooth": { + // "controller": "controller1", // specify the alias of the controller if there are more than 1 on the system + "format-on": "", + "format-off": "", + "format-disabled": "󰂲", // an empty format will hide the module + "format-connected": " 󰾰 {num_connections}", + "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}]", + "tooltip-format-enumerate-connected-battery": "{device_alias}\t {device_battery_percentage}%\t[{device_address}]", + "on-click": "blueman-manager", + "on-click-right": "rfkill toggle bluetooth" + }, + + "wireplumber": { + "format": "{icon} {volume}%", + "format-muted": "󰖁 MUTE", + "on-click": "pulsecontrol", + "format-icons": ["󰕿", "󰖀", "󰕾"] + }, + + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": " {icon} {volume}% {format_source}", + "format-bluetooth": "{icon} {volume}% {format_source}", + "format-bluetooth-muted": "{icon} 󰖁 {format_source}", + "format-muted": "󰖁 {format_source}", + "format-source": "{volume}% ", + "format-source-muted": "", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["󰕿", "󰖀", "󰕾"] + }, + "on-click": "pulsecontrol" + }, + + "clock": { + "format": " {:%H:%M %Z}", + "tooltip-format": "{:%B %d %Y}\n{calendar}", + "format-alt": " {:%a, %d %b, W%V %Y} ", + "calendar": { + "mode" : "month", + "weeks-pos" : "right", + "format": { + "months": "{}", + "days": "{}", + "weeks": "W{}", + "weekdays": "{}", + "today": "{}" + } + }, + "on-click-right": "gsimplecal" + }, + + "custom/power": { + "format": "", + "tooltip": false, + "on-click": "wlogout" + }, + + // Separators + "custom/arrow0": { "format": "", "tooltip": false }, + "custom/arrow1": { "format": "", "tooltip": false }, + "custom/arrow2": { "format": "", "tooltip": false }, + "custom/arrow3": { "format": "", "tooltip": false }, + "custom/arrow4": { "format": "", "tooltip": false }, + "custom/arrow5": { "format": "", "tooltip": false }, + "custom/arrow6": { "format": "", "tooltip": false }, + "custom/arrow7": { "format": "", "tooltip": false }, + "custom/arrow8": { "format": "", "tooltip": false } + +// Unused modules +// "keyboard-state": { +// "numlock": true, +// "capslock": true, +// "format": "{name} {icon}", +// "format-icons": { +// "locked": "", +// "unlocked": "" +// } +// }, +// "disk": { +// "format": " {percentage_used}%", +// "tooltip-format": "{used} of {total} on {path}", +// "path": "/" +// }, +// "mpris": { +// "format": "{player_icon} {artist} - {title}", +// "format-paused": "{status_icon} {artist} - {title}", +// "player-icons": { +// "default": "⏵", +// "mpv": "󰝚" +// }, +// "status-icons": { +// "paused": "⏯" +// }, +// "ignored-players": ["firefox"] +// }, +} diff --git a/private_dot_config/waybar/siren/style.css b/private_dot_config/waybar/siren/style.css new file mode 100644 index 0000000..17504ef --- /dev/null +++ b/private_dot_config/waybar/siren/style.css @@ -0,0 +1,329 @@ +* { + /* `otf-font-awesome` is required to be installed for icons */ +/* font-family: Input Mono Light, Input Mono, FontAwesome, SymbolsNerdFont, Roboto, Helvetica, Arial, sans-serif; */ + /* font-family: JetBrainsMono Nerd Font, FontAwesome, SymbolsNerdFont; */ + font-family: InputSans Nerd Font ; + font-size: 12px; + min-height: 0; +} + +window#waybar { + background: transparent; + color: #aeafb2; + transition-property: background-color; + transition-duration: .5s; +} + +window#waybar.hidden { + opacity: 0.2; +} + +window#waybar.termite { + background-color: #3F3F3F; +} + +window#waybar.chromium { + background-color: #000000; + border: none; +} + +/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ + +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#bluetooth, +#tray, +#idle_inhibitor, +#mpris, +#keyboard-state, +#battery, +#custom-swaync, +#custom-storage, +#custom-power +{ + padding: 0 7px; + opacity: 0.75; +} + +#battery, +#cpu, +#memory, +#disk, +#temperature, +#network, +#pulseaudio, +#wireplumber, +#bluetooth, +#mpris, +#idle_inhibitor +{ + border: 0; + border-radius: 0px; +} + +#workspaces { + background: rgba(49, 60, 84, 0.75); + border-radius: 0px; + border: 0; + margin: 0; + padding: 0 7px 0 0; + } + +#workspaces button { + color: #aeafb2; + padding: 0px 4px 0px 4px; + margin: 0; + background-color: transparent; + border: 0; + border-radius: 0px; +} + +#workspaces button:hover, #workspaces button.active:hover { + color: #fff; + background: #647aab; + box-shadow: inherit; + text-shadow: inherit; + border: 0; + border-radius: 0px; +} + +#workspaces button.visible { + border: 0; + border-radius: 0px; + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #556892) + ); + +} + +#workspaces button.active { + color: #fff000; + border: 0; + border-radius: 0px; + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #556892) + ); + +} + +#workspaces button.urgent { + color: #fff; + border: 0; + border-radius: 0px; + background-image: -gtk-gradient (linear, + 0.5 0, 0.5 1, + color-stop(0.2, #313c54), + color-stop(1, #eb4d4b) + ); +} + +#window { + padding: 0px 7px 0 7px; + opacity: 1; + color: #dcdcde; + text-shadow: 1px 1px 2px #111; +} + +#idle_inhibitor { + color: #aeafb2; +} + +#idle_inhibitor.activated { + color: #fff; +} + +#clock, +#custom-power, +#custom-swaync, +#idle_inhibitor, +#tray { + background-color: #111; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: #eb4d4b; +} + +#cpu +{ + background-color: #313c54; +} + +#memory { + background-color: #455c8f; +} + +#temperature { + background-color: #17243b; +} + +#temperature.critical { + color: #cf4beb; +} + +#disk, +#custom-storage +{ + background-color: #38588f; +} + +#network { + color: #dcdcde; + background-color: #37373f; +} + +#bluetooth.disabled, +#pulseaudio.muted, +#wireplumber.muted, +#battery.critical, +#network.disconnected { + color: #f53c3c; +} + +#bluetooth.off { + color: #909091; +} + +#bluetooth, +#pulseaudio, +#battery, +#wireplumber +{ + background-color: #112254; +} + +#battery +{ + color: #fff; +} + +#battery.good +{ + color: #aeafb2; +} + +#battery.warning +{ + color: #fff000; + +} + +/* arrows */ + +#custom-arrow0, +#custom-arrow1, +#custom-arrow2, +#custom-arrow3, +#custom-arrow4, +#custom-arrow5, +#custom-arrow6, +#custom-arrow7, +#custom-arrow8 +{ + margin: 0 0 -1px 0; + padding: 1px 0 0 0; + opacity: 0.75; + font-size: 12px; +} + +#custom-arrow0 { + color: #111; + background-color: transparent; +} + +#custom-arrow1 { + color: #313c54; + background-color: #111; +} + +#custom-arrow2 { + color: #455c8f; + background-color: #313c54; +} + +#custom-arrow3 { + color: #17243b; + background-color: #455c8f; +} + +#custom-arrow4 { + color: #38588f; + background-color: #17243b; +} + +#custom-arrow5 { + color: #37373f; + background-color: #38588f; +} + +#custom-arrow6 { + color: #112254; + background-color: #37373f; +} + +#custom-arrow7 { + color: #111; + background-color: #112254; +} + +#custom-arrow8 { + color: #313c54; + background-color: transparent; + margin: 0 0 -2px 0; + padding: 0px 0 0 0; + font-size: 14px; +} + +/* unused */ +/* +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#mpris { + background:#989898; +} + +#keyboard-state { + background: #455c8f; + color: #aeafb2; + padding: 0; + margin: 0 0 0 5px; + min-width: 16px; + border-top: 1px solid rgba(25, 25, 25, 0.5); + border-bottom: 1px solid rgba(25, 25, 25, 0.5); + border-left: 1px solid rgba(25, 25, 25, 0.5); + border: 0; + border-radius: 20px 0 0 20px; +} + + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + color: #fff; + background: rgba(255, 255, 255, 0.2); +} +*/ diff --git a/private_dot_config/waybar/sway/config b/private_dot_config/waybar/sway/config new file mode 100644 index 0000000..03e5959 --- /dev/null +++ b/private_dot_config/waybar/sway/config @@ -0,0 +1,237 @@ +// ============================================================================= +// +// Waybar configuration +// +// Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration +// +// ============================================================================= + +{ + // ------------------------------------------------------------------------- + // Global configuration + // ------------------------------------------------------------------------- + + "layer": "top", + + "position": "top", + + "fixed-center": false, + + // If height property would be not present, it'd be calculated dynamically + "height": 16, + + "modules-left": [ + "sway/workspaces", + "sway/mode" + ], + "modules-center": [ + "sway/window" + ], + "modules-right": [ + //"network", + "memory", + "cpu", + "temperature#cpu", + "temperature#gpu", + "pulseaudio", + //"battery", + "custom/dualsense", + "idle_inhibitor", + "custom/swaync", + "tray", + "clock" + ], + + + // ------------------------------------------------------------------------- + // Modules + // ------------------------------------------------------------------------- + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": " ", + "deactivated": " " + } + }, + + "battery": { + "interval": 10, + "states": { + "warning": 30, + "critical": 15 + }, + // Connected to AC + "format": " {icon} {capacity}%", // Icon: bolt + // Not connected to AC + "format-discharging": "{icon} {capacity}%", + "format-icons": [ + "", // Icon: battery-full + "", // Icon: battery-three-quarters + "", // Icon: battery-half + "", // Icon: battery-quarter + "" // Icon: battery-empty + ], + "tooltip": true + }, + + "clock": { + "interval": 10, + "timezones": ["Europe/Berlin", "America/Los_Angeles", "America/Phoenix"], + "format": " {:%a %e %b, %H:%M %Z}", // Icon: calendar-alt + "tooltip-format": "{:%B %Y}\n{calendar}", + "today-format": "{}", + "on-click": "gsimplecal" + }, + + "cpu": { + "interval": 5, + "format": " {usage}% ({load})", // Icon: microchip + "states": { + "warning": 70, + "critical": 90 + } + }, + + "custom/keyboard-layout": { + "exec": "swaymsg -t get_inputs | grep -m1 'xkb_active_layout_name' | cut -d '\"' -f4", + // Interval set only as a fallback, as the value is updated by signal + "interval": 30, + "format": " {}", // Icon: keyboard + // Signal sent by Sway key binding (~/.config/sway/key-bindings) + "signal": 1, // SIGHUP + "tooltip": false + }, + + "custom/dualsense": { + "tooltip": false, + "return-type": "json", + "exec": "$HOME/.config/waybar/_modules/dualsense-notifier.sh", + "on-click": "dualsensectl power-off", + }, + + "memory": { + "interval": 5, + "format": " {}%", // Icon: memory + "states": { + "warning": 70, + "critical": 90 + } + }, + + "network": { + "interval": 5, + "format-wifi": " {essid} ({signalStrength}%)", // Icon: wifi + "format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet + "format-disconnected": "⚠ Disconnected", + "tooltip-format": "{ifname}: {ipaddr}" + }, + + "sway/mode": { + "format": " {}", // Icon: expand-arrows-alt + "tooltip": false + }, + + "sway/window": { + "format": "{}", + "max-length": 120 + }, + + "sway/workspaces": { + "all-outputs": false, + "disable-scroll": false, + "format": "{name}", + "enable-bar-scroll": false, + "disable-scroll-wraparound": true, + "warp-on-scroll": true, + "format-icons": { + "1:www": "龜", // Icon: firefox-browser + "2:mail": "", // Icon: mail + "3:editor": "", // Icon: code + "4:terminals": "", // Icon: terminal + "5:portal": "", // Icon: terminal + "urgent": "", + "focused": "", + "default": "" + } + }, + + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {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-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + + "temperature#gpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:03.1/0000:05:00.0/0000:06:00.0/0000:07:00.0/hwmon", + "input-filename": "temp2_input", + "critical-threshold": 110, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true + }, + + "temperature#cpu": { + "hwmon-path-abs": "/sys/devices/pci0000:00/0000:00:18.3/hwmon/", + "input-filename": "temp1_input", + "critical-threshold": 90, + "interval": 5, + "format": "{icon} {temperatureC}°C", + "format-icons": [ + "", // Icon: temperature-empty + "", // Icon: temperature-quarter + "", // Icon: temperature-half + "", // Icon: temperature-three-quarters + "" // Icon: temperature-full + ], + "tooltip": true + }, + + "custom/swaync": { + "tooltip": false, + "format": "{icon}", + "format-icons": { + "notification": "", + "none": " ", + "dnd-notification": "", + "dnd-none": " ", + "inhibited-notification": "", + "inhibited-none": " ", + "dnd-inhibited-notification": "", + "dnd-inhibited-none": " " + }, + "return-type": "json", + "exec-if": "which swaync-client", + "exec": "swaync-client -swb", + "on-click": "swaync-client -t -sw", + "on-click-right": "swaync-client -d -sw", + "escape": true + }, + + "tray": { + "icon-size": 16, + "spacing": 8 + } + +} diff --git a/private_dot_config/waybar/sway/config.save b/private_dot_config/waybar/sway/config.save new file mode 100644 index 0000000..528ba74 --- /dev/null +++ b/private_dot_config/waybar/sway/config.save @@ -0,0 +1,148 @@ +{ + // "layer": "top", // Waybar at top layer + // "position": "bottom", // Waybar position (top|bottom|left|right) + "height": 20, // Waybar height (to be removed for auto height) + // "width": 1280, // Waybar width + // Choose the order of the modules + "modules-left": ["sway/workspaces", "sway/mode", "custom/media"], + "modules-center": ["sway/window"], + "modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "sway/language", "battery", "battery#bat2", "clock", "tray"], + //"modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "sway/language", "battery", "battery#bat2", "clock", "tray"], + // Modules configuration + // "sway/workspaces": { + // "disable-scroll": true, + // "all-outputs": true, + // "format": "{name}: {icon}", + // "format-icons": { + // "1": "", + // "2": "", + // "3": "", + // "4": "", + // "5": "", + // "urgent": "", + // "focused": "", + // "default": "" + // } + // }, + "sway/mode": { + "format": "{}" + }, + "mpd": { + "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ ", + "format-disconnected": "Disconnected ", + "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ", + "unknown-tag": "N/A", + "interval": 2, + "consume-icons": { + "on": " " + }, + "random-icons": { + "off": " ", + "on": " " + }, + "repeat-icons": { + "on": " " + }, + "single-icons": { + "on": "1 " + }, + "state-icons": { + "paused": "", + "playing": "" + }, + "tooltip-format": "MPD (connected)", + "tooltip-format-disconnected": "MPD (disconnected)" + }, + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "", + "deactivated": "" + } + }, + "tray": { + // "icon-size": 16, + "spacing": 8 + }, + "clock": { + // "timezone": "America/New_York", + "tooltip-format": "{:%Y %B}\n{calendar}", + "format-alt": "{:%Y-%m-%d}" + }, + "cpu": { + "format": "{usage}% ", + "tooltip": false + }, + "memory": { + "format": "{}% " + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C {icon}", + "format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "format-icons": ["", ""] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% ", + "format-alt": "{time} {icon}", + // "format-good": "", // An empty format will hide the module + // "format-full": "", + "format-icons": ["", "", "", "", ""] + }, + "battery#bat2": { + "bat": "BAT2" + }, + "network": { + // "interface": "wlp2*", // (Optional) To force the use of this interface + "format-wifi": "{essid} ({signalStrength}%) ", + "format-ethernet": "{ifname}: {ipaddr}/{cidr} ", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "Disconnected ⚠", + "format-alt": "{ifname}: {ipaddr}/{cidr}" + }, + "pulseaudio": { + // "scroll-step": 1, // %, can be a float + "format": "{volume}% {icon} {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-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click": "pavucontrol" + }, + "custom/media": { + "format": "{icon} {}", + "return-type": "json", + "max-length": 40, + "format-icons": { + "spotify": "", + "default": "🎜" + }, + "escape": true, + "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder + // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name + } +} diff --git a/private_dot_config/waybar/sway/style.css b/private_dot_config/waybar/sway/style.css new file mode 100644 index 0000000..5fd2a8d --- /dev/null +++ b/private_dot_config/waybar/sway/style.css @@ -0,0 +1,196 @@ +/* ============================================================================= + * + * Waybar configuration + * + * Configuration reference: https://github.com/Alexays/Waybar/wiki/Configuration + * + * =========================================================================== */ + +/* ----------------------------------------------------------------------------- + * Keyframes + * -------------------------------------------------------------------------- */ + +@keyframes blink-warning { + 70% { + color: white; + } + + to { + color: white; + background-color: orange; + } +} + +@keyframes blink-critical { + 70% { + color: white; + } + + to { + color: white; + background-color: red; + } +} + + +/* ----------------------------------------------------------------------------- + * Base styles + * -------------------------------------------------------------------------- */ + +/* Reset all styles */ +* { + border: none; + border-radius: 0; + min-height: 0; + margin: 0; + padding: 0; +} + +/* The whole bar */ +#waybar { + background: #323232; + color: white; + /* font-family: Cantarell, Noto Sans, sans-serif; */ + font-family: InputSans Nerd Font ; + font-size: 12px; +} + +/* Each module */ +#battery, +#clock, +#cpu, +#custom-keyboard-layout, +#memory, +#mode, +#network, +#pulseaudio, +#temperature, +#tray { + padding-left: 4px; + padding-right: 4px; +} + + +/* ----------------------------------------------------------------------------- + * Module styles + * -------------------------------------------------------------------------- */ + +#battery { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#battery.warning { + color: orange; +} + +#battery.critical { + color: red; +} + +#battery.warning.discharging { + animation-name: blink-warning; + animation-duration: 3s; +} + +#battery.critical.discharging { + animation-name: blink-critical; + animation-duration: 2s; +} + +#clock { + font-weight: bold; + min-width: 60px; +} + +#cpu { + /* No styles */ +} + +#cpu.warning { + color: orange; +} + +#cpu.critical { + color: red; +} + +#memory { + animation-timing-function: linear; + animation-iteration-count: infinite; + animation-direction: alternate; +} + +#memory.warning { + color: orange; +} + +#memory.critical { + color: red; + animation-name: blink-critical; + animation-duration: 2s; +} + +#mode { + background: #64727D; + border-top: 2px solid white; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 2px; +} + +#network { + /* No styles */ +} + +#network.disconnected { + color: orange; +} + +#pulseaudio { + /* No styles */ +} + +#pulseaudio.muted { + /* No styles */ +} + +#custom-spotify { + color: rgb(102, 220, 105); +} + +#temperature { + /* No styles */ +} + +#temperature.critical { + color: red; +} + +#tray { + /* No styles */ +} + +#window { + font-weight: bold; +} + +#workspaces button { + border-top: 0px solid transparent; + /* To compensate for the top border and still have vertical centering */ + padding-bottom: 0px; + padding-left: 4px; + padding-right: 4px; + color: #888888; +} + +#workspaces button.focused { + border-color: #4c7899; + color: white; + background-color: #285577; +} + +#workspaces button.urgent { + border-color: #c9545d; + color: #c9545d; +}