[zsh] Move into user config
This commit is contained in:
parent
74e1f9580a
commit
8a143f029d
8 changed files with 134 additions and 90 deletions
|
@ -41,6 +41,7 @@
|
||||||
sharedOverlays = [
|
sharedOverlays = [
|
||||||
(import ./overlays/letter)
|
(import ./overlays/letter)
|
||||||
(import ./overlays/icosystem)
|
(import ./overlays/icosystem)
|
||||||
|
(import ./overlays/cmdtime)
|
||||||
];
|
];
|
||||||
|
|
||||||
hostDefaults = {
|
hostDefaults = {
|
||||||
|
|
|
@ -46,10 +46,15 @@
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
|
vim
|
||||||
wget
|
wget
|
||||||
zenith-nvidia
|
zenith-nvidia
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zsh.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
networking.hostName = "Tibo-NixFat";
|
networking.hostName = "Tibo-NixFat";
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./zsh
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,77 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
users.users.tdpeuter.shell = pkgs.zsh;
|
|
||||||
|
|
||||||
home-manager.users.tdpeuter = { pkgs, ... }: {
|
|
||||||
home = {
|
|
||||||
packages = with pkgs; [
|
|
||||||
font-awesome
|
|
||||||
fzf
|
|
||||||
];
|
|
||||||
|
|
||||||
file = {
|
|
||||||
".oh-my-zsh".source = ../../../../stow/zsh/.oh-my-zsh;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableAutosuggestions = true;
|
|
||||||
enableSyntaxHighlighting = true;
|
|
||||||
history = {
|
|
||||||
expireDuplicatesFirst = true;
|
|
||||||
extended = true;
|
|
||||||
};
|
|
||||||
initExtra = ''
|
|
||||||
eval "$(direnv hook zsh)"
|
|
||||||
|
|
||||||
# Add fzf
|
|
||||||
if [ -x "$(command -v fzf-share)" ]; then
|
|
||||||
source "$(fzf-share)/key-bindings.zsh"
|
|
||||||
source "$(fzf-share)/completion.zsh"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
custom = "$HOME/.oh-my-zsh";
|
|
||||||
plugins = [
|
|
||||||
"dirhistory"
|
|
||||||
"git"
|
|
||||||
"screen"
|
|
||||||
];
|
|
||||||
theme = "mrfortem";
|
|
||||||
};
|
|
||||||
plugins = [
|
|
||||||
{
|
|
||||||
name = "cmdtime";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "tom-auger";
|
|
||||||
repo = "cmdtime";
|
|
||||||
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
|
|
||||||
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
shellAliases = {
|
|
||||||
cp = "cp -i"; # Confirm before overwriting something
|
|
||||||
df = "df -h";
|
|
||||||
free = "free -m";
|
|
||||||
ll = "ls -la";
|
|
||||||
np = "nano -w PKGBUILD";
|
|
||||||
more = "less";
|
|
||||||
hgrep = "history | grep";
|
|
||||||
|
|
||||||
gs = "git status";
|
|
||||||
|
|
||||||
update = ''
|
|
||||||
pushd ~/projects/sisyphus/nixos
|
|
||||||
nix flake update
|
|
||||||
sudo nixos-rebuild switch --flake .# --show-trace
|
|
||||||
popd
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -18,9 +18,11 @@ in {
|
||||||
config.users.groups.wheel.name
|
config.users.groups.wheel.name
|
||||||
];
|
];
|
||||||
initialPassword = "ChangeMe";
|
initialPassword = "ChangeMe";
|
||||||
|
shell = pkgs.zsh;
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [
|
fonts.fonts = with pkgs; [
|
||||||
|
font-awesome # Dependency of zsh
|
||||||
font-awesome_5 # Dependency of Vifm config
|
font-awesome_5 # Dependency of Vifm config
|
||||||
noto-fonts # Dependency of Zellij config
|
noto-fonts # Dependency of Zellij config
|
||||||
noto-fonts-cjk # Dependency of Zellij config
|
noto-fonts-cjk # Dependency of Zellij config
|
||||||
|
@ -38,7 +40,9 @@ in {
|
||||||
# and the configuration files will be put in place for you.
|
# and the configuration files will be put in place for you.
|
||||||
packages = (with pkgs; [
|
packages = (with pkgs; [
|
||||||
chafa # Terminal image viewer
|
chafa # Terminal image viewer
|
||||||
|
cmdtime # Zsh plugin
|
||||||
duf # Df alternative
|
duf # Df alternative
|
||||||
|
fzf
|
||||||
glow # Terminal Markdown renderer
|
glow # Terminal Markdown renderer
|
||||||
jellyfin-media-player
|
jellyfin-media-player
|
||||||
kitty
|
kitty
|
||||||
|
@ -53,6 +57,9 @@ in {
|
||||||
vifm # File manager
|
vifm # File manager
|
||||||
zathura # PDF viewer
|
zathura # PDF viewer
|
||||||
zellij # Tmux + screen alternative
|
zellij # Tmux + screen alternative
|
||||||
|
zsh
|
||||||
|
zsh-autosuggestions
|
||||||
|
zsh-syntax-highlighting
|
||||||
]) ++ (with pkgs-unstable; [
|
]) ++ (with pkgs-unstable; [
|
||||||
mpv
|
mpv
|
||||||
]) ++ (with pkgs.vimPlugins; [
|
]) ++ (with pkgs.vimPlugins; [
|
||||||
|
@ -65,37 +72,65 @@ in {
|
||||||
".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) {
|
".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) {
|
||||||
source = ../../../../stow/alacritty/.config/alacritty;
|
source = ../../../../stow/alacritty/.config/alacritty;
|
||||||
};
|
};
|
||||||
".config/git" = lib.mkIf (builtins.elem pkgs.git installedPkgs) {
|
".config/git" = {
|
||||||
|
enable = (builtins.elem pkgs.git installedPkgs);
|
||||||
source = ../../../../stow/git/.config/git;
|
source = ../../../../stow/git/.config/git;
|
||||||
|
recursive = true;
|
||||||
};
|
};
|
||||||
".config/kitty" = {
|
".config/kitty" = {
|
||||||
enable = builtins.elem pkgs.kitty installedPkgs;
|
enable = builtins.elem pkgs.kitty installedPkgs;
|
||||||
source = ../../../../stow/kitty/.config/kitty;
|
source = ../../../../stow/kitty/.config/kitty;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
".config/mpv" = lib.mkIf (builtins.elem pkgs-unstable.mpv installedPkgs) {
|
".config/mpv" = {
|
||||||
|
enable = (builtins.elem pkgs-unstable.mpv installedPkgs);
|
||||||
source = ../../../../stow/mpv/.config/mpv;
|
source = ../../../../stow/mpv/.config/mpv;
|
||||||
};
|
};
|
||||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
||||||
source = ../../../../stow/ssh/.ssh/config;
|
source = ../../../../stow/ssh/.ssh/config;
|
||||||
};
|
};
|
||||||
".config/vifm" = lib.mkIf (builtins.elem pkgs.vifm installedPkgs) {
|
".config/vifm" = {
|
||||||
|
enable = (builtins.elem pkgs.vifm installedPkgs);
|
||||||
source = ../../../../stow/vifm/.config/vifm;
|
source = ../../../../stow/vifm/.config/vifm;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
".config/zellij" = lib.mkIf (builtins.elem pkgs.zellij installedPkgs) {
|
".config/zellij" = {
|
||||||
|
enable = (builtins.elem pkgs.zellij installedPkgs);
|
||||||
source = ../../../../stow/zellij/.config/zellij;
|
source = ../../../../stow/zellij/.config/zellij;
|
||||||
};
|
};
|
||||||
".vim" = lib.mkIf (builtins.elem pkgs.vim installedPkgs) {
|
".oh-my-zsh" = {
|
||||||
|
enable = (builtins.elem pkgs.zsh installedPkgs);
|
||||||
|
source = ../../../../stow/zsh/.oh-my-zsh;
|
||||||
|
};
|
||||||
|
".vim" = {
|
||||||
|
enable = (builtins.elem pkgs.vim installedPkgs);
|
||||||
source = ../../../../stow/vim/.vim;
|
source = ../../../../stow/vim/.vim;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
".vim/autoload/plug.vim" = lib.mkIf (builtins.elem pkgs.vim installedPkgs) {
|
".vim/autoload/plug.vim" = {
|
||||||
|
enable = (builtins.elem pkgs.vim installedPkgs);
|
||||||
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
|
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
|
||||||
};
|
};
|
||||||
".vimrc" = lib.mkIf (builtins.elem pkgs.vim installedPkgs) {
|
".vimrc" = {
|
||||||
|
enable = (builtins.elem pkgs.vim installedPkgs);
|
||||||
source = ../../../../stow/vim/.vimrc;
|
source = ../../../../stow/vim/.vimrc;
|
||||||
};
|
};
|
||||||
|
".zshrc" = {
|
||||||
|
enable = (config.users.users.tdpeuter.shell == pkgs.zsh);
|
||||||
|
source = ../../../../stow/zsh/.zshrc;
|
||||||
|
};
|
||||||
|
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
|
||||||
|
enable = (builtins.elem pkgs.cmdtime installedPkgs);
|
||||||
|
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
|
||||||
|
};
|
||||||
|
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
|
||||||
|
enable = (builtins.elem pkgs.zsh-autosuggestions installedPkgs);
|
||||||
|
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
|
||||||
|
};
|
||||||
|
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
|
||||||
|
enable = (builtins.elem pkgs.zsh-syntax-highlighting installedPkgs);
|
||||||
|
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
17
nixos/overlays/cmdtime/default.nix
Normal file
17
nixos/overlays/cmdtime/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
final: prev: {
|
||||||
|
cmdtime = final.stdenv.mkDerivation {
|
||||||
|
name = "cmdtime";
|
||||||
|
version = "v0.0.0";
|
||||||
|
src = final.fetchFromGitHub {
|
||||||
|
owner = "tom-auger";
|
||||||
|
repo = "cmdtime";
|
||||||
|
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
|
||||||
|
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/cmdtime
|
||||||
|
cp $src/cmdtime.plugin.zsh $out/share/cmdtime.plugin.zsh
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# ~/.oh-my-zsh/themes/mrfortem.zsh-theme
|
# ~/.oh-my-zsh/themes/tdpeuter.zsh-theme
|
||||||
# Stolen from gentoo-theme and gianni
|
# Stolen from gentoo-theme and gianni
|
||||||
#
|
#
|
||||||
|
|
68
stow/zsh/.zshrc
Normal file
68
stow/zsh/.zshrc
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
typeset -U path cdpath fpath manpath
|
||||||
|
|
||||||
|
path+="$HOME/.zsh/plugins/cmdtime"
|
||||||
|
fpath+="$HOME/.zsh/plugins/cmdtime"
|
||||||
|
|
||||||
|
plugins=(dirhistory git screen)
|
||||||
|
ZSH_CUSTOM="$HOME/.oh-my-zsh"
|
||||||
|
ZSH_THEME="tdpeuter"
|
||||||
|
# source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
|
if [[ -f "$HOME/.zsh/plugins/cmdtime/cmdtime.plugin.zsh" ]]; then
|
||||||
|
source "$HOME/.zsh/plugins/cmdtime/cmdtime.plugin.zsh"
|
||||||
|
fi
|
||||||
|
if [[ -f "$HOME/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" ]]; then
|
||||||
|
source "$HOME/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$HOME/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" ]]; then
|
||||||
|
source "$HOME/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# History options should be set in .zshrc and after oh-my-zsh sourcing.
|
||||||
|
# See https://github.com/nix-community/home-manager/issues/177.
|
||||||
|
HISTSIZE="10000"
|
||||||
|
SAVEHIST="10000"
|
||||||
|
|
||||||
|
HISTFILE="$HOME/.zsh_history"
|
||||||
|
mkdir -p "$(dirname "$HISTFILE")"
|
||||||
|
|
||||||
|
setopt HIST_FCNTL_LOCK
|
||||||
|
setopt HIST_IGNORE_DUPS
|
||||||
|
setopt HIST_IGNORE_SPACE
|
||||||
|
setopt HIST_EXPIRE_DUPS_FIRST
|
||||||
|
setopt SHARE_HISTORY
|
||||||
|
setopt EXTENDED_HISTORY
|
||||||
|
|
||||||
|
# Add direnv
|
||||||
|
if [ -x "$(command -v direnv)" ]; then
|
||||||
|
eval "$(direnv hook zsh)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Add fzf
|
||||||
|
if [ -x "$(command -v fzf-share)" ]; then
|
||||||
|
source "$(fzf-share)/key-bindings.zsh"
|
||||||
|
source "$(fzf-share)/completion.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Aliases
|
||||||
|
alias cp='cp -i'
|
||||||
|
alias df='df -h'
|
||||||
|
alias free='free -m'
|
||||||
|
alias gs='git status'
|
||||||
|
alias hgrep='history | grep'
|
||||||
|
alias ll='ls -la'
|
||||||
|
alias more='less'
|
||||||
|
alias np='nano -w PKGBUILD'
|
||||||
|
alias update='pushd ~/projects/sisyphus/nixos
|
||||||
|
nix flake update
|
||||||
|
sudo nixos-rebuild switch --flake .# --show-trace
|
||||||
|
popd
|
||||||
|
'
|
||||||
|
|
||||||
|
# -- Barrier --
|
||||||
|
|
||||||
|
for profile in ${(z)NIX_PROFILES}; do
|
||||||
|
fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in a new issue