summaryrefslogtreecommitdiff
path: root/nix/modules/home/user.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/modules/home/user.nix')
-rw-r--r--nix/modules/home/user.nix183
1 files changed, 108 insertions, 75 deletions
diff --git a/nix/modules/home/user.nix b/nix/modules/home/user.nix
index fc8c2ae..d378fb6 100644
--- a/nix/modules/home/user.nix
+++ b/nix/modules/home/user.nix
@@ -2,24 +2,24 @@
{
home = {
activation.startup-files = lib.hm.dag.entryAfter [ "installPackages" ] ''
- if [ ! -d "/home/${config.monorepo.vars.userName}/email/${config.monorepo.vars.internetName}/" ]; then
- mkdir -p /home/${config.monorepo.vars.userName}/email/${config.monorepo.vars.internetName}/
- fi
+ if [ ! -d "/home/${config.monorepo.vars.userName}/email/${config.monorepo.vars.internetName}/" ]; then
+ mkdir -p /home/${config.monorepo.vars.userName}/email/${config.monorepo.vars.internetName}/
+ fi
- if [ ! -d "/home/${config.monorepo.vars.userName}/music" ]; then
- mkdir -p /home/${config.monorepo.vars.userName}/music
- fi
+ if [ ! -d "/home/${config.monorepo.vars.userName}/music" ]; then
+ mkdir -p /home/${config.monorepo.vars.userName}/music
+ fi
- if [ ! -d /home/${config.monorepo.vars.userName}/org ]; then
- mkdir -p /home/${config.monorepo.vars.userName}/org
- fi
+ if [ ! -d /home/${config.monorepo.vars.userName}/org ]; then
+ mkdir -p /home/${config.monorepo.vars.userName}/org
+ fi
- if [ ! -d /home/${config.monorepo.vars.userName}/src ]; then
- mkdir -p /home/${config.monorepo.vars.userName}/src
- fi
+ if [ ! -d /home/${config.monorepo.vars.userName}/src ]; then
+ mkdir -p /home/${config.monorepo.vars.userName}/src
+ fi
- touch /home/${config.monorepo.vars.userName}/org/agenda.org
- touch /home/${config.monorepo.vars.userName}/org/notes.org
+ touch /home/${config.monorepo.vars.userName}/org/agenda.org
+ touch /home/${config.monorepo.vars.userName}/org/notes.org
'';
enableNixpkgsReleaseCheck = false;
@@ -37,32 +37,61 @@
fzf
# passwords
- age sops
+ age
+ sops
# formatting
- ghostscript texliveFull pandoc
+ ghostscript
+ texliveFull
+ pandoc
# Emacs Deps
- graphviz jq
+ graphviz
+ jq
# Apps
# octaveFull
- grim swww vim kotatogram-desktop tg qwen-code element-desktop signal-desktop signal-cli thunderbird jami
+ grim
+ swww
+ vim
+ kotatogram-desktop
+ tg
+ qwen-code
+ element-desktop
+ signal-desktop
+ signal-cli
+ thunderbird
+ jami
# Sound/media
- pavucontrol alsa-utils imagemagick ffmpeg helvum
+ pavucontrol
+ alsa-utils
+ imagemagick
+ ffmpeg
+ helvum
# Net
- curl rsync gitFull iamb ungoogled-chromium
+ curl
+ rsync
+ gitFull
+ iamb
+ ungoogled-chromium
# Tor
- torsocks tor-browser
+ torsocks
+ tor-browser
# For transfering secrets onto new system
stow
# fonts
- nerd-fonts.iosevka noto-fonts noto-fonts-cjk-sans noto-fonts-color-emoji fira-code font-awesome_6 victor-mono
+ nerd-fonts.iosevka
+ noto-fonts
+ noto-fonts-cjk-sans
+ noto-fonts-color-emoji
+ fira-code
+ font-awesome_6
+ victor-mono
(aspellWithDicts
(dicts: with dicts; [ en en-computers en-science ]))
@@ -77,60 +106,64 @@
(pkgs.writeShellScriptBin "help"
''
-#!/usr/bin/env sh
-# Portable, colored, nicely aligned alias list
+ #!/usr/bin/env sh
+ # Portable, colored, nicely aligned alias list
-# Generate uncolored alias pairs
-aliases=$(cat <<'EOF'
-${let aliases = config.programs.zsh.shellAliases;
- in lib.concatStringsSep "\n" (lib.mapAttrsToList (name: value:
- "${name} -> ${value}"
- ) aliases)}
-EOF
- )
+ # Generate uncolored alias pairs
+ aliases=$(cat <<'EOF'
+ ${let aliases = config.programs.zsh.shellAliases;
+ in lib.concatStringsSep "\n" (lib.mapAttrsToList (name: value:
+ "${name} -> ${value}"
+ ) aliases)}
+ EOF
+ )
-# Align and color using awk
-echo "$aliases" | awk '
-BEGIN {
- GREEN="\033[0;32m";
- YELLOW="\033[0;33m";
- RESET="\033[0m";
- maxlen=0;
- }
-{
- # Split line on " -> "
- split($0, parts, / -> /);
- name[NR]=parts[1];
- cmd[NR]=parts[2];
- if(length(parts[1])>maxlen) maxlen=length(parts[1]);
-}
-END {
- for(i=1;i<=NR;i++) {
- # printf with fixed width for alias name
- printf "%s%-*s%s -> %s%s%s\n", GREEN, maxlen, name[i], RESET, YELLOW, cmd[i], RESET;
- }
-}'
-'')
+ # Align and color using awk
+ echo "$aliases" | awk '
+ BEGIN {
+ GREEN="\033[0;32m";
+ YELLOW="\033[0;33m";
+ RESET="\033[0m";
+ maxlen=0;
+ }
+ {
+ # Split line on " -> "
+ split($0, parts, / -> /);
+ name[NR]=parts[1];
+ cmd[NR]=parts[2];
+ if(length(parts[1])>maxlen) maxlen=length(parts[1]);
+ }
+ END {
+ for(i=1;i<=NR;i++) {
+ # printf with fixed width for alias name
+ printf "%s%-*s%s -> %s%s%s\n", GREEN, maxlen, name[i], RESET, YELLOW, cmd[i], RESET;
+ }
+ }'
+ '')
(writeShellScriptBin "remote-build"
''
-#!/bin/bash
-nixos-rebuild --sudo --ask-sudo-password --target-host "$1" switch --flake $HOME/monorepo/nix#spontaneity
-''
+ #!/bin/bash
+ nixos-rebuild --sudo --ask-sudo-password --target-host "$1" switch --flake $HOME/monorepo/nix#spontaneity
+ ''
)
(writeShellScriptBin "install-vps"
''
-#!/bin/bash
-nix run github:nix-community/nixos-anywhere -- --generate-hardware-config nixos-generate-config $HOME/monorepo/nix/systems/spontaneity/hardware-configuration.nix --flake $HOME/monorepo/nix#spontaneity --target-host "$1"
+ #!/bin/bash
+ nix run github:nix-community/nixos-anywhere -- --generate-hardware-config nixos-generate-config $HOME/monorepo/nix/systems/spontaneity/hardware-configuration.nix --flake $HOME/monorepo/nix#spontaneity --target-host "$1"
'')
(writeShellScriptBin "secrets"
''
-#!/bin/bash
-cd "$HOME/secrets"
-git pull # repo is over LAN
-stow */ # manage secrets with gnu stow
-cd "$HOME"
+ #!/bin/bash
+ cd "$HOME/secrets"
+ git pull # repo is over LAN
+ stow */ # manage secrets with gnu stow
+ cd "$HOME"
'')
+ (writeShellScriptBin "spontaneity-ci"
+ ''
+ #!/bin/bash
+ nixos-rebuild build-vm --flake $HOME/monorepo/nix#spontaneity && QEMU_OPTS="-serial stdio" ./result/bin/run-spontaneity-vm 2>&1 | tee vm-boot.log'')
] else [
pfetch
# net
@@ -145,22 +178,22 @@ cd "$HOME"
pinentry.package = pkgs.pinentry-emacs;
enable = true;
extraConfig = ''
- allow-emacs-pinentry
- allow-loopback-pinentry
- '';
+ allow-emacs-pinentry
+ allow-loopback-pinentry
+ '';
};
};
xdg.mimeApps = {
- enable = true;
+ enable = lib.mkDefault config.monorepo.profiles.graphics.enable;
defaultApplications = {
"x-scheme-handler/mailto" = "emacsclient-mail.desktop";
- "text/html" = "librewolf.desktop";
- "text/xml" = "librewolf.desktop";
- "application/xhtml+xml" = "librewolf.desktop";
- "x-scheme-handler/http" = "librewolf.desktop";
- "x-scheme-handler/https" = "librewolf.desktop";
- "x-scheme-handler/about" = "librewolf.desktop";
- "x-scheme-handler/unknown" = "librewolf.desktop";
+ "text/html" = "librewolf.desktop";
+ "text/xml" = "librewolf.desktop";
+ "application/xhtml+xml" = "librewolf.desktop";
+ "x-scheme-handler/http" = "librewolf.desktop";
+ "x-scheme-handler/https" = "librewolf.desktop";
+ "x-scheme-handler/about" = "librewolf.desktop";
+ "x-scheme-handler/unknown" = "librewolf.desktop";
};
};