[zsh] Move into user config

This commit is contained in:
Tibo De Peuter 2023-10-19 22:24:04 +02:00
parent 74e1f9580a
commit 8a143f029d
8 changed files with 134 additions and 90 deletions

View file

@ -41,6 +41,7 @@
sharedOverlays = [
(import ./overlays/letter)
(import ./overlays/icosystem)
(import ./overlays/cmdtime)
];
hostDefaults = {

View file

@ -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";

View file

@ -1,5 +0,0 @@
{
imports = [
./zsh
];
}

View file

@ -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
'';
};
};
};
}

View file

@ -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";
};
};
};

View 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
'';
};
}