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 |
|
| **Shell:** | zsh |
|
||||||
| **DE:** | GNOME |
|
| **DE:** | GNOME |
|
||||||
| **Theme:** | adwaita |
|
| **Theme:** | adwaita |
|
||||||
| **Terminal:** | BlackBox |
|
| **Terminal:** | Console |
|
||||||
|
|
||||||
## Quick start
|
## Quick start
|
||||||
1. Copy SSH keypair and `known_hosts` to `~/.ssh`
|
1. Copy SSH keypair and `known_hosts` to `~/.ssh`
|
||||||
|
137
flake.lock
generated
137
flake.lock
generated
@ -1,13 +1,55 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"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": {
|
"firefox-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1698329218,
|
"lastModified": 1701370547,
|
||||||
"narHash": "sha256-OU6LyGeePS31pG7o10su7twDzDL5Z3a1sHtV68SzEwI=",
|
"narHash": "sha256-pCtPIcRnMMJOwAlNh5qTO00uw/PBThIIzjMCRcCyHYw=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "firefox-gnome-theme",
|
"repo": "firefox-gnome-theme",
|
||||||
"rev": "3cb70833903a560ac22f49d278e7ce955bf8395e",
|
"rev": "ec9421f82d922b7293ffd45a47f7abdee80038c6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -19,92 +61,109 @@
|
|||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
"agenix",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695108154,
|
"lastModified": 1682203081,
|
||||||
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
|
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07682fff75d41f18327a871088d20af2710d4744",
|
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-23.05",
|
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixlib": {
|
"home-manager_2": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1693701915,
|
|
||||||
"narHash": "sha256-waHPLdDYUOHSEtMKKabcKIMhlUOHPOOPQ9UyFeEoovs=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "f5af57d3ef9947a70ac86e42695231ac1ad00c25",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixos-generators": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixlib": "nixlib",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696058303,
|
"lastModified": 1700814205,
|
||||||
"narHash": "sha256-eNqKWpF5zG0SrgbbtljFOrRgFgRzCc4++TMFADBMLnc=",
|
"narHash": "sha256-lWqDPKHRbQfi+zNIivf031BUeyciVOtwCwTjyrhDB5g=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"repo": "home-manager",
|
||||||
"rev": "150f38bd1e09e20987feacb1b0d5991357532fb5",
|
"rev": "aeb2232d7a32530d3448318790534d196bf9427a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nixos-generators",
|
"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"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1699169573,
|
"lastModified": 1677676435,
|
||||||
"narHash": "sha256-cvUb1xZkvOp3W2SzylStrTirhVd9zCeo5utJl9nSIhw=",
|
"narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "aeefe2054617cae501809b82b44a8e8f7be7cc4b",
|
"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"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-23.05",
|
"ref": "nixos-23.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"agenix": "agenix",
|
||||||
"firefox-gnome-theme": "firefox-gnome-theme",
|
"firefox-gnome-theme": "firefox-gnome-theme",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager_2",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"thunderbird-gnome-theme": "thunderbird-gnome-theme"
|
"thunderbird-gnome-theme": "thunderbird-gnome-theme"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"thunderbird-gnome-theme": {
|
"thunderbird-gnome-theme": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1695480543,
|
"lastModified": 1699285862,
|
||||||
"narHash": "sha256-lfQ4M4Jm/bxig3koPRAoSaS4bZScqkvtS+2vKDScNeg=",
|
"narHash": "sha256-3TQYBJAeQ2fPFxQnD5iKRKKWFlN3GJhz1EkdwE+4m0k=",
|
||||||
"owner": "rafaelmardojai",
|
"owner": "rafaelmardojai",
|
||||||
"repo": "thunderbird-gnome-theme",
|
"repo": "thunderbird-gnome-theme",
|
||||||
"rev": "99620f1353689c9ac0a3fc389306faf2b9137fa8",
|
"rev": "a899ca12204d19f4834fbd092aa5bb05dc4bd127",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
21
flake.nix
21
flake.nix
@ -2,13 +2,11 @@
|
|||||||
description = "NixOS/Darwin system configuration";
|
description = "NixOS/Darwin system configuration";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
nixpkgs.url = "nixpkgs/nixos-23.11";
|
||||||
nixos-generators = {
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
url = "github:nix-community/nixos-generators";
|
agenix.url = "github:ryantm/agenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-23.05";
|
url = "github:nix-community/home-manager/release-23.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
firefox-gnome-theme = {
|
firefox-gnome-theme = {
|
||||||
@ -21,7 +19,7 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ { self, nixpkgs, nixos-generators, home-manager, ... }:
|
outputs = inputs @ { self, nixpkgs, agenix, home-manager, ... }:
|
||||||
let
|
let
|
||||||
inherit (lib) attrValues;
|
inherit (lib) attrValues;
|
||||||
inherit (lib.my) mapModules mapModulesRec;
|
inherit (lib.my) mapModules mapModulesRec;
|
||||||
@ -48,7 +46,7 @@
|
|||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
atlas = nixpkgs.lib.nixosSystem {
|
atlas = nixpkgs.lib.nixosSystem {
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||||
(import ./modules)
|
(import ./modules)
|
||||||
./hosts/atlas
|
./hosts/atlas
|
||||||
@ -57,7 +55,7 @@
|
|||||||
};
|
};
|
||||||
eos = nixpkgs.lib.nixosSystem {
|
eos = nixpkgs.lib.nixosSystem {
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||||
(import ./modules)
|
(import ./modules)
|
||||||
./hosts/eos
|
./hosts/eos
|
||||||
@ -66,7 +64,7 @@
|
|||||||
};
|
};
|
||||||
helios = nixpkgs.lib.nixosSystem {
|
helios = nixpkgs.lib.nixosSystem {
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||||
(import ./modules)
|
(import ./modules)
|
||||||
./hosts/helios
|
./hosts/helios
|
||||||
@ -75,7 +73,8 @@
|
|||||||
};
|
};
|
||||||
odyssey = nixpkgs.lib.nixosSystem {
|
odyssey = nixpkgs.lib.nixosSystem {
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
|
agenix.nixosModules.default
|
||||||
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
{ nixpkgs.overlays = [ (import ./overlays/gnome.nix) ]; }
|
||||||
(import ./modules)
|
(import ./modules)
|
||||||
./hosts/odyssey
|
./hosts/odyssey
|
||||||
|
@ -46,20 +46,27 @@ with lib.my;
|
|||||||
neovim
|
neovim
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix = {
|
||||||
connect-timeout = 5;
|
settings = {
|
||||||
log-lines = 25;
|
connect-timeout = 5;
|
||||||
min-free = 128000000;
|
log-lines = 25;
|
||||||
max-free = 1000000000;
|
min-free = 128000000;
|
||||||
fallback = true;
|
max-free = 1000000000;
|
||||||
auto-optimise-store = true;
|
fallback = true;
|
||||||
substituters = [
|
auto-optimise-store = true;
|
||||||
"http://odyssey.mesh.vimium.net"
|
substituters = [
|
||||||
"https://cache.nixos.org"
|
"http://odyssey.mesh.vimium.net"
|
||||||
];
|
"https://cache.nixos.org"
|
||||||
trusted-public-keys = [
|
];
|
||||||
"odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ="
|
trusted-public-keys = [
|
||||||
];
|
"odyssey.mesh.vimium.net:ZhQhjscPWjoN4rlZwoMELznEiBnZ9O26iyGA27ibilQ="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "-d --delete-older-than 7d";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
modules.desktop.gnome.enable = true;
|
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;
|
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.package = pkgs.nixFlakes;
|
||||||
nix.extraOptions = ''
|
nix.extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
|
|
||||||
virtualisation.libvirtd.enable = true;
|
virtualisation.libvirtd.enable = true;
|
||||||
|
virtualisation.lxd.enable = true;
|
||||||
|
|
||||||
users.defaultUserShell = pkgs.zsh;
|
users.defaultUserShell = pkgs.zsh;
|
||||||
|
|
||||||
system.stateVersion = "22.11";
|
system.stateVersion = "22.11";
|
||||||
|
|
||||||
|
services.journald.extraConfig = ''
|
||||||
|
SystemMaxUse=4G
|
||||||
|
MaxRetentionSec=90day
|
||||||
|
'';
|
||||||
|
|
||||||
services.nix-serve = {
|
services.nix-serve = {
|
||||||
enable = true;
|
enable = true;
|
||||||
secretKeyFile = "/var/cache-priv-key.pem";
|
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 = {
|
modules = {
|
||||||
desktop = {
|
desktop = {
|
||||||
apps.qbittorrent.enable = true;
|
apps.qbittorrent.enable = true;
|
||||||
|
@ -3,7 +3,11 @@
|
|||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
let
|
||||||
|
snd-usb-audio-module = pkgs.callPackage ./snd-usb-audio.nix {
|
||||||
|
kernel = config.boot.kernelPackages.kernel;
|
||||||
|
};
|
||||||
|
in {
|
||||||
imports =
|
imports =
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
[ (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.availableKernelModules = [ "xhci_pci" "ehci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
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.supportedFilesystems = [ "ntfs" ];
|
||||||
boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
|
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
|
neovim
|
||||||
];
|
];
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
};
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
dates = "weekly";
|
||||||
|
options = "-d --delete-older-than 7d";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
modules.networking.tailscale = {
|
modules.networking.tailscale = {
|
||||||
enable = true;
|
enable = true;
|
||||||
restrictSSH = false;
|
restrictSSH = false;
|
||||||
|
@ -26,10 +26,11 @@ in {
|
|||||||
'';
|
'';
|
||||||
settings = {
|
settings = {
|
||||||
## GNOME theme
|
## GNOME theme
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.cs
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true; # Enable customChrome.css
|
||||||
"browser.uidensity" = 0; # Set UI density to normal
|
"browser.uidensity" = 0; # Set UI density to normal
|
||||||
"svg.context-properties.content.enabled" = true; # Enable SVG context-propertes
|
"svg.context-properties.content.enabled" = true; # Enable SVG context-propertes
|
||||||
"browser.theme.dark-private-windows" = false; # Disable private window dark theme
|
"browser.theme.dark-private-windows" = false; # Disable private window dark theme
|
||||||
|
"widget.gtk.rounded-bottom-corners.enabled" = true; # Enable rounded bottom window corners
|
||||||
|
|
||||||
## Preferences
|
## Preferences
|
||||||
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
"browser.ctrlTab.sortByRecentlyUsed" = true;
|
||||||
|
@ -15,38 +15,37 @@ in {
|
|||||||
desktopManager.gnome.enable = true;
|
desktopManager.gnome.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.flatpak.enable = true;
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"com/raggesilver/BlackBox" = {
|
|
||||||
theme-dark = "Dracula";
|
|
||||||
font = "Ubuntu Mono 14";
|
|
||||||
remember-window-size = true;
|
|
||||||
};
|
|
||||||
"org/gnome/shell" = {
|
"org/gnome/shell" = {
|
||||||
disable-user-extensions = false;
|
disable-user-extensions = false;
|
||||||
enabled-extensions = [
|
enabled-extensions = [
|
||||||
"another-window-session-manager@gmail.com"
|
# "another-window-session-manager@gmail.com"
|
||||||
"blur-my-shell@aunetx"
|
"blur-my-shell@aunetx"
|
||||||
"burn-my-windows@schneegans.github.com"
|
"burn-my-windows@schneegans.github.com"
|
||||||
"desktop-cube@schneegans.github.com"
|
# "desktop-cube@schneegans.github.com"
|
||||||
"desktop-zoom@colin.kinlo.ch"
|
# "desktop-zoom@colin.kinlo.ch"
|
||||||
"espresso@coadmunkee.github.com"
|
"espresso@coadmunkee.github.com"
|
||||||
|
# "flypie@schneegans.github.com"
|
||||||
# "forge@jmmaranan.com"
|
# "forge@jmmaranan.com"
|
||||||
"hue-lights@chlumskyvaclav@gmail.com"
|
"hue-lights@chlumskyvaclav@gmail.com"
|
||||||
"just-perfection-desktop@just-perfection"
|
"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"
|
"space-bar@luchrioh"
|
||||||
# "smart-auto-move@khimaros.com"
|
# "smart-auto-move@khimaros.com"
|
||||||
# "systemd-manager@hardpixel.eu"
|
# "systemd-manager@hardpixel.eu"
|
||||||
# "tailscale-status@maxgallup.github.com"
|
# "tailscale-status@maxgallup.github.com"
|
||||||
"tiling-assistant@leleat-on-github"
|
# "tiling-assistant@leleat-on-github"
|
||||||
"Vitals@CoreCoding.com"
|
"Vitals@CoreCoding.com"
|
||||||
# "wsmatrix@martin.zurowietz.de"
|
# "wsmatrix@martin.zurowietz.de"
|
||||||
];
|
];
|
||||||
favorite-apps = [
|
favorite-apps = [
|
||||||
"firefox.desktop"
|
"firefox.desktop"
|
||||||
"org.gnome.Nautilus.desktop"
|
"org.gnome.Nautilus.desktop"
|
||||||
"com.raggesilver.BlackBox.desktop"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
"org/gnome/shell/extensions/another-window-session-manager" = {
|
"org/gnome/shell/extensions/another-window-session-manager" = {
|
||||||
@ -74,6 +73,9 @@ in {
|
|||||||
"com.obsproject.Studio.desktop"
|
"com.obsproject.Studio.desktop"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
"org/gnome/shell/extensions/paperwm" = {
|
||||||
|
use-default-background = true;
|
||||||
|
};
|
||||||
"org/gnome/shell/extensions/forge" = {
|
"org/gnome/shell/extensions/forge" = {
|
||||||
window-gap-size = 8;
|
window-gap-size = 8;
|
||||||
window-gap-hidden-on-single = false;
|
window-gap-hidden-on-single = false;
|
||||||
@ -96,8 +98,8 @@ in {
|
|||||||
window-gap = 8;
|
window-gap = 8;
|
||||||
};
|
};
|
||||||
"org/gnome/desktop/background" = {
|
"org/gnome/desktop/background" = {
|
||||||
picture-uri = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-l.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.webp";
|
picture-uri-dark = "file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/adwaita-d.jpg";
|
||||||
};
|
};
|
||||||
"org/gtk/settings/file-chooser" = {
|
"org/gtk/settings/file-chooser" = {
|
||||||
show-hidden = true;
|
show-hidden = true;
|
||||||
@ -144,18 +146,19 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.fonts = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
ubuntu_font_family
|
ubuntu_font_family
|
||||||
];
|
];
|
||||||
|
|
||||||
user.packages = with pkgs; [
|
user.packages = with pkgs; [
|
||||||
celluloid
|
celluloid
|
||||||
|
fragments
|
||||||
|
mission-center
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
bind
|
bind
|
||||||
blackbox-terminal
|
|
||||||
bmon
|
bmon
|
||||||
fd
|
fd
|
||||||
ffmpeg
|
ffmpeg
|
||||||
@ -168,11 +171,14 @@ in {
|
|||||||
gnomeExtensions.desktop-cube
|
gnomeExtensions.desktop-cube
|
||||||
gnomeExtensions.desktop-zoom
|
gnomeExtensions.desktop-zoom
|
||||||
gnomeExtensions.espresso
|
gnomeExtensions.espresso
|
||||||
|
gnome44Extensions."flypie@schneegans.github.com"
|
||||||
# gnomeExtensions.forge
|
# gnomeExtensions.forge
|
||||||
# gnomeExtensions.gsnap
|
# gnomeExtensions.gsnap
|
||||||
gnomeExtensions.hue-lights
|
gnomeExtensions.hue-lights
|
||||||
gnomeExtensions.just-perfection
|
gnomeExtensions.just-perfection
|
||||||
# gnomeExtensions.mutter-primary-gpu
|
# gnomeExtensions.mutter-primary-gpu
|
||||||
|
gnomeExtensions.pano
|
||||||
|
gnomeExtensions.paperwm
|
||||||
# gnomeExtensions.pip-on-top
|
# gnomeExtensions.pip-on-top
|
||||||
gnomeExtensions.search-light
|
gnomeExtensions.search-light
|
||||||
gnomeExtensions.smart-auto-move
|
gnomeExtensions.smart-auto-move
|
||||||
|
@ -36,7 +36,7 @@ with lib.my;
|
|||||||
in {
|
in {
|
||||||
inherit name;
|
inherit name;
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
extraGroups = [ "networkmanager" "wheel" ];
|
extraGroups = [ "networkmanager" "wheel" "lxd" ];
|
||||||
description = "Jordan Holt";
|
description = "Jordan Holt";
|
||||||
useDefaultShell = true;
|
useDefaultShell = true;
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
|
@ -3,8 +3,8 @@ self: super:
|
|||||||
gnome = super.gnome.overrideScope' (gself: gsuper: {
|
gnome = super.gnome.overrideScope' (gself: gsuper: {
|
||||||
mutter = gsuper.mutter.overrideAttrs (oldAttrs: {
|
mutter = gsuper.mutter.overrideAttrs (oldAttrs: {
|
||||||
src = super.fetchurl {
|
src = super.fetchurl {
|
||||||
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-44/mutter-triple-buffering-v4-44.tar.gz";
|
url = "https://gitlab.gnome.org/Community/Ubuntu/mutter/-/archive/triple-buffering-v4-45/mutter-triple-buffering-v4-45.tar.gz";
|
||||||
sha256 = "UhCbdAh5AtYWTi0GX8RmexUAS0nbvISPuErX/8NTdoA=";
|
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