feat: add zsh + git features, redesign shell

This commit is contained in:
2026-04-12 21:27:51 +00:00
parent 6770bc76a2
commit 898751576d
6 changed files with 107 additions and 54 deletions

View File

@@ -1,25 +1,29 @@
{ {
nixos =
{ lib, ... }:
{
options.features.dev.enable = lib.mkEnableOption "development tools";
};
home = home =
{ pkgs, inputs, ... }: { pkgs, lib, inputs, osConfig, ... }:
let let
cfg = osConfig.features.dev;
packages = inputs.self.outputs.packages.${pkgs.stdenv.hostPlatform.system}; packages = inputs.self.outputs.packages.${pkgs.stdenv.hostPlatform.system};
in in
{ {
home.packages = [ config = lib.mkIf cfg.enable {
pkgs.git home.packages = [
packages.git-linearize pkgs.python3
packages.ggman pkgs.osc
pkgs.python3 pkgs.google-cloud-sdk
pkgs.osc pkgs.google-cloud-sql-proxy
pkgs.google-cloud-sdk
pkgs.google-cloud-sql-proxy
packages.ahab
pkgs.just
pkgs.presenterm
];
packages.ahab
pkgs.just
pkgs.presenterm
];
};
}; };
} }

23
features/git.nix Normal file
View File

@@ -0,0 +1,23 @@
{
nixos =
{ lib, ... }:
{
options.features.git.enable = lib.mkEnableOption "git";
};
home =
{ pkgs, lib, inputs, osConfig, ... }:
let
cfg = osConfig.features.git;
packages = inputs.self.outputs.packages.${pkgs.stdenv.hostPlatform.system};
in
{
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.git
packages.git-linearize
packages.ggman
];
};
};
}

View File

@@ -1,16 +0,0 @@
{
nixos = _: {
programs.zsh.enable = true;
environment.etc."zshenv".text = ''
export ZDOTDIR=$HOME/.config/zsh
'';
};
home =
{ pkgs, ... }:
{
home.packages = with pkgs; [
starship
];
};
}

View File

@@ -1,25 +1,28 @@
{ {
nixos = _: { nixos =
programs.zsh.enable = true; { lib, ... }:
environment.etc."zshenv".text = '' {
export ZDOTDIR=$HOME/.config/zsh options.features.shell.enable = lib.mkEnableOption "shell extras";
''; };
};
home = home =
{ pkgs, ... }: { pkgs, lib, osConfig, ... }:
let
cfg = osConfig.features.shell;
in
{ {
home.packages = with pkgs; [ config = lib.mkIf cfg.enable {
starship home.packages = with pkgs; [
fzf fzf
htop htop
jc jc
jq jq
openssl openssl
pv pv
ripgrep ripgrep
fd fd
tmux tmux
]; ];
};
}; };
} }

View File

@@ -10,15 +10,12 @@ in
}; };
nixos = nixos =
{ pkgs, ... }: { ... }:
{ {
programs.zsh.enable = true;
users.users.matej = { users.users.matej = {
uid = 1000; uid = 1000;
isNormalUser = true; isNormalUser = true;
home = "/home/matej"; home = "/home/matej";
shell = pkgs.zsh;
extraGroups = [ "wheel" ]; extraGroups = [ "wheel" ];
openssh.authorizedKeys.keys = sshKeys; openssh.authorizedKeys.keys = sshKeys;
}; };

42
features/zsh.nix Normal file
View File

@@ -0,0 +1,42 @@
{
nixos =
{ config, lib, pkgs, user, ... }:
let
cfg = config.features.zsh;
in
{
options.features.zsh = {
enable = lib.mkEnableOption "zsh";
loginShell.enable = lib.mkOption {
type = lib.types.bool;
default = true;
};
};
config = lib.mkIf cfg.enable (lib.mkMerge [
{
programs.zsh.enable = true;
environment.etc."zshenv".text = ''
export ZDOTDIR=$HOME/.config/zsh
'';
}
(lib.mkIf cfg.loginShell.enable {
users.users.${user}.shell = pkgs.zsh;
})
]);
};
home =
{ pkgs, lib, osConfig, ... }:
let
cfg = osConfig.features.zsh;
in
{
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.starship ];
};
};
}