aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to 'bin')
-rwxr-xr-xbin/auto-autorandr.sh6
l---------bin/bin1
-rwxr-xr-xbin/tmux-cssh114
-rwxr-xr-xbin/umount_dev5
4 files changed, 125 insertions, 1 deletions
diff --git a/bin/auto-autorandr.sh b/bin/auto-autorandr.sh
index c97e90a..d0ae791 100755
--- a/bin/auto-autorandr.sh
+++ b/bin/auto-autorandr.sh
@@ -1,4 +1,8 @@
#!/bin/bash
sleep 1
-autorandr --change
+export DISPLAY=:0
+export XAUTHORITY=`ls /run/user/1000/gdm/Xauthority`
+su -c 'autorandr --change >> /tmp/autorandr.log 2>&1' jakob >> /tmp/auto_autorandr.log 2>&1
+sleep 1
+su -c 'wallpaper.sh' jakob
diff --git a/bin/bin b/bin/bin
new file mode 120000
index 0000000..8402b35
--- /dev/null
+++ b/bin/bin
@@ -0,0 +1 @@
+/home/jakob/_code/dotfiles/bin \ No newline at end of file
diff --git a/bin/tmux-cssh b/bin/tmux-cssh
new file mode 100755
index 0000000..6e686a8
--- /dev/null
+++ b/bin/tmux-cssh
@@ -0,0 +1,114 @@
+#!/bin/sh
+
+hosts=""
+ssh_options=""
+tmux_name="cssh"
+
+usage() {
+ echo "Usage: $0 [options] host [host ...]" >&2
+ echo "" >&2
+ echo "Spawns multiple synchronized SSH sessions inside a tmux session." >&2
+ echo "" >&2
+ echo "Options:" >&2
+ echo " -h Show help" >&2
+ echo " -c Use the current tmux session and just spawn a new window instead" >&2
+ echo " -n <name> Name of the tmux session or window (default: cssh)" >&2
+ echo " -o <ssh args> Additional SSH arguments" >&2
+}
+
+while [ $# -ne 0 ]; do
+ case $1 in
+ -n)
+ shift;
+ if [ $# -eq 0 ]; then
+ usage
+ exit 2
+ fi
+ tmux_name="$1"; shift
+ ;;
+ -c)
+ tmux_attach_current_session="true"; shift
+ ;;
+ -o)
+ shift;
+ if [ $# -eq 0 ]; then
+ usage
+ exit 2
+ fi
+ ssh_options="$1"; shift
+ ;;
+ -h)
+ usage
+ exit 0
+ ;;
+ -*)
+ usage
+ exit 2
+ ;;
+ *)
+ hosts="${hosts}${hosts:+ }$1"; shift
+ ;;
+ esac
+done
+
+if [ -z "${hosts}" ]; then
+ usage
+ exit 2
+fi
+
+# Find a name for a new session
+n=0; while tmux has-session -t "${tmux_name}-${n}" 2>/dev/null; do n=$(($n + 1)); done
+tmux_session="${tmux_name}-${n}"
+
+if [ -n "${tmux_attach_current_session}" ]; then
+ tmux_session=$(tmux display-message -p '#S')
+ n=0; while tmux list-windows -F "#W" | grep -q "${tmux_name}-${n}" 2>/dev/null; do n=$(($n + 1)); done
+ tmux_window="${tmux_name}-${n}"
+ tmux_window_options="-n ${tmux_window}"
+fi
+
+# If host doesn't look like a DNS name, it may be a CSSH cluster
+if ! echo "${hosts}" | grep -q '[. ]'; then
+ for cfg in ~/.clusterssh/clusters /etc/clusters; do
+ if [ -r "${cfg}" ]; then
+ h="$(sed -n < "${cfg}" "s/^$hosts //p")"
+ if [ -n "$h" ]; then
+ hosts="${h}"
+ break
+ fi
+ fi
+ # If there was no corresponding cluster name,
+ # just assume we have an unqualified domain name
+ done
+fi
+
+# Open a new session and split into new panes for each SSH session
+for host in ${hosts}; do
+ if ! tmux has-session -t "${tmux_session}" 2>/dev/null; then
+ tmux new-session -s "${tmux_session}" -d "ssh ${ssh_options} ${host}"
+ elif [ -n "${tmux_attach_current_session}" ] && ! tmux list-windows -F "#W" | grep -q "${tmux_window}" >/dev/null; then
+ tmux new-window ${tmux_window_options} "ssh ${ssh_options} ${host}"
+ else
+ tmux split-window -t "${tmux_session}" -t ${tmux_window} -d "ssh ${ssh_options} ${host}"
+ # We have to reset the layout after each new pane otherwise the panes
+ # quickly become too small to spawn any more
+ tmux select-layout -t "${tmux_session}" tiled
+ fi
+done
+
+# Synchronize panes by default
+if [ -n "${tmux_attach_current_session}" ]; then
+ tmux set-window-option -t "${tmux_window}" synchronize-panes on
+else
+ tmux set-window-option -t "${tmux_session}" synchronize-panes on
+fi
+
+if [ -n "${TMUX}" ]; then
+ # We are in a tmux, just switch to the new session
+ tmux switch-client -t "${tmux_session}"
+else
+ # We are NOT in a tmux, attach to the new session
+ tmux attach-session -t "${tmux_session}"
+fi
+
+exit 0
diff --git a/bin/umount_dev b/bin/umount_dev
index e2cc87a..9c299d5 100755
--- a/bin/umount_dev
+++ b/bin/umount_dev
@@ -1,6 +1,11 @@
#!/bin/sh
echo "Unmounting /media/$1"
+
+if [ "$(pwd)" = "/media/$1" ]; then
+ cd ~/
+fi
+
sudo umount -l "/media/$1"
sudo rm -r "/media/$1"
echo "Unmounting /usr/local/Development/$1"