From cfea7eb4618eba1ac01d9a85fe08c98ba2215f83 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Tue, 19 Jun 2018 14:18:36 +0200 Subject: [PATCH] Add x270 laptop configuration --- systems/laptop-new.nix | 378 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) create mode 100644 systems/laptop-new.nix diff --git a/systems/laptop-new.nix b/systems/laptop-new.nix new file mode 100644 index 0000000..f2008d0 --- /dev/null +++ b/systems/laptop-new.nix @@ -0,0 +1,378 @@ +{ config, pkgs, ... }: let + packages = (import ../lib/packages.nix) { config = config.nixpkgs.config; }; + callPackageFile = path: (import path) packages; +in { + imports = [ + (callPackageFile ../profiles/system/base.nix) + + (callPackageFile ../profiles/environment/graphical-environment.nix) + (callPackageFile ../profiles/environment/plasma5.nix) + (callPackageFile ../profiles/environment/common-software.nix) + + (callPackageFile ../profiles/system/efi-boot.nix) + (callPackageFile ../profiles/system/networked.nix) + (callPackageFile ../profiles/system/printing.nix) + (callPackageFile ../profiles/system/scanning.nix) + (callPackageFile ../profiles/system/pulseaudio.nix) + (callPackageFile ../profiles/system/virtualization.nix) + + (callPackageFile ../profiles/software/elasticsearch.nix) + + (callPackageFile ../profiles/software/yakuake.nix) + (callPackageFile ../profiles/software/synergy.nix) + (callPackageFile ../profiles/software/workrave.nix) + ]; + + networking = { + hostName = "x270"; + + firewall = { + allowedTCPPorts = [ + 4567 + ]; + + allowedUDPPorts = [ + ]; + }; + }; + + systemd.services.modem-manager.enable = false; + + users.extraUsers.sven = { + isNormalUser = true; + uid = 1000; + extraGroups = ["libvirtd" "plugdev" "dialout"]; + }; + + users.groups = { + davfs2 = {}; + plugdev = {}; + }; + + users.extraUsers.davfs2 = { + isNormalUser = true; + }; + + boot = { + kernelModules = [ "tun" "virtio" "nbd" ]; + + #loader.grub = { + # enable = true; + # version = 2; + # device = "/dev/nvme0n1"; + #}; + }; + + environment = { + pathsToLink = [ + "/lib/rustlib/src" + "/etc/udev/rules.d/" + ]; + }; + + hardware.bluetooth.enable = true; + /* hardware.pulseaudio.extraConfig = '' + load-module module-loopback + load-module module-combine-sink sink_name=all + ''; */ + /* hardware.bluetooth.extraConfig = " + [General] + Enable=Source,Sink,Media,Socket + "; */ + + services.xserver.synaptics = { + enable = false; + }; + + services.xserver.libinput = { + enable = true; + clickMethod = "clickfinger"; + naturalScrolling = true; + tapping = false; + accelSpeed = "4"; + }; + + services.fprintd.enable = true; + + system.stateVersion = "17.09"; + + services.printing.drivers = [pkgs.gutenprint]; + + environment.systemPackages = [ + pkgs.sshuttle + pkgs.ark + pkgs.okular + pkgs.kate + pkgs.cabextract + pkgs.glibcLocales + pkgs.rtl-sdr + pkgs.gqrx + /* packages.unstable.platformio */ + pkgs.clang + pkgs.llvm + pkgs.gcc + pkgs.arduino + pkgs.gwenview + pkgs.fritzing + /* packages.unstable.gcc-arm-embedded + packages.unstable.openocd */ + ]; + + environment.etc."X11/xorg.conf.d/40-libinput.conf".text = '' + # Match on all types of devices but joysticks + Section "InputClass" + Identifier "libinput pointer catchall" + MatchIsPointer "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + EndSection + + Section "InputClass" + Identifier "libinput keyboard catchall" + MatchIsKeyboard "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + EndSection + + Section "InputClass" + Identifier "libinput touchpad catchall" + MatchIsTouchpad "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + EndSection + + Section "InputClass" + Identifier "libinput touchscreen catchall" + MatchIsTouchscreen "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + EndSection + + Section "InputClass" + Identifier "libinput tablet catchall" + MatchIsTablet "on" + MatchDevicePath "/dev/input/event*" + Driver "libinput" + EndSection + ''; + + environment.etc."X11/xorg.conf.d/40-libinput.conf".enable = true; + services.xserver.inputClassSections = ['' + Identifier "Keyboard catchall" + MatchIsKeyboard "on" + Option "XkbRules" "evdev" + '']; + + services.udev.extraRules = '' + # Copyright (c) 2014-present PlatformIO + # + # Licensed under the Apache License, Version 2.0 (the "License"); + # you may not use this file except in compliance with the License. + # You may obtain a copy of the License at + # + # http://www.apache.org/licenses/LICENSE-2.0 + # + # Unless required by applicable law or agreed to in writing, software + # distributed under the License is distributed on an "AS IS" BASIS, + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + # See the License for the specific language governing permissions and + # limitations under the License. + + ##################################################################################### + # + # INSTALLATION + # + # Please visit > http://docs.platformio.org/en/latest/faq.html#platformio-udev-rules + # + ##################################################################################### + + # + # Boards + # + + # CP210X USB UART + SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666" + + # FT232R USB UART + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666" + + # Prolific Technology, Inc. PL2303 Serial Port + SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666" + + # QinHeng Electronics HL-340 USB-Serial adapter + SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666" + + # Arduino boards + SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][02]*", MODE:="0666" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666" + + # Arduino SAM-BA + ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{MTP_NO_PROBE}="1" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666" + KERNEL=="ttyACM*", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666" + + # Digistump boards + SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666" + KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1" + + # STM32 discovery boards, with onboard st/linkv2 + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374?", MODE:="0666" + + # STM32 discovery boards, with Maple Leaf USB bootloader + #SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="000[34]", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1" + #SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="000[34]", ENV{MTP_NO_PROBE}="1" + ATTRS{idProduct}=="1001", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev" + ATTRS{idProduct}=="1002", ATTRS{idVendor}=="0110", MODE="664", GROUP="plugdev" + ATTRS{idProduct}=="0003", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idProduct}=="0004", ATTRS{idVendor}=="1eaf", MODE="664", GROUP="plugdev" SYMLINK+="maple", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="000?", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="000?", ENV{MTP_NO_PROBE}="1" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", MODE:="0664" + KERNEL=="ttyACM*", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0004", MODE:="0664" + + # USBtiny + SUBSYSTEMS=="usb", ATTRS{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0666" + + # USBasp V2.0 + SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE:="0666" + + # Teensy boards + ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{ID_MM_DEVICE_IGNORE}="1" + ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{MTP_NO_PROBE}="1" + SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666" + KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666" + + #TI Stellaris Launchpad + SUBSYSTEMS=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666" + + #TI MSP430 Launchpad + SUBSYSTEMS=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666" + + + # + # Debuggers + # + + # Black Magic Probe + SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic GDB Server" + SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic UART Port" + + # opendous and estick + ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204f", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Original FT232/FT245 VID:PID + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Original FT2232 VID:PID + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Original FT4232 VID:PID + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Original FT232H VID:PID + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # DISTORTEC JTAG-lock-pick Tiny 2 + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8220", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # TUMPA, TUMPA Lite + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # XDS100v2 + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a6d0", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Xverve Signalyzer Tool (DT-USB-ST), Signalyzer LITE (DT-USB-SLITE) + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca0", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca1", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # TI/Luminary Stellaris Evaluation Board FTDI (several) + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd9", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # TI/Luminary Stellaris In-Circuit Debug Interface FTDI (ICDI) Board + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcda", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # egnite Turtelizer 2 + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bdc8", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Section5 ICEbear + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c140", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c141", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Amontec JTAGkey and JTAGkey-tiny + ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # TI ICDI + ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # STLink v1 + ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # STLink v2 + ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # STLink v2-1 + ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Hilscher NXHX Boards + ATTRS{idVendor}=="0640", ATTRS{idProduct}=="0028", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Hitex STR9-comStick + ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002c", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Hitex STM32-PerformanceStick + ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002d", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Altera USB Blaster + ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Amontec JTAGkey-HiSpeed + ATTRS{idVendor}=="0fbb", ATTRS{idProduct}=="1000", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # SEGGER J-Link + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0103", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0104", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0107", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0108", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1010", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1011", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1012", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1013", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1014", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1016", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1017", MODE="660", GROUP="plugdev", TAG+="uaccess" + ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1018", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Raisonance RLink + ATTRS{idVendor}=="138e", ATTRS{idProduct}=="9000", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Debug Board for Neo1973 + ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Olimex ARM-USB-OCD + ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Olimex ARM-USB-OCD-TINY + ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Olimex ARM-JTAG-EW + ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="001e", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Olimex ARM-USB-OCD-TINY-H + ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # Olimex ARM-USB-OCD-H + ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # USBprog with OpenOCD firmware + ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c63", MODE="660", GROUP="plugdev", TAG+="uaccess" + + # TI/Luminary Stellaris In-Circuit Debug Interface (ICDI) Board + ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="660", GROUP="plugdev", TAG+="uaccess" + ''; +}