Compare commits
40 Commits
d5a2f4026a
...
fix-zotero
| Author | SHA1 | Date | |
|---|---|---|---|
| 262f6779b1 | |||
| 9ffa14e536 | |||
| 8c41e3b8df | |||
| a9ac5ae964 | |||
| 258c3edeab | |||
| 5d5036a83c | |||
| da60eaa936 | |||
| c551e8f86e | |||
| de5b56d1b1 | |||
| cbb7f3c7a7 | |||
| d0b5b42dca | |||
| 7ea2a79aca | |||
| 182198230a | |||
| 36be01d80e | |||
| 148597d593 | |||
| 087f015340 | |||
| ab7d28ac0f | |||
| a913e4f5c7 | |||
| b31bcae064 | |||
| 2146717898 | |||
| 584489c853 | |||
| a3ead883fe | |||
| 86b80e887c | |||
| 178f3b9c31 | |||
| 425f502bba | |||
| 077a709f65 | |||
| 989aaa37da | |||
| 02a3702e8e | |||
| 2905839509 | |||
| df0062f89b | |||
| b13a985d87 | |||
| dc1a34de65 | |||
| 8010658111 | |||
| ef03e80d2c | |||
| 3788f7027e | |||
| 56f8f48e2b | |||
| 69484833c8 | |||
| c52bd6ae85 | |||
| ca6fd41f35 | |||
| f0841fdd0d |
@@ -4,26 +4,14 @@ on: [push]
|
||||
|
||||
jobs:
|
||||
|
||||
build-sydpc:
|
||||
build:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
- name: build sydpc
|
||||
run: nix build -L .#nixosConfigurations.sydpc.config.system.build.toplevel
|
||||
|
||||
build-fruitbook:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
- name: build fruitbook
|
||||
run: nix build -L .#nixosConfigurations.fruitbook.config.system.build.toplevel
|
||||
|
||||
build-deertopia:
|
||||
runs-on: nixos
|
||||
steps:
|
||||
- name: Check out repository code
|
||||
uses: actions/checkout@v4
|
||||
- name: build deertopia
|
||||
run: nix build -L .#nixosConfigurations.deertopia.config.system.build.toplevel
|
||||
|
||||
87
flake.lock
generated
87
flake.lock
generated
@@ -76,11 +76,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762095388,
|
||||
"narHash": "sha256-7Q8LtcvKWHbP8znARRTOY2tpU5WoV6FHwp5TZJOI8Us=",
|
||||
"lastModified": 1774411715,
|
||||
"narHash": "sha256-mceIHtVMXpLAfr1W0VK9ceTBX5yKu4gGWpVbThWTsAA=",
|
||||
"owner": "9001",
|
||||
"repo": "copyparty",
|
||||
"rev": "ac085b8149ff50e03d260128596dd130ed1c7cae",
|
||||
"rev": "26e663d111e39ca96c63702ad27a05b6736607cf",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -307,11 +307,11 @@
|
||||
"nixpkgs": "nixpkgs_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772845525,
|
||||
"narHash": "sha256-Dp5Ir2u4jJDGCgeMRviHvEQDe+U37hMxp6RSNOoMMPc=",
|
||||
"lastModified": 1773608492,
|
||||
"narHash": "sha256-QZteyExJYSQzgxqdsesDPbQgjctGG7iKV/6ooyQPITk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "27b93804fbef1544cb07718d3f0a451f4c4cd6c0",
|
||||
"rev": "9a40ec3b78fc688d0908485887d355caa5666d18",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -436,6 +436,21 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1773533765,
|
||||
"narHash": "sha256-qonGfS2lzCgCl59Zl63jF6dIRRpvW3AJooBGMaXjHiY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "f8e82243fd601afb9f59ad230958bd073795cbfe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1741402956,
|
||||
@@ -500,22 +515,6 @@
|
||||
}
|
||||
},
|
||||
"nixpkgs_10": {
|
||||
"locked": {
|
||||
"lastModified": 1750386251,
|
||||
"narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "076e8c6678d8c54204abcb4b1b14c366835a58bb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_11": {
|
||||
"locked": {
|
||||
"lastModified": 1743568003,
|
||||
"narHash": "sha256-ZID5T65E8ruHqWRcdvZLsczWDOAWIE7om+vQOREwiX0=",
|
||||
@@ -549,11 +548,11 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1772542754,
|
||||
"narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=",
|
||||
"lastModified": 1773389992,
|
||||
"narHash": "sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4",
|
||||
"rev": "c06b4ae3d6599a672a6210b7021d699c351eebda",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -597,16 +596,16 @@
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1772736753,
|
||||
"narHash": "sha256-au/m3+EuBLoSzWUCb64a/MZq6QUtOV8oC0D9tY2scPQ=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1773700673,
|
||||
"narHash": "sha256-RLidgpn3mN3cVkIiiYehcmM2ImBnPudwISFLy71zN0o=",
|
||||
"owner": "msyds",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "917fec990948658ef1ccd07cef2a1ef060786846",
|
||||
"rev": "2595b5f0592534492bce3cb61c2c9bf5ba03ffbe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"owner": "msyds",
|
||||
"ref": "fix-bepasty",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -716,6 +715,7 @@
|
||||
"niri": "niri",
|
||||
"nixarr": "nixarr",
|
||||
"nixcord": "nixcord",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_6",
|
||||
"nur": "nur",
|
||||
"sops-nix": "sops-nix",
|
||||
@@ -797,20 +797,23 @@
|
||||
},
|
||||
"sydpkgs": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767975357,
|
||||
"narHash": "sha256-MDVh3/aVhkD1bh/r8c0gs9DL4e78CrUbUxOZHWlCwLM=",
|
||||
"owner": "msyds",
|
||||
"repo": "sydpkgs",
|
||||
"rev": "233479ab277d47b1dbda202eafca50e61c659151",
|
||||
"type": "github"
|
||||
"lastModified": 1773275674,
|
||||
"narHash": "sha256-kULSjFWDoDatz31aIses5q51ESUi0ASUc3MKmBYLnRY=",
|
||||
"ref": "fcitx5-toki-pona",
|
||||
"rev": "03f6a67a0a3b3c00ff4566147eddb0123cfe3d14",
|
||||
"revCount": 38,
|
||||
"type": "git",
|
||||
"url": "https://git.deertopia.net/msyds/sydpkgs"
|
||||
},
|
||||
"original": {
|
||||
"owner": "msyds",
|
||||
"repo": "sydpkgs",
|
||||
"type": "github"
|
||||
"ref": "fcitx5-toki-pona",
|
||||
"type": "git",
|
||||
"url": "https://git.deertopia.net/msyds/sydpkgs"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -861,7 +864,7 @@
|
||||
"tf2-nix": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_3",
|
||||
"nixpkgs": "nixpkgs_11"
|
||||
"nixpkgs": "nixpkgs_10"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761467191,
|
||||
|
||||
10
flake.nix
10
flake.nix
@@ -3,7 +3,9 @@
|
||||
|
||||
inputs = {
|
||||
disko.url = "github:nix-community/disko";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
# nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
# Waiting on https://github.com/NixOS/nixpkgs/pull/500538
|
||||
nixpkgs.url = "github:msyds/nixpkgs/fix-bepasty";
|
||||
impermanence.url = "github:nix-community/impermanence";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
sops-nix.url = "github:Mic92/sops-nix";
|
||||
@@ -21,6 +23,7 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.vpnconfinement.follows = "vpn-confinement";
|
||||
};
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||
# Used for Firefox extensions/addons.
|
||||
nur = {
|
||||
url = "github:nix-community/NUR";
|
||||
@@ -29,7 +32,10 @@
|
||||
tf2-nix.url = "gitlab:msyds/tf2-nix";
|
||||
syd-fcitx5-tables.url =
|
||||
"git+https://git.deertopia.net/msyds/syd-fcitx5-tables";
|
||||
sydpkgs.url = "github:msyds/sydpkgs";
|
||||
sydpkgs = {
|
||||
url = "git+https://git.deertopia.net/msyds/sydpkgs?ref=fcitx5-toki-pona";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
lldap.pam.enable = true;
|
||||
nginx.enable = true;
|
||||
slskd.enable = true;
|
||||
webdav.enable = true;
|
||||
# webdav.enable = true;
|
||||
copyparty.enable = true;
|
||||
syncthing.enable = true;
|
||||
cache.enable = true;
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
{ config, pkgs, lib, disko, ... }:
|
||||
{ config, pkgs, lib, disko, nixos-hardware, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware.nix
|
||||
./filesystems.nix
|
||||
nixos-hardware.nixosModules.apple-macbook-pro-12-1
|
||||
];
|
||||
|
||||
# Enabled by default by Nixos-hardware.
|
||||
services.mbpfan.enable = false;
|
||||
|
||||
sydnix = {
|
||||
filesystemType = "btrfs";
|
||||
wifi.enable = true;
|
||||
stylix.enable = true;
|
||||
niri.enable = true;
|
||||
steam.enable = true;
|
||||
bluetooth.enable = true;
|
||||
# gdm.enable = true;
|
||||
# blueman.enable = true;
|
||||
openssh.enable = true;
|
||||
sydpkgs.overlay.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
upower.enable = true;
|
||||
|
||||
users.users = [
|
||||
# "crumb"
|
||||
|
||||
16
modules/home/bash.nix
Normal file
16
modules/home/bash.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.bash;
|
||||
in {
|
||||
options.sydnix.bash = {
|
||||
enable = lib.mkEnableOption "Bash";
|
||||
};
|
||||
|
||||
imports = [
|
||||
./bash/complete-alias.nix
|
||||
];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.bash.enable = true;
|
||||
};
|
||||
}
|
||||
16
modules/home/bash/complete-alias.nix
Normal file
16
modules/home/bash/complete-alias.nix
Normal file
@@ -0,0 +1,16 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sydnix.bash.complete-alias;
|
||||
in {
|
||||
options.sydnix.bash.complete-alias = {
|
||||
enable = lib.mkEnableOption "Alias completion";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.bash.initExtra = lib.mkAfter ''
|
||||
. ${lib.getExe pkgs.complete-alias}
|
||||
complete -F _complete_alias "''${!BASH_ALIASES[@]}"
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -50,48 +50,37 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user.services.jellyfin-rpc-configure = {
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart =
|
||||
let
|
||||
jq = lib.getExe pkgs.jq;
|
||||
api-key-file = config.sops.secrets.jellyfin-rpc-api-key.path;
|
||||
in pkgs.writeShellScript "jellyfin-rpc-configure" ''
|
||||
dest=''${XDG_CONFIG_HOME:-$HOME/.config}/jellyfin-rpc/main.json
|
||||
umask 177
|
||||
[[ -f "$dest" ]] && chmod 600 "$dest"
|
||||
jq < ${jellyfin-rpc-config-template} > "$dest" \
|
||||
--rawfile api_key ${api-key-file} \
|
||||
'.jellyfin.api_key = $api_key'
|
||||
'';
|
||||
};
|
||||
systemd.user.services.jellyfin-rpc-configure =
|
||||
let api-key-file = config.sops.secrets.jellyfin-rpc-api-key.path;
|
||||
in {
|
||||
Unit = {
|
||||
After = [ "sops-nix.service" ];
|
||||
Requires = [ "sops-nix.service" ];
|
||||
X-Restart-Triggers = [ api-key-file ];
|
||||
};
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart =
|
||||
pkgs.writeShellScript "jellyfin-rpc-configure" ''
|
||||
dest=''${XDG_CONFIG_HOME:-$HOME/.config}/jellyfin-rpc/main.json
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
umask 177
|
||||
[[ -f "$dest" ]] && chmod 600 "$dest"
|
||||
${lib.getExe pkgs.jq} \
|
||||
< ${jellyfin-rpc-config-template} \
|
||||
> "$dest" \
|
||||
--rawfile api_key ${api-key-file} \
|
||||
'.jellyfin.api_key = $api_key'
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
home.activation.jellyfin-rpc-configure =
|
||||
let
|
||||
jq = lib.getExe pkgs.jq;
|
||||
api-key-file = config.sops.secrets.jellyfin-rpc-api-key.path;
|
||||
in lib.hm.dag.entryAfter ["writeBoundary"] ''
|
||||
dest=''${XDG_CONFIG_HOME:-$HOME/.config}/jellyfin-rpc/main.json
|
||||
um=$(umask)
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
umask 177
|
||||
[[ -f "$dest" ]] && chmod 600 "$dest"
|
||||
jq < ${jellyfin-rpc-config-template} > "$dest" \
|
||||
--rawfile api_key ${api-key-file} \
|
||||
'.jellyfin.api_key = $api_key'
|
||||
umask $(um)
|
||||
'';
|
||||
|
||||
systemd.user.services.jellyfin-rpc = {
|
||||
Unit = {
|
||||
After = ["jellyfin-rpc-configure"];
|
||||
Wants = ["jellyfin-rpc-configure"];
|
||||
};
|
||||
Service = {
|
||||
ExecStart = lib.getExe pkgs.jellyfin-rpc;
|
||||
};
|
||||
Unit.Requires = [ "jellyfin-rpc-configure.service" ];
|
||||
Unit.After = [ "jellyfin-rpc-configure.service" ];
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
Service.ExecStart = lib.getExe pkgs.jellyfin-rpc;
|
||||
};
|
||||
|
||||
sydnix.sops.secrets.jellyfin-rpc-api-key = {};
|
||||
|
||||
@@ -7,6 +7,10 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
sydnix.impermanence.directories = [
|
||||
".config/kdeconnect"
|
||||
];
|
||||
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
|
||||
18
modules/home/prism-launcher.nix
Normal file
18
modules/home/prism-launcher.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.prism-launcher;
|
||||
in {
|
||||
options.sydnix.prism-launcher = {
|
||||
enable = lib.mkEnableOption "Prism Launcher";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
pkgs.prismlauncher
|
||||
];
|
||||
|
||||
sydnix.impermanence.directories = [
|
||||
".local/share/PrismLauncher"
|
||||
];
|
||||
};
|
||||
}
|
||||
33
modules/home/toki-pona.nix
Normal file
33
modules/home/toki-pona.nix
Normal file
@@ -0,0 +1,33 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.toki-pona;
|
||||
in {
|
||||
options.sydnix.toki-pona = {
|
||||
enable = lib.mkEnableOption "Toki Pona fonts, input, and spell-check";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
i18n.inputMethod.fcitx5.addons = [
|
||||
(pkgs.fcitx5-toki-pona.overrideAttrs (final: prev: {
|
||||
patches = prev.patches or [] ++ [
|
||||
./toki-pona/punctuation.patch
|
||||
];
|
||||
}))
|
||||
];
|
||||
|
||||
programs.ghostty.settings.font-family = lib.mkAfter [
|
||||
"sitelen seli kiwen mono juniko"
|
||||
];
|
||||
|
||||
sydnix.hunspell.dictionaries = ds: with ds; [
|
||||
tok
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# nasin-nanpa-ucsur
|
||||
nasin-nanpa
|
||||
nasin-nanpa-helvetica
|
||||
sitelen-seli-kiwen
|
||||
];
|
||||
};
|
||||
}
|
||||
22
modules/home/toki-pona/punctuation.patch
Normal file
22
modules/home/toki-pona/punctuation.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
diff --git a/static_tables/toki_pona_ucsur.txt b/static_tables/toki_pona_ucsur.txt
|
||||
index 1bacd3a..53f5c8e 100644
|
||||
--- a/static_tables/toki_pona_ucsur.txt
|
||||
+++ b/static_tables/toki_pona_ucsur.txt
|
||||
@@ -1,4 +1,4 @@
|
||||
-KeyCode=mnptkswljiueoa()[]{}^*.:"-_
|
||||
+KeyCode=mnptkswljiueoa()[]{}^*.:"-_<>,
|
||||
Length=16
|
||||
Prompt=
|
||||
ConstructPhrase=
|
||||
@@ -13,8 +13,11 @@ _
|
||||
^
|
||||
*
|
||||
.
|
||||
+, 。
|
||||
:
|
||||
-
|
||||
+< 「
|
||||
+> 」
|
||||
a
|
||||
akesi
|
||||
ala
|
||||
@@ -1,34 +0,0 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sydnix.users.crumb.bash;
|
||||
in {
|
||||
options.sydnix.users.crumb.bash.enable = lib.mkEnableOption "Bash, à la crumb";
|
||||
config = lib.mkIf cfg.enable {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
shellOptions = [
|
||||
# Correct minor typos in cd commands.
|
||||
"cdspell"
|
||||
"autocd"
|
||||
# Extra glob power.
|
||||
"extglob"
|
||||
# Recursive glob w/ **.
|
||||
"globstar"
|
||||
# Append to history file.
|
||||
"histappend"
|
||||
# Require user confirmation for commands using expansion.
|
||||
"histverify"
|
||||
# Re-edit failed history substitutions.
|
||||
"histreedit"
|
||||
];
|
||||
};
|
||||
|
||||
home.shellAliases = {
|
||||
nix2json = "nix eval --impure --json --file -";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -26,8 +26,8 @@ in {
|
||||
};
|
||||
|
||||
globalOptions = {
|
||||
# Disable shift to toggle. I accidentally press it all the time.
|
||||
# 날 미치게 만들어요.
|
||||
# Disable shift to toggle. I accidentally press it all
|
||||
# the time. 날 미치게 만들어요.
|
||||
Hotkey.AltTriggerKeys = "";
|
||||
};
|
||||
|
||||
|
||||
36
modules/home/users/msyds/bash.nix
Normal file
36
modules/home/users/msyds/bash.nix
Normal file
@@ -0,0 +1,36 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sydnix.users.msyds.bash;
|
||||
in {
|
||||
options.sydnix.users.msyds.bash.enable =
|
||||
lib.mkEnableOption "Bash, à la msyds";
|
||||
config = lib.mkIf cfg.enable {
|
||||
sydnix.bash.enable = true;
|
||||
sydnix.bash.complete-alias.enable = true;
|
||||
|
||||
programs.bash.shellOptions = [
|
||||
# Correct minor typos in cd commands.
|
||||
"cdspell"
|
||||
# Implicitly prepend `cd` to directory names.
|
||||
"autocd"
|
||||
# Extra glob power.
|
||||
"extglob"
|
||||
# Recursive glob w/ **.
|
||||
"globstar"
|
||||
# Append to history file.
|
||||
"histappend"
|
||||
# Require user confirmation for commands using expansion.
|
||||
"histverify"
|
||||
# Re-edit failed history substitutions.
|
||||
"histreedit"
|
||||
];
|
||||
|
||||
home.shellAliases = {
|
||||
nix2json = "nix eval --impure --json --file -";
|
||||
"..." = "cd ../..";
|
||||
"...." = "cd ../../..";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
{ config, lib, pkgs, host, ... }:
|
||||
|
||||
let cfg = config.sydnix.users.msyds.dank-material-shell;
|
||||
let
|
||||
cfg = config.sydnix.users.msyds.dank-material-shell;
|
||||
on = hosts:
|
||||
if builtins.isString hosts
|
||||
then hosts == host
|
||||
else builtins.elem host hosts;
|
||||
in {
|
||||
options.sydnix.users.msyds.dank-material-shell = {
|
||||
enable = lib.mkEnableOption "Dank Material Shell";
|
||||
@@ -167,7 +172,7 @@ in {
|
||||
showControlCenterButton = true;
|
||||
showCapsLockIndicator = true;
|
||||
controlCenterShowNetworkIcon = true;
|
||||
controlCenterShowBluetoothIcon = true;
|
||||
controlCenterShowBluetoothIcon = on ["fruitbook"];
|
||||
controlCenterShowAudioIcon = true;
|
||||
controlCenterShowVpnIcon = true;
|
||||
controlCenterShowBrightnessIcon = false;
|
||||
@@ -286,9 +291,9 @@ in {
|
||||
batterySuspendTimeout = 0;
|
||||
batterySuspendBehavior = 0;
|
||||
batteryProfileName = "";
|
||||
lockBeforeSuspend = false;
|
||||
lockBeforeSuspend = true;
|
||||
loginctlLockIntegration = true;
|
||||
fadeToLockEnabled = false;
|
||||
fadeToLockEnabled = true;
|
||||
fadeToLockGracePeriod = 5;
|
||||
launchPrefix = "";
|
||||
brightnessDevicePins = {};
|
||||
|
||||
@@ -30,6 +30,11 @@ in {
|
||||
];
|
||||
plugins = {
|
||||
ircColors.enable = true;
|
||||
voiceMessages = {
|
||||
enable = true;
|
||||
echoCancellation = false;
|
||||
noiseSuppression = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
vesktop = {
|
||||
|
||||
@@ -31,6 +31,17 @@ in {
|
||||
treesit.enable = true;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
ESHELL_ALIASES_FILE = pkgs.writeText "eshell-aliases" ''
|
||||
alias cdp syd-project-cd
|
||||
alias jj jj --no-pager $*
|
||||
${lib.concatMapAttrsStringSep
|
||||
"\n"
|
||||
(alias: value: "alias ${alias} ${value} $*")
|
||||
config.home.shellAliases}
|
||||
'';
|
||||
};
|
||||
|
||||
sydnix.emacs = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
||||
11
modules/home/users/msyds/emacs/bookmarks
Normal file
11
modules/home/users/msyds/emacs/bookmarks
Normal file
@@ -0,0 +1,11 @@
|
||||
;;;; Emacs Bookmark Format Version 1;;;; -*- coding: utf-8-emacs; mode: lisp-data -*-
|
||||
;;; This format is meant to be slightly human-readable;
|
||||
;;; nevertheless, you probably don't want to edit it.
|
||||
;;; -*- End Of Bookmark File Format Version Stamp -*-
|
||||
(("org-capture-last-stored"
|
||||
(filename . "~/org/daily/2026-03-26.org")
|
||||
(front-context-string . "* The significan")
|
||||
(rear-context-string . "le: 2026-03-26\n\n")
|
||||
(position . 89)
|
||||
(last-modified 27077 32462 617656 528000))
|
||||
)
|
||||
@@ -3,6 +3,7 @@
|
||||
(syd-require-features
|
||||
'(syd/base
|
||||
syd/constants
|
||||
syd/fcitx
|
||||
syd/dash
|
||||
syd/disable-package
|
||||
syd/straight
|
||||
@@ -64,5 +65,6 @@
|
||||
syd/eshell
|
||||
syd/treesit
|
||||
syd/grammatical-framework
|
||||
syd/tabs
|
||||
syd/lsp
|
||||
syd/custom))
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
;;; -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd/base)
|
||||
(require 'syd/handle)
|
||||
(require 'syd/popups)
|
||||
(require 'syd/leader)
|
||||
|
||||
@@ -26,7 +27,8 @@
|
||||
cider-doc-buffer)
|
||||
(defun syd-clojure-eval-region (beg end)
|
||||
(cider-eval-region beg end))
|
||||
(syd-handle '(clojure-mode clojurescript-mode cider-repl-mode)
|
||||
(syd-handle '(clojure-mode clojurescript-mode cider-repl-mode
|
||||
cider-clojure-interaction-mode)
|
||||
:docs #'cider-doc
|
||||
:eval-region #'syd-clojure-eval-region
|
||||
:load-buffer #'cider-load-buffer)
|
||||
@@ -108,4 +110,13 @@
|
||||
s)
|
||||
s))))
|
||||
|
||||
(defun syd-clojure--setup-clj-refactor ()
|
||||
(clj-refactor-mode 1)
|
||||
(yas-minor-mode 1)
|
||||
(cljr-add-keybindings-with-prefix "C-c r"))
|
||||
|
||||
(use-package clj-refactor
|
||||
:config
|
||||
(add-hook 'clojure-mode-hook #'syd-clojure--setup-clj-refactor))
|
||||
|
||||
(provide 'syd/clojure)
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
;;; -*- lexical-binding: t -*-
|
||||
;; -*- lexical-binding: t -*-
|
||||
|
||||
(require 'syd/base)
|
||||
(require 'syd/popups)
|
||||
|
||||
(setq
|
||||
;; Log native-compiler warnings, but don't display the buffer. Most of the
|
||||
@@ -8,4 +11,7 @@
|
||||
;; Scroll compilation buffer to follow output.
|
||||
compilation-scroll-output t)
|
||||
|
||||
(syd-push shackle-rules
|
||||
'("*compilation*" :select nil :size 0.42 :popup t :align bottom))
|
||||
|
||||
(provide 'syd/compilation)
|
||||
|
||||
@@ -150,7 +150,9 @@ if FILE-NAME has no TRAMP prefix."
|
||||
(eshell-last-dir-ring-file-name (file-name-concat
|
||||
syd-eshell-data-dir "lastdir"))
|
||||
(eshell-prompt-function #'syd-eshell--prompt-fn)
|
||||
(eshell-prompt-regexp syd-eshell--prompt-regexp))
|
||||
(eshell-prompt-regexp syd-eshell--prompt-regexp)
|
||||
(eshell-aliases-file (or (getenv "ESHELL_ALIASES_FILE")
|
||||
eshell-aliases-file)))
|
||||
:general
|
||||
(:keymaps 'syd-leader-open-map
|
||||
"e" #'syd-toggle-eshell)
|
||||
|
||||
10
modules/home/users/msyds/emacs/lisp/syd/fcitx.el
Normal file
10
modules/home/users/msyds/emacs/lisp/syd/fcitx.el
Normal file
@@ -0,0 +1,10 @@
|
||||
;;; -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd/base)
|
||||
|
||||
(use-package fcitx
|
||||
:custom ((fcitx-remote-command "fcitx5-remote"))
|
||||
:config
|
||||
(fcitx-aggressive-setup))
|
||||
|
||||
(provide 'syd/fcitx)
|
||||
@@ -12,15 +12,21 @@
|
||||
(font-spec :family "JuliaMono" :size 16)
|
||||
"A monospace font secondary to `syd-fixed-pitch-font'.")
|
||||
|
||||
(defvar syd-sitelen-pona-font
|
||||
(font-spec :family "sitelen seli kiwen mono juniko"))
|
||||
|
||||
(defun syd-init-fonts-h ()
|
||||
"Loads `syd-fixed-pitch-font' and `syd-variable-pitch-font'."
|
||||
(dolist (map `((default . ,syd-fixed-pitch-font)
|
||||
(fixed-pitch . ,syd-fixed-pitch-font)
|
||||
(variable-pitch . ,syd-variable-pitch-font)))
|
||||
(fixed-pitch . ,syd-fixed-pitch-font)
|
||||
(variable-pitch . ,syd-variable-pitch-font)))
|
||||
(pcase-let ((`(,face . ,font) map))
|
||||
(set-face-attribute face nil
|
||||
:width 'normal :weight 'normal
|
||||
:slant 'normal :font font))))
|
||||
:width 'normal :weight 'normal
|
||||
:slant 'normal :font font)))
|
||||
(set-fontset-font
|
||||
t '(#xF1900 . #xF19FF)
|
||||
syd-sitelen-pona-font))
|
||||
|
||||
(let ((hook-point (if (daemonp)
|
||||
'server-after-make-frame-hook
|
||||
|
||||
@@ -5,22 +5,28 @@
|
||||
(use-package ligature
|
||||
:config
|
||||
(ligature-set-ligatures 'prog-mode
|
||||
'("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||="
|
||||
"||>" ":::" "::=" "=:=" "===" "==>" "=!=" "=>>"
|
||||
"=<<" "=/=" "!==" "!!." ">=>" ">>=" ">>>" ">>-"
|
||||
">->" "->>" "-->" "---" "-<<" "<~~" "<~>" "<*>"
|
||||
"<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" "<--"
|
||||
"<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_("
|
||||
"..<" "..." "+++" "/==" "///" "_|_" "www" "&&" "^="
|
||||
"~~" "~@" "~=" "~>" "~-" "**" "*>" "*/" "||" "|}"
|
||||
"|]" "|=" "|>" "|-" "{|" "[|" "]#" "::" ":=" ":>"
|
||||
":<" "$>" "==" "=>" "!=" "!!" ">:" ">=" ">>" ">-"
|
||||
"-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" "<$"
|
||||
"<=" "<>" "<-" "<<" "<+" "</" "#{" "#[" "#:" "#="
|
||||
"#!" "##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?"
|
||||
"+>" "++" "?:" "?=" "?." "??" ";;" ";;;"
|
||||
"/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
|
||||
"\\\\" "://"))
|
||||
'("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||="
|
||||
"||>" ":::" "::=" "=:=" "===" "==>" "=!=" "=>>"
|
||||
"=<<" "=/=" "!==" "!!." ">=>" ">>=" ">>>" ">>-"
|
||||
">->" "->>" "-->" "---" "-<<" "<~~" "<~>" "<*>"
|
||||
"<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" "<--"
|
||||
"<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_("
|
||||
"..<" "..." "+++" "/==" "///" "_|_" "www" "&&" "^="
|
||||
"~~" "~@" "~=" "~>" "~-" "**" "*>" "*/" "||" "|}"
|
||||
"|]" "|=" "|>" "|-" "{|" "[|" "]#" "::" ":=" ":>"
|
||||
":<" "$>" "==" "=>" "!=" "!!" ">:" ">=" ">>" ">-"
|
||||
"-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" "<$"
|
||||
"<=" "<>" "<-" "<<" "<+" "</" "#{" "#[" "#:" "#="
|
||||
"#!" "##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?"
|
||||
"+>" "++" "?:" "?=" "?." "??" ";;" ";;;"
|
||||
"/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
|
||||
"\\\\" "://"))
|
||||
;; Sitelen pona glyphs.
|
||||
(rx-let ((ideograph (any (#xF1900 . #xF198C))))
|
||||
(ligature-set-ligatures
|
||||
'fundamental-mode
|
||||
`(("" ,(rx (* ideograph)))
|
||||
("" ,(rx "" (* ideograph))))))
|
||||
(global-ligature-mode 1))
|
||||
|
||||
(provide 'syd/ligature)
|
||||
|
||||
9
modules/home/users/msyds/emacs/lisp/syd/markdown.el
Normal file
9
modules/home/users/msyds/emacs/lisp/syd/markdown.el
Normal file
@@ -0,0 +1,9 @@
|
||||
;; -*- lexical-binding: t; -*-
|
||||
|
||||
(require 'syd/base)
|
||||
|
||||
(use-package markdown-mode
|
||||
:config
|
||||
(add-hook 'markdown-mode-hook #'syd-prose-mode))
|
||||
|
||||
(provide 'syd/markdown)
|
||||
@@ -80,7 +80,8 @@
|
||||
:target (file "todays-korean/%<%Y-%m-%d>.org"))
|
||||
("I" "Korean irregularity class" plain
|
||||
(file ,(syd-emacs-file "lisp/syd/org/roam/irregularity-class.org"))
|
||||
:target (file ,default-target-file-name))))))
|
||||
:target (file ,default-target-file-name)))))
|
||||
(org-roam-link-auto-replace nil))
|
||||
:config
|
||||
(add-to-list 'org-agenda-files org-roam-directory)
|
||||
(with-eval-after-load 'org-roam-dailies
|
||||
|
||||
7
modules/home/users/msyds/emacs/lisp/syd/tabs.el
Normal file
7
modules/home/users/msyds/emacs/lisp/syd/tabs.el
Normal file
@@ -0,0 +1,7 @@
|
||||
;;; -*- lexical-binding: t -*-
|
||||
(require 'syd/base)
|
||||
|
||||
;; Disable tabs by default.
|
||||
(setq-default indent-tabs-mode nil)
|
||||
|
||||
(provide 'syd/tabs)
|
||||
1
modules/home/users/msyds/emacs/transient/history.el
Normal file
1
modules/home/users/msyds/emacs/transient/history.el
Normal file
@@ -0,0 +1 @@
|
||||
nil
|
||||
@@ -10,10 +10,10 @@ in {
|
||||
programs.sioyek = {
|
||||
enable = true;
|
||||
bindings = {
|
||||
"move_down_smooth" = "j";
|
||||
"move_up_smooth" = "k";
|
||||
"screen_down_smooth" = [ "d" "<C-d>" ];
|
||||
"screen_up_smooth" = [ "u" "<C-u>" ];
|
||||
"move_down" = "j";
|
||||
"move_up" = "k";
|
||||
"screen_down" = [ "d" "<C-d>" ];
|
||||
"screen_up" = [ "u" "<C-u>" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
12
modules/nixos/blueman.nix
Normal file
12
modules/nixos/blueman.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.blueman;
|
||||
in {
|
||||
options.sydnix.blueman = {
|
||||
enable = lib.mkEnableOption "Blueman BlueTooth manager";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.blueman.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -7,8 +7,6 @@ in {
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.blueman.enable = true;
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let cfg = config.sydnix.deertopia.bepasty;
|
||||
in {
|
||||
options = {
|
||||
sydnix.deertopia.bepasty = {
|
||||
enable = mkEnableOption "Bepasty";
|
||||
enable = lib.mkEnableOption "Bepasty";
|
||||
|
||||
port = lib.mkOption {
|
||||
default = 22018;
|
||||
@@ -19,7 +17,7 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
sydnix.sops.secrets.bepasty-secret-key = {};
|
||||
sydnix.sops.secrets.bepasty-secret-config = {};
|
||||
|
||||
|
||||
@@ -13,10 +13,14 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
imports = [ ./copyparty/vault.nix ];
|
||||
imports = [
|
||||
./copyparty/vault.nix
|
||||
./copyparty/webdav.nix
|
||||
];
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
sydnix.deertopia.copyparty.vault.enable = true;
|
||||
sydnix.deertopia.copyparty.webdav.enable = true;
|
||||
|
||||
sydnix.impermanence.directories = [
|
||||
"/var/lib/copyparty"
|
||||
@@ -29,8 +33,8 @@ in {
|
||||
"media"
|
||||
];
|
||||
|
||||
# HACK: Make files created by copyparty.service initialise with the mode
|
||||
# 775.
|
||||
# HACK: Make files created by copyparty.service initialise with
|
||||
# the mode 775.
|
||||
systemd.services.copyparty.serviceConfig.UMask = lib.mkForce "002";
|
||||
|
||||
services.copyparty = {
|
||||
@@ -56,7 +60,7 @@ in {
|
||||
"/Media library" = {
|
||||
path = "/media/library";
|
||||
# View and upload, but no deleting.
|
||||
access.rw = "*";
|
||||
access.r = "*";
|
||||
access.rwmd = "@jellyfin-admin";
|
||||
};
|
||||
"/Torrents" = {
|
||||
|
||||
@@ -36,6 +36,12 @@ in {
|
||||
access.A = [ "msyds" ];
|
||||
access.rwmd = [ "zotero" ];
|
||||
};
|
||||
"/msyds/zotero-root" = {
|
||||
path = "/vault/msyds/zotero-root";
|
||||
flags.daw = true;
|
||||
access.A = [ "msyds" ];
|
||||
access.rwmd = [ "zotero" ];
|
||||
};
|
||||
"/~msyds/public" = {
|
||||
path = "/vault/~msyds/public";
|
||||
access.A = [ "msyds" ];
|
||||
|
||||
57
modules/nixos/deertopia/copyparty/webdav.nix
Normal file
57
modules/nixos/deertopia/copyparty/webdav.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.deertopia.copyparty.webdav;
|
||||
in {
|
||||
options.sydnix.deertopia.copyparty.webdav = {
|
||||
enable = lib.mkEnableOption "WebDAV via copyparty";
|
||||
port = lib.mkOption {
|
||||
type = lib.types.port;
|
||||
description = ''
|
||||
Port on which Copyparty shall listen for WebDAV traffic.
|
||||
'';
|
||||
default = 3924;
|
||||
};
|
||||
};
|
||||
|
||||
# https://github.com/9001/copyparty/issues/1142
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.copyparty.settings = {
|
||||
rproxy = -1;
|
||||
xff-src = "lan";
|
||||
daw = true;
|
||||
dav-auth = true;
|
||||
ihead = "*";
|
||||
ohead = "*";
|
||||
dav-port = cfg.port;
|
||||
};
|
||||
|
||||
services.authelia.instances.deertopia.settings =
|
||||
lib.mkIf config.sydnix.deertopia.authelia.enable {
|
||||
access_control.rules = lib.mkBefore [
|
||||
{
|
||||
domain = "dav.deertopia.net";
|
||||
policy = "bypass";
|
||||
methods = [ "OPTIONS" "PROPFIND" ];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
sydnix.deertopia.nginx.vhosts."dav" = {
|
||||
directory = null;
|
||||
vhost = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
extraConfig = ''
|
||||
include ${../authelia/authelia-location.conf};
|
||||
# Increase limit of upload sizes.
|
||||
client_max_body_size 20G;
|
||||
'';
|
||||
locations."/".extraConfig = ''
|
||||
include ${../authelia/authelia-authrequest.conf};
|
||||
include ${../authelia/proxy.conf};
|
||||
proxy_pass http://localhost:${builtins.toString cfg.port};
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.deertopia.gitea;
|
||||
let
|
||||
cfg = config.sydnix.deertopia.gitea;
|
||||
commas = lib.concatStringsSep ",";
|
||||
in {
|
||||
options.sydnix.deertopia.gitea = {
|
||||
enable = lib.mkEnableOption "Gitea";
|
||||
@@ -40,11 +42,18 @@ in {
|
||||
|
||||
# sudo -u git gitea admin auth add-ldap --name gitea --port 3890 --bind-dn 'uid=gitea,ou=people,dc=deertopia,dc=net' --bind-password «password» --user-search-base 'ou=people,dc=deertopia,dc=net' --user-filter '(&(memberof=cn=git,ou=groups,dc=deertopia,dc=net)(|(uid=%[1]s)(mail=%[1]s)))' --username-attribute uid --firstname-attribute givenName --surname-attribute sn --email-attribute mail --avatar-attribute jpegPhoto --security-protocol unencrypted --host 127.0.0.1 --config /var/lib/gitea/custom/conf/app.ini --synchronize-users
|
||||
|
||||
sydnix.sops.secrets.gitea-mailer-password = {
|
||||
mode = "0440";
|
||||
owner = "git";
|
||||
group = "git";
|
||||
};
|
||||
|
||||
services.gitea = {
|
||||
enable = true;
|
||||
user = "git";
|
||||
group = "git";
|
||||
appName = "GupHub"; # Name per my darling Colestar ♥
|
||||
appName = "GupHub"; # Name per my dear Astrid ♥!!!!!
|
||||
mailerPasswordFile = config.sops.secrets.gitea-mailer-password.path;
|
||||
settings = {
|
||||
server = {
|
||||
ROOT_URL = "https://git.deertopia.net/";
|
||||
@@ -53,7 +62,48 @@ in {
|
||||
};
|
||||
service = {
|
||||
DISABLE_REGISTRATION = true;
|
||||
ENABLE_NOTIFY_MAIL = true;
|
||||
};
|
||||
"repository.pull-request" = {
|
||||
CLOSE_KEYWORDS = commas [
|
||||
# en
|
||||
"close" "closes" "closed" "fix" "fixes" "fixed" "resolve"
|
||||
"resolves" "resolved"
|
||||
# tok
|
||||
"pini e"
|
||||
# ko
|
||||
"해결" "해결합니다" "해결했다"
|
||||
"종료" "종료합니다" "중료한다" "중료해" "중료하다"
|
||||
"수정" "수정했습니다" "중료한다" "중료해" "중료하다"
|
||||
];
|
||||
REOPEN_KEYWORDS = commas [
|
||||
# en
|
||||
"reopen" "reopens" "reopened"
|
||||
# tok
|
||||
"open sin e" "pakala sin e"
|
||||
"li pakala sin" "li pakalan sin"
|
||||
# ko
|
||||
"재개" "재개합니다" "다시 열기" "다시 엽니다" "다시 여다"
|
||||
"다시 연다"
|
||||
];
|
||||
WORK_IN_PROGRESS_PREFIXES = commas [
|
||||
# en
|
||||
"WIP:" "[WIP]"
|
||||
# tok
|
||||
"pini ala:" "awen pali:"
|
||||
# ko
|
||||
"공사 중:" "공사중:" "중:" "[중]" "中:" "[中]"
|
||||
];
|
||||
DEFAULT_MERGE_STYLE = "rebase";
|
||||
};
|
||||
mailer = {
|
||||
ENABLED = true;
|
||||
FROM = "Gitea <no-reply@deertopia.net>";
|
||||
PROTOCOL = "smtps";
|
||||
SMTP_ADDR = "smtp.fastmail.com";
|
||||
SMTP_PORT = 465;
|
||||
USER = "msyds@deertopia.net";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
12
modules/nixos/upower.nix
Normal file
12
modules/nixos/upower.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let cfg = config.sydnix.upower;
|
||||
in {
|
||||
options.sydnix.upower = {
|
||||
enable = lib.mkEnableOption "UPower";
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.upower.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -59,6 +59,7 @@ let
|
||||
pkgs = nixpkgs;
|
||||
};
|
||||
inherit inputs system;
|
||||
host = hostName;
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
@@ -30,6 +30,7 @@ anki-username: ENC[AES256_GCM,data:584uxjwyodM=,iv:/6HLSLzHgc77U1iN5JDLR9F+o8Nfe
|
||||
anki-password: ENC[AES256_GCM,data:plSKMTeeilKt6weAnzw/jMo65A==,iv:lzuPUt1+2Iwi9sHbaFj0OuBLd1p+Do2N5aCYXd45MFQ=,tag:WIABFp1T6NuIGpqqQFHmrg==,type:str]
|
||||
anki-sync-key: ENC[AES256_GCM,data:Ka4sPghPwmWQvdXw40ZRLogoMVTBjLnaSyHT9lTfn2XWHHqFAkANAg==,iv:bFkb/k7UUL8t26LjmQwiDYJpvq93NWuqUU/jNYkr7GQ=,tag:Mx5JdqjI3MDk7hsvOlPYIw==,type:str]
|
||||
gitea-actions-runner-token: ENC[AES256_GCM,data:JglbJ2hgXl1wV2bCkcged+D3UrpWMMBuX+ri6YeIqwLIlscvK/wVCdsxQZtDGw==,iv:BYhgfoIa/wHQkd4c7kU8AWAJQfpTfUvSamFXDBqQXTE=,tag:sIK1XxVPIU+uBGaJY3AmTQ==,type:str]
|
||||
gitea-mailer-password: ENC[AES256_GCM,data:bgFAhAzYcDhHi4Brg7x8CQ==,iv:hj8+YbcE+Jfhtu8g//Y8EiNw1CejTtMgstB/knbgOls=,tag:CYX3Pr4ErzvHGVfhpvfruw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age10fqh0td67alzpyjyhdex5ncj9thvaty506r0t63vs2nz4ldafgaqadl8mg
|
||||
@@ -50,7 +51,7 @@ sops:
|
||||
TXFLY2l0UHJ3Z0NGZjVpbTQ2UC8yaTQKA7wTmW9Ha6T2KmCr/nkXdizgv8+V6SAp
|
||||
ZhDO+uDQ1evIh2wLWMOXNJ3d/zplLCOTzR2xkqBIUp5V7MXj45RUIA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-03-06T21:55:10Z"
|
||||
mac: ENC[AES256_GCM,data:Coff3pzqPxqe1g+2R7V0AN/ZSLog6sKHIBSoWOflYH8tKbIqwvQFRVvEQN6D1o6ZhD2wu8NyTVrKY7FYn4nG9DsEQq8vknq51r1Z9meLSP114N37oX5qjp60ns9kEm3kbf41DTObXETs+jzcA4Rcl2m9Z5I/feKEm7oFp6PvzEg=,iv:Bywv84FGB6IO7M9KFoxx3cVXFElX7QNWossWszMJui8=,tag:D07pceBF1i1vUMZ7nFuslA==,type:str]
|
||||
lastmodified: "2026-03-22T07:49:51Z"
|
||||
mac: ENC[AES256_GCM,data:Y/7XSZtPlVPDV3eToYQ9MoAGF9nGq0sd0KU1VaR5duK1xbETULioQcpPvVk6HL1kPlUjnmR8RXfCKBC7EJ9P/UAMV2ySulLtD6daogCzF3qa2JSyXPuOyMuXMSjwCNcCyHgpaOrWz+7Zf9FU/1wQwVHeCDTf0sFHaX0xttFfHkg=,iv:7+zXPjeslh+z9hWhYXoUphpbg3Tpe4OHQEcUmetuiMM=,tag:LB0GuN+5TJxXyuvrrqOi7g==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.12.1
|
||||
|
||||
@@ -18,62 +18,68 @@
|
||||
];
|
||||
};
|
||||
|
||||
homeConfiguration = { config, lib, pkgs, ... }: {
|
||||
home.file.".ssh/id_ed25519".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"/persist/private-keys/ssh/msyds@sydpc";
|
||||
homeConfiguration = { config, lib, pkgs, host, ... }:
|
||||
let on = hosts:
|
||||
if builtins.isString hosts
|
||||
then hosts == host
|
||||
else builtins.elem host hosts;
|
||||
in {
|
||||
home.file.".ssh/id_ed25519".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"/persist/private-keys/ssh/msyds@sydpc";
|
||||
|
||||
home.file.".face".source = ./avatar.jpg;
|
||||
home.file.".face".source = ./avatar.jpg;
|
||||
|
||||
home.file.".ssh/id_ed25519.pub".source =
|
||||
../../public-keys/ssh/${"msyds@sydpc.pub"};
|
||||
home.file.".ssh/id_ed25519.pub".source =
|
||||
../../public-keys/ssh/${"msyds@sydpc.pub"};
|
||||
|
||||
sydnix = {
|
||||
documentation.enable = true;
|
||||
xdg.enable = true;
|
||||
steam.enable = true;
|
||||
zotero.enable = true;
|
||||
openutau.enable = true;
|
||||
slippi.enable = true;
|
||||
desktop-environment.enable = true;
|
||||
clojure.enable = true;
|
||||
capitaine-cursors.enable = true;
|
||||
terraria.enable = true;
|
||||
kdeconnect.enable = true;
|
||||
qalculate.enable = true;
|
||||
sops = {
|
||||
enable = true;
|
||||
keyFile = "/persist/private-keys/age/crumb";
|
||||
};
|
||||
# Personal configurations.
|
||||
users.crumb = {
|
||||
bash.enable = true;
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
nvim.enable = true;
|
||||
readline.enable = true;
|
||||
niri.enable = true;
|
||||
firefox.enable = true;
|
||||
ghostty.enable = true;
|
||||
# waybar.enable = true;
|
||||
tf2.enable = true;
|
||||
fcitx5.enable = true;
|
||||
anki.enable = true;
|
||||
mumble.enable = true;
|
||||
};
|
||||
users.msyds = {
|
||||
discord.enable = true;
|
||||
hunspell.enable = true;
|
||||
emacs.enable = true;
|
||||
impermanence.enable = true;
|
||||
syncthing.enable = true;
|
||||
fonts.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
sioyek.enable = true;
|
||||
sydnix = {
|
||||
documentation.enable = true;
|
||||
xdg.enable = true;
|
||||
steam.enable = on "sydpc";
|
||||
zotero.enable = true;
|
||||
slippi.enable = on "sydpc";
|
||||
desktop-environment.enable = true;
|
||||
clojure.enable = true;
|
||||
capitaine-cursors.enable = true;
|
||||
terraria.enable = on "sydpc";
|
||||
kdeconnect.enable = true;
|
||||
qalculate.enable = true;
|
||||
toki-pona.enable = true;
|
||||
prism-launcher.enable = true;
|
||||
sops = {
|
||||
enable = true;
|
||||
keyFile = "/persist/private-keys/age/crumb";
|
||||
};
|
||||
# Personal configurations.
|
||||
users.crumb = {
|
||||
direnv.enable = true;
|
||||
git.enable = true;
|
||||
nvim.enable = true;
|
||||
readline.enable = true;
|
||||
niri.enable = true;
|
||||
firefox.enable = true;
|
||||
ghostty.enable = true;
|
||||
# waybar.enable = true;
|
||||
tf2.enable = true;
|
||||
fcitx5.enable = true;
|
||||
anki.enable = true;
|
||||
mumble.enable = true;
|
||||
};
|
||||
users.msyds = {
|
||||
discord.enable = true;
|
||||
bash.enable = true;
|
||||
hunspell.enable = true;
|
||||
emacs.enable = true;
|
||||
impermanence.enable = true;
|
||||
syncthing.enable = true;
|
||||
fonts.enable = true;
|
||||
dank-material-shell.enable = true;
|
||||
sioyek.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Don't touch!
|
||||
home.stateVersion = "18.09";
|
||||
};
|
||||
|
||||
# Don't touch!
|
||||
home.stateVersion = "18.09";
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user