Convert tmux config to Nix and personalize system configuration
This commit is contained in:
101
home/modules/tmux.nix
Normal file
101
home/modules/tmux.nix
Normal file
@@ -0,0 +1,101 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
|
||||
# Shell and terminal
|
||||
shell = "${pkgs.zsh}/bin/zsh";
|
||||
terminal = "tmux-256color";
|
||||
terminalOverrides = [ "*256col*:Tc" ];
|
||||
|
||||
# Indexing
|
||||
baseIndex = 1;
|
||||
paneBaseIndex = 1;
|
||||
renumberWindows = true;
|
||||
|
||||
# Mouse and clipboard
|
||||
mouse = false;
|
||||
setClipboard = true;
|
||||
|
||||
# History
|
||||
historyLimit = 50000;
|
||||
|
||||
# Status bar
|
||||
statusInterval = 1;
|
||||
statusPosition = "top";
|
||||
statusJustify = "left";
|
||||
statusStyle = "bg=black,fg=brightwhite";
|
||||
statusLeft = "#[bg=colour236,fg=brightwhite]#{?session_path, #(basename #{session_path}) ,}";
|
||||
statusRight = "#[bg=colour236,fg=brightwhite] #H #[bg=colour235,fg=brightwhite] %H:%M:%S ";
|
||||
statusLeftLength = 100;
|
||||
statusRightLength = 100;
|
||||
|
||||
# Window styling
|
||||
windowStatusFormat = " #[fg=white]#I:#[fg=white]#W#{?window_flags,#F,} ";
|
||||
windowStatusCurrentFormat = "#[bg=colour235,fg=brightred,bold] #I:#W#{?window_flags,#F,} ";
|
||||
windowStatusSeparator = "";
|
||||
|
||||
# Pane styling
|
||||
paneActiveBorderStyle = "fg=brightred";
|
||||
paneBorderStyle = "fg=colour238";
|
||||
|
||||
# Message styling
|
||||
messageStyle = "bg=colour236,fg=brightwhite";
|
||||
messageCommandStyle = "bg=colour236,fg=brightwhite";
|
||||
|
||||
# Mode and clock
|
||||
modeStyle = "bg=brightred,fg=black";
|
||||
clockModeColour = "brightred";
|
||||
clockModeStyle = 24;
|
||||
|
||||
# Copy mode
|
||||
copyMode = {
|
||||
vi = true;
|
||||
};
|
||||
|
||||
# Keybindings
|
||||
keyBindings = [
|
||||
{
|
||||
key = "y";
|
||||
command = "copy-mode";
|
||||
}
|
||||
{
|
||||
key = "h";
|
||||
command = "select-pane -L";
|
||||
options = { repeat = true; };
|
||||
}
|
||||
{
|
||||
key = "j";
|
||||
command = "select-pane -D";
|
||||
options = { repeat = true; };
|
||||
}
|
||||
{
|
||||
key = "k";
|
||||
command = "select-pane -U";
|
||||
options = { repeat = true; };
|
||||
}
|
||||
{
|
||||
key = "l";
|
||||
command = "select-pane -R";
|
||||
options = { repeat = true; };
|
||||
}
|
||||
{
|
||||
key = "r";
|
||||
command = "source-file ~/.config/tmux/tmux.conf \\; display-message \"tmux.conf reloaded\"";
|
||||
options = { repeat = true; };
|
||||
}
|
||||
{
|
||||
key = "q";
|
||||
command = "display-popup -E -w 60% -h 60% -d '#{session_path}' 'nvim quicknote.md'";
|
||||
}
|
||||
];
|
||||
|
||||
# Additional settings via extraConfig
|
||||
extraConfig = ''
|
||||
set -ga terminal-overrides ",*256col*:Tc"
|
||||
set -g focus-events on
|
||||
set -g pane-border-lines heavy
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user