mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
44 lines
1.1 KiB
Nix
44 lines
1.1 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.modules.user.tmux;
|
|
gui = config.modules.user.gui.wm;
|
|
|
|
wm = {
|
|
enable = builtins.any (mod: mod.enable or false) (builtins.attrValues gui);
|
|
};
|
|
|
|
in
|
|
{ options.modules.user.tmux = { enable = mkEnableOption "Enable tmux module"; };
|
|
config = mkIf cfg.enable {
|
|
programs.tmux = {
|
|
enable = true;
|
|
newSession = true;
|
|
disableConfirmationPrompt = true;
|
|
keyMode = "vi";
|
|
mouse = if wm.enable then true else false;
|
|
|
|
prefix = "M";
|
|
#shell = "\${pkgs.bash}/bin/bash";
|
|
|
|
plugins = with pkgs.tmuxPlugins; [
|
|
{
|
|
plugin = tilish;
|
|
extraConfig = ''
|
|
set -g @tilish-default 'tiled'
|
|
'';
|
|
}
|
|
];
|
|
|
|
extraConfig = import ./config/tmux.nix;
|
|
};
|
|
|
|
# Auto-start tmux only on local TTY (not SSH, not in tmux already)
|
|
programs.bash.profileExtra = mkIf (!wm.enable) ''
|
|
if [ -t 0 ] && [[ $- == *i* ]] && [ -z "$DISPLAY" ] && [ -z "$TMUX" ] && [ -z "$SSH_TTY" ] && [ -z "$SSH_CONNECTION" ]; then
|
|
exec tmux
|
|
fi
|
|
'';
|
|
};
|
|
}
|