~ruther/nixos-config

38ce94f0f3f51277d0772c9995a1dc955f704c0e — Frantisek Bohacek 10 months ago 059298e feat/isos
feat: add dwl iso image

It's broken now, but so what
M nixos/isos/common/default.nix => nixos/isos/common/default.nix +11 -1
@@ 13,10 13,20 @@

  fonts.packages = [
    (pkgs.nerdfonts.override {
      fonts = [ "FiraCode" ];
      fonts = [ "FiraCode" "Ubuntu" ];
    })
    pkgs.font-awesome
    pkgs.ubuntu_font_family
  ];

  fonts.fontconfig = {
    defaultFonts = {
      serif = [ "Ubuntu" ];
      sansSerif = [ "Ubuntu" ];
      monospace = [ "Ubuntu Mono" ];
    };
  };

  environment.systemPackages = [
    pkgs.foot
  ];

M nixos/isos/common/users.nix => nixos/isos/common/users.nix +4 -2
@@ 1,4 1,4 @@
{ lib, ... }:
{ config, lib, ... }:

{
  options.usersList = lib.mkOption {


@@ 7,9 7,11 @@

  config = {
    usersList = [ "root" "nixos" "ruther" ];
    # usersList = lib.attrNames config.users.users? infrec?

    users.users = lib.mkMerge [
      (lib.genAttrs config.usersList (name: {
        extraGroups = [ "input" ];
      }))
      {
        ruther = {
          isNormalUser = true;

M nixos/isos/default.nix => nixos/isos/default.nix +7 -7
@@ 18,13 18,13 @@ let
      ];
    };

    # dwl-install-iso = system: lib.nixosSystem {
    #   modules = [
    #     ./dwl-installation.nix
    #     depsInjectModule
    #     (systemModule system)
    #   ];
    # };
    dwl-install-iso = system: lib.nixosSystem {
      modules = [
        ./dwl-installation.nix
        depsInjectModule
        (systemModule system)
      ];
    };
  };
  systems = [ "x86_64-linux" "aarch64-linux" ];
in lib.genAttrs systems (system:

A nixos/isos/dwl-installation.nix => nixos/isos/dwl-installation.nix +101 -0
@@ 0,0 1,101 @@
{ config, lib, pkgs, modulesPath, ... }:

let
  inherit (config.deps-inject.inputs) self;

  dwl-startup = pkgs.writeShellScript "dwl-startup" ''
    exec &<-
    dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY
    systemctl start --user dwl-session.target
  '';

  dwl-start = pkgs.writeShellScript "dwl-start" ''
    export XDG_CURRENT_DESKTOP=wlroots XDG_BACKEND=wayland QT_QPA_PLATFORM=wayland MOZ_ENABLE_WAYLAND=1 _JAVA_AWT_WM_NONREPARENTING=1
    @dwl@ -s "${dwl-startup}"
    systemctl stop --user dwl-session.target
  '';
in {
  imports = [
    (modulesPath + "/installer/cd-dvd/installation-cd-graphical-base.nix")
    ./common
  ];

  services.xserver.enable = lib.mkForce false;

  environment.systemPackages = [
    # Clipboard
    pkgs.cliphist
    pkgs.wl-clipboard
    # PrintScreening
    pkgs.grim
    pkgs.slurp
    # pkgs.wldash
    pkgs.imv
    # DWL control
    self.packages.${pkgs.system}.dwlb
    self.packages.${pkgs.system}.dwlmsg
    pkgs.wlr-randr
    pkgs.wlrctl
    pkgs.wlopm

    pkgs.rofi-wayland

    (
      pkgs.symlinkJoin {
        name = "dwl";
        paths = [ self.packages.${pkgs.system}.dwl ];
        postBuild = ''
          dwlPath=$(readlink $out/bin/dwl)
          cp -f ${dwl-start} $out/bin/dwl
          substituteInPlace $out/bin/dwl \
            --replace-fail "@dwl@" "$dwlPath"
        '';
      }
    )
  ];

  boot.plymouth.enable = lib.mkForce false;
  hardware.bluetooth.enable = true;
  services.blueman.enable = true;
  services.power-profiles-daemon.enable = true;
  programs.nm-applet.enable = true;

  systemd.user.targets.dwl-session = {
    requires = [ "graphical-session.target" ];
    partOf = [ "graphical-session.target" ];
  };

  xdg.portal = {
    enable = true;
    extraPortals = [
      pkgs.xdg-desktop-portal-wlr
      pkgs.xdg-desktop-portal-gtk
    ];
    config = {
      wlroots = {
        default = [ "gtk" "wlr" ];
        "org.freedesktop.impl.portal.ScreenCast" = "wlr";
        "org.freedesktop.impl.portal.Screenshot" = "wlr";
        # https://github.com/labwc/labwc/discussions/1503
        "org.freedesktop.impl.portal.Inhibit" = "none";
      };
    };
  };

  programs.waybar = {
    enable = true;
    package = pkgs.waybar.overrideAttrs (oldAttrs: {
      patches = (oldAttrs.patches or []) ++ [
        (pkgs.fetchpatch {
          url = "https://github.com/Rutherther/Waybar/commit/98b08880409cfd1277dc491b2f89de39a5107e50.patch";
          hash = "sha256-qnMnjL8ejGEO9SeIEclez1OISY7poKimr4Hu+ngKnxA=";
        })
      ];
    });
  };

  systemd.user.tmpfiles.rules = [
    "L+ %h/.config/waybar/style.css - - - - ${self + "/home/modules/profiles/desktop/dwl/waybar/style.css"}"
    "L+ %h/.config/waybar/config.jsonc - - - - ${self + "/home/modules/profiles/desktop/dwl/waybar/config.jsonc"}"
  ];
}

Do not follow this link