aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/.gdbinit4
-rwxr-xr-xmisc/bin/switch-display.sh35
2 files changed, 39 insertions, 0 deletions
diff --git a/misc/.gdbinit b/misc/.gdbinit
index b2c8a1f..b84dbef 100644
--- a/misc/.gdbinit
+++ b/misc/.gdbinit
@@ -19,6 +19,10 @@ alias wl = watch -l
alias awl = awatch -l
alias rwl = rwatch -l
alias rt = restart
+define bc
+ b $arg0
+ c
+end
# Print backtrace of all threads
alias abt = thread apply all bt
set history save on
diff --git a/misc/bin/switch-display.sh b/misc/bin/switch-display.sh
new file mode 100755
index 0000000..4c3cba6
--- /dev/null
+++ b/misc/bin/switch-display.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+logger "$1" "$2" "$3"
+# Switch to the biggest display available. for use as an acpid hook
+
+# Make sure the variables from pipe can be assigned
+# https://stackoverflow.com/questions/42963395/bash-assign-variable-from-pipe
+shopt -s lastpipe
+
+# enable all monitors so that they show up in xrandr
+# --listactivemonitors output. somehow this output is identical to
+# that of xrandr --listmonitors
+xrandr --auto
+
+# find the widest monitor
+regex="^.*/([0-9]+)x.*/([0-9]+).* ([^ ]+)$"
+widest=0
+widest_name=""
+xrandr --listactivemonitors | while IFS=$'\n' read -r line; do
+ if [[ $line =~ $regex ]]; then
+ if (( "${BASH_REMATCH[1]}" > "$widest" )); then
+ widest="${BASH_REMATCH[1]}"
+ widest_name="${BASH_REMATCH[3]}"
+ fi
+ fi
+done
+
+# turn off all other monitors
+xrandr --listactivemonitors | while IFS=$'\n' read -r line; do
+ if [[ $line =~ $regex ]]; then
+ if [[ "${BASH_REMATCH[3]}" != "$widest_name" ]]; then
+ xrandr --output "${BASH_REMATCH[3]}" --off
+ fi
+ fi
+done