2024-07-18 04:08:27 +00:00
|
|
|
{ lib, pkgs, config, ... }:
|
|
|
|
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.modules.desktop;
|
|
|
|
in {
|
|
|
|
imports = [
|
|
|
|
# Import desktop environment modules
|
2024-07-19 01:34:42 +00:00
|
|
|
./bar/waybar.nix
|
2024-07-18 04:08:27 +00:00
|
|
|
./lock-screen/waylock.nix
|
|
|
|
./window-manager/river.nix
|
|
|
|
];
|
|
|
|
|
|
|
|
options.modules.desktop = {
|
2024-07-18 23:00:39 +00:00
|
|
|
wayland = mkEnableOption "wayland";
|
2024-07-18 04:08:27 +00:00
|
|
|
initScript = mkOption {
|
|
|
|
type = types.lines;
|
|
|
|
default = "${pkgs.bash}/bin/bash";
|
|
|
|
description = "Bash script to execute after logging in.";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = {
|
2024-07-18 23:00:39 +00:00
|
|
|
home.packages = optionals cfg.wayland (with pkgs; [
|
|
|
|
pkgs.wl-clipboard
|
|
|
|
pkgs.wtype
|
|
|
|
]);
|
|
|
|
|
2024-07-18 04:08:27 +00:00
|
|
|
home.file.".initrc" = {
|
|
|
|
enable = true;
|
|
|
|
executable = true;
|
|
|
|
text = ''
|
|
|
|
#!${pkgs.bash}/bin/bash
|
|
|
|
|
|
|
|
'' + cfg.initScript;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|