Compare commits
3 commits
5fefab9707
...
9e638c009f
Author | SHA1 | Date | |
---|---|---|---|
|
9e638c009f | ||
|
aeab801602 | ||
|
3fc4efab9c |
18
common/base-graphical/default.nix
Normal file
18
common/base-graphical/default.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.qenya.base-graphical;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./desktop.nix
|
||||||
|
./sound.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
options.qenya.base-graphical.enable = mkEnableOption "Base configuration for graphical environments";
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.xserver.enable = true;
|
||||||
|
};
|
||||||
|
}
|
26
common/base-graphical/desktop.nix
Normal file
26
common/base-graphical/desktop.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf mkOption types;
|
||||||
|
cfg = config.qenya.base-graphical;
|
||||||
|
|
||||||
|
isGnome = cfg.desktop == "gnome";
|
||||||
|
isPlasma6 = cfg.desktop == "plasma6";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.qenya.base-graphical.desktop = mkOption {
|
||||||
|
type = types.enum [ "gnome" "plasma6" ];
|
||||||
|
default = "gnome";
|
||||||
|
example = "plasma6";
|
||||||
|
description = "Which display manager and desktop manager to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.xserver.displayManager.gdm.enable = isGnome;
|
||||||
|
services.xserver.desktopManager.gnome.enable = isGnome;
|
||||||
|
|
||||||
|
services.displayManager.sddm.enable = isPlasma6;
|
||||||
|
services.displayManager.sddm.wayland.enable = isPlasma6;
|
||||||
|
services.desktopManager.plasma6.enable = isPlasma6;
|
||||||
|
};
|
||||||
|
}
|
20
common/base-graphical/sound.nix
Normal file
20
common/base-graphical/sound.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
cfg = config.qenya.base-graphical;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
jack.enable = true;
|
||||||
|
};
|
||||||
|
hardware.pulseaudio.enable = false; # this theoretically defaults to false but something else seems to be flipping it
|
||||||
|
environment.systemPackages = with pkgs; [ helvum ]; # patchbay
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,10 +2,10 @@
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.qenya.sysadmin;
|
cfg = config.qenya.base-server;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.qenya.sysadmin.enable = mkEnableOption "Base configuration for headless servers";
|
options.qenya.base-server.enable = mkEnableOption "Base configuration for headless servers";
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
time.timeZone = "Etc/UTC";
|
time.timeZone = "Etc/UTC";
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./sysadmin
|
./base-graphical
|
||||||
|
./base-server
|
||||||
./users
|
./users
|
||||||
./environment.nix
|
./environment.nix
|
||||||
./home-manager.nix
|
./home-manager.nix
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
users.users.qenya.extraGroups = [ "wheel" ];
|
users.users.qenya.extraGroups = [ "wheel" ];
|
||||||
qenya.sysadmin.enable = true;
|
qenya.base-server.enable = true;
|
||||||
|
|
||||||
system.stateVersion = "23.11";
|
system.stateVersion = "23.11";
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
./filesystems.nix
|
./filesystems.nix
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./sound.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "x86_64-linux";
|
nixpkgs.hostPlatform = "x86_64-linux";
|
||||||
|
@ -17,15 +16,12 @@
|
||||||
targetHost = null; # disallow remote deployment
|
targetHost = null; # disallow remote deployment
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = "Europe/London";
|
qenya.base-graphical.enable = true;
|
||||||
|
qenya.base-graphical.desktop = "plasma6";
|
||||||
|
|
||||||
|
time.timeZone = "Europe/London";
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
console.keyMap = "uk";
|
console.keyMap = "uk";
|
||||||
|
|
||||||
services.xserver.enable = true;
|
|
||||||
services.displayManager.sddm.enable = true;
|
|
||||||
services.displayManager.sddm.wayland.enable = true;
|
|
||||||
services.desktopManager.plasma6.enable = true;
|
|
||||||
services.xserver.xkb.layout = "gb";
|
services.xserver.xkb.layout = "gb";
|
||||||
|
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
jack.enable = true;
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [ helvum ]; # patchbay
|
|
||||||
}
|
|
|
@ -9,7 +9,7 @@
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
users.users.qenya.extraGroups = [ "wheel" ];
|
users.users.qenya.extraGroups = [ "wheel" ];
|
||||||
qenya.sysadmin.enable = true;
|
qenya.base-server.enable = true;
|
||||||
|
|
||||||
age.secrets.wireguard-peer-orm.file = ../../secrets/wireguard-peer-orm.age;
|
age.secrets.wireguard-peer-orm.file = ../../secrets/wireguard-peer-orm.age;
|
||||||
|
|
||||||
|
|
|
@ -18,25 +18,15 @@
|
||||||
targetHost = null; # disallow remote deployment
|
targetHost = null; # disallow remote deployment
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = "Europe/London";
|
qenya.base-graphical.enable = true;
|
||||||
|
|
||||||
|
time.timeZone = "Europe/London";
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
console.keyMap = "uk";
|
console.keyMap = "uk";
|
||||||
|
|
||||||
services.xserver.enable = true;
|
|
||||||
services.xserver.displayManager.gdm.enable = true;
|
|
||||||
services.xserver.desktopManager.gnome.enable = true;
|
|
||||||
services.xserver.xkb.layout = "gb";
|
services.xserver.xkb.layout = "gb";
|
||||||
|
|
||||||
services.printing.enable = true;
|
services.printing.enable = true;
|
||||||
|
|
||||||
sound.enable = true;
|
|
||||||
hardware.pulseaudio.enable = true;
|
|
||||||
# services.pipewire = {
|
|
||||||
# enable = true;
|
|
||||||
# pulse.enable = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
age.secrets.user-password-tohru-qenya.file = ../../secrets/user-password-tohru-qenya.age;
|
age.secrets.user-password-tohru-qenya.file = ../../secrets/user-password-tohru-qenya.age;
|
||||||
users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-tohru-qenya.path;
|
users.users.qenya.hashedPasswordFile = config.age.secrets.user-password-tohru-qenya.path;
|
||||||
users.users.qenya.extraGroups = [
|
users.users.qenya.extraGroups = [
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
users.users.qenya.extraGroups = [ "wheel" ];
|
users.users.qenya.extraGroups = [ "wheel" ];
|
||||||
|
|
||||||
qenya.sysadmin.enable = true;
|
qenya.base-server.enable = true;
|
||||||
|
|
||||||
age.secrets.wireguard-peer-yevaud.file = ../../secrets/wireguard-peer-yevaud.age;
|
age.secrets.wireguard-peer-yevaud.file = ../../secrets/wireguard-peer-yevaud.age;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue