{ inputs, lib, pkgs, ... }: let inherit (lib) getExe; in { home.stateVersion = "22.11"; imports = [ ./modules/cli.nix ./modules/desktop.nix ./modules/dev.nix ./modules/theming.nix ./util/ez.nix ./util/flatpak.nix ./util/cosmic.nix ./util/murex.nix # TODO use these options, write plugin pkgs, etc inputs.nix-index-database.hmModules.nix-index ]; nix.gc = { automatic = true; frequency = "daily"; options = "--delete-older-than 3d"; }; xdg = { enable = true; # mimeApps = { # enable = true; # # TODO? # # also figure out how cosmic detects default terminal # }; portal = let xdg-cosmic = pkgs.xdg-desktop-portal-cosmic; in { enable = true; config = { common = { default = [ "cosmic" ]; }; }; configPackages = [ xdg-cosmic ]; extraPortals = [ xdg-cosmic ]; }; }; home.packages = with pkgs; rice.fonts.pkgs ++ rice.icons.pkgs; systemd.user.targets.tray = { Unit = { Description = "Home Manager System Tray"; Requires = ["graphical-session-pre.target"]; }; }; services.syncthing = { enable = true; }; services.udiskie.enable = true; # fix reliance on nonexistent graphical-session-pre.target systemd.user.services.udiskie = lib.mkForce { Unit = { Description = "udiskie mount daemon"; After = []; PartOf = ["graphical-session.target"]; }; Service.ExecStart = ["${pkgs.udiskie}/bin/udiskie --appindicator"]; Install.WantedBy = ["graphical-session.target"]; }; # programs.nix-index-database.comma.enable = true; # programs.nix-index = { # enable = true; # enableZshIntegration = false; # enableBashIntegration = false; # }; # programs.command-not-found.enable = false; # programs.nix-index.enable = true; systemd.user.startServices = "sd-switch"; ezServices = { ckb-next = "${getExe pkgs.ckb-next} -c -b"; }; }