diff options
Diffstat (limited to 'hostnix/mojo/modules')
| -rw-r--r-- | hostnix/mojo/modules/apps.nix | 41 | ||||
| -rw-r--r-- | hostnix/mojo/modules/obsidian.nix | 17 | ||||
| -rw-r--r-- | hostnix/mojo/modules/sunshine.nix | 23 | ||||
| -rw-r--r-- | hostnix/mojo/modules/system.nix | 28 |
4 files changed, 109 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..4f12601 --- /dev/null +++ b/hostnix/mojo/modules/sunshine.nix @@ -0,0 +1,23 @@ +{ ... }: +{ + homebrew = { + taps = [ + { + name = "LizardByte/homebrew"; + trusted = true; + } + ]; + brews = [ "LizardByte/homebrew/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..b34905f --- /dev/null +++ b/hostnix/mojo/modules/system.nix @@ -0,0 +1,28 @@ +{ + pkgs, + pkgsUnstable, + self, + ... +}: +{ + nixpkgs.config.allowUnfree = true; + + homebrew = { + enable = true; + 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; +} |
