feat: Obsidian vault and its wiki/consume agent skills #26

Merged
alexion merged 3 commits from feat/obsidian into main 2026-07-24 20:14:00 -04:00
6 changed files with 55 additions and 19 deletions

8
flake.lock generated
View File

@@ -494,11 +494,11 @@
]
},
"locked": {
"lastModified": 1784776947,
"narHash": "sha256-IGVn6Z7dfeArObZvz7cLsGqJD8ipP2VkAZC/bOJgvJI=",
"lastModified": 1784937824,
"narHash": "sha256-ncagIdsvmlcJ2DeFHU6R2wBZoOJFDPGVlsmYU8DfImg=",
"ref": "refs/heads/main",
"rev": "1caf18d72dd7cad7304401da0db6a6ba853d8827",
"revCount": 5,
"rev": "8c17f3aeb8a9c9d95a1427018a93f7d2cf081238",
"revCount": 15,
"type": "git",
"url": "https://git.alexion.dev/alexion/skills"
},

View File

@@ -55,6 +55,7 @@
modules.agents.pi.enable = true;
modules.desktop.enable = true;
modules.desktop.obsidian.enable = true;
time.timeZone = "America/New_York";
i18n.defaultLocale = "en_GB.UTF-8";

View File

@@ -1,11 +1,20 @@
{ config, inputs, ... }:
{
config,
inputs,
pkgs,
...
}:
# Global agent skills, placed under the skills directory so they are active in
# every project.
let
user = config.user.name;
# The skills installed globally, as derivations from the skills flake.
skills = [ ];
# wiki reads the personal Obsidian vault, and consume mines a source into it.
skills = with inputs.skills.packages.${pkgs.stdenv.hostPlatform.system}; [
wiki
consume
];
in
{
home-manager.sharedModules = [ inputs.skills.homeModules.default ];

View File

@@ -63,14 +63,21 @@ in
"$mod" = "SUPER";
"$terminal" = "alacritty";
# Hand the cursor theme to the compositor directly.
# UWSM launches the session without the shell profile that carries the
# pointer-cursor variables, so without this Hyprland never sees a theme
# and falls back to its built-in cursor.
# Session variables handed to the compositor directly.
# UWSM launches the session without the shell profile that would carry
# them, so a variable the compositor or its children must see is set
# here rather than through home-manager's sessionVariables.
env =
[
# Chromium and Electron apps read this to select native Wayland;
# nixpkgs wrappers (Obsidian's included) gate their Wayland flags on
# it, so without it they run under XWayland and blur at this DPI.
"NIXOS_OZONE_WL,1"
]
# Bibata ships XCursor only.
# The hyprcursor variables name the same theme, which Hyprland resolves
# through its XCursor fallback.
env = lib.optionals (cursor != null) [
# The hyprcursor variables name the same theme, which Hyprland
# resolves through its XCursor fallback.
++ lib.optionals (cursor != null) [
"XCURSOR_THEME,${cursor.name}"
"XCURSOR_SIZE,${toString cursor.size}"
"HYPRCURSOR_THEME,${cursor.name}"

View File

@@ -0,0 +1,18 @@
{
config,
lib,
pkgs,
...
}:
# Obsidian as the desktop note-taking vault.
let
cfg = config.modules.desktop.obsidian;
user = config.user.name;
in
{
options.modules.desktop.obsidian.enable = lib.mkEnableOption "Obsidian as the desktop note-taking vault";
config = lib.mkIf cfg.enable {
home-manager.users.${user}.home.packages = [ pkgs.obsidian ];
};
}

View File

@@ -82,6 +82,7 @@ in
"class<.*[Ff]irefox.*>" = g "f269";
"class<chromium.*>" = g "f268";
"class<[Cc]ode>" = g "f121";
"class<obsidian>" = g "f02d";
};
};