summaryrefslogtreecommitdiff
path: root/profiles/core/configuration.nix
diff options
context:
space:
mode:
Diffstat (limited to 'profiles/core/configuration.nix')
-rw-r--r--profiles/core/configuration.nix154
1 files changed, 154 insertions, 0 deletions
diff --git a/profiles/core/configuration.nix b/profiles/core/configuration.nix
new file mode 100644
index 0000000..e677306
--- /dev/null
+++ b/profiles/core/configuration.nix
@@ -0,0 +1,154 @@
+{
+ config,
+ pkgs,
+ ...
+}: {
+ users.users.mike = {
+ isNormalUser = true;
+ extraGroups = ["wheel" "networkmanager" "docker" "transmission"];
+ };
+
+ virtualisation.docker.enable = true;
+
+ hardware.keyboard.qmk.enable = true;
+ services.udev.extraRules = ''
+ # Atmel DFU
+ ### ATmega16U2
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
+ ### ATmega32U2
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
+ ### ATmega16U4
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
+ ### ATmega32U4
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
+ ### AT90USB64
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
+ ### AT90USB162
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
+ ### AT90USB128
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
+
+ # Input Club
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
+
+ # STM32duino
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
+ # STM32 DFU
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
+
+ # BootloadHID
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
+
+ # USBAspLoader
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
+
+ # USBtinyISP
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1782", ATTRS{idProduct}=="0c9f", TAG+="uaccess"
+
+ # ModemManager should ignore the following devices
+ # Atmel SAM-BA (Massdrop)
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+ # Caterina (Pro Micro)
+ ## pid.codes shared PID
+ ### Keyboardio Atreus 2 Bootloader
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1209", ATTRS{idProduct}=="2302", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Spark Fun Electronics
+ ### Pro Micro 3V3/8MHz
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Pro Micro 5V/16MHz
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### LilyPad 3V3/8MHz (and some Pro Micro clones)
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Pololu Electronics
+ ### A-Star 32U4
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Arduino SA
+ ### Leonardo
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Micro
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## Adafruit Industries LLC
+ ### Feather 32U4
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### ItsyBitsy 32U4 3V3/8MHz
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### ItsyBitsy 32U4 5V/16MHz
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ## dog hunter AG
+ ### Leonardo
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+ ### Micro
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
+
+ # hid_listen
+ KERNEL=="hidraw*", MODE="0660", GROUP="plugdev", TAG+="uaccess", TAG+="udev-acl"
+
+ # hid bootloaders
+ ## QMK HID
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2067", TAG+="uaccess"
+ ## PJRC's HalfKay
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="0478", TAG+="uaccess"
+
+ # APM32 DFU
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="314b", ATTRS{idProduct}=="0106", TAG+="uaccess"
+
+ # GD32V DFU
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="28e9", ATTRS{idProduct}=="0189", TAG+="uaccess"
+
+ # WB32 DFU
+ SUBSYSTEMS=="usb", ATTRS{idVendor}=="342d", ATTRS{idProduct}=="dfa0", TAG+="uaccess"
+ '';
+
+ boot.loader.systemd-boot.enable = true;
+ boot.loader.efi.canTouchEfiVariables = true;
+
+ networking.hostName = "lemptop";
+ networking.networkmanager.enable = true;
+ time.timeZone = "Europe/Amsterdam";
+
+ services.xserver.enable = true;
+ services.xserver.displayManager.startx.enable = true;
+ services.xserver.libinput.enable = true;
+
+ services.udev.packages = [ pkgs.yubikey-personalization ];
+ services.pcscd.enable = true;
+ security.pam.services = {
+ login.u2fAuth = true;
+ sudo.u2fAuth = true;
+ };
+
+ sound.enable = true;
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ };
+
+ services.transmission = {
+ enable = true;
+ };
+
+ hardware.bluetooth.enable = true;
+ services.blueman.enable = true;
+
+ programs.slock.enable = true;
+
+ documentation.dev.enable = true;
+ environment.systemPackages = with pkgs; [
+ man-pages
+ man-pages-posix
+ vim
+ wget
+ git
+ pinentry-curses
+ ];
+
+ system.stateVersion = "23.05";
+ nix.package = pkgs.nixUnstable;
+ nix.extraOptions = ''
+ experimental-features = nix-command flakes
+ '';
+}