120 lines
2.9 KiB
Nix
120 lines
2.9 KiB
Nix
{ inputs, config, lib, pkgs, pkgs-unstable, ... }:
|
|
{
|
|
|
|
imports = [
|
|
./fish.nix
|
|
];
|
|
|
|
nix.package = pkgs.nixVersions.latest;
|
|
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 ];
|
|
};
|
|
|
|
}
|