Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions home-manager/modules/default.nix
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[
./bin-shells
./cargo-globals
./obsidian
./openclaw
./paperclip
./local-binaries
./local-scripts
./npm-globals
Expand Down
33 changes: 0 additions & 33 deletions home-manager/modules/obsidian/default.nix

This file was deleted.

18 changes: 18 additions & 0 deletions home-manager/services/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,22 @@ let
neversslKeepalive = import ./neverssl-keepalive { inherit pkgs; };
obsidian = import ./obsidian { inherit pkgs inputs; };
ollama = import ./ollama { inherit pkgs inputs; };
openclaw = import ./openclaw {
inherit
config
lib
pkgs
inputs
Comment on lines +22 to +27

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The imports for openclaw and paperclip are added here with config, lib, pkgs, and inputs passed as arguments. This matches the function signature in their respective default.nix files. However, note that obsidian and ollama (lines 20-21) only take pkgs and inputs. While this is currently correct based on the individual file requirements, maintaining a consistent interface for all service modules (e.g., always passing config, lib, pkgs, inputs) would improve maintainability and make it easier to add features like options to those modules in the future.

;
};
paperclip = import ./paperclip {
inherit
config
lib
pkgs
inputs
;
};
sshAgent = import ./ssh-agent {
inherit config lib pkgs;
};
Expand All @@ -38,6 +54,8 @@ in
neversslKeepalive
obsidian
ollama
openclaw
paperclip
sshAgent
tmuxSessionLogger
]
11 changes: 10 additions & 1 deletion home-manager/services/obsidian/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,25 @@ let
inherit (pkgs) lib;
inherit (inputs) host;

# Obsidian 1.12+ ships its official CLI as the `obsidian` binary
# (https://help.obsidian.md/cli). The CLI subcommands still load the
# full Electron asar, so they need a display server. We wrap the real
# binary in `xvfb-run` so each invocation gets an ephemeral virtual X
# server, letting the CLI run on a headless host.
obsidianHeadless = pkgs.writeShellScriptBin "obsidian" (
builtins.readFile (
pkgs.replaceVars ../../modules/obsidian/obsidian-headless.sh {
pkgs.replaceVars ./obsidian-headless.sh {
xvfbRun = pkgs.xvfb-run;
inherit (pkgs) obsidian;
}
)
);
in
# Only enable on kyber (gateway host) - desktops already get pkgs.obsidian
# directly via home-manager/packages/default.nix.
lib.mkIf host.isKyber {
home.packages = [ obsidianHeadless ];

systemd.user.services.obsidian = {
Unit = {
Description = "Obsidian headless daemon (xvfb-run CLI socket)";
Expand Down
16 changes: 8 additions & 8 deletions spec/activate_paperclip_openclaw_spec.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
# shellcheck disable=SC2016,SC2329

Describe 'home-manager/modules/paperclip/activate.sh'
SCRIPT="$PWD/home-manager/modules/paperclip/activate.sh"
Describe 'home-manager/services/paperclip/activate.sh'
SCRIPT="$PWD/home-manager/services/paperclip/activate.sh"

It 'uses bash shebang'
When run bash -c "head -1 '$SCRIPT'"
Expand All @@ -25,15 +25,15 @@ The output should include 'chmod 700'
End
End

Describe 'home-manager/modules/paperclip/default.nix'
Describe 'home-manager/services/paperclip/default.nix'
It 'quotes the home directory argument when invoking the helper'
When run cat "$PWD/home-manager/modules/paperclip/default.nix"
When run cat "$PWD/home-manager/services/paperclip/default.nix"
The output should include '"${./activate.sh}" "${homeDir}"'
End
End

Describe 'home-manager/modules/openclaw/activate.sh'
SCRIPT="$PWD/home-manager/modules/openclaw/activate.sh"
Describe 'home-manager/services/openclaw/activate.sh'
SCRIPT="$PWD/home-manager/services/openclaw/activate.sh"

It 'uses bash shebang'
When run bash -c "head -1 '$SCRIPT'"
Expand All @@ -56,9 +56,9 @@ The output should include 'chmod 700'
End
End

Describe 'home-manager/modules/openclaw/default.nix'
Describe 'home-manager/services/openclaw/default.nix'
It 'quotes the home directory argument when invoking the helper'
When run cat "$PWD/home-manager/modules/openclaw/default.nix"
When run cat "$PWD/home-manager/services/openclaw/default.nix"
The output should include '"${./activate.sh}" "${homeDir}"'
End
End
6 changes: 3 additions & 3 deletions spec/coverage_spec.sh
Original file line number Diff line number Diff line change
Expand Up @@ -368,9 +368,9 @@ home-manager/modules/local-scripts/notify-local.sh
home-manager/modules/local-scripts/pushover-notify.sh
home-manager/modules/local-scripts/tmux-bridge.sh
home-manager/modules/npm-globals/install-npm-globals.sh
home-manager/modules/obsidian/obsidian-headless.sh
home-manager/modules/openclaw/activate.sh
home-manager/modules/paperclip/activate.sh
home-manager/services/obsidian/obsidian-headless.sh
home-manager/services/openclaw/activate.sh
home-manager/services/paperclip/activate.sh
home-manager/modules/tailscale/activate-create-dirs.sh
home-manager/modules/tailscale/activate-install-service.sh
home-manager/modules/uv-globals/install-uv-globals.sh
Expand Down
4 changes: 2 additions & 2 deletions spec/obsidian_headless_spec.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
# shellcheck disable=SC2329

Describe 'home-manager/modules/obsidian/obsidian-headless.sh'
SCRIPT="$PWD/home-manager/modules/obsidian/obsidian-headless.sh"
Describe 'home-manager/services/obsidian/obsidian-headless.sh'
SCRIPT="$PWD/home-manager/services/obsidian/obsidian-headless.sh"

Describe 'script properties'
It 'uses bash shebang'
Expand Down
Loading