flake: clean up modules

This commit is contained in:
Infinidoge 2024-10-22 11:34:51 -04:00
parent 28f18c9a99
commit 8cd8b3a3f9
Signed by: Infinidoge
SSH key fingerprint: SHA256:oAMyvotlNFraMmZmr+p6AxnNfW/GioTs1pOn3V4tQ7A
64 changed files with 258 additions and 273 deletions

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ ... }:
let
uuid = uuid: "/dev/disk/by-uuid/${uuid}";

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ ... }:
{
boot.initrd.availableKernelModules = [ "nvme" "ahci" "xhci_pci" "usbhid" "sd_mod" ];

View file

@ -1,4 +1,4 @@
{ config, private, ... }:
{ private, ... }:
{
services.factorio = {

View file

@ -1,7 +1,7 @@
{ config, pkgs, common, ... }:
{ config, common, pkgs, ... }:
let
cfg = config.services.forgejo;
domain = config.common.subdomain "git";
domain = common.subdomain "git";
in
{
persist.directories = [ "/var/lib/private/gitea-runner/" ];
@ -25,10 +25,10 @@ in
settings = {
server = {
ROOT_URL = "https://${domain}/";
SSH_DOMAIN = config.common.domain;
SSH_DOMAIN = common.domain;
LANDING_PAGE = "explore";
};
mailer = with config.common.email; {
mailer = with common.email; {
ENABLED = true;
PROTOCOL = "smtps";
SMTP_ADDR = smtp.address;
@ -49,7 +49,7 @@ in
service = {
DISABLE_REGISTRATION = true;
OFFLINE_MODE = false;
NO_REPLY_ADDRESS = config.common.email.outgoing;
NO_REPLY_ADDRESS = common.email.outgoing;
};
indexer = {
REPO_INDEXER_ENABLED = true;
@ -96,7 +96,7 @@ in
};
};
services.nginx.virtualHosts.${domain} = config.common.nginx.ssl // {
services.nginx.virtualHosts.${domain} = common.nginx.ssl // {
locations."/" = {
proxyPass = "http://${cfg.settings.server.DOMAIN}:${toString cfg.settings.server.HTTP_PORT}";
extraConfig = ''

View file

@ -1,10 +1,10 @@
{ config, ... }:
{ config, common, ... }:
let
domain = "freshrss.inx.moe";
in
{
services.nginx.virtualHosts.${domain} = config.common.nginx.ssl;
services.nginx.virtualHosts.${domain} = common.nginx.ssl;
services.freshrss = {
enable = true;

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ lib, modulesPath, ... }:
{
imports = [

View file

@ -1,11 +1,11 @@
{ config, pkgs, lib, ... }:
{ config, common, ... }:
let
domain = config.common.subdomain "hydra";
domain = common.subdomain "hydra";
in
{
services.nginx.virtualHosts.${domain} = config.common.nginx.ssl // {
services.nginx.virtualHosts.${domain} = common.nginx.ssl // {
locations."/" = {
proxyPass = "http://localhost:${builtins.toString config.services.hydra.port}";
proxyPass = "http://localhost:${toString config.services.hydra.port}";
};
};
@ -14,13 +14,13 @@ in
port = 3333;
baseDir = "/srv/hydra";
hydraURL = "https://${domain}";
notificationSender = config.common.email.withSubaddress "hydra";
smtpHost = config.common.email.smtp.address;
notificationSender = common.email.withSubaddress "hydra";
smtpHost = common.email.smtp.address;
useSubstitutes = true;
environmentFile = config.secrets.hydra;
extraEnv = {
EMAIL_SENDER_TRANSPORT_sasl_username = config.common.email.outgoing;
EMAIL_SENDER_TRANSPORT_port = builtins.toString config.common.email.smtp.SSLTLS;
EMAIL_SENDER_TRANSPORT_sasl_username = common.email.outgoing;
EMAIL_SENDER_TRANSPORT_port = toString common.email.smtp.SSLTLS;
EMAIL_SENDER_TRANSPORT_ssl = "ssl";
};
extraConfig = ''

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, common, ... }:
let
address = "127.0.0.1";
port = 8096;
@ -13,7 +13,7 @@ let
'';
in
{
services.nginx.virtualHosts."jellyfin.inx.moe" = config.common.nginx.ssl // {
services.nginx.virtualHosts."jellyfin.inx.moe" = common.nginx.ssl // {
extraConfig = ''
client_max_body_size 20M;
'';

View file

@ -1,12 +1,12 @@
# Unused
{ config, pkgs, lib, ... }:
{ config, common, ... }:
let
cfg = config.services.jitsi-meet;
in
{
services.jitsi-meet = {
enable = true;
hostName = config.common.subdomain "meet";
hostName = common.subdomain "meet";
config = {
prejoinPageEnabled = true;
disableModeratorIndicator = true;

View file

@ -1,5 +1,7 @@
{ config, pkgs, ... }:
{ config, common, pkgs, ... }:
let
cfg = config.services.jupyter;
mkPythonKernel = displayName: env: {
inherit displayName;
language = "python";
@ -53,10 +55,10 @@ in
})
];
services.nginx.virtualHosts."jupyter.internal.inx.moe" = config.common.nginx.ssl // {
services.nginx.virtualHosts."jupyter.internal.inx.moe" = common.nginx.ssl // {
listenAddresses = [ "100.101.102.124" ];
locations."/" = {
proxyPass = "http://localhost:${toString config.services.jupyter.port}";
proxyPass = "http://localhost:${toString cfg.port}";
proxyWebsockets = true;
};
};

View file

@ -1,5 +1,6 @@
{ pkgs, config, lib, ... }:
{ config, pkgs, ... }:
let
cfg = config.services.postgresql;
directory = "/srv/postgresql";
in
{
@ -8,6 +9,6 @@ in
services.postgresql = {
enable = true;
package = pkgs.postgresql_16;
dataDir = "${directory}/${config.services.postgresql.package.psqlSchema}";
dataDir = "${directory}/${cfg.package.psqlSchema}";
};
}

View file

@ -1,31 +1,38 @@
{ pkgs, config, ... }:
{ config, pkgs, ... }:
let
cfg = config.services.openssh;
in
{
users.users.incoming = {
description = "User for incoming files with a chroot jail";
isSystemUser = true;
group = "incoming";
};
users.groups.incoming = { };
users.users = {
incoming = {
description = "User for incoming files with a chroot jail";
isSystemUser = true;
group = "incoming";
};
users.users.jump = {
description = "User for ssh jumping";
isSystemUser = true;
group = "nogroup";
};
jump = {
description = "User for ssh jumping";
isSystemUser = true;
group = "nogroup";
};
users.users.neofetch = {
description = "SSH Neofetch";
isSystemUser = true;
group = "nogroup";
hashedPassword = "$y$j9T$pixfaOyCz4Sbf8KE8AGVk.$TQKPzMvPan8qrO08kqjuJZO4LlUY7Yjxho0wIbcsmV3"; # :)
shell = pkgs.bash;
};
neofetch = {
description = "SSH Neofetch";
isSystemUser = true;
group = "nogroup";
hashedPassword = "$y$j9T$pixfaOyCz4Sbf8KE8AGVk.$TQKPzMvPan8qrO08kqjuJZO4LlUY7Yjxho0wIbcsmV3"; # :)
shell = pkgs.bash;
};
users.users.guest = {
description = "Guest shell account for temporary access";
group = "users";
isNormalUser = true;
shell = pkgs.bash;
guest = {
description = "Guest shell account for temporary access";
group = "users";
isNormalUser = true;
shell = pkgs.bash;
};
};
users.groups = {
incoming = { };
};
security.pam.services.sshd.allowNullPassword = true;
@ -41,7 +48,7 @@
Match user incoming
AuthorizedKeysFile /etc/ssh/authorized_keys.d/infinidoge /etc/ssh/authorized_keys.d/%u
ChrootDirectory /srv/external
ForceCommand ${config.services.openssh.sftpServerExecutable} -d incoming -u 007
ForceCommand ${cfg.sftpServerExecutable} -d incoming -u 007
X11Forwarding no
AllowTcpForwarding no
KbdInteractiveAuthentication no

View file

@ -1,7 +1,7 @@
{ config, pkgs, ... }:
{ config, common, pkgs, ... }:
{
services.nginx.virtualHosts."thelounge.inx.moe" = config.common.nginx.ssl // {
services.nginx.virtualHosts."thelounge.inx.moe" = common.nginx.ssl // {
locations."/" = {
proxyPass = "http://localhost:${toString config.services.thelounge.port}";
};

View file

@ -1,11 +1,11 @@
{ config, lib, pkgs, ... }:
{ config, common, lib, pkgs, ... }:
let
domain = config.common.subdomain "bitwarden";
domain = common.subdomain "bitwarden";
in
{
persist.directories = [ config.services.vaultwarden.dataDir ];
services.nginx.virtualHosts.${domain} = config.common.nginx.ssl // {
services.nginx.virtualHosts.${domain} = common.nginx.ssl // {
locations."/" = {
proxyPass = "http://127.0.0.1:${toString config.services.vaultwarden.config.ROCKET_PORT}";
};
@ -15,7 +15,7 @@ in
enable = true;
environmentFile = config.secrets."vaultwarden";
dataDir = "/srv/vaultwarden";
config = with config.common.email; {
config = with common.email; {
DOMAIN = "https://${domain}";
SIGNUPS_ALLOWED = false;

View file

@ -1,6 +1,6 @@
{ config, pkgs, lib, ... }:
{ config, common, pkgs, lib, ... }:
let
inherit (config.common.nginx) ssl ssl-optional;
inherit (common.nginx) ssl ssl-optional;
tryFiles = "$uri $uri.html $uri/ =404";
websiteConfig = ''

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ lib, ... }:
{
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, private, ... }: {
{ ... }: {
imports = [
./hardware-configuration.nix
./filesystems.nix

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ ... }:
let
uuid = uuid: "/dev/disk/by-uuid/${uuid}";
main = uuid "9d4bf2d8-f139-42e7-937a-541a7870d806";

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ lib, ... }:
{
boot.initrd.availableKernelModules = [ "ahci" "nvme" "sd_mod" "usb_storage" "usbhid" "xhci_pci" ];

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: {
{ pkgs, ... }: {
imports = [
./hardware-configuration.nix
./filesystems.nix

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ ... }:
let
uuid = uuid: "/dev/disk/by-uuid/${uuid}";

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ lib, modulesPath, ... }:
{
imports = [

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, private, ... }: {
{ ... }: {
imports = [
./hardware-configuration.nix
./filesystems.nix

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ lib, ... }:
let
uuid = uuid: "/dev/disk/by-uuid/${uuid}";

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }:
{ lib, ... }:
{
boot.initrd.availableKernelModules = [ "nvme" "usb_storage" "xhci_pci" "ahci" "usbhid" "sd_mod" ];

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: {
{ pkgs, ... }: {
imports = [
./hardware-configuration.nix
./filesystems.nix

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ lib, modulesPath, ... }:
{
imports = [

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ pkgs, ... }:
{
imports = [
./hardware-configuration.nix

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, modulesPath, ... }:
{ lib, modulesPath, ... }:
{
imports =

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ ... }:
{
system.stateVersion = "22.05";

View file

@ -1,4 +1,4 @@
{ private, config, lib, pkgs, ... }:
{ pkgs, ... }:
{
modules.hardware.form.server = true;

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ config, ... }:
{
programs = {
# Enable dconf for programs that need it

View file

@ -1,4 +1,4 @@
{ lib, pkgs, config, ... }:
{ config, lib, ... }:
lib.mkIf config.info.graphical {
boot.extraModulePackages = with config.boot.kernelPackages; [

View file

@ -1,4 +1,4 @@
{ pkgs, config, private, ... }:
{ config, pkgs, private, ... }:
{
imports = [ private.nixosModules.networking ];

View file

@ -1,5 +1,5 @@
# Heavily inspired by hlissner: https://github.com/hlissner/dotfiles/blob/master/modules/options.nix
{ config, options, lib, home-manager, ... }:
{ config, options, lib, ... }:
with lib;
with lib.our;
let

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ common, lib, ... }:
with lib;
{
# For rage encryption, all hosts need a ssh key pair
@ -17,7 +17,7 @@ with lib;
};
programs.ssh = {
extraConfig = with config.common; ''
extraConfig = with common; ''
Host rsync.net
Hostname ${rsyncnet.host}
User ${rsyncnet.user}

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }:
{ config, common, pkgs, lib, ... }:
with lib;
with lib.our;
let
@ -30,7 +30,7 @@ in
programs.xss-lock = {
enable = true;
lockerCommand = lib.getExe config.common.wm.locker;
lockerCommand = lib.getExe common.wm.locker;
};
# Automatically attach/detatch connected/disconnected monitors
@ -64,7 +64,7 @@ in
pavucontrol
config.common.wm.locker
common.wm.locker
];
}
(mkIf cfg.qtile.enable {

View file

@ -1,4 +1,4 @@
{ options, config, lib, pkgs, ... }:
{ config, lib, pkgs, ... }:
with lib;
with lib.our;

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, inputs, ... }:
{ config, lib, pkgs, ... }:
with lib;
with lib.our;
let

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, private, ... }:
{ config, lib, private, ... }:
with lib;
with lib.our;
let

View file

@ -1,4 +1,4 @@
{ config, options, lib, pkgs, ... }:
{ config, lib, ... }:
with lib;
with lib.our;
let

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }:
{ config, pkgs, lib, ... }:
with lib;

View file

@ -1,4 +1,4 @@
{ config, self, lib, pkgs, inputs, ... }:
{ config, lib, pkgs, ... }:
let
inherit (lib) flatten optional mkIf;
ifGraphical = lib.optionals config.info.graphical;

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ... }:
{ config, pkgs, lib, ... }:
# Modified from https://github.com/nix-community/impermanence/blob/master/home-manager.nix

View file

@ -1,4 +1,4 @@
{ config, main, pkgs, lib, ... }:
{ main, ... }:
{
services.flameshot = {
enable = main.info.graphical;

View file

@ -1,4 +1,5 @@
{ pkgs, ... }: {
{ pkgs, ... }:
{
home.packages = with pkgs; [
gh
git-absorb

View file

@ -1,4 +1,5 @@
{ config, ... }: {
{ config, ... }:
{
programs.htop = {
enable = true;
settings = {

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, ... }:
{
programs.keychain = {
enable = true;

View file

@ -1,23 +1,21 @@
{ main, pkgs, lib, ... }:
{ pkgs, ... }:
{
config = {
programs.kitty = {
enable = true;
font = {
package = (pkgs.nerdfonts.override { fonts = [ "DejaVuSansMono" ]; });
name = "DejaVuSansMono";
size = 12;
};
settings = {
confirm_os_window_close = 0;
scrollback_lines = 100000;
};
#theme = "Doom One";
programs.kitty = {
enable = true;
font = rec {
package = (pkgs.nerdfonts.override { fonts = [ name ]; });
name = "DejaVuSansMono";
size = 12;
};
settings = {
confirm_os_window_close = 0;
scrollback_lines = 100000;
};
#theme = "Doom One";
};
home.shellAliases = {
#ssh = "kitty +kitten ssh";
icat = "kitty +kitten icat";
};
home.shellAliases = {
#ssh = "kitty +kitten ssh";
icat = "kitty +kitten icat";
};
}

View file

@ -1,4 +1,4 @@
{ main, config, lib, pkgs, ... }:
{ main, lib, pkgs, ... }:
lib.mkIf main.info.graphical
{
services = {

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }:
{ pkgs, ... }:
{
programs.nixvim = {
enable = true;

View file

@ -1,4 +1,4 @@
{ pkgs, main, config, ... }:
{ main, pkgs, ... }:
{
programs.obs-studio = {

View file

@ -1,9 +0,0 @@
{ ... }: {
imports = [
./bash.nix
./fish.nix
./ion.nix
./nushell.nix
./zsh.nix
];
}

View file

@ -1,15 +1,10 @@
{ config, pkgs, lib, ... }: {
imports = [ ./common.nix ];
programs = {
bash = {
enable = true;
enableVteIntegration = true;
initExtra = ''
source <(${lib.getExe config.programs.kitty.package} + complete setup bash)
'';
};
starship.enableBashIntegration = true;
{ config, lib, ... }:
{
programs.bash = {
enable = true;
enableVteIntegration = true;
initExtra = ''
source <(${lib.getExe config.programs.kitty.package} + complete setup bash)
'';
};
}

View file

@ -1,4 +1,5 @@
{ ... }: {
{ ... }:
{
programs.nix-index = {
enable = true;
enableBashIntegration = false;

View file

@ -1,17 +1,12 @@
{ config, lib, pkgs, ... }: {
imports = [ ./common.nix ];
programs = {
fish = {
enable = true;
functions = { };
shellAbbrs = { };
interactiveShellInit = ''
kitty + complete setup fish | source
set -U fish_greeting
'';
};
starship.enableFishIntegration = lib.mkIf config.programs.starship.enable true;
{ config, lib, ... }:
{
programs.fish = {
enable = true;
functions = { };
shellAbbrs = { };
interactiveShellInit = ''
kitty + complete setup fish | source
set -U fish_greeting
'';
};
}

View file

@ -1,11 +1,6 @@
{ config, pkgs, ... }: {
imports = [ ./common.nix ];
programs = {
ion = {
enable = true;
};
starship.enableIonIntegration = true;
{ ... }:
{
programs.ion = {
enable = true;
};
}

View file

@ -1,4 +1,5 @@
{ ... }: {
{ ... }:
{
programs.nushell = {
enable = true;
extraConfig = ''

View file

@ -1,118 +1,113 @@
{ config, lib, pkgs, main, ... }: {
imports = [ ./common.nix ];
{ config, main, pkgs, ... }:
{
programs.zsh = rec {
enable = true;
programs = {
zsh = rec {
enable = true;
enableCompletion = true;
enableVteIntegration = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
enableCompletion = true;
enableVteIntegration = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
# defaultKeymap = "emacs";
# defaultKeymap = "emacs";
initExtraFirst = ''
[[ $TERM == "tramp" ]] && unsetopt zle && PS1='$ ' && return
'';
initExtraFirst = ''
[[ $TERM == "tramp" ]] && unsetopt zle && PS1='$ ' && return
'';
initExtra = ''
${pkgs.kitty}/bin/kitty + complete setup zsh | source /dev/stdin
${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin
initExtra = ''
${pkgs.kitty}/bin/kitty + complete setup zsh | source /dev/stdin
${pkgs.any-nix-shell}/bin/any-nix-shell zsh --info-right | source /dev/stdin
functions -c precmd precmd_any_nix_shell
functions -c precmd precmd_any_nix_shell
precmd() {
precmd_any_nix_shell
precmd() {
precmd_any_nix_shell
if [[ -s ~/TODO.txt && ! -v __TODO_PRINTED ]] then
export __TODO_PRINTED=1
if [[ "$(cat ~/TODO.txt)" != "" ]] then
echo TODO:
\cat ~/TODO.txt
fi
if [[ -s ~/TODO.txt && ! -v __TODO_PRINTED ]] then
export __TODO_PRINTED=1
if [[ "$(cat ~/TODO.txt)" != "" ]] then
echo TODO:
\cat ~/TODO.txt
fi
}
fi
}
if [[ "$(basename "$(readlink "/proc/$PPID/exe")")" == ".kitty-wrapped" ]]; then
PATH=$(echo "$PATH" | sed 's/\/nix\/store\/[a-zA-Z._0-9+-]\+\/bin:\?//g' | sed 's/:$//')
if [[ "$(basename "$(readlink "/proc/$PPID/exe")")" == ".kitty-wrapped" ]]; then
PATH=$(echo "$PATH" | sed 's/\/nix\/store\/[a-zA-Z._0-9+-]\+\/bin:\?//g' | sed 's/:$//')
fi
j() {
if [[ $# -eq 0 ]] then
\builtin cd -- "$(fd -H -t d | fzf --filepath-word)"
else
\builtin cd -- "$(fd -H -t d | fzf --filepath-word -1 -q "$*")"
fi
}
alias "jh"="cd ~ && j"
alias "gj"="gcd && j"
mktmpunzip() {
dir=$(mktemp -t -d unzip.XXX)
if ! file=$(realpath -e "$1"); then
echo "error: file does not exist"
return 1
fi
shift 1
unzip "$file" "$@" -d "$dir"
\builtin cd $dir
mv $file .
}
mktmpclone() {
location="$1"
if [ "$2" != "" ]; then
dirspec="$2.XXX"
shift 2
else
dirspec="clone.XXX"
shift 1
fi
if ! dir=$(mktemp -t -d "$dirspec"); then
echo "error: couldn't create temp directory"
return 1
fi
j() {
if [[ $# -eq 0 ]] then
\builtin cd -- "$(fd -H -t d | fzf --filepath-word)"
else
\builtin cd -- "$(fd -H -t d | fzf --filepath-word -1 -q "$*")"
fi
}
git clone "$location" "$dir" "$@"
\builtin cd "$dir"
}
'';
alias "jh"="cd ~ && j"
alias "gj"="gcd && j"
dotDir = ".config/zsh";
mktmpunzip() {
dir=$(mktemp -t -d unzip.XXX)
if ! file=$(realpath -e "$1"); then
echo "error: file does not exist"
return 1
fi
shift 1
unzip "$file" "$@" -d "$dir"
\builtin cd $dir
mv $file .
}
history.path = "$HOME/${dotDir}/.zsh_history";
mktmpclone() {
location="$1"
if [ "$2" != "" ]; then
dirspec="$2.XXX"
shift 2
else
dirspec="clone.XXX"
shift 1
fi
if ! dir=$(mktemp -t -d "$dirspec"); then
echo "error: couldn't create temp directory"
return 1
fi
git clone "$location" "$dir" "$@"
\builtin cd "$dir"
}
'';
dotDir = ".config/zsh";
history.path = "$HOME/${dotDir}/.zsh_history";
shellAliases = main.environment.shellAliases // config.home.shellAliases // {
lsdiskw = "while true; do clear; lsdisk; sleep 1; done";
};
oh-my-zsh = {
enable = true;
plugins = [
# Display
"colorize"
"colored-man-pages"
# zsh modifications
"zsh-interactive-cd"
"sudo"
# Aliases
"alias-finder"
# Applications
## Python
"pip"
## Git
"gitignore"
## Vim
"fancy-ctrl-z"
];
};
shellAliases = main.environment.shellAliases // config.home.shellAliases // {
lsdiskw = "while true; do clear; lsdisk; sleep 1; done";
};
starship.enableZshIntegration = lib.mkIf config.programs.starship.enable true;
oh-my-zsh = {
enable = true;
plugins = [
# Display
"colorize"
"colored-man-pages"
# zsh modifications
"zsh-interactive-cd"
"sudo"
# Aliases
"alias-finder"
# Applications
## Python
"pip"
## Git
"gitignore"
## Vim
"fancy-ctrl-z"
];
};
};
}

View file

@ -1,4 +1,5 @@
{ ... }: {
{ ... }:
{
programs.ssh = {
enable = true;
controlMaster = "auto";

View file

@ -1,7 +1,7 @@
{ ... }: {
{ ... }:
{
programs.starship = {
enable = true;
enableBashIntegration = true;
settings =
let

View file

@ -1,4 +1,4 @@
{ lib, main, config, pkgs, ... }:
{ config, main, lib, pkgs, ... }:
lib.mkIf main.info.graphical
{
gtk = {

View file

@ -1,4 +1,5 @@
{ ... }: {
{ ... }:
{
programs.tmux = {
enable = true;
mouse = true;

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }: {
{ config, lib, pkgs, ... }: {
users.users.root = {
shell = pkgs.zsh;
hashedPasswordFile = lib.mkIf config.modules.secrets.enable config.secrets.root-password;