75 lines
2.4 KiB
Markdown
75 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.
|
|
|