nix-system/home/base.nix
2025-10-10 13:48:52 +02:00

122 lines
2.9 KiB
Nix

{ inputs, config, lib, pkgs, pkgs-unstable, ... }:
{
imports = [
./fish.nix
];
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.homeDirectory = "/home/${config.home.username}";
home.stateVersion = "23.05"; # Please read the comment before changing.
home.packages = with pkgs; [
file
python3
sshfs
ripgrep
];
home.file = {
".docker/config.json".text = (builtins.toJSON { detachKeys= "ctrl-z,z"; });
};
home.sessionPath = [
"$HOME/.local/bin"
"$HOME/.bin"
];
home.sessionVariables = {
EDITOR = "nvim";
GOPATH = "${config.home.homeDirectory}/.local/share/go";
GOMODCACHE = "${config.home.homeDirectory}/.cache/go/pkg/mod";
CCACHE_MAXSIZE = "100Gi";
};
home.keyboard.options = [
"caps:escape"
];
xdg = {
enable = true;
systemDirs.data = [ "${config.home.homeDirectory}/.local/share" ];
userDirs = {
enable = true;
createDirectories = false;
download = "${config.home.homeDirectory}/downloads";
templates = "${config.home.homeDirectory}/templates";
desktop = "${config.home.homeDirectory}";
documents = "${config.home.homeDirectory}";
music = "${config.home.homeDirectory}";
pictures = "${config.home.homeDirectory}";
publicShare = "${config.home.homeDirectory}";
videos = "${config.home.homeDirectory}";
};
mimeApps = {
enable = true;
};
};
programs.home-manager.enable = true;
programs.nh = {
enable = true;
flake = "${config.home.homeDirectory}/nix-system";
};
programs.git = {
enable = true;
aliases = {
co = "checkout";
};
extraConfig = {
pull.rebase = true;
};
userName = config.home.username;
userEmail = "${config.home.username}@domain.xyz";
};
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
programs.neovim = {
enable = true;
viAlias = true;
defaultEditor = true;
package = pkgs-unstable.neovim-unwrapped;
extraPackages = with pkgs; [
gcc
];
};
programs.tmux = {
enable = true;
historyLimit = 60000;
escapeTime = 10;
keyMode = "vi";
mouse = true;
terminal = "tmux-256color";
extraConfig = ''
unbind-key 'Space'
bind-key 'Space' copy-mode
set -g status-right "#{net_speed} #{cpu_percentage}"
set -g default-terminal "tmux-256color"
set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' # undercurl support
set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' # underscore colours - needs tmux-3.0
run-shell ${pkgs.tmuxPlugins.net-speed}/share/tmux-plugins/net-speed/net_speed.tmux
run-shell ${pkgs.tmuxPlugins.cpu}/share/tmux-plugins/cpu/cpu.tmux
set-option -a terminal-features 'st-256color:RGB'
set-option -g focus-events on
'';
plugins = with pkgs.tmuxPlugins; [ net-speed ];
};
}