dot

NixOS dotfiles
git clone https://git.echoz.io/dot.git
Log | Files | Refs

default.nix (2702B)


      1 {
      2   lib,
      3   config,
      4   pkgs,
      5 
      6   style,
      7   user,
      8   ...
      9 }:
     10 let
     11   hmUserCfg = config.home-manager.users.${user};
     12 in
     13 {
     14   config = {
     15     users.users.greeter = {
     16       createHome = true;
     17       home = "/var/greeter";
     18     };
     19 
     20     home-manager.users.greeter = {
     21       home = {
     22         stateVersion = config.system.stateVersion;
     23         pointerCursor = hmUserCfg.home.pointerCursor;
     24       };
     25 
     26       wayland.windowManager.hyprland = {
     27         enable = true;
     28         package = null;
     29         portalPackage = null;
     30         configType = "hyprlang";
     31         settings = {
     32           inherit (hmUserCfg.wayland.windowManager.hyprland.settings)
     33             monitor
     34             input
     35             general
     36             misc
     37             ecosystem
     38             decoration
     39             animations
     40             ;
     41           windowrule = "float on, match:class ^gtkgreet$";
     42           layerrule = "blur on, match:namespace waybar";
     43           exec-once = "${lib.getExe pkgs.gtkgreet} -s ${pkgs.writeText "gtkgreet-style.css" ''
     44             window, button, entry {
     45               background: ${style.colors.bg.rgba};
     46               border: none;
     47               box-shadow: none;
     48               text-shadow: none;
     49             }
     50             label, window, button, entry {
     51               color: #${style.colors.fg.hex};
     52             }
     53             #command-selector arrow {
     54               opacity: 0;
     55             }
     56             #clock {
     57               margin-bottom: -48px;
     58               opacity: 0;
     59             }
     60           ''} -c 'uwsm start hyprland-uwsm.desktop'; hyprctl dispatch exit";
     61         };
     62       };
     63 
     64       services.hyprpaper = {
     65         enable = true;
     66         settings = hmUserCfg.services.hyprpaper.settings;
     67       };
     68 
     69       programs.waybar = {
     70         enable = true;
     71         systemd.enable = true;
     72 
     73         inherit (hmUserCfg.programs.waybar) style;
     74 
     75         settings = {
     76           mainBar = {
     77             inherit (hmUserCfg.programs.waybar.settings.mainBar)
     78               layer
     79               position
     80               margin-left
     81               margin-right
     82               margin-top
     83               height
     84               "clock#date"
     85               "clock"
     86               "clock#utc"
     87               battery
     88               cpu
     89               memory
     90               "custom/disk"
     91               ;
     92             modules-center = [
     93               "clock#date"
     94               "clock"
     95               "clock#utc"
     96             ];
     97             modules-right = [
     98               "battery"
     99               "cpu"
    100               "memory"
    101               "custom/disk"
    102             ];
    103           };
    104         };
    105       };
    106     };
    107 
    108     services.greetd = {
    109       enable = true;
    110       settings = {
    111         default_session.command = "uwsm start hyprland-uwsm.desktop";
    112       };
    113     };
    114   };
    115 }