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;
+}