add sam
This commit is contained in:
parent
4d355a0a0c
commit
f0912dc558
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,3 +23,4 @@ test.*
|
|||||||
pre-drv
|
pre-drv
|
||||||
post-drv
|
post-drv
|
||||||
post-diff
|
post-diff
|
||||||
|
pr_body.md
|
||||||
|
17
users/sam/default.nix
Normal file
17
users/sam/default.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
name,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
import ../default.nix {
|
||||||
|
inherit
|
||||||
|
pkgs
|
||||||
|
lib
|
||||||
|
config
|
||||||
|
name
|
||||||
|
;
|
||||||
|
publicKeys = [
|
||||||
|
];
|
||||||
|
}
|
157
users/sam/home.nix
Normal file
157
users/sam/home.nix
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
machineConfig,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
./home/zsh.nix
|
||||||
|
./home/git.nix
|
||||||
|
]
|
||||||
|
++ lib.optionals (!machineConfig.server) [
|
||||||
|
./home/gammastep.nix
|
||||||
|
./non-server.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home = {
|
||||||
|
# # Adds the 'hello' command to your environment. It prints a friendly
|
||||||
|
# # "Hello, world!" when run.
|
||||||
|
# pkgs.hello
|
||||||
|
|
||||||
|
# # It is sometimes useful to fine-tune packages, for example, by applying
|
||||||
|
# # overrides. You can do that directly here, just don't forget the
|
||||||
|
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
|
||||||
|
# # fonts?
|
||||||
|
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
|
||||||
|
|
||||||
|
# # You can also create simple shell scripts directly inside your
|
||||||
|
# # configuration. For example, this adds a command 'my-hello' to your
|
||||||
|
# # environment:
|
||||||
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
|
# echo "Hello, ${config.home.username}!"
|
||||||
|
# '')
|
||||||
|
|
||||||
|
username = "sam";
|
||||||
|
homeDirectory = "/home/sam";
|
||||||
|
packages = with pkgs; [
|
||||||
|
python3
|
||||||
|
|
||||||
|
# useful tools
|
||||||
|
file
|
||||||
|
ncdu
|
||||||
|
neofetch
|
||||||
|
onefetch
|
||||||
|
hyfetch
|
||||||
|
smartmontools
|
||||||
|
wget
|
||||||
|
glances
|
||||||
|
onefetch
|
||||||
|
|
||||||
|
# Rust packages
|
||||||
|
bat
|
||||||
|
cargo-update
|
||||||
|
tealdeer
|
||||||
|
|
||||||
|
# nix specific packages
|
||||||
|
nix-output-monitor
|
||||||
|
nix-prefetch
|
||||||
|
nix-tree
|
||||||
|
nh
|
||||||
|
|
||||||
|
# audit
|
||||||
|
lynis
|
||||||
|
|
||||||
|
gocryptfs
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
|
||||||
|
starship.enable = true;
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
icons = "auto";
|
||||||
|
git = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
vimAlias = true;
|
||||||
|
vimdiffAlias = true;
|
||||||
|
extraConfig = ''
|
||||||
|
set bg=dark
|
||||||
|
set tabstop=2
|
||||||
|
set shiftwidth=2
|
||||||
|
set expandtab
|
||||||
|
set smartindent
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
nix-index = {
|
||||||
|
enable = true;
|
||||||
|
enableZshIntegration = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
tmux.enable = true;
|
||||||
|
topgrade = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
misc = {
|
||||||
|
disable = [
|
||||||
|
"system"
|
||||||
|
"nix"
|
||||||
|
"shell"
|
||||||
|
"poetry"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.ssh-agent.enable = true;
|
||||||
|
|
||||||
|
# TODO: add environment bs
|
||||||
|
home.sessionVariables = {
|
||||||
|
EDITOR = "nvim";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg = {
|
||||||
|
enable = true;
|
||||||
|
userDirs = {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
extraConfig = {
|
||||||
|
XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
sops = lib.mkIf (!machineConfig.server) {
|
||||||
|
age.sshKeyPaths = [ "/home/sam/.ssh/id_ed25519_sops" ];
|
||||||
|
defaultSopsFile = ./secrets.yaml;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix.gc = {
|
||||||
|
automatic = true;
|
||||||
|
frequency = "weekly";
|
||||||
|
options = "--delete-older-than 30d";
|
||||||
|
};
|
||||||
|
|
||||||
|
home.stateVersion = "25.11";
|
||||||
|
}
|
20
users/sam/home/gammastep.nix
Normal file
20
users/sam/home/gammastep.nix
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.gammastep = {
|
||||||
|
enable = true;
|
||||||
|
provider = "manual";
|
||||||
|
latitude = 40.73;
|
||||||
|
longitude = -73.93;
|
||||||
|
temperature.day = 5700;
|
||||||
|
temperature.night = 3500;
|
||||||
|
settings = {
|
||||||
|
general = {
|
||||||
|
fade = 1;
|
||||||
|
elevation-high = 3;
|
||||||
|
elevation-low = -6;
|
||||||
|
brightness-day = 1.0;
|
||||||
|
brightness-low = 0.8;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
36
users/sam/home/git.nix
Normal file
36
users/sam/home/git.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
signing = {
|
||||||
|
key = "5EFFB75F7C9B74EAA5C4637547940175096C1330";
|
||||||
|
signByDefault = true;
|
||||||
|
};
|
||||||
|
userEmail = "aliceghuston@gmail.com";
|
||||||
|
userName = "ahuston-0";
|
||||||
|
aliases = {
|
||||||
|
gone = ''
|
||||||
|
!git for-each-ref --format '%(refname:short) %(upstream)' | # dump all older branches
|
||||||
|
awk 'NF < 2 {print $1}' | # get nuked branches
|
||||||
|
grep -Pv "(^origin/|^origin$|stash)" | # filter out remotes & stash
|
||||||
|
sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons
|
||||||
|
xargs -r git branch -D # nuke the branches
|
||||||
|
# !git fetch -p && git for-each-ref --format '%(refname:short) %(upstream:track)' | # dump all branches
|
||||||
|
# awk '$2 == "[gone]" {print $1}' | # get nuked branches
|
||||||
|
# sed 's/\\x27/\\x5C\\x27/' | # remove single quotes, for xargs reasons
|
||||||
|
# xargs -r git branch -D; # nuke the branches #
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
push.autosetupremote = true;
|
||||||
|
pull.rebase = true;
|
||||||
|
color.ui = true;
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
format.signoff = true;
|
||||||
|
pack.windowMemory = "2g";
|
||||||
|
pack.packSizeLimit = "1g";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
123
users/sam/home/zsh.nix
Normal file
123
users/sam/home/zsh.nix
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
|
||||||
|
enable = true;
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
plugins = [
|
||||||
|
"git"
|
||||||
|
"docker"
|
||||||
|
"docker-compose"
|
||||||
|
"colored-man-pages"
|
||||||
|
"helm"
|
||||||
|
"kubectl"
|
||||||
|
"minikube"
|
||||||
|
"rust"
|
||||||
|
"skaffold"
|
||||||
|
"systemd"
|
||||||
|
"tmux"
|
||||||
|
"ufw"
|
||||||
|
"z"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
To specify the order, use lib.mkOrder.
|
||||||
|
|
||||||
|
Common order values:
|
||||||
|
|
||||||
|
500 (mkBefore): Early initialization (replaces initExtraFirst)
|
||||||
|
|
||||||
|
550: Before completion initialization (replaces initExtraBeforeCompInit)
|
||||||
|
|
||||||
|
1000 (default): General configuration (replaces initExtra)
|
||||||
|
|
||||||
|
1500 (mkAfter): Last to run configuration
|
||||||
|
|
||||||
|
To specify both content in Early initialization and General configuration, use lib.mkMerge.
|
||||||
|
|
||||||
|
e.g.
|
||||||
|
|
||||||
|
initContent = let zshConfigEarlyInit = lib.mkOrder 500 “do something”; zshConfig = lib.mkOrder 1000 “do something”; in lib.mkMerge [ zshConfigEarlyInit zshConfig ];
|
||||||
|
*/
|
||||||
|
|
||||||
|
initContent = lib.mkOrder 1000 ''
|
||||||
|
# functions
|
||||||
|
function mount-data {
|
||||||
|
if [[ -f /home/alice/backup/.noconnection ]]; then
|
||||||
|
sshfs -p 10934 lily@192.168.1.154:/mnt/backup/data/ ~/backup -C
|
||||||
|
else
|
||||||
|
echo "Connection to backup server already open."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function mount-backup {
|
||||||
|
if [[ -f /home/alice/backup/.noconnection ]]; then
|
||||||
|
sudo borgmatic mount --options allow_other,nonempty --archive latest --mount-point ~/backup -c /etc/borgmatic/config_checkless.yaml
|
||||||
|
else
|
||||||
|
echo "Connection to backup server already open."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function mount-ubuntu {
|
||||||
|
if [[ -f /home/alice/backup/.noconnection ]]; then
|
||||||
|
sshfs lily@192.168.76.101:/mnt/backup/ubuntu.old/ ~/backup -C
|
||||||
|
else
|
||||||
|
echo "Connection to backup server already open."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
shellAliases = {
|
||||||
|
"sgc" = "sudo git -C /root/dotfiles";
|
||||||
|
## SSH
|
||||||
|
"ssh-init" =
|
||||||
|
"ssh-add -t 2h ~/.ssh/id_rsa_tails ~/.ssh/id_ed25519_tails ~/.ssh/id_rsa_palatine ~/.ssh/id_ed25519_palatine ~/.ssh/id_ed25519_rota ~/.ssh/id_ed25519_gh";
|
||||||
|
|
||||||
|
## Backups
|
||||||
|
"borgmatic-backup-quick" =
|
||||||
|
"sudo borgmatic --log-file-verbosity 2 -v1 --progress --log-file=/var/log/borgmatic.log -c /etc/borgmatic/config_checkless.yaml";
|
||||||
|
"borgmatic-backup-full" =
|
||||||
|
"sudo borgmatic --log-file-verbosity 2 -v1 --log-file=/var/log/borgmatic.log -c /etc/borgmatic/config_full_arch.yaml";
|
||||||
|
"umount-backup" =
|
||||||
|
"sudo borgmatic umount --mount-point /home/alice/backup -c /etc/borgmatic/config_checkless.yaml";
|
||||||
|
"restic-backup" = "/home/alice/Scripts/restic/backup.sh";
|
||||||
|
|
||||||
|
## VPN
|
||||||
|
"pfSense-vpn" = "sudo openvpn --config /etc/openvpn/client/pfSense-TCP4-1194-alice-config.ovpn";
|
||||||
|
"pfSense-vpn-all" = "sudo openvpn --config /etc/openvpn/client/pfSense-TCP4-1195-alice-config.ovpn";
|
||||||
|
|
||||||
|
## Utilities
|
||||||
|
"lrt" = "eza --icons -lsnew";
|
||||||
|
"lynis-grep" = ''sudo lynis audit system 2&>1 | grep -v "egrep"'';
|
||||||
|
"egrep" = "grep -E";
|
||||||
|
"htgp" = "history | grep";
|
||||||
|
"gen_walpaper" = "wal -i '/home/alice/Pictures/Wallpapers/1440pdump'";
|
||||||
|
"vlgdf" = "valgrind --leak-check=full --show-leak-kinds=all --track-origins=yes";
|
||||||
|
"libreoffice-writer" = "libreoffice --writer";
|
||||||
|
"libreoffice-calc" = "libreoffice --calc";
|
||||||
|
"notes" = "code /home/alice/Scripts/Notes/dendron.code-workspace";
|
||||||
|
"ua-drop-caches" = "sudo paccache -rk3; yay -Sc --aur --noconfirm";
|
||||||
|
"ua-update-all" = ''
|
||||||
|
(export TMPFILE="$(mktemp)"; \
|
||||||
|
sudo true; \
|
||||||
|
rate-mirrors --save=$TMPFILE --protocol https\
|
||||||
|
--country-test-mirrors-per-country 10 arch --max-delay=21600 \
|
||||||
|
&& sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist-backup \
|
||||||
|
&& sudo mv $TMPFILE /etc/pacman.d/mirrorlist \
|
||||||
|
&& ua-drop-caches \
|
||||||
|
&& yay -Syyu)
|
||||||
|
'';
|
||||||
|
|
||||||
|
# applications (rofi entries)
|
||||||
|
"ARMEclipse" = "nohup /opt/DS-5_CE/bin/eclipse &";
|
||||||
|
"Wizard101-old" = "prime-run playonlinux --run Wizard\\ 101";
|
||||||
|
"Wizard101" =
|
||||||
|
"prime-run ~/.wine/drive_c/ProgramData/KingsIsle Entertainment/Wizard101/Wizard101.exe";
|
||||||
|
"Pirate101" = "prime-run playonlinux --run Pirate\\ 101";
|
||||||
|
"octave" = "prime-run octave --gui";
|
||||||
|
"pc-firefox" = "proxychains firefox -P qbit -no-remote -P 127.0.0.1:9050";
|
||||||
|
"hx" = "helix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
33
users/sam/non-server.nix
Normal file
33
users/sam/non-server.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ pkgs, outputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
shellcheck
|
||||||
|
|
||||||
|
# nix tools
|
||||||
|
nil
|
||||||
|
nixfmt-rfc-style
|
||||||
|
nix-init
|
||||||
|
|
||||||
|
# markdown
|
||||||
|
nodePackages.markdownlint-cli
|
||||||
|
|
||||||
|
# language depedencies
|
||||||
|
enchant
|
||||||
|
nuspell
|
||||||
|
hunspellDicts.en-us
|
||||||
|
languagetool
|
||||||
|
|
||||||
|
# latex
|
||||||
|
texlive.combined.scheme-medium
|
||||||
|
|
||||||
|
nextcloud-client
|
||||||
|
bitwarden-cli
|
||||||
|
bitwarden-menu
|
||||||
|
wtype
|
||||||
|
zathura
|
||||||
|
obsidian
|
||||||
|
libreoffice-qt-fresh
|
||||||
|
wlr-randr
|
||||||
|
];
|
||||||
|
}
|
0
users/sam/secrets.yaml
Normal file
0
users/sam/secrets.yaml
Normal file
Loading…
x
Reference in New Issue
Block a user