nix-config/modules/server-shell/default.nix

81 lines
2.1 KiB
Nix

{
inputs,
...
}:
{
flake.modules.nixos.server-shell =
{ pkgs, ... }:
{
programs.bash.enable = true;
home-manager.sharedModules = [
inputs.self.modules.homeManager.server-shell
];
};
flake.modules.homeManager.server-shell =
{ pkgs, ... }:
{
home.packages = with pkgs; [
neovim
tmux
iotop
iftop
];
programs.tmux = {
enable = true;
package = pkgs.tmux;
baseIndex = 1;
clock24 = true;
disableConfirmationPrompt = true;
mouse = true;
newSession = true;
prefix = "C-a";
terminal = "screen-256color";
keyMode = "vi";
escapeTime = 0;
extraConfig = ''
set -g status-position bottom
set -g status-style bg=#1d202f,fg=white
set -g status-left ""
set -g status-right "#[bg=default,fg=magenta]>> #S << #[bg=default,fg=white]#H "
set-window-option -g window-status-style 'fg=magenta,bg=#1d202f'
set-window-option -g window-status-format ' #I #[fg=white]#W #[fg=cyan]#F '
set-window-option -g window-status-current-style "fg=black,bg=magenta"
set-window-option -g window-status-current-format " #I #W #F "
set -g pane-border-style fg=#807c9f
set -g pane-active-border-style fg=magenta
set -g message-style "fg=black,bg=red,bold"
unbind %
bind "|" split-window -h
unbind '"'
bind - split-window -l 15 -v
bind r source-file "~/.config/tmux/tmux.conf"
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5
bind ? list-keys -a
unbind s
bind s display-popup -h 50% -w 80% -E sessionizer
unbind C-x
bind C-x kill-session
unbind v
bind v choose-tree -Zw "join-pane -t '%%'"
'';
};
};
}