nixos-dotfiles

nixos-dotfiles

https://git.tonybtw.com/nixos-dotfiles.git git://git.tonybtw.com/nixos-dotfiles.git
4,192 bytes raw
1
{
2
  config,
3
  lib,
4
  pkgs,
5
  unstable_pkgs,
6
  nwm,
7
  oxwm,
8
  ...
9
}: let
10
  ns = pkgs.writeShellScriptBin "ns" (builtins.readFile ./scripts/nixpkgs.sh);
11
  # dwlsesh = pkgs.writeShellScriptBin "dwlsesh" (builtins.readFile ./scripts/dwlsesh.sh);
12
  cinit = pkgs.writeShellScriptBin "cinit" (builtins.readFile ./scripts/cinit.sh);
13
  # myDwl = pkgs.dwl.overrideAttrs (old: {
14
  #   src = ./config/dwl;
15
  #   nativeBuildInputs =
16
  #     (old.nativeBuildInputs or [])
17
  #     ++ [
18
  #       pkgs.pkg-config
19
  #       pkgs.wayland
20
  #       pkgs.wayland-protocols
21
  #       pkgs.scdoc
22
  #     ];
23
  #
24
  #   buildInputs =
25
  #     (old.buildInputs or [])
26
  #     ++ [
27
  #       unstable_pkgs.wlroots
28
  #       unstable_pkgs.libdrm
29
  #       pkgs.wayland
30
  #       unstable_pkgs.fcft
31
  #       pkgs.pixman
32
  #       pkgs.fontconfig
33
  #       pkgs.freetype
34
  #       pkgs.harfbuzz
35
  #       pkgs.libxkbcommon
36
  #     ];
37
  #   patches = [];
38
  # });
39
in {
40
  # hardware-configuration.nix imported per-host in flake.nix
41
42
  boot.loader.systemd-boot.enable = true;
43
  boot.loader.efi.canTouchEfiVariables = true;
44
45
  # networking.hostName set per-host in flake.nix
46
  networking.networkmanager.enable = true;
47
48
  programs.nix-ld.enable = true;
49
50
  time.timeZone = "America/Los_Angeles";
51
  services = {
52
    picom.enable = true;
53
    displayManager = {
54
      ly.enable = true;
55
    };
56
    xserver = {
57
      enable = true;
58
      autoRepeatDelay = 200;
59
      autoRepeatInterval = 35;
60
      windowManager = {
61
        xmonad = {
62
          enable = true;
63
          enableContribAndExtras = true;
64
          extraPackages = hpkgs: [
65
            hpkgs.xmonad
66
            hpkgs.xmonad-extras
67
            hpkgs.xmonad-contrib
68
          ];
69
        };
70
        qtile.enable = true;
71
        oxwm.enable = true;
72
        dwm = {
73
          enable = true;
74
          package = unstable_pkgs.dwm.overrideAttrs {
75
            src = ./config/dwm;
76
          };
77
        };
78
      };
79
      modules = [pkgs.xorg.xf86inputlibinput];
80
      displayManager.sessionCommands = ''
81
        xwallpaper --zoom ~/walls/waifus/waifu3.jpg
82
      '';
83
    };
84
  };
85
86
  users.users.tony = {
87
    isNormalUser = true;
88
    extraGroups = ["wheel"];
89
    packages = with pkgs; [
90
      tree
91
    ];
92
  };
93
94
  users.users.sandbox = {
95
    isNormalUser = true;
96
    extraGroups = ["wheel" "video" "audio"];
97
  };
98
99
  # programs.hyprland = {
100
  #   enable = true;
101
  #   xwayland.enable = true;
102
  #   package = unstable_pkgs.hyprland;
103
  # };
104
105
  programs.mango = {
106
    enable = true;
107
  };
108
109
  # programs.sway = {
110
  #   enable = true;
111
  #   wrapperFeatures.gtk = true;
112
  #   xwayland.enable = true;
113
  # };
114
115
  services.desktopManager.cosmic.enable = true;
116
117
  programs.firefox.enable = true;
118
  environment.systemPackages = [
119
    pkgs.vim
120
    pkgs.wget
121
    pkgs.alacritty
122
    pkgs.git
123
    pkgs.pavucontrol
124
    pkgs.xorg.xinit
125
    pkgs.xorg.xf86inputlibinput
126
    pkgs.ncurses.dev
127
    pkgs.pkg-config
128
    unstable_pkgs.haskellPackages.xmonad-contrib
129
    unstable_pkgs.hyprland
130
    unstable_pkgs.uwsm
131
    (unstable_pkgs.writeShellScriptBin
132
      "reload_waybar"
133
      ''
134
        pkill waybar
135
        sleep 0.2
136
        waybar -c ~/.config/mango/config.jsonc &
137
      '')
138
    (unstable_pkgs.writeShellScriptBin
139
      "snip"
140
      ''
141
        ${unstable_pkgs.grim}/bin/grim -l 0 -g "$(${unstable_pkgs.slurp}/bin/slurp)" - | wl-copy
142
      '')
143
    ns
144
    # dwlsesh
145
    # myDwl
146
    cinit
147
    unstable_pkgs.xmobar
148
  ];
149
150
  # Hack for now.. will fix later
151
  # services.displayManager.sessionPackages = [
152
  #   (pkgs.writeTextFile {
153
  #     name = "dwl-session";
154
  #     destination = "/share/wayland-sessions/dwl.desktop";
155
  #     text = ''
156
  #       [Desktop Entry]
157
  #       Name=dwl
158
  #       Comment=dwl window manager
159
  #       Exec=dwlsesh
160
  #       TryExec=dwl
161
  #       Type=Application
162
  #     '';
163
  #     passthru.providedSessions = ["dwl"];
164
  #   })
165
  # ];
166
167
  fonts.packages = with pkgs; [
168
    nerd-fonts.jetbrains-mono
169
  ];
170
171
  nixpkgs.config.allowUnfree = true;
172
  # programs.niri.enable = true;
173
174
  nix.settings = {
175
    experimental-features = ["nix-command" "flakes"];
176
    # Increase download buffer size limit
177
    download-buffer-size = 268435456; # 256 MB
178
  };
179
  system.stateVersion = "25.05";
180
}