Migrate zsh and starship configs to home-manager

This commit is contained in:
Julian Mutter 2024-01-28 02:51:28 +01:00
parent 8dbb044f0b
commit 60ccfeaf39
2 changed files with 76 additions and 5 deletions

View File

@ -1,2 +1,2 @@
includes = [".dotter/laptop.toml"]
packages = ["emacs", "i3", "starship", "zsh"]
packages = ["emacs", "i3"]

View File

@ -24,6 +24,9 @@
# Further tools
lazygit
# TODO: migrate to module config
starship
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# (pkgs.writeShellScriptBin "my-hello" ''
@ -31,7 +34,75 @@
# '')
];
home.shellAliases = {
g = "git status";
fd = "fd -HI";
};
programs = {
direnv = {
enable = true;
enableZshIntegration = true;
};
starship = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
initExtra = ''
function go_dir_up() {
cd .. || return 1
}
function zle_go_dir_up() {
zle .kill-buffer
go_dir_up
zle .accept-line
}
fzf-z() {
dir=$(z | fzf --tiebreak=index --tac | sed -E 's/^[0-9]+[[:space:]]+//')
cd $dir
}
mkcd ()
{
mkdir -p -- "$1" && cd -P -- "$1"
}
zle -N zle_go_dir_up
bindkey "^[[1;3A" zle_go_dir_up
bindkey "^[[A" history-substring-search-up
bindkey "^[[B" history-substring-search-down
bindkey "^[[1;5C" forward-word
bindkey "^[[1;5D" backward-word
'';
zplug = {
enable = true;
plugins = [
# list of plugins: https://github.com/unixorn/awesome-zsh-plugins
{ name = "agkozak/zsh-z"; }
{ name = "mdumitru/last-working-dir"; }
{
name = "zsh-users/zsh-completions";
}
# make it behave like fish
{ name = "zsh-users/zsh-autosuggestions"; }
{ name = "zsh-users/zsh-history-substring-search"; }
{
name = "zsh-users/zsh-syntax-highlighting";
} # must be last sourced plugin
];
};
};
neovim = let
toLua = str: ''
lua << EOF
@ -98,21 +169,21 @@
source = ../alacritty;
recursive = true;
};
".config/starship.toml".source = ../starship/starship.toml;
};
# Home Manager can also manage your environment variables through
# 'home.sessionVariables'. If you don't want to manage your shell through Home
# Manager then you have to manually source 'hm-session-vars.sh' located at
# either
#
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
#
# or
#
# /etc/profiles/per-user/julian/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
# EDITOR = "emacs";
TERMINAL = "alacritty";
EDITOR = "nvim";
VISUAL = "nvim";
};
# Let Home Manager install and manage itself.