214 lines
3.8 KiB
Nix
214 lines
3.8 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
# minimal config, suitable for servers
|
|
let
|
|
user = {
|
|
name = config.home.username;
|
|
fullName = "Alexander Kobjolke";
|
|
mail = "me@failco.de";
|
|
};
|
|
|
|
myEza = if builtins.hasAttr "eza" pkgs then "eza" else "exa";
|
|
in
|
|
{
|
|
imports = [
|
|
./programs/neovim/default.nix
|
|
./programs/emacs/default.nix
|
|
./programs/editorconfig
|
|
./programs/jq
|
|
./programs/fzf
|
|
./programs/git
|
|
./programs/jujutsu
|
|
./programs/shell
|
|
./programs/devenv.nix
|
|
];
|
|
|
|
programs.home-manager.enable = true;
|
|
home = {
|
|
stateVersion = "21.05";
|
|
sessionPath = [ "$HOME/.local/bin" ];
|
|
};
|
|
|
|
# do not show home-manager notifications
|
|
news.display = "silent";
|
|
|
|
home.packages = with pkgs; [
|
|
# archives
|
|
#p7zip
|
|
#unrar
|
|
git-absorb
|
|
git-annex
|
|
git-annex-remote-rclone
|
|
|
|
tea # command-line frontend for gitea
|
|
|
|
# nix tools
|
|
nix-index
|
|
nixfmt-rfc-style
|
|
# misc
|
|
fd # better find
|
|
file # info about files
|
|
unzip
|
|
dropbox
|
|
gotop
|
|
gnumake
|
|
ripgrep # better grep
|
|
pijul
|
|
sqlite.dev
|
|
sqlite
|
|
|
|
# editing
|
|
nil # nix language server
|
|
shellcheck
|
|
editorconfig-core-c
|
|
shfmt
|
|
(aspellWithDicts (
|
|
dicts: with dicts; [
|
|
en
|
|
en-computers
|
|
en-science
|
|
de
|
|
]
|
|
))
|
|
|
|
# system tools
|
|
htop-vim # htop with vim bindings
|
|
erdtree # du+tree had sex
|
|
dua # ncdu but better
|
|
|
|
gopass
|
|
gopass-jsonapi
|
|
gopass-hibp
|
|
|
|
gcc
|
|
cmake
|
|
graphviz
|
|
plantuml
|
|
gnuplot
|
|
|
|
pandoc
|
|
hledger
|
|
hledger-web
|
|
hledger-ui
|
|
|
|
nix-prefetch-git
|
|
];
|
|
home.extraOutputsToInstall = [
|
|
"doc"
|
|
"info"
|
|
"devdoc"
|
|
];
|
|
|
|
xdg.enable = true;
|
|
|
|
xdg.configFile.tmux = {
|
|
target = "tmux/tmux.conf";
|
|
text = ''
|
|
set -g default-terminal "xterm-256color"
|
|
set-window-option -g xterm-keys on
|
|
set -ag update-environment "SSH_TTY SSH_CLIENT"
|
|
set -g prefix C-z
|
|
set -g status-keys vi
|
|
setw -g mode-keys vi
|
|
setw -g aggressive-resize on
|
|
set -g mouse on
|
|
# do not wait for a manually entered escape sequence, just forward it immediately
|
|
set -g escape-time 0
|
|
bind-key C-z send-prefix
|
|
set -g renumber-windows on
|
|
|
|
bind-key T swap-window -t 0
|
|
'';
|
|
};
|
|
|
|
xdg.configFile.pijul = {
|
|
target = "pijul/config.toml";
|
|
text = ''
|
|
[author]
|
|
name = "${user.name}"
|
|
full_name = "${user.fullName}"
|
|
email = "${user.mail}"
|
|
'';
|
|
};
|
|
|
|
programs = {
|
|
bash = {
|
|
enable = true;
|
|
};
|
|
|
|
# better cat
|
|
bat.enable = true;
|
|
|
|
# htop replacement with a nice UI
|
|
btop.enable = true;
|
|
|
|
# better ls with icons and stuff, maybe also try lsd
|
|
${myEza} = {
|
|
enable = true;
|
|
icons = "auto";
|
|
};
|
|
|
|
starship = {
|
|
enable = true;
|
|
};
|
|
|
|
direnv = {
|
|
enable = true;
|
|
nix-direnv = {
|
|
enable = true;
|
|
};
|
|
enableZshIntegration = true;
|
|
enableBashIntegration = true;
|
|
};
|
|
|
|
gh = {
|
|
enable = true;
|
|
settings.git_protocol = "ssh";
|
|
};
|
|
|
|
gpg = {
|
|
enable = true;
|
|
settings = {
|
|
homedir = "~/.local/share/gnupg";
|
|
};
|
|
};
|
|
|
|
helix = {
|
|
enable = true;
|
|
settings.theme = "gruvbox";
|
|
};
|
|
|
|
password-store = {
|
|
enable = true;
|
|
package = pkgs.gopass;
|
|
settings = {
|
|
PASSWORD_STORE_DIR = "$HOME/.local/share/password-store";
|
|
};
|
|
};
|
|
|
|
ssh = {
|
|
enable = true;
|
|
enableDefaultConfig = false;
|
|
matchBlocks = {
|
|
"*" = {
|
|
controlMaster = "auto";
|
|
controlPersist = "10m";
|
|
};
|
|
};
|
|
};
|
|
|
|
texlive.enable = true;
|
|
};
|
|
|
|
services.gpg-agent = {
|
|
enable = true;
|
|
enableSshSupport = true;
|
|
defaultCacheTtl = 7200;
|
|
defaultCacheTtlSsh = 7200;
|
|
};
|
|
|
|
home.file.".local" = {
|
|
recursive = true;
|
|
source = ./local;
|
|
};
|
|
}
|