diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/chat.tmux.conf | 64 | ||||
-rw-r--r-- | scripts/notify-send.scpt | 9 | ||||
-rw-r--r-- | scripts/reconnect.sh | 10 |
3 files changed, 83 insertions, 0 deletions
diff --git a/scripts/chat.tmux.conf b/scripts/chat.tmux.conf new file mode 100644 index 0000000..3489a19 --- /dev/null +++ b/scripts/chat.tmux.conf @@ -0,0 +1,64 @@ +# use `tmux -L chat -f ./chat.tmux.conf attach-session' (without any other +# options or parameters) to access this session group in its own tmux server, +# not interfering with existing servers/sessions/configurations + +new-session -t chat + +# catgirl(1) puts windows at the top +set-option -g -- status-position top + +# intuitive navigation +set-option -g -- mode-keys vi +set-option -g -- mouse on + +# indicate new messages +set-option -g -- monitor-activity on +set-option -g -- monitor-bell on + +# hardcode names during window creation +set-option -g -- automatic-rename off +set-option -g -- allow-rename off +set-option -g -- set-titles off +set-option -g -- renumber-windows on +# for the F1 binding, make hotkeys match window numbers +set-option -g -- base-index 1 + + +# clients exit on network errors, restart them automatically +# (use `kill-pane'/`C-b x' to destroy windows) +set-option -g -- remain-on-exit on +set-hook -g -- pane-died respawn-pane + + +# disarm ^C to avoid accidentially losing logs +bind-key -n -N 'confirm INTR key' -- C-c \ + confirm-before -p 'Send ^C? (y/N)' -- 'send-keys -- C-c' + +# one-click version of default `C-b w' (shows preview windows) +bind-key -n -N 'pick chat network' -- F1 choose-tree -Z + +# catgirl(1) might run in `-R'/`restrict'ed mode, i.e. `/help' is disabled +bind-key -n -N 'read catgirl help' -- F2 \ + new-window -S -n help -- man -s 1 -- catgirl + +# intuitive refresh, just don't spam it ;-) +bind-key -n -N 'reconnect network' -- F5 \ + confirm-before -p 'reconnect network? (y/N)' -- 'respawn-pane -k' + +# immersive mode ;-) +bind-key -n -N 'toggle fullscreen' -- F11 set status + + +# this configuration is idempotent, i.e. reloading it only changes settings +# and never duplicates already existing windows +bind-key -N 'reload configuration' -- R { + source-file -F -- '#{source_files}' + display-message -- 'configuration reloaded' +} + + +## do not double-quote commands to avoid running through "sh -c" + +# IRC +new-window -d -S -n hackint -- catgirl -- defaults hackint +new-window -d -S -n efnet -- catgirl -- defaults efnet diff --git a/scripts/notify-send.scpt b/scripts/notify-send.scpt new file mode 100644 index 0000000..5630440 --- /dev/null +++ b/scripts/notify-send.scpt @@ -0,0 +1,9 @@ +#!/usr/bin/osascript + +on run argv + if count of argv is 2 then + display notification (item 2 of argv) with title (item 1 of argv) + else + display notification (item 1 of argv) + end if +end run diff --git a/scripts/reconnect.sh b/scripts/reconnect.sh new file mode 100644 index 0000000..92d9668 --- /dev/null +++ b/scripts/reconnect.sh @@ -0,0 +1,10 @@ +#!/bin/sh +set -u + +while :; do + catgirl "$@" + status=$? + if [ $status -ne 69 ]; then + exit $status + fi +done |