zsh.nix/README.md
jiriks74 11d39e91b4
fix: Remove obsolete inputs, use more standard naming
from `home-managerModule` to `homeManagerModules.default`
2024-10-18 14:53:01 +02:00

74 lines
2.4 KiB
Markdown

# 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.