Split allowUnfreePredicate to where it's actually needed

Move steam config to separate file, import by Vanguard.

Move work config up one level (system rather than home) to config
allowUnfreePredicate for NoMachine.

Install teams and twinkle on desktop by default.
This commit is contained in:
Evie Litherland-Smith 2024-11-08 06:33:25 +00:00
parent 86fe70eace
commit c96b2797e0
9 changed files with 102 additions and 92 deletions

View file

@ -1,8 +1,10 @@
{ pkgs, username, ... }:
{
imports = [ ./laptop.nix ];
imports = [
./laptop.nix
./work.nix
];
home-manager.users.${username} = {
imports = [ ./home/work.nix ];
home.stateVersion = "23.05";
wayland.windowManager.hyprland.settings.monitor = [
"eDP-1,preferred,auto,1.25"

View file

@ -1,8 +1,10 @@
{ pkgs, username, ... }:
{
imports = [ ./desktop.nix ];
imports = [
./desktop.nix
./work.nix
];
home-manager.users.${username} = {
imports = [ ./home/work.nix ];
home.stateVersion = "23.05";
wayland.windowManager.hyprland.settings.monitor = [
"desc:Dell Inc. DELL P3223QE CCG8YN3,preferred,auto,1.5"

View file

@ -5,8 +5,10 @@
...
}:
{
imports = [ ./desktop.nix ];
environment.sessionVariables.MANGOHUD = 1;
imports = [
./desktop.nix
./steam.nix
];
home-manager.users.${username} = {
home = {
stateVersion = "23.05";
@ -17,7 +19,6 @@
freecad
openscad
kicad-small
mangohud
wineWowPackages.waylandFull
winetricks
lutris
@ -38,22 +39,6 @@
"desc:Acer Technologies ED270R TJMEE0043W01,1920x1080@144,0x140,1.0,vrr,2"
"desc:Microstep MSI G27CQ4 E2,2560x1440@144,1920x0,1.25,vrr,2"
];
xdg.configFile."MangoHud/MangoHud.conf".text = with config.lib.stylix.scheme; ''
preset=1
text_color=${base00}
gpu_color=${green}
cpu_color=${green}
vram_color=${magenta}
ram_color=${magenta}
engine_color=${red}
io_color=${magenta}
frametime_color=${green}
background_color=${base05}
media_player_color=${base00}
wine_color=${red}
battery_color=${orange}
network_color=${red}
'';
};
boot = {
extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
@ -71,23 +56,10 @@
driSupport = true;
driSupport32Bit = true;
};
steam-hardware.enable = true;
};
system.stateVersion = "23.05";
programs = {
gamemode.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
gamescope = {
enable = true;
capSysNice = true;
};
};
services.ollama = {
enable = true;
acceleration = "rocm";
};
system.stateVersion = "23.05";
}

View file

@ -56,30 +56,6 @@
max-free = ${toString (1024 * 1024 * 1024)}
'';
};
nixpkgs = {
config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-original"
"steam-run"
"steamcmd"
"nomachine-client"
];
overlays = [
(final: prev: {
inherit (inputs.plasma-manager.packages.${prev.system}) rc2nix;
protonmail-bridge-gui = pkgs.symlinkJoin {
name = "protonmail-bridge-gui";
paths = [ prev.protonmail-bridge-gui ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/protonmail-bridge-gui --set PASSWORD_STORE_DIR /dev/null
'';
};
})
];
};
system.autoUpgrade = {
enable = true;
persistent = true;

View file

@ -27,6 +27,8 @@
webcord
signal-desktop
whatsapp-for-linux
teams-for-linux
twinkle
];
file.${config.gtk.gtk2.configLocation}.force = true;
};
@ -79,6 +81,14 @@
# Autostart some programs
"autostart/signal-desktop.desktop".source = "${pkgs.signal-desktop}/share/applications/signal-desktop.desktop";
"autostart/com.github.eneshecan.WhatsAppForLinux.desktop".source = "${pkgs.whatsapp-for-linux}/share/applications/com.github.eneshecan.WhatsAppForLinux.desktop";
"teams-for-linux/config.json".text = builtins.toJSON {
awayOnSystemIdle = true;
closeAppOnCross = false;
followSystemTheme = true;
notificationMethod = "electron";
optInTeamsV2 = true;
spellCheckerLanguages = [ "en_GB" ];
};
};
};
}

View file

@ -1,30 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [ ./openfortivpn/ukaea.nix ];
home.packages = with pkgs; [
nomachine-client
teams-for-linux
twinkle
];
programs.git.userEmail = config.accounts.email.accounts.outlook.address;
accounts.email.accounts = {
proton.primary = lib.mkForce false;
outlook.primary = lib.mkForce true;
};
xdg.configFile = {
"autostart/teams-for-linux.desktop".source = "${pkgs.teams-for-linux}/share/applications/teams-for-linux.desktop";
"teams-for-linux/config.json".text = builtins.toJSON {
awayOnSystemIdle = true;
closeAppOnCross = false;
followSystemTheme = true;
notificationMethod = "electron";
optInTeamsV2 = true;
spellCheckerLanguages = [ "en_GB" ];
};
};
}

View file

@ -1,6 +1,13 @@
{ ... }:
{ lib, ... }:
{
imports = [ ./module.nix ];
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"steam-original"
"steam-run"
"steamcmd"
];
services.satisfactory-server = {
enable = true;
openFirewall = true;

51
system/steam.nix Normal file
View file

@ -0,0 +1,51 @@
{
config,
lib,
pkgs,
username,
...
}:
{
nixpkgs.config.allowUnfreePredicate =
pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-unwrapped"
"steam-original"
"steam-run"
];
environment = {
sessionVariables.MANGOHUD = 1;
systemPackages = [ pkgs.mangohud ];
};
hardware.steam-hardware.enable = true;
programs = {
gamemode.enable = true;
steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
gamescope = {
enable = true;
capSysNice = true;
};
};
home-manager.users.${username}.xdg.configFile."MangoHud/MangoHud.conf".text =
with config.lib.stylix.scheme; ''
preset=1
text_color=${base00}
gpu_color=${green}
cpu_color=${green}
vram_color=${magenta}
ram_color=${magenta}
engine_color=${red}
io_color=${magenta}
frametime_color=${green}
background_color=${base05}
media_player_color=${base00}
wine_color=${red}
battery_color=${orange}
network_color=${red}
'';
}

20
system/work.nix Normal file
View file

@ -0,0 +1,20 @@
{
lib,
pkgs,
username,
...
}:
{
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "nomachine-client" ];
environment.systemPackages = [ pkgs.nomachine-client ];
home-manager.users.${username} =
{ config, ... }:
{
imports = [ ./home/openfortivpn/ukaea.nix ];
programs.git.userEmail = config.accounts.email.accounts.outlook.address;
accounts.email.accounts = {
proton.primary = lib.mkForce false;
outlook.primary = lib.mkForce true;
};
};
}