[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…
	
	Add table
		Add a link
		
	
		Reference in a new issue