aboutsummaryrefslogtreecommitdiff
path: root/programs/tmux.nix
diff options
context:
space:
mode:
Diffstat (limited to 'programs/tmux.nix')
-rw-r--r--programs/tmux.nix49
1 files changed, 26 insertions, 23 deletions
diff --git a/programs/tmux.nix b/programs/tmux.nix
index c748a60..139d15e 100644
--- a/programs/tmux.nix
+++ b/programs/tmux.nix
@@ -7,13 +7,19 @@ let
7 cmus-np = pkgs.writeScriptBin "cmus-np" '' 7 cmus-np = pkgs.writeScriptBin "cmus-np" ''
8 ${pkgs.cmus}/bin/cmus-remote -Q | awk ' 8 ${pkgs.cmus}/bin/cmus-remote -Q | awk '
9 /tag artist/ { $1=$2=""; artist = substr($0,3) } 9 /tag artist/ { $1=$2=""; artist = substr($0,3) }
10 /tag title/ { $1=$2=""; title = substr($0,3) } 10 /tag album / { $1=$2=""; album = substr($0,3) }
11 END { printf "%s · %s\n", artist, title} 11 /tag title / { $1=$2=""; title = substr($0,3) }
12 END { if(artist&&album&&title) printf "%s / %s / %s\n", artist, album, title}
12 ' 13 '
13 ''; 14 '';
14 15
15 cmus-status = pkgs.writeScriptBin "cmus-status" '' 16 cmus-status = pkgs.writeScriptBin "cmus-status" ''
16 ${pkgs.cmus}/bin/cmus-remote -Q | awk '/status/ { print $2 }' 17 # ${pkgs.cmus}/bin/cmus-remote -Q | awk '/status/ { print $2 }'
18 ${pkgs.cmus}/bin/cmus-remote -Q | awk '
19 /status/ && $2~/playing/ { print "||" }
20 /status/ && $2~/paused/ { print "|>" }
21 /status/ && $2~/stopped/ { print "·" }
22 '
17 ''; 23 '';
18 24
19 date-bst = pkgs.writeScriptBin "date-bst" '' 25 date-bst = pkgs.writeScriptBin "date-bst" ''
@@ -39,7 +45,6 @@ let
39 extraConfig = 45 extraConfig =
40 let 46 let
41 processes = builtins.map (name: ''"~${name}->${name}"'') [ 47 processes = builtins.map (name: ''"~${name}->${name}"'') [
42 ".firefox-wrapped"
43 "weechat --run-command ;" 48 "weechat --run-command ;"
44 ]; 49 ];
45 in 50 in
@@ -48,23 +53,14 @@ let
48 set -g @resurrect-strategy-vim 'session' 53 set -g @resurrect-strategy-vim 'session'
49 set -g @resurrect-dir '~/.local/share/tmux/resurrect' 54 set -g @resurrect-dir '~/.local/share/tmux/resurrect'
50 set -g @resurrect-processes '${builtins.toString processes}' 55 set -g @resurrect-processes '${builtins.toString processes}'
51 set -g @resurrect-strategy-nvim 'session'
52 ''; 56 '';
53 }; 57 };
54 58
55 continuum = {
56 plugin = pkgs.tmuxPlugins.continuum;
57 extraConfig = ''
58 set -g @continuum-restore 'on'
59 set -g @continuum-save-interval '20' # minutes
60 '';
61 };
62
63in 59in
64{ 60{
65 programs.tmux = { 61 programs.tmux = {
66 enable = true; 62 enable = true;
67 plugins = [ thumbs resurrect continuum ]; 63 plugins = [ thumbs resurrect ];
68 prefix = "C-t"; 64 prefix = "C-t";
69 keyMode = "vi"; 65 keyMode = "vi";
70 terminal = "xterm-256color-italic"; 66 terminal = "xterm-256color-italic";
@@ -110,8 +106,9 @@ in
110 bind-key [ copy-mode 106 bind-key [ copy-mode
111 107
112 # statusline hide / unhide 108 # statusline hide / unhide
113 bind -n M-down set -q status off 109
114 bind -n M-up set -q status on 110 bind -n M-down set -sq status off\; set -sq pane-border-status off
111 bind -n M-up set -sq status on\; set -sq pane-border-status top
115 112
116 bind-key -r "<" swap-window -d -t -1 113 bind-key -r "<" swap-window -d -t -1
117 bind-key -r ">" swap-window -d -t +1 114 bind-key -r ">" swap-window -d -t +1
@@ -123,11 +120,8 @@ in
123 120
124 set-window-option -g allow-rename off 121 set-window-option -g allow-rename off
125 122
126 set -g pane-border-style fg=colour11
127 set -g pane-active-border-style fg=colour8
128
129 set-option -g status-justify absolute-centre 123 set-option -g status-justify absolute-centre
130 set-option -g status-position top 124 set-option -g status-position bottom
131 125
132 set -g window-status-current-format " #[fg=colour15]#W#{?window_zoomed_flag, #[fg=colour2]+,}#{?window_activity_flag, #[fg=colour3]!,}" 126 set -g window-status-current-format " #[fg=colour15]#W#{?window_zoomed_flag, #[fg=colour2]+,}#{?window_activity_flag, #[fg=colour3]!,}"
133 set -g window-status-format " #[fg=colour8]#W#{?window_zoomed_flag, #[fg=colour2]+,}" 127 set -g window-status-format " #[fg=colour8]#W#{?window_zoomed_flag, #[fg=colour2]+,}"
@@ -143,9 +137,18 @@ in
143 137
144 # status left 138 # status left
145 set status-left-length 70 139 set status-left-length 70
146 # set -g status-left "#[fg=colour15]#(${cmus-np}/bin/cmus-np) #[fg=colour8]#(${cmus-status}/bin/cmus-status) " 140 set -g status-left "#[fg=colour7]#(bat -q) "
147 set -g status-left "#[fg=colour7]#(bat -q) " 141 set -ag status-left "#[fg=colour15]#(${cmus-np}/bin/cmus-np) #[fg=colour8]#(${cmus-status}/bin/cmus-status)"
148 set -ag status-left "#[fg=colour7]#(${pkgs.prompt}/bin/prompt cwd '#{pane_current_path}')" 142
143 # include pwd and branch in pane border
144 set -g pane-border-status top
145 set -g pane-border-style fg=colour11
146 set -g pane-active-border-style fg=colour8
147 set -g pane-border-format " #[fg=colour15]#(${pkgs.prompt}/bin/prompt cwd '#{pane_current_path}') "
148 set -ag pane-border-format "#[fg=colour8]#(${pkgs.prompt}/bin/prompt vcs '#{pane_current_path}') "
149
150 # popup styles
151 set -g popup-border-style "fg=colour8"
149 ''; 152 '';
150 }; 153 };
151} 154}