diff --git a/flake.lock b/flake.lock index 70da8cb..c21e78d 100644 --- a/flake.lock +++ b/flake.lock @@ -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" }, diff --git a/hosts/neogaia/default.nix b/hosts/neogaia/default.nix index 568d01a..d7cc9c4 100644 --- a/hosts/neogaia/default.nix +++ b/hosts/neogaia/default.nix @@ -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"; diff --git a/modules/agents/skills.nix b/modules/agents/skills.nix index ad50170..108e080 100644 --- a/modules/agents/skills.nix +++ b/modules/agents/skills.nix @@ -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 ]; diff --git a/modules/desktop/hyprland/hyprland.nix b/modules/desktop/hyprland/hyprland.nix index f616c8d..6709262 100644 --- a/modules/desktop/hyprland/hyprland.nix +++ b/modules/desktop/hyprland/hyprland.nix @@ -63,19 +63,26 @@ 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. - # Bibata ships XCursor only. - # The hyprcursor variables name the same theme, which Hyprland resolves - # through its XCursor fallback. - env = lib.optionals (cursor != null) [ - "XCURSOR_THEME,${cursor.name}" - "XCURSOR_SIZE,${toString cursor.size}" - "HYPRCURSOR_THEME,${cursor.name}" - "HYPRCURSOR_SIZE,${toString cursor.size}" - ]; + # 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. + ++ lib.optionals (cursor != null) [ + "XCURSOR_THEME,${cursor.name}" + "XCURSOR_SIZE,${toString cursor.size}" + "HYPRCURSOR_THEME,${cursor.name}" + "HYPRCURSOR_SIZE,${toString cursor.size}" + ]; input = { kb_layout = "us"; diff --git a/modules/desktop/obsidian.nix b/modules/desktop/obsidian.nix new file mode 100644 index 0000000..90fdd52 --- /dev/null +++ b/modules/desktop/obsidian.nix @@ -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 ]; + }; +} diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix index fc29cf1..7a63306 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/waybar.nix @@ -82,6 +82,7 @@ in "class<.*[Ff]irefox.*>" = g "f269"; "class" = g "f268"; "class<[Cc]ode>" = g "f121"; + "class" = g "f02d"; }; };