137 lines
3.1 KiB
Nix
137 lines
3.1 KiB
Nix
{ pkgs, config, ... }: {
|
|
programs.alacritty = {
|
|
enable = true;
|
|
theme = "tokyo_night";
|
|
settings = {
|
|
window = {
|
|
padding = { x = 14; y = 14; };
|
|
};
|
|
font = {
|
|
normal.family = "JetBrainsMono Nerd Font";
|
|
size = 10;
|
|
};
|
|
keyboard.bindings = [
|
|
{ key = "Insert"; mods = "Shift"; action = "Paste"; }
|
|
{ key = "Insert"; mods = "Control"; action = "Copy"; }
|
|
];
|
|
};
|
|
};
|
|
|
|
programs.lf = { enable = true; };
|
|
|
|
programs.tmux = {
|
|
enable = true;
|
|
mouse = true;
|
|
keyMode = "vi";
|
|
shell = "${pkgs.zsh}/bin/zsh";
|
|
extraConfig = ''
|
|
set -g status-style bg=default
|
|
|
|
bind h select-pane -L
|
|
bind j select-pane -D
|
|
bind k select-pane -U
|
|
bind l select-pane -R
|
|
|
|
set -g default-terminal "tmux-256color"
|
|
set -ga terminal-overrides ",alacritty:Tc"
|
|
'';
|
|
};
|
|
|
|
programs.zsh = {
|
|
enable = true;
|
|
enableCompletion = true;
|
|
autosuggestion = {
|
|
enable = true;
|
|
};
|
|
syntaxHighlighting.enable = true;
|
|
dotDir = "${config.home.homeDirectory}/.config/zsh";
|
|
autocd = true;
|
|
|
|
initContent = ''
|
|
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
|
|
zstyle ':completion:*' menu select
|
|
|
|
fzf-project() {
|
|
selected=$(find ~/dev -mindepth 2 -maxdepth 2 | sed 's|/home/max/dev/||' | fzf --delimiter '/' --nth 2)
|
|
if [[ -n $selected ]]; then
|
|
cd ~/dev/$selected
|
|
zle reset-prompt
|
|
fi
|
|
zle redisplay
|
|
}
|
|
|
|
zle -N fzf-project
|
|
bindkey '^G' fzf-project
|
|
|
|
fzf-files() {
|
|
local selected
|
|
selected=$(${pkgs.ripgrep}/bin/rg --files | ${pkgs.fzf}/bin/fzf) || return
|
|
|
|
if [[ -n $selected ]]; then
|
|
BUFFER="v $selected"
|
|
print -s -- "$BUFFER"
|
|
zle accept-line
|
|
fi
|
|
}
|
|
|
|
zle -N fzf-files
|
|
bindkey '^V' fzf-files
|
|
|
|
open() {
|
|
xdg-open "$@" >/dev/null 2>&1 &
|
|
}
|
|
'';
|
|
|
|
envExtra = ''
|
|
export PER_DIRECTORY_HISTORY_TOGGLE="^H"
|
|
'';
|
|
|
|
shellAliases = {
|
|
ll = "ls -alh";
|
|
v = "nvim";
|
|
vi = "nvim";
|
|
vim = "nvim";
|
|
|
|
p = "pnpm";
|
|
g = "pnpm run build && ~/dev/personal/genesis/packages/genesis/dist/bin.js";
|
|
|
|
ns = "nix-shell --run zsh -p";
|
|
|
|
tt = "tt -notheme -n 10";
|
|
|
|
bible = "nvim ~/bible.txt -R";
|
|
notes = "nvim ~/notes";
|
|
home = "sudo nvim /etc/nixos/home.nix";
|
|
wttr = "curl wttr.in/Clemson";
|
|
|
|
docx-to-pdf = "libreoffice --headless --convert-to pdf";
|
|
};
|
|
|
|
plugins = [
|
|
{
|
|
name = "vi-mode";
|
|
src = pkgs.zsh-vi-mode;
|
|
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
|
}
|
|
{
|
|
name = "per-directory-history";
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "jimhester";
|
|
repo = "per-directory-history";
|
|
rev = "95f06973e9f2ff0ff75f3cebd0a2ee5485e27834";
|
|
sha256 = "sha256-EV9QPBndwAWzdOcghDXrIIgP0oagVMOTyXzoyt8tXRo=";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
silent = true;
|
|
};
|
|
|
|
programs.starship = { enable = true; };
|
|
}
|