From 6fe125155e33bcd103991ccaf490e1adcff46856 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Mon, 11 Jan 2021 19:26:45 -0500 Subject: Firelink setup --- config/auto-upgrade.nix | 1 + config/desktop.nix | 3 +- config/gaming.nix | 4 ++ machines/firelink.nix | 109 ++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 102 insertions(+), 15 deletions(-) diff --git a/config/auto-upgrade.nix b/config/auto-upgrade.nix index bb82dc7..d7c145d 100644 --- a/config/auto-upgrade.nix +++ b/config/auto-upgrade.nix @@ -22,5 +22,6 @@ system.autoUpgrade = { enable = true; + dates = "weekly"; }; } diff --git a/config/desktop.nix b/config/desktop.nix index 14cc50f..4380537 100644 --- a/config/desktop.nix +++ b/config/desktop.nix @@ -60,6 +60,7 @@ imagemagick dzen2 rofi + autorandr ]; i18n.inputMethod = { @@ -70,8 +71,6 @@ services = { avahi.enable = true; - keybase.enable = true; - xserver = { enable = true; layout = "us"; diff --git a/config/gaming.nix b/config/gaming.nix index 3f8c157..7699085 100644 --- a/config/gaming.nix +++ b/config/gaming.nix @@ -1,5 +1,6 @@ { config, lib, pkgs, ... }: let + pkgs_unstable = import {}; my_steam = self: super: { steam = super.steam.override { # nativeOnly = true; @@ -10,6 +11,8 @@ let libXxf86vm libXinerama libSM libXv libXaw libXi libXcursor libXcomposite ]; in [ + samba + tdb glib-networking libxkbcommon fluidsynth hidapi mesa libdrm @@ -40,6 +43,7 @@ let libkrb5 nss qt4 + pkgs_unstable.qt514.full ] ++ xorgdeps; }; }; diff --git a/machines/firelink.nix b/machines/firelink.nix index 6b47c79..16d99cc 100644 --- a/machines/firelink.nix +++ b/machines/firelink.nix @@ -2,6 +2,24 @@ let nixpkgs-unstable = import {}; + my-overlay = self: super: { + xow = super.xow.overrideAttrs (o: rec { + src = /home/orbekk/projects/source/.; + }); + my-linuxPackages = + let linuxPkgs = nixpkgs-unstable.linuxPackages_latest; + in linuxPkgs.extend (self: super: { + # xpadneo = super.xpadneo.overrideAttrs (o: rec { + # version = "master"; + # src = pkgs.fetchFromGitHub { + # owner = "atar-axis"; + # repo = "xpadneo"; + # rev = "bf8a3c3d7e28162d074744539d0b228566cb0e32"; + # sha256 = "0hspmvghr3qi1wf17xwfhd5wy7z1rdzh6qhwlhwgfv21f02n2xs9"; + # }; + # }); + }); + }; in { imports = [ @@ -12,6 +30,53 @@ in ../config/yubikey.nix ]; + environment.systemPackages = with pkgs; [ + kodi + retroarch + wmctrl # for steam launcher + ]; + nixpkgs.config.kodi = { + enableAdvancedLauncher = true; + enableAdvancedEmulatorLauncher = true; + enableJoystick = true; + enableSteamLauncher = true; + enableInputStreamAdaptive = true; + }; + nixpkgs.config.retroarch = { + enableCitra = true; + enableDolphin = true; + }; + + nixpkgs.overlays = [ my-overlay ]; + hardware.bluetooth.config = { + General = { + Privacy = "device"; + }; + }; + # hardware.xpadneo.enable = true; + systemd.services.xow.wantedBy = ["multi-user.target"]; + systemd.services.xow.serviceConfig.Group = "input"; + hardware.uinput.enable = true; + systemd.packages = [ pkgs.xow ]; + services.hardware.xow.enable = true; + boot.blacklistedKernelModules = ["mt76x2u"]; # Interferes with xow + + hardware.pulseaudio = { + enable = true; + extraModules = [ pkgs.pulseaudio-modules-bt ]; + package = lib.mkForce pkgs.pulseaudioFull; + systemWide = true; + # 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 + # ''; + }; + networking.networkmanager.enable = true; networking.networkmanager.wifi.powersave = false; networking.vlans = { @@ -34,6 +99,8 @@ in }]; virtualisation.libvirtd.enable = true; + # virtualisation.virtualbox.host.enable = true; + virtualisation.virtualbox.host.enableExtensionPack = true; # Streaming test # services.nginx.enable = true; @@ -85,17 +152,24 @@ in boot.loader.grub.device = "nodev"; boot.loader.grub.efiSupport = true; boot.loader.efi.canTouchEfiVariables = true; - boot.kernelPackages = pkgs.linuxPackages_latest; + boot.kernelPackages = pkgs.my-linuxPackages; boot.kernelModules = [ "kvm-amd" "i2c-dev" ]; # https://bugzilla.kernel.org/show_bug.cgi?id=203709 boot.extraModprobeConfig = '' - options iwlwifi power_save=0 - options iwlwifi swcrypto=1 - options iwlwifi disable_11ax=1 - options iwlmvm power_scheme=1 + # options iwlwifi power_save=0 + # options iwlwifi swcrypto=1 + # options iwlwifi disable_11ax=1 + # options iwlwifi bt_coex_active=0 + # options iwlmvm power_scheme=1 + # options bluetooth disable_ertm=1 + + # For xpadneo + alias hid:b0005g*v0000045Ep000002E0 hid_xpadneo + alias hid:b0005g*v0000045Ep000002FD hid_xpadneo + alias hid:b0005g*v0000045Ep00000B05 hid_xpadneo + alias hid:b0005g*v0000045Ep00000B13 hid_xpadneo ''; - # boot.kernelPackages = nixpkgs-unstable.linuxPackages_latest; systemd.services.monitor-switch-to-me = { description = "Switch monitor to this computer"; @@ -111,14 +185,16 @@ in }; services.udev.extraRules = '' - ACTION!="add", GOTO="display_switch_end" - - # Trigger on Planck keyboard. - ATTRS{idVendor}=="feed",\ - ATTRS{idProduct}=="6060",\ - RUN+="${pkgs.systemd}/bin/systemctl start --no-block monitor-switch-to-me.service" + # ACTION!="add", GOTO="display_switch_end" + # # Trigger on Planck keyboard. + # ATTRS{idVendor}=="feed",\ + # ATTRS{idProduct}=="6060",\ + # RUN+="${pkgs.systemd}/bin/systemctl start --no-block monitor-switch-to-me.service" + # LABEL="display_switch_end" - LABEL="display_switch_end" + # For xpadneo + ACTION=="add", KERNEL=="0005:045E:02FD.*|0005:045E:02E0.*|0005:045E:0B05.*|0005:045E:0B13.*", SUBSYSTEM=="hid", DRIVER!="xpadneo", ATTR{driver/unbind}="%k", ATTR{[drivers/hid:xpadneo]bind}="%k" + ACTION=="add", DRIVERS=="xpadneo", SUBSYSTEM=="input", ENV{ID_INPUT_JOYSTICK}=="1", TAG+="uaccess", MODE="0664", ENV{LIBINPUT_IGNORE_DEVICE}="1" ''; # boot.kernelPackages = let @@ -154,6 +230,13 @@ in boot.initrd.luks.devices."cryptsystem".device = "/dev/disk/by-uuid/8acc11c2-e540-4561-8c88-34176fca1a72"; boot.initrd.luks.devices."cryptsystem".allowDiscards = true; + # boot.initrd.luks.devices."cryptsystem".yubikey = { + # slot = 2; + # twoFactor = false; + # storage.device = "/boot"; + # }; + # boot.initrd.luks.cryptoModules = ["aes" "xts" "sha512"]; + # boot.initrd.luks.yubikeySupport = true; fileSystems."/boot" = { device = "/dev/disk/by-uuid/C636-D264"; -- cgit v1.2.3