diff options
Diffstat (limited to 'nixos/modules/desktop.nix')
| -rw-r--r-- | nixos/modules/desktop.nix | 194 | 
1 files changed, 103 insertions, 91 deletions
| diff --git a/nixos/modules/desktop.nix b/nixos/modules/desktop.nix index 2e67730..62e7fb2 100644 --- a/nixos/modules/desktop.nix +++ b/nixos/modules/desktop.nix @@ -23,6 +23,14 @@ in {    };    config = mkIf cnf.enable { +    hardware = { +      opengl = { +        driSupport = true; +        driSupport32Bit = true; +      }; +      bluetooth.enable = mkIf cnf.laptop true; +    }; +      programs = {        sway = {          enable = true; @@ -168,73 +176,123 @@ in {              acpi            ]);        }; +        firefox = {          enable = true;          languagePacks = ["en-US" "cs"];          nativeMessagingHosts.packages = with pkgs; [browserpass];        }; +        light.enable = mkIf cnf.laptop true; +        nix-ld = {          enable = true;          libraries = with pkgs; [xorg.libXpm];        }; -    }; -    xdg.portal = { -      enable = true; -      wlr.enable = true; -      extraPortals = with pkgs; [xdg-desktop-portal-gtk]; -    }; -    xdg.mime.defaultApplications = { -      "text/html" = ["firefox.desktop"]; -      "application/pdf" = ["org.pwmt.zathura.desktop"]; -      "image/jpeg" = ["feh.desktop"]; -      "image/png" = ["feh.desktop"]; -      "image/svg" = ["feh.desktop"]; -    }; -    programs.usbkey = { -      enable = true; -      devicesUUID = ["de269652-2070-46b2-84f8-409dc9dd50ee" "16a089d0-a663-4047-bd88-3885dd7fdee2"]; +      usbkey = { +        enable = true; +        devicesUUID = [ +          "de269652-2070-46b2-84f8-409dc9dd50ee" +          "16a089d0-a663-4047-bd88-3885dd7fdee2" +        ]; +      }; + +      gnupg.agent = { +        enable = true; +        enableSSHSupport = true; +        enableBrowserSocket = true; +      };      }; -    programs.gnupg.agent = { -      enable = true; -      enableSSHSupport = true; -      enableBrowserSocket = true; +    xdg = { +      portal = { +        enable = true; +        wlr.enable = true; +        extraPortals = with pkgs; [xdg-desktop-portal-gtk]; +      }; +      mime.defaultApplications = { +        "text/html" = ["firefox.desktop"]; +        "application/pdf" = ["org.pwmt.zathura.desktop"]; +        "image/jpeg" = ["feh.desktop"]; +        "image/png" = ["feh.desktop"]; +        "image/svg" = ["feh.desktop"]; +      };      }; -    services.dbus.packages = [pkgs.gcr]; -    programs.kdeconnect.enable = true; +    services = { +      # Autologin on the first TTY +      getty = { +        extraArgs = ["--skip-login"]; +        loginProgram = "${pkgs.bash}/bin/sh"; +        loginOptions = toString (pkgs.writeText "login-program.sh" '' +          if [[ "$(tty)" == '/dev/tty1' ]]; then +            ${pkgs.shadow}/bin/login -f cynerd; +          else +            ${pkgs.shadow}/bin/login; +          fi +        ''); +      }; -    services.pipewire = { -      enable = true; -      alsa.enable = true; -      alsa.support32Bit = true; -      pulse.enable = true; -      extraConfig.pipewire."10-zeroconf" = { -        "context.modules" = [{name = "libpipewire-module-zeroconf-discover";}]; +      gpm.enable = true; # mouse in buffer +      udev.extraRules = '' +        ACTION=="add|change", KERNEL=="sd*[!0-9]", ATTR{queue/scheduler}="bfq" +      ''; +      xserver.xkb.options = "grp:alt_shift_toggle,caps:escape"; + +      # Gnome crypto services (GnuPG) +      dbus.packages = [pkgs.gcr]; + +      pipewire = { +        enable = true; +        alsa.enable = true; +        alsa.support32Bit = true; +        pulse.enable = true; +        extraConfig.pipewire."10-zeroconf" = { +          "context.modules" = [{name = "libpipewire-module-zeroconf-discover";}]; +        };        }; -    }; -    security.rtkit.enable = true; -    services.printing = { -      enable = true; -      drivers = with pkgs; [ -        gutenprint -        gutenprintBin -        cnijfilter2 -      ]; +      upower.enable = true; +      hardware.openrgb = { +        enable = true; +        package = pkgs.openrgb-with-all-plugins; +      }; + +      printing = { +        enable = true; +        drivers = with pkgs; [ +          gutenprint +          gutenprintBin +          cnijfilter2 +        ]; +      }; +      avahi.enable = true; +      samba-wsdd = { +        enable = true; +        discovery = true; +      }; +      davfs2.enable = true; + +      locate.enable = true; +      snapper.configs = { +        home = { +          SUBVOLUME = "/home"; +          ALLOW_GROUPS = ["users"]; +          TIMELINE_CREATE = true; +          TIMELINE_CLEANUP = true; +        }; +      };      }; -    services.upower.enable = mkDefault cnf.laptop; +    # Beneficial for Pipewire +    security.rtkit.enable = true; -    services.avahi.enable = true; -    services.samba-wsdd = { -      enable = true; -      discovery = true; +    # Local share (avahi, samba) +    networking.firewall = { +      allowedTCPPorts = [5357]; +      allowedUDPPorts = [3702];      }; -    networking.firewall.allowedTCPPorts = [5357]; -    networking.firewall.allowedUDPPorts = [3702];      fonts.packages = with pkgs; [        (nerdfonts.override {fonts = ["Hack"];}) @@ -253,52 +311,12 @@ in {        unifont      ]; -    services.udev.extraRules = '' -      ACTION=="add|change", KERNEL=="sd*[!0-9]", ATTR{queue/scheduler}="bfq" -    ''; -    hardware.opengl = { -      driSupport = true; -      driSupport32Bit = true; -    }; - -    hardware.bluetooth.enable = mkIf cnf.laptop true; - -    services.hardware.openrgb = { -      enable = true; -      package = pkgs.openrgb-with-all-plugins; -    }; -      documentation = {        enable = true;        man.enable = true;        info.enable = true;      }; -    services.snapper.configs = { -      home = { -        SUBVOLUME = "/home"; -        ALLOW_GROUPS = ["users"]; -        TIMELINE_CREATE = true; -        TIMELINE_CLEANUP = true; -      }; -    }; - -    # Autologin on the first TTY -    services.getty = { -      extraArgs = ["--skip-login"]; -      loginProgram = "${pkgs.bash}/bin/sh"; -      loginOptions = toString (pkgs.writeText "login-program.sh" '' -        if [[ "$(tty)" == '/dev/tty1' ]]; then -          ${pkgs.shadow}/bin/login -f cynerd; -        else -          ${pkgs.shadow}/bin/login; -        fi -      ''); -    }; - -    # Leds group is required for light -    users.users.cynerd.extraGroups = ["leds"]; -      # VTI settings      console = {        colors = [ @@ -322,12 +340,6 @@ in {        earlySetup = true;        useXkbConfig = true;      }; -    services.xserver.xkb.options = "grp:alt_shift_toggle,caps:escape"; -    services.gpm.enable = true; - -    services.locate.enable = true; - -    services.davfs2.enable = true;      # Support running app images      boot.binfmt.registrations.appimage = { | 
