Compare commits

...

8 Commits

16 changed files with 517 additions and 326 deletions

View File

@ -29,16 +29,23 @@ Bloodletting:
Ritual:
- `colmena apply[-local]` - deploy config
- `mkdir -p ~/.gnupg` - create directory for gnupg
- copy `~/.ssh/id_ed25519`
- manual configuration/login:
- Firefox
- Copy extension data
- Element
- Telegram Desktop
- Geary
- Obsidian
### Rsyncd Modules
Modded minecraft instance rsync modules can be accessed through `mc-[modpack]@bloodletting::mc-[modpack]` with `--rsh=ssh`
### Updating mastodon
```sh
eval "$(nix build --impure --expr 'let pkgs = import <nixpkgs> { }; in pkgs.callPackage ./update.nix {}' --no-link --print-out-paths)/bin/update.sh --ver <commit hash>"
```
## Reference configs used
- https://github.com/Xe/nixos-configs
- https://git.nora.codes/nora/nixconfig

View File

@ -89,6 +89,9 @@
"XF86AudioMute" = "pamixer -t";
"XF86Audio{Prev,Next}" = "playerctl {previous,next}";
"XF86AudioPlay" = "playerctl play-pause";
"XF86MonBrightness{Up,Down}" = ''
brightnessctl set 10%{+,-} && dunstify -r 98114 -h int:value:$(( $(brightnessctl get) * 100 / $(brightnessctl max) )) "Brightness set to:"
'';
# Switch outputs
"super + o" = ''
dunstify -r 112119 "Sound output switched to $(${pkgs.pads}/bin/pads next && ${pkgs.pads}/bin/pads list | rg '^\*' | choose 1:)"'';

View File

@ -15,12 +15,13 @@
# User packages
users.users.agatha.packages = with pkgs; [
(element-desktop.override { electron = electron_24; })
blueberry
brightnessctl
broot
bspm
clipmenu
colmena
element-desktop
ffmpeg
flameshot
gimp
@ -39,8 +40,11 @@
neofetch
nil
nitrogen
nmap
obs-studio
obsidian
pfetch
polybar-spotify
pridefetch
prismlauncher
rofi-calc
@ -50,12 +54,19 @@
xdg-utils
xdotool
yubioath-flutter
bspm
];
# Brightness/volume keys
users.users.agatha.extraGroups = [ "video" ];
programs.light.enable = true;
location = {
latitude = 49.0;
longitude = 8.4;
};
services.redshift = {
enable = true;
brightness.night = "0.8";
};
services.xserver = {
enable = true;
@ -145,8 +156,44 @@
"ZorinPurple-Dark";
};
programs.helix.settings.theme =
if config.environment.graphical.theme.light then
"paramount-light"
else
"paramount-dark";
programs.direnv.enable = true;
home.sessionVariables = { "DIRENV_LOG_FORMAT" = ""; };
programs.ssh.enable = true;
programs.ssh.matchBlocks = {
"bloodletting" = { hostname = "technogothic.net"; };
"backups" = {
match = ''originalhost backups exec "ip r | rg 10.42.0.0/24"'';
hostname = "10.20.1.2";
user = "agatha";
identityFile = [ "~/.ssh/id_ed25519" ];
};
"work" = {
match = ''originalhost work exec "ip r | rg 10.42.0.0/24"'';
hostname = "10.42.0.222";
forwardX11 = true;
forwardX11Trusted = true;
forwardAgent = true;
remoteForwards = [{
bind.address = "/run/user/1000/gnupg/S.gpg-agent";
host.address = "/run/user/1000/gnupg/S.gpg-agent.extra";
}];
extraOptions."TCPKeepAlive" = "yes";
};
"ritual" = {
match = ''originalhost ritual exec "ip r | rg 10.42.0.0/24"'';
hostname = "10.42.0.104";
};
};
};
environment.graphical.colorschemes = {
@ -210,5 +257,13 @@
twitter-color-emoji
];
services.printing.enable = true;
services.printing = {
enable = true;
drivers = [ pkgs.hplip ];
};
services.avahi = {
enable = true;
nssmdns = true;
openFirewall = true;
};
}

View File

@ -21,6 +21,7 @@
MAX_POLL_OPTIONS = "128";
MAX_POLL_OPTION_CHARS = "512";
EXTRA_DATA_HOSTS = "https://ftp.technogothic.net";
MASTODON_VERSION_SUFFIX = "+AGATHA+AGATHA";
};
};

View File

@ -0,0 +1,14 @@
{ pkgs, ... }: {
systemd.services.matrix-ril100 = {
wantedBy = [ "multi-user.target" ];
description = "A matrix bot that looks up RIL100 codes and station names";
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.matrix-ril100}/bin/matrix-ril100";
WorkingDirectory = "/var/lib/matrix-ril100";
Restart = "always";
};
};
}

View File

@ -5,6 +5,7 @@
enable = true;
enableSSHSupport = true;
pinentryFlavor = "gnome3";
enableExtraSocket = true;
};
services.pcscd.enable = true;

View File

@ -1,4 +1,4 @@
{ pkgs, config, ... }: {
{ pkgs, config, lib, ... }: {
home-manager.users.agatha = {
# Formatters/Language Servers that Helix uses
home.packages = with pkgs; [ nixfmt ];
@ -15,10 +15,7 @@
}];
};
settings = {
theme = if config.environment.graphical.theme.light then
"paramount-light"
else
"paramount-dark";
theme = lib.mkDefault "paramount-dark";
editor = {
middle-click-paste = false;
scroll-lines = 4;

View File

@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
sha256 = "sha256-5KmPgKE1QRPoTjeSYidKt/z9vzWzTOoJVr5dNtofKJY=";
sha256 = "sha256-bc61bxJps7NKXdUxdRVX/4MqT83x4EpemNwHwFxmrSQ=";
};
nativeBuildInputs = [

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,8 @@
{ fetchgit, applyPatches }: let
src = fetchgit {
url = "https://github.com/AgathaSorceress/mastodon.git";
rev = "03aaee3a6dce9fdc1ca08aeaa7ad0180f3d9db47";
sha256 = "10lw2l91viicq47lwsj3nlhc4g3mvcpvfc8rd0jzvvbjyfq7npim";
rev = "76ba33f94b74b03178c92bb3b6537d645d7f08c5";
sha256 = "0nziinzc0w840w5axqvsgcxcm5jqnj4hz2l0zj0kxsiqn2drgqxv";
};
in applyPatches {
inherit src;

View File

@ -1 +1 @@
"03aaee3a6dce9fdc1ca08aeaa7ad0180f3d9db47"
"76ba33f94b74b03178c92bb3b6537d645d7f08c5"

View File

@ -0,0 +1,19 @@
{ pkgs }:
pkgs.stdenv.mkDerivation rec {
pname = "polybar-spotify";
version = "5edc2e598cf0ec5c54860c28db870af998271666";
src = pkgs.fetchFromGitHub {
owner = "Jvanrhijn";
repo = pname;
rev = version;
sha256 = "sha256-JPoigtxBYnFqi+8erhTcJlGN53VtS6z9mqNajQM0Xsk=";
};
propagatedBuildInputs = [
(pkgs.python39.withPackages (pyPkgs: [ pyPkgs.dbus-python ]))
pkgs.playerctl
];
installPhase = "install -Dm755 ./spotify_status.py $out/bin/polybar-spotify";
}

View File

@ -262,7 +262,7 @@
},
"flake-utils_4": {
"inputs": {
"systems": "systems_4"
"systems": "systems_5"
},
"locked": {
"lastModified": 1685518550,
@ -285,11 +285,11 @@
"utils": "utils_2"
},
"locked": {
"lastModified": 1682076142,
"narHash": "sha256-+tBIV9nNcuFMQBBOqw2o71kfpE0CX5xnvkF3cQUoRFU=",
"lastModified": 1687004839,
"narHash": "sha256-2DxUHOyJ9FY6zibWabHEpecmv7ImsQFDbuND/eweDJM=",
"ref": "refs/heads/main",
"rev": "b6c565e744d7984b2c532c7bf81278972fa6fe5d",
"revCount": 4,
"rev": "a131f680ddb64f4dd8a2761c41af3980c17aad30",
"revCount": 5,
"type": "git",
"url": "https://git.xenua.me/xenua/fedi-frq-friend"
},
@ -306,11 +306,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1686498407,
"narHash": "sha256-M4l3FheaCkxyp2W01K0gM2B32gpvlyW6+3B53v0H98o=",
"lastModified": 1688662390,
"narHash": "sha256-T4Xvu7FoUdr5WCQtOPunuYvd1qw3IqJe89Iyrsvdk7o=",
"owner": "helix-editor",
"repo": "helix",
"rev": "18e07addfd464844fc18833cfb1d1cd38c683c11",
"rev": "3fb430257e8ae8ca7535025d6895a75665ecf8d4",
"type": "github"
},
"original": {
@ -326,11 +326,11 @@
]
},
"locked": {
"lastModified": 1685599623,
"narHash": "sha256-Tob4CMOVHue0D3RzguDBCtUmX5ji2PsdbQDbIOIKvsc=",
"lastModified": 1687871164,
"narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "93db05480c0c0f30382d3e80779e8386dcb4f9dd",
"rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38",
"type": "github"
},
"original": {
@ -356,6 +356,26 @@
"type": "github"
}
},
"matrix-ril100": {
"inputs": {
"naersk": "naersk_3",
"nixpkgs": "nixpkgs_8",
"utils": "utils_3"
},
"locked": {
"lastModified": 1688054487,
"narHash": "sha256-KHNG+9lWqsWVA1Xqkb2BJDKuRlrNV8q2CmQLk7vzuH8=",
"ref": "refs/heads/mistress",
"rev": "fd949bede48ee1283e6917018090b2a3fb50db79",
"revCount": 2,
"type": "git",
"url": "https://git.lain.faith/sorceress/matrix-ril100"
},
"original": {
"type": "git",
"url": "https://git.lain.faith/sorceress/matrix-ril100"
}
},
"mk-naked-shell": {
"flake": false,
"locked": {
@ -435,7 +455,26 @@
},
"naersk_3": {
"inputs": {
"nixpkgs": "nixpkgs_10"
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1687852486,
"narHash": "sha256-2rXkhKUVQxbVaC+TITPpILiy/dSbordOLs87eoWHYxA=",
"owner": "nix-community",
"repo": "naersk",
"rev": "df10963b956962913b693a638746a95d6c506404",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "master",
"repo": "naersk",
"type": "github"
}
},
"naersk_4": {
"inputs": {
"nixpkgs": "nixpkgs_12"
},
"locked": {
"lastModified": 1679567394,
@ -483,7 +522,7 @@
"nix": {
"inputs": {
"lowdown-src": "lowdown-src",
"nixpkgs": "nixpkgs_7",
"nixpkgs": "nixpkgs_9",
"nixpkgs-regression": "nixpkgs-regression"
},
"locked": {
@ -552,11 +591,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1686398752,
"narHash": "sha256-nGWNQVhSw4VSL+S0D0cbrNR9vs9Bq7rlYR+1K5f5j6w=",
"lastModified": 1688646010,
"narHash": "sha256-kCeza5eKI2NEi8k0EoeZfv3lN1r1Vwx+L/VA6I8tmG4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a30520bf8eabf8a5c37889d661e67a2dbcaa59e6",
"rev": "5daaa32204e9c46b05cd709218b7ba733d07e80c",
"type": "github"
},
"original": {
@ -581,6 +620,37 @@
}
},
"nixpkgs_10": {
"locked": {
"lastModified": 1688594934,
"narHash": "sha256-3dUo20PsmUd57jVZRx5vgKyIN1tv+v/JQweZsve5q/A=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e11142026e2cef35ea52c9205703823df225c947",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"type": "indirect"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1686020360,
"narHash": "sha256-Wee7lIlZ6DIZHHLiNxU5KdYZQl0iprENXa/czzI6Cj4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4729ffac6fd12e26e5a8de002781ffc49b0e94b7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_12": {
"locked": {
"lastModified": 1680273054,
"narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=",
@ -594,7 +664,7 @@
"type": "indirect"
}
},
"nixpkgs_11": {
"nixpkgs_13": {
"locked": {
"lastModified": 1680273054,
"narHash": "sha256-Bs6/5LpvYp379qVqGt9mXxxx9GSE789k3oFc+OAL07M=",
@ -610,7 +680,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_14": {
"locked": {
"lastModified": 1682092588,
"narHash": "sha256-NjKBPnScpbGiH/YOx74DIFOVkr5AKJOVZoy0l7J58gk=",
@ -703,6 +773,36 @@
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1687946342,
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c851e8c92b76a00ce84167984a7ec7ba2b1f29c",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1687946342,
"narHash": "sha256-vRxti8pOuXS0rJmqjbD8ueEEFXWSK22ISHoCWkhgzzg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1c851e8c92b76a00ce84167984a7ec7ba2b1f29c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1657693803,
"narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=",
@ -718,37 +818,6 @@
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1686331006,
"narHash": "sha256-hElRDWUNG655aqF0awu+h5cmDN+I/dQcChRt2tGuGGU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "85bcb95aa83be667e562e781e9d186c57a07d757",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-23.05",
"type": "indirect"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1686020360,
"narHash": "sha256-Wee7lIlZ6DIZHHLiNxU5KdYZQl0iprENXa/czzI6Cj4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4729ffac6fd12e26e5a8de002781ffc49b0e94b7",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"parts": {
"inputs": {
"nixpkgs-lib": [
@ -796,8 +865,9 @@
"frq-friend": "frq-friend",
"helix": "helix",
"home-manager": "home-manager",
"matrix-ril100": "matrix-ril100",
"mms": "mms",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_10",
"nixpkgs-unstable": "nixpkgs-unstable",
"spicetify-nix": "spicetify-nix",
"url-eater": "url-eater",
@ -829,7 +899,7 @@
"spicetify-nix": {
"inputs": {
"flake-utils": "flake-utils_4",
"nixpkgs": "nixpkgs_9"
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1686173678,
@ -936,11 +1006,26 @@
"type": "github"
}
},
"systems_6": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"url-eater": {
"inputs": {
"naersk": "naersk_3",
"nixpkgs": "nixpkgs_11",
"utils": "utils_3"
"naersk": "naersk_4",
"nixpkgs": "nixpkgs_13",
"utils": "utils_4"
},
"locked": {
"lastModified": 1685257355,
@ -993,6 +1078,24 @@
}
},
"utils_3": {
"inputs": {
"systems": "systems_4"
},
"locked": {
"lastModified": 1687709756,
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_4": {
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
@ -1007,9 +1110,9 @@
"type": "github"
}
},
"utils_4": {
"utils_5": {
"inputs": {
"systems": "systems_5"
"systems": "systems_6"
},
"locked": {
"lastModified": 1681202837,
@ -1027,15 +1130,15 @@
},
"vampysite": {
"inputs": {
"nixpkgs": "nixpkgs_12",
"utils": "utils_4"
"nixpkgs": "nixpkgs_14",
"utils": "utils_5"
},
"locked": {
"lastModified": 1685378366,
"narHash": "sha256-BchGw5S0vollYbOqe9Dp1z2XA4I4wGHYI42cPM4Jvyo=",
"lastModified": 1689340601,
"narHash": "sha256-15P2VwCiGFQSDG7g8Y+Bv2zW1GUJ3i3skrwCblpojdg=",
"ref": "refs/heads/mistress",
"rev": "2d37f2e143ad6ff0d7528573acfe34242889f14e",
"revCount": 18,
"rev": "60ebc18af7416d624883bea57a27db95e718a562",
"revCount": 19,
"type": "git",
"url": "https://git.lain.faith/sorceress/vampysite"
},

View File

@ -17,6 +17,8 @@
colorpickle.url = "github:AgathaSorceress/colorpickle";
matrix-ril100.url = "git+https://git.lain.faith/sorceress/matrix-ril100";
# Latest colmena + prettier loading icons
colmena.url = "github:AgathaSorceress/colmena";
@ -28,7 +30,8 @@
helix.url = "github:helix-editor/helix";
};
outputs = { nixpkgs, nixpkgs-unstable, home-manager, mms, helix, url-eater
, colorpickle, frq-friend, colmena, vampysite, spicetify-nix, ... }: {
, colorpickle, matrix-ril100, frq-friend, colmena, vampysite, spicetify-nix
, ... }: {
colmena = {
network = {
description = "Agatha's Nix Infra";
@ -42,6 +45,7 @@
frq-friend = frq-friend.defaultPackage.${final.system};
vampysite = vampysite.packages.${final.system}.default;
spicetify-pkgs = spicetify-nix.packages.${final.system}.default;
matrix-ril100 = matrix-ril100.packages.${final.system}.default;
})
colmena.overlay
];
@ -78,6 +82,11 @@
keyCommand = [ "cat" "./secrets/frq-friend-fedi-data.toml" ];
destDir = "/var/lib/frq-friend";
};
"ril100-bot-secrets" = {
keyCommand = [ "cat" "./secrets/ril100-bot-secrets" ];
destDir = "/var/lib/matrix-ril100";
name = ".env";
};
};
};
};
@ -97,6 +106,8 @@
targetUser = "root";
targetHost = "ritual";
tags = [ "home" ];
allowLocalDeployment = true;
};
};

View File

@ -9,6 +9,7 @@
../../common/fragments/homepage.nix
../../common/fragments/mastodon-ebooks.nix
../../common/fragments/mastodon.nix
../../common/fragments/matrix-ril100.nix
../../common/fragments/matterbridge.nix
../../common/fragments/minecraft.nix
../../common/fragments/nyandroid.nix

View File

@ -10,6 +10,8 @@
(final: prev: {
pads = final.callPackage ../../common/pkgs/pads.nix { };
bspm = final.callPackage ../../common/pkgs/bspm.nix { };
polybar-spotify =
final.callPackage ../../common/pkgs/polybar-spotify.nix { };
})
];
@ -51,6 +53,9 @@
settings = { General = { Disable = "Headset"; }; };
};
# Don't suspend when closed and plugged into power
services.logind.lidSwitchExternalPower = "lock";
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave