[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 = [
|
||||
(import ./overlays/letter)
|
||||
(import ./overlays/icosystem)
|
||||
(import ./overlays/cmdtime)
|
||||
];
|
||||
|
||||
hostDefaults = {
|
||||
|
|
|
@ -46,10 +46,15 @@
|
|||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
vim
|
||||
wget
|
||||
zenith-nvidia
|
||||
];
|
||||
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
|
||||
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
|
||||
];
|
||||
initialPassword = "ChangeMe";
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
fonts.fonts = with pkgs; [
|
||||
font-awesome # Dependency of zsh
|
||||
font-awesome_5 # Dependency of Vifm config
|
||||
noto-fonts # 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.
|
||||
packages = (with pkgs; [
|
||||
chafa # Terminal image viewer
|
||||
cmdtime # Zsh plugin
|
||||
duf # Df alternative
|
||||
fzf
|
||||
glow # Terminal Markdown renderer
|
||||
jellyfin-media-player
|
||||
kitty
|
||||
|
@ -53,6 +57,9 @@ in {
|
|||
vifm # File manager
|
||||
zathura # PDF viewer
|
||||
zellij # Tmux + screen alternative
|
||||
zsh
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
]) ++ (with pkgs-unstable; [
|
||||
mpv
|
||||
]) ++ (with pkgs.vimPlugins; [
|
||||
|
@ -65,37 +72,65 @@ in {
|
|||
".config/alacritty" = lib.mkIf (builtins.elem pkgs.alacritty installedPkgs) {
|
||||
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;
|
||||
recursive = true;
|
||||
};
|
||||
".config/kitty" = {
|
||||
enable = builtins.elem pkgs.kitty installedPkgs;
|
||||
source = ../../../../stow/kitty/.config/kitty;
|
||||
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;
|
||||
};
|
||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
||||
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;
|
||||
recursive = true;
|
||||
};
|
||||
".config/zellij" = lib.mkIf (builtins.elem pkgs.zellij installedPkgs) {
|
||||
".config/zellij" = {
|
||||
enable = (builtins.elem pkgs.zellij installedPkgs);
|
||||
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;
|
||||
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";
|
||||
};
|
||||
".vimrc" = lib.mkIf (builtins.elem pkgs.vim installedPkgs) {
|
||||
".vimrc" = {
|
||||
enable = (builtins.elem pkgs.vim installedPkgs);
|
||||
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
|
||||
#
|
||||
|
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