Compare commits
38 Commits
df41276392
...
4ad4814bed
Author | SHA1 | Date | |
---|---|---|---|
4ad4814bed
|
|||
5c591c0a06
|
|||
1aab626f17
|
|||
bbf835d127
|
|||
16a1e0dd7f
|
|||
c8d0c08ada
|
|||
6cd398b9f7
|
|||
9af6782311
|
|||
65a55e1695
|
|||
ecef5d13a7
|
|||
9794d5eb0c
|
|||
8562ccd5fc
|
|||
b3ef72d975
|
|||
cf40b4d4d3
|
|||
f64ed2bb24
|
|||
f9b577f559
|
|||
b3882912ec
|
|||
d78db40991
|
|||
07362a0c81
|
|||
7865add65e
|
|||
9471a92387
|
|||
a4f0cabeda
|
|||
f581772723
|
|||
357c3e8c10
|
|||
e113a6b280
|
|||
920df723ae
|
|||
ba2dd42e3e
|
|||
7ac7d21476
|
|||
bef12cd228
|
|||
6536bb12d1
|
|||
972af5d5e5
|
|||
92c6b765cf
|
|||
7e81e16301
|
|||
44cc7406f6
|
|||
9cc4470502
|
|||
2df8227ef9
|
|||
2c66879af9
|
|||
20004881bc
|
@ -7,7 +7,7 @@ System and user configuration for NixOS-based systems.
|
||||
| **Shell:** | zsh |
|
||||
| **DE:** | GNOME |
|
||||
| **Theme:** | adwaita |
|
||||
| **Terminal:** | BlackBox |
|
||||
| **Terminal:** | Console |
|
||||
|
||||
## Quick start
|
||||
1. Copy SSH keypair and `known_hosts` to `~/.ssh`
|
||||
|
128
flake.lock
generated
128
flake.lock
generated
@ -1,13 +1,55 @@
|
||||
{
|
||||
"nodes": {
|
||||
"agenix": {
|
||||
"inputs": {
|
||||
"darwin": "darwin",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701216516,
|
||||
"narHash": "sha256-jKSeJn+7hZ1dZdiH1L+NWUGT2i/BGomKAJ54B9kT06Q=",
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"rev": "13ac9ac6d68b9a0896e3d43a082947233189e247",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ryantm",
|
||||
"repo": "agenix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1673295039,
|
||||
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "master",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"firefox-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1698329218,
|
||||
"narHash": "sha256-OU6LyGeePS31pG7o10su7twDzDL5Z3a1sHtV68SzEwI=",
|
||||
"lastModified": 1701370547,
|
||||
"narHash": "sha256-pCtPIcRnMMJOwAlNh5qTO00uw/PBThIIzjMCRcCyHYw=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "3cb70833903a560ac22f49d278e7ce955bf8395e",
|
||||
"rev": "ec9421f82d922b7293ffd45a47f7abdee80038c6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -19,55 +61,109 @@
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"agenix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1695108154,
|
||||
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
|
||||
"lastModified": 1682203081,
|
||||
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "07682fff75d41f18327a871088d20af2710d4744",
|
||||
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-23.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1700814205,
|
||||
"narHash": "sha256-lWqDPKHRbQfi+zNIivf031BUeyciVOtwCwTjyrhDB5g=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "aeb2232d7a32530d3448318790534d196bf9427a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-23.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1701598471,
|
||||
"narHash": "sha256-kHdJ2qc4qKeMTzUIHEcP41ah/dBIhCgvWgrjllt2G78=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "a89745edd5f657e2e5be5ed1bea86725ca78d92e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1698434055,
|
||||
"narHash": "sha256-Phxi5mUKSoL7A0IYUiYtkI9e8NcGaaV5PJEaJApU1Ko=",
|
||||
"lastModified": 1677676435,
|
||||
"narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1a3c95e3b23b3cdb26750621c08cc2f1560cb883",
|
||||
"rev": "a08d6979dd7c82c4cef0dcc6ac45ab16051c1169",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1701389149,
|
||||
"narHash": "sha256-rU1suTIEd5DGCaAXKW6yHoCfR1mnYjOXQFOaH7M23js=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5de0b32be6e85dc1a9404c75131316e4ffbc634c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-23.05",
|
||||
"ref": "nixos-23.11",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"agenix": "agenix",
|
||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"home-manager": "home-manager_2",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"thunderbird-gnome-theme": "thunderbird-gnome-theme"
|
||||
}
|
||||
},
|
||||
"thunderbird-gnome-theme": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1695480543,
|
||||
"narHash": "sha256-lfQ4M4Jm/bxig3koPRAoSaS4bZScqkvtS+2vKDScNeg=",
|
||||
"lastModified": 1699285862,
|
||||
"narHash": "sha256-3TQYBJAeQ2fPFxQnD5iKRKKWFlN3GJhz1EkdwE+4m0k=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "thunderbird-gnome-theme",
|
||||
"rev": "99620f1353689c9ac0a3fc389306faf2b9137fa8",
|
||||
"rev": "a899ca12204d19f4834fbd092aa5bb05dc4bd127",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
17
flake.nix
17
flake.nix
@ -2,9 +2,11 @@
|
||||
description = "NixOS/Darwin system configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-23.11";
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-23.05";
|
||||
url = "github:nix-community/home-manager/release-23.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
firefox-gnome-theme = {
|
||||
@ -17,7 +19,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs @ { self, nixpkgs, home-manager, ... }:
|
||||
outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }:
|
||||
let
|
||||
inherit (lib) attrValues;
|
||||
inherit (lib.my) mapModules mapModulesRec;
|
||||
@ -44,7 +46,7 @@
|
||||
nixosConfigurations = {
|
||||
atlas = nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||
(import ./modules)
|
||||
./hosts/atlas
|
||||
@ -53,7 +55,7 @@
|
||||
};
|
||||
eos = nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||
(import ./modules)
|
||||
./hosts/eos
|
||||
@ -62,7 +64,7 @@
|
||||
};
|
||||
helios = nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||
(import ./modules)
|
||||
./hosts/helios
|
||||
@ -71,7 +73,8 @@
|
||||
};
|
||||
odyssey = nixpkgs.lib.nixosSystem {
|
||||
modules = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
home-manager.nixosModules.home-manager
|
||||
agenix.nixosModules.default
|
||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||
(import ./modules)
|
||||
./hosts/odyssey
|
||||
|
@ -46,20 +46,27 @@ with lib.my;
|
||||
neovim
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
connect-timeout = 5;
|
||||
log-lines = 25;
|
||||
min-free = 128000000;
|
||||
max-free = 1000000000;
|
||||
fallback = true;
|
||||
auto-optimise-store = true;
|
||||
substituters = [
|
||||
"http://odyssey.mesh.vimium.net"
|
||||
"https://cache.nixos.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ="
|
||||
];
|
||||
nix = {
|
||||
settings = {
|
||||
connect-timeout = 5;
|
||||
log-lines = 25;
|
||||
min-free = 128000000;
|
||||
max-free = 1000000000;
|
||||
fallback = true;
|
||||
auto-optimise-store = true;
|
||||
substituters = [
|
||||
"http://odyssey.mesh.vimium.net"
|
||||
"https://cache.nixos.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ="
|
||||
];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "-d --delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
|
||||
modules.desktop.gnome.enable = true;
|
||||
|
57
hosts/odyssey/0001-Update-device-ID-for-PreSonus-1824c.patch
Normal file
57
hosts/odyssey/0001-Update-device-ID-for-PreSonus-1824c.patch
Normal file
@ -0,0 +1,57 @@
|
||||
From c16be6b3b4da5a55e3ff4258ada123b5f03757e5 Mon Sep 17 00:00:00 2001
|
||||
From: Jordan Holt <jordan@vimium.com>
|
||||
Date: Sun, 12 Nov 2023 12:13:39 +0000
|
||||
Subject: [PATCH] Update device ID for PreSonus 1824c
|
||||
|
||||
---
|
||||
sound/usb/format.c | 4 ++--
|
||||
sound/usb/mixer_quirks.c | 2 +-
|
||||
sound/usb/quirks.c | 4 ++--
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/sound/usb/format.c b/sound/usb/format.c
|
||||
index ab5fed9f55b6..da50a4782414 100644
|
||||
--- a/sound/usb/format.c
|
||||
+++ b/sound/usb/format.c
|
||||
@@ -378,8 +378,8 @@ static int parse_uac2_sample_rate_range(struct snd_usb_audio *chip,
|
||||
|
||||
for (rate = min; rate <= max; rate += res) {
|
||||
|
||||
- /* Filter out invalid rates on Presonus Studio 1810c */
|
||||
- if (chip->usb_id == USB_ID(0x194f, 0x010c) &&
|
||||
+ /* Filter out invalid rates on Presonus Studio 1824c */
|
||||
+ if (chip->usb_id == USB_ID(0x194f, 0x010d) &&
|
||||
!s1810c_valid_sample_rate(fp, rate))
|
||||
goto skip_rate;
|
||||
|
||||
diff --git a/sound/usb/mixer_quirks.c b/sound/usb/mixer_quirks.c
|
||||
index 898bc3baca7b..c3135459c38c 100644
|
||||
--- a/sound/usb/mixer_quirks.c
|
||||
+++ b/sound/usb/mixer_quirks.c
|
||||
@@ -3445,7 +3445,7 @@ int snd_usb_mixer_apply_create_quirk(struct usb_mixer_interface *mixer)
|
||||
err = snd_rme_controls_create(mixer);
|
||||
break;
|
||||
|
||||
- case USB_ID(0x194f, 0x010c): /* Presonus Studio 1810c */
|
||||
+ case USB_ID(0x194f, 0x010d): /* Presonus Studio 1824c */
|
||||
err = snd_sc1810_init_mixer(mixer);
|
||||
break;
|
||||
case USB_ID(0x2a39, 0x3fb0): /* RME Babyface Pro FS */
|
||||
diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c
|
||||
index ab2b938502eb..b86832edaaa0 100644
|
||||
--- a/sound/usb/quirks.c
|
||||
+++ b/sound/usb/quirks.c
|
||||
@@ -1551,8 +1551,8 @@ int snd_usb_apply_interface_quirk(struct snd_usb_audio *chip,
|
||||
/* fasttrackpro usb: skip altsets incompatible with device_setup */
|
||||
if (chip->usb_id == USB_ID(0x0763, 0x2012))
|
||||
return fasttrackpro_skip_setting_quirk(chip, iface, altno);
|
||||
- /* presonus studio 1810c: skip altsets incompatible with device_setup */
|
||||
- if (chip->usb_id == USB_ID(0x194f, 0x010c))
|
||||
+ /* presonus studio 1824c: skip altsets incompatible with device_setup */
|
||||
+ if (chip->usb_id == USB_ID(0x194f, 0x010d))
|
||||
return s1810c_skip_setting_quirk(chip, iface, altno);
|
||||
|
||||
|
||||
--
|
||||
2.40.1
|
||||
|
@ -19,17 +19,46 @@ with lib.my;
|
||||
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
environment.etc."pipewire/pipewire.conf.d/surround.conf".text = ''
|
||||
context.modules = [
|
||||
{
|
||||
name = libpipewire-module-loopback
|
||||
args = {
|
||||
node.description = "1824c Surround"
|
||||
capture.props = {
|
||||
node.name = "1824c_Speakers"
|
||||
media.class = "Audio/Sink"
|
||||
audio.position = [ FL FR FC SL SR LFE ]
|
||||
}
|
||||
playback.props = {
|
||||
node.name = "playback.1824c_Speakers"
|
||||
audio.position = [ AUX0 AUX1 AUX2 AUX3 AUX4 AUX5 ]
|
||||
target.object = "alsa_output.usb-PreSonus_Studio_1824c_SC4E21110775-00.multichannel-output"
|
||||
stream.dont-remix = true
|
||||
node.passive = true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
'';
|
||||
|
||||
nix.package = pkgs.nixFlakes;
|
||||
nix.extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
|
||||
virtualisation.libvirtd.enable = true;
|
||||
virtualisation.lxd.enable = true;
|
||||
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
|
||||
system.stateVersion = "22.11";
|
||||
|
||||
services.journald.extraConfig = ''
|
||||
SystemMaxUse=4G
|
||||
MaxRetentionSec=90day
|
||||
'';
|
||||
|
||||
services.nix-serve = {
|
||||
enable = true;
|
||||
secretKeyFile = "/var/cache-priv-key.pem";
|
||||
@ -45,6 +74,36 @@ with lib.my;
|
||||
};
|
||||
};
|
||||
|
||||
age.secrets."odyssey_borg_passphrase" = {
|
||||
file = ../../secrets/odyssey_borg_passphrase.age;
|
||||
};
|
||||
|
||||
services.borgmatic = {
|
||||
enable = true;
|
||||
settings = {
|
||||
location = {
|
||||
source_directories = [
|
||||
"/home/jordan/Documents"
|
||||
];
|
||||
repositories = [
|
||||
"ssh://iqwu22oq@iqwu22oq.repo.borgbase.com/./repo"
|
||||
];
|
||||
};
|
||||
storage = {
|
||||
encryption_passcommand = "cat ${config.age.secrets.odyssey_borg_passphrase.path}";
|
||||
ssh_command = "ssh -i /etc/ssh/ssh_host_ed25519_key";
|
||||
};
|
||||
retention = {
|
||||
keep_daily = 7;
|
||||
keep_weekly = 4;
|
||||
keep_monthly = 6;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Without this override, `cat` is unavailable for `encryption_passcommand`
|
||||
systemd.services.borgmatic.confinement.fullUnit = true;
|
||||
|
||||
modules = {
|
||||
desktop = {
|
||||
apps.qbittorrent.enable = true;
|
||||
|
@ -3,7 +3,11 @@
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
let
|
||||
snd-usb-audio-module = pkgs.callPackage ./snd-usb-audio.nix {
|
||||
kernel = config.boot.kernelPackages.kernel;
|
||||
};
|
||||
in {
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
@ -11,7 +15,11 @@
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.extraModulePackages = [
|
||||
(snd-usb-audio-module.overrideAttrs (_: {
|
||||
patches = [ ./0001-Update-device-ID-for-PreSonus-1824c.patch ];
|
||||
}))
|
||||
];
|
||||
boot.supportedFilesystems = [ "ntfs" ];
|
||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
||||
|
||||
|
36
hosts/odyssey/snd-usb-audio.nix
Normal file
36
hosts/odyssey/snd-usb-audio.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ pkgs, lib, kernel ? pkgs.linuxPackages_latest.kernel }:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
pname = "snd-usb-audio";
|
||||
inherit (kernel) src version postPatch nativeBuildInputs;
|
||||
|
||||
kernel_dev = kernel.dev;
|
||||
kernelVersion = kernel.modDirVersion;
|
||||
|
||||
modulePath = "sound/usb";
|
||||
|
||||
buildPhase = ''
|
||||
BUILT_KERNEL=$kernel_dev/lib/modules/$kernelVersion/build
|
||||
|
||||
cp $BUILT_KERNEL/Module.symvers .
|
||||
cp $BUILT_KERNEL/.config .
|
||||
cp $kernel_dev/vmlinux .
|
||||
|
||||
make "-j$NIX_BUILD_CORES" modules_prepare
|
||||
make "-j$NIX_BUILD_CORES" M=$modulePath modules
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
make \
|
||||
INSTALL_MOD_PATH="$out" \
|
||||
XZ="xz -T$NIX_BUILD_CORES" \
|
||||
M="$modulePath" \
|
||||
modules_install
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "USB Sound kernel module";
|
||||
license = lib.licenses.gpl2;
|
||||
};
|
||||
}
|
||||
|
44
hosts/pi/default.nix
Normal file
44
hosts/pi/default.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib.my;
|
||||
{
|
||||
imports = [
|
||||
<nixos-hardware/raspberry-pi/4>
|
||||
./hardware-configuration.nix
|
||||
../server.nix
|
||||
];
|
||||
|
||||
networking.hostName = "pi";
|
||||
networking.hostId = "";
|
||||
|
||||
hardware = {
|
||||
raspberry-pi."4" = {
|
||||
apply-overlays-dtmerge.enable = true;
|
||||
audio.enable = true;
|
||||
fkms-3d.enable = true;
|
||||
};
|
||||
deviceTree = {
|
||||
enable = true;
|
||||
filter = "*rpi-4-*.dtb";
|
||||
};
|
||||
};
|
||||
|
||||
sound.enable = true;
|
||||
console.enable = false;
|
||||
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
libraspberrypi
|
||||
raspberrypi-eeprom
|
||||
];
|
||||
|
||||
system.stateVersion = "22.11";
|
||||
}
|
||||
|
16
hosts/pi/hardware-configuration.nix
Normal file
16
hosts/pi/hardware-configuration.nix
Normal file
@ -0,0 +1,16 @@
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
<nixos-hardware/raspberry-pi/4>
|
||||
];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-label/NIXOS_SD";
|
||||
fsType = "ext4";
|
||||
options = [ "noatime" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -34,6 +34,17 @@ with lib.my;
|
||||
neovim
|
||||
];
|
||||
|
||||
nix = {
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "-d --delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
|
||||
modules.networking.tailscale = {
|
||||
enable = true;
|
||||
restrictSSH = false;
|
||||
|
@ -26,10 +26,11 @@ in {
|
||||
'';
|
||||
settings = {
|
||||
## GNOME theme
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.cs
|
||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.css
|
||||
"browser.uidensity" = 0; # Set UI density to normal
|
||||
"svg.context-properties.content.enabled" = true; # Enable SVG context-propertes
|
||||
"browser.theme.dark-private-windows" = false; # Disable private window dark theme
|
||||
"widget.gtk.rounded-bottom-corners.enabled" = true; # Enable rounded bottom window corners
|
||||
|
||||
## Preferences
|
||||
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
||||
|
@ -15,38 +15,37 @@ in {
|
||||
desktopManager.gnome.enable = true;
|
||||
};
|
||||
|
||||
services.flatpak.enable = true;
|
||||
|
||||
programs.dconf.enable = true;
|
||||
dconf.settings = {
|
||||
"com/raggesilver/BlackBox" = {
|
||||
theme-dark = "Dracula";
|
||||
font = "Ubuntu Mono 14";
|
||||
remember-window-size = true;
|
||||
};
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = [
|
||||
"another-window-session-manager@gmail.com"
|
||||
# "another-window-session-manager@gmail.com"
|
||||
"blur-my-shell@aunetx"
|
||||
"burn-my-windows@schneegans.github.com"
|
||||
"desktop-cube@schneegans.github.com"
|
||||
"desktop-zoom@colin.kinlo.ch"
|
||||
# "desktop-cube@schneegans.github.com"
|
||||
# "desktop-zoom@colin.kinlo.ch"
|
||||
"espresso@coadmunkee.github.com"
|
||||
# "flypie@schneegans.github.com"
|
||||
# "forge@jmmaranan.com"
|
||||
"hue-lights@chlumskyvaclav@gmail.com"
|
||||
"just-perfection-desktop@just-perfection"
|
||||
"search-light@icedman.github.com"
|
||||
# "pano@elhan.io"
|
||||
# "paperwm@hedning:matrix.org"
|
||||
# "search-light@icedman.github.com"
|
||||
"space-bar@luchrioh"
|
||||
# "smart-auto-move@khimaros.com"
|
||||
# "systemd-manager@hardpixel.eu"
|
||||
# "tailscale-status@maxgallup.github.com"
|
||||
"tiling-assistant@leleat-on-github"
|
||||
# "tiling-assistant@leleat-on-github"
|
||||
"Vitals@CoreCoding.com"
|
||||
# "wsmatrix@martin.zurowietz.de"
|
||||
];
|
||||
favorite-apps = [
|
||||
"firefox.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"com.raggesilver.BlackBox.desktop"
|
||||
];
|
||||
};
|
||||
"org/gnome/shell/extensions/another-window-session-manager" = {
|
||||
@ -74,6 +73,9 @@ in {
|
||||
"com.obsproject.Studio.desktop"
|
||||
];
|
||||
};
|
||||
"org/gnome/shell/extensions/paperwm" = {
|
||||
use-default-background = true;
|
||||
};
|
||||
"org/gnome/shell/extensions/forge" = {
|
||||
window-gap-size = 8;
|
||||
window-gap-hidden-on-single = false;
|
||||
@ -96,8 +98,8 @@ in {
|
||||
window-gap = 8;
|
||||
};
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.webp";
|
||||
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.webp";
|
||||
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.jpg";
|
||||
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.jpg";
|
||||
};
|
||||
"org/gtk/settings/file-chooser" = {
|
||||
show-hidden = true;
|
||||
@ -144,18 +146,19 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fonts = with pkgs; [
|
||||
fonts.packages = with pkgs; [
|
||||
noto-fonts
|
||||
ubuntu_font_family
|
||||
];
|
||||
|
||||
user.packages = with pkgs; [
|
||||
celluloid
|
||||
fragments
|
||||
mission-center
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
bind
|
||||
blackbox-terminal
|
||||
bmon
|
||||
fd
|
||||
ffmpeg
|
||||
@ -168,11 +171,14 @@ in {
|
||||
gnomeExtensions.desktop-cube
|
||||
gnomeExtensions.desktop-zoom
|
||||
gnomeExtensions.espresso
|
||||
gnome44Extensions."flypie@schneegans.github.com"
|
||||
# gnomeExtensions.forge
|
||||
# gnomeExtensions.gsnap
|
||||
gnomeExtensions.hue-lights
|
||||
gnomeExtensions.just-perfection
|
||||
# gnomeExtensions.mutter-primary-gpu
|
||||
gnomeExtensions.pano
|
||||
gnomeExtensions.paperwm
|
||||
# gnomeExtensions.pip-on-top
|
||||
gnomeExtensions.search-light
|
||||
gnomeExtensions.smart-auto-move
|
||||
|
@ -36,7 +36,7 @@ with lib.my;
|
||||
in {
|
||||
inherit name;
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "networkmanager" "wheel" ];
|
||||
extraGroups = [ "networkmanager" "wheel" "lxd" ];
|
||||
description = "Jordan Holt";
|
||||
useDefaultShell = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
|
@ -3,8 +3,8 @@ self: super:
|
||||
gnome = super.gnome.overrideScope' (gself: gsuper: {
|
||||
mutter = gsuper.mutter.overrideAttrs (oldAttrs: {
|
||||
src = super.fetchurl {
|
||||
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-44/mutter-triple-buffering-v4-44.tar.gz";
|
||||
sha256 = "UhCbdAh5AtYWTi0GX8RmexUAS0nbvISPuErX/8NTdoA=";
|
||||
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-45/mutter-triple-buffering-v4-45.tar.gz";
|
||||
sha256 = "E+AdsQdotqlH/kYskl+Fwv0i+UTK7mfdkJ+zlfLdU9o=";
|
||||
};
|
||||
});
|
||||
});
|
||||
|
10
secrets.nix
Normal file
10
secrets.nix
Normal file
@ -0,0 +1,10 @@
|
||||
let
|
||||
jordan = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILVHTjsyMIV4THNw6yz0OxAxGnC+41gX72UrPqTzR+OS";
|
||||
users = [ jordan ];
|
||||
|
||||
odyssey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJre8/cjdoUnbTu0x4ClTITcq4lq+FjpEyJBbLbOlox7";
|
||||
systems = [ odyssey ];
|
||||
in
|
||||
{
|
||||
"secrets/odyssey_borg_passphrase.age".publicKeys = [ jordan odyssey ];
|
||||
}
|
BIN
secrets/odyssey_borg_passphrase.age
Normal file
BIN
secrets/odyssey_borg_passphrase.age
Normal file
Binary file not shown.
Reference in New Issue
Block a user