From a1b467b849c6048e487d61c87ef8b2baacba5f3b Mon Sep 17 00:00:00 2001 From: lassulus Date: Sun, 25 Aug 2019 20:18:50 +0200 Subject: l xerxes.r: remove junk --- lass/1systems/xerxes/icarus/config.nix | 33 -------------------------------- lass/1systems/xerxes/icarus/physical.nix | 25 ------------------------ 2 files changed, 58 deletions(-) delete mode 100644 lass/1systems/xerxes/icarus/config.nix delete mode 100644 lass/1systems/xerxes/icarus/physical.nix (limited to 'lass') diff --git a/lass/1systems/xerxes/icarus/config.nix b/lass/1systems/xerxes/icarus/config.nix deleted file mode 100644 index dada4949..00000000 --- a/lass/1systems/xerxes/icarus/config.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - imports = [ - - - - - - - - # - - - - - - # - # - - - # - - ]; - - krebs.build.host = config.krebs.hosts.icarus; - - environment.systemPackages = with pkgs; [ - macchanger - nix-review - ]; - programs.adb.enable = true; -} diff --git a/lass/1systems/xerxes/icarus/physical.nix b/lass/1systems/xerxes/icarus/physical.nix deleted file mode 100644 index e9e09bc0..00000000 --- a/lass/1systems/xerxes/icarus/physical.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - imports = [ - ./config.nix - - - ]; - - fileSystems = { - "/bku" = { - device = "/dev/mapper/pool-bku"; - fsType = "btrfs"; - options = ["defaults" "noatime" "ssd" "compress=lzo"]; - }; - }; - - services.udev.extraRules = '' - SUBSYSTEM=="net", ATTR{address}=="00:24:d7:f0:a0:0c", NAME="wl0" - SUBSYSTEM=="net", ATTR{address}=="f0:de:f1:71:cb:35", NAME="et0" - ''; - - services.thinkfan.enable = true; - services.tlp.extraConfig = '' - START_CHARGE_THRESH_BAT0=80 - ''; -} -- cgit v1.2.3 From 247c4de76db2e367710543032276a4187d76906c Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 27 Aug 2019 16:55:20 +0200 Subject: l xerxes.r: add deploy alias --- lass/1systems/xerxes/config.nix | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lass') diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix index c120c17d..57871117 100644 --- a/lass/1systems/xerxes/config.nix +++ b/lass/1systems/xerxes/config.nix @@ -22,6 +22,14 @@ krebs.build.host = config.krebs.hosts.xerxes; + environment.shellAliases = { + deploy = pkgs.writeDash "deploy" '' + set -eu + export SYSTEM="$1" + $(nix-build $HOME/sync/stockholm/lass/krops.nix --no-out-link --argstr name "$SYSTEM" -A deploy) + ''; + }; + services.xserver = { displayManager.lightdm.autoLogin.enable = true; displayManager.lightdm.autoLogin.user = "lass"; -- cgit v1.2.3 From b7daacf31efea112e2d845e5d2c49e4ded26b739 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 27 Aug 2019 16:55:49 +0200 Subject: l xerxes.r: enable screenlock again --- lass/1systems/xerxes/config.nix | 1 - 1 file changed, 1 deletion(-) (limited to 'lass') diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix index 57871117..b577b31b 100644 --- a/lass/1systems/xerxes/config.nix +++ b/lass/1systems/xerxes/config.nix @@ -39,7 +39,6 @@ "xpad" ]; - lass.screenlock.enable = lib.mkForce false; krebs.syncthing = { folders = { the_playlist = { -- cgit v1.2.3 From c0e4269e6a6518b6a648d250c437b59460caa6e9 Mon Sep 17 00:00:00 2001 From: lassulus Date: Tue, 27 Aug 2019 16:56:19 +0200 Subject: l xerxes.r: support most of the hardware --- lass/1systems/xerxes/config.nix | 70 ++++++++++++++++++++++++++++++++++++--- lass/1systems/xerxes/physical.nix | 24 +++++++------- 2 files changed, 78 insertions(+), 16 deletions(-) (limited to 'lass') diff --git a/lass/1systems/xerxes/config.nix b/lass/1systems/xerxes/config.nix index b577b31b..2d25bc88 100644 --- a/lass/1systems/xerxes/config.nix +++ b/lass/1systems/xerxes/config.nix @@ -35,10 +35,6 @@ displayManager.lightdm.autoLogin.user = "lass"; }; - boot.blacklistedKernelModules = [ - "xpad" - ]; - krebs.syncthing = { folders = { the_playlist = { @@ -54,4 +50,70 @@ umask = "0007"; }; }; + + boot.blacklistedKernelModules = [ "xpad" ]; + systemd.services.xboxdrv = { + wantedBy = [ "multi-user.target" ]; + script = '' + ${pkgs.xboxdrv.overrideAttrs(o: { + patches = [ (pkgs.fetchurl { + url = "https://patch-diff.githubusercontent.com/raw/xboxdrv/xboxdrv/pull/251.patch"; + sha256 = "17784y20mxqrlhgvwvszh8lprxrvgmb7ah9dknmbhj5jhkjl8wq5"; + }) ]; + })}/bin/xboxdrv --type xbox360 --dbus disabled -D + ''; + }; + + programs.adb.enable = true; + + services.logind.lidSwitch = "ignore"; + services.acpid = { + enable = true; + lidEventCommands = '' + export DISPLAY=:${toString config.services.xserver.display} + case "$1" in + "button/lid LID close") + ${pkgs.xorg.xinput}/bin/xinput disable 'pointer: Mouse for Windows' + ${pkgs.xorg.xinput}/bin/xinput disable 'keyboard: Mouse for Windows' + ${pkgs.acpilight}/bin/xbacklight -get > /tmp/pre_lid_brightness + ${pkgs.acpilight}/bin/xbacklight -set 0 + ;; + "button/lid LID open") + ${pkgs.xorg.xinput}/bin/xinput enable 'pointer: Mouse for Windows' + ${pkgs.xorg.xinput}/bin/xinput enable 'keyboard: Mouse for Windows' + ${pkgs.acpilight}/bin/xbacklight -set $(cat /tmp/pre_lid_brightness) + ;; + esac + ''; + }; + + systemd.services.suspend-again = { + after = [ "suspend.target" ]; + requiredBy = [ "suspend.target" ]; + # environment = { + # DISPLAY = ":${toString config.services.xserver.display}"; + # }; + serviceConfig = { + ExecStart = pkgs.writeDash "suspend-again" '' + ${pkgs.gnugrep}/bin/grep -q closed /proc/acpi/button/lid/LID0/state + if [ "$?" -eq 0 ]; then + echo 'wakeup with closed lid' + ${pkgs.systemd}/bin/systemctl suspend + fi + ''; + Type = "simple"; + }; + }; + + hardware.bluetooth.enable = true; + hardware.pulseaudio.package = pkgs.pulseaudioFull; + # hardware.pulseaudio.configFile = pkgs.writeText "default.pa" '' + # load-module module-bluetooth-policy + # load-module module-bluetooth-discover + # ## module fails to load with + # ## module-bluez5-device.c: Failed to get device path from module arguments + # ## module.c: Failed to load module "module-bluez5-device" (argument: ""): initialization failed. + # # load-module module-bluez5-device + # # load-module module-bluez5-discover + # ''; } diff --git a/lass/1systems/xerxes/physical.nix b/lass/1systems/xerxes/physical.nix index f88578e1..5d60dfc4 100644 --- a/lass/1systems/xerxes/physical.nix +++ b/lass/1systems/xerxes/physical.nix @@ -17,6 +17,7 @@ boot.blacklistedKernelModules = [ "goodix" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "sd_mod" ]; boot.initrd.kernelModules = [ ]; boot.initrd.luks.devices.crypted.device = "/dev/sda3"; @@ -27,11 +28,6 @@ "boot.shell_on_fail" ]; - services.xserver.displayManager.sessionCommands = '' - (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output eDP-1 --rotate right) - (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1) - ''; - fileSystems."/" = { device = "rpool/root"; fsType = "zfs"; @@ -76,11 +72,15 @@ IdleActionSec=300 ''; - services.xserver.extraConfig = '' - Section "Device" - Identifier "Intel Graphics" - Driver "Intel" - Option "TearFree" "true" - EndSection - ''; + services.xserver = { + videoDrivers = [ "intel" ]; + deviceSection = '' + Option "TearFree" "true" + ''; + displayManager.sessionCommands = '' + echo nonono > /tmp/xxyy + (sleep 2 && ${pkgs.xorg.xrandr}/bin/xrandr --output eDP1 --rotate right) + (sleep 2 && ${pkgs.xorg.xinput}/bin/xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1) + ''; + }; } -- cgit v1.2.3 From 3072db3795166d62961a4d2f73a54a03de5ff955 Mon Sep 17 00:00:00 2001 From: lassulus Date: Wed, 28 Aug 2019 23:02:53 +0200 Subject: l: add autowifi service --- lass/3modules/autowifi.nix | 111 +++++++++++++++++++++++++++++++++++++++++++++ lass/3modules/default.nix | 1 + 2 files changed, 112 insertions(+) create mode 100644 lass/3modules/autowifi.nix (limited to 'lass') diff --git a/lass/3modules/autowifi.nix b/lass/3modules/autowifi.nix new file mode 100644 index 00000000..930d9972 --- /dev/null +++ b/lass/3modules/autowifi.nix @@ -0,0 +1,111 @@ +{ config, lib, pkgs, ... }: +with import ; +let + + cfg = config.lass.autowifi; + +in { + options.lass.autowifi = { + enable = mkEnableOption "automatic wifi connector"; + knownWifisFile = mkOption { + type = types.str; + default = "/etc/wifis"; + }; + }; + + config = { + systemd.services.autowifi = { + description = "Automatic wifi connector"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + Restart = "always"; + RestartSec = "10s"; + ExecStart = pkgs.writers.writePython3 "autowifi" {} /* python3 */ '' + import subprocess + import time + import urllib.request + + + def connect(ssid, psk=None): + subprocess.run(["${pkgs.networkmanager}/bin/nmcli", "connection", "delete", "autowifi"]) + print("connecting to {}".format(ssid)) + if psk is None: + subprocess.run(["${pkgs.networkmanager}/bin/nmcli", "device", "wifi", "connect", ssid, "name", "autowifi"]) + else: + subprocess.run(["${pkgs.networkmanager}/bin/nmcli", "device", "wifi", "connect", ssid, "name", "autowifi", "password", psk]) + + + def scan(): + wifis_raw = subprocess.check_output(["${pkgs.networkmanager}/bin/nmcli", "-t", "device", "wifi", "list", "--rescan", "yes"]) + wifis_list = wifis_raw.split(b'\n') + wifis = [] + for line in wifis_list: + ls = line.split(b':') + if len(ls) == 8: + wifis.append({"ssid": ls[1], "signal": int(ls[5]), "crypto": ls[7]}) + return wifis + + + def get_known_wifis(): + wifis_lines = [] + with open('${cfg.knownWifisFile}') as f: + wifis_lines = f.read().splitlines() + wifis = [] + for line in wifis_lines: + ls = line.split(':') + wifis.append({"ssid": ls[0].encode(), "psk": ls[1].encode()}) + return wifis + + + def check_internet(): + try: + beacon = urllib.request.urlopen('http://krebsco.de/secret') + except: # noqa + print("no internet") + return False + if beacon.read() == b'1337\n': + return True + print("no internet") + return False + + + def is_wifi_open(wifi): + if wifi['crypto'] == ${"b''"}: + return True + else: + return False + + + def is_wifi_seen(wifi, seen_wifis): + for seen_wifi in seen_wifis: + if seen_wifi["ssid"] == wifi["ssid"]: + return True + return False + + + def bloop(): + while True: + if not check_internet(): + wifis = scan() + known_wifis = get_known_wifis() + known_seen_wifis = [wifi for wifi in known_wifis if is_wifi_seen(wifi, wifis)] + for wifi in known_seen_wifis: + connect(wifi['ssid'], wifi['psk']) + if check_internet(): + continue + open_wifis = filter(is_wifi_open, wifis) + for wifi in open_wifis: + connect(wifi['ssid']) + if check_internet(): + continue + time.sleep(10) + + + bloop() + ''; + }; + }; + }; +} + diff --git a/lass/3modules/default.nix b/lass/3modules/default.nix index 613c7c8a..1195cd3d 100644 --- a/lass/3modules/default.nix +++ b/lass/3modules/default.nix @@ -14,5 +14,6 @@ _: ./umts.nix ./usershadow.nix ./xjail.nix + ./autowifi.nix ]; } -- cgit v1.2.3 From b06065549a31cf1713135e6547b04f69f351d7fb Mon Sep 17 00:00:00 2001 From: lassulus Date: Thu, 5 Sep 2019 18:08:49 +0200 Subject: l nfs-dl: more fancy mount options --- lass/2configs/nfs-dl.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lass') diff --git a/lass/2configs/nfs-dl.nix b/lass/2configs/nfs-dl.nix index abbcc1d4..ba53321b 100644 --- a/lass/2configs/nfs-dl.nix +++ b/lass/2configs/nfs-dl.nix @@ -1,7 +1,20 @@ { fileSystems."/mnt/prism" = { - device = "prism.w:/export"; + device = "prism.w:/export/download"; fsType = "nfs"; + options = [ + "timeo=14" + "noauto" + "noatime" + "nodiratime" + "noac" + "nocto" + "x-systemd.automount" + "x-systemd.device-timeout=1" + "x-systemd.idle-timeout=1min" + "x-systemd.requires=retiolum.service" + "x-systemd.requires=wpa_supplicant.service" + ]; }; } -- cgit v1.2.3