From 44aef90e3fd7a7c7c257bed06442a6f81e48b36b Mon Sep 17 00:00:00 2001 From: genofire Date: Fri, 15 Oct 2021 19:50:54 +0200 Subject: [PATCH] nixos/default: add my tmux config ;) --- nixos/default.nix | 3 ++ nixos/files/tmux.nix | 113 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 nixos/files/tmux.nix diff --git a/nixos/default.nix b/nixos/default.nix index 746bd4e..6032b2e 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -76,5 +76,8 @@ grep = "grep --color=always --exclude-dir=.git"; }; }; + + # tmux + imports = [ ./files/tmux.nix ]; } diff --git a/nixos/files/tmux.nix b/nixos/files/tmux.nix new file mode 100644 index 0000000..8f3b62f --- /dev/null +++ b/nixos/files/tmux.nix @@ -0,0 +1,113 @@ +{ + environment.etc."tmux.conf".text = '' +# make tmux display things in 256 colors +set -g default-terminal "screen-256color" + +# set scrollback history to 10000 (10k) +set -g history-limit 10000 + +# use send-prefix to pass C-a through to application +bind C-a send-prefix + +# shorten command delay +set -sg escape-time 1 + +# set window and pane index to 1 (0 by default) +set-option -g base-index 1 +setw -g pane-base-index 1 + +# reload ~/.tmux.conf using PREFIX r +bind r source-file /etc/tmux.conf \; display "Reloaded!" + +# use PREFIX | to split window horizontally and PREFIX - to split vertically +bind | split-window -h +bind - split-window -v + +# Make the current window the first window +bind T swap-window -t 1 + +# map Vi movement keys as pane movement keys +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R + +# and use C-h and C-l to cycle thru panes +bind -r C-h select-window -t :- +bind -r C-l select-window -t :+ + +# resize panes using PREFIX H, J, K, L +bind H resize-pane -L 5 +bind J resize-pane -D 5 +bind K resize-pane -U 5 +bind L resize-pane -R 5 + +set -g mouse on + +###################### +### DESIGN CHANGES ### +###################### + +# panes +set -g pane-border-style fg=black +set -g pane-active-border-style fg=brightred + +## Status bar design +# status line +##set -g status-utf8 on +set -g status-justify left +set -g status-style bg=default,fg=colour12 +set -g status-interval 2 + +# messaging +set -g message-style fg=black,bg=yellow +set -g message-command-style fg=blue,bg=black + +#window mode +setw -g mode-style bg=colour6,fg=colour0 + +# window status +setw -g window-status-separator "" +setw -g window-status-style bg=colour234,fg=colour7 +setw -g window-status-format "#[fg=colour234]#[fg=white,bold]#I#[nobold]  #W #[reverse,fg=colour234]" +setw -g window-status-current-style bg=colour240 +setw -g window-status-current-format "#[fg=colour234]#[fg=white,bold]#I#[nobold]  #W #[reverse,fg=colour234]" + +setw -g window-status-bell-style fg=black,bg=colour1,bold + + +# loud or quiet? +set-option -g visual-activity off +set-option -g visual-bell off +set-option -g visual-silence off +set-window-option -g monitor-activity off +set-option -g bell-action none + +# The modes { +setw -g clock-mode-colour colour135 +setw -g mode-style fg=colour196,bg=colour238,bold + +# } +# The panes { + +set -g pane-border-style bg=colour235,fg=colour238 +set -g pane-active-border-style bg=colour236,fg=colour51 + +# } +# The statusbar { + +set -g status-position top +set -g status-style bg=colour16,fg=colour137 +set -g status-left "#[bg=colour202,fg=colour15,bold]#h #[reverse,fg=colour12,nobold]#[reverse,bg=colour15] #S(#{session_attached}) #I-#P #[bg=colour232,noreverse,nobold]" +set -g status-right "#[fg=colour14,nobold]#[reverse,bg=colour15] #{client_prefix} #[reverse,bg=colour13]#[noreverse,fg=colour15] %H:%M:%S" +set -g status-right-length 30 +set -g status-left-length 26 + +# } +# The messages { + +set -g message-style fg=colour16,bg=colour202,bold + +# } +''; +}