feat: Obsidian vault and its wiki/consume agent skills #26
8
flake.lock
generated
8
flake.lock
generated
@@ -494,11 +494,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1784776947,
|
"lastModified": 1784937824,
|
||||||
"narHash": "sha256-IGVn6Z7dfeArObZvz7cLsGqJD8ipP2VkAZC/bOJgvJI=",
|
"narHash": "sha256-ncagIdsvmlcJ2DeFHU6R2wBZoOJFDPGVlsmYU8DfImg=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "1caf18d72dd7cad7304401da0db6a6ba853d8827",
|
"rev": "8c17f3aeb8a9c9d95a1427018a93f7d2cf081238",
|
||||||
"revCount": 5,
|
"revCount": 15,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.alexion.dev/alexion/skills"
|
"url": "https://git.alexion.dev/alexion/skills"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -55,6 +55,7 @@
|
|||||||
modules.agents.pi.enable = true;
|
modules.agents.pi.enable = true;
|
||||||
|
|
||||||
modules.desktop.enable = true;
|
modules.desktop.enable = true;
|
||||||
|
modules.desktop.obsidian.enable = true;
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
time.timeZone = "America/New_York";
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
|
|||||||
@@ -1,11 +1,20 @@
|
|||||||
{ config, inputs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
# Global agent skills, placed under the skills directory so they are active in
|
# Global agent skills, placed under the skills directory so they are active in
|
||||||
# every project.
|
# every project.
|
||||||
let
|
let
|
||||||
user = config.user.name;
|
user = config.user.name;
|
||||||
|
|
||||||
# The skills installed globally, as derivations from the skills flake.
|
# 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
|
in
|
||||||
{
|
{
|
||||||
home-manager.sharedModules = [ inputs.skills.homeModules.default ];
|
home-manager.sharedModules = [ inputs.skills.homeModules.default ];
|
||||||
|
|||||||
@@ -63,19 +63,26 @@ in
|
|||||||
"$mod" = "SUPER";
|
"$mod" = "SUPER";
|
||||||
"$terminal" = "alacritty";
|
"$terminal" = "alacritty";
|
||||||
|
|
||||||
# Hand the cursor theme to the compositor directly.
|
# Session variables handed to the compositor directly.
|
||||||
# UWSM launches the session without the shell profile that carries the
|
# UWSM launches the session without the shell profile that would carry
|
||||||
# pointer-cursor variables, so without this Hyprland never sees a theme
|
# them, so a variable the compositor or its children must see is set
|
||||||
# and falls back to its built-in cursor.
|
# here rather than through home-manager's sessionVariables.
|
||||||
# Bibata ships XCursor only.
|
env =
|
||||||
# The hyprcursor variables name the same theme, which Hyprland resolves
|
[
|
||||||
# through its XCursor fallback.
|
# Chromium and Electron apps read this to select native Wayland;
|
||||||
env = lib.optionals (cursor != null) [
|
# nixpkgs wrappers (Obsidian's included) gate their Wayland flags on
|
||||||
"XCURSOR_THEME,${cursor.name}"
|
# it, so without it they run under XWayland and blur at this DPI.
|
||||||
"XCURSOR_SIZE,${toString cursor.size}"
|
"NIXOS_OZONE_WL,1"
|
||||||
"HYPRCURSOR_THEME,${cursor.name}"
|
]
|
||||||
"HYPRCURSOR_SIZE,${toString cursor.size}"
|
# Bibata ships XCursor only.
|
||||||
];
|
# 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}"
|
||||||
|
"HYPRCURSOR_SIZE,${toString cursor.size}"
|
||||||
|
];
|
||||||
|
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us";
|
kb_layout = "us";
|
||||||
|
|||||||
18
modules/desktop/obsidian.nix
Normal file
18
modules/desktop/obsidian.nix
Normal 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 ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -82,6 +82,7 @@ in
|
|||||||
"class<.*[Ff]irefox.*>" = g "f269";
|
"class<.*[Ff]irefox.*>" = g "f269";
|
||||||
"class<chromium.*>" = g "f268";
|
"class<chromium.*>" = g "f268";
|
||||||
"class<[Cc]ode>" = g "f121";
|
"class<[Cc]ode>" = g "f121";
|
||||||
|
"class<obsidian>" = g "f02d";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user