Add zsh configurations and other improvements to home-manager

This commit is contained in:
Marko Korhonen 2024-09-17 22:52:25 +03:00
parent c91f32342a
commit 3b27f47cc9

View file

@ -1,6 +1,64 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
home = {
username = "functionalhacker";
homeDirectory = "/home/functionalhacker";
stateVersion = "24.05";
packages = with pkgs; [
bat
cargo
fd
gcc
neovide
nerdfonts
nodejs
pass
ripgrep
tree-sitter
yarn
];
sessionVariables = {
# key timeout
KEYTIMEOUT = 1;
# prompt customization
PURE_PROMPT_SYMBOL = "λ";
PURE_PROMPT_VICMD_SYMBOL = "y";
# history settings
HISTFILE = "~/.zsh_history";
HISTSIZE = 10000;
SAVEHIST = 10000;
# fzf settings
FD_COMMAND = "fd -HLt";
FZF_DEFAULT_COMMAND = "fd -HLt f";
FZF_ALT_C_COMMAND = "fd -HLt d";
FZF_ALT_C_OPTS = "--preview 'eza -l {}'";
FZF_DEFAULT_OPTS = "-m --ansi --bind ctrl-a:toggle-all,ctrl-d:deselect-all,ctrl-t:toggle-all";
FZF_COMPLETION_TRIGGER = "**";
FZF_CTRL_T_COMMAND = "fd -HLt f --strip-cwd-prefix";
FZF_CTRL_T_OPTS = "--preview 'bat --color=always --style=numbers --line-range=:500 {}'";
# nvim ftw!
PAGER = "nvim -R +\"lua require 'pager'\"";
GIT_PAGER = "nvim -c 'set ft=git' -R +\"lua require 'pager'\"";
MANPAGER = "nvim +\"lua require 'pager'\" +Man!";
SYSTEMD_PAGER = "less";
MARKON_NIXOS = "cool";
};
# Just symlink neovim configuration for now.
# Declarative configuration coming soon™
file.".config/nvim".source =
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/git/dotfiles/home/.config/nvim";
};
programs = { programs = {
neovim = { neovim = {
enable = true; enable = true;
@ -9,6 +67,8 @@
zsh = { zsh = {
enable = true; enable = true;
syntaxHighlighting.enable = true;
enableCompletion = false;
zplug = { zplug = {
enable = true; enable = true;
plugins = [ plugins = [
@ -21,33 +81,20 @@
{ name = "zsh-users/zsh-history-substring-search"; } { name = "zsh-users/zsh-history-substring-search"; }
{ name = "wfxr/forgit"; } { name = "wfxr/forgit"; }
{ name = "zsh-users/zsh-completions"; } { name = "zsh-users/zsh-completions"; }
{ name = "zdharma-continuum/fast-syntax-highlighting"; }
{ name = "RobSis/zsh-completion-generator"; } { name = "RobSis/zsh-completion-generator"; }
]; ];
}; };
}; };
};
home = { fzf = {
username = "functionalhacker"; enable = true;
homeDirectory = "/home/functionalhacker"; enableZshIntegration = true;
stateVersion = "24.05"; };
file.".config/nvim".source = git = {
config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/git/dotfiles/home/.config/nvim"; enable = true;
userName = "Marko Korhonen";
packages = with pkgs; [ userEmail = "marko@korhonen.cc";
cargo };
fd
fzf
gcc
neovide
nerdfonts
nodejs
pass
ripgrep
tree-sitter
yarn
];
}; };
} }