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"