186 lines
4.5 KiB
Nix
186 lines
4.5 KiB
Nix
|
{ config, pkgs, lib, ... }:
|
||
|
let
|
||
|
unison-conf = "${pkgs.writeText "unison-conf"
|
||
|
''
|
||
|
root = /home/vili
|
||
|
root = ssh://nixos-cpu.vsinerva.fi//home/vili
|
||
|
|
||
|
watch = true
|
||
|
repeat = watch
|
||
|
prefer = newer
|
||
|
diff = diff -y -W 79 --suppress-common-lines
|
||
|
copyprog = rsync --inplace --compress
|
||
|
copyprogrest = rsync --partial --inplace --compress sshargs = -C
|
||
|
|
||
|
path = Desktop
|
||
|
path = Documents
|
||
|
path = Downloads
|
||
|
path = Music
|
||
|
path = Pictures
|
||
|
path = Projects
|
||
|
path = Public
|
||
|
path = School
|
||
|
path = Templates
|
||
|
path = Videos
|
||
|
path = Zotero
|
||
|
''}";
|
||
|
in
|
||
|
{
|
||
|
networking = {
|
||
|
hostName = "helium";
|
||
|
firewall.allowedUDPPorts = [ 51820 51821 ];
|
||
|
wg-quick.interfaces = {
|
||
|
wg0 = {
|
||
|
autostart = false;
|
||
|
address = [ "172.16.0.2/24" ];
|
||
|
dns = [ "192.168.0.1" "vsinerva.fi" ];
|
||
|
privateKeyFile = "/root/wireguard-keys/privatekey-home";
|
||
|
listenPort = 51820;
|
||
|
|
||
|
peers = [
|
||
|
{
|
||
|
publicKey = "f9QoYPxyaxylUcOI9cE9fE9DJoEX4c6GUtr4p+rsd34=";
|
||
|
allowedIPs = [ "0.0.0.0/0" ];
|
||
|
endpoint = "wg.vsinerva.fi:51820";
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
wg1 = {
|
||
|
autostart = false;
|
||
|
address = [ "10.100.0.7/24" ];
|
||
|
dns = [ "1.1.1.1" ];
|
||
|
privateKeyFile = "/root/wireguard-keys/privatekey-netflix";
|
||
|
listenPort = 51821;
|
||
|
|
||
|
peers = [
|
||
|
{
|
||
|
publicKey = "XSYHg0utIR1j7kRsWFwuWNo4RPD47KP53cVa6qDPtRE=";
|
||
|
allowedIPs = [ "0.0.0.0/0" "192.168.0.0/24" ];
|
||
|
endpoint = "netflix.vsinerva.fi:51821";
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
nix.settings = {
|
||
|
cores = 3;
|
||
|
max-jobs = 4;
|
||
|
};
|
||
|
|
||
|
imports = [
|
||
|
/mnt/nixos-conf/base.nix
|
||
|
/mnt/nixos-conf/vili.nix
|
||
|
/mnt/nixos-conf/desktop.nix
|
||
|
/mnt/nixos-conf/development.nix
|
||
|
/mnt/nixos-conf/machine-confs/libinput.nix
|
||
|
];
|
||
|
disabledModules = [ "services/x11/hardware/libinput.nix" ];
|
||
|
|
||
|
nixpkgs.overlays =
|
||
|
[
|
||
|
(final: prev:
|
||
|
{
|
||
|
moonlight-qt = prev.moonlight-qt.overrideAttrs (old: {
|
||
|
patches = (old.patches or []) ++ [ ./mouse-accel.patch ];
|
||
|
});
|
||
|
})
|
||
|
];
|
||
|
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
zenmonitor moonlight-qt parsec-bin via
|
||
|
];
|
||
|
|
||
|
systemd.services = {
|
||
|
unisonConfSymlink = {
|
||
|
wantedBy = [ "multi-user.target" ];
|
||
|
description = "Symlink for unison conf";
|
||
|
serviceConfig = {
|
||
|
Type = "oneshot";
|
||
|
User = "vili";
|
||
|
ExecStartPre = ''${pkgs.coreutils-full}/bin/mkdir -p /home/vili/.unison'';
|
||
|
ExecStart = ''${pkgs.coreutils-full}/bin/ln -sf ${unison-conf} /home/vili/.unison/cpu.prf'';
|
||
|
};
|
||
|
};
|
||
|
unisonSync = {
|
||
|
wantedBy = [ "multi-user.target" ];
|
||
|
after = [ "network.target" ];
|
||
|
description = "unison filesync";
|
||
|
serviceConfig = {
|
||
|
Type = "exec";
|
||
|
User = "vili";
|
||
|
ExecStart = ''${pkgs.unison}/bin/unison -sshcmd ${pkgs.openssh}/bin/ssh cpu'';
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
|
||
|
# HARDWARE SPECIFIC
|
||
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||
|
hardware = {
|
||
|
opengl.extraPackages = with pkgs; [
|
||
|
rocmPackages.clr.icd
|
||
|
];
|
||
|
logitech.wireless = {
|
||
|
enable = true;
|
||
|
enableGraphical = true;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
services = {
|
||
|
xserver = {
|
||
|
videoDrivers = [ "amdgpu" "modesetting" ];
|
||
|
deviceSection = ''
|
||
|
Option "DRI" "2"
|
||
|
Option "TearFree" "true"
|
||
|
'';
|
||
|
|
||
|
displayManager.setupCommands = ''
|
||
|
${pkgs.xorg.xrandr}/bin/xrandr --output DisplayPort-0 --auto --pos 0x0 --primary --output eDP --auto --pos 3840x360
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
libinput.mouse = {
|
||
|
accelProfile = "custom";
|
||
|
accelPointsMotion = [ 0.00000 0.02000 0.04000 0.06000 0.08000 0.10000 0.12000 0.14000 0.16000 0.18000 0.20000 0.25250 0.31000 0.37250 0.44000 0.51250 0.59000 0.67250 0.76000 0.85250 0.95000 1.15500 1.37000 1.59500 1.83000 2.07500 2.33000 2.59500 2.87000 3.15500 3.45000 3.75500 4.07000 4.39500 4.73000 5.07500 5.43000 5.79500 6.17000 6.55500 6.95000 7.35500 7.77000 8.19500 8.63000 9.07500 9.53000 9.99500 10.47000 10.95500 11.45000 11.95000 ];
|
||
|
accelStepMotion = 0.05;
|
||
|
# accelPointsFallback = [ 0.0 10 ];
|
||
|
# accelPointsMotion = [ 0.0 20 ];
|
||
|
# accelPointsScroll = [ 0.0 30 ];
|
||
|
# accelStepFallback = 0.01;
|
||
|
# accelStepMotion = 0.02;
|
||
|
# accelStepScroll = 0.03;
|
||
|
};
|
||
|
|
||
|
redshift = {
|
||
|
executable = "/bin/redshift-gtk";
|
||
|
enable = true;
|
||
|
temperature = {
|
||
|
night = 2800;
|
||
|
day = 6500;
|
||
|
};
|
||
|
brightness = {
|
||
|
night = "0.5";
|
||
|
day = "1";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
devmon.enable = true;
|
||
|
gvfs.enable = true;
|
||
|
udisks2.enable = true;
|
||
|
};
|
||
|
location = {
|
||
|
latitude = 60.17;
|
||
|
longitude = 24.94;
|
||
|
};
|
||
|
|
||
|
# Keychron Q11
|
||
|
services.udev.extraRules = ''
|
||
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="01e0", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||
|
'';
|
||
|
|
||
|
# Bootloader.
|
||
|
boot.loader.systemd-boot.enable = true;
|
||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
}
|