Compare commits

...

38 Commits

Author SHA1 Message Date
johno 7da089daa3 [desktop] Add a waylandOnly option 2024-12-14 15:38:46 -08:00
johno 8134d7cb33 [desktop] modrinth-nvidia for x11 only 2024-12-14 15:29:35 -08:00
johno 24f1a64f3c [desktop] Add custom package modrinth-nvidia 2024-12-05 21:00:42 -08:00
johno 19531074ca [desktop] Add modrinth-app 2024-12-05 19:59:46 -08:00
johno a30c130f21 [flake] update 2024-11-28 12:04:44 -08:00
johno e088ee2dc8 [desktop] Add protonup 2024-11-28 12:02:56 -08:00
johno 366a7e2ea3 [plasma-manager] Dark theme 2024-11-28 12:02:37 -08:00
johno 9116e44dfe [plasma-manager] Enable mouse acceleration 2024-11-14 14:43:16 -08:00
johno e3ef710bdb [default] Add some common utils 2024-11-12 08:01:49 -08:00
johno e1a804cfed [plasma-manager] Update comments 2024-11-10 10:29:17 -08:00
johno ec59936012 [defaults] Disable systemd emergency mode 2024-11-09 15:11:45 -08:00
johno 844d17a855 [z790prors] Remove arch mount point
I had to boot into emergency mode and use systemd runtime masking:

```
systemd mask --runtime arch.mount
```

This allowed the system to boot so that I could remove this entry and
run nixos-rebuild
2024-11-09 15:09:04 -08:00
johno b19dc65c6d [emacs] Upgrade doom 2024-11-09 13:51:25 -08:00
johno 6db2c78e0b [emacs] Disable auto nix lsp
Especially on underpowered devices, my monolithic nixos config grinds
everything to a halt. I'll just manually enable this when the context
makes sense.
2024-11-03 11:11:23 -08:00
johno 475aafa33e [kde] Remove polonium
Polonium has been frustrating to use. I'm unsure how much of this I can
blame polonium vs kde vs plasma-manager vs nix, but
1. keyboard shortcuts aren't working
2. tiling keeps going in and out for various windows
3. seemingly kde startup time takes forever with it installed

The more I'm starting to understand KDE's native window management
functions, the more I'm thinking that's the right way to go. I'm going
to abandom polonium for now, perhaps with some future return.
2024-11-03 11:08:03 -08:00
johno 09562f0af9 [flake] update 2024-11-03 11:01:07 -08:00
johno ae543d9628 Revert "[spotifyd] Update to lean in on pulseaudio"
This reverts commit b9097e91d5.
2024-11-03 09:50:08 -08:00
johno c7716d2bca Revert "[audio] Switch to pulseaudio"
This reverts commit abf8fe9ad2.
2024-11-03 09:49:09 -08:00
johno 54cf339d52 [plasma-manager] Update desktop switching shortcuts 2024-11-03 09:41:04 -08:00
johno b9097e91d5 [spotifyd] Update to lean in on pulseaudio 2024-10-21 12:31:36 -07:00
johno abf8fe9ad2 [audio] Switch to pulseaudio
This is an attempt to get spotifyd running as a system user working
2024-10-21 12:31:36 -07:00
johno 926b47f07f [flake] update 2024-10-21 08:43:05 -07:00
johno 749ef988f1 [z790prors] Enable HDR in plasma 6.2 2024-10-21 08:42:46 -07:00
johno dfa91d327f [nix] Enable automatic gc 2024-10-21 08:42:26 -07:00
johno 37c455d75e [plasma-manager] Some shortcut improvements 2024-10-21 08:42:02 -07:00
johno c0d7d934f3 [plasma-manager] Merge config from z790prors 2024-10-15 18:34:04 -07:00
johno cb91f69c49 [desktop] Add polonium 2024-10-15 18:25:12 -07:00
johno bc6378cb22 Setup kde wayland gamescope + nvidia settings 2024-10-15 18:25:12 -07:00
johno a13676311a [plasma-manager] Initial setup 2024-10-15 08:32:20 -07:00
johno ec57592715 [nixbook] Enable spotifyd 2024-10-15 08:17:07 -07:00
johno 051c223eb7 [i3+sway] Add touchpad config 2024-10-10 17:15:26 -07:00
johno 6030f6ea42 [z790prors] Enable BEES 2024-10-08 08:37:53 -07:00
johno df77fd5c74 [i3+sway] Fix terminal reference 2024-10-05 19:49:17 -07:00
johno 458bcb4cdf [roles] Remove unused trusted public key 2024-10-05 19:12:49 -07:00
johno 40e10bab34 [roles] Remove unused config option 2024-10-05 19:12:38 -07:00
johno 3477a3480f [boxy] Fix wayland and user setup 2024-10-05 19:10:15 -07:00
johno d2ae7f8e11 [roles] Also make desktop opt-in 2024-10-05 19:09:58 -07:00
johno ff3a0a4738 [roles] No config change unless enabled 2024-10-05 18:17:42 -07:00
22 changed files with 407 additions and 137 deletions
Generated
+27 -20
View File
@@ -7,11 +7,11 @@
]
},
"locked": {
"lastModified": 1728041527,
"narHash": "sha256-03liqiJtk9UP7YQHW4r8MduKCK242FQzud8iWvvlK+o=",
"lastModified": 1732793095,
"narHash": "sha256-6TrknJ8CpvSSF4gviQSeD+wyj3siRcMvdBKhOXkEMKU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "509dbf8d45606b618e9ec3bbe4e936b7c5bc6c1e",
"rev": "2f7739d01080feb4549524e8f6927669b61c6ee3",
"type": "github"
},
"original": {
@@ -22,11 +22,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1727802920,
"narHash": "sha256-HP89HZOT0ReIbI7IJZJQoJgxvB2Tn28V6XS3MNKnfLs=",
"lastModified": 1732521221,
"narHash": "sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "27e30d177e57d912d614c88c622dcfdb2e6e6515",
"rev": "4633a7c72337ea8fd23a4f2ba3972865e3ec685d",
"type": "github"
},
"original": {
@@ -36,19 +36,26 @@
"type": "github"
}
},
"nixpkgs-stable": {
"plasma-manager": {
"inputs": {
"home-manager": [
"home-manager"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1725762081,
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
"lastModified": 1732639391,
"narHash": "sha256-kFtXjoCIqx9xe0ZryPXpqS6l/HVg71aNcuL8Y5e8+pI=",
"owner": "nix-community",
"repo": "plasma-manager",
"rev": "06e3209d11797d9c741e25df06ab61048746bf93",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"owner": "nix-community",
"repo": "plasma-manager",
"type": "github"
}
},
@@ -56,6 +63,7 @@
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"plasma-manager": "plasma-manager",
"sops-nix": "sops-nix"
}
},
@@ -63,15 +71,14 @@
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
]
},
"locked": {
"lastModified": 1727423009,
"narHash": "sha256-+4B/dQm2EnORIk0k2wV3aHGaE0WXTBjColXjj7qWh10=",
"lastModified": 1732575825,
"narHash": "sha256-xtt95+c7OUMoqZf4OvA/7AemiH3aVuWHQbErYQoPwFk=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "127a96f49ddc377be6ba76964411bab11ae27803",
"rev": "3433ea14fbd9e6671d0ff0dd45ed15ee4c156ffa",
"type": "github"
},
"original": {
+13 -7
View File
@@ -13,6 +13,12 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
plasma-manager = {
url = "github:nix-community/plasma-manager";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
};
outputs = { self, nixpkgs, ... } @ inputs: let
@@ -23,6 +29,7 @@
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager ];
}
];
in {
@@ -55,13 +62,12 @@
system = "x86_64-linux";
modules = baseModules ++ [
./machines/boxy/configuration.nix
# inputs.home-manager.nixosModules.home-manager
# {
# home-manager.users.johno = import ./home/home-default.nix;
# home-manager.extraSpecialArgs.customPkgs =
# nixpkgs.legacyPackages."${system}".callPackage ./packages {};
# customPkgs = nixpkgs.legacyPackages."${system}".callPackage ./packages {};
# }
inputs.home-manager.nixosModules.home-manager
{
home-manager.users.johno = import ./home/home-default.nix;
home-manager.extraSpecialArgs.customPkgs =
nixpkgs.legacyPackages."${system}".callPackage ./packages {};
}
];
};
};
+2 -1
View File
@@ -104,8 +104,9 @@
imports = [
./modules/emacs
./modules/lutris
./modules/i3+sway
./modules/lutris
./modules/plasma-manager
];
programs.bash.enable = true;
+1 -1
View File
@@ -32,7 +32,7 @@ in {
source = fetchGit {
url = "https://github.com/doomemacs/doomemacs.git";
# When updating me, remember to run `doom sync`
rev = "5ad99220b86ae1bf421861dfad24492d768ac4d9";
rev = "f425f2ff3da584cfe2676f6b9cf1d81a690a75e5";
};
# We need to use recursive mode here or else doom fails to sync for
# some reason related to the permissions on the synced path. I'm not
+1 -1
View File
@@ -149,7 +149,7 @@
;;lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
(nix +tree-sitter +lsp) ; I hereby declare "nix geht mehr!"
(nix +tree-sitter) ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +roam2) ; organize your plain life in plain text
;;php ; perl's insecure younger brother
+9 -2
View File
@@ -6,13 +6,13 @@ let
cfg = config.home.i3_sway;
i3_cfg = config.xsession.windowManager.i3.config;
shared_config = recursiveUpdate {
shared_config = recursiveUpdate rec {
modifier = "Mod4";
terminal = "kitty";
defaultWorkspace = "workspace number 1";
keybindings = {
"${shared_config.modifier}+Return" = "exec ${i3_cfg.terminal}";
"${shared_config.modifier}+Return" = "exec ${terminal}";
"${shared_config.modifier}+Shift+q" = "kill";
"${shared_config.modifier}+d" = "exec ${i3_cfg.menu}";
@@ -129,6 +129,13 @@ in {
"type:keyboard" = {
xkb_options = "caps:escape";
};
"type:touchpad" = {
tap = "enabled";
tap_button_map = "lrm";
drag = "enabled";
natural_scroll = "disabled";
dwt = "enabled";
};
};
};
in {
+127
View File
@@ -0,0 +1,127 @@
{ config, lib, pkgs, ... }:
# The current KDE config can be output with the command:
# nix run github:nix-community/plasma-manager
#
# Plasma-manager options documentation
# https://nix-community.github.io/plasma-manager/options.xhtml
#
# TODO: (ambitious) Add Kmail support to plasma-manager
{
programs.plasma = {
enable = true;
overrideConfig = true;
hotkeys.commands."launch-konsole" = {
name = "Launch Konsole";
key = "Meta+Return";
command = "konsole";
};
shortcuts = {
kmix = {
"decrease_microphone_volume" = "Microphone Volume Down";
"decrease_volume" = "Volume Down";
"decrease_volume_small" = "Shift+Volume Down";
"increase_microphone_volume" = "Microphone Volume Up";
"increase_volume" = "Volume Up";
"increase_volume_small" = "Shift+Volume Up";
"mic_mute" = ["Microphone Mute" "Meta+Volume Mute,Microphone Mute" "Meta+Volume Mute,Mute Microphone"];
"mute" = "Volume Mute";
};
mediacontrol = {
"mediavolumedown" = "none,,Media volume down";
"mediavolumeup" = "none,,Media volume up";
"nextmedia" = "Media Next";
"pausemedia" = "Media Pause";
"playmedia" = "none,,Play media playback";
"playpausemedia" = "Media Play";
"previousmedia" = "Media Previous";
"stopmedia" = "Media Stop";
};
ksmserver = {
"Lock Session" = ["Meta+Ctrl+Q" "Screensaver" "Screensaver,Lock Session"];
};
kwin = {
"Window Close" = "Meta+Shift+Q";
"Kill Window" = "Meta+Ctrl+Esc";
"Window Operations Menu" = "Alt+F3";
"Window Resize" = "Meta+R,,Resize Window";
"Overview" = "Meta+W";
"Grid View" = "Meta+G";
"Edit Tiles" = "Meta+T";
"Activate Window Demanding Attention" = "Meta+Ctrl+A";
"Show Desktop" = "Meta+D";
"Walk Through Windows" = "Alt+Tab";
"Walk Through Windows (Reverse)" = "Alt+Shift+Tab";
"Walk Through Windows of Current Application" = "Alt+`";
"Walk Through Windows of Current Application (Reverse)" = "Alt+~";
"Window Fullscreen" = "Meta+Shift+F,,Make Window Fullscreen";
"Window Quick Tile Bottom" = "Meta+Down";
"Window Quick Tile Left" = "Meta+Left";
"Window Quick Tile Right" = "Meta+Right";
"Window Quick Tile Top" = "Meta+Up";
"view_actual_size" = "Meta+0";
"view_zoom_in" = ["Meta++" "Meta+=,Meta++" "Meta+=,Zoom In"];
"view_zoom_out" = "Meta+-";
};
"org_kde_powerdevil"."Decrease Keyboard Brightness" = "Keyboard Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness" = "Monitor Brightness Down";
"org_kde_powerdevil"."Decrease Screen Brightness Small" = "Shift+Monitor Brightness Down";
"org_kde_powerdevil"."Hibernate" = "Hibernate";
"org_kde_powerdevil"."Increase Keyboard Brightness" = "Keyboard Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness" = "Monitor Brightness Up";
"org_kde_powerdevil"."Increase Screen Brightness Small" = "Shift+Monitor Brightness Up";
"org_kde_powerdevil"."PowerDown" = "Power Down";
"org_kde_powerdevil"."PowerOff" = "Power Off";
"org_kde_powerdevil"."Sleep" = "Sleep";
"org_kde_powerdevil"."Toggle Keyboard Backlight" = "Keyboard Light On/Off";
"org_kde_powerdevil"."Turn Off Screen" = [ ];
"org_kde_powerdevil"."powerProfile" = ["Battery" "Meta+B,Battery" "Meta+B,Switch Power Profile"];
plasmashell = {
"activate application launcher" = ["Meta" "Alt+F1,Meta" "Alt+F1,Activate Application Launcher"];
"activate task manager entry 1" = "none,,";
"activate task manager entry 2" = "none,,";
"activate task manager entry 3" = "none,,";
"activate task manager entry 4" = "none,,";
"activate task manager entry 5" = "none,,";
"activate task manager entry 6" = "none,,";
"activate task manager entry 7" = "none,,";
"activate task manager entry 8" = "none,,";
"activate task manager entry 9" = "none,,";
"activate task manager entry 10" = "none,,";
"show activity switcher" = "none,,";
};
};
configFile = {
kwinrc.Desktops.Number = {
value = 10;
immutable = true;
};
kcminputrc.Libinput = {
AccelerationProfile = "adaptive";
PointerAcceleration = 0.5;
};
kcminputrc.Mouse = {
X11LibInputXAccelProfileFlat = false;
XLbInptAccelProfileFlat = false;
};
kdeglobals.KDE.LookAndFeelPackage = "org.kde.breezedark.desktop";
};
};
}
+3 -2
View File
@@ -17,8 +17,9 @@ with lib;
kodi = {
enable = true;
autologin = true;
wayland = false;
wayland = true;
};
users.enable = true;
};
# Use the systemd-boot EFI boot loader.
@@ -29,7 +30,7 @@ with lib;
hardware.graphics.enable = true;
#services.displayManager.enable = mkForce false;
services.displayManager.enable = mkForce false;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
+5 -1
View File
@@ -12,9 +12,13 @@
roles = {
audio.enable = true;
bluetooth.enable = true;
desktop.enable = true;
desktop = {
enable = true;
waylandOnly = true;
};
nfs-mounts.enable = true;
printing.enable = true;
spotifyd.enable = true;
users = {
enable = true;
extraGroups = [ "video" ];
+24 -5
View File
@@ -15,6 +15,10 @@
"nvidia_uvm"
"nvidia_drm"
];
boot.kernelParams = [
"nvidia_drm.fbdev=1"
"nvidia_drm.modeset=1"
];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
@@ -29,6 +33,18 @@
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.production;
#package = config.boot.kernelPackages.nvidiaPackages.mkDriver {
#version = "555.58";
#sha256_64bit = "sha256-bXvcXkg2kQZuCNKRZM5QoTaTjF4l2TtrsKUvyicj5ew=";
#sha256_aarch64 = lib.fakeSha256;
#openSha256 = lib.fakeSha256;
#settingsSha256 = "sha256-vWnrXlBCb3K5uVkDFmJDVq51wrCoqgPF03lSjZOuU8M=";
#persistencedSha256 = lib.fakeSha256;
#};
};
environment.sessionVariables = {
KWIN_DRM_ALLOW_NVIDIA_COLORSPACE = "1";
};
fileSystems."/" =
@@ -41,13 +57,16 @@
fsType = "vfat";
};
fileSystems."/arch" =
{ device = "/dev/disk/by-label/endeavouros";
fsType = "btrfs";
};
swapDevices = [ ];
services.beesd.filesystems = {
root = {
spec = "LABEL=nixos";
hashTableSizeMB = 4096;
verbosity = "crit";
};
};
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+1
View File
@@ -1,4 +1,5 @@
{ pkgs, ... }:
{
nextcloudTalkDesktop = pkgs.callPackage ./nextcloud-talk-desktop {};
modrinthNvidia = pkgs.callPackage ./modrinth-nvidia {};
}
+35
View File
@@ -0,0 +1,35 @@
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
pname = "modrinth-nvidia";
version = "0.1.0";
src = null;
dontUnpack = true;
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [ pkgs.makeWrapper ];
installPhase = ''
mkdir -p $out/bin
# Copy the original binary
cp ${pkgs.modrinth-app}/bin/ModrinthApp $out/bin/modrinth-nvidia-real
chmod +x $out/bin/modrinth-nvidia-real
# Wrap the binary with makeWrapper, producing a new script at 'modrinth-nvidia'
makeWrapper $out/bin/modrinth-nvidia-real $out/bin/modrinth-nvidia \
--set WEBKIT_DISABLE_DMABUF_RENDERER 1 \
--set WEBKIT_DISABLE_COMPOSITING_MODE 1
mkdir -p $out/share/applications
cat > $out/share/applications/modrinth-nvidia.desktop <<EOF
[Desktop Entry]
Name=Modrinth (NVIDIA)
Comment=Launch Modrinth with environment variables tuned for NVIDIA systems
Exec=$out/bin/modrinth-nvidia
Icon=modrinth-app
Terminal=false
Type=Application
Categories=Game;
EOF
'';
}
+1 -1
View File
@@ -10,7 +10,7 @@ in
enable = mkEnableOption "Enable the audio role";
};
config =
config = mkIf cfg.enable
{
environment.systemPackages = with pkgs; [
paprefs
+1 -1
View File
@@ -10,7 +10,7 @@ in
enable = mkEnableOption "Enable the bluetooth role";
};
config =
config = mkIf cfg.enable
{
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
+18 -13
View File
@@ -1,10 +1,7 @@
{ config, lib, pkgs, ... }:
{ lib, pkgs, ... }:
with lib;
let
cfg = config.roles;
in
{
imports = [
./audio
@@ -19,10 +16,6 @@ in
./virtualisation
];
options.roles = {
enable = mkEnableOption "Enable roles";
};
config = {
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
@@ -38,16 +31,25 @@ in
};
time.timeZone = "America/Los_Angeles";
# Don't go to emergency mode if we aren't able to mount filesystems.
# This is silly if you have multiple hard drives or partitions
# configured on a machine and then one goes away intentionally or
# unintentionally. If the system is already booting, let it continue
# to try and boot.
systemd.enableEmergencyMode = false;
# Enable the OpenSSH daemon.
services.openssh.enable = true;
environment.systemPackages = with pkgs; [
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
git
pciutils
vim
usbutils
];
nix = {
package = pkgs.nixFlakes;
package = pkgs.nix;
distributedBuilds = true;
buildMachines = [{
hostName = "z790prors.oglehome";
@@ -65,9 +67,12 @@ in
substituters = [
"https://hyprland.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
];
};
gc = {
automatic = true;
randomizedDelaySec = "14m";
options = "--delete-older-than 10d";
};
};
+44 -5
View File
@@ -5,12 +5,17 @@ with lib;
let
cfg = config.roles.desktop;
customPackages = pkgs.callPackage ../../packages {};
basePackages = with pkgs; [
brightnessctl
mangohud # Should probably get refactored with steam/gamescope out to a gaming role
modrinth-app
protonup-qt
];
x11BasePackages = with pkgs; [
customPackages.modrinthNvidia
];
x11OnlyPackages = with pkgs; [
@@ -35,9 +40,13 @@ in
type = types.bool;
default = false;
};
waylandOnly = mkOption {
type = types.bool;
default = false;
};
};
config =
config = mkIf cfg.enable
{
services.xserver.xkb = {
layout = "us";
@@ -71,10 +80,41 @@ in
programs.kdeconnect.enable = true;
programs.java.enable = true;
programs.gamemode = {
enable = true;
};
programs.gamescope = {
enable = true;
#capSysNice = true;
args = [
#"--adaptive-sync"
#"--nested-refresh 165"
#"--backend wayland"
"--hdr-enabled"
"--hdr-itm-enable"
"--hdr-debug-force-output"
"--mangoapp"
"--rt"
"--steam"
#"--xwayland-count 2"
];
env = {
#PROTON_DISABLE_NVAPI = "1";
MANGOHUD = "1";
#MANGOHUD_CONFIG = "cpu_temp gpu_temp ram vram";
};
};
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
gamescopeSession = {
enable = true;
};
extraCompatPackages = with pkgs; [
proton-ge-bin
];
#package = pkgs.steam.override {
#withJava = true;
#withPrimus = true;
@@ -93,11 +133,10 @@ in
environment.systemPackages = with pkgs; mkMerge [
basePackages
x11BasePackages
(mkIf (!cfg.waylandOnly) x11BasePackages)
(mkIf cfg.x11Only x11OnlyPackages)
# TODO: Do we need a "wayland only" mode?
(mkIf (!cfg.x11Only) waylandBasePackages)
(mkIf (!cfg.x11Only) waylandOnlyPackages)
(mkIf (cfg.waylandOnly) waylandOnlyPackages)
];
};
+41 -33
View File
@@ -25,39 +25,47 @@ in
steam-library
youtube
]);
in {
users.extraUsers.kodi.isNormalUser = true;
in mkIf cfg.enable
{
users.extraUsers.kodi.isNormalUser = true;
networking.firewall = {
allowedTCPPorts = [ 8080 ];
allowedUDPPorts = [ 8080 ];
networking.firewall = {
allowedTCPPorts = [ 8080 ];
allowedUDPPorts = [ 8080 ];
};
services = if cfg.autologin then mkMerge [
(mkIf cfg.wayland {
cage = mkIf cfg.wayland {
user = "kodi";
program = "${kodiPkg}/bin/kodi-standalone";
enable = true;
};
xserver = {
enable = false;
autorun = false;
};
})
(mkIf (!cfg.wayland) {
xserver = {
enable = true;
desktopManager.kodi = {
enable = true;
package = kodiPkg;
};
displayManager.lightdm = {
enable = true;
greeter.enable = false;
};
};
displayManager = {
autoLogin.enable = true;
autoLogin.user = "kodi";
defaultSession = "kodi";
sessionData.autologinSession = "kodi";
};
})
] else {};
};
services = mkIf cfg.autologin {
cage = mkIf cfg.wayland {
user = "kodi";
program = "${kodiPkg}/bin/kodi-standalone";
enable = true;
};
xserver = mkIf (!cfg.wayland) {
enable = true;
desktopManager.kodi = {
enable = true;
package = kodiPkg;
};
displayManager.lightdm = {
enable = true;
greeter.enable = false;
};
displayManager.sddm.enable = mkForce false;
};
displayManager = mkIf (!cfg.wayland) {
autoLogin.enable = true;
autoLogin.user = "kodi";
defaultSession = "kodi";
sessionData.autologinSession = "kodi";
};
};
};
}
+11 -10
View File
@@ -16,15 +16,16 @@ in
};
};
config = {
fileSystems."/media" = {
device = "10.0.0.43:/media";
fsType = "nfs";
options = [
"defaults"
"nofail"
"softreval"
];
config = mkIf cfg.enable
{
fileSystems."/media" = {
device = "10.0.0.43:/media";
fsType = "nfs";
options = [
"defaults"
"nofail"
"softreval"
];
};
};
};
}
+11 -7
View File
@@ -2,18 +2,22 @@
with lib;
let
cfg = config.roles.printing;
in
{
options.roles.printing = {
enable = mkEnableOption "Enable default printing setup";
};
config = {
services.printing.enable = true;
config = mkIf cfg.enable
{
services.printing.enable = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
services.avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
};
};
}
+23 -22
View File
@@ -10,30 +10,31 @@ in
enable = mkEnableOption "Enable the spotifyd role";
};
config = {
roles.audio.enable = true;
config = mkIf cfg.enable
{
roles.audio.enable = true;
services.spotifyd = {
enable = true;
settings = {
global = {
use_mpris = false;
backend = "alsa";
device = "sysdefault";
bitrate = 320;
cache_path = "";
zeroconf_port = 1234;
autoplay = false;
services.spotifyd = {
enable = true;
settings = {
global = {
use_mpris = false;
backend = "alsa";
device = "sysdefault";
bitrate = 320;
cache_path = "";
zeroconf_port = 1234;
autoplay = false;
};
};
};
};
networking.firewall.allowedTCPPorts = [
1234
57621
];
networking.firewall.allowedUDPPorts = [
5353
];
};
networking.firewall.allowedTCPPorts = [
1234
57621
];
networking.firewall.allowedUDPPorts = [
5353
];
};
}
+1 -1
View File
@@ -21,7 +21,7 @@ in
kidsPackages = with pkgs; [
firefox
];
in {
in mkIf cfg.enable {
users.users.johno = {
isNormalUser = true;
description = "John Ogle";
+8 -4
View File
@@ -2,13 +2,17 @@
with lib;
let
cfg = config.roles.virtualisation;
in
{
options.roles.virtualisation = {
enable = mkEnableOption "Enable virtualisation";
};
config = {
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
};
config = mkIf cfg.enable
{
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
};
}