summary refs log tree commit diff
path: root/scripts/chat.tmux.conf
diff options
context:
space:
mode:
authorKlemens Nanni <klemens@posteo.de>2021-02-08 23:34:58 +0100
committerJune McEnroe <june@causal.agency>2021-02-08 18:31:06 -0500
commitab744d74e17353bdf66cf01652210109e77e87a3 (patch)
tree124a24c74a36e0baf1173ef07250511e87bf16ef /scripts/chat.tmux.conf
parentOnly treat a single -j join as explicit (diff)
downloadcatgirl-ab744d74e17353bdf66cf01652210109e77e87a3.tar.gz
catgirl-ab744d74e17353bdf66cf01652210109e77e87a3.zip
chat.tmux.conf: Add help window for restricted mode, use neww -S
Provide a hotkey to browser the manual in its own window.

After input, nicm (tmux upstream) added "-S" to tmux(1) such that
the "new-window" command (in combination with "-d") first looks
for the given window name and selects the window if it exists
instead of trying to create a window that already exists.

Given that this makes chat.tmux.conf idempotent, we can now also reload
it at runtime to refresh settings.
Diffstat (limited to '')
-rw-r--r--scripts/chat.tmux.conf22
1 files changed, 19 insertions, 3 deletions
diff --git a/scripts/chat.tmux.conf b/scripts/chat.tmux.conf
index db5cca2..e58f955 100644
--- a/scripts/chat.tmux.conf
+++ b/scripts/chat.tmux.conf
@@ -1,8 +1,12 @@
 # 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
@@ -30,6 +34,10 @@ bind-key -n -N 'confirm INTR key'	-- 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'
@@ -38,9 +46,17 @@ bind-key -n -N 'reconnect network'	-- F5	\
 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	-- ./chat.tmux.conf
+	display-message	-- 'configuration reloaded'
+}
+
+
 ## do not double-quote commands to avoid running through "sh -c"
 
 # IRC
-new-window -n hackint	-- catgirl hackint
-new-window -n freenode	-- catgirl freenode
-new-window -n efnet	-- catgirl efnet
+new-window -d -S -n hackint	-- catgirl	-- defaults hackint
+new-window -d -S -n freenode	-- catgirl	-- defaults freenode
+new-window -d -S -n efnet	-- catgirl	-- defaults efnet