diff options
-rw-r--r-- | .dotter/global.toml | 6 | ||||
-rw-r--r-- | .dotter/local.toml | 4 | ||||
-rw-r--r-- | kitty/kitty.conf | 51 | ||||
-rw-r--r-- | waybar/config | 143 | ||||
-rwxr-xr-x | waybar/custom_modules/cpugovernor.sh | 16 | ||||
-rwxr-xr-x | waybar/custom_modules/custom-gpu-lite.sh | 8 | ||||
-rwxr-xr-x | waybar/custom_modules/custom-gpu.sh | 12 | ||||
-rwxr-xr-x | waybar/custom_modules/custom-kdeconnect.sh | 85 | ||||
-rwxr-xr-x | waybar/custom_modules/media-player-status.py | 123 | ||||
-rwxr-xr-x | waybar/launch.sh | 2 | ||||
-rw-r--r-- | waybar/style.css | 341 | ||||
-rw-r--r-- | waybar/waybar.zip | bin | 0 -> 7383 bytes |
12 files changed, 790 insertions, 1 deletions
diff --git a/.dotter/global.toml b/.dotter/global.toml index 0b47b62..6660427 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -6,6 +6,9 @@ depends = [] [alacritty.files] "alacritty" = "~/.config/alacritty" +[kitty.files] +"kitty" = "~/.config/kitty" + [conky.files] "conky" = "~/.config/conky" @@ -35,5 +38,8 @@ depends = [] [polybar.files] "polybar" = "~/.config/polybar" +[waybar.files] +"waybar" = "~/.config/waybar" + [rofi.files] "rofi" = "~/.config/rofi" diff --git a/.dotter/local.toml b/.dotter/local.toml index 0bcd0dc..88cd0c9 100644 --- a/.dotter/local.toml +++ b/.dotter/local.toml @@ -2,15 +2,17 @@ includes = [] packages = [ "alacritty", + "kitty", "conky", "dunst", "gtk", - "hyprland" + "hyprland", "i3", "mpd", "neomutt", "nvim", "polybar", + "waybar", "rofi" ] diff --git a/kitty/kitty.conf b/kitty/kitty.conf new file mode 100644 index 0000000..7c84a35 --- /dev/null +++ b/kitty/kitty.conf @@ -0,0 +1,51 @@ +# gruvbox-dark colorscheme for kitty +# snazzy theme used as base + +font_family JetBrainsMono Nerd Font Mono +bold_font JetBrainsMono Nerd Font Mono Extra Bold +bold_italic_font JetBrainsMono Nerd Font Mono Extra Bold Italic +font_size 16.0 + +# term xterm-256color +enable_audio_bell false + +foreground #ebdbb2 +background #1d2021 +selection_foreground #655b53 +selection_background #ebdbb2 +url_color #d65c0d + +# black +color0 #1d2021 +color8 #1d2021 + +# red +color1 #cc231c +color9 #fb4833 + +# green +color2 #989719 +color10 #b8ba25 + +# yellow +color3 #d79920 +color11 #fabc2e + +# blue +color4 #448488 +color12 #83a597 + +# magenta +color5 #b16185 +color13 #d3859a + +# cyan +color6 #689d69 +color14 #8ec07b + +# white +color7 #a89983 +color15 #ebdbb2 + +mouse_map left click ungrabbed mouse_handle_click prompt +mouse_map ctrl+left click ungrabbed mouse_handle_click link diff --git a/waybar/config b/waybar/config new file mode 100644 index 0000000..d3daf39 --- /dev/null +++ b/waybar/config @@ -0,0 +1,143 @@ +{ + "layer": "top", // Waybar at top layer + "exclusive": false, + //"mode": "overlay", + //"passthrough": false, + "start_hidden": true, + "position": "top", // Waybar position (top|bottom|left|right) + // "width": 1280, // Waybar width + "spacing": 2, // Gaps between modules (4px) + // Choose the order of the modules + // "margin-left":25, + // "margin-right":25, + "margin-bottom":-5, + //"margin-top":5, + "modules-left": ["hyprland/workspaces","custom/audio_idle_inhibitor"], + "modules-right": ["cpu","memory","pulseaudio","tray"], + "modules-center": [ "clock"], + // Modules configuration + + + // custom modules // + "custom/cycle_wall":{ + "format":" ", + // "interval": 1, + "on-click": "~/.config/hypr/scripts/wall", + "tooltip": false + + }, + + "custom/spotify": { + "exec": "/usr/bin/python3 .config/hypr/scripts//mediaplayer.py --player spotify", + "format": "{} ", + "return-type": "json", + "on-click": "playerctl next", + "on-scroll-up": "playerctl previous", + "on-click-right": "playerctl stop" + }, + + "custom/audio_idle_inhibitor": { + "format": "{icon}", + "exec": "sway-audio-idle-inhibit --dry-print-both-waybar", + "exec-if": "which sway-audio-idle-inhibit", + "on-click": "playerctl stop", + "return-type": "json", + "tooltip": false, + "format-icons": { + "output": "", + "input": "", + "output-input": " ", + "none": "" + } + }, + "custom/weather": { + "exec": "python ~/.config/hypr/scripts/weather.py", + "restart-interval": 300, + "return-type": "json", + "on-click": "xdg-open https://weather.com/en-IN/weather/today/l/$(location_id)" + // "format-alt": "{alt}", + }, + + // End of custom modules // + "wlr/workspaces": { + "format": "{icon}", + "format-active": " {icon} ", + "on-click": "activate" + // "format-icons":{ + // "10":"10" + // } + }, + "tray": { + "icon-size": 18, + "spacing": 8, + "show-passive-items": false + }, + "clock": { + // "timezone": "America/New_York", + "tooltip": false, + "interval": 60, + "format": "{:%H:%M}", + "max-length": 25, + "on-click": "kitty --class calendar -e calcure" + }, + "cpu": { + "interval":1, + "format": "{icon0} {icon1} {icon2} {icon3}", + "format-icons": ["▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"], + "on-click": "kitty --class system_monitor -e htop" + + }, + "memory": { + "format": "{percentage}% ", + "interval": 1, + "on-click": "kitty --class system_monitor -e htop", + "max-lenght": 35 + }, + "backlight": { + // "device": "acpi_video1", + "format": "{percent}% {icon}", + "on-scroll-down": "swayosd-client --brightness raise", + "on-scroll-up": "swayosd-client --brightness lower", + "format-icons": ["", "", "", "", "", "", "", "", ""] + }, + "battery": { + "states": { + "warning": 50, + "critical": 20 + }, + "format": "{capacity}% {icon}", + "format-charging": "{capacity}% ", + "format-plugged": "{capacity}% {icon}", + "format-good": "", // An empty format will hide the module + "format-full": "", + "format-icons": ["","","","","","","", "", "", "", ""], + "on-click": ".config/rofi/powermenu/type-5/powermenu.sh", + }, + "pulseaudio": { + "format": "{volume}% {icon}", + "format-bluetooth": "{volume}% {icon}", + "format-bluetooth-muted": "婢 muted", + "format-muted": " muted", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "", + "phone": "", + "portable": "", + "car": "", + "default": ["", "", ""] + }, + "on-click-right": "pavucontrol", + "on-click": "swayosd-client --output-volume mute-toggle", + "on-scroll-down": "swayosd-client --output-volume raise", + "on-scroll-up": "swayosd-client --output-volume lower", + }, + "network": { + "interface": "wlan0", + "format-wifi": " {signalStrength}% ", + "format-disconnected": " Offline ", + "tooltip-format": "{ifname} via {gwaddr} ", + "tooltip-format-wifi": "{essid}", + //"on-click": "~/.config/hypr/scripts/rofi-wifi-menu" + } +} diff --git a/waybar/custom_modules/cpugovernor.sh b/waybar/custom_modules/cpugovernor.sh new file mode 100755 index 0000000..2f75469 --- /dev/null +++ b/waybar/custom_modules/cpugovernor.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +GOVERNOR=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor) + +if [ $GOVERNOR = performance ]; then + echo '{"text": "perf", "alt": "perf", "class": "performance", "tooltip": "<b>Governor</b> Performance"}' + if [[ $1 = switch ]]; then + sudo cpupower frequency-set -g ondemand;pkill -RTMIN+8 waybar; + fi + #echo '' +elif [ $GOVERNOR = ondemand ]; then + echo '{"text": "ondemand", "alt": "ondemand", "class": "ondemand", "tooltip": "<b>Governor</b> On Demand"}' + if [[ $1 = switch ]]; then + sudo cpupower frequency-set -g performance;pkill -RTMIN+8 waybar; + fi +fi
\ No newline at end of file diff --git a/waybar/custom_modules/custom-gpu-lite.sh b/waybar/custom_modules/custom-gpu-lite.sh new file mode 100755 index 0000000..d2821c1 --- /dev/null +++ b/waybar/custom_modules/custom-gpu-lite.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +raw_temp=$(cat /sys/class/drm/card0/device/hwmon/hwmon5/temp1_input) +temperature=$(($raw_temp/1000)) +deviceinfo=$(glxinfo -B | grep 'Device:' | sed 's/^.*: //') +driverinfo=$(glxinfo -B | grep "OpenGL version") + +echo '{"text": " '$temperature'°C", "class": "custom-gpu", "tooltip": "<b>'$deviceinfo'</b>\n'$driverinfo'"}'
\ No newline at end of file diff --git a/waybar/custom_modules/custom-gpu.sh b/waybar/custom_modules/custom-gpu.sh new file mode 100755 index 0000000..e87374d --- /dev/null +++ b/waybar/custom_modules/custom-gpu.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +raw_clock=$(cat /sys/class/drm/card0/device/pp_dpm_sclk | egrep -o '[0-9]{0,4}Mhz \W' | sed "s/Mhz \*//") +clock=$(echo "scale=1;$raw_clock/1000" | bc | sed -e 's/^-\./-0./' -e 's/^\./0./') + +raw_temp=$(cat /sys/class/drm/card0/device/hwmon/hwmon5/temp1_input) +temperature=$(($raw_temp/1000)) +busypercent=$(cat /sys/class/hwmon/hwmon5/device/gpu_busy_percent) +deviceinfo=$(glxinfo -B | grep 'Device:' | sed 's/^.*: //') +driverinfo=$(glxinfo -B | grep "OpenGL version") + +echo '{"text": "'$clock'GHz | '$temperature'°C <span color=\"darkgray\">| '$busypercent'%</span>", "class": "custom-gpu", "tooltip": "<b>'$deviceinfo'</b>\n'$driverinfo'"}'
\ No newline at end of file diff --git a/waybar/custom_modules/custom-kdeconnect.sh b/waybar/custom_modules/custom-kdeconnect.sh new file mode 100755 index 0000000..5b2c3a8 --- /dev/null +++ b/waybar/custom_modules/custom-kdeconnect.sh @@ -0,0 +1,85 @@ +# +# Shamefully massacred from haideralipunjabi's polybar-kdeconnect +# (https://github.com/haideralipunjabi/polybar-kdeconnect/) +# + +# Color Settings of Icon shown in Waybar +COLOR_DISCONNECTED='#655b53' # Device Disconnected +COLOR_BATTERY_90='#ebdbb2' # Battery >= 90 +COLOR_BATTERY_80='#a89985' # Battery >= 80 +COLOR_BATTERY_70='#448488' # Battery >= 70 +COLOR_BATTERY_60='#83a597' # Battery >= 60 +COLOR_BATTERY_50='#b16185' # Battery >= 50 +COLOR_BATTERY_LOW='#BF616A' # Battery < 50 + +# Icons shown in Polybar +ICON_SMARTPHONE='' +ICON_TABLET='' + +devices="" + +get_icon () { + if [ "$2" = "tablet" ] + then + icon=$ICON_TABLET + else + icon=$ICON_SMARTPHONE + fi + case $1 in + "-1") ICON="<span foreground=\"$COLOR_DISCONNECTED\">$icon</span>" ;; + "-2") ICON="<span foreground=\"$COLOR_NEWDEVICE\">$icon</span>" ;; + 5*) ICON="<span foreground=\"$COLOR_BATTERY_50\">$icon</span>" ;; + 6*) ICON="<span foreground=\"$COLOR_BATTERY_60\">$icon</span>" ;; + 7*) ICON="<span foreground=\"$COLOR_BATTERY_70\">$icon</span>" ;; + 8*) ICON="<span foreground=\"$COLOR_BATTERY_80\">$icon</span>" ;; + 9*|100) ICON="<span foreground=\"$COLOR_BATTERY_90\">$icon</span>" ;; + *) ICON="<span foreground=\"$COLOR_BATTERY_LOW\">$icon</span>" ;; + esac + echo $ICON +} + +get_status() { + for device in $(qdbus --literal org.kde.kdeconnect /modules/kdeconnect org.kde.kdeconnect.daemon.devices); do + deviceid=$(echo "$device" | awk -F'["|"]' '{print $2}') + isreach="$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid" org.kde.kdeconnect.device.isReachable)" + istrust="$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid" org.kde.kdeconnect.device.isTrusted)" + if [ "$isreach" = "true" ] && [ "$istrust" = "true" ] + then + battery="$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid/battery" org.kde.kdeconnect.device.battery.charge)%" + icon=$(get_icon "$battery" "$devicetype") + devices+="$battery $icon" + elif [ "$isreach" = "false" ] && [ "$istrust" = "true" ] + then + devices+="$(get_icon -1 "$devicetype")" + fi + done + + echo $devices +} + +send_ring() { + for device in $(qdbus --literal org.kde.kdeconnect /modules/kdeconnect org.kde.kdeconnect.daemon.devices); do + deviceid=$(echo "$device" | awk -F'["|"]' '{print $2}') + isreach="$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid" org.kde.kdeconnect.device.isReachable)" + istrust="$(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid" org.kde.kdeconnect.device.isTrusted)" + if [ "$isreach" = "true" ] && [ "$istrust" = "true" ] + then + $(qdbus org.kde.kdeconnect "/modules/kdeconnect/devices/$deviceid/findmyphone" org.kde.kdeconnect.device.findmyphone.ring) + fi + done + + echo $devices +} + + +option="${1}" + case "${option}" in + ring) send_ring + ;; + battery) get_status + ;; + *) echo "Use with ./custom-kdeconnect.sh battery or ring" + ;; + esac + +exit 0
\ No newline at end of file diff --git a/waybar/custom_modules/media-player-status.py b/waybar/custom_modules/media-player-status.py new file mode 100755 index 0000000..df348c7 --- /dev/null +++ b/waybar/custom_modules/media-player-status.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python + +import html +import json +import gi +import sys +gi.require_version('Playerctl', '2.0') +from gi.repository import Playerctl, GLib # noqa: E402 + +ARTIST = 'xesam:artist' +TITLE = 'xesam:title' +ICONS = { + 'spotify': '阮 ', + 'ncspot': '阮 ', + 'vlc': '嗢 ', + 'firefox': ' ', + 'default': '契 ', + 'paused': ' ' +} + +last_status = None + + +def find_active_player(manager, vanished_player): + for player in manager.props.players: + if player == vanished_player: + continue + if player.props.playback_status != Playerctl.PlaybackStatus.STOPPED: + return player + return None + + +def get_status(manager, vanished_player): + player = find_active_player(manager, vanished_player) + if player is None: + return '', '', 'stopped' + name = player.props.player_name + metadata = player.props.metadata + title = metadata[TITLE] if TITLE in metadata.keys() else None + artist = metadata[ARTIST][0] if ARTIST in metadata.keys() else None + if name == 'firefox' and title == 'Firefox' and artist == 'Mozilla': + title = None + artist = None + if player.props.playback_status == Playerctl.PlaybackStatus.PAUSED: + css_class = 'paused' + else: + css_class = 'playing' + if title is None and artist is None: + if css_class == 'paused': + icon = ICONS['paused'] + else: + icon = ICONS['default'] + app_icon = ICONS.get(name, None) + if app_icon is None: + label = icon + else: + label = f'{icon} {app_icon}' + return label, f'{name.title()}: {css_class.title()}', css_class + if css_class == 'paused': + icon = ICONS['paused'] + else: + # Added override for icon + #icon = ICONS.get(name, ICONS['default']) + icon = ICONS['default'] + if title is None or title == '': + song = artist or name.title() + elif artist is None or artist == '': + song = f'{title}' + else: + song = f'{artist} – {title}' + html_song = html.escape(song) + return f'{icon} {html_song}', f'{name.title()}: {song}', css_class + + +def print_status(manager, vanished_player=None): + text, tooltip, css_class = get_status(manager, vanished_player) + status = json.dumps({'text': text, 'tooltip': tooltip, 'class': css_class}) + global last_status + if last_status != status: + print(status) + sys.stdout.flush() + last_status = status + + +def on_playback_status(player, status, manager): + manager.move_player_to_top(player) + print_status(manager) + + +def on_metadata(player, metadata, manager): + manager.move_player_to_top(player) + print_status(manager) + + +def init_player(manager, name): + player = Playerctl.Player.new_from_name(name) + player.connect('playback-status', on_playback_status, manager) + player.connect('metadata', on_metadata, manager) + manager.manage_player(player) + + +def on_name_appeared(manager, name, _): + init_player(manager, name) + print_status(manager) + + +def on_player_vanished(manager, player, _): + print_status(manager, player) + + +def init_manager(): + manager = Playerctl.PlayerManager() + manager.connect('name-appeared', on_name_appeared, manager) + manager.connect('player-vanished', on_player_vanished, manager) + for name in manager.props.player_names: + init_player(manager, name) + print_status(manager) + + +if __name__ == '__main__': + init_manager() + main = GLib.MainLoop() + main.run() diff --git a/waybar/launch.sh b/waybar/launch.sh new file mode 100755 index 0000000..128b011 --- /dev/null +++ b/waybar/launch.sh @@ -0,0 +1,2 @@ +killall waybar +waybar &
\ No newline at end of file diff --git a/waybar/style.css b/waybar/style.css new file mode 100644 index 0000000..f8b0ecb --- /dev/null +++ b/waybar/style.css @@ -0,0 +1,341 @@ +* { + font-family: + Iosevka, + Material Design Icons; + font-size: 14px; +} + +@define-color dark #3c3836; +@define-color blue #458588; +@define-color green #98971A; +@define-color green2 #B8BB26; +@define-color yellow #FABD2F; +@define-color red #FB4934; +@define-color magenta #D3869B; +@define-color aqua #689D6A; +@define-color lightblue #83A598; +@define-color white #EBDBB2; +@define-color black #282828; + +window#waybar { + background-color: transparent; +} + +#workspaces { + background-color: transparent; + margin-top: 10px; + margin-bottom: 10px; + margin-right: 10px; + margin-left: 25px; +} + +#workspaces button { + box-shadow: rgba(0, 0, 0, 0.116) 2 2 5 2px; + background-color: @white; + border-radius: 15px; + margin-right: 10px; + padding-top: 4px; + padding-bottom: 2px; + padding-right: 10px; + font-weight: bolder; + color: @black; +} + +#workspaces button.active { + padding-right: 20px; + box-shadow: rgba(0, 0, 0, 0.288) 2 2 5 2px; + text-shadow: 0 0 5px rgba(0, 0, 0, 0.377); + padding-left: 20px; + padding-bottom: 3px; + background: linear-gradient(45deg, @green2, @lightblue); + /* animation: gradient 40s ease infinite; */ + background-size: 300% 300%; + color: @black; + font-weight: bolder; +} + +@keyframes gradient { + 0% { + background-position: 0% 50%; + } + 50% { + background-position: 100% 50%; + } + 100% { + background-position: 0% 50%; + } +} +#custom-weather, +#custom-audio_idle_inhibitor, +#custom-spotify, +#clock, +#battery, +#cpu, +#memory, +#disk, +#temperature, +#backlight, +#network, +#pulseaudio, +#custom-media, +#tray, +#mode, +#idle_inhibitor, +#custom-expand, +#custom-cycle_wall, +#custom-ss, +#custom-dynamic_pill, +#mpd { + padding: 0 10px; + border-radius: 15px; + background-color: @green; + color: @black; + box-shadow: rgba(0, 0, 0, 0.116) 2 2 5 2px; + margin-top: 10px; + margin-bottom: 10px; + margin-right: 10px; + font-weight: bolder; +} + +#custom-cycle_wall { + background: @red; + color: #141111; + background-size: 500% 500%; + font-weight: bolder; + padding: 5px; + border-radius: 15px; +} + +#custom-audio_idle_inhibitor { + background: @yellow; +} + +#custom-weather { + background: @aqua; +} +#custom-weather.severe { + color: #eb937d; +} + +#custom-weather.sunnyDay { + color: @black; +} + +#custom-weather.clearNight { + color: @black; +} + +#custom-weather.cloudyFoggyDay, +#custom-weather.cloudyFoggyNight { + color: @black; +} + +#custom-weather.rainyDay, +#custom-weather.rainyNight { + color: @black; +} + +#custom-weather.showyIcyDay, +#custom-weather.snowyIcyNight { + color: @black; +} + +#custom-weather.default { + color: @black; +} + +#clock { + background: linear-gradient(45deg, @lightblue, @green2); + margin-right: 25px; + color: @black; + background-size: 300% 300%; + text-shadow: 0 0 5px rgba(0, 0, 0, 0.577); + /* animation: gradient 20s ease infinite; */ + font-size: 16px; + padding-top: 2px; + padding-right: 21px; + font-weight: bolder; + padding-left: 20px; +} + +#battery.charging, +#battery.plugged { + background-color: @lightblue; + color: #32302f; +} + +#battery { + background-color: @green2; + color: @black; + font-weight: bolder; + font-size: 15px; + padding-left: 15px; + padding-right: 15px; +} + +@keyframes blink { + to { + background-color: @red; + color: @black; + } +} + +#battery.critical:not(.charging) { + background-color: @yellow; + color: @black; + /* animation-name: blink; */ + /* animation-duration: 0.5s; */ + /* animation-timing-function: linear; */ + /* animation-iteration-count: infinite; */ + /* animation-direction: alternate; */ +} + +#cpu { + background: @magenta; + background-size: 300% 300%; + text-shadow: 0 0 5px rgba(0, 0, 0, 0.377); + /* background-color: #b4befe; */ + color: @black; +} + +#memory { + background-color: #fecb53; + color: #32302f; + font-weight: bolder; +} + +#disk { + color: #964b00; +} + +#backlight { + color: #101212; + background-color: @yellow; + font-weight: bolder; +} + +#network { + color: rgb(74, 77, 75); + font-weight: bolder; +} + +#network.disabled { + background-color: @aqua; +} + +#network.disconnected { + background: @aqua; + color: @black; + font-weight: bolder; + padding-top: 3px; + padding-right: 11px; +} + +#network.linked, +#network.wifi { + background-color: @aqua; + color: #32302f; +} + +#network.ethernet { + background-color: #f9e2af; +} + +#pulseaudio { + background-color: @blue; + color: @dark; + font-weight: bolder; +} + +#pulseaudio.muted { + background-color: @blue; + font-weight: bolder; +} + +#custom-media { + color: #66cc99; + font-weight: bolder; +} + +#custom-media.custom-spotify { + background-color: #66cc99; + font-weight: bolder; +} + +#custom-media.custom-vlc { + background-color: #ffa000; +} + +#temperature { + background-color: #f9e2af; + color: #96804e; +} + +#temperature.critical { + background-color: #f38ba8; + color: #bf5673; +} + +#tray { + background-color: @black; +} + +#tray > .passive { + -gtk-icon-effect: dim; +} + +#tray > .needs-attention { + -gtk-icon-effect: highlight; + background-color: @red; +} + +#idle_inhibitor { + background-color: #2d3436; +} + +#idle_inhibitor.activated { + background-color: #ecf0f1; + color: #2d3436; +} + +#mpd { + background-color: #66cc99; + color: #2a5c45; +} + +#mpd.disconnected { + background-color: #f53c3c; +} + +#mpd.stopped { + background-color: #90b1b1; +} + +#mpd.paused { + background-color: #51a37a; +} + +#language { + background: #00b093; + color: #740864; + padding: 0 5px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state { + background: #97e1ad; + color: #000000; + padding: 0 0px; + margin: 0 5px; + min-width: 16px; +} + +#keyboard-state > label { + padding: 0 5px; +} + +#keyboard-state > label.locked { + background: rgba(0, 0, 0, 0.2); +} + diff --git a/waybar/waybar.zip b/waybar/waybar.zip Binary files differnew file mode 100644 index 0000000..0bfc651 --- /dev/null +++ b/waybar/waybar.zip |