diff --git a/.config/hypr/autostart.conf b/.config/hypr/autostart.conf
index 4ee2742..3a472b6 100644
--- a/.config/hypr/autostart.conf
+++ b/.config/hypr/autostart.conf
@@ -1,11 +1,9 @@
-# exec-once = uwsm-app -- hypridle
-# exec-once = uwsm-app -- mako
-# exec-once = uwsm-app -- waybar
-# exec-once = uwsm-app -- fcitx5 --disable notificationitem
-# exec-once = uwsm-app -- swaybg -i ~/.config/omarchy/current/background -m fill
-# exec-once = uwsm-app -- swayosd-server
-# exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
-# exec-once = omarchy-cmd-first-run
+exec-once = uwsm-app -- hypridle
+exec-once = uwsm-app -- mako
+exec-once = uwsm-app -- waybar
+exec-once = uwsm-app -- fcitx5 --disable notificationitem
+exec-once = uwsm-app -- swaybg -i ~/.config/station/current/background -m fill
+exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# Slow app launch fix -- set systemd vars
exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1)
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
new file mode 100644
index 0000000..938755a
--- /dev/null
+++ b/.config/hypr/hypridle.conf
@@ -0,0 +1,28 @@
+general {
+ lock_cmd = station-lock-screen # lock screen
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = sleep 1 && hyprctl dispatch dpms on # delay for PAM readiness, then turn on display.
+ inhibit_sleep = 3 # wait until screen is locked
+}
+
+listener {
+ timeout = 150 # 2.5min
+ on-timeout = pidof hyprlock || station-launch-screensaver # start screensaver (if we haven't locked already)
+}
+
+listener {
+ timeout = 151 # 5min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+listener {
+ timeout = 330 # 5.5min
+ on-timeout = brightnessctl -sd '*::kbd_backlight' set 0 # save state and turn off keyboard backlight
+ on-resume = brightnessctl -rd '*::kbd_backlight' # restore keyboard backlight
+}
+
+listener {
+ timeout = 330 # 5.5min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
+}
diff --git a/.config/hypr/hyprlock.conf b/.config/hypr/hyprlock.conf
new file mode 100644
index 0000000..c50f91b
--- /dev/null
+++ b/.config/hypr/hyprlock.conf
@@ -0,0 +1,43 @@
+# source = ~/.config/omarchy/current/theme/hyprlock.conf
+
+general {
+ ignore_empty_input = true
+}
+
+background {
+ monitor =
+ color = $color
+ path = ~/.config/station/current/background
+ blur_passes = 3
+}
+
+animations {
+ enabled = false
+}
+
+input-field {
+ monitor =
+ size = 650, 100
+ position = 0, 0
+ halign = center
+ valign = center
+
+ inner_color = $inner_color
+ outer_color = $outer_color
+ outline_thickness = 4
+
+ font_family = JetBrainsMono Nerd Font
+ font_color = $font_color
+
+ placeholder_text = Enter Password
+ check_color = $check_color
+ fail_text = $FAIL ($ATTEMPTS)
+
+ rounding = 0
+ shadow_passes = 0
+ fade_on_empty = false
+}
+
+auth {
+ fingerprint:enabled = false
+}
diff --git a/.config/hypr/hyprsunset.conf b/.config/hypr/hyprsunset.conf
new file mode 100644
index 0000000..c4d0f8d
--- /dev/null
+++ b/.config/hypr/hyprsunset.conf
@@ -0,0 +1,14 @@
+# Makes hyprsunset do nothing to the screen by default
+# Without this, the default applies some tint to the monitor
+profile {
+ time = 07:00
+ identity = true
+}
+
+# To enable auto switch to nightlight, set in your .config/hypr/autostart:
+# exec-once = uwsm app -- hyprsunset
+# and use the following:
+# profile {
+# time = 20:00
+# temperature = 4000
+# }
diff --git a/.config/voxtype/config.toml b/.config/voxtype/config.toml
new file mode 100644
index 0000000..59d1f94
--- /dev/null
+++ b/.config/voxtype/config.toml
@@ -0,0 +1,97 @@
+# Voxtype Configuration
+#
+# Location: ~/.config/voxtype/config.toml
+# All settings can be overridden via CLI flags
+#
+# State file for external integrations (Waybar, polybar, etc.)
+# Use "auto" for default location ($XDG_RUNTIME_DIR/voxtype/state),
+# a custom path, or "disabled" to turn off. The daemon writes state
+# ("idle", "recording", "transcribing") to this file whenever it changes.
+# Required for `voxtype record toggle` and `voxtype status` commands.
+state_file = "auto"
+
+[hotkey]
+# Hotkey is configured in Hyprland. Default is Super + Ctrl + X
+enabled = false
+
+[audio]
+# Audio input device ("default" uses system default)
+# List devices with: pactl list sources short
+device = "default"
+
+# Sample rate in Hz (whisper expects 16000)
+sample_rate = 16000
+
+# Maximum recording duration in seconds (safety limit)
+max_duration_secs = 60
+
+# [audio.feedback]
+# Enable audio feedback sounds (beeps when recording starts/stops)
+# enabled = true
+#
+# Sound theme: "default", "subtle", "mechanical", or path to custom theme directory
+# theme = "default"
+#
+# Volume level (0.0 to 1.0)
+# volume = 0.7
+
+[whisper]
+# Model to use for transcription
+# Options: tiny, tiny.en, base, base.en, small, small.en, medium, medium.en, large-v3, large-v3-turbo
+# .en models are English-only but faster and more accurate for English
+# large-v3-turbo is faster than large-v3 with minimal accuracy loss (recommended for GPU)
+# Or provide absolute path to a custom .bin model file
+model = "base.en"
+
+# Language for transcription
+# Use "en" for English, "auto" for auto-detection
+# See: https://github.com/openai/whisper#available-models-and-languages
+language = "en"
+
+# Translate non-English speech to English
+translate = false
+
+# Number of CPU threads for inference (omit for auto-detection)
+# threads = 4
+
+[output]
+# Primary output mode: "type" or "clipboard"
+# - type: Simulates keyboard input at cursor position (requires ydotool)
+# - clipboard: Copies text to clipboard (requires wl-copy)
+mode = "type"
+
+# Fall back to clipboard if typing fails
+fallback_to_clipboard = true
+
+# Delay between typed characters in milliseconds
+# 0 = fastest possible, increase if characters are dropped
+type_delay_ms = 1
+
+# Post-processing command (optional)
+# Pipe transcribed text through an external command for cleanup before output.
+# The command receives text on stdin and outputs processed text on stdout.
+# Useful for LLM-based text cleanup, grammar correction, filler word removal.
+# On any failure (timeout, error), falls back to original transcription.
+#
+# [output.post_process]
+# command = "ollama run llama3.2:1b 'Clean up this dictation. Fix grammar, remove filler words. Output only the cleaned text:'"
+# timeout_ms = 30000 # 30 second timeout (generous for LLM)
+
+[output.notification]
+# Show notification when recording starts (hotkey pressed)
+on_recording_start = false
+
+# Show notification when recording stops (transcription beginning)
+on_recording_stop = false
+
+# Show notification with transcribed text after transcription completes
+on_transcription = false
+
+# [text]
+# Text processing options (word replacements, spoken punctuation)
+#
+# Enable spoken punctuation conversion (e.g., say "period" to get ".")
+# spoken_punctuation = false
+#
+# Custom word replacements (case-insensitive)
+# replacements = { "hyperwhisper" = "hyprwhspr" }
diff --git a/.config/walker/config.toml b/.config/walker/config.toml
index 44a43aa..cb1d000 100644
--- a/.config/walker/config.toml
+++ b/.config/walker/config.toml
@@ -1,8 +1,8 @@
force_keyboard_focus = true # forces keyboard focuses to stay in Walker
selection_wrap = true # wrap list if at bottom or top
-theme = "station-default" # theme to use
-additional_theme_location = "~/.config/walker/themes/"
-hide_action_hints = true # globally hide the action hints
+# theme = "station-default" # theme to use
+# additional_theme_location = "~/.config/walker/themes/"
+hide_action_hints = true # globally hide the action hints
[placeholders]
"default" = { input = " Search...", list = "No Results" } # placeholders for input and empty list, key is the providers name, so f.e. "desktopapplications" or "menus:other"
diff --git a/.config/waybar/config.jsonc b/.config/waybar/config.jsonc
index 1688a3e..576a7e0 100644
--- a/.config/waybar/config.jsonc
+++ b/.config/waybar/config.jsonc
@@ -1,80 +1,166 @@
{
- "layer": "top",
- "position": "top",
- "mod": "dock",
- "exclusice": true,
- "passthrough": false,
- "gtk-layer-shell": true,
- "height": 0,
- "modules-left": [
- "hyprland/workspaces"
- ],
- "modules-center": ["hyprland/window"],
- "modules-right": [
- "tray",
- "custom/updates",
- "hyprland/language",
- "pulseaudio",
- "pulseaudio#microphone",
- "clock",
- "custom/weather"
- ],
- "hyprland/window": {
- "format": {}
- },
- "hyprland/workspaces": {
- "disable-scroll": true,
- "all-outputs": true,
- "on-click": "activate",
- "persisten_workspaces": {
- "1": []
+ "reload_style_on_change": true,
+ "layer": "top",
+ "position": "top",
+ "spacing": 0,
+ "height": 26,
+ "modules-left": ["custom/station", "hyprland/workspaces"],
+ "modules-center": ["clock", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
+ "modules-right": [
+ "group/tray-expander",
+ "bluetooth",
+ "network",
+ "pulseaudio",
+ "cpu",
+ "battery"
+ ],
+ "hyprland/workspaces": {
+ "on-click": "activate",
+ "format": "{icon}",
+ "format-icons": {
+ "default": "",
+ "1": "1",
+ "2": "2",
+ "3": "3",
+ "4": "4",
+ "5": "5",
+ "6": "6",
+ "7": "7",
+ "8": "8",
+ "9": "9",
+ "10": "0",
+ "active": ""
+ },
+ "persistent-workspaces": {
+ "1": [],
+ "2": [],
+ "3": [],
+ "4": [],
+ "5": []
+ }
+ },
+ "custom/station": {
+ "format": "\ue900",
+ "on-click": "station-menu",
+ "on-click-right": "xdg-terminal-exec",
+ "tooltip-format": "Station Menu\n\nSuper + Alt + Space"
+ },
+
+ "cpu": {
+ "interval": 5,
+ "format": "",
+ "on-click": "station-launch-or-focus-tui btop",
+ "on-click-right": "ghostty"
+ },
+ "clock": {
+ "format": "{:L%A %H:%M}",
+ "format-alt": "{:L%d %B W%V %Y}",
+ "tooltip": false,
+ "on-click-right": "station-launch-floating-terminal-with-presentation station-tz-select"
+ },
+ "network": {
+ "format-icons": ["", "", "", "", ""],
+ "format": "{icon}",
+ "format-wifi": "{icon}",
+ "format-ethernet": "",
+ "format-disconnected": "",
+ "tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
+ "tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
+ "tooltip-format-disconnected": "Disconnected",
+ "interval": 3,
+ "spacing": 1,
+ "on-click": "station-launch-wifi"
+ },
+ "battery": {
+ "format": "{capacity}% {icon}",
+ "format-discharging": "{icon}",
+ "format-charging": "{icon}",
+ "format-plugged": "",
+ "format-icons": {
+ "charging": ["", "", "", "", "", "", "", "", "", ""],
+ "default": ["", "", "", "", "", "", "", "", "", ""]
+ },
+ "format-full": "",
+ "tooltip-format-discharging": "{power:>1.0f}W↓ {capacity}%",
+ "tooltip-format-charging": "{power:>1.0f}W↑ {capacity}%",
+ "interval": 5,
+ "on-click": "station-menu power",
+ "states": {
+ "warning": 20,
+ "critical": 10
+ }
+ },
+ "bluetooth": {
+ "format": "",
+ "format-off": "",
+ "format-disabled": "",
+ "format-connected": "",
+ "format-no-controller": "",
+ "tooltip-format": "Devices connected: {num_connections}",
+ "on-click": "station-launch-bluetooth"
+ },
+ "pulseaudio": {
+ "format": "{icon}",
+ "on-click": "station-launch-audio",
+ "on-click-right": "pamixer -t",
+ "tooltip-format": "Playing at {volume}%",
+ "scroll-step": 5,
+ "format-muted": "",
+ "format-icons": {
+ "headphone": "",
+ "headset": "",
+ "default": ["", "", ""]
+ }
+ },
+ "group/tray-expander": {
+ "orientation": "inherit",
+ "drawer": {
+ "transition-duration": 600,
+ "children-class": "tray-group-item"
+ },
+ "modules": ["custom/expand-icon", "tray"]
+ },
+ "custom/expand-icon": {
+ "format": "",
+ "tooltip": false,
+ "on-scroll-up": "",
+ "on-scroll-down": "",
+ "on-scroll-left": "",
+ "on-scroll-right": ""
+ },
+ "custom/screenrecording-indicator": {
+ "on-click": "station-cmd-screenrecord",
+ "exec": "$HOME/.config/waybar/indicators/screen-recording.sh",
+ "signal": 8,
+ "return-type": "json"
+ },
+ "custom/idle-indicator": {
+ "on-click": "station-toggle-idle",
+ "exec": "$HOME/.config/waybar/indicators/idle.sh",
+ "signal": 9,
+ "return-type": "json"
+ },
+ "custom/notification-silencing-indicator": {
+ "on-click": "station-toggle-notification-silencing",
+ "exec": "$HOME/.config/waybar/indicators/notification-silencing.sh",
+ "signal": 10,
+ "return-type": "json"
+ },
+ "custom/voxtype": {
+ "exec": "station-voxtype-status",
+ "return-type": "json",
+ "format": "{icon}",
+ "format-icons": {
+ "idle": "",
+ "recording": "",
+ "transcribing": ""
+ },
+ "tooltip": true,
+ "on-click-right": "station-voxtype-config",
+ "on-click": "station-voxtype-model"
+ },
+ "tray": {
+ "icon-size": 12,
+ "spacing": 17
}
- },
- "hyprland/language": {
- "format": "{}",
- "format-en": "EN",
- "format-ro": "RO"
- },
- "custom/weather": {
- "tooltip": true,
- "format": "{}",
- "interval": 30,
- "exec": "~/.config/waybar/scripts/waybar-wttr.py",
- "return-type": "json"
- },
- "tray": {
- "icon-size": 16,
- "spacing": 10
- },
- "clock": {
- "format": "{:%R %d%M}",
- "tooltip-format": "{:%Y %B}\n{calendar}"
- },
- "pulseaudio": {
- "format": "{icon} {volume}%",
- "tooltip": false,
- "format-muted": "Muted",
- "on-click": "pamixer -t",
- "on-scroll-up": "pamixer -i 5",
- "on-scroll-down": "pamixer -d 5",
- "scroll-step": 5
- // "format-icons": {
- // "headphones": "",
- // "hands-free": "",
- // "headset": "",
- // "phone": "",
- // "portable": "",
- // "car": "",
- // "default": ["", "", ""]
- // }
- },
- "pulseaudio#microphone": {
- "format": "{format_source}",
- "format-source": "{volume}%",
- "format-source-muted": "Muted",
- "on-click": "pamixer --default-source -t",
- "on-scroll-up": "pamixer --default-source -i 5",
- "on-scroll-down": "pamixer --default-source -d 5",
- "scroll-step": 5
- }
}
diff --git a/.config/waybar/indicators/idle.sh b/.config/waybar/indicators/idle.sh
new file mode 100644
index 0000000..d60fb6e
--- /dev/null
+++ b/.config/waybar/indicators/idle.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if pgrep -x hypridle >/dev/null; then
+ echo '{"text": ""}'
+else
+ echo '{"text": "", "tooltip": "Idle lock disabled", "class": "active"}'
+fi
diff --git a/.config/waybar/indicators/notification-silencing.sh b/.config/waybar/indicators/notification-silencing.sh
new file mode 100644
index 0000000..66dbeb3
--- /dev/null
+++ b/.config/waybar/indicators/notification-silencing.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if makoctl mode | grep -q 'do-not-disturb'; then
+ echo '{"text": "", "tooltip": "Notifications silenced", "class": "active"}'
+else
+ echo '{"text": ""}'
+fi
diff --git a/.config/waybar/indicators/screen-recording.sh b/.config/waybar/indicators/screen-recording.sh
new file mode 100644
index 0000000..16bd30c
--- /dev/null
+++ b/.config/waybar/indicators/screen-recording.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+if pgrep -f "^gpu-screen-recorder" >/dev/null; then
+ echo '{"text": "", "tooltip": "Stop recording", "class": "active"}'
+else
+ echo '{"text": ""}'
+fi
diff --git a/.config/waybar/scripts/waybar-wttr.py b/.config/waybar/scripts/waybar-wttr.py
deleted file mode 100644
index b68d17b..0000000
--- a/.config/waybar/scripts/waybar-wttr.py
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/run/current-system/sw/bin/python
-
-import json
-from datetime import datetime
-
-import requests
-
-WEATHER_CODES = {
- "113": "Sunny",
- "116": "Patchy",
- "119": "Cloudy",
- "122": "Cloudy",
- "143": "Cloudy",
- "176": "Rain",
- "179": "Rain",
- "182": "Rain",
- "185": "Rain",
- "200": "Storm",
- "227": "Rain",
- "230": "Rain",
- "248": "Cloudy",
- "260": "Cloudy",
- "263": "Rain",
- "266": "Rain",
- "281": "Rain",
- "284": "Rain",
- "293": "Rain",
- "296": "Rain",
- "299": "Rain",
- "302": "Rain",
- "305": "Rain",
- "308": "Rain",
- "311": "Rain",
- "314": "Rain",
- "317": "Rain",
- "320": "Rain",
- "323": "Rain",
- "326": "Rain",
- "329": "Snow",
- "332": "Snow",
- "335": "Snow",
- "338": "Snow",
- "350": "Rain",
- "353": "Rain",
- "356": "Rain",
- "359": "Rain",
- "362": "Rain",
- "365": "Rain",
- "368": "Rain",
- "371": "Snow",
- "374": "Rain",
- "377": "Rain",
- "386": "Rain",
- "389": "Rain",
- "392": "Rain",
- "395": "Snow",
-}
-
-data = {}
-
-weather = request.get("https://wttr.in/?format=j1").json()
-
-def format_time(time):
- return time.replace("00", "").zfill(2)
-
-def format_temp(temp):
- return(temp["FeelsLikeC"] + "o").ljust(3)
-
-def format_chances(hour):
- chances = {
- "chancesoffog": "Fog",
- "chancesoffrost": "Frost",
- "chancesofovercast": "Overcast",
- "chancesofrain": "Rain",
- "chancesofsnow": "Snow",
- "chancesofsunshine": "Sunshine",
- "chancesofthunder": "Thunder",
- "chancesofwindy": "Wind",
- }
-
- conditions = []
- for event in chances.keys():
- if int(hour[event]) > 0:
- conditions.append(chances[event] + "" + hour[event] + "%")
- return ", ".join(conditions)
-
-tempint = int(weather["current_condition"][0]["FeelsLikeC"])
-extrachar = ""
-if tempint > 0 and tempint < 10:
- extrachar = "+"
-
-data["text"] = (
- " "
- + WEATHER_CODES[weather["current_condition"][0]["weatherCode"]]
- + " "
- + extrachar
- + weather["current_condition"][0]["FeelsLikeC"]
- + "o"
-)
-
-data["tooltip"] = (
- f"{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_C']}o\n"
-)
-data["tooltip"] += f"Feels like: {weather['current_condition'][0]['FeelsLikeC']}o\n"
-data["tooltip"] += f"Wind: {weather['current_condition'][0]['WindspeedKmph']}Km/h\n"
-data["tooltip"] += f"Humidity: {weather['current_condition'][0]['FeelsLikeC']}%\n"
-for i, day in enumerate(weather["weather"]):
- data["tooltip"] += f"\n"
- if i == 0:
- data["tooltip"] += "Today, "
- if i == 1:
- data["tooltip"] += "Tomorrow, "
- data["tooltip"] += f"{day['date']}\n"
- data["tooltip"] += f"Up {day['maxtempC']}o Down {day['mintempC']}o "
- data["tooltip"] += f"Sunrise {day['astronomy'][0]['sunrise']} Sunset {day['astronomy'][0]['sunset']} \n"
-
- for hour in day["hourly"]:
- if i == 0"
- if int(format_time(hour["time"])) < datetime.now().hour - 2:
- continue
-
- data["tooltip"] += f"{format_time(hour['time'])} {WEATHER_CODES[hour['weatherCode']]} {format_temp(hour['FeelsLikeC'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n"
-
-print(json.dumps(data))
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
index 173840c..61ebeb8 100644
--- a/.config/waybar/style.css
+++ b/.config/waybar/style.css
@@ -1,149 +1,100 @@
+/* @import "../omarchy/current/theme/waybar.css"; */
+
* {
+ background-color: @background;
+ color: @foreground;
+
border: none;
border-radius: 0;
- font-family:
- JetBrains Mono Nerd Font,
- monospace;
- font-weight: bold;
- font-size: 14px;
min-height: 0;
+ font-family: 'JetBrainsMono Nerd Font';
+ font-size: 12px;
}
-window#waybar {
- background: rgba(21, 18, 27, 0);
- color: #cdd6f4;
+.modules-left {
+ margin-left: 8px;
}
-tooltip {
- background: #1e1e2e;
- border-radius: 10px;
- border-width: 2px;
- border-style: solid;
- border-color: #11111b;
+.modules-right {
+ margin-right: 8px;
}
#workspaces button {
- padding: 5px;
- color: #313244;
- margin-right: 5px;
+ all: initial;
+ padding: 0 6px;
+ margin: 0 1.5px;
+ min-width: 9px;
}
-#workspaces button.active {
- color: #a6adc8;
+#workspaces button.empty {
+ opacity: 0.5;
}
-#workspaces button.focused {
- color: #a6adc8;
- background: #eba0ac;
- border-radius: 10px;
-}
-
-#workspaces button.urgent {
- color: #11111b;
- background: #a6e3a1;
- border-radius: 10px;
-}
-
-#workspaces button.active {
- color: #11111b;
- background: #cdd6f4;
- border-radius: 10px;
-}
-
-#language,
-#custom-updates,
-#custom-caffeine,
-#custom-weather,
-#window,
-#clock,
+#cpu,
#battery,
#pulseaudio,
-#network,
-#workspaces,
-#tray,
-#backlight {
- background: #1e1e2e;
- padding: 0px 10px;
- margin: 3px 0px;
- margin-top: 10px;
- border: 1px solid #181825;
+#custom-omarchy,
+#custom-update {
+ min-width: 12px;
+ margin: 0 7.5px;
}
#tray {
- border-radius: 10px;
- margin-right: 10px;
+ margin-right: 16px;
}
-#workspaces {
- background: #1e1e2e;
- border-radius: 10px;
- margin-left: 10px;
- padding-right: 0px;
- padding-left: 5px;
-}
-
-#custom-caffeine {
- color: #89dceb;
- border-radius: 10px 0 0 10px;
- border-right: 0;
- margin-left: 10px;
-}
-
-#custom-language {
- color: #f38ba8;
- border-right: 0;
- border-left: 0;
-}
-
-#custom-updates {
- color: #f5c2e7;
- border-radius: 10px 0 0 10px;
- border-left: 0;
- border-right: 0;
-}
-
-#window {
- border-radius: 10px;
- margin-left: 0;
- margin-right: 0;
-}
-
-#clock {
- color: #fab387;
- border-radius: 10px 0 0 10px;
- margin-left: 5px;
- border-right: 0px;
+#bluetooth {
+ margin-right: 17px;
}
#network {
- color: #f9e2af;
- border-left: 0px;
- border-right: 0px;
+ margin-right: 13px;
}
-#pulseaudio {
- color: #89b4fa;
- border-left: 0px;
- border-right: 0px;
+#custom-expand-icon {
+ margin-right: 18px;
}
-#pulseaudio.microphone {
- color: #cba6f7;
- border-radius: 0 10px 10px 0;
- border-left: 0;
- border-right: 0;
- margin-right: 5px;
+tooltip {
+ padding: 2px;
}
-#battery {
- color: #a6e3a1;
- border-radius: 0 10px 10px 0;
- margin-right: 10px;
- border-left: 0px;
+#custom-update {
+ font-size: 10px;
}
-#custom-weather {
- border-radius: 0 10px 10px 0;
- border-right: 0;
- margin-left: 0;
+#clock {
+ margin-left: 8.75px;
+}
+
+.hidden {
+ opacity: 0;
+}
+
+#custom-screenrecording-indicator,
+#custom-idle-indicator,
+#custom-notification-silencing-indicator {
+ min-width: 12px;
+ margin-left: 5px;
+ margin-right: 0;
+ font-size: 10px;
+ padding-bottom: 1px;
+}
+
+#custom-screenrecording-indicator.active {
+ color: #a55555;
+}
+
+#custom-idle-indicator.active,
+#custom-notification-silencing-indicator.active {
+ color: #a55555;
+}
+
+#custom-voxtype {
+ min-width: 12px;
+ margin: 0 0 0 7.5px;
+}
+
+#custom-voxtype.recording {
+ color: #a55555;
}
diff --git a/.local/share/station/ghostty/screensaver b/.local/share/station/ghostty/screensaver
new file mode 100644
index 0000000..dc35906
--- /dev/null
+++ b/.local/share/station/ghostty/screensaver
@@ -0,0 +1,3 @@
+window-padding-x = 0
+window-padding-y = 0
+window-padding-color = "extend-always"