.agents/
.cargo/
.codex/
.config/
.gnupg/
.local/
.vim/
bin/
ag
189 B
book-counter
112 B
cargo-flow
321 B
cargo-flow-check
422 B
colors
210 B
conky-sync-status
554 B
git-delete-merged
92 B
git-forest
13.1 KiB
haskell-tags
230 B
haskell-watch-build
125 B
haskell-watch-lint
151 B
kitty-reload
35 B
kitty-switch-theme
283 B
lock
288 B
mount-tank
78 B
pinentry
46 B
pkgbuild-dl
87 B
record-window
996 B
refresh-display
38 B
screenshot
127 B
screenshot-region
176 B
seedbox-mount
621 B
seedbox-status
129 B
set-background
90 B
share-sync
577 B
spectrwm-status
22 B
start-streaming
904 B
sync-up
661 B
todo
60 B
todo-widget
235 B
toggle-displays
1.5 KiB
tty-record
200 B
twitch
68 B
waybar-audio-output-selector
2.0 KiB
waybar-clipboard
847 B
waybar-screenshot
554 B
xmobar-brightness
191 B
xmobar-dropbox-status
152 B
xmobar-sync-status
304 B
etc/
images/
.dircolors
4.2 KiB
.fzy.zsh
1.1 KiB
.ghci
501 B
.gitconfig
2.2 KiB
.gitignore
0 B
.gitsigners
282 B
.ignore
136 B
.rgrc
174 B
.vimrc
12.7 KiB
.vimrc.lua
113 B
.wacom
260 B
bin/toggle-displays
raw
| 1 | #!/usr/bin/env ruby |
| 2 | |
| 3 | output = `xrandr` |
| 4 | |
| 5 | internal = /^(eDP-?1)/.match(output)[1] |
| 6 | external = /^(DP-?1)/.match(output)[1] |
| 7 | |
| 8 | internal_connected = /^#{internal} connected/.match?(output) |
| 9 | external_connected = /^#{external} connected/.match?(output) |
| 10 | |
| 11 | internal_active = /^#{internal} connected .*?\d+x\d+\b/.match?(output) |
| 12 | external_active = /^#{external} connected .*?\d+x\d+\b/.match?(output) |
| 13 | |
| 14 | puts "#{internal} connected: #{internal_connected}" |
| 15 | puts "#{external} connected: #{external_connected}" |
| 16 | puts "#{internal} active: #{internal_active}" |
| 17 | puts "#{external} active: #{external_active}" |
| 18 | |
| 19 | def xrandr(args) |
| 20 | system "xrandr #{args}" |
| 21 | end |
| 22 | |
| 23 | if external_active && !internal_active && internal_connected then |
| 24 | # Switch External -> Internal |
| 25 | xrandr "--output #{internal} --auto --primary --output #{external} --off" |
| 26 | elsif internal_active && !external_active && external_connected then |
| 27 | # Switch Internal -> External |
| 28 | xrandr "--output #{external} --auto --primary --output #{internal} --off" |
| 29 | elsif !internal_active && !external_active && external_connected && internal_connected then |
| 30 | # Switch None -> All |
| 31 | xrandr "--output #{internal} --auto --output #{external} --auto --primary" |
| 32 | elsif !internal_active && !external_active && internal_connected then |
| 33 | # Switch None -> Internal |
| 34 | xrandr "--output #{internal} --auto --primary" |
| 35 | elsif internal_active && external_active then |
| 36 | # Switch All -> External |
| 37 | xrandr "--output #{internal} --off --output #{external} --auto --primary" |
| 38 | end |
| 39 | |
| 40 | # Set background |
| 41 | system "set-background" |