Compare commits

...

4 Commits

Author SHA1 Message Date
38a5880704 Brightness controls 2026-03-06 19:39:49 +00:00
8ca70b0b49 Exec things 2026-03-06 18:50:36 +00:00
3ceeab3381 Fix monitor 2026-03-04 23:04:47 +00:00
b20d1f42b0 Xcompose 2026-03-04 21:22:35 +00:00
12 changed files with 195 additions and 18 deletions

View File

@@ -8,5 +8,5 @@
# exec-once = omarchy-cmd-first-run
# Slow app launch fix -- set systemd vars
# exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1)
# exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1)
exec-once = dbus-update-activation-environment --systemd --all

View File

@@ -2,30 +2,30 @@
# Media
# ==========================
# Only display the OSD on the currently focused monitor
# $osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
# Laptop multimedia keys for volume and LCD brightness (with OSD)
# bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise
# bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower
# bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle
# bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle
# bindeld = ,XF86MonBrightnessUp, Brightness up, exec, omarchy-brightness-display +5%
# bindeld = ,XF86MonBrightnessDown, Brightness down, exec, omarchy-brightness-display 5%-
# bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, omarchy-brightness-keyboard up
# bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, omarchy-brightness-keyboard down
# bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, omarchy-brightness-keyboard cycle
bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise
bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower
bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle
bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle
bindeld = ,XF86MonBrightnessUp, Brightness up, exec, station-brightness-display +5%
bindeld = ,XF86MonBrightnessDown, Brightness down, exec, station-brightness-display 5%-
bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, station-brightness-keyboard up
bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, station-brightness-keyboard down
bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, station-brightness-keyboard cycle
# Precise 1% multimedia adjustments with Alt modifier
# bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1
# bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1
bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1
bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1
# bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, omarchy-brightness-display +1%
# bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, omarchy-brightness-display 1%-
# Requires playerctl
# bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next
# bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause
# bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause
# bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous
bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next
bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause
bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause
bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous
# Switch audio output with Super + Mute
# bindld = SUPER, XF86AudioMute, Switch audio output, exec, omarchy-cmd-audio-switch

View File

@@ -8,6 +8,7 @@ env = QT_AUTO_SCREEN_SCALE_FACTOR,1
env = QT_ENABLE_HIGHDPI_SCALING,1
env = QT_SCREEN_SCALE_FACTORS,2
monitor=eDP-1,3840x2160,0x0,2
# monitor=HDMI-A-1,preferred,auto,auto
# Good compromise for 27" or 32" 4K monitors (but fractional!)
# env = GDK_SCALE,1.75

35
.config/shell/.env Normal file
View File

@@ -0,0 +1,35 @@
OPENROUTER_API_KEY=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
OPENROUTER_API_BASE=https://openrouter.ai/api
AIHUBMIX_API_KEY=sk-0ArIwI5NaUF1U1Z6F9D9CeF8C155436bA7E8A8107cFf7f7b
AIHUBMIX_API_BASE=https://aihubmix.com/api
#COPILOT_API_KEY=ghu_XOB0IcwvOBthQxxZea0EBhZHjn0aBW17UHml
#COPILOT_API_BASE=https://api.githubcopilot.com
COPILOT_API_KEY=
COPILOT_API_BASE=
DEFAULT_OPENAI_API_KEY=${OPENROUTER_API_KEY}
DEFAULT_OPENAI_API_BASE=${OPENROUTER_API_BASE}
# DEFAULT_AI_MODEL=openai/gpt-5.2-codex
DEFAULT_AI_MODEL=auto
REASONING_OPENAI_API_KEY=${OPENROUTER_API_KEY}
REASONING_OPENAI_API_BASE=${OPENROUTER_API_BASE}
#REASONING_MODEL=openai/gpt-5.1-codex
# REASONING_MODEL=moonshotai/kimi-k2-thinking
REASONING_MODEL=anthropic/claude-opus-4.6
FAST_OPENAI_API_KEY=${OPENROUTER_API_KEY}
FAST_OPENAI_API_BASE=${OPENROUTER_API_BASE}
FAST_MODEL=qwen/qwen3-max
COMPLETION_OPENAI_API_KEY=${OPENROUTER_API_KEY}
COMPLETION_OPENAI_API_BASE=${OPENROUTER_API_BASE}
COMPLETION_MODEL=google/gemini-3-flash-preview
# COMPLETION_MODEL=anthropic/claude-3-haiku
OPENAI_API_KEY=${DEFAULT_OPENAI_API_KEY}
OPENAI_API_BASE=${DEFAULT_OPENAI_API_BASE}
AIDER_OPENAI_API_KEY=${DEFAULT_OPENAI_API_KEY}
AIDER_OPENAI_API_BASE=${DEFAULT_OPENAI_API_BASE}

View File

@@ -46,6 +46,7 @@ export ELECTRUMDIR="${XDG_DATA_HOME:-$HOME/.local/share}/electrum"
export ANDROID_AVD_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/android/avd"
export ANDROID_USER_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/android"
export CODEX_HOME="${XDG_CONFIG_HOME:-$HOME/.config}/codex"
export XCOMPOSEFILE="${XDG_CONFIG_HOME:-$HOME/.config}/xcompose"
# Export OPENAI_API_KEY from GitHub Copilot config
# if [ -f "$HOME/.config/github-copilot/apps.json" ]; then

35
.config/xcompose Normal file
View File

@@ -0,0 +1,35 @@
# Run station-restart-xcompose to apply changes
include "%L"
# Emoji
<Multi_key> <m> <s> : "😄" # smile
<Multi_key> <m> <c> : "😂" # cry
<Multi_key> <m> <l> : "😍" # love
<Multi_key> <m> <v> : "✌️" # victory
<Multi_key> <m> <h> : "❤️" # heart
<Multi_key> <m> <y> : "👍" # yes
<Multi_key> <m> <n> : "👎" # no
<Multi_key> <m> <f> : "🖕" # fuck
<Multi_key> <m> <w> : "🤞" # wish
<Multi_key> <m> <r> : "🤘" # rock
<Multi_key> <m> <k> : "😘" # kiss
<Multi_key> <m> <e> : "🙄" # eyeroll
<Multi_key> <m> <d> : "🤤" # droll
<Multi_key> <m> <m> : "💰" # money
<Multi_key> <m> <x> : "🎉" # xellebrate
<Multi_key> <m> <1> : "💯" # 100%
<Multi_key> <m> <t> : "🥂" # toast
<Multi_key> <m> <p> : "🙏" # pray
<Multi_key> <m> <i> : "😉" # wink
<Multi_key> <m> <o> : "👌" # OK
<Multi_key> <m> <g> : "👋" # greeting
<Multi_key> <m> <a> : "💪" # arm
<Multi_key> <m> <b> : "🤯" # blowing
# Typography
<Multi_key> <space> <space> : "—"
# Identification
<Multi_key> <space> <n> : "chris"
<Multi_key> <space> <e> : "stofflees@gmail.com"

View File

@@ -0,0 +1,21 @@
#!/bin/bash
# Adjust brightness on the most likely display device.
# Usage: station-brightness-display <step>
step="${1:-+5%}"
# Start with the first possible output, then refine to the most likely given an order heuristic.
device="$(ls -1 /sys/class/backlight 2>/dev/null | head -n1)"
for candidate in amdgpu_bl* intel_backlight acpi_video*; do
if [[ -e /sys/class/backlight/$candidate ]]; then
device="$candidate"
break
fi
done
# Set the actual brightness of the display device.
brightnessctl -d "$device" set "$step" >/dev/null
# Use SwayOSD to display the new brightness setting.
station-swayosd-brightness "$(brightnessctl -d "$device" -m | cut -d',' -f4 | tr -d '%')"

View File

@@ -0,0 +1,42 @@
#!/bin/bash
# Adjust keyboard backlight brightness using available steps.
# Usage: omarchy-brightness-keyboard <up|down|cycle>
direction="${1:-up}"
# Find keyboard backlight device (look for *kbd_backlight* pattern in leds class).
device=""
for candidate in /sys/class/leds/*kbd_backlight*; do
if [[ -e $candidate ]]; then
device="$(basename "$candidate")"
break
fi
done
if [[ -z $device ]]; then
echo "No keyboard backlight device found" >&2
exit 1
fi
# Get current and max brightness to determine step size.
max_brightness="$(brightnessctl -d "$device" max)"
current_brightness="$(brightnessctl -d "$device" get)"
# Calculate step as one unit (keyboards typically have discrete levels like 0-3).
if [[ $direction == "cycle" ]]; then
new_brightness=$(( (current_brightness + 1) % (max_brightness + 1) ))
elif [[ $direction == "up" ]]; then
new_brightness=$((current_brightness + 1))
(( new_brightness > max_brightness )) && new_brightness=$max_brightness
else
new_brightness=$((current_brightness - 1))
(( new_brightness < 0 )) && new_brightness=0
fi
# Set the new brightness.
brightnessctl -d "$device" set "$new_brightness" >/dev/null
# Use SwayOSD to display the new brightness setting.
percent=$((new_brightness * 100 / max_brightness))
station-swayosd-kbd-brightness "$percent"

7
.local/bin/station-restart-app Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
# Restart an application by killing it and relaunching via uwsm.
# Usage: station-restart-app <application-name> [application-args...]
pkill -x $1
setsid uwsm-app -- "$@" >/dev/null 2>&1 &

View File

@@ -0,0 +1,5 @@
#!/bin/bash
# Restart the XCompose input method service (fcitx5) to apply new compose key settings.
station-restart-app fcitx5 --disable notificationitem

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Display brightness level using SwayOSD on the current monitor.
# Usage: station-swayosd-brightness <percent>
percent="$1"
progress="$(awk -v p="$percent" 'BEGIN{printf "%.2f", p/100}')"
[[ $progress == "0.00" ]] && progress="0.01"
swayosd-client \
--monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
--custom-icon display-brightness \
--custom-progress "$progress" \
--custom-progress-text "${percent}%"

View File

@@ -0,0 +1,15 @@
#!/bin/bash
# Display keyboard brightness level using SwayOSD on the current monitor.
# Usage: station-swayosd-kbd-brightness <percent>
percent="$1"
progress="$(awk -v p="$percent" 'BEGIN{printf "%.2f", p/100}')"
[[ $progress == "0.00" ]] && progress="0.01"
swayosd-client \
--monitor "$(hyprctl monitors -j | jq -r '.[]|select(.focused==true).name')" \
--custom-icon keyboard-brightness \
--custom-progress "$progress" \
--custom-progress-text "${percent}%"