summaryrefslogtreecommitdiff
path: root/os
diff options
context:
space:
mode:
Diffstat (limited to 'os')
-rw-r--r--os/core/audio.nix15
-rw-r--r--os/core/drivers.nix37
-rw-r--r--os/core/security.nix18
-rw-r--r--os/srv/gaming.nix4
-rw-r--r--os/srv/sops.nix9
5 files changed, 53 insertions, 30 deletions
diff --git a/os/core/audio.nix b/os/core/audio.nix
index e677a90..7527501 100644
--- a/os/core/audio.nix
+++ b/os/core/audio.nix
@@ -2,11 +2,19 @@
config,
lib,
pkgs,
- username,
...
}:
let
cfg = config.os.core.audio;
+ toggleMuteNotify = pkgs.writeShellScriptBin "toggle-mute-notify" ''
+ IS_MUTED=$(${pkgs.wireplumber}/bin/wpctl get-volume @DEFAULT_AUDIO_SOURCE@ | grep -c "MUTED")
+
+ if [ "$IS_MUTED" -eq 1 ]; then
+ ${pkgs.libnotify}/bin/notify-send -a "MuteIndicator" -t 0 -u critical "Microphone Muted" "Mic is currently OFF"
+ else
+ ${pkgs.mako}/bin/makoctl dismiss -a "MuteIndicator"
+ fi
+ '';
in
{
options.os.core.audio = {
@@ -30,12 +38,9 @@ in
spotifyd.enable = true;
};
- users.users.${username}.linger = true;
-
security.rtkit.enable = true;
- hardware.enableAllFirmware = true;
-
environment.systemPackages = with pkgs; [
+ toggleMuteNotify
crosspipe
alsa-utils
];
diff --git a/os/core/drivers.nix b/os/core/drivers.nix
index da9d83a..77ea721 100644
--- a/os/core/drivers.nix
+++ b/os/core/drivers.nix
@@ -2,16 +2,21 @@
config,
lib,
pkgs,
- inputs,
...
-}: let
+}:
+let
cfg = config.os.core.drivers;
-in {
+in
+{
options.os.core.drivers = {
enable = lib.mkEnableOption "enables hardware drivers";
cpu = lib.mkOption {
- type = lib.types.enum ["intel" "amd" "none"];
+ type = lib.types.enum [
+ "intel"
+ "amd"
+ "none"
+ ];
default = "none";
description = "cpu manufacturer for microcode and platform-specific drivers";
};
@@ -40,7 +45,7 @@ in {
smartd.enable = true;
fwupd.enable = true;
};
- environment.systemPackages = [pkgs.rivalcfg];
+ environment.systemPackages = [ pkgs.rivalcfg ];
}
(lib.mkIf (cfg.cpu == "amd") {
@@ -57,6 +62,9 @@ in {
hardware.graphics = {
enable = true;
enable32Bit = true;
+ extraPackages = with pkgs; [
+ libva
+ ];
};
hardware.sensor.iio.enable = true;
})
@@ -69,17 +77,20 @@ in {
};
hardware.graphics.extraPackages = with pkgs; [
rocmPackages.clr.icd
+ libva
+ libva-utils
];
})
{
- boot.kernelPackages = let
- kernels = {
- "stable" = pkgs.linuxPackages_latest;
- "zen" = pkgs.linuxPackages_zen;
- "hardened" = pkgs.linuxPackages_hardened;
- "unstable" = inputs.kernelv.legacyPackages.x86_64-linux.linuxPackages_6_17;
- };
- in
+ boot.kernelPackages =
+ let
+ kernels = {
+ "stable" = pkgs.linuxPackages_latest;
+ "zen" = pkgs.linuxPackages_zen;
+ "hardened" = pkgs.linuxPackages_hardened;
+ # "unstable" = pkgs.linuxPackages.;
+ };
+ in
kernels.${cfg.kernel} or kernels."stable";
}
]
diff --git a/os/core/security.nix b/os/core/security.nix
index f1c41c2..afd2b2a 100644
--- a/os/core/security.nix
+++ b/os/core/security.nix
@@ -2,6 +2,7 @@
config,
lib,
pkgs,
+ username,
...
}:
let
@@ -13,6 +14,17 @@ in
services.gnome.gnome-keyring.enable = true;
security = {
+ doas = {
+ enable = true;
+ extraRules = [
+ {
+ users = [ username ];
+ keepEnv = true;
+ persist = true;
+ }
+ ];
+ };
+ # sudo.enable = false;
pam.services = {
swaylock = { };
login.enableGnomeKeyring = true;
@@ -22,13 +34,11 @@ in
};
environment.systemPackages = with pkgs; [
- veracrypt
+ doas-sudo-shim
+ veracrypt
bitwarden-desktop
- keyguard
-
keepassxc
- keepassxc-go
git-credential-keepassxc
];
};
diff --git a/os/srv/gaming.nix b/os/srv/gaming.nix
index 3e2eea4..237098c 100644
--- a/os/srv/gaming.nix
+++ b/os/srv/gaming.nix
@@ -70,7 +70,7 @@ in
localNetworkGameTransfers.openFirewall = true;
dedicatedServer.openFirewall = true;
remotePlay.openFirewall = false;
- extest.enable = true;
+ # extest.enable = true;
protontricks.enable = true;
extraCompatPackages = with pkgs; [
@@ -86,6 +86,8 @@ in
enable = true;
openFirewall = true;
};
+ environment.systemPackages = [ pkgs.android-tools ];
+ users.users.${username}.extraGroups = [ "adbusers" ];
})
];
}
diff --git a/os/srv/sops.nix b/os/srv/sops.nix
index fecb9df..36ab9ef 100644
--- a/os/srv/sops.nix
+++ b/os/srv/sops.nix
@@ -18,7 +18,7 @@ in
};
config = lib.mkIf cfg.enable {
sops = {
- defaultSopsFile = ../../secrets/common.yaml;
+ defaultSopsFile = ../../secrets.yaml;
defaultSopsFormat = "yaml";
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
@@ -26,12 +26,7 @@ in
"syncthing/gui_password".owner = username;
"syncthing/encryption/game-saves".owner = username;
"syncthing/encryption/keepass".owner = username;
- "vpn/warp_private_key" = {
- owner = "root";
- group = "networkmanager";
- mode = "0400";
- restartUnits = [ "NetworkManager.service" ];
- };
+ "vpn/warp_private_key".owner = "root";
"obs/websocket_password".owner = username;
root_password.neededForUsers = true;
user_password.neededForUsers = true;