summaryrefslogtreecommitdiff
path: root/hostnix/mojo/modules
diff options
context:
space:
mode:
Diffstat (limited to 'hostnix/mojo/modules')
-rw-r--r--hostnix/mojo/modules/apps.nix41
-rw-r--r--hostnix/mojo/modules/obsidian.nix17
-rw-r--r--hostnix/mojo/modules/sunshine.nix18
-rw-r--r--hostnix/mojo/modules/system.nix29
4 files changed, 105 insertions, 0 deletions
diff --git a/hostnix/mojo/modules/apps.nix b/hostnix/mojo/modules/apps.nix
new file mode 100644
index 0000000..5c10633
--- /dev/null
+++ b/hostnix/mojo/modules/apps.nix
@@ -0,0 +1,41 @@
+{ pkgs, pkgsUnstable, ... }:
+{
+ environment.systemPackages = [
+ pkgs.direnv
+ pkgs.fd
+ pkgs.fzf
+ pkgs.nix-direnv
+ pkgs.nixfmt
+ pkgs.ripgrep
+ pkgs.tmux
+ pkgs.tree
+ pkgs.uv
+
+ (pkgsUnstable.callPackage ../packages/claude-code { })
+ pkgsUnstable.jujutsu
+ pkgsUnstable.llama-cpp
+ ];
+
+ environment.pathsToLink = [ "/share/vim-plugins" ]; # for fzf
+
+ homebrew = {
+ taps = [ "LizardByte/homebrew" ];
+
+ brews = [
+ "mas"
+ "sunshine"
+ ];
+
+ casks = [
+ "karabiner-elements" # modifiers, fn, reverse scroll
+ "linearmouse" # scroll by lines, universal back/forward
+ ];
+
+ masApps = {
+ "Ghostery Privacy Ad Blocker" = 6504861501;
+ "Kagi for Safari" = 1622835804;
+ "KeePassium (KeePass passwords)" = 1435127111;
+ Xcode = 497799835;
+ };
+ };
+}
diff --git a/hostnix/mojo/modules/obsidian.nix b/hostnix/mojo/modules/obsidian.nix
new file mode 100644
index 0000000..0357b0f
--- /dev/null
+++ b/hostnix/mojo/modules/obsidian.nix
@@ -0,0 +1,17 @@
+{ ... }:
+{
+ homebrew.casks = [ "obsidian" ];
+
+ launchd.user.agents.obsidian-auto-sync = {
+ script = ''
+ cd /Users/joe/src/Obsidian
+ ./.obsidian/auto-sync
+ '';
+ serviceConfig = {
+ StartInterval = 300;
+ StandardOutPath = "/Users/joe/Library/Logs/obsidian-auto-sync.log";
+ StandardErrorPath = "/Users/joe/Library/Logs/obsidian-auto-sync.log";
+ RunAtLoad = false;
+ };
+ };
+}
diff --git a/hostnix/mojo/modules/sunshine.nix b/hostnix/mojo/modules/sunshine.nix
new file mode 100644
index 0000000..5b02ede
--- /dev/null
+++ b/hostnix/mojo/modules/sunshine.nix
@@ -0,0 +1,18 @@
+{ ... }:
+{
+ homebrew = {
+ taps = [ "LizardByte/homebrew" ];
+ brews = [ "sunshine" ];
+ };
+
+ launchd.user.agents.sunshine = {
+ serviceConfig = {
+ Label = "com.lizardbyte.sunshine";
+ ProgramArguments = [ "/opt/homebrew/bin/sunshine" ];
+ RunAtLoad = true;
+ KeepAlive = true;
+ StandardOutPath = "/tmp/sunshine.log";
+ StandardErrorPath = "/tmp/sunshine.err";
+ };
+ };
+}
diff --git a/hostnix/mojo/modules/system.nix b/hostnix/mojo/modules/system.nix
new file mode 100644
index 0000000..2109311
--- /dev/null
+++ b/hostnix/mojo/modules/system.nix
@@ -0,0 +1,29 @@
+{
+ pkgs,
+ pkgsUnstable,
+ self,
+ ...
+}:
+{
+ nixpkgs.config.allowUnfree = true;
+
+ homebrew = {
+ enable = true;
+ # Enable after nix-darwin 25.11
+ # enableBashIntegration = true;
+ caskArgs.require_sha = true;
+ # Error: Refusing to uninstall /opt/homebrew/Cellar/brotli/1.2.0, [...snip...]
+ # because they are required by sunshine, which is currently installed.
+ # onActivation.cleanup = "uninstall";
+ };
+
+ system.primaryUser = "joe";
+
+ security.sudo.extraConfig = ''
+ Defaults!/run/current-system/sw/bin/darwin-rebuild timestamp_timeout=120
+ '';
+
+ # $ chsh -s /run/current-system/sw/bin/bash
+ environment.shells = [ pkgs.bashInteractive ];
+ programs.bash.completion.enable = true;
+}