nix/home/default.nix

218 lines
3.7 KiB
Nix

{pkgs, lib, ...}:
{
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"ookla-speedtest"
];
home.packages = with pkgs; [
(python3.withPackages(ps: with ps; [
# ansible
dnspython
youtube-dl
boto3 # aws-s3 support for ansible
kubernetes # is in ansible kubernetes.core module
# dict_utils for an ansible filter_plugin
setuptools
deepmerge
pip
passlib # bcrypt
pyyaml
]))
ansible
killall
exa
# tree # use exa
htop
mosh
dasel
pre-commit
git-lfs
git-crypt
git-annex
ghorg
tig
cocogitto
tea
glab
figlet
tmux
w3m
wget
xh
minio-client
liboping # fix it
mtr
ookla-speedtest
hey
colordiff
direnv
## nice prompt together with grml
# pure-prompt
# vimPlugins.nvim-lspconfig
# vimPlugins.nerdtree
go_1_18 gcc libcap
gopls
# cargo
rustup
yarn
cmake
pwgen
hugo
asciidoctor-with-extensions
# gotify-cli # use ntfy.sh
glow
imagemagick
ffmpeg
# devOps
terraform
tflint
kubectl
kustomize
(wrapHelm kubernetes-helm {
plugins = with kubernetes-helmPlugins; [
helm-diff
helm-secrets
];
})
helmfile
stern
kubeswitch
kubespy
fluxcd
kubeseal
# nixopsUnstable
];
home.shellAliases = {
k9sctx = "k9s --kubeconfig=$(switch)";
k9s = "k9s --headless";
kubectx = "export KUBECONFIG=$(switch)";
ls = "exa";
};
programs.home-manager.enable = false; # use OS
programs.password-store = {
enable = true;
package = pkgs.pass-wayland.withExtensions (exts: [
exts.pass-otp
]);
settings = {
PASSWORD_STORE_DIR = "$HOME/.password-store";
};
};
programs.nushell = {
enable = true;
# envFile.text = ''
# let-env config = {
# hooks: {
# pre_prompt: [{
# code: "
# let direnv = (direnv export json | from json)
# let direnv = if ($direnv | length) == 1 { $direnv } else { {} }
# $direnv | load-env
# "
# }]
# }
# }
# '';
};
programs.zsh = {
enable = true;
enableAutosuggestions = true;
syntaxHighlighting.enable = true;
# initExtra = ''
# source ${pkgs.grml-zsh-config}/etc/zsh/zshrc
# prompt pure
# '';
};
programs.starship = {
enable = true;
settings = {
directory ={
truncation_length = 0;
};
helm = {
disabled = true;
};
kubernetes = {
disabled = false;
format = "[$symbol$cluster( \($namespace\))]($style) in ";
detect_extensions = [
"package" # helm
];
};
};
};
programs.atuin = {
enable = false;
settings = {
auto_sync = false;
style = "compact";
search_mode = "fulltext";
filter_mode_shell_up_key_binding = "directory";
exit_mode = "return-query";
};
};
programs.direnv.enable = true;
programs.btop.enable = true;
programs.tealdeer.enable = true; # man / tldr ...
programs.gitui.enable = true;
programs.git = {
enable = true;
extraConfig = {
init.defaultBranch = "main";
filter.lfs = {
required = "true";
clean = "git-lfs clean -- %f";
smudge = "git-lfs smudge -- %f";
process = "git-lfs filter-process";
};
};
};
programs.neovim = {
enable = false;
extraConfig = ''
syntax on
set number relativenumber
'';
plugins = with pkgs.vimPlugins; [
nvim-lspconfig
airline
Syntastic
{
plugin = nerdtree;
config = "map <C-n> :NERDTreeToggle<CR>";
}
];
};
programs.helix = {
enable = true;
languages.language = [];
settings = {
theme = "base16_default";
editor = {
lsp.display-messages = true;
};
};
};
services.syncthing = {
enable = true;
tray.enable = true;
};
programs.k9s = {
enable = true;
# does not open ERROR with clusters settings
#settings.k9s = {
# headless = true;
# logger.fullScreenLogs = true;
#};
};
}