Compare commits

..

3 Commits

Author SHA1 Message Date
8885ffae67 feat(agent-skills): install the wiki and consume vault skills
Source the wiki and consume skills from the skills flake, placing them
globally so they are active in every project. wiki reads the personal
Obsidian vault read-only, and consume mines a source into it, pairing
with the Obsidian vault this branch installs.
2026-07-24 20:11:07 -04:00
40ae623094 feat(hyprland): enable native Wayland for Electron apps
Set NIXOS_OZONE_WL in the compositor env so Chromium and Electron
wrappers select native Wayland rather than XWayland, which blurs at this
DPI. Deliver it through Hyprland's env directive because UWSM starts the
session without the shell profile home-manager's sessionVariables rely
on.
2026-07-24 17:48:35 -04:00
7409e4e6a0 feat(obsidian): install Obsidian as the desktop note-taking vault
Add a standalone modules.desktop.obsidian module and enable it on
neogaia. Give it a waybar window-rewrite icon so its windows show a
recognisable glyph on the workspace indicator.
2026-07-24 17:48:29 -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";
};
};