This repository has no description
4.1 kB
165 lines
1{
2 self,
3 config,
4 lib,
5 pkgs,
6 ...
7}:
8let
9 stockholmPkgs = self.inputs.stockholm.packages.${pkgs.stdenv.hostPlatform.system};
10in
11{
12 imports = [
13 ../../alacritty.nix
14 ../../xdg-open.nix
15 ../../yubikey.nix
16 ../../pipewire.nix
17 ../../themes.nix
18 ../../fonts.nix
19 {
20 users.users.mainUser.packages = [
21 pkgs.sshuttle
22 self.packages.${pkgs.system}.mpv
23 ];
24 security.sudo.extraConfig = ''
25 lass ALL= (root) NOPASSWD:SETENV: ${pkgs.sshuttle}/bin/.sshuttle-wrapped
26 '';
27 }
28 {
29 #font magic
30 options.lass.fonts = {
31 regular = lib.mkOption {
32 type = lib.types.str;
33 default = "xft:Iosevka Term SS15:style=regular";
34 };
35 bold = lib.mkOption {
36 type = lib.types.str;
37 default = "xft:Iosevka Term SS15:style=bold";
38 };
39 italic = lib.mkOption {
40 type = lib.types.str;
41 default = "xft:Iosevka Term SS15:style=italic";
42 };
43 };
44 config.services.xserver.displayManager.sessionCommands =
45 let
46 xres = pkgs.writeText "xreources" ''
47 *.font: ${config.lass.fonts.regular}
48 *.boldFont: ${config.lass.fonts.bold}
49 *.italicFont: ${config.lass.fonts.italic}
50 '';
51 in
52 ''
53 ${pkgs.xorg.xrdb}/bin/xrdb -merge ${xres}
54 '';
55 }
56 ];
57
58 users.users.mainUser.extraGroups = [
59 "audio"
60 "video"
61 ];
62
63 time.timeZone = "Europe/Berlin";
64
65 programs.ssh.agentTimeout = "10m";
66 programs.ssh.startAgent = false;
67 services.openssh.forwardX11 = true;
68
69 environment.systemPackages = with pkgs; [
70 acpi
71 acpilight
72 ripgrep
73 dmenu
74 stockholmPkgs.fzfmenu
75 dconf
76 libarchive
77 ncdu
78 nix-index
79 nixpkgs-review
80 nmap
81 pavucontrol
82 sxiv
83 nsxiv
84 wirelesstools
85 x11vnc
86 xclip
87 xorg.xmodmap
88 xorg.xhost
89 xdotool
90 xsel
91 zathura
92 flameshot
93 (pkgs.writers.writeDashBin "screenshot" ''
94 ${pkgs.flameshot}/bin/flameshot gui
95 '')
96 (pkgs.writers.writeDashBin "IM" ''
97 ${pkgs.mosh}/bin/mosh green.r -- tmux new-session -A -s IM -- weechat
98 '')
99 (pkgs.writers.writeDashBin "deploy_hm" ''
100 target=$1
101 shift
102
103 hm_profile=$(${pkgs.home-manager}/bin/home-manager -f ~/sync/stockholm/lass/2configs/home-manager.nix build "$@")
104 nix-copy-closure --to "$target" "$hm_profile"
105 ssh "$target" -- "$hm_profile"/activate
106 '')
107 zbar
108 ];
109
110 services.udev.extraRules = ''
111 SUBSYSTEM=="backlight", ACTION=="add", \
112 RUN+="${pkgs.coreutils}/bin/chgrp video /sys/class/backlight/%k/brightness", \
113 RUN+="${pkgs.coreutils}/bin/chmod g+w /sys/class/backlight/%k/brightness"
114 '';
115
116 services.xserver = {
117 enable = true;
118 layout = "us";
119 display = lib.mkForce 0;
120 xkbVariant = "altgr-intl";
121 xkbOptions = "caps:escape";
122 libinput.enable = true;
123 exportConfiguration = true;
124 displayManager = {
125 lightdm.enable = true;
126 defaultSession = "none+xmonad";
127 sessionCommands = ''
128 ${pkgs.xorg.xhost}/bin/xhost +LOCAL:
129 '';
130 };
131 };
132
133 nixpkgs.config.packageOverrides = _super: {
134 dmenu = pkgs.writers.writeDashBin "dmenu" ''
135 ${stockholmPkgs.fzfmenu}/bin/fzfmenu "$@"
136 '';
137 };
138
139 services.clipmenu.enable = true;
140
141 # synchronize all the clipboards
142 systemd.user.services.autocutsel = {
143 enable = true;
144 wantedBy = [ "graphical-session.target" ];
145 after = [ "graphical-session.target" ];
146 serviceConfig = {
147 Type = "forking";
148 ExecStart = pkgs.writers.writeDash "autocutsel" ''
149 ${pkgs.autocutsel}/bin/autocutsel -fork -selection PRIMARY
150 ${pkgs.autocutsel}/bin/autocutsel -fork -selection CLIPBOARD
151 '';
152 };
153 };
154 systemd.services.xsettingsd = {
155 wantedBy = [ "multi-user.target" ];
156 after = [ "display-manager.service" ];
157 environment.DISPLAY = ":0";
158 serviceConfig = {
159 ExecStart = "${pkgs.xsettingsd}/bin/xsettingsd -c /var/theme/config/xsettings.conf";
160 User = "lass";
161 Restart = "always";
162 RestartSec = "15s";
163 };
164 };
165}