tmux: true color support

Adds True Color support based on the following gist:
https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
This commit is contained in:
Berk Ozkutuk 2023-12-29 23:47:48 +01:00
parent 2aff324cf6
commit 088d81b6b6
10 changed files with 79 additions and 0 deletions

View file

@ -94,6 +94,11 @@ let
bind-key -N "Kill the current pane" x kill-pane bind-key -N "Kill the current pane" x kill-pane
''} ''}
${optionalString cfg.trueColor ''
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
''}
set -g mouse ${boolToStr cfg.mouse} set -g mouse ${boolToStr cfg.mouse}
setw -g aggressive-resize ${boolToStr cfg.aggressiveResize} setw -g aggressive-resize ${boolToStr cfg.aggressiveResize}
setw -g clock-mode-style ${if cfg.clock24 then "24" else "12"} setw -g clock-mode-style ${if cfg.clock24 then "24" else "12"}
@ -293,6 +298,8 @@ in {
tmuxinator.enable = mkEnableOption "tmuxinator"; tmuxinator.enable = mkEnableOption "tmuxinator";
trueColor = mkEnableOption "true color support";
plugins = mkOption { plugins = mkOption {
type = with types; type = with types;
listOf (either package pluginModule) // { listOf (either package pluginModule) // {

View file

@ -23,6 +23,8 @@ set -g mode-keys emacs
set -g mouse off set -g mouse off
setw -g aggressive-resize off setw -g aggressive-resize off
setw -g clock-mode-style 12 setw -g clock-mode-style 12

View file

@ -8,4 +8,5 @@
tmux-shortcut-without-prefix = ./shortcut-without-prefix.nix; tmux-shortcut-without-prefix = ./shortcut-without-prefix.nix;
tmux-prefix = ./prefix.nix; tmux-prefix = ./prefix.nix;
tmux-mouse-enabled = ./mouse-enabled.nix; tmux-mouse-enabled = ./mouse-enabled.nix;
tmux-truecolor-enabled = ./truecolor-enabled.nix;
} }

View file

@ -23,6 +23,8 @@ bind-key -N "Kill the current window" & kill-window
bind-key -N "Kill the current pane" x kill-pane bind-key -N "Kill the current pane" x kill-pane
set -g mouse off set -g mouse off
setw -g aggressive-resize off setw -g aggressive-resize off
setw -g clock-mode-style 12 setw -g clock-mode-style 12

View file

@ -21,6 +21,8 @@ set -g mode-keys emacs
set -g mouse on set -g mouse on
setw -g aggressive-resize off setw -g aggressive-resize off
setw -g clock-mode-style 12 setw -g clock-mode-style 12

View file

@ -26,6 +26,8 @@ bind -N "Send the prefix key through to the application" \
set -g mouse off set -g mouse off
setw -g aggressive-resize off setw -g aggressive-resize off
setw -g clock-mode-style 12 setw -g clock-mode-style 12

View file

@ -27,6 +27,8 @@ bind C-a last-window
set -g mouse off set -g mouse off
setw -g aggressive-resize off setw -g aggressive-resize off
setw -g clock-mode-style 12 setw -g clock-mode-style 12

View file

@ -0,0 +1,33 @@
# ============================================= #
# Start with defaults from the Sensible plugin #
# --------------------------------------------- #
run-shell @sensible_rtp@
# ============================================= #
set -g default-terminal "screen"
set -g base-index 0
setw -g pane-base-index 0
set -g status-keys emacs
set -g mode-keys emacs
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
set -g mouse off
setw -g aggressive-resize off
setw -g clock-mode-style 12
set -s escape-time 500
set -g history-limit 2000

View file

@ -0,0 +1,26 @@
{ config, lib, pkgs, ... }:
with lib;
{
config = {
programs.tmux = {
enable = true;
trueColor = true;
};
nixpkgs.overlays = [
(self: super: {
tmuxPlugins = super.tmuxPlugins // {
sensible = super.tmuxPlugins.sensible // { rtp = "@sensible_rtp@"; };
};
})
];
nmt.script = ''
assertFileExists home-files/.config/tmux/tmux.conf
assertFileContent home-files/.config/tmux/tmux.conf \
${./truecolor-enabled.conf}
'';
};
}

View file

@ -23,6 +23,8 @@ set -g mode-keys vi
set -g mouse off set -g mouse off
setw -g aggressive-resize on setw -g aggressive-resize on
setw -g clock-mode-style 24 setw -g clock-mode-style 24