Refactor home modules and update configs

- Remove unused `pkgs` import from hardware and adjust user stateVersion
to 25.11 with updated wheel comment. - Split Bash aliases and functions
into separate modules and rename `bash.nix` to `bash/default.nix` with
imports. - Delete old Bash alias/function files and consolidate them
under the new structure. - Simplify `bat.nix` by removing commented
style lines. - Increase Cava `frame_rate` from 60 to 144 and clean up
legacy color settings. - Refactor Chromium configuration: separate
extensions into `extensions.nix` and use a minimal default module. -
Replace large Kitty config with minimal enable/module and import
`extra-config.nix` and `settings.nix`. - Overhaul Librewolf setup:
extract profiles, extensions, search, and settings into dedicated files.
- Update home `default.nix` imports to reflect new module paths and
remove obsolete references. - Modularize SwayNC by moving settings and
style to separate files. - Add explicit Vesktop package definition. -
Remove old VSCode module; introduce VSCodium with profile-based
extensions, keybindings, and user settings. - Reorganize XDG portal and
desktop entries into modular files. - Rebuild Zed configuration: split
user settings, language models, languages, LSP, extensions, and extra
packages into distinct files.
This commit is contained in:
2025-11-23 19:38:52 +01:00
parent 900b565405
commit 196db56791
48 changed files with 1839 additions and 1809 deletions

View File

@@ -0,0 +1,12 @@
_: {
xdg = {
enable = true;
mime.enable = true;
mimeApps.enable = true;
};
imports = [
./desktop-entries.nix
./portal.nix
];
}

View File

@@ -0,0 +1,74 @@
{pkgs, ...}: let
fetchIcon = url: sha256:
pkgs.fetchurl {
inherit url sha256;
};
makeEntry = app: {
name = app.displayName;
genericName = app.genericName or app.displayName;
exec = "chromium --profile-directory=Default --app=${app.url}";
icon = "${fetchIcon app.iconUrl app.iconSha}";
terminal = false;
type = "Application";
};
apps = [
{
name = "messenger";
displayName = "Messenger";
url = "https://www.messenger.com/";
iconUrl = "https://assets.stickpng.com/images/580b57fcd9996e24bc43c526.png";
iconSha = "sha256-mQ7TAsLIWLZhun1DrJFgLkkwpqvWujhGT6Ig8Rf6vbc=";
}
{
name = "mastodon";
displayName = "Mastodon";
url = "https://metalhead.club/";
iconUrl = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/d5/Mastodon_logotype_%28simple%29_new_hue.svg/1200px-Mastodon_logotype_%28simple%29_new_hue.svg.png";
iconSha = "sha256-y31Pkl4iExgiM4yZ64t/elA7FYZM1daGQIvYzJdmWhw=";
}
{
name = "garandcloud";
displayName = "GarandCloud";
genericName = "Nextcloud";
url = "https://nextcloud.garandplg.com/";
iconUrl = "https://cdn.freelogovectors.net/wp-content/uploads/2020/02/nextcloud-logo.png";
iconSha = "sha256-vbe3Jz6oNCUlhK81LGlDDFbo6xpUXiDio40bYqJ4lf4=";
}
{
name = "chatgpt";
displayName = "ChatGPT";
url = "https://chatgpt.com/";
iconUrl = "https://static.vecteezy.com/system/resources/previews/031/110/149/large_2x/chatgpt-logo-transparent-free-png.png";
iconSha = "sha256-ZWmhchblQkksW02eduVrkUSPAlWPGC2fjqxrAGAF5jw=";
}
{
name = "claude";
displayName = "Claude";
url = "https://claude.ai/";
iconUrl = "https://registry.npmmirror.com/@lobehub/icons-static-png/1.65.0/files/dark/claude-color.png";
iconSha = "sha256-wmYmbmT2/bR4JrnZJu2stjRZm//O5TB9EPE2NQWdGkQ=";
}
{
name = "glance";
displayName = "Glance";
url = "https://glance.garandplg.com/";
iconUrl = "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/glance.png";
iconSha = "sha256-xyFlmPpt+DABoGX5oBqj/aQVdxtmNflat9Jb2BE7SOY=";
}
{
name = "microsoftTeams";
displayName = "Microsoft Teams";
url = "https://teams.microsoft.com/v2/";
iconUrl = "https://i.pinimg.com/236x/e6/b6/28/e6b628706696320cd0ede93f7053abd8.jpg";
iconSha = "sha256-bZVmoWHeG8rycS8lj7LQaxFggXINjUx/7NWKPVhPTFw=";
}
];
in {
xdg.desktopEntries = builtins.listToAttrs (builtins.map (app: {
name = app.name;
value = makeEntry app;
})
apps);
}

View File

@@ -0,0 +1,26 @@
{
pkgs,
config,
...
}: {
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-hyprland
xdg-desktop-portal-gtk
kdePackages.xdg-desktop-portal-kde
];
configPackages = [config.wayland.windowManager.hyprland.package];
config = {
common.default = "*";
hyprland = {
default = [
"hyprland"
"gtk"
];
"org.freedesktop.impl.portal.FileChooser" = "kde";
"org.freedesktop.impl.portal.Print" = "kde";
};
};
};
}