flake: Migrate mashu to flakes

This commit is contained in:
2021-11-04 15:11:46 +01:00
parent 1d8f2f8053
commit e9b8d91559
8 changed files with 138 additions and 85 deletions

View File

@@ -1,23 +1,6 @@
{ config, lib, pkgs, ... }:
let
mkHost = (import ../modules { lib = lib; pkgs = pkgs; }).mkHost;
in mkHost config {
userName = "alexander";
hostName = "mashu";
overlays = [ "nur" "unstable" "simple" "custom" ];
hardwareImports = [
"intel"
"wifi"
"mobile"
"surface-pro6"
];
wireless = true;
wifiInterface = "wlp1s0";
programImports = [
"zsh" "git" "mpv" "tmux" "firefox" "gnome-terminal" "gnome" "i18n" "nextcloud" "xournalpp"
"distributed-build/offload.nix"
];
{
fileSystems = {
"/" = {
device = "/dev/disk/by-label/root";
@@ -33,25 +16,101 @@ in mkHost config {
device = "/dev/disk/by-label/swap";
}
];
extraOptions = old: {
boot = {
kernelParams = [ "mem_sleep_default=deep" "kernel.nmi_watchdog=0" "vm.dirty_writeback_centisecs=1500" ];
extraModprobeConfig = ''
ptw = {
programs = {
mpv.enable = true;
tmux.enable = true;
zsh.enable = true;
git.enable = true;
gnome-terminal.enable = true;
firefox.enable = true;
# TODO: Nextcloud client
};
services = {
gnome.enable = true;
};
system = {
i18n.enable = true;
singleUser = "alexander";
hostName = "mashu";
#wireless = true;
offloading.offload.enable = true;
};
hardware = {
intel.enable = true;
wifi = {
enable = true;
wifiInterface = "wlp1s0";
};
mobile.enable = true;
surface.enable = true;
};
};
boot = {
kernelParams = [ "mem_sleep_default=deep" "kernel.nmi_watchdog=0" "vm.dirty_writeback_centisecs=1500" ];
extraModprobeConfig = ''
options i915 enable_fbc=1 enable_rc6=1 modeset=1
options snd_hda_intel power_save=1
options snd_ac97_codec power_save=1
options iwlwifi power_save=Y
options iwldvm force_cam=N
'';
initrd = {
availableKernelModules = [ "xhci_pci" "nvme" "usbhid" ];
kernelModules = [ "kvm-intel" ];
};
initrd = {
availableKernelModules = [ "xhci_pci" "nvme" "usbhid" ];
kernelModules = [ "kvm-intel" ];
};
};
<<<<<<< HEAD
powerManagement = {
enable = true;
cpuFreqGovernor = "powersave";
=======
services.gnome.gnome-settings-daemon.enable = true;
# TODO: phosh 0.10.2 does not grab this. Just set it.
services.logind.extraConfig = ''
HandlePowerKey=suspend
'';
services.xserver.libinput.touchpad = {
tapping = true;
disableWhileTyping = true;
};
# TODO: phosh only allows numerical PINs...
users.users.alexander.hashedPassword = lib.mkForce "$5$AkihyU/rnc$MrGVtF2d.2CbURQo2oIWdBdDz1ZLAnKum7BOxhUjh88";
# TODO: It seems like 0.10.2 does not do this by default. So, as a workaround, start some of these
# myself.
systemd.user.services = {
gsd-media = {
description = "GSD media keys handling";
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.gnome.gnome-settings-daemon}/libexec/gsd-media-keys";
Restart = "always";
};
};
gsd-power = {
description = "GSD media keys handling";
wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.gnome.gnome-settings-daemon}/libexec/gsd-power";
Restart = "always";
};
};
};
programs.phosh = {
enable = true;
phocConfig = {
outputs = {
"eDP-1" = {
scale = 2;
};
};
};
};
}

View File

@@ -36,14 +36,16 @@
ptw = {
programs = {
mpv.primaryScreen = "C27F398";
mpv = {
primaryScreen = "C27F398";
enable = true;
};
sway.enable = true;
alacritty.enable = true;
emacs.enable = true;
firefox.enable = true;
git.enable = true;
#gnome-terminal.enable = true;
mpv.enable = true;
tmux.enable = true;
waybar.enable = true;
xournalpp.enable = true;
@@ -162,47 +164,41 @@
# sway
#"_JAVA_AWT_NONREPARENTING" = 1;
# Wayland
"QT_QPA_PLATFORM" = "wayland-egl";
"ECORE_EVAS_ENGINE" = "wayland-egl";
"ELM_ENGINE" = "wayland-egl";
"SDL_VIDEODRIVER" = "wayland";
};
# Wayland
"QT_QPA_PLATFORM" = "wayland-egl";
"ECORE_EVAS_ENGINE" = "wayland-egl";
"ELM_ENGINE" = "wayland-egl";
"SDL_VIDEODRIVER" = "wayland";
};
nix.package = pkgs.nixUnstable;
nix.extraOptions = ''
experimental-features = nix-command flakes ca-references
'';
# TODO: Move into modules
systemd.user.services = {
scream = {
description = "Audio receiver for the Scream virtual network sound card";
#wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.scream}/bin/scream -i virbr0 -o pulse";
Restart = "always";
};
# TODO: Move into modules
systemd.user.services = {
scream = {
description = "Audio receiver for the Scream virtual network sound card";
#wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.scream}/bin/scream -i virbr0 -o pulse";
Restart = "always";
};
replaysorcery-kms = {
description = "An open-source, instant-replay solution for Linux; KMS service";
#wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.replaysorcery}/bin/replay-sorcery kms-service";
Restart = "always";
};
};
replaysorcery-kms = {
description = "An open-source, instant-replay solution for Linux; KMS service";
#wantedBy = [ "default.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.replaysorcery}/bin/replay-sorcery kms-service";
Restart = "always";
};
replaysorcery = {
description = "An open-source, instant-replay solution for Linux";
#wantedBy = [ "default.target" ];
requires = [ "replaysorcery-kms.service" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.replaysorcery}/bin/replay-sorcery";
Restart = "always";
};
};
replaysorcery = {
description = "An open-source, instant-replay solution for Linux";
#wantedBy = [ "default.target" ];
requires = [ "replaysorcery-kms.service" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.replaysorcery}/bin/replay-sorcery";
Restart = "always";
};
};
};