feat: initial m3ta-home structure
- flake.nix with nixpkgs, home-manager, nix-colors, m3ta-nixpkgs, agenix, NUR inputs - lib/mkHome.nix: compose HM config from user + identity + context + sets - profiles/base: shell, cli-tools, secrets (always loaded) - profiles/contexts/desktop: WM, apps, theme, ghostty - profiles/contexts/server: minimal headless - profiles/sets/coding: core (git, direnv, jq, rg), editor, lsp, languages, agents - profiles/sets/gaming: steam, gamescope, gpu - profiles/sets/media: obs, ffmpeg, kdenlive, handbrake, yt-dlp - users/m3tam3re/identities: private.nix, work.nix (git, jj, ssh per identity) - users/m3tam3re/preferences: cliphist, difftastic, base packages
This commit is contained in:
8
profiles/contexts/desktop/theme/default.nix
Normal file
8
profiles/contexts/desktop/theme/default.nix
Normal file
@@ -0,0 +1,8 @@
|
||||
# Theme aggregator — fonts, GTK/Qt theming, and wallpapers.
|
||||
{...}: {
|
||||
imports = [
|
||||
./fonts.nix
|
||||
./theme.nix
|
||||
./wallpapers.nix
|
||||
];
|
||||
}
|
||||
24
profiles/contexts/desktop/theme/fonts.nix
Normal file
24
profiles/contexts/desktop/theme/fonts.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
# Font packages — Fira Code, JetBrains Mono Nerd Font, and supporting icon fonts.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.desktop.theme.fonts;
|
||||
in {
|
||||
options.desktop.theme.fonts.enable = mkEnableOption "install desktop fonts";
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
fira-code
|
||||
fira-code-symbols
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.jetbrains-mono
|
||||
font-manager
|
||||
font-awesome_5
|
||||
noto-fonts
|
||||
];
|
||||
};
|
||||
}
|
||||
24
profiles/contexts/desktop/theme/theme.nix
Normal file
24
profiles/contexts/desktop/theme/theme.nix
Normal file
@@ -0,0 +1,24 @@
|
||||
# GTK and Qt theming — Dracula theme with matching icons and cursor.
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "gtk";
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "Dracula";
|
||||
package = pkgs.dracula-theme;
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Dracula";
|
||||
package = pkgs.dracula-icon-theme;
|
||||
};
|
||||
gtk4.theme = config.gtk.theme;
|
||||
};
|
||||
}
|
||||
19
profiles/contexts/desktop/theme/wallpapers.nix
Normal file
19
profiles/contexts/desktop/theme/wallpapers.nix
Normal file
@@ -0,0 +1,19 @@
|
||||
# Wallpaper collection — copies wallpapers to Hyprland config directory.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.desktop.theme.wallpapers.enable;
|
||||
in {
|
||||
options.desktop.theme.wallpapers.enable = mkEnableOption "wallpapers for Hyprland";
|
||||
|
||||
config = mkIf cfg {
|
||||
xdg.configFile."hypr/wallpapers" = {
|
||||
# Wallpapers are stored relative to the home/m3tam3re directory.
|
||||
source = ../../m3tam3re/wallpapers;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user