initial config
This commit is contained in:
80
modules/user/shell.nix
Normal file
80
modules/user/shell.nix
Normal file
@@ -0,0 +1,80 @@
|
||||
# ==========================================
|
||||
# SHELL CONFIGURATION (Zsh)
|
||||
# ==========================================
|
||||
# Omarchy-style: Oh-My-Zsh + modern CLI replacements
|
||||
# ==========================================
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Atuin — searchable shell history
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
auto_sync = false;
|
||||
search_mode = "fuzzy";
|
||||
};
|
||||
};
|
||||
|
||||
# Zsh
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
shellAliases = {
|
||||
# Rebuild shortcuts
|
||||
upd = "cd ~/nixos-config && sudo nixos-rebuild switch --flake . && echo 'Done!'";
|
||||
upd-test = "cd ~/nixos-config && sudo nixos-rebuild test --flake .";
|
||||
upd-build = "cd ~/nixos-config && nixos-rebuild dry-build --flake .";
|
||||
|
||||
# Modern replacements
|
||||
ls = "eza --icons";
|
||||
ll = "eza -la --icons";
|
||||
lt = "eza -la --icons --tree --level=2";
|
||||
cat = "bat --style=plain";
|
||||
find = "fd";
|
||||
|
||||
# Clipboard (Wayland)
|
||||
pbcopy = "wl-copy";
|
||||
pbpaste = "wl-paste";
|
||||
|
||||
# Docker
|
||||
lzd = "lazydocker";
|
||||
|
||||
# Git
|
||||
lg = "lazygit";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
theme = "gnzh";
|
||||
plugins = [
|
||||
"git"
|
||||
"docker"
|
||||
"docker-compose"
|
||||
"eza"
|
||||
"zoxide"
|
||||
"colored-man-pages"
|
||||
"fzf"
|
||||
];
|
||||
};
|
||||
|
||||
initContent = ''
|
||||
# Force Atuin up-arrow binding
|
||||
bindkey '^[[A' atuin-up-search
|
||||
bindkey '^[OA' atuin-up-search
|
||||
|
||||
# Yazi wrapper — cd on exit
|
||||
function y() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
builtin cd -- "$cwd"
|
||||
fi
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user