219 lines
3.7 KiB
Nix
219 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
|
|
go 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;
|
|
#};
|
|
};
|
|
}
|