switch to pulseaudio? kms, user

This commit is contained in:
Tao Tien 2025-05-22 17:46:26 -07:00
parent 4a94982184
commit 2202a9e279
2 changed files with 203 additions and 194 deletions

View file

@ -1,55 +1,64 @@
{ {
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: { }: {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
raspberrypi-eeprom raspberrypi-eeprom
]; ];
programs.partition-manager.enable = false; programs.partition-manager.enable = false;
services.printing.enable = false; services.printing.enable = false;
i18n.inputMethod = {}; i18n.inputMethod = {};
services.xserver.enable = false; services.xserver.enable = false;
services.desktopManager.plasma6.enable = false; services.desktopManager.plasma6.enable = false;
hardware.raspberry-pi."4" = { services.pipewire.enable = false;
bluetooth.enable = true; services.pulseaudio.enable = true;
audio.enable = true; config.hardware.raspberry-pi."4" = {
bluetooth.enable = true;
fkms-3d.enable = true;
};
users.users.tao = {
isNormalUser = true;
hashedPasswordFile = config.age.secrets.password-tao.path;
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
shell = pkgs.nushell;
};
boot.loader.systemd-boot.enable = false;
boot.loader.efi.canTouchEfiVariables = false;
fileSystems = {
"/" = {
device = "/dev/disk/by-label/NIXOS_SD";
fsType = "ext4";
options = ["noatime"];
}; };
};
boot.loader.systemd-boot.enable = false; nix.buildMachines = [
boot.loader.efi.canTouchEfiVariables = false; {
hostName = "nolaptop";
systems = ["x86_64-linux" "i686-linux"];
supportedFeatures = [
"benchmark"
"big-parallel"
"gccarch-znver4"
"kvm"
"nixos-test"
];
}
];
nix.extraOptions = ''
builders-use-substitutes = true
'';
nix.distributedBuilds = true;
fileSystems = { networking.hostName = "NObangers";
"/" = { nixpkgs.hostPlatform = "aarch64-linux";
device = "/dev/disk/by-label/NIXOS_SD"; system.stateVersion = "23.11";
fsType = "ext4";
options = ["noatime"];
};
};
nix.buildMachines = [
{
hostName = "nolaptop";
systems = ["x86_64-linux" "i686-linux"];
supportedFeatures = [
"benchmark"
"big-parallel"
"gccarch-znver4"
"kvm"
"nixos-test"
];
}
];
nix.extraOptions = ''
builders-use-substitutes = true
'';
nix.distributedBuilds = true;
networking.hostName = "NObangers";
nixpkgs.hostPlatform = "aarch64-linux";
system.stateVersion = "23.11";
} }

View file

@ -1,162 +1,162 @@
{ {
inputs, inputs,
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: { }: {
users.users.tao.packages = with pkgs; [ users.users.tao.packages = with pkgs; [
# boxxy # boxxy
calibre calibre
# carapace # carapace
# cloud-hypervisor # cloud-hypervisor
# davinci-resolve # davinci-resolve
# fractal # fractal
# freerdp # freerdp
# inputs.plasma-manager.packages.${pkgs.system}.default # inputs.plasma-manager.packages.${pkgs.system}.default
# jellyfin-mpv-shim # jellyfin-mpv-shim
# libsForQt5.kcharselect # libsForQt5.kcharselect
# mendeley # mendeley
# piper # piper
# slack # slack
# tectonic # tectonic
# texlab # texlab
# thunderbird # thunderbird
# wkhtmltopdf # wkhtmltopdf
appimage-run appimage-run
aspell aspell
aspellDicts.en aspellDicts.en
bottles bottles
darktable darktable
deluge deluge
discord discord
freecad-wayland freecad-wayland
gocryptfs gocryptfs
gurk-rs gurk-rs
jellyfin-media-player jellyfin-media-player
# kdePackages.plasma-vault # kdePackages.plasma-vault
keepassxc keepassxc
# leetcode-cli # leetcode-cli
man-pages man-pages
man-pages-posix man-pages-posix
miniserve miniserve
mousai mousai
nix-output-monitor nix-output-monitor
nixos-anywhere nixos-anywhere
nufmt nufmt
nushell nushell
nvd nvd
obs-studio obs-studio
oculante oculante
onlyoffice-bin onlyoffice-bin
pandoc pandoc
pipe-rename pipe-rename
prusa-slicer prusa-slicer
qmk qmk
qmk-udev-rules qmk-udev-rules
qmk_hid qmk_hid
ripgrep-all ripgrep-all
signal-desktop signal-desktop
slack slack
snapper snapper
starship starship
syncthingtray syncthingtray
taskwarrior3 taskwarrior3
tinymist tinymist
toastify toastify
typst typst
usbutils usbutils
vial vial
wezterm wezterm
wl-clipboard-rs wl-clipboard-rs
yt-dlp yt-dlp
zathura zathura
zellij zellij
zoom-us zoom-us
zoxide zoxide
]; ];
programs.adb.enable = true; programs.adb.enable = true;
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
environment.shells = with pkgs; [nushell]; environment.shells = with pkgs; [nushell];
# virtualisation.libvirtd.enable = true; # virtualisation.libvirtd.enable = true;
# virtualisation.libvirtd.qemu.swtpm.enable = true; # virtualisation.libvirtd.qemu.swtpm.enable = true;
# virtualisation.spiceUSBRedirection.enable = true; # virtualisation.spiceUSBRedirection.enable = true;
# programs.virt-manager.enable = true; # programs.virt-manager.enable = true;
# virtualisation.virtualbox.host = { # virtualisation.virtualbox.host = {
# enable = true; # enable = true;
# enableExtensionPack = true; # enableExtensionPack = true;
# }; # };
# nixpkgs.overlays = [ # nixpkgs.overlays = [
# (final: prev: { # (final: prev: {
# options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: { # options.services.snapper.configs = prev.options.services.snapper.configs.overrideAttrs (old: {
# configOptions.FSTYPE = lib.mkOption { # configOptions.FSTYPE = lib.mkOption {
# type = lib.types.enum ["btrfs" "bcachefs"]; # type = lib.types.enum ["btrfs" "bcachefs"];
# }; # };
# }); # });
# }) # })
# ]; # ];
disabledModules = ["services/misc/snapper.nix"]; disabledModules = ["services/misc/snapper.nix"];
imports = [../extras/snapper.nix]; imports = [../extras/snapper.nix];
services.snapper.configs = { services.snapper.configs = {
home = { home = {
SUBVOLUME = "/home"; SUBVOLUME = "/home";
# FSTYPE = "bcachefs"; # FSTYPE = "bcachefs";
FSTYPE = FSTYPE =
if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname) if lib.strings.hasPrefix "NOlaptop" (builtins.readFile /etc/hostname)
then "bcachefs" then "bcachefs"
else "btrfs"; else "btrfs";
ALLOW_USERS = ["tao"]; ALLOW_USERS = ["tao"];
TIMELINE_CREATE = true; TIMELINE_CREATE = true;
TIMELINE_CLEANUP = true; TIMELINE_CLEANUP = true;
TIMELINE_LIMIT_HOURLY = 5; TIMELINE_LIMIT_HOURLY = 5;
TIMELINE_LIMIT_DAILY = 7; TIMELINE_LIMIT_DAILY = 7;
};
}; };
services.snapper.snapshotInterval = "*:0/5"; };
services.snapper.snapshotInterval = "*:0/5";
hardware.keyboard.qmk.enable = true; hardware.keyboard.qmk.enable = true;
services.udev.extraRules = '' services.udev.extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl" KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
''; '';
# services.ratbagd.enable = true; # services.ratbagd.enable = true;
boot.extraModulePackages = with config.boot.kernelPackages; [ boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback v4l2loopback
]; ];
boot.extraModprobeConfig = '' boot.extraModprobeConfig = ''
options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1 options v4l2loopback devices=1 video_nr=1 card_label="OBS Cam" exclusive_caps=1
''; '';
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
# (nerdfonts.override {fonts = ["FiraCode"];}) # (nerdfonts.override {fonts = ["FiraCode"];})
nerd-fonts.fira-code nerd-fonts.fira-code
noto-fonts-cjk-sans noto-fonts-cjk-sans
noto-fonts-cjk-serif noto-fonts-cjk-serif
noto-fonts-color-emoji noto-fonts-color-emoji
ibm-plex ibm-plex
cooper-hewitt cooper-hewitt
]; ];
documentation.enable = true; documentation.enable = true;
# age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age; # age.secrets.password-tao.file = ../secrets/syncthing-uwuraid.age;
users.users.tao = { users.users.tao = {
isNormalUser = true; isNormalUser = true;
# hashedPasswordFile = config.age.secrets.password-tao.path; # hashedPasswordFile = config.age.secrets.password-tao.path;
extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"]; extraGroups = ["audio" "video" "wheel" "libvirtd" "dialout" "game"];
shell = pkgs.nushell; shell = pkgs.nushell;
}; };
age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age; age.secrets.syncthing-NOcomputer.file = ../secrets/syncthing-NOcomputer.age;
age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age; age.secrets.syncthing-NOlaptop.file = ../secrets/syncthing-NOlaptop.age;
age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age; age.secrets.syncthing-uwuraid.file = ../secrets/syncthing-uwuraid.age;
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.verbose = true; home-manager.verbose = true;
home-manager.backupFileExtension = ".hm-bak"; home-manager.backupFileExtension = ".hm-bak";
home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;}; home-manager.users.tao = import ./tao/HOME.nix {inherit inputs pkgs lib config;};
} }