Use zsh-histdb package.
This commit is contained in:
parent
5e424b35e4
commit
64d495afa5
54
nix/configuration/flake.lock
generated
54
nix/configuration/flake.lock
generated
@ -76,6 +76,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@ -259,7 +277,8 @@
|
|||||||
"lanzaboote": "lanzaboote",
|
"lanzaboote": "lanzaboote",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-b93b4e9b5": "nixpkgs-b93b4e9b5",
|
"nixpkgs-b93b4e9b5": "nixpkgs-b93b4e9b5",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
|
"zsh-histdb": "zsh-histdb"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
@ -301,6 +320,39 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"zsh-histdb": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1,
|
||||||
|
"narHash": "sha256-vPz7cJzdLAWFWQQ/KSXGB+HsUfO8CnPX4AO4zjf9llo=",
|
||||||
|
"path": "flakes/zsh-histdb",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "flakes/zsh-histdb",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
@ -38,6 +38,12 @@
|
|||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/v0.4.1";
|
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||||
|
|
||||||
|
# Optional but recommended to limit the size of your system closure.
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
zsh-histdb = {
|
||||||
|
url = "path:flakes/zsh-histdb";
|
||||||
|
|
||||||
# Optional but recommended to limit the size of your system closure.
|
# Optional but recommended to limit the size of your system closure.
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
@ -52,6 +58,7 @@
|
|||||||
impermanence,
|
impermanence,
|
||||||
home-manager,
|
home-manager,
|
||||||
lanzaboote,
|
lanzaboote,
|
||||||
|
zsh-histdb,
|
||||||
...
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
let
|
let
|
||||||
@ -73,6 +80,7 @@
|
|||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
}
|
}
|
||||||
|
{ nixpkgs.overlays = [ zsh-histdb.overlays.default ]; }
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
@ -5,13 +5,94 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
zshrc = pkgs.writeTextFile {
|
||||||
|
name = ".zshrc";
|
||||||
|
text = ''
|
||||||
|
# Lines configured by zsh-newuser-install
|
||||||
|
HISTFILE=~/.zhistory
|
||||||
|
HISTSIZE=100000
|
||||||
|
SAVEHIST=100000
|
||||||
|
setopt appendhistory notify
|
||||||
|
unsetopt beep
|
||||||
|
bindkey -e
|
||||||
|
# End of lines configured by zsh-newuser-install
|
||||||
|
# The following lines were added by compinstall
|
||||||
|
#
|
||||||
|
|
||||||
|
# Use menu complete immediately instead of after the first tab
|
||||||
|
setopt MENU_COMPLETE
|
||||||
|
|
||||||
|
zstyle :compinstall filename "$HOME/.zshrc"
|
||||||
|
|
||||||
|
autoload -Uz compinit
|
||||||
|
compinit
|
||||||
|
# End of lines added by compinstall
|
||||||
|
|
||||||
|
# Enable the 2d menu for tab completion
|
||||||
|
zstyle ':completion:*' menu select
|
||||||
|
|
||||||
|
autoload colors zsh/terminfo
|
||||||
|
if [[ "$terminfo[colors]" -ge 8 ]]; then
|
||||||
|
colors
|
||||||
|
fi
|
||||||
|
for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
|
||||||
|
eval PR_$color='%{$terminfo[bold]$fg[''${(L)color}]%}'
|
||||||
|
eval PR_LIGHT_$color='%{$fg[''${(L)color}]%}'
|
||||||
|
(( count = $count + 1 ))
|
||||||
|
done
|
||||||
|
PR_NO_COLOR="%{$terminfo[sgr0]%}"
|
||||||
|
PS1="[$PR_BLUE%n$PR_WHITE@$PR_GREEN%U%m%u$PR_NO_COLOR:$PR_RED%2c$PR_NO_COLOR]%(!.#.$) "
|
||||||
|
|
||||||
|
source ${pkgs.zsh-histdb}/share/zsh/plugins/zsh-histdb/sqlite-history.zsh
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
|
||||||
|
source ${pkgs.zsh-histdb}/share/zsh/plugins/zsh-histdb/histdb-interactive.zsh
|
||||||
|
bindkey '^r' _histdb-isearch
|
||||||
|
|
||||||
|
# TODO: Consider moving to /etc/profile.d
|
||||||
|
#while read file; do
|
||||||
|
# if [ -e "$file" ]; then
|
||||||
|
# source "$file"
|
||||||
|
# fi
|
||||||
|
#done <<<"$(find $HOME/.config/ansible_deploy/zshrc -maxdepth 1 -type f -name '*.zsh' -print)"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [ ];
|
imports = [ ];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
zsh
|
zsh
|
||||||
|
sqlite # TODO: can this be pulled into zsh-histdb automatically?
|
||||||
];
|
];
|
||||||
|
|
||||||
users.users.talexander.shell = pkgs.zsh;
|
users.users.talexander.shell = pkgs.zsh;
|
||||||
environment.shells = with pkgs; [ zsh ];
|
environment.shells = with pkgs; [ zsh ];
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.talexander =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home.file.".zshrc" = {
|
||||||
|
source = "${zshrc}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.persistence."/persist" = lib.mkIf (!config.me.buildingIso) {
|
||||||
|
hideMounts = true;
|
||||||
|
users.talexander = {
|
||||||
|
directories = [
|
||||||
|
{
|
||||||
|
directory = ".histdb";
|
||||||
|
user = "talexander";
|
||||||
|
group = "talexander";
|
||||||
|
mode = "0700";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user