NixOS-Configs/home/gui/default.nix
2025-09-24 13:39:24 -05:00

165 lines
5 KiB
Nix

{
pkgs,
inputs,
config,
lib,
...
}:
with lib; let
cfg = config.roles.gui;
in {
options.roles.gui = {enable = mkEnableOption "roles gui";};
config = mkIf cfg.enable {
home-manager.users.don = {
imports = [
./alacritty.nix
./autostart.nix
# ./fuzzel.nix
# ./kde.nix
./mpv.nix
./redshift.nix
./qutebrowser.nix
./services.nix
./sway.nix
./terminals.nix
];
fonts = {fontconfig = {enable = true;};};
nixpkgs.overlays = [
(final: prev: {
qutebrowser = prev.qutebrowser.override {enableWideVine = true;};
})
];
home.packages = with pkgs; [
# cura
# poweralertd
# prusa-slicer
# thunderbird
inputs.bzmenu.packages.${pkgs.system}.default
at-spi2-core
blueberry
# calibre # FIXME - TODO - Failing to build 2025.09.23
clipman
darktable
# element-desktop
firefox
gnumeric
headset-charge-indicator
ibm-plex
imv
jellyfin-media-player
libappindicator
libnotify
libreoffice-fresh
libsForQt5.kwallet
neovim-qt
networkmanagerapplet
nextcloud-client
nvd
obsidian
overpass
pasystray
pavucontrol
pwvucontrol
qpwgraph
# quickemu
# quickgui
qutebrowser
shikane
# signal-desktop
simple-scan
syncthingtray
systemd-lock-handler
# telegram-desktop
texlive.combined.scheme-medium
# watchmate
widevine-cdm
yt-dlp
];
# ] ++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") feishin;
# ] ++ lib.optional (pkgs.hostPlatform.system == "x86_64-linux") sonixd;
xdg = {
mimeApps = {
enable = true;
associations.added = {
"application/octet-stream" = ["nvim-qt.desktop"];
"application/pdf" = [
"org.pwmt.zathura-pdf-mupdf.desktop;qpdfview.desktop;org.gnome.Evince.desktop"
];
"image/jpeg" = ["imv.desktop;darktable.desktop;gimp.desktop"];
"image/png" = ["imv.desktop;darktable.desktop;gimp.desktop"];
"image/x-adobe-dng" = ["imv.desktop"];
"inode/directory" = ["thunar.desktop"];
"text/plain" = ["nvim-qt.desktop"];
"x-scheme-handler/pdf" = [
"org.pwmt.zathura-pdf-mupdf.desktop;qpdfview.desktop;org.gnome.Evince.desktop"
];
};
defaultApplications = {
"inode/directory" = ["thunar.desktop"];
"text/html" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/about" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/http" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/https" = ["org.qutebrowser.qutebrowser.desktop"];
"x-scheme-handler/pdf" = ["myweb.desktop"];
"x-scheme-handler/unknown" = ["org.qutebrowser.qutebrowser.desktop"];
"application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
"x-scheme-handler/mailto" = ["neomutt.desktop"];
};
};
desktopEntries = {
mealplanning = {
terminal = false;
name = "Meal Planning";
exec = "/home/don/bin/meal-planning";
icon = "chrome-nkapoddcoleikgbpncmpcfkdjmheccge-Default";
};
neomutt = {
terminal = false;
name = "Neomutt";
exec = "/home/don/.local/share/qutebrowser/userscripts/mymail";
icon = "email";
};
muttmailto = {
terminal = false;
name = "mutt-mailto";
exec = "/home/don/bin/mutt-mailto";
icon = "chrome-kmhopmchchfpfdcdjodmpfaaphdclmlj-Default";
};
myweb = {
terminal = false;
name = "myweb";
exec = "/home/don/bin/myweb %u";
mimeType = ["x-scheme-handler/pdf"];
};
cooking-notebook = {
type = "Application";
name = "Cooking Notebook";
icon = "obsidian";
exec = "/home/don/bin/cooking-notebook";
};
mynotes = {
name = "My Notes";
exec = "/home/don/bin/mynotes";
terminal = false;
type = "Application";
icon = "obsidian";
comment = "Obsidian";
mimeType = ["x-scheme-handler/obsidian"];
categories = ["Office"];
};
journal = {
name = "Journal";
exec = "/home/don/bin/newjournal";
terminal = false;
type = "Application";
icon = "obsidian";
comment = "Obsidian Journal";
mimeType = ["x-scheme-handler/obsidian"];
categories = ["Office"];
};
};
configFile = {"shikane/config.toml".source = files/shikane.toml;};
};
};
};
}