btw i use nix
1{
2 pkgs,
3 config,
4 lib,
5 ...
6}:
7
8let
9 cfg = config.custom.gui;
10in
11{
12 options.custom.gui.i3 = lib.mkEnableOption "i3";
13
14 config = lib.mkIf cfg.i3 {
15 home-manager.users.${config.custom.username} =
16 { config, ... }:
17 {
18 config.custom.gui.i3.enable = true;
19 };
20
21 #services.displayManager.lightdm.enable = true;
22 services.displayManager.defaultSession = "none+i3";
23 services.xserver = {
24 enable = true;
25 windowManager.i3.enable = true;
26 };
27
28 environment.systemPackages = with pkgs; [
29 i3-gaps
30 xorg.xrandr
31 arandr
32 xss-lock
33 xsecurelock
34 redshift
35 alacritty
36 rofi
37 dconf
38 rofimoji
39 dunst
40 haskellPackages.greenclip
41 xdotool
42 xclip
43 xf86_input_wacom
44 ];
45
46 # TODO read this
47 # https://github.com/flatpak/xdg-desktop-portal/blob/1.18.1/doc/portals.conf.rst.in
48 xdg.portal = {
49 enable = true;
50 wlr.enable = true;
51 config.common.default = "*";
52 };
53
54 services.geoclue2.appConfig.redshift = {
55 isAllowed = true;
56 isSystem = false;
57 };
58 };
59}