{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 :NERDTreeToggle"; } ]; }; 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; #}; }; }