chore: added tmux 5707281d
Steve · 2026-10-12 14:11 3 file(s) · +104 −3
config.scm +3 −3
1 1
(use-modules (gnu) (gnu system nss) (guix gexp) (rosenthal services networking)
2 2
             (nongnu packages linux) (nongnu system linux-initrd))
3 3
(use-service-modules base desktop xorg networking ssh docker dbus shepherd)
4 -
(use-package-modules bootloaders wm window-management text-editors fonts
4 +
 (use-package-modules bootloaders wm window-management text-editors fonts
5 5
                     terminals version-control ncurses xdisorg admin
6 6
                     xorg compton lxde ssh golang docker containers rsync emacs base
7 -
                     shells image-viewers librewolf)
7 +
                     shells image-viewers librewolf tmux)
8 8
9 9
(operating-system
10 10
 (host-name "benson")
55 55
                    ;; terminal emulator
56 56
                    alacritty kitty
57 57
                    ;; utils
58 -
                    git btop ncurses openssh rsync fastfetch
58 +
                    git btop ncurses openssh rsync fastfetch tmux
59 59
                    ;; dev
60 60
                    go
61 61
                    docker-cli
home.scm +2 −0
18 18
         ;; tools the zshrc aliases/functions/init rely on
19 19
         "starship" "zoxide" "fzf" "fd" "bat" "eza" "jless"
20 20
         "fastfetch" "xclip"
21 +
         ;; terminal multiplexer; tmux.conf uses xdg-open for `prefix o`
22 +
         "tmux" "xdg-utils"
21 23
         ;; encryption and password management
22 24
         "gnupg" "pinentry" "password-store")))
23 25
tmux/tmux.conf (added) +99 −0
1 +
set -g default-terminal "xterm-256color"
2 +
set-option -ga terminal-overrides ",xterm-256color:Tc"
3 +
set -ga terminal-overrides ",xterm-256color:Tc"
4 +
set -g extended-keys on
5 +
set -g extended-keys-format csi-u
6 +
7 +
# action key
8 +
unbind C-b
9 +
set -g prefix C-q
10 +
set-option -g repeat-time 0
11 +
12 +
set -g @tpm-clean 'u'
13 +
bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt
14 +
set -g detach-on-destroy off  # don't exit from tmux when closing a session
15 +
16 +
# Plugins
17 +
set -g @tpm_plugins '
18 +
tmux-plugins/tpm
19 +
tmux-plugins/tmux-sensible
20 +
christoomey/vim-tmux-navigator
21 +
'
22 +
# set -g @plugin 'joshmedeski/t-smart-tmux-session-manager'
23 +
# set -g @t-fzf-prompt '󰍉 '
24 +
25 +
# bind-key "T" display-popup -E "sesh connect \"(
26 +
#  sesh list -i | gum filter --limit 1 --placeholder "Choose a session" --height 50 --prompt="> " --indicator.foreground="2" --match.foreground="2"
27 +
# )\""
28 +
29 +
bind-key "T" run-shell "sesh connect \"$(
30 +
  sesh list --icons --hide-duplicates | fzf-tmux --no-sort --reverse \
31 +
    -p 100%,100% --ansi --padding 0,1 --prompt='󰘧  ' \
32 +
    --border=none --input-border=rounded --preview-border=rounded \
33 +
    --header '^a all ^t tmux ^g configs ^x zoxide ^f find ^d kill' \
34 +
    --bind 'tab:down,btab:up' \
35 +
    --bind 'ctrl-a:reload(sesh list --icons --hide-duplicates)' \
36 +
    --bind 'ctrl-t:reload(sesh list -t --icons)' \
37 +
    --bind 'ctrl-g:reload(sesh list -c --icons)' \
38 +
    --bind 'ctrl-x:reload(sesh list -z --icons)' \
39 +
    --bind 'ctrl-f:reload(fd -H -d 2 -t d -E .Trash . ~)' \
40 +
    --bind 'ctrl-d:execute(tmux kill-session -t {2..})+reload(sesh list --icons --hide-duplicates)' \
41 +
    --preview 'sesh preview {}' --preview-window 'right:55%' \
42 +
)\""
43 +
44 +
bind-key b set-option status
45 +
46 +
set-window-option -g mode-keys vi
47 +
48 +
# turn on mouse
49 +
set -g mouse on
50 +
51 +
#bind t send-key C-t
52 +
# Reload settings
53 +
bind r source-file ~/.config/tmux/tmux.conf \; display "Reloaded!"
54 +
# Open current directory
55 +
bind o run-shell "xdg-open #{pane_current_path}"
56 +
bind -r e kill-pane -a
57 +
58 +
# vim-like pane switching
59 +
bind -r k select-pane -U
60 +
bind -r j select-pane -D
61 +
bind -r h select-pane -L
62 +
bind -r l select-pane -R
63 +
64 +
# Moving window
65 +
bind-key -n C-S-Left swap-window -t -1 \; previous-window
66 +
bind-key -n C-S-Right swap-window -t +1 \; next-window
67 +
68 +
# Resizing pane
69 +
bind -r K resize-pane -U 5
70 +
bind -r J resize-pane -D 5
71 +
bind -r H resize-pane -L 5
72 +
bind -r L resize-pane -R 5
73 +
74 +
# Start windows and panes at 1, not 0
75 +
set -g base-index 1
76 +
set -g pane-base-index 1
77 +
set-window-option -g pane-base-index 1
78 +
set-option -g renumber-windows on
79 +
80 +
# Opens split panes in current path
81 +
bind '"' split-window -v -c "#{pane_current_path}"
82 +
bind % split-window -h -c "#{pane_current_path}"
83 +
84 +
85 +
#set-option utf8-default on
86 +
#set-option -g mouse-select-pane
87 +
set-window-option -g mode-keys vi
88 +
#set-window-option -g utf8 on
89 +
# look'n feel
90 +
set-option -g status-position "top"
91 +
set-option -g status-style bg=colour0,fg=default
92 +
set-option -g status-justify centre
93 +
set-option -g status-left '#[bg=default,fg=default,bold]#{?client_prefix,,  󰘧  }#[bg=default,fg=colour3,bold]#{?client_prefix,  󰘧  ,}'
94 +
set-option -g status-right '#S'
95 +
set-option -g window-status-format '#[bg=colour0,fg=colour2] 󰝣 #W '
96 +
set-option -g window-status-current-format '#[bg=colour0,fg=colour3] 󰝤 #W#{?window_zoomed_flag,  , }'
97 +
98 +
99 +
run '~/.tmux/plugins/tpm/tpm'