mirror of
https://github.com/nix-community/home-manager
synced 2024-11-23 11:39:46 +01:00
tmux: true color support
Adds True Color support based on the following gist: https://gist.github.com/andersevenrud/015e61af2fd264371032763d4ed965b6
This commit is contained in:
parent
2aff324cf6
commit
088d81b6b6
10 changed files with 79 additions and 0 deletions
|
@ -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) // {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
33
tests/modules/programs/tmux/truecolor-enabled.conf
Normal file
33
tests/modules/programs/tmux/truecolor-enabled.conf
Normal 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
|
||||||
|
|
26
tests/modules/programs/tmux/truecolor-enabled.nix
Normal file
26
tests/modules/programs/tmux/truecolor-enabled.nix
Normal 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}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue