# zsh-nix A [`home-manager`]() flake containing my [`zsh`]() config. ## Usage ```nix { # Add this flake to your inputs inputs = { zsh-config.url = "/home/jirka/Projects/zsh-nix/"; ... } ... outputs = { self, nixpkgs, home-manager, zsh-config, # Don't forget to import it ... } ... # Then add it to your homeConfigurations homeConfigurations = { "user@hostname" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance extraSpecialArgs = {inherit inputs outputs;}; modules = [ ... inputs.zsh-config.homeManagerModules.default ... ]; }; ``` # ZSH Configuration Flake This flake provides a ZSH configuration with various plugins, syntax highlighting, enhanced file handling, etc. ## Overview ### Notable plugins - **`zsh-autosuggestions`**: Provides suggestions as you type based on your command history. - **`zsh-you-should-use`**: Reminds you to use aliases for commands you frequently type. It helps you streamline your workflow. - **`ssh-connect`**: A utility for managing SSH connections and quickly switching between them. - **`enhancd`**: Improves directory navigation with fuzzy search, similar to `zsh-z`. - **`zsh-completions`**: Adds missing completions for various tools. - **`powerlevel10k`**: A highly customizable ZSH theme that gives you a clean and modern look with useful information in your prompt. - **`git` plugin**: Provides consistent, intuitive aliases and extra functions for common Git commands, improving workflow efficiency. ### Packages This flake includes some useful packages: - **`nix-zsh-completions`**: ZSH completions for Nix, NixOS, and NixOps. - **`asciinema`**: Terminal recording tool. - **`libnotify`**: Provides notifications for terminal events. - **`websocat`**: Used for streaming asciinema recordings in v2 format. - **`tldr`**: Community-driven simplified man pages for faster reference. - **`lsd`**: A next-generation `ls` command with improved features. - **`bat`**: A `cat` clone with syntax highlighting and Git integration. - **`eza`**: A modern, maintained replacement for `ls`. - **`trash-cli`**: Command line interface to the Freedesktop.org trashcan. ### Other - **`ex`**: A shell function to extract various archive formats. - Supported formats include `.tar.bz2`, `.zip`, `.rar`, `.gz`, and more.