{ config, pkgs, ... }: { home.packages = with pkgs; [ (writeShellScriptBin "select_command" (builtins.readFile ./select_command.sh)) (writeShellScriptBin "move_wallpaper" (builtins.readFile ./move_wallpaper.sh)) (writeShellScriptBin "move_avatar" (builtins.readFile ./move_avatar.sh)) (writeShellScriptBin "next_wallpaper" (builtins.readFile ./next_wallpaper.sh)) zsh-powerlevel10k fzf fd eza zoxide bat neofetch yazi ]; home.file.".p10k.zsh".source = ./p10k.zsh; programs.zsh = { enable = true; autocd = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; history = { append = true; ignoreAllDups = true; ignoreDups = true; saveNoDups = true; share = false; }; plugins = with pkgs; [ { file = "powerlevel10k.zsh-theme"; name = "powerlevel10k"; src = "${zsh-powerlevel10k}/share/zsh-powerlevel10k"; } { file = "p10k.zsh"; name = "powerlevel10k-config"; src = ./p10k.zsh; } ]; oh-my-zsh = { enable = true; plugins = [ "git" "python" "ssh" "eza" "zoxide" "fzf" "command-not-found" "colored-man-pages" ]; }; shellAliases = { ll = "ls -lh"; la = "ls -la"; ".." = "cd .."; "..." = "cd ../.."; c = "clear"; addpath = "export PATH=$PATH:$1"; tree = "eza --tree"; kk = "sudo kill -9"; grepps = "ps -A | grep"; gitpa = ''f() { git add -A && git commit -m "$1" && git push; }; f''; amnezia = '' (pgrep -x ".AmneziaVPN-ser" > /dev/null 2>&1 || sudo AmneziaVPN-service > /dev/null 2>&1 &) & AmneziaVPN > /dev/null 2>&1 & ''; # TODO: start system with serviceps://github.com/dylanaraps/pywal/wiki/Customization cnfg = "cd nixos-config && code . && exit"; x = "select_command"; mv_w = "move_wallpaper"; next_w = "next_wallpaper"; mv_avatar = "move_avatar"; }; initContent = '' (cat ~/.cache/wal/sequences &) zstyle ':omz:plugins:eza' 'git-status' yes zstyle ':omz:plugins:eza' 'header' yes zstyle ':omz:plugins:eza' 'icons' yes ZOXIDE_CMD_OVERRIDE=cd ### --- COMPLETION TUNING ----------------------------- autoload -Uz compinit && compinit zstyle ':completion:*' menu select zstyle ':completion:*' list-colors "" ### --- KEYBINDINGS ---------------------------------- # bindkey -e # Emacs-style bindings # bindkey -v # Vim-style bindings ### --- ENVIRONMENT VARS ------------------------------ export EDITOR="nvim" export VISUAL="nvim" export PAGER="less" export LESS="-R" # --- fzf configuration --- if command -v fzf >/dev/null 2>&1; then # Enable key bindings and auto-completion [ -f "${pkgs.fzf}/share/fzf/key-bindings.zsh" ] && source "${pkgs.fzf}/share/fzf/key-bindings.zsh" [ -f "${pkgs.fzf}/share/fzf/completion.zsh" ] && source "${pkgs.fzf}/share/fzf/completion.zsh" # Example of optional fzf tuning export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git' export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" export FZF_DEFAULT_OPTS='--height 40% --layout=reverse --border' fi [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh eval "$(zoxide init zsh --cmd cd)" ''; }; }