nix-conf/system/modules/programs.nix
2024-12-31 00:59:32 +08:00

85 lines
2 KiB
Nix

{ pkgs, ... }:
{
programs = {
gnupg = {
agent = {
enable = true;
enableSSHSupport = true;
};
};
tmux = {
enable = true;
escapeTime = 0;
plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator
tmuxPlugins.resurrect
tmuxPlugins.continuum
tmuxPlugins.catppuccin
];
extraConfig = ''
set -g default-terminal "xterm-256color"
set -ga terminal-overrides ",*256col*:Tc"
set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q'
set-environment -g COLORTERM "truecolor"
set -g prefix C-a
bind-key C-a send-prefix
unbind %
bind | split-window -h
unbind '"'
bind - split-window -v
unbind r
bind r source-file ~/.tmux.conf
bind -r j resize-pane -D 5
bind -r k resize-pane -U 5
bind -r l resize-pane -R 5
bind -r h resize-pane -L 5
bind -r m resize-pane -Z
set -g mouse on
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection
unbind -T copy-mode-vi MouseDragEnd1Pane
set -g @resurrect-capture-pane-contents 'on'
set -g @continuum-restore 'on'
set -g @catppuccin-flavour 'macchiato'
'';
};
dconf.enable = true;
zsh.enable = true;
mtr.enable = true;
fish.enable = true;
thunar.plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
thunar-media-tags-plugin
];
# Set fish as default shell but not login shell
bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
};
}