all repos — flake @ 8e07b34fd14b326d037be884e12600f18dd6c4e1

got my cool flake

modules/desktop.nix (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
{
  config,
  lib,
  pkgs,
  ...
}:
let
  cfg = config.mods.desktop;
in
{
  options.mods.desktop = {
    enable = lib.mkEnableOption "desktop";
  };

  config = lib.mkIf cfg.enable {
    xdg = {
      portal = {
        enable = true;
        wlr.enable = true;
        xdgOpenUsePortal = true;

        extraPortals = with pkgs; [
          xdg-desktop-portal-gnome
          xdg-desktop-portal-gtk
          xdg-desktop-portal-wlr
        ];
        config = {
          common = {
            "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ];
          };
          niri = {
            default = [
              "gnome"
              "gtk"
            ];
            "org.freedesktop.impl.portal.Access" = "gtk";
            "org.freedesktop.impl.portal.Notification" = "gtk";
            "org.freedesktop.impl.portal.Secret" = "gnome-keyring";
            "org.freedesktop.impl.portal.FileChooser" = "gnome";
          };
        };
      };
    };

    services = {
      flatpak.enable = true;
      gnome.gnome-keyring.enable = true;
      # mpd.enable = true;
      printing.enable = true;
    };

    services.pipewire = {
      enable = true;
      alsa.enable = true;
      alsa.support32Bit = true;
      pulse.enable = true;
      wireplumber.enable = true;
      jack.enable = true;
    };

    services.xserver = {
      enable = true;
      xkb = {
        layout = "gb";
        variant = "";
      };
    };

  };
}