2020-03-13 19:41:55 +01:00
|
|
|
{ config, pkgs, ... }:
|
|
|
|
|
2020-03-14 01:38:34 +01:00
|
|
|
let
|
|
|
|
shellAliases = {
|
|
|
|
emacs = "emacsclient -c";
|
|
|
|
};
|
|
|
|
in
|
2020-03-13 19:41:55 +01:00
|
|
|
{
|
2020-03-24 00:57:11 +01:00
|
|
|
imports = [
|
|
|
|
./terminal.nix
|
|
|
|
];
|
|
|
|
|
2020-03-14 01:38:34 +01:00
|
|
|
programs.fzf = {
|
|
|
|
enable = true;
|
|
|
|
};
|
|
|
|
programs.starship = {
|
|
|
|
enable = true;
|
|
|
|
settings = {
|
|
|
|
add_newline = false;
|
|
|
|
line_break = {
|
|
|
|
disabled = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.zsh = {
|
|
|
|
enable = true;
|
|
|
|
enableAutosuggestions = true;
|
|
|
|
autocd = true;
|
|
|
|
defaultKeymap = "viins";
|
2020-03-14 04:13:43 +01:00
|
|
|
plugins = with pkgs; [
|
|
|
|
{
|
|
|
|
name = "first-tab-completion";
|
|
|
|
src = lib.cleanSource ./.;
|
|
|
|
file = "first-tab-completion.zsh";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "zsh-syntax-highlighting";
|
|
|
|
src = zsh-syntax-highlighting;
|
|
|
|
file = "share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
|
|
|
}
|
|
|
|
{
|
|
|
|
name = "zsh-history-substring-search";
|
|
|
|
src = zsh-history-substring-search;
|
|
|
|
file = "share/zsh-history-substring-search/zsh-history-substring-search.zsh";
|
|
|
|
}
|
|
|
|
];
|
2020-03-15 14:46:51 +01:00
|
|
|
initExtra = with pkgs; ''
|
|
|
|
export KEYTIMEOUT=1
|
|
|
|
|
2020-03-21 16:39:56 +01:00
|
|
|
ZSH_AUTOSUGGEST_USE_ASYNC=1
|
|
|
|
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
|
|
|
|
|
2020-03-14 03:00:16 +01:00
|
|
|
zmodload zsh/complist
|
2020-03-14 01:38:34 +01:00
|
|
|
zstyle ':completion:*' menu select
|
2020-03-14 03:00:16 +01:00
|
|
|
zstyle ':completion:*' insert-tab false
|
|
|
|
bindkey '^I' first-tab-completion
|
|
|
|
bindkey -M menuselect '\e' send-break
|
2020-03-15 14:46:51 +01:00
|
|
|
bindkey -M menuselect "$terminfo[kcbt]" reverse-menu-complete
|
|
|
|
bindkey -M menuselect 'h' vi-backward-char
|
|
|
|
bindkey -M menuselect 'k' vi-up-line-or-history
|
|
|
|
bindkey -M menuselect 'l' vi-forward-char
|
|
|
|
bindkey -M menuselect 'j' vi-down-line-or-history
|
2020-03-14 03:00:16 +01:00
|
|
|
|
2020-03-21 16:31:14 +01:00
|
|
|
setopt HIST_FIND_NO_DUPS
|
|
|
|
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
|
|
|
bindkey "$terminfo[kcud1]" history-substring-search-down
|
2020-03-14 01:38:34 +01:00
|
|
|
bindkey -M vicmd 'k' history-substring-search-up
|
|
|
|
bindkey -M vicmd 'j' history-substring-search-down
|
|
|
|
'';
|
|
|
|
history.extended = true;
|
|
|
|
inherit shellAliases;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.fish = {
|
|
|
|
enable = true;
|
|
|
|
shellInit = ''
|
|
|
|
fish_vi_key_bindings
|
|
|
|
'';
|
|
|
|
inherit shellAliases;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.bash = {
|
|
|
|
enable = true;
|
|
|
|
inherit shellAliases;
|
|
|
|
};
|
|
|
|
|
|
|
|
programs.direnv = {
|
|
|
|
enable = true;
|
|
|
|
stdlib = builtins.readFile ./.direnvrc;
|
|
|
|
};
|
|
|
|
|
|
|
|
home.file.".envrc".text = ''
|
|
|
|
dotenv
|
|
|
|
'';
|
2020-03-21 16:31:14 +01:00
|
|
|
}
|