Files
nixos/Droidnix/generated/modules/terminals/zsh.nix
T
2026-03-22 14:51:41 +00:00

45 lines
1.2 KiB
Nix

{ lib, pkgs, config, ... }:
let
username = config.users.users.defaultUser or "henrov";
homeDir = "/home/${username}";
programName = "zsh";
programAssets = ../../../assets/system/conf/${programName};
zshInitFile = "${programAssets}/zsh.conf";
in
{
#################################
# SYSTEM-WIDE INSTALLATION ONLY #
#################################
# Install Zsh and Oh-My-Zsh globally
environment.systemPackages = [
pkgs.zsh
pkgs.oh-my-zsh # this is the Nixpkgs oh-my-zsh package
];
#######################################
# USER-SPECIFIC CONFIGURATION (henrov)#
#######################################
# Copy a pre-built .zshrc into henrov's home
environment.etc."zshrc-${username}".text = ''
# Point Zsh to the Oh-My-Zsh installation in /run/current-system/sw
export ZSH=${pkgs.oh-my-zsh}/share/oh-my-zsh
ZSH_THEME="catppuccin-mocha"
plugins=(git docker direnv zsh-completions)
# Load oh-my-zsh
source $ZSH/oh-my-zsh.sh
# Inject custom zsh.conf
${builtins.readFile zshInitFile}
'';
# Symlink it to user's ~/.zshrc
users.users."${username}".shell = pkgs.zsh;
users.users."${username}".extraHomeFiles = {
".zshrc" = "/etc/zshrc-${username}";
};
}