summaryrefslogtreecommitdiff
path: root/profiles/graphical/suckless.nix
blob: 5a51ebbe30fdd1dc83eaae224129c8256064a754 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
{
  self,
  pkgs,
  lib,
  machine,
  ...
}:
with lib;
  mkIf (!machine.isDarwin) {
    nixpkgs.overlays = [
      (import (self + "/overlays/suckless.nix") {
        inherit pkgs;
        home = self;
      })
    ];
    services.xserver.enable = true;
    services.xserver.displayManager.startx.enable = true;
    services.libinput.enable = true;
    hm = {
      xsession = {
        enable = true;
      };
      services.picom = {
        enable = true;
        activeOpacity = 1;
        inactiveOpacity = 0.7;
        opacityRules = [
          "100:class_g = 'Wfica'"
          "100:class_g = 'dwm'"
          "100:class_g = 'Zathura'"
          "100:name *= 'Firefox'"
          "100:name *= 'mpv'"
          "100:name *= 'LibreWolf'"
          "100:name *= 'Steam'"
          "100:name *= 'Risk of Rain'"
          "100:name *= 'KVM'"
        ];
        settings = {
          inactive-opacity-override = false;
          frame-opacity = 1;
        };
      };
      services.dunst = {
        enable = true;
        settings = {
          global = {
            monitor = 0;
            follow = "keyboard";
            width = 370;
            height = 350;
            offset = "0x19";
            padding = 2;
            horizontal_padding = 2;
            transparency = 0;
            font = "Monospace 12";
            format = "<b>%s</b>\\n%b";
          };
          urgency_low = {
            background = "#1d2021";
            foreground = "#928374";
            timeout = 3;
          };
          urgency_normal = {
            foreground = "#ebdbb2";
            background = "#458588";
            timeout = 5;
          };
          urgency_critical = {
            background = "#1cc24d";
            foreground = "#ebdbb2";
            frame_color = "#fabd2f";
            timeout = 10;
          };
        };
      };
      home.packages = with pkgs; [
        libnotify
        pywal
        inotify-tools

        dwm
        dwmblocks
        sxiv
        st
        dmenu
        tabbed
        surfraw
        surf

        # librewolf
        ungoogled-chromium
        xclip
        xorg.xwininfo
        xdotool
        maim
        asciinema
        asciinema-agg
        fontconfig
      ];
    };
    fonts = {
      fontconfig = {
        enable = true;
      };
      packages = with pkgs; [
        nerd-fonts.fira-code
        nerd-fonts.jetbrains-mono
      ];
    };
  }