Tarsnap, nix shell tweaks, services

work
mat ess 2022-10-10 17:54:15 -04:00
parent 609291820e
commit cd209ea820
8 changed files with 109 additions and 42 deletions

View File

@ -48,7 +48,7 @@ in
homebrew.masApps = { homebrew.masApps = {
Bitwarden = 1352778147; Bitwarden = 1352778147;
Spark = 1176895641; Spark = 1176895641;
Wireguard = 1451685025; Tailscale = 1475387142;
Xcode = 497799835; Xcode = 497799835;
}; };
@ -89,7 +89,7 @@ in
# Configuration related to casks # Configuration related to casks
environment.variables.SSH_AUTH_SOCK = mkIfCaskPresent "secretive" environment.variables.SSH_AUTH_SOCK = mkIfCaskPresent "secretive"
"/Users/${config.users.primaryUser.username}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh"; "${config.home.homeDirectory}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
# For cli packages that aren't currently available for macOS in `nixpkgs`.Packages should be # For cli packages that aren't currently available for macOS in `nixpkgs`.Packages should be
# installed in `../home/default.nix` whenever possible. # installed in `../home/default.nix` whenever possible.
@ -98,6 +98,7 @@ in
"fileicon" "fileicon"
"fzf" "fzf"
"gifsicle" "gifsicle"
"tarsnap"
"unison-language" "unison-language"
]; ];
} }

View File

@ -274,7 +274,10 @@
# configs # configs
configs-starship-symbols = import ./home/configs/starship-symbols.nix; configs-starship-symbols = import ./home/configs/starship-symbols.nix;
copyApplications = import ./home/copyApplications.nix; copyApplications = import ./home/copyApplications.nix;
dark-mode-notify-service = import ./home/dark-mode-notify-service.nix; # services
dark-mode-notify-service = import ./home/services/dark-mode-notify.nix;
tarsnap-service = import ./home/services/tarsnap.nix;
# etc
files = import ./home/files.nix; files = import ./home/files.nix;
fish = import ./home/fish.nix; fish = import ./home/fish.nix;
git = import ./home/git.nix; git = import ./home/git.nix;

View File

@ -1,20 +0,0 @@
{ pkgs, ... }: {
# dark-mode-notify configuration
# {{{
launchd.agents.dark-mode-notify = {
enable = true;
config = {
Label = "ke.bou.dark-mode-notify";
KeepAlive = true;
StandardErrorPath = null;
StandardOutPath = null;
ProgramArguments = [
"${pkgs.dark-mode-notify}/bin/dark-mode-notify"
"${pkgs.fish}/bin/fish"
"-c"
"set-background-to-env DARKMODE"
];
};
};
# }}}
}

View File

@ -5,11 +5,21 @@
enable = true; enable = true;
}; };
home.file.".pijulconfig".text = '' home.file = {
".pijulconfig".text = ''
[author] [author]
name = "mat" name = "${config.home.primaryUser.username}"
full_name = "${config.programs.git.userName}" full_name = "${config.home.primaryUser.fullName}"
email = "${config.programs.git.userEmail}" email = "${config.home.primaryUser.email}"
''; '';
".tarsnaprc".text = ''
cachedir ${config.xdg.cacheHome}
keyfile ${config.xdg.configHome}/tarsnap/read-write-delete.key
nodump
print-stats
checkpoint-bytes 1G
humanize-numbers
'';
};
# }}} # }}}
} }

View File

@ -6,9 +6,7 @@
programs.fish.enable = true; programs.fish.enable = true;
# Add Fish plugins # Add Fish plugins
home.packages = with pkgs.fishPlugins; [ home.packages = with pkgs.fishPlugins; [ done ];
done
];
programs.fish.plugins = [ programs.fish.plugins = [
{ {
@ -154,7 +152,7 @@
}; };
darwin-rebuild-edit-with = { darwin-rebuild-edit-with = {
argumentNames = [ "file" "editor" ]; argumentNames = [ "editor" "file" ];
body = '' body = ''
if test -z "$file" if test -z "$file"
set file flake.nix set file flake.nix
@ -162,6 +160,13 @@
from-nix $editor $file from-nix $editor $file
''; '';
}; };
nix-unfree = {
argumentNames = [ "cmd" ];
body = ''
env NIX_ALLOW_UNFREE=1 nix $cmd --impure
'';
};
}; };
# }}} # }}}
@ -170,11 +175,11 @@
# Aliases # Aliases
programs.fish.shellAliases = programs.fish.shellAliases =
let let
nixConfigDir = "${config.home.homeDirectory}/dotfiles.nix"; inherit (config.home.primaryUser) nixConfigDirectory;
in in
with pkgs; { with pkgs; {
# Nix related # Nix related
from-nix = "from-dir ${nixConfigDir}"; from-nix = "from-dir ${nixConfigDirectory}";
# darwin-rebuild build # darwin-rebuild build
drb = "from-nix darwin-rebuild build --flake ."; drb = "from-nix darwin-rebuild build --flake .";
# darwin-rebuild switch full # darwin-rebuild switch full
@ -182,19 +187,22 @@
# darwin-rebuild switch (no homebrew) # darwin-rebuild switch (no homebrew)
drs = "from-nix darwin-rebuild switch --flake . --override-input homebrew-enabled github:boolean-option/false"; drs = "from-nix darwin-rebuild switch --flake . --override-input homebrew-enabled github:boolean-option/false";
# edit darwin-rebuild config in code/codium # edit darwin-rebuild config in code/codium
drc = "code ${nixConfigDir}"; drc = "code ${nixConfigDirectory}";
# edit darwin-rebuild config in vim # edit darwin-rebuild config in vim
drv = "vim ${nixConfigDir}"; drv = "vim ${nixConfigDirectory}";
# edit darwin-rebuild config in helix # edit darwin-rebuild config in helix
drh = "darwin-rebuild-edit-with hx"; drh = "darwin-rebuild-edit-with hx";
flakeup = "nix flake update ${nixConfigDir}/"; flakeup = "nix flake update ${nixConfigDirectory}/";
nb = "nix build"; nb = "nix build";
nd = "nix develop"; nd = "nix develop";
nf = "nix flake"; nf = "nix flake";
nr = "nix run"; nr = "nix run";
nru = "nix-unfree run";
ns = "nix search nixpkgs"; ns = "nix search nixpkgs";
nsh = "nix shell"; nsh = "nix shell";
nshu = "nix-unfree shell";
nrp = "nix repl --expr '{ pkgs = (import <nixpkgs> { }); }'"; nrp = "nix repl --expr '{ pkgs = (import <nixpkgs> { }); }'";
nrpu = "nix repl --expr '{ pkgs = (import <nixpkgs> { config.allowUnfree = true; }); }' --impure";
# Other # Other
".." = "cd .."; ".." = "cd ..";
@ -212,7 +220,7 @@
tb = "toggle-background"; tb = "toggle-background";
} // lib.optionalAttrs stdenv.isDarwin { } // lib.optionalAttrs stdenv.isDarwin {
sb = "set-background-to-macOS"; sb = "set-background-to-macOS";
conda-init = "eval /opt/homebrew/Caskroom/miniforge/base/bin/conda 'shell.fish' 'hook' $argv | source"; conda-init = "eval /opt/homebrew/bin/conda 'shell.fish' 'hook' $argv | source";
}; };
# Configuration that should be above `loginShellInit` and `interactiveShellInit`. # Configuration that should be above `loginShellInit` and `interactiveShellInit`.

View File

@ -51,8 +51,7 @@
UseKeychain = "yes"; UseKeychain = "yes";
AddKeysToAgent = "yes"; AddKeysToAgent = "yes";
} // lib.optionalAttrs pkgs.stdenv.isDarwin { } // lib.optionalAttrs pkgs.stdenv.isDarwin {
# TODO: gate this behind a check if the cask is present IdentityAgent = "${config.home.homeDirectory}/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
IdentityAgent = "~/Library/Containers/com.maxgoedjen.Secretive.SecretAgent/Data/socket.ssh";
}; };
}; };
# vscode # vscode

View File

@ -0,0 +1,22 @@
{ pkgs, ... }: {
# dark-mode-notify configuration
# {{{
launchd.agents.dark-mode-notify =
let logPath = "/var/log/dark-mode-notify"; in
{
enable = true;
config = {
Label = "ke.bou.dark-mode-notify";
KeepAlive = true;
StandardErrorPath = "${logPath}/error.log";
StandardOutPath = "${logPath}/out.log";
ProgramArguments = [
"${pkgs.dark-mode-notify}/bin/dark-mode-notify"
"${pkgs.fish}/bin/fish"
"-c"
"set-background-to-env DARKMODE"
];
};
};
# }}}
}

44
home/services/tarsnap.nix Normal file
View File

@ -0,0 +1,44 @@
{ config, pkgs, ... }: {
# tarsnap periodic backup configuration
# {{{
launchd.agents.tarsnap =
let
logPath = "/var/log/tarsnap";
tarsnapBackup = pkgs.writeShellScriptBin "tarsnap-backup-helper" ''
/opt/homebrew/bin/tarsnap -v -c \
--configfile ${config.home.homeDirectory}/.tarsnaprc \
-f $(uname -n)-$(date -u +%Y-%m-%dT%H:%M:%SZ) \
${config.home.homeDirectory}/{dotfiles.nix,Desktop,Development,Documents,Downloads}
'';
in
{
enable = true;
config = {
Label = "com.tarsnap.tarsnap";
StandardErrorPath = "${logPath}/error.log";
StandardOutPath = "${logPath}/out.log";
StartCalendarInterval = [
{
# every sunday
Weekday = 0;
# at midnight
Hour = 0;
Minute = 0;
}
{
# every wednesday
Weekday = 3;
# at noon
Hour = 12;
Minute = 0;
}
];
Program = "${tarsnapBackup}/bin/tarsnap-backup-helper";
};
};
# }}}
}