Add tons of missing system, desktop and home modules

This commit is contained in:
Jo 2025-04-28 20:02:05 +02:00
parent 01367c4222
commit fa3bbb2f6f
15 changed files with 453 additions and 7 deletions

View file

@ -0,0 +1,73 @@
{
lib,
pkgs,
self,
config,
osConfig,
...
}: let
inherit (lib) mkEnableOption mkIf;
inherit (self) namespace;
cfg = config.${namespace}.apps.zed;
in {
options.${namespace}.apps.zed = {
enable = mkEnableOption "zed, the graphical editor from the future";
};
config = mkIf cfg.enable {
sops.secrets.wakatime-cfg = {
format = "binary";
sopsFile = "${self.outPath}/${osConfig.networking.hostname}/secrets/wakatime.cfg";
path = "/home/${config.home.homeDirectory}/.wakatime.cfg";
};
home.packages = with pkgs; [
alejandra
];
programs.zed-editor = {
enable = true;
extensions = ["nix" "catppuccin" "wakatime" "discord_presence" "deno"];
userSettings = {
icon_theme = "Catppuccin Macchiato";
theme = {
dark = "Catppuccin Macchiato (blue)";
light = "Catppuccin Macchiato (blue)";
};
### Disable telemetry
telemetry = {
metrics = false;
};
### Disable certain AI features
features = {
copilot = false;
};
### Language specific configurations
languages = {
### Nix language
Nix = {
language_servers = ["nixd" "!nil"];
};
};
### LSP configurations
lsp = {
nixd = {
initialization_options = {
formatting = {
command = ["alejandra" "--quiet" "--"];
};
};
};
};
};
extraPackages = with pkgs; [nixd];
};
};
}

View file

@ -1,2 +0,0 @@
{...}: {
}

View file

@ -0,0 +1,91 @@
{
lib,
pkgs,
self,
config,
osConfig,
...
}: let
inherit (lib) mkIf mkOption;
inherit (self) namespace;
inherit (self.lib) mkOpt;
cfg = config.${namespace}.desktop.gnome;
in {
options.${namespace}.desktop.gnome = with lib.types; {
enabled-extensions = mkOption {
type = listOf package;
default = with pkgs.gnomeExtensions; [user-themes blur-my-shell appindicator unite color-picker clipboard-history];
example = [dash-to-dock blur-my-shell];
description = "Specify gnome extensions to install.";
};
favorite-apps = mkOption {
type = listOf str;
default = ["org.gnome.Nautilus.desktop" "obsidian.desktop" "firefox.desktop" "dev.zed.Zed.desktop"];
example = ["org.gnome.Nautilus.desktop" "obsidian.desktop"];
description = "Specify your favorite apps (sorted left to right).";
};
extensions = {
unite = {
show-window-buttons = mkOption {
type = str;
default = "never";
example = "never | maximized | tiled | both | always";
description = "Specify when Unite should display window buttons within the top panel.";
};
hide-window-titlebars = mkOption {
type = str;
default = "maximized";
example = "never | maximized | tiled | both | always";
description = "Specify when Unite should hide window titlebars.";
};
};
blur-my-shell = {
enable-blur = mkOpt bool false "Whether to enable blur-my-shell application blur.";
};
};
wallpaper = mkOpt str (builtins.toString ../wallpapers/mountain_tower_sunset.jpg) "Specify the path of your prefered Gnome wallpaper.";
};
config = mkIf osConfig.${namespace}.desktop.gnome.enable {
home.packages = cfg.enabled-extensions;
dconf.settings = {
"org/gnome/shell" = {
favorite-apps = cfg.favorite-apps;
enabled-extensions = lib.forEach cfg.enabled-extensions (x: x.extensionUuid);
disabled-extensions = []; # Make sure none of our extensions are disabled on system rebuild
};
"org/gnome/shell/extensions/unite" = mkIf (builtins.elem pkgs.gnomeExtensions.unite cfg.enabled-extensions) {
show-window-buttons = cfg.extensions.unite.show-window-buttons;
hide-window-titlebars = cfg.extensions.unite.hide-window-titlebars;
use-activities-text = false;
extend-left-box = false;
reduce-panel-spacing = false;
show-legacy-tray = false;
show-appmenu-button = false;
show-desktop-name = false;
enable-titlebar-actions = false;
restrict-to-primary-screen = false;
hide-activities-button = "never";
autofocus-windows = true;
notifications-position = "right";
};
"org/gnome/shell/extensions/blur-my-shell/applications" = mkIf cfg.extensions.blur-my-shell.enable-blur {
blur = true;
sigma = 30;
opacity = 230;
enable-all = true;
dynamic-opacity = false;
};
"org/gnome/desktop/background" = {
picture-uri = cfg.wallpaper;
picture-uri-dark = cfg.wallpaper;
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB