24 Commits

Author SHA1 Message Date
4ad4814bed Initial pi config 2023-12-03 23:17:30 +00:00
5c591c0a06 90 day log retention 2023-12-03 22:40:25 +00:00
1aab626f17 Setup backups on odyssey 2023-12-03 22:25:13 +00:00
bbf835d127 Add secrets with agenix 2023-12-03 21:59:44 +00:00
16a1e0dd7f flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/538698cc08dc031facc7983ded3f1d76e658e702' (2023-11-30)
  → 'github:rafaelmardojai/firefox-gnome-theme/ec9421f82d922b7293ffd45a47f7abdee80038c6' (2023-11-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
  → 'github:NixOS/nixpkgs/5de0b32be6e85dc1a9404c75131316e4ffbc634c' (2023-12-01)
2023-12-02 00:17:15 +00:00
c8d0c08ada Move fragments and mission-center to user 2023-11-30 22:48:18 +00:00
6cd398b9f7 Remove BlackBox terminal 2023-11-30 22:20:04 +00:00
9af6782311 Revert "Use open source NVIDIA driver"
This reverts commit 65a55e1695.
2023-11-30 22:05:13 +00:00
65a55e1695 Use open source NVIDIA driver 2023-11-30 22:01:44 +00:00
ecef5d13a7 Add mission-center 2023-11-30 22:01:35 +00:00
9794d5eb0c Disable unused extensions 2023-11-30 22:01:17 +00:00
8562ccd5fc flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/1208b24818388416e5376967b8e89a1b13d1bf31' (2023-11-22)
  → 'github:rafaelmardojai/firefox-gnome-theme/538698cc08dc031facc7983ded3f1d76e658e702' (2023-11-30)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7c4c20509c4363195841faa6c911777a134acdf3' (2023-11-28)
  → 'github:NixOS/nixpkgs/50aa30a13c4ab5e7ba282da460a3e3d44e9d0eb3' (2023-11-29)
2023-11-30 16:22:25 +00:00
b3ef72d975 Upgrade to NixOS 23.11 2023-11-29 22:58:57 +00:00
cf40b4d4d3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1216a5ba22a93a4a3a3bfdb4bff0f4727c576fcc' (2023-11-24)
  → 'github:NixOS/nixpkgs/5b528f99f73c4fad127118a8c1126b5e003b01a9' (2023-11-27)
2023-11-29 20:05:42 +00:00
f64ed2bb24 Enable rounded corners in Firefox 2023-11-26 19:21:43 +00:00
f9b577f559 flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/5e796d330d3765798d32b361638b048fda1a1450' (2023-11-21)
  → 'github:rafaelmardojai/firefox-gnome-theme/1208b24818388416e5376967b8e89a1b13d1bf31' (2023-11-22)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0c5678df521e1407884205fe3ce3cf1d7df297db' (2023-11-19)
  → 'github:NixOS/nixpkgs/1216a5ba22a93a4a3a3bfdb4bff0f4727c576fcc' (2023-11-24)
• Removed input 'sops-nix'
• Removed input 'sops-nix/nixpkgs'
• Removed input 'sops-nix/nixpkgs-stable'
2023-11-25 12:37:56 +00:00
b3882912ec flake.lock: Update
Flake lock file updates:

• Updated input 'firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/1c32013cdbe17406de496cdf5f6899b84c4bbfed' (2023-11-10)
  → 'github:rafaelmardojai/firefox-gnome-theme/5e796d330d3765798d32b361638b048fda1a1450' (2023-11-21)
2023-11-21 20:13:35 +00:00
d78db40991 Weekly garbage collection 2023-11-20 14:53:36 +00:00
07362a0c81 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/04bac349d585c9df38d78e0285b780a140dc74a4' (2023-11-12)
  → 'github:nix-community/home-manager/28535c3a34d79071f2ccb68671971ce0c0984d7e' (2023-11-19)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9fb122519e9cd465d532f736a98c1e1eb541ef6f' (2023-11-16)
  → 'github:NixOS/nixpkgs/0c5678df521e1407884205fe3ce3cf1d7df297db' (2023-11-19)
2023-11-20 10:06:26 +00:00
7865add65e Use default lock shortcut 2023-11-19 21:19:06 +00:00
9471a92387 Disable PaperWM 2023-11-19 21:17:59 +00:00
a4f0cabeda Add fragments app 2023-11-19 09:52:27 +00:00
f581772723 Add pano extension 2023-11-19 09:48:50 +00:00
357c3e8c10 Enable lxd on odyssey 2023-11-17 22:39:57 +00:00
15 changed files with 273 additions and 60 deletions

View File

@ -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`

122
flake.lock generated
View File

@ -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": 1699621711,
"narHash": "sha256-GUvBQbagF/7W1AriPVvJYA1cmk9Y/iWXghj3cIFYQzU=",
"lastModified": 1701370547,
"narHash": "sha256-pCtPIcRnMMJOwAlNh5qTO00uw/PBThIIzjMCRcCyHYw=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "1c32013cdbe17406de496cdf5f6899b84c4bbfed",
"rev": "ec9421f82d922b7293ffd45a47f7abdee80038c6",
"type": "github"
},
"original": {
@ -19,44 +61,98 @@
"home-manager": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1699748081,
"narHash": "sha256-MOmMapBydd7MTjhX4eeQZzKlCABWw8W6iSHSG4OeFKE=",
"lastModified": 1682203081,
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "04bac349d585c9df38d78e0285b780a140dc74a4",
"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": 1700097215,
"narHash": "sha256-ODQ3gBTv1iHd7lG21H+ErVISB5wVeOhd/dEogOqHs/I=",
"lastModified": 1677676435,
"narHash": "sha256-6FxdcmQr5JeZqsQvfinIMr0XcTyTuR7EXX0H3ANShpQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9fb122519e9cd465d532f736a98c1e1eb541ef6f",
"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"
}
},

View File

@ -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

View File

@ -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;

View File

@ -48,11 +48,17 @@ with lib.my;
'';
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";
@ -68,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;

View File

@ -44,11 +44,6 @@ in {
fsType = "zfs";
};
fileSystems."/nix" =
{ device = "rpool/local/nix";
fsType = "zfs";
};
fileSystems."/tmp" =
{ device = "rpool/local/tmp";
fsType = "zfs";

44
hosts/pi/default.nix Normal file
View 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";
}

View 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" ];
};
};
}

View File

@ -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;

View File

@ -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;

View File

@ -19,11 +19,6 @@ in {
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 = [
@ -33,13 +28,14 @@ in {
# "desktop-cube@schneegans.github.com"
# "desktop-zoom@colin.kinlo.ch"
"espresso@coadmunkee.github.com"
"flypie@schneegans.github.com"
# "flypie@schneegans.github.com"
# "forge@jmmaranan.com"
"hue-lights@chlumskyvaclav@gmail.com"
"just-perfection-desktop@just-perfection"
"paperwm@hedning:matrix.org"
# "pano@elhan.io"
# "paperwm@hedning:matrix.org"
# "search-light@icedman.github.com"
# "space-bar@luchrioh"
"space-bar@luchrioh"
# "smart-auto-move@khimaros.com"
# "systemd-manager@hardpixel.eu"
# "tailscale-status@maxgallup.github.com"
@ -50,7 +46,6 @@ in {
favorite-apps = [
"firefox.desktop"
"org.gnome.Nautilus.desktop"
"com.raggesilver.BlackBox.desktop"
];
};
"org/gnome/shell/extensions/another-window-session-manager" = {
@ -103,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;
@ -123,9 +118,6 @@ in {
"<Shift>F11"
"XF86AudioLowerVolume"
];
screensaver = [
"<Shift><Super>l"
];
};
"org/gnome/gnome-session" = {
auto-save-session = true;
@ -154,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
@ -184,6 +177,7 @@ in {
gnomeExtensions.hue-lights
gnomeExtensions.just-perfection
# gnomeExtensions.mutter-primary-gpu
gnomeExtensions.pano
gnomeExtensions.paperwm
# gnomeExtensions.pip-on-top
gnomeExtensions.search-light

View File

@ -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 = [

View File

@ -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
View 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 ];
}

Binary file not shown.