1 Commits

Author SHA1 Message Date
msyds ddbfca6f30 feat: build action
build / build-sydpc (push) Failing after 17s
build / build-fruitbook (push) Failing after 2s
build / build-deertopia (push) Failing after 1s
2026-03-01 02:45:53 -07:00
86 changed files with 1022 additions and 3606 deletions
+16 -4
View File
@@ -4,14 +4,26 @@ on: [push]
jobs:
build:
build-sydpc:
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
run: nix build -L .#nixosConfigurations.sydpc
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
run: nix build -L .#nixosConfigurations.fruitbook
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
run: nix build -L .#nixosConfigurations.deertopia
Generated
+215 -294
View File
@@ -21,28 +21,28 @@
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1765809053,
"narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1776754714,
"narHash": "sha256-E3OAK27smtATTmX45uoTSRsVD+Y+ZiVVfgM/tjpbtYg=",
"lastModified": 1752979451,
"narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "4d508123037e7851ad36ebf7d9c48b0e9e1eb581",
"rev": "27cf1e66e50abc622fb76a3019012dc07c678fac",
"type": "github"
},
"original": {
@@ -76,11 +76,11 @@
]
},
"locked": {
"lastModified": 1781648708,
"narHash": "sha256-i9ggnF31Uq3tpdp6ZMe7YAOxjTfkB7S4WjSBfXV0uMk=",
"lastModified": 1762095388,
"narHash": "sha256-7Q8LtcvKWHbP8znARRTOY2tpU5WoV6FHwp5TZJOI8Us=",
"owner": "9001",
"repo": "copyparty",
"rev": "d33d11321f823f58a9109298ef886044f63b02ce",
"rev": "ac085b8149ff50e03d260128596dd130ed1c7cae",
"type": "github"
},
"original": {
@@ -94,11 +94,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"lastModified": 1741786315,
"narHash": "sha256-VT65AE2syHVj6v/DGB496bqBnu1PXrrzwlw07/Zpllc=",
"owner": "nix-community",
"repo": "disko",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"rev": "0d8c6ad4a43906d14abd5c60e0ffe7b587b213de",
"type": "github"
},
"original": {
@@ -107,39 +107,17 @@
"type": "github"
}
},
"dms": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1777431599,
"narHash": "sha256-g6r/Gx8PTDzO3jCNzzySA+Ff1lmLF9nDlMCNyyoQjoE=",
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"rev": "eb5afcdc40ea5446c27e18552ff4a19f9daf9484",
"type": "github"
},
"original": {
"owner": "AvengeMedia",
"ref": "stable",
"repo": "DankMaterialShell",
"type": "github"
}
},
"emacs-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1782325883,
"narHash": "sha256-yiZgLJdCJyxxvYo4vvEk9B9Q5gbruM/KTxcw7/NjuGQ=",
"lastModified": 1742838319,
"narHash": "sha256-daVj+uHpHvndui9DOxytAjVP7Kx8lG3/W3KPNR0EG/0=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "fcfa8883e001877fc0d4592244596f9e76f83b95",
"rev": "cb257a1d672f75f2f3e375fe1080216131dd1fb0",
"type": "github"
},
"original": {
@@ -151,11 +129,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1779670703,
"narHash": "sha256-UdfMivNMwCCqQsYDg5pSz8X2IOaOrIZLIIy+Bg3CO2o=",
"lastModified": 1758112371,
"narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "942159e73e40bf785816f7f1f5feed9ef3d7c8f9",
"rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d",
"type": "github"
},
"original": {
@@ -171,7 +149,7 @@
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"revCount": 69,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz"
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69"
},
"original": {
"type": "tarball",
@@ -183,11 +161,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"lastModified": 1754091436,
"narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
"type": "github"
},
"original": {
@@ -225,11 +203,11 @@
]
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"lastModified": 1756770412,
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"rev": "4524271976b625a4a605beefd893f270620fd751",
"type": "github"
},
"original": {
@@ -308,18 +286,20 @@
"gnome-shell": {
"flake": false,
"locked": {
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"host": "gitlab.gnome.org",
"lastModified": 1762869044,
"narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
"rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad",
"type": "gitlab"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "github"
"type": "gitlab"
}
},
"home-manager": {
@@ -327,32 +307,11 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1782233665,
"narHash": "sha256-h/xOtrByoA/Ak1lWHn0O1lVZz4qWYbwOSLQ8YSwQO0I=",
"lastModified": 1768325819,
"narHash": "sha256-mBKqOJkxCRwEhIXfq93WTcDXsBlJ/f1Dfv9thJxrDPs=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "062581938b4a378a82dfbb294b494808157153a1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"impermanence",
"nixpkgs"
]
},
"locked": {
"lastModified": 1768598210,
"narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
"rev": "b1fa714d6cd656e3105d1965637be6ab7541d7d7",
"type": "github"
},
"original": {
@@ -362,16 +321,12 @@
}
},
"impermanence": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1769548169,
"narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
"lastModified": 1737831083,
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
"owner": "nix-community",
"repo": "impermanence",
"rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
"type": "github"
},
"original": {
@@ -384,17 +339,17 @@
"inputs": {
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_5",
"nixpkgs": "nixpkgs_4",
"nixpkgs-stable": "nixpkgs-stable_2",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1781795508,
"narHash": "sha256-VKrApQ3WCkEe9D8DbaeFjGqLAh7zqYGYjbQYtY5ikxc=",
"lastModified": 1768306584,
"narHash": "sha256-GWLONqOKcsWKFYqoEIFbIv6Ti/xoSvsYC9LzZzB1oj4=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "493ce1e33e72f86312584f331c8cf52b3432ec99",
"rev": "1b8c8ba473cf336d74ffb05ee453c8fe6a05bbbc",
"type": "github"
},
"original": {
@@ -423,11 +378,11 @@
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1781781064,
"narHash": "sha256-Ii/koEm/sRyg65qbAQWqEgboSEIhdH0EL4KglAc14p0=",
"lastModified": 1768196703,
"narHash": "sha256-mttBQdVnVFO3mn+M+oqCsZZOtS2HvXYy+VaHxb8YuMw=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "49fc6117fd6c043adaa2ead316b82db5ed735d36",
"rev": "3672e79369d72297abda8878245ea4ec327062c6",
"type": "github"
},
"original": {
@@ -465,15 +420,14 @@
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_6",
"nixpkgs-nixcord": "nixpkgs-nixcord"
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1782320240,
"narHash": "sha256-BZTrprmdOa0CZPhpMdKcTuYLhjaP2zhEORVPSrUfRV4=",
"lastModified": 1764576281,
"narHash": "sha256-f6vfwmIb9C3brI4/KJ9MFUDWt6FsKQ0dbMO6AuFc7E0=",
"owner": "KaylorBen",
"repo": "nixcord",
"rev": "f775e367ee683756206df5bb860086eabbea07d1",
"rev": "c8f47894134a4984acd319e66c4384eb1ff886e2",
"type": "github"
},
"original": {
@@ -482,31 +436,13 @@
"type": "github"
}
},
"nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1782166108,
"narHash": "sha256-/EtnQBcKbsaCAGQ5VRcplrHRkR4ryqyLMpBfkVuG9Xw=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "875776f0252fcb8618bb948640a0d1f7a5b362be",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1780930886,
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=",
"lastModified": 1741402956,
"narHash": "sha256-y2hByvBM03s9T2fpeLjW6iprbxnhV9mJMmSwCHc41ZQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e",
"rev": "ed0b1881565c1ffef490c10d663d4f542031dad3",
"type": "github"
},
"original": {
@@ -518,11 +454,11 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"lastModified": 1753579242,
"narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
"type": "github"
},
"original": {
@@ -531,45 +467,29 @@
"type": "github"
}
},
"nixpkgs-nixcord": {
"locked": {
"lastModified": 1780453794,
"narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1782116945,
"narHash": "sha256-G3tw/IXmaH6IQ2upZvhuN9sG8CkuX+BLuJDpE8hz0Ds=",
"lastModified": 1742751704,
"narHash": "sha256-rBfc+H1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "34268251cf5547d39063f2c5ea9a196246f7f3a6",
"rev": "f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-26.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1781509190,
"narHash": "sha256-uJZs9Di8I6ciTp6jiojj0HzlNpBkud8ax5aT/O5aJkw=",
"lastModified": 1768242861,
"narHash": "sha256-F4IIxa5xDHjtrmMcayM8lHctUq1oGltfBQu2+oqDWP4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d6df3513510aa548c83868fd22bfddd0a8c0a0d4",
"rev": "1327e798cb055f96f92685df444e9a2c326ab5ed",
"type": "github"
},
"original": {
@@ -581,27 +501,11 @@
},
"nixpkgs_10": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"lastModified": 1750386251,
"narHash": "sha256-1ovgdmuDYVo5OUC5NzdF+V4zx2uT8RtsgZahxidBTyw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1756819007,
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
"rev": "076e8c6678d8c54204abcb4b1b14c366835a58bb",
"type": "github"
},
"original": {
@@ -611,7 +515,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_11": {
"locked": {
"lastModified": 1743568003,
"narHash": "sha256-ZID5T65E8ruHqWRcdvZLsczWDOAWIE7om+vQOREwiX0=",
@@ -629,11 +533,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"lastModified": 1742669843,
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
"type": "github"
},
"original": {
@@ -645,31 +549,31 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1781607440,
"narHash": "sha256-rxO+uc/KFbSJp+pgyXRuAX6QlG9hJdnt0BXpEQRXY+U=",
"lastModified": 1767892417,
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e41b24abd260e8f71dbe2f5737d24122f972158",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1768564909,
"narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "nixos",
"lastModified": 1768127708,
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
@@ -677,56 +581,27 @@
},
"nixpkgs_5": {
"locked": {
"lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"lastModified": 1754028485,
"narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"rev": "59e69648d345d6e8fef86158c555730fa12af9de",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixos-25.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_6": {
"locked": {
"lastModified": 1780453794,
"narHash": "sha256-bXMRa9VTsHSPXL4Cw8R6JJLQeY3Y/IP4+YJCYVmQ7FY=",
"lastModified": 1768178648,
"narHash": "sha256-kz/F6mhESPvU1diB7tOM3nLcBfQe7GU7GQCymRlTi/s=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6b316287bae2ee04c9b93c8c858d930fd07d7338",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_7": {
"locked": {
"lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1782175435,
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
"rev": "3fbab70c6e69c87ea2b6e48aa6629da2aa6a23b0",
"type": "github"
},
"original": {
@@ -736,13 +611,45 @@
"type": "github"
}
},
"nixpkgs_9": {
"nixpkgs_7": {
"locked": {
"lastModified": 1775888245,
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
"lastModified": 1742578646,
"narHash": "sha256-GiQ40ndXRnmmbDZvuv762vS+gew1uDpFwOfgJ8tLiEs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "13043924aaa7375ce482ebe2494338e058282925",
"rev": "94c4dbe77c0740ebba36c173672ca15a7926c993",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1762977756,
"narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1756819007,
"narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1",
"type": "github"
},
"original": {
@@ -757,14 +664,15 @@
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
]
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1782324423,
"narHash": "sha256-5kuAZdkkvcH5PhgIa3Y1AYiEqMVej0fEdiQ90dyS5zY=",
"lastModified": 1742849190,
"narHash": "sha256-Isnx5t+L/G7AxpUwNvFgPiYc4IcZjdBrg3MIVz1cfnk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "64d4c632a898a7ef22c72dfe6b33df259b1d4443",
"rev": "797067d7e3601713a3b43f823248a6232486376c",
"type": "github"
},
"original": {
@@ -785,11 +693,11 @@
]
},
"locked": {
"lastModified": 1780281641,
"narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=",
"lastModified": 1758998580,
"narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01",
"rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728",
"type": "github"
},
"original": {
@@ -798,41 +706,17 @@
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"dms",
"nixpkgs"
]
},
"locked": {
"lastModified": 1776854048,
"narHash": "sha256-lLbV66V3RMNp1l8/UelmR4YzoJ5ONtgvEtiUMJATH/o=",
"ref": "refs/heads/master",
"rev": "783c953987dc56ff0601abe6845ed96f1d00495a",
"revCount": 806,
"type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell"
},
"original": {
"rev": "783c953987dc56ff0601abe6845ed96f1d00495a",
"type": "git",
"url": "https://git.outfoxxed.me/quickshell/quickshell"
}
},
"root": {
"inputs": {
"copyparty": "copyparty",
"disko": "disko",
"dms": "dms",
"emacs-overlay": "emacs-overlay",
"home-manager": "home-manager",
"impermanence": "impermanence",
"niri": "niri",
"nixarr": "nixarr",
"nixcord": "nixcord",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_8",
"nixpkgs": "nixpkgs_6",
"nur": "nur",
"sops-nix": "sops-nix",
"stylix": "stylix",
@@ -844,14 +728,14 @@
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_9"
"nixpkgs": "nixpkgs_7"
},
"locked": {
"lastModified": 1782165805,
"narHash": "sha256-478kKQBvK6SYTOdN2h9jhKJv94nbXRbFMfuL1WshErg=",
"lastModified": 1742700801,
"narHash": "sha256-ZGlpUDsuBdeZeTNgoMv+aw0ByXT2J3wkYw9kJwkAS4M=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "56b24064fdcaedca53553b1a6d607fd23b613a24",
"rev": "67566fe68a8bed2a7b1175fdfb0697ed22ae8852",
"type": "github"
},
"original": {
@@ -869,24 +753,25 @@
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_10",
"nixpkgs": "nixpkgs_8",
"nur": "nur_2",
"systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1782310521,
"narHash": "sha256-vsxcG0i8e4EPfdnhMTKMVzD1825H2vG1BBslzom9wxg=",
"owner": "nix-community",
"lastModified": 1764550443,
"narHash": "sha256-ArO2V1YEHmEILilTj4KPtqF4gqc1q2HBrrrmygQ/UyU=",
"owner": "danth",
"repo": "stylix",
"rev": "e084d011e7ee9302aceaaf6c1fc28a9ace09e16a",
"rev": "794b6e1fa75177ebfeb32967f135858a1ab1ba15",
"type": "github"
},
"original": {
"owner": "nix-community",
"owner": "danth",
"repo": "stylix",
"type": "github"
}
@@ -894,14 +779,14 @@
"syd-fcitx5-tables": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": "nixpkgs_11"
"nixpkgs": "nixpkgs_9"
},
"locked": {
"lastModified": 1771615497,
"narHash": "sha256-kyh/P0W8Th+AWFFGzVH7fC1pnI/Q6XqQUZoOHbs1S9A=",
"lastModified": 1771615370,
"narHash": "sha256-UD/9fs1GYuwDGqrpKunrwOPrvkahLQ/6eeRy/0ejHNA=",
"ref": "refs/heads/main",
"rev": "c515caad2fbbabdcd29b63db7fa11aa4e0400cce",
"revCount": 9,
"rev": "41111bead687315ca1f55a826509234ca2f0e0ce",
"revCount": 8,
"type": "git",
"url": "https://git.deertopia.net/msyds/syd-fcitx5-tables"
},
@@ -912,22 +797,20 @@
},
"sydpkgs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1782095156,
"narHash": "sha256-3iWp9s12wje+qV7trS/XhQZVfolXBpTPLdGfOHWkdBs=",
"ref": "refs/heads/main",
"rev": "6450642be3ee1af3b64ff2129e0fa2488f3c2d0e",
"revCount": 43,
"type": "git",
"url": "https://git.deertopia.net/msyds/sydpkgs"
"lastModified": 1767975357,
"narHash": "sha256-MDVh3/aVhkD1bh/r8c0gs9DL4e78CrUbUxOZHWlCwLM=",
"owner": "msyds",
"repo": "sydpkgs",
"rev": "233479ab277d47b1dbda202eafca50e61c659151",
"type": "github"
},
"original": {
"type": "git",
"url": "https://git.deertopia.net/msyds/sydpkgs"
"owner": "msyds",
"repo": "sydpkgs",
"type": "github"
}
},
"systems": {
@@ -978,14 +861,14 @@
"tf2-nix": {
"inputs": {
"flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_12"
"nixpkgs": "nixpkgs_11"
},
"locked": {
"lastModified": 1761857232,
"narHash": "sha256-EvWDkMdmAx9IKYHuIa8bWMu9Fa7KylKNWWAQ57Dr7KA=",
"lastModified": 1761467191,
"narHash": "sha256-0NHhZztMuw17Tp/HjsGhAtjI4k5Qhg0ZxIkgIA0hHOI=",
"owner": "msyds",
"repo": "tf2-nix",
"rev": "3afc3e370bfe66d31ef0711dabc90a29fb55940e",
"rev": "98673e8d34fbe59e3c5e9f27068a46e6b61ccc60",
"type": "gitlab"
},
"original": {
@@ -994,6 +877,23 @@
"type": "gitlab"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
@@ -1013,11 +913,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1777806186,
"narHash": "sha256-PDF0/wObw4nIsSBeXVYLsloXOiphXCgIdsrNcVXguKs=",
"lastModified": 1757716333,
"narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0c94645546f4f3ddac77a1a5fce54eb95bf50795",
"rev": "317a5e10c35825a6c905d912e480dfe8e71c7559",
"type": "github"
},
"original": {
@@ -1029,11 +929,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1778379944,
"narHash": "sha256-wPDFzMGSlARlw0Sfsn48Q2+jPSfk6N0Ng6BC/d+7Q24=",
"lastModified": 1757811970,
"narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "fe0203a198690e71a5ff11e08812a4673de3678d",
"rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e",
"type": "github"
},
"original": {
@@ -1045,11 +945,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1778378178,
"narHash": "sha256-OXPXRIQgGwV77HjYRryOHguh4ALX96jkg+tseLkGgHA=",
"lastModified": 1757811247,
"narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "9cd816033ff969415b190722cddf134e78a5665f",
"rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e",
"type": "github"
},
"original": {
@@ -1058,13 +958,34 @@
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"vpn-confinement": {
"locked": {
"lastModified": 1778182451,
"narHash": "sha256-Bz3n2THDGf90Z9gMqhH/J492prYH8B6RFRlxv/fPBwc=",
"lastModified": 1742138327,
"narHash": "sha256-Y71Mjej98CjaUKa1ecAIOo0eJ1B3ZVQl2ng6xl7/s9Y=",
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
"rev": "cf5bfc4c3559f2e783698b1aa23c165072039a7d",
"rev": "38eeb3bc501900b48d1caf8c52a5b7f2fb7a52c5",
"type": "github"
},
"original": {
@@ -1114,11 +1035,11 @@
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1781226823,
"narHash": "sha256-28696iIw8uE0ZUyFTtzhEM8xMh85clCYypMxkvUi+sc=",
"lastModified": 1768106915,
"narHash": "sha256-HlLo9zH4ULRXlmlIK948cHmdVhxyHgTHxGaoCRlW4k8=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "8575d0ef55d70f9b4c46b6bffb3accf912217e1e",
"rev": "72245e108f3b03c3c4474d2de9de2d1830849603",
"type": "github"
},
"original": {
+2 -12
View File
@@ -4,8 +4,6 @@
inputs = {
disko.url = "github:nix-community/disko";
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";
@@ -15,7 +13,7 @@
};
emacs-overlay.url = "github:nix-community/emacs-overlay";
niri.url = "github:sodiboo/niri-flake";
stylix.url = "github:nix-community/stylix";
stylix.url = "github:danth/stylix";
nixcord.url = "github:KaylorBen/nixcord";
vpn-confinement.url = "github:Maroka-chan/VPN-Confinement";
nixarr = {
@@ -23,7 +21,6 @@
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";
@@ -32,14 +29,7 @@
tf2-nix.url = "gitlab:msyds/tf2-nix";
syd-fcitx5-tables.url =
"git+https://git.deertopia.net/msyds/syd-fcitx5-tables";
sydpkgs = {
url = "git+https://git.deertopia.net/msyds/sydpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
dms = {
url = "github:AvengeMedia/DankMaterialShell/stable";
inputs.nixpkgs.follows = "nixpkgs";
};
sydpkgs.url = "github:msyds/sydpkgs";
};
outputs = { self, nixpkgs, ... }@inputs:
+1 -2
View File
@@ -50,7 +50,7 @@
deertopia = {
authelia.enable = true;
gitea.enable = true;
# quiver.enable = true;
quiver.enable = true;
www.enable = true;
bepasty.enable = true;
jellyfin.enable = false;
@@ -66,7 +66,6 @@
# umurmur.enable = true;
murmur.enable = true;
anki-sync-server.enable = true;
vaultwarden.enable = true;
servarr = {
enable = true;
prowlarr.enable = true;
+4 -8
View File
@@ -1,30 +1,26 @@
{ config, pkgs, lib, disko, nixos-hardware, ... }:
{ config, pkgs, lib, disko, ... }:
{
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;
blueman.enable = true;
# gdm.enable = true;
openssh.enable = true;
sydpkgs.overlay.enable = true;
dank-material-shell.enable = true;
kdeconnect.enable = true;
upower.enable = true;
users.users = [
# "crumb"
"crumb"
"msyds"
];
+1 -6
View File
@@ -6,14 +6,10 @@
./disks.nix
];
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.extraModulePackages = with config.boot.kernelPackages; [
v4l2loopback
];
programs.dconf.enable = true;
sydnix = {
filesystemType = "btrfs";
wifi.enable = true;
@@ -23,9 +19,8 @@
slippi.enable = true;
niri.enable = true;
stylix.enable = true;
# qemu.enable = true;
qemu.enable = true;
flatpak.enable = true;
gtav-battleye-hack.enable = true;
# gdm.enable = true;
openssh.enable = true;
sydpkgs.overlay.enable = true;
-16
View File
@@ -1,16 +0,0 @@
{ 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
View File
@@ -1,16 +0,0 @@
{ 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[@]}"
'';
};
}
-1
View File
@@ -9,7 +9,6 @@ in {
config = lib.mkIf cfg.enable {
sydnix.impermanence.cache.directories = [
".m2" # Clojure dependencies.
".gitlibs"
];
};
}
+25
View File
@@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.dank-material-shell;
json = pkgs.formats.json {};
in {
options.sydnix.dank-material-shell = {
enable = lib.mkEnableOption "DMS";
settings = lib.mkOption {
type = json.type;
default = { };
description = ''
DankMaterialShell configuration settings as an attribute set,
to be written to ~/.config/DankMaterialShell/settings.json.
'';
};
};
config = lib.mkIf cfg.enable {
xdg.configFile = {
"DankMaterialShell/settings.json".source =
json.generate "settings.json" cfg.settings;
};
};
}
+43 -28
View File
@@ -13,36 +13,51 @@ in {
};
};
imports = [
./discord/jellyfin-rpc.nix
];
config = lib.mkIf cfg.enable {
sydnix.impermanence.directories =
let xdg-config-home =
config.home.confighome
config = lib.mkIf cfg.enable
(let
# Fixes flickering and platform detection on Wayland.
vesktop-wayland-wrapper =
pkgs.symlinkJoin {
name = "vesktop-wayland-wrapper";
paths = [ pkgs.callPackage pkgs.vesktop ];
buildInputs = [ pkgs.makeWrapper ];
postBuild = ''
wrapProgram $out/bin/vesktop \
--add-flags "--disable-gpu-compositing"
# --add-flags "--disable-gpu-compositing --ozone-platform-hint=auto"
'';
};
in {
sydnix.impermanence.directories =
let xdg-config-home =
config.home.confighome
or "${config.home.homeDirectory}/.config";
in [
# This directory should really be written in terms of
# `config.programs.nixcord.vesktopConfigDir`, but it
# defaults to null for unknown reasons. This is in conflict
# with the docs, which claim it should be the path used
# here.
(lib.removePrefix
config.home.homeDirectory
"${xdg-config-home}/vesktop")
];
in [
# This directory should really be written in terms of
# `config.programs.nixcord.vesktopConfigDir`, but it defaults to null
# for unknown reasons. This is in conflict with the docs, which claim
# it should be the path used here.
(lib.removePrefix
config.home.homeDirectory
"${xdg-config-home}/vesktop")
];
programs.nixcord = {
enable = true;
discord = {
enable = false;
vencord.enable = false;
vencord.package = pkgs.vencord;
};
vesktop = {
programs.nixcord = {
enable = true;
discord = {
# Install Vesktop without Discord.
enable = false;
# openASAR.enable = true;
vencord.enable = false;
vencord.package = pkgs.vencord;
};
vesktop = {
enable = true;
# package =
# if cfg.fixWayland
# then vesktop-wayland-wrapper
# else pkgs.vesktop;
};
};
};
};
});
}
-95
View File
@@ -1,95 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.discord.jellyfin-rpc;
vesktop-wrapper =
pkgs.vesktop.overrideAttrs (finalAttrs: prevAttrs: {
postFixup = ''
${prevAttrs.postFixup or ""}
if [[ -e $out/bin/.vesktop-wrapped ]]; then
echo ".vesktop-wrapped already exists..."
exit 1
fi
mv $out/bin/vesktop $out/bin/.vesktop-wrapped
tee $out/bin/vesktop <<EOF
#!/usr/bin/env bash
systemctl start --user jellyfin-rpc
$out/bin/.vesktop-wrapped "\$@"
systemctl stop --user jellyfin-rpc
EOF
chmod +x $out/bin/vesktop
'';
});
jellyfin-rpc-config-template =
pkgs.writeText "jellyfin-rpc-config-template"
(lib.toJSON {
jellyfin = {
url = "https://watch.deertopia.net";
username = ["lain" "msyds"];
music = {
display = ["year" "album" "genres"];
separator = "";
};
blacklist.libraries = [
"episode"
"movie"
"book"
"audiobook"
"livetv"
];
};
images = {
enable_images = true;
imgur_images = false;
};
});
in {
options.sydnix.discord.jellyfin-rpc = {
enable = lib.mkEnableOption "Jellyfin rich presence";
};
config = lib.mkIf cfg.enable {
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'
'';
};
};
systemd.user.services.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 = {};
programs.nixcord.vesktop.package = vesktop-wrapper;
assertions = [{
assertion = config.programs.nixcord.vesktop.enable;
message = "Jellyfin RPC requires Vesktop.";
}];
};
}
-16
View File
@@ -1,16 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.documentation;
in {
options.sydnix.documentation = {
enable = lib.mkEnableOption "Docs";
};
config = lib.mkIf cfg.enable {
home.extraOutputsToInstall = [
"doc"
"info"
"man"
];
};
}
-25
View File
@@ -1,25 +0,0 @@
{ config, lib, pkgs, osConfig, ... }:
let cfg = config.sydnix.easyeffects;
in {
options.sydnix.easyeffects = {
enable = lib.mkEnableOption "Easyeffects";
};
config = lib.mkIf cfg.enable {
services.easyeffects = {
enable = true;
extraPresets.kissin-the-mic =
builtins.fromJSON
(builtins.readFile ./easyeffects/kissin-the-mic.json);
extraPresets.thanks-ash =
builtins.fromJSON
(builtins.readFile ./easyeffects/thanks-ash.json);
};
warnings = lib.optional (!osConfig.programs.dconf.enable) ''
Easyeffects requires services.dconf.enable = true in the NixOS
config.
'';
};
}
@@ -1,777 +0,0 @@
{
"input": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": 0.0,
"left": {
"band0": {
"frequency": 22.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 27.8,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 194.06,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 240.81,
"gain": -26.54,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 298.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band13": {
"frequency": 370.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band14": {
"frequency": 460.182,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band15": {
"frequency": 571.057,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band16": {
"frequency": 708.647,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band17": {
"frequency": 879.387,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band18": {
"frequency": 1091.26,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band19": {
"frequency": 1354.19,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 34.51,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band20": {
"frequency": 1680.47,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band21": {
"frequency": 2085.35,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band22": {
"frequency": 2587.79,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band23": {
"frequency": 3211.29,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band24": {
"frequency": 3985.01,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band25": {
"frequency": 4945.15,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band26": {
"frequency": 6136.63,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band27": {
"frequency": 7615.17,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band28": {
"frequency": 9449.96,
"gain": 0.05000000000000426,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band29": {
"frequency": 11726.8,
"gain": -0.5300000000000011,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 42.82,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band30": {
"frequency": 14552.2,
"gain": -22.29,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band31": {
"frequency": 18058.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 53.14,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 65.95,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 81.83,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 101.55,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 126.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 156.38,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 32,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 22.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 27.8,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 194.06,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 240.81,
"gain": -26.54,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 298.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band13": {
"frequency": 370.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band14": {
"frequency": 460.182,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band15": {
"frequency": 571.057,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band16": {
"frequency": 708.647,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band17": {
"frequency": 879.387,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band18": {
"frequency": 1091.26,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band19": {
"frequency": 1354.19,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 34.51,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band20": {
"frequency": 1680.47,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band21": {
"frequency": 2085.35,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band22": {
"frequency": 2587.79,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band23": {
"frequency": 3211.29,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band24": {
"frequency": 3985.01,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band25": {
"frequency": 4945.15,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band26": {
"frequency": 6136.63,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band27": {
"frequency": 7615.17,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band28": {
"frequency": 9449.96,
"gain": 0.05000000000000426,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band29": {
"frequency": 11726.8,
"gain": -0.5300000000000011,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 42.82,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band30": {
"frequency": 14552.2,
"gain": -22.29,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band31": {
"frequency": 18058.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 53.14,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 65.95,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 81.83,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 101.55,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 126.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 156.38,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"split-channels": false
},
"gate#0": {
"attack": 4.0,
"bypass": false,
"curve-threshold": -12.5,
"curve-zone": -6.0,
"dry": -80.01,
"hpf-frequency": 10.0,
"hpf-mode": "Off",
"hysteresis": false,
"hysteresis-threshold": -12.0,
"hysteresis-zone": -6.0,
"input-gain": 0.0,
"input-to-link": 0.0,
"input-to-sidechain": 0.0,
"link-to-input": 0.0,
"link-to-sidechain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "Off",
"makeup": 0.0,
"output-gain": 0.0,
"reduction": -40.0,
"release": 250.0,
"sidechain": {
"lookahead": 0.0,
"mode": "Peak",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Internal"
},
"sidechain-to-input": 0.0,
"sidechain-to-link": 0.0,
"stereo-split": false,
"wet": 0.0
},
"loudness#0": {
"bypass": false,
"clipping": false,
"clipping-range": 6.0,
"fft": "4096",
"iir-approximation": "Normal",
"input-gain": 0.0,
"mode": "FFT",
"output-gain": 0.0,
"std": "ISO226-2023",
"volume": 7.0
},
"plugins_order": [
"gate#0",
"equalizer#0",
"loudness#0"
]
}
}
-777
View File
@@ -1,777 +0,0 @@
{
"input": {
"blocklist": [],
"equalizer#0": {
"balance": 0.0,
"bypass": false,
"input-gain": 0.0,
"left": {
"band0": {
"frequency": 22.4,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 27.8,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 194.06,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 240.81,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 298.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band13": {
"frequency": 370.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band14": {
"frequency": 460.182,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band15": {
"frequency": 571.057,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band16": {
"frequency": 708.647,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band17": {
"frequency": 879.387,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band18": {
"frequency": 1091.26,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band19": {
"frequency": 1354.19,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 34.51,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band20": {
"frequency": 1680.47,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band21": {
"frequency": 2085.35,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band22": {
"frequency": 2587.79,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band23": {
"frequency": 3211.29,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band24": {
"frequency": 3985.01,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band25": {
"frequency": 4945.15,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band26": {
"frequency": 6136.63,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band27": {
"frequency": 7615.17,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band28": {
"frequency": 9449.96,
"gain": 0.05000000000000426,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band29": {
"frequency": 11726.8,
"gain": -0.5300000000000011,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 42.82,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band30": {
"frequency": 14552.2,
"gain": -22.29,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band31": {
"frequency": 18058.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 53.14,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 65.95,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 81.83,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 101.55,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 126.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 156.38,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"mode": "IIR",
"num-bands": 32,
"output-gain": 0.0,
"pitch-left": 0.0,
"pitch-right": 0.0,
"right": {
"band0": {
"frequency": 22.4,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band1": {
"frequency": 27.8,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band10": {
"frequency": 194.06,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band11": {
"frequency": 240.81,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band12": {
"frequency": 298.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band13": {
"frequency": 370.834,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band14": {
"frequency": 460.182,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band15": {
"frequency": 571.057,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band16": {
"frequency": 708.647,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band17": {
"frequency": 879.387,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band18": {
"frequency": 1091.26,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band19": {
"frequency": 1354.19,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band2": {
"frequency": 34.51,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band20": {
"frequency": 1680.47,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band21": {
"frequency": 2085.35,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band22": {
"frequency": 2587.79,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band23": {
"frequency": 3211.29,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band24": {
"frequency": 3985.01,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band25": {
"frequency": 4945.15,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band26": {
"frequency": 6136.63,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band27": {
"frequency": 7615.17,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band28": {
"frequency": 9449.96,
"gain": 0.05000000000000426,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band29": {
"frequency": 11726.8,
"gain": -0.5300000000000011,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band3": {
"frequency": 42.82,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band30": {
"frequency": 14552.2,
"gain": -22.29,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band31": {
"frequency": 18058.4,
"gain": -36.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band4": {
"frequency": 53.14,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band5": {
"frequency": 65.95,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band6": {
"frequency": 81.83,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band7": {
"frequency": 101.55,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band8": {
"frequency": 126.0,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
},
"band9": {
"frequency": 156.38,
"gain": 0.0,
"mode": "RLC (BT)",
"mute": false,
"q": 4.36,
"slope": "x1",
"solo": false,
"type": "Bell",
"width": 4.0
}
},
"split-channels": false
},
"gate#0": {
"attack": 5.0,
"bypass": false,
"curve-threshold": -30.0,
"curve-zone": -6.0,
"dry": -80.01,
"hpf-frequency": 10.0,
"hpf-mode": "Off",
"hysteresis": false,
"hysteresis-threshold": -12.0,
"hysteresis-zone": -6.0,
"input-gain": 0.0,
"input-to-link": 0.0,
"input-to-sidechain": 0.0,
"link-to-input": 0.0,
"link-to-sidechain": 0.0,
"lpf-frequency": 20000.0,
"lpf-mode": "Off",
"makeup": 0.0,
"output-gain": 0.0,
"reduction": -24.0,
"release": 250.0,
"sidechain": {
"lookahead": 0.0,
"mode": "Peak",
"preamp": 0.0,
"reactivity": 10.0,
"source": "Middle",
"stereo-split-source": "Left/Right",
"type": "Internal"
},
"sidechain-to-input": 0.0,
"sidechain-to-link": 0.0,
"stereo-split": false,
"wet": 0.0
},
"loudness#0": {
"bypass": false,
"clipping": false,
"clipping-range": 6.0,
"fft": "4096",
"iir-approximation": "Normal",
"input-gain": 0.0,
"mode": "FFT",
"output-gain": 0.0,
"std": "ISO226-2023",
"volume": 7.0
},
"plugins_order": [
"gate#0",
"equalizer#0",
"loudness#0"
]
}
}
+1 -14
View File
@@ -56,12 +56,7 @@ in {
Extra arguments to pass to the final wrapProgram call.
'';
default = [];
type = with lib.types;
listOf
(coercedTo
(oneOf [str package])
builtins.toString
str);
type = lib.types.listOf lib.types.str;
apply = lib.escapeShellArgs;
};
};
@@ -83,7 +78,6 @@ in {
fontspec
dvisvgm dvipng wrapfig # For Org-mode previews/export.
amsmath # Essential for mathematics.
cancel # Cross out terms in math mode.
spath3 # TikZ dependency?
ulem hyperref
capt-of
@@ -134,13 +128,6 @@ in {
version = cfg.package.version;
};
in {
xdg.mimeApps = {
enable = true;
defaultApplicationPackages = [
sydmacs
];
};
# Set emacsclient as the default editor for the time being.
home.sessionVariables = {
-15
View File
@@ -1,15 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.guile;
in {
options.sydnix.guile = {
enable = lib.mkEnableOption "Guile Scheme";
};
config = lib.mkIf cfg.enable {
home.file.".guile".text = ''
(use-modules (ice-9 readline))
(activate-readline)
'';
};
}
-31
View File
@@ -1,31 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.haskell;
in {
options.sydnix.haskell.enable =
lib.mkEnableOption "Haskell";
config = lib.mkIf cfg.enable {
# Convenient shorthand for quickly opening Haskell REPLs.
programs.bash.profileExtra =
builtins.readFile ./haskell/ghc-with-packages.sh;
home.file.".ghc/ghci.conf".text = ''
:set prompt "\x1b[38;5;5mλ>\x1b[0m "
:set prompt-cont "\x1b[38;5;5m|>\x1b[0m "
'';
sydnix.impermanence.cache.directories =
let xdg-cache-dir =
config.home.cacheHome
or "${config.home.homeDirectory}/.cache";
in [
# We don't want to rebuild Hackage simply due to a reboot, do we? }:)
(lib.removePrefix "${config.home.homeDirectory}/"
"${xdg-cache-dir}/cabal")
".stack"
];
};
}
-52
View File
@@ -1,52 +0,0 @@
declare -a default_ghc_packages=(pretty-simple lens)
ghc-with-packages () {
declare -a packages=()
local GHC_COMMAND=${GHC_COMMAND:-"ghc"}
packages+=$default_ghc_packages
local exit=0 stop_args
while [[ ! -z "$1" && -z "$stop_args" ]]; do
local opt="$1"
shift 1
case "$opt" in
"--")
stop_args=1
;;
"-p")
while [[ ! -z "$1" && "$1" != -* ]]; do
packages+=("$1")
shift 1
done
;;
*|"-h")
exit=1
;;
esac
done
local pretty_simple
for p in "$packages"; do
if [[ "$p" = "pretty-simple" ]]; then
pretty_simple="-interactive-print=Text.Pretty.Simple.pPrint"
fi
done
if [[ "$exit" -eq 0 ]]; then
# echo "packages: ${packages[@]}"
# echo "args: $*"
local pkgs="${packages[@]}"
nix-shell \
-p "haskellPackages.ghcWithPackages (p: with p; [ $pkgs ])" \
--run "$GHC_COMMAND $pretty_simple $*"
else
echo >&2 "Usage: ghci-with-packages [-p packages…] [-- ghci-options]"
return $exit
fi
}
export -f ghc-with-packages
ghci-with-packages () {
GHC_COMMAND=ghci ghc-with-packages "$@"
}
export -f ghci-with-packages
-13
View File
@@ -1,13 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.hydrus;
in {
options.sydnix.hydrus = {
enable = lib.mkEnableOption "hydrus";
};
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.hydrus ];
sydnix.impermanence.directories = [ "Hydrus" ];
};
}
+2 -2
View File
@@ -45,8 +45,8 @@ in {
config = mkIf cfg.enable {
home.persistence = {
"/persist" = {
# allowOther = true;
"/persist/home/${config.home.username}" = {
allowOther = true;
directories = cfg.directories ++ cfg.cache.directories;
files = cfg.files ++ cfg.cache.files;
};
-4
View File
@@ -7,10 +7,6 @@ in {
};
config = lib.mkIf cfg.enable {
sydnix.impermanence.directories = [
".config/kdeconnect"
];
services.kdeconnect = {
enable = true;
indicator = true;
-12
View File
@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.kerbal-space-program;
in {
options.sydnix.kerbal-space-program = {
enable = lib.mkEnableOption "KSPslop";
};
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.ckan ];
};
}
-12
View File
@@ -1,12 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.libreoffice;
in {
options.sydnix.libreoffice = {
enable = lib.mkEnableOption "libreoffice";
};
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.libreoffice ];
};
}
-18
View File
@@ -1,18 +0,0 @@
{ 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"
];
};
}
-17
View File
@@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.ryujinx;
in {
options.sydnix.ryujinx = {
enable = lib.mkEnableOption "ryujinx";
};
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.ryubing-canary
];
sydnix.impermanence.directories = [
".config/Ryujinx"
];
};
}
+1 -1
View File
@@ -20,7 +20,7 @@ in {
# https://github.com/ValveSoftware/steam-for-linux/issues/10552
# https://github.com/nix-community/impermanence/issues/165
# { directory = ".local/share/Steam"; method = "symlink"; }
{ directory = ".steam"; }
{ directory = ".steam"; method = "symlink"; }
];
home.packages = [
+1 -1
View File
@@ -7,6 +7,6 @@ in {
};
config = lib.mkIf cfg.overlay.enable {
# nixpkgs.overlays = [ inputs.sydpkgs.overlays.default ];
nixpkgs.overlays = [ inputs.sydpkgs.overlays.default ];
};
}
-33
View File
@@ -1,33 +0,0 @@
{ 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
View File
@@ -1,22 +0,0 @@
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
View File
@@ -20,7 +20,6 @@ in {
enable = true;
addons = with pkgs.ankiAddons; [
review-heatmap
anki-connect
];
sync = {
autoSync = true;
+34
View File
@@ -0,0 +1,34 @@
{ 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 ../../..";
};
};
}
@@ -1,16 +1,15 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.users.msyds.discord;
let cfg = config.sydnix.users.crumb.discord;
in {
options.sydnix.users.msyds.discord = {
options.sydnix.users.crumb.discord = {
enable = lib.mkEnableOption "Discord";
};
config = lib.mkIf cfg.enable {
sydnix.discord.enable = true;
sydnix.discord.jellyfin-rpc.enable = true;
stylix.targets.nixcord.enable = false;
stylix.targets.nixcord.enable = true;
programs.nixcord = {
quickCss = ''
@@ -30,11 +29,6 @@ in {
];
plugins = {
ircColors.enable = true;
voiceMessages = {
enable = true;
echoCancellation = false;
noiseSuppression = false;
};
};
};
vesktop = {
+2 -2
View File
@@ -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 = "";
};
+24 -29
View File
@@ -13,17 +13,34 @@ in {
#
# For an overview of important files in the profile directory, see
# https://support.mozilla.org/en-US/kb/recovering-important-data-from-an-old-profile.
sydnix.impermanence.directories = [
"${config.xdg.configHome}/mozilla/firefox"
".cache/mozilla/firefox"
".mozilla"
];
sydnix.impermanence =
{ directories = [ ".mozilla/firefox/msyds" ]; };
# let p = ".mozilla/firefox/msyds";
# in {
# files = [
# # Passwords
# "${p}/key4.db"
# "${p}/logins.json"
# "${p}/logins-backup.json"
# # Site-specific permissions
# "${p}/permissions.sqlite"
# # Bookmarks, downloads and browsing history
# "${p}/places.sqlite"
# # Cached favicons for use in the history menu.
# "${p}/favicons.sqlite"
# # Cookies
# "${p}/cookies.sqlite"
# # Security certificate settings
# "${p}/cert9.db"
# # Form history (for completions)
# "${p}/formhistory.sqlite"
# ];
# };
stylix.targets.firefox.profileNames = [ "msyds" ];
programs.firefox = {
enable = true;
# configPath = "${config.xdg.configHome}/mozilla/firefox";
# Available language codes can be found on the releases page:
# https://releases.mozilla.org/pub/firefox/releases/134.0.2/linux-x86_64/xpi/.
@@ -160,8 +177,6 @@ in {
sidebery
adaptive-tab-bar-colour
adnauseam
yomitan
bitwarden
# tree-style-tab
# tab-unload-for-tree-style-tab
# tst-tab-search
@@ -224,7 +239,7 @@ in {
# Precedence of search engines.
order = [ "Kagi" "ddg" ];
default = "Kagi";
privateDefault = "Kagi";
privateDefault = "ddg";
engines = {
"Kagi" = {
urls = [{
@@ -258,26 +273,6 @@ in {
"${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "!np" ];
};
"English Wiktionary" = {
urls = [{
template = "https://en.wiktionary.org/wiki/Special:Search";
params = [
{ name = "go"; value = "Define"; }
{ name = "search"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "!wikt" "!enwikt" "!" "!wiktionary" ];
};
"" = {
urls = [{
template = "https://ko.wiktionary.org/wiki/:";
params = [
{ name = "go"; value = "Define"; }
{ name = "search"; value = "{searchTerms}"; }
];
}];
definedAliases = [ "!kowikt" "!" ];
};
};
};
+67
View File
@@ -0,0 +1,67 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.users.crumb.haskell;
in {
options.sydnix.users.crumb.haskell.enable =
lib.mkEnableOption "Haskell, à la crumb";
config = lib.mkIf cfg.enable {
# Convenient shorthand for quickly opening Haskell REPLs.
programs.bash.profileExtra = ''
# Start a GHCi REPL with the given packages made available.
ghci-with-packages () {
packages=""
while getopts 'p:h' opt; do
case "$opt" in
p)
packages="''${OPTARG}"
;;
?|h)
echo >&2 "Usage: $(basename $0) [-p packages] [-- ghci-options]"
exit 1
;;
esac
done
shift "$(($OPTIND -1))"
nix-shell -p "haskellPackages.ghcWithPackages (p: with p; [ $packages ])" \
--run "ghci $@"
}
export -f ghci-with-packages
# Run GHC with the given packages made available.
ghc-with-packages () {
packages=""
while getopts 'p:h' opt; do
case "$opt" in
p)
packages="''${OPTARG}"
;;
?|h)
echo >&2 "Usage: $(basename $0) [-p packages] [-- ghc-options]"
exit 1
;;
esac
done
shift "$(($OPTIND -1))"
nix-shell -p "haskellPackages.ghcWithPackages (p: with p; [ $packages ])" \
--run "ghc $@"
}
export -f ghc-with-packages
'';
sydnix.impermanence.cache.directories =
let xdg-cache-dir =
config.home.cacheHome
or "${config.home.homeDirectory}/.cache";
in [
# We don't want to rebuild Hackage simply due to a reboot, do we? }:)
(lib.removePrefix "${config.home.homeDirectory}/"
"${xdg-cache-dir}/cabal")
".stack"
];
};
}
+22 -1
View File
@@ -9,6 +9,14 @@ in {
type = lib.types.nullOr lib.types.path;
default = config.stylix.image;
};
# xwayland-satellite implements rootless Xwayland in a separate application,
# without the host compositor's involvement. It makes X11 windows appear as
# normal windows, just like a native Xwayland integration. While it is still
# somewhat experimental, it handles a lot of applications correctly, like
# Steam, games and Discord.
xwayland-satellite.enable =
lib.mkEnableOption "xwayland-satellite starting with Niri"
// { default = true; };
polkit.enable =
lib.mkEnableOption "Niri/Gnome Polkit" // { default = true; };
swaylock.enable =
@@ -59,17 +67,26 @@ in {
stylix.targets.swaylock.enable = cfg.swaylock.enable;
services.polkit-gnome.enable = cfg.polkit.enable;
sydnix.xwayland-satellite.enable = lib.mkDefault true;
# File-picker.
home.packages = [ pkgs.nautilus ];
systemd.user.services.xwayland-satellite =
lib.mkIf cfg.xwayland-satellite.enable {
Service.ExecStart =
["${pkgs.xwayland-satellite}/bin/xwayland-satellite"];
Unit.After = ["niri.service"];
Unit.PartOf = ["niri.service"];
Install.WantedBy = ["niri.service"];
};
programs.niri = {
settings = {
# Activates some Nixpkgs patches to help run Electron applications under
# Wayland.
environment = {
NIXOS_OZONE_WL = "1";
DISPLAY = ":0";
XDG_CURRENT_DESKTOP = "niri";
QT_QPA_PLATFORM = "wayland";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
@@ -342,6 +359,10 @@ in {
place-within-backdrop = true;
}
];
# debug = {
# wait-for-frame-completion-in-pipewire = {};
# };
};
};
};
@@ -3,7 +3,3 @@ exec loadouts/init
exec overrides/binds.cfg
exec overrides/settings.cfg
con_logfile console.log
ip 0.0.0.0
rcon_password monitor
net_start
-36
View File
@@ -1,36 +0,0 @@
{ 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 ../../..";
};
};
}
+412 -321
View File
@@ -1,330 +1,421 @@
{ config, lib, pkgs, host, ... }:
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.users.msyds.dank-material-shell;
on = hosts:
if builtins.isString hosts
then hosts == host
else builtins.elem host hosts;
let cfg = config.sydnix.users.msyds.dank-material-shell;
in {
options.sydnix.users.msyds.dank-material-shell = {
enable = lib.mkEnableOption "Dank Material Shell";
};
config = lib.mkIf cfg.enable {
programs.niri.settings = {
# Open DMS windows as floating by default
window-rules = [
{
matches = [{app-id = "#org.quickshell$";}];
open-floating = true;
}
];
# Blur wallpaper when overview is open.
layer-rules = [
{
matches = [{ namespace = "dms:blurwallpaper"; }];
place-within-backdrop = true;
}
];
spawn-at-startup = [
{
command = [
(lib.getExe' pkgs.wl-clipboard "wl-paste")
"--watch" "cliphist" "store"
];
}
];
};
stylix.targets.dank-material-shell.enable = true;
sydnix.users.crumb.niri = {
polkit.enable = false;
swaylock.enable = false;
portal.enable = false;
swaync.enable = false;
gammastep.enable = false;
binds =
let dms-ipc = config.lib.niri.actions.spawn "dms" "ipc";
in {
"Mod+D" = {
action = dms-ipc "spotlight" "toggle";
hotkey-overlay.title = "Toggle Application Launcher";
};
"Mod+P" = {
action = dms-ipc "notepad" "toggle";
hotkey-overlay.title = "Toggle Notepad";
};
"Mod+Ctrl+L" = {
action = dms-ipc "lock" "lock";
hotkey-overlay.title = "Toggle Lock Screen";
};
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action = dms-ipc "audio" "increment" "3";
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action = dms-ipc "audio" "decrement" "3";
};
"XF86AudioMute" = {
allow-when-locked = true;
action = dms-ipc "audio" "mute";
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action = dms-ipc "audio" "micmute";
};
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action = dms-ipc "brightness" "increment" "5" "";
};
"XF86MonBrightnessDown" = {
allow-when-locked = true;
action = dms-ipc "brightness" "decrement" "5" "";
};
config = lib.mkIf cfg.enable
(let
theme = {
dark = with config.lib.stylix.colors.withHashtag; {
name = "Stylix generatated dark theme";
primary = base0D;
primaryText = base00;
primaryContainer = base0C;
secondary = base0E;
surface = base01;
surfaceText = base05;
surfaceVariant = base02;
surfaceVariantText = base04;
surfaceTint = base0D;
background = base00;
backgroundText = base05;
outline = base03;
surfaceContainer = base01;
surfaceContainerHigh = base02;
surfaceContainerHighest = base03;
error = base08;
warning = base0A;
info = base0C;
} // {
primary = base06;
surfaceContainerHigh = "#2a2a37"; # Sunk Ink 2
surfaceContainerHighest = base05;
};
light = with config.lib.stylix.colors.withHashtag; {
name = "Stylix generatated light theme";
primary = base0D;
primaryText = base07;
primaryContainer = base0C;
secondary = base0E;
surface = base06;
surfaceText = base01;
surfaceVariant = base07;
surfaceVariantText = base02;
surfaceTint = base0D;
background = base07;
backgroundText = base00;
outline = base04;
surfaceContainer = base06;
surfaceContainerHigh = base05;
surfaceContainerHighest = base04;
error = base08;
warning = base0A;
info = base0C;
};
};
programs.dank-material-shell = {
enable = true;
settings = {
theme = "dark";
currentThemeName = "custom";
use24HourClock = true;
showSeconds = false;
useFahrenheit = false;
nightModeEnabled = true;
animationSpeed = 1;
customAnimationDuration = 500;
wallpaperFillMode = "Fill";
blurredWallpaperLayer = false;
blurWallpaperOnOverview = true;
showLauncherButton = true;
showWorkspaceSwitcher = true;
showFocusedWindow = true;
showWeather = false;
showMusic = true;
showClipboard = true;
showCpuUsage = true;
showMemUsage = true;
showCpuTemp = true;
showGpuTemp = true;
selectedGpuIndex = 0;
enabledGpuPciIds = [];
showSystemTray = true;
showClock = true;
showNotificationButton = true;
showBattery = true;
showControlCenterButton = true;
showCapsLockIndicator = true;
controlCenterShowNetworkIcon = true;
controlCenterShowBluetoothIcon = on ["fruitbook"];
controlCenterShowAudioIcon = true;
controlCenterShowVpnIcon = true;
controlCenterShowBrightnessIcon = false;
controlCenterShowMicIcon = false;
controlCenterShowBatteryIcon = false;
controlCenterShowPrinterIcon = false;
showPrivacyButton = true;
privacyShowMicIcon = false;
privacyShowCameraIcon = false;
privacyShowScreenShareIcon = false;
controlCenterWidgets = [
{
id = "volumeSlider";
enabled = true;
width = 50;
}
{
id = "brightnessSlider";
enabled = true;
width = 50;
}
{
id = "wifi";
enabled = true;
width = 50;
}
{
id = "bluetooth";
enabled = true;
width = 50;
}
{
id = "audioOutput";
enabled = true;
width = 50;
}
{
id = "audioInput";
enabled = true;
width = 50;
}
{
id = "nightMode";
enabled = true;
width = 50;
}
{
id = "darkMode";
enabled = true;
width = 50;
}
];
showWorkspaceIndex = false;
showWorkspacePadding = false;
workspaceScrolling = false;
showWorkspaceApps = false;
maxWorkspaceIcons = 3;
workspacesPerMonitor = true;
showOccupiedWorkspacesOnly = false;
dwlShowAllTags = false;
workspaceNameIcons = {};
waveProgressEnabled = true;
scrollTitleEnabled = true;
clockCompactMode = false;
focusedWindowCompactMode = false;
runningAppsCompactMode = true;
keyboardLayoutNameCompactMode = false;
runningAppsCurrentWorkspace = false;
runningAppsGroupByApp = false;
centeringMode = "index";
clockDateFormat = "";
lockDateFormat = "";
mediaSize = 1;
appLauncherViewMode = "list";
spotlightModalViewMode = "list";
sortAppsAlphabetically = false;
appLauncherGridColumns = 4;
spotlightCloseNiriOverview = true;
niriOverviewOverlayEnabled = true;
weatherLocation = "Arvada, Colorado";
weatherCoordinates = "39.8005505,-105.0811573";
useAutoLocation = false;
weatherEnabled = true;
networkPreference = "auto";
iconTheme = "System Default";
launcherLogoMode = "apps";
launcherLogoCustomPath = "";
launcherLogoBrightness = 0.5;
launcherLogoContrast = 1;
launcherLogoSizeOffset = 0;
fontWeight = 400;
fontScale = 1;
notepadUseMonospace = true;
notepadFontSize = 14;
notepadShowLineNumbers = false;
soundsEnabled = true;
useSystemSoundTheme = false;
soundNewNotification = true;
soundVolumeChanged = true;
soundPluggedIn = true;
lockBeforeSuspend = true;
loginctlLockIntegration = true;
fadeToLockEnabled = true;
gtkThemingEnabled = false;
qtThemingEnabled = false;
syncModeWithPortal = true;
terminalsAlwaysDark = false;
showDock = false;
dockAutoHide = false;
dockGroupByApp = false;
dockOpenOnOverview = false;
dockPosition = 1;
dockSpacing = 4;
dockBottomGap = 0;
dockMargin = 0;
dockIconSize = 40;
dockIndicatorStyle = "circle";
dockBorderEnabled = false;
dockBorderOpacity = 1;
dockBorderThickness = 1;
notificationOverlayEnabled = false;
modalDarkenBackground = true;
lockScreenShowPowerActions = true;
enableFprint = false;
maxFprintTries = 15;
lockScreenActiveMonitor = "all";
hideBrightnessSlider = false;
notificationTimeoutLow = 5000;
notificationTimeoutNormal = 5000;
notificationTimeoutCritical = 0;
notificationPopupPosition = 0;
osdAlwaysShowValue = false;
osdPosition = 5;
osdVolumeEnabled = true;
osdMediaVolumeEnabled = true;
osdBrightnessEnabled = true;
osdIdleInhibitorEnabled = true;
osdMicMuteEnabled = true;
osdCapsLockEnabled = true;
osdPowerProfileEnabled = false;
osdAudioOutputEnabled = true;
powerActionConfirm = true;
powerActionHoldDuration = 0.5;
powerMenuActions = [
"reboot"
"logout"
"poweroff"
"lock"
"suspend"
# "restart"
];
powerMenuDefaultAction = "logout";
powerMenuGridLayout = false;
displayNameMode = "system";
screenPreferences.wallpaper = [];
showOnLastDisplay = {};
barConfigs = [
{
id = "default";
name = "Main Bar";
enabled = true;
position = 2;
screenPreferences = [
"all"
];
showOnLastDisplay = true;
leftWidgets = [
"launcherButton"
"workspaceSwitcher"
"focusedWindow"
];
centerWidgets = [
"music"
"clock"
"weather"
];
rightWidgets = [
"systemTray"
"clipboard"
"cpuUsage"
"memUsage"
"notificationButton"
"battery"
"controlCenterButton"
];
spacing = 4;
innerPadding = 4;
bottomGap = 0;
squareCorners = false;
noBackground = false;
gothCornersEnabled = false;
gothCornerRadiusOverride = false;
gothCornerRadiusValue = 12;
borderEnabled = false;
borderOpacity = 1;
borderThickness = 1;
fontScale = 1;
autoHide = false;
autoHideDelay = 250;
openOnOverview = false;
visible = true;
popupGapsAuto = true;
popupGapsManual = 4;
}
];
configVersion = 2;
};
};
};
in {
programs.niri.settings = {
# Open DMS windows as floating by default
window-rules = [
{
matches = [{app-id = "#org.quickshell$";}];
open-floating = true;
}
];
# Blur wallpaper when overview is open.
layer-rules = [
{
matches = [{ namespace = "dms:blurwallpaper"; }];
place-within-backdrop = true;
}
];
spawn-at-startup = [
{
command = [
(lib.getExe' pkgs.wl-clipboard "wl-paste")
"--watch" "cliphist" "store"
];
}
];
};
sydnix.users.crumb.niri = {
polkit.enable = false;
swaylock.enable = false;
portal.enable = false;
swaync.enable = false;
gammastep.enable = false;
binds =
let dms-ipc = config.lib.niri.actions.spawn "dms" "ipc";
in {
"Mod+D" = {
action = dms-ipc "spotlight" "toggle";
hotkey-overlay.title = "Toggle Application Launcher";
};
"Mod+P" = {
action = dms-ipc "notepad" "toggle";
hotkey-overlay.title = "Toggle Notepad";
};
"Mod+Ctrl+L" = {
action = dms-ipc "lock" "lock";
hotkey-overlay.title = "Toggle Lock Screen";
};
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action = dms-ipc "audio" "increment" "3";
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action = dms-ipc "audio" "decrement" "3";
};
"XF86AudioMute" = {
allow-when-locked = true;
action = dms-ipc "audio" "mute";
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action = dms-ipc "audio" "micmute";
};
"XF86MonBrightnessUp" = {
allow-when-locked = true;
action = dms-ipc "brightness" "increment" "5" "";
};
"XF86MonBrightnessDown" = {
allow-when-locked = true;
action = dms-ipc "brightness" "decrement" "5" "";
};
};
};
sydnix.dank-material-shell = {
enable = true;
settings = {
theme = "dark";
currentThemeName = "custom";
customThemeFile =
pkgs.writeText
"dankMaterialShell-stylix-theme.json"
(builtins.toJSON theme);
popupTransparency = 1;
dockTransparency = 1;
use24HourClock = true;
showSeconds = false;
useFahrenheit = false;
nightModeEnabled = true;
animationSpeed = 1;
customAnimationDuration = 500;
wallpaperFillMode = "Fill";
blurredWallpaperLayer = false;
blurWallpaperOnOverview = true;
showLauncherButton = true;
showWorkspaceSwitcher = true;
showFocusedWindow = true;
showWeather = false;
showMusic = true;
showClipboard = true;
showCpuUsage = true;
showMemUsage = true;
showCpuTemp = true;
showGpuTemp = true;
selectedGpuIndex = 0;
enabledGpuPciIds = [];
showSystemTray = true;
showClock = true;
showNotificationButton = true;
showBattery = true;
showControlCenterButton = true;
showCapsLockIndicator = true;
controlCenterShowNetworkIcon = true;
controlCenterShowBluetoothIcon = true;
controlCenterShowAudioIcon = true;
controlCenterShowVpnIcon = true;
controlCenterShowBrightnessIcon = false;
controlCenterShowMicIcon = false;
controlCenterShowBatteryIcon = false;
controlCenterShowPrinterIcon = false;
showPrivacyButton = true;
privacyShowMicIcon = false;
privacyShowCameraIcon = false;
privacyShowScreenShareIcon = false;
controlCenterWidgets = [
{
id = "volumeSlider";
enabled = true;
width = 50;
}
{
id = "brightnessSlider";
enabled = true;
width = 50;
}
{
id = "wifi";
enabled = true;
width = 50;
}
{
id = "bluetooth";
enabled = true;
width = 50;
}
{
id = "audioOutput";
enabled = true;
width = 50;
}
{
id = "audioInput";
enabled = true;
width = 50;
}
{
id = "nightMode";
enabled = true;
width = 50;
}
{
id = "darkMode";
enabled = true;
width = 50;
}
];
showWorkspaceIndex = false;
showWorkspacePadding = false;
workspaceScrolling = false;
showWorkspaceApps = false;
maxWorkspaceIcons = 3;
workspacesPerMonitor = true;
showOccupiedWorkspacesOnly = false;
dwlShowAllTags = false;
workspaceNameIcons = {};
waveProgressEnabled = true;
scrollTitleEnabled = true;
clockCompactMode = false;
focusedWindowCompactMode = false;
runningAppsCompactMode = true;
keyboardLayoutNameCompactMode = false;
runningAppsCurrentWorkspace = false;
runningAppsGroupByApp = false;
centeringMode = "index";
clockDateFormat = "";
lockDateFormat = "";
mediaSize = 1;
appLauncherViewMode = "list";
spotlightModalViewMode = "list";
sortAppsAlphabetically = false;
appLauncherGridColumns = 4;
spotlightCloseNiriOverview = true;
niriOverviewOverlayEnabled = true;
weatherLocation = "Arvada, Colorado";
weatherCoordinates = "39.8005505,-105.0811573";
useAutoLocation = false;
weatherEnabled = true;
networkPreference = "auto";
vpnLastConnected = "";
iconTheme = "System Default";
launcherLogoMode = "apps";
launcherLogoCustomPath = "";
launcherLogoColorOverride = "";
launcherLogoColorInvertOnMode = false;
launcherLogoBrightness = 0.5;
launcherLogoContrast = 1;
launcherLogoSizeOffset = 0;
fontFamily = "Inter Variable";
monoFontFamily = "Fira Code";
fontWeight = 400;
fontScale = 1;
notepadUseMonospace = true;
notepadFontFamily = "";
notepadFontSize = 14;
notepadShowLineNumbers = false;
notepadTransparencyOverride = -1;
notepadLastCustomTransparency = 0.7;
soundsEnabled = true;
useSystemSoundTheme = false;
soundNewNotification = true;
soundVolumeChanged = true;
soundPluggedIn = true;
acMonitorTimeout = 0;
acLockTimeout = 0;
acSuspendTimeout = 0;
acSuspendBehavior = 0;
acProfileName = "";
batteryMonitorTimeout = 0;
batteryLockTimeout = 0;
batterySuspendTimeout = 0;
batterySuspendBehavior = 0;
batteryProfileName = "";
lockBeforeSuspend = false;
loginctlLockIntegration = true;
fadeToLockEnabled = false;
fadeToLockGracePeriod = 5;
launchPrefix = "";
brightnessDevicePins = {};
wifiNetworkPins = {};
bluetoothDevicePins = {};
audioInputDevicePins.preferredInput =
"alsa_input.usb-Generic_Blue_Microphones_2041BAB03EZ8-00.analog-stereo";
audioOutputDevicePins.preferredOutput =
"alsa_output.usb-Jieli_Technology_CA-2890_USB_Speaker_Bar_4250315A3537380E-00.analog-stereo";
gtkThemingEnabled = false;
qtThemingEnabled = false;
syncModeWithPortal = true;
terminalsAlwaysDark = false;
showDock = false;
dockAutoHide = false;
dockGroupByApp = false;
dockOpenOnOverview = false;
dockPosition = 1;
dockSpacing = 4;
dockBottomGap = 0;
dockMargin = 0;
dockIconSize = 40;
dockIndicatorStyle = "circle";
dockBorderEnabled = false;
dockBorderColor = "surfaceText";
dockBorderOpacity = 1;
dockBorderThickness = 1;
notificationOverlayEnabled = false;
modalDarkenBackground = true;
lockScreenShowPowerActions = true;
enableFprint = false;
maxFprintTries = 15;
lockScreenActiveMonitor = "all";
lockScreenInactiveColor = "#000000";
hideBrightnessSlider = false;
notificationTimeoutLow = 5000;
notificationTimeoutNormal = 5000;
notificationTimeoutCritical = 0;
notificationPopupPosition = 0;
osdAlwaysShowValue = false;
osdPosition = 5;
osdVolumeEnabled = true;
osdMediaVolumeEnabled = true;
osdBrightnessEnabled = true;
osdIdleInhibitorEnabled = true;
osdMicMuteEnabled = true;
osdCapsLockEnabled = true;
osdPowerProfileEnabled = false;
osdAudioOutputEnabled = true;
powerActionConfirm = true;
powerActionHoldDuration = 0.5;
powerMenuActions = [
"reboot"
"logout"
"poweroff"
"lock"
"suspend"
"restart"
];
powerMenuDefaultAction = "logout";
powerMenuGridLayout = false;
customPowerActionLock = "";
customPowerActionLogout = "";
customPowerActionSuspend = "";
customPowerActionHibernate = "";
customPowerActionReboot = "";
customPowerActionPowerOff = "";
updaterUseCustomCommand = false;
updaterCustomCommand = "";
updaterTerminalAdditionalParams = "";
displayNameMode = "system";
screenPreferences.wallpaper = [];
showOnLastDisplay = {};
barConfigs = [
{
id = "default";
name = "Main Bar";
enabled = true;
position = 2;
screenPreferences = [
"all"
];
showOnLastDisplay = true;
leftWidgets = [
"launcherButton"
"workspaceSwitcher"
"focusedWindow"
];
centerWidgets = [
"music"
"clock"
"weather"
];
rightWidgets = [
"systemTray"
"clipboard"
"cpuUsage"
"memUsage"
"notificationButton"
"battery"
"controlCenterButton"
];
spacing = 4;
innerPadding = 4;
bottomGap = 0;
transparency = 1;
widgetTransparency = 1;
squareCorners = false;
noBackground = false;
gothCornersEnabled = false;
gothCornerRadiusOverride = false;
gothCornerRadiusValue = 12;
borderEnabled = false;
borderColor = "surfaceText";
borderOpacity = 1;
borderThickness = 1;
fontScale = 1;
autoHide = false;
autoHideDelay = 250;
openOnOverview = false;
visible = true;
popupGapsAuto = true;
popupGapsManual = 4;
}
];
configVersion = 2;
};
};
});
}
-15
View File
@@ -31,17 +31,6 @@ 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;
@@ -51,10 +40,6 @@ in {
pkgs.nerd-fonts.victor-mono
pkgs.ibm-plex
];
extraWrapProgramArgs = [
"--set" "ESHELL_ALIASES_FILE"
config.home.sessionVariables.ESHELL_ALIASES_FILE
];
};
};
}
+1 -13
View File
@@ -3,7 +3,6 @@
(syd-require-features
'(syd/base
syd/constants
syd/fcitx
syd/dash
syd/disable-package
syd/straight
@@ -12,7 +11,6 @@
syd/on
syd/prelude
syd/use-package
syd/cc
syd/line-numbers
syd/kanagawa
syd/comint
@@ -32,7 +30,6 @@
syd/which-key
syd/tramp
syd/handle
syd/flycheck
syd/org
syd/org/roam
syd/org/agenda
@@ -52,7 +49,6 @@
syd/direnv
syd/ligature
syd/clojure
syd/auctex
syd/lisp
syd/minibuffer
syd/auto-save
@@ -63,17 +59,9 @@
syd/wgrep
syd/nix
syd/backup
syd/flycheck
syd/agda
syd/rust
syd/eshell
syd/treesit
syd/grammatical-framework
syd/tabs
syd/lsp
syd/custom
syd/transient
syd/scheme
syd/bookmark
syd/haskell
syd/qbe))
syd/custom))
@@ -1,22 +0,0 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package auctex)
(use-package tex
:straight nil ; Part of auctex.
:config
(add-to-list 'TeX-view-program-selection '(output-pdf "Sioyek"))
(add-to-list
'TeX-command-list
'("Make" "make" TeX-run-TeX
nil (LaTeX-mode docTeX-mode) :help "Run Make"))
(add-to-list
'TeX-command-list
'("Shake" "shake" TeX-run-TeX
nil (LaTeX-mode docTeX-mode) :help "Run Shake")))
(use-package auctex-latexmk)
(provide 'syd/auctex)
@@ -1,10 +0,0 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package bookmark
:straight nil
:custom ((bookmark-default-file
(file-name-concat syd-data-dir "bookmarks"))))
(provide 'syd/bookmark)
@@ -1,9 +0,0 @@
;;; -*- lexical-binding: t -*-
(require 'syd/base)
(require 'syd/lsp)
(with-eval-after-load 'cc-mode
(add-hook 'c-mode-hook #'lsp-deferred))
(provide 'syd/cc)
@@ -1,7 +1,6 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(require 'syd/handle)
(require 'syd/popups)
(require 'syd/leader)
@@ -21,38 +20,21 @@
(use-package cider
:after clojure-mode
:config
(defun syd-clojure-doc (arg)
(interactive "P")
(cider-doc arg)
cider-doc-buffer)
(defun syd-clojure-eval-region (beg end)
(cider-eval-region beg end))
(syd-handle '(clojure-mode clojurescript-mode cider-repl-mode)
:docs #'cider-doc
:eval-region #'syd-clojure-eval-region
:load-buffer #'cider-load-buffer)
(add-hook 'cider-repl-mode-hook #'syd-lisp-mode)
(syd-push shackle-rules
`("*cider-doc*" ,@syd-help-popup-options)
'("*cider-test-report*")
'("*cider-error*"))
(defun syd-clojure-classpath-relative-file-name (file-name)
(when (and cider-mode (cider-nrepl-eval-session))
(let ((prefixes (-filter #'file-directory-p
(cider-classpath-entries))))
(cl-loop for classpath-entry in prefixes
for prefix = (file-name-as-directory classpath-entry)
when (string-prefix-p prefix file-name)
return (string-remove-prefix prefix file-name)))))
(add-to-list 'syd-insert-file-name-alist
`(,#'syd-clojure-classpath-relative-file-name
. "Classpath-relative")))
`("*cider-doc*" ,@syd-help-popup-options)
'("*cider-test-report*")
'("*cider-error*")))
(use-package cider-mode
:straight nil ; Part of `cider'.
@@ -126,16 +108,4 @@
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)
(dolist (x '(("p" . "babashka.process")
("fs" . "babashka.fs")))
(add-to-list 'cljr-magic-require-namespaces x)))
(provide 'syd/clojure)
@@ -1,7 +1,4 @@
;; -*- lexical-binding: t -*-
(require 'syd/base)
(require 'syd/popups)
;;; -*- lexical-binding: t -*-
(setq
;; Log native-compiler warnings, but don't display the buffer. Most of the
@@ -11,7 +8,4 @@
;; 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,9 +150,7 @@ 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-aliases-file (or (getenv "ESHELL_ALIASES_FILE")
eshell-aliases-file)))
(eshell-prompt-regexp syd-eshell--prompt-regexp))
:general
(:keymaps 'syd-leader-open-map
"e" #'syd-toggle-eshell)
@@ -1,10 +0,0 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package fcitx
:config
(setq fcitx-remote-command "fcitx5-remote")
(fcitx-aggressive-setup))
(provide 'syd/fcitx)
@@ -1,14 +0,0 @@
;;; -*- lexical-binding: t -*-
(require 'syd/base)
(require 'syd/popups)
;; Nicer error messages, integrates with `lsp-mode'
(use-package flycheck
:custom ((flycheck-highlighting-mode nil))
:general
(:states '(motion normal)
"[ e" #'flycheck-previous-error
"] e" #'flycheck-next-error))
(provide 'syd/flycheck)
@@ -12,21 +12,15 @@
(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)))
(set-fontset-font
t '(#xF1900 . #xF19FF)
syd-sitelen-pona-font))
:width 'normal :weight 'normal
:slant 'normal :font font))))
(let ((hook-point (if (daemonp)
'server-after-make-frame-hook
@@ -1,68 +0,0 @@
;; -*- lexical-binding: t; -*-
(require 'syd/base)
(require 'syd/handle)
(defun syd-haskell-open-repl ()
"Open a Haskell REPL."
(interactive)
(require 'inf-haskell)
(run-haskell))
(defun syd-haskell-evil-open-above ()
"Opens a line above the current, following Haskell-mode's indentation"
(interactive)
(evil-beginning-of-line)
(haskell-indentation-newline-and-indent)
(evil-previous-line)
(haskell-indentation-indent-line)
(evil-append-line nil))
(defun syd-haskell-evil-open-below ()
"Opens a line below the current, following Haskell-mode's indentation"
(interactive)
(evil-append-line nil)
(haskell-indentation-newline-and-indent))
(defun syd-haskell-hoogle-start-server ()
(interactive)
(require 'haskell-hoogle)
(haskell-hoogle-start-server)
(browse-url-xdg-open (format "http://localhost:%d"
haskell-hoogle-port-number))
(message "Hoogle started on localhost:%d" haskell-hoogle-port-number))
(use-package haskell-mode
:mode (("\\.l?hs'" . haskell-literate-mode)
("\\.hs'" . haskell-mode))
:custom (; Show errors in REPL, not popup buffers.
(haskell-interactive-popup-errors nil)
(haskell-process-suggest-remove-import-line t)
(haskell-process-auto-import-loaded-modules t))
:general
(:keymaps 'haskell-mode-map
:states '(normal visual motion emacs insert)
:major-modes t
:prefix syd-localleader-key
:non-normal-prefix syd-alt-localleader-key
"c" #'haskell-cabal-visit-file
"h s" #'syd-haskell-hoogle-start-server
"h q" #'haskell-hoogle-kill-server)
(:keymaps 'interactive-haskell-mode-map
:states '(normal insert)
"C-j" #'haskell-interactive-mode-history-next
"C-k" #'haskell-interactive-mode-history-previous)
(:keymaps 'haskell-mode-map
:states 'normal
[remap evil-open-above] #'syd-haskell-evil-open-above
[remap evil-open-below] #'syd-haskell-evil-open-below)
:config
(add-to-list 'completion-ignored-extensions ".hi"))
(use-package lsp-haskell
:defer t
:custom ((lsp-haskell-server-path "haskell-language-server"))
:init
(add-hook 'haskell-mode-hook #'lsp-deferred 'append)
(add-hook 'haskell-literate-mode-hook #'lsp-deferred 'append))
(provide 'syd/haskell)
@@ -69,8 +69,7 @@
(general-def
:prefix-map 'syd-leader-insert-map
"u" #'insert-char
"e" #'emoji-insert
"p" #'syd-insert-file-name)
"e" #'emoji-insert)
;; This is necessary to properly rebind `universal-argument'.
;; `universal-argument-more' is a command that provides additional prefixes
@@ -5,33 +5,22 @@
(use-package ligature
:config
(ligature-set-ligatures 'prog-mode
'("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||="
"||>" ":::" "::=" "=:=" "===" "==>" "=!=" "=>>"
"=<<" "=/=" "!==" "!!." ">=>" ">>=" ">>>" ">>-"
">->" "->>" "-->" "---" "-<<" "<~~" "<~>" "<*>"
"<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" "<--"
"<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_("
"..<" "..." "+++" "/==" "///" "_|_" "www" "&&" "^="
"~~" "~@" "~=" "~>" "~-" "**" "*>" "*/" "||" "|}"
"|]" "|=" "|>" "|-" "{|" "[|" "]#" "::" ":=" ":>"
":<" "$>" "==" "=>" "!=" "!!" ">:" ">=" ">>" ">-"
"-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" "<$"
"<=" "<>" "<-" "<<" "<+" "</" "#{" "#[" "#:" "#="
"#!" "##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?"
"+>" "++" "?:" "?=" "?." "??" ";;" ";;;"
"/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
"\\\\" "://"))
;; Sitelen pona glyphs.
(rx-let ((ideograph (any (#xF1900 . #xF198C)))
(tok-punct (any "󱦜" "󱦝"))
(arrow (any "←-↙"))
(zwj ""))
(ligature-set-ligatures
'fundamental-mode
`(("󱦐" ,(rx (* (or ideograph tok-punct))))
("󱥍" ,(rx "󱦗" (* (or ideograph tok-punct)) "󱦘"))
("󱥁" ,(rx zwj arrow))
("󱤑" ,(rx zwj ideograph)))))
'("|||>" "<|||" "<==>" "<!--" "####" "~~>" "***" "||="
"||>" ":::" "::=" "=:=" "===" "==>" "=!=" "=>>"
"=<<" "=/=" "!==" "!!." ">=>" ">>=" ">>>" ">>-"
">->" "->>" "-->" "---" "-<<" "<~~" "<~>" "<*>"
"<||" "<|>" "<$>" "<==" "<=>" "<=<" "<->" "<--"
"<-<" "<<=" "<<-" "<<<" "<+>" "</>" "###" "#_("
"..<" "..." "+++" "/==" "///" "_|_" "www" "&&" "^="
"~~" "~@" "~=" "~>" "~-" "**" "*>" "*/" "||" "|}"
"|]" "|=" "|>" "|-" "{|" "[|" "]#" "::" ":=" ":>"
":<" "$>" "==" "=>" "!=" "!!" ">:" ">=" ">>" ">-"
"-~" "-|" "->" "--" "-<" "<~" "<*" "<|" "<:" "<$"
"<=" "<>" "<-" "<<" "<+" "</" "#{" "#[" "#:" "#="
"#!" "##" "#(" "#?" "#_" "%%" ".=" ".-" ".." ".?"
"+>" "++" "?:" "?=" "?." "??" ";;" ";;;"
"/*" "/=" "/>" "//" "__" "~~" "(*" "*)"
"\\\\" "://"))
(global-ligature-mode 1))
(provide 'syd/ligature)
+1 -12
View File
@@ -2,7 +2,6 @@
(require 'syd/base)
(require 'syd/popups)
(require 'syd/handle)
(use-package lsp-mode
:init
@@ -36,16 +35,6 @@
(syd-push
shackle-rules
`(("*lsp-help*" "*lsp-install*")
:select nil :size 0.42 :popup t :align bottom))
(defun syd-lsp-handle-docs ()
(interactive)
(save-excursion
(when evil-mode (forward-char)) ; evil-mode cope
(lsp-describe-thing-at-point))
(with-current-buffer (get-buffer "*lsp-help*")
(and (not (string-empty-p (string-trim (buffer-string))))
(current-buffer))))
(syd-handle 'lsp-mode
:docs #'syd-lsp-handle-docs))
,@syd-help-popup-options)))
(provide 'syd/lsp)
@@ -1,9 +0,0 @@
;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package markdown-mode
:config
(add-hook 'markdown-mode-hook #'syd-prose-mode))
(provide 'syd/markdown)
@@ -80,8 +80,7 @@
: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)))))
(org-roam-link-auto-replace nil))
:target (file ,default-target-file-name))))))
:config
(add-to-list 'org-agenda-files org-roam-directory)
(with-eval-after-load 'org-roam-dailies
@@ -193,74 +193,4 @@ form."
(cons mode (intern (concat (match-string 1 s) "-ts-mode"))))
(error "Symbol `%c' is not a mode." mode))))
(defun syd--insert-file-name-annotation (descs)
(when descs
(let ((s (string-join descs ", ")))
(concat
" "
(propertize " " 'display `(space :align-to (- right ,(+ 1 (length s)))))
s))))
(defun syd-project-relative-file-name (file-name)
(file-relative-name file-name (project-root (project-current))))
(defvar syd-insert-file-name-alist
`((,#'syd-project-relative-file-name . "Project-relative")
(,#'file-relative-name . "File-relative")
(,#'identity . "Absolute"))
"List of pairs where each cons is a function mapping paths to paths
or nil, and each cons is a string description.")
(defun syd--evaluate-syd-insert-file-name-alist (path)
(cl-loop for (fn . lbl) in syd-insert-file-name-alist
for r = (funcall fn path)
when r
collect (cons r lbl)))
(defun syd-insert-file-name ()
(interactive)
(let* ((path (expand-file-name
(read-file-name "Path: " nil nil 'confirm)))
(choose-a-dir "... (choose a dir)")
(alts (cons `(,choose-a-dir)
(syd--evaluate-syd-insert-file-name-alist path)))
(choice
(completing-read
"Variant: "
(lambda (s p flag)
(pcase flag
('metadata
`(metadata
(annotation-function
. ,(lambda (s)
(let ((descs
(cl-loop for (p . lbl) in alts
when (equal p s)
collect lbl)))
(syd--insert-file-name-annotation
descs))))))
(_ (all-completions s (mapcar #'car alts) p)))))))
(if (equal choice choose-a-dir)
(insert (file-relative-name
path (read-file-name "Relative to: " nil nil
'confirm)))
(insert choice))))
(defun syd-import-systemd-environment ()
(interactive)
(with-temp-buffer
(shell-command "systemctl --user show-environment" (current-buffer))
(goto-char (point-min))
(while (re-search-forward
(rx bol (group (+ (not "=")))
"="
(or (and "$'" (group (* (not "'"))) "'")
(group (* any)))
eol)
nil t)
(let ((var (match-string 1))
(val (or (match-string 2)
(match-string 3))))
(setenv var val)))))
(provide 'syd/prelude)
@@ -1,7 +1,6 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(require 'syd/keymaps)
(require 'syd/completion) ; For `consult'.
(require 'consult)
@@ -1,12 +0,0 @@
;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package qbe-mode
:mode "\\.qbe\\'"
:straight (:type git
:host github
:repo "mbknust/qbe-mode")
:config
(add-hook 'qbe-mode-hook #'indent-tabs-mode))
(provide 'syd/qbe)
@@ -1,11 +0,0 @@
;;; -*- lexical-binding: t -*-
(require 'syd/base)
(require 'syd/lsp)
(use-package rust-mode
:custom ((rust-mode-treesitter-derive t))
:config
(add-hook 'rust-mode-hook #'lsp-deferred))
(provide 'syd/rust)
@@ -1,27 +0,0 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(require 'syd/handle)
(require 'syd/popups)
(require 'syd/leader)
(use-package geiser
:config
(add-hook 'scheme-mode-hook #'syd-lisp-mode)
(defun syd-scheme-eval-region (beg end)
(geiser-eval-region beg end))
(defun syd-scheme-doc ()
(interactive)
(geiser-doc-symbol-at-point)
(geiser-doc--buffer))
(syd-handle '(scheme-mode)
:docs #'syd-scheme-doc
:eval-region #'syd-scheme-eval-region
:load-buffer #'geiser-eval-buffer)
(syd-push
shackle-rules
`("*Geiser Documentation*" ,@syd-help-popup-options)))
(use-package geiser-guile)
(provide 'syd/scheme)
@@ -1,7 +0,0 @@
;;; -*- lexical-binding: t -*-
(require 'syd/base)
;; Disable tabs by default.
(setq-default indent-tabs-mode nil)
(provide 'syd/tabs)
@@ -1,10 +0,0 @@
;;; -*- lexical-binding: t; -*-
(require 'syd/base)
(use-package transient
:straight nil
:custom ((transient-history-file
(file-name-concat syd-data-dir "transient/history.el"))))
(provide 'syd/transient)
-20
View File
@@ -1,20 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.users.msyds.sioyek;
in {
options.sydnix.users.msyds.sioyek = {
enable = lib.mkEnableOption "Sioyek";
};
config = lib.mkIf cfg.enable {
programs.sioyek = {
enable = true;
bindings = {
"move_down" = "j";
"move_up" = "k";
"screen_down" = [ "d" "<C-d>" ];
"screen_up" = [ "u" "<C-u>" ];
};
};
};
}
-14
View File
@@ -1,14 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.users.msyds.zathura;
in {
options.sydnix.users.msyds.zathura = {
enable = lib.mkEnableOption "Zathura";
};
config = lib.mkIf cfg.enable {
programs.zathura = {
enable = true;
};
};
}
-38
View File
@@ -1,38 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.xwayland-satellite;
in {
options.sydnix.xwayland-satellite = {
# xwayland-satellite implements rootless Xwayland in a separate
# application, without the host compositor's involvement. It makes
# X11 windows appear as normal windows, just like a native
# Xwayland integration. While it is still somewhat experimental,
# it handles a lot of applications correctly, like Steam, games
# and Discord.
enable = lib.mkEnableOption "XWayland outside your Wayland";
};
config = lib.mkIf cfg.enable {
systemd.user.services.xwayland-satellite =
let xwayland-satellite =
pkgs.xwayland-satellite.override { withSystemd = true; };
in {
Unit = {
Description = "Xwayland outside your Wayland";
BindsTo = [ "graphical-session.target" ];
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
Requisite = [ "graphical-session.target" ];
};
Service = {
Type = "notify";
NotifyAccess = "all";
ExecStart = lib.getExe xwayland-satellite;
StandardOutput = "journal";
ExecStartPost = "systemctl --user set-environment DISPLAY=:0";
ExecStop = "systemctl --user unset-environment DISPLAY";
};
Install.WantedBy = [ "graphical-session.target" ];
};
};
}
-12
View File
@@ -1,12 +0,0 @@
{ 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;
};
}
+2
View File
@@ -7,6 +7,8 @@ in {
};
config = lib.mkIf cfg.enable {
services.blueman.enable = true;
hardware.bluetooth = {
enable = true;
powerOnBoot = true;
+2 -38
View File
@@ -7,51 +7,15 @@ in {
};
config = lib.mkIf cfg.enable {
programs.dank-material-shell = {
programs.dms-shell = {
enable = true;
enableDynamicTheming = false;
systemd = {
enable = true;
restartIfChanged = true;
};
};
# Start after xwayland-satellite, if possible. So DMS can start
# with the DISPLAY env var set.
systemd.user.services.dms = {
wants = ["xwayland-satellite.service"];
after = ["xwayland-satellite.service"];
};
# services.greetd.settings.default_session.command = "";
services.displayManager.dms-greeter = {
enable = true;
compositor = {
name = assert config.sydnix.niri.enable; "niri";
# see: https://github.com/AvengeMedia/DankMaterialShell/commit/5ceb908b8b69c253e259b5437020192dcad4bfde
customConfig = ''
hotkey-overlay {
skip-at-startup
}
environment {
DMS_RUN_GREETER "1"
}
gestures {
hot-corners {
off
}
}
layout {
background-color "#000000"
}
'';
};
compositor.name = assert config.sydnix.niri.enable; "niri";
configHome = "/home/msyds"; # Really stupid.
logs = {
save = true;
path = "/var/lib/dms-greeter/log";
};
};
};
}
+4 -2
View File
@@ -1,10 +1,12 @@
{ config, lib, pkgs, ... }:
with lib;
let cfg = config.sydnix.deertopia.bepasty;
in {
options = {
sydnix.deertopia.bepasty = {
enable = lib.mkEnableOption "Bepasty";
enable = mkEnableOption "Bepasty";
port = lib.mkOption {
default = 22018;
@@ -17,7 +19,7 @@ in {
};
};
config = lib.mkIf cfg.enable {
config = mkIf cfg.enable {
sydnix.sops.secrets.bepasty-secret-key = {};
sydnix.sops.secrets.bepasty-secret-config = {};
+2 -52
View File
@@ -1,8 +1,6 @@
{ config, lib, pkgs, ... }:
let
cfg = config.sydnix.deertopia.gitea;
commas = lib.concatStringsSep ",";
let cfg = config.sydnix.deertopia.gitea;
in {
options.sydnix.deertopia.gitea = {
enable = lib.mkEnableOption "Gitea";
@@ -42,18 +40,11 @@ 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 dear Astrid ♥!!!!!
mailerPasswordFile = config.sops.secrets.gitea-mailer-password.path;
appName = "GupHub"; # Name per my darling Colestar ♥
settings = {
server = {
ROOT_URL = "https://git.deertopia.net/";
@@ -62,48 +53,7 @@ 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";
};
};
};
};
+1 -4
View File
@@ -27,10 +27,7 @@ in {
soulseek.description = ''
hi }:). i share my entire media directory, with a good
amount of non-music stuff. this account is for a slskd
instance i leave running 24/7. apologies in advance if your
messages take weeks to reach me.
don't feel bad about queuing in large batches!
instance i leave running 24/7.
a while back, i reconfigured both my network setup and my
share directories, forgetting to update them in soulseek.
-47
View File
@@ -1,47 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.deertopia.vaultwarden;
in {
options.sydnix.deertopia.vaultwarden = {
enable = lib.mkEnableOption "Vaultwarden";
};
config = lib.mkIf cfg.enable {
services.vaultwarden = {
enable = true;
config = {
ROCKET_ADDRESS = "127.0.0.1";
ROCKET_PORT = 8222;
DOMAIN = "https://vault.deertopia.net";
};
backupDir = "/var/backup/vaultwarden";
};
sydnix.impermanence.directories = [
config.services.vaultwarden.backupDir
"/var/lib/bitwarden_rs"
];
services.nginx.upstreams.vaultwarden.servers =
let port = toString config.services.vaultwarden.config.ROCKET_PORT;
in {
"127.0.0.1:${port}" = { };
};
sydnix.deertopia.nginx.vhosts."vault".vhost = {
forceSSL = true;
enableACME = true;
locations = {
"/".proxyPass = "http://vaultwarden";
"= /notifications/anonymous-hub" = {
proxyPass = "http://vaultwarden";
proxyWebsockets = true;
};
"= /notifications/hub" = {
proxyPass = "http://vaultwarden";
proxyWebsockets = true;
};
};
};
};
}
+21 -67
View File
@@ -3,51 +3,13 @@
let
cfg = config.sydnix.gitea-actions-runner;
container-name = "gitea-actions-runner";
gitea-actions-runner-uid = 991;
gitea-actions-runner-gid = 989;
token-file = config.sops.secrets.gitea-actions-runner-token.path;
in {
options.sydnix.gitea-actions-runner = {
enable = lib.mkEnableOption "Gitea actions runner";
instance-name = lib.mkOption {
type = lib.types.str;
default = config.networking.hostName;
description = ''
The name of the runner instance name.
'';
};
user.name = lib.mkOption {
type = lib.types.str;
default = "gitea-actions-runner";
description = ''
The name of the user gitea-actions-runner should run under.
'';
};
user.uid = lib.mkOption {
type = lib.types.int;
default = 991;
description = ''
The UID of the user gitea-actions-runner should run under.
This must be known at evaluation time so that the same UID can
be used both on the host and in the container, allowing the
container to access the host's nix-daemon.
'';
};
group.name = lib.mkOption {
type = lib.types.str;
default = "gitea-actions-runner";
description = ''
The name of the group gitea-actions-runner should run under.
'';
};
group.gid = lib.mkOption {
type = lib.types.int;
default = 989;
description = ''
The GID of the group gitea-actions-runner should run under.
This must be known at evaluation time so that the same GID can
be used both on the host and in the container, allowing the
container to access the host's nix-daemon.
'';
};
};
config = lib.mkIf cfg.enable {
@@ -55,7 +17,7 @@ in {
sydnix.impermanence.directories = [ "/var/lib/gitea-actions-runner" ];
containers."gitea-actions-runner" = {
containers.${container-name} = {
autoStart = true;
ephemeral = true;
@@ -73,9 +35,9 @@ in {
config = { config, lib, pkgs, ... }: {
system.stateVersion = "25.11";
services.gitea-actions-runner.instances.${cfg.instance-name} = {
services.gitea-actions-runner.instances.sydpc = {
enable = true;
name = cfg.instance-name;
name = "sydpc";
url = "https://git.deertopia.net/";
tokenFile = token-file;
labels = [ "nixos:host" ];
@@ -94,27 +56,23 @@ in {
# Disable dynamic user so runner state persists via bind mount
assertions = [{
assertion =
config.systemd.services.gitea-actions-runner-sydpc.enable;
assertion = config.systemd.services.gitea-actions-runner-sydpc.enable;
message = ''
Expected systemd service 'gitea-actions-runner-sydpc' is
not enabled the gitea-actions-runner NixOS module may
have changed its naming scheme.
Expected systemd service 'gitea-actions-runner-sydpc' is not
enabled the gitea-actions-runner module may have changed
its naming scheme.
'';
}];
systemd.services.gitea-actions-runner-sydpc.serviceConfig.DynamicUser
= lib.mkForce false;
users.users.${cfg.user.name} = {
uid = cfg.user.uid;
users.users.gitea-actions-runner = {
uid = gitea-actions-runner-uid;
home = "/var/lib/gitea-actions-runner";
group = cfg.group.name;
group = "gitea-actions-runner";
isSystemUser = true;
createHome = true;
};
users.groups.gitea-actions-runner.gid = cfg.group.gid;
users.groups.gitea-actions-runner.gid = gitea-actions-runner-gid;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
@@ -123,27 +81,23 @@ in {
nodejs
jq
attic-client
omnix
];
};
};
# Needs to be outside of the container because container uses's
# the host's nix-daemon
nix.settings.trusted-users = [
cfg.user.name
];
nix.settings.trusted-users = [ "gitea-actions-runner" ];
# Matching user on host — the container's gitea-actions-runner UID
# must be recognized by the host's nix-daemon as trusted (shared
# UID namespace)
users.users.${cfg.user.name} = {
uid = cfg.user.uid;
# Matching user on host — the container's gitea-actions-runner UID must be
# recognized by the host's nix-daemon as trusted (shared UID namespace)
users.users.gitea-actions-runner = {
uid = gitea-actions-runner-uid;
home = "/var/lib/gitea-actions-runner";
group = cfg.group.name;
group = "gitea-actions-runner";
isSystemUser = true;
createHome = true;
};
users.groups.${cfg.group.name}.gid = cfg.group.gid;
users.groups.gitea-actions-runner.gid = gitea-actions-runner-gid;
};
}
-17
View File
@@ -1,17 +0,0 @@
{ config, lib, pkgs, ... }:
let cfg = config.sydnix.gtav-battleye-hack;
in {
options.sydnix.gtav-battleye-hack = {
enable = lib.mkEnableOption
"Grand Theft Auto V Online BattlEye workaround";
};
config = lib.mkIf cfg.enable {
networking.hosts."0.0.0.0" = [
"paradise-s1.battleye.com"
"test-s1.battleye.com"
"paradiseenhanced-s1.battleye.com"
];
};
}
+27 -66
View File
@@ -24,75 +24,36 @@ in {
};
config = mkIf cfg.enable {
boot.initrd.systemd = {
services.impermance-btrfs-rolling-root = {
description = "Archiving existing BTRFS root subvolume and creating a fresh one";
unitConfig.DefaultDependencies = false;
serviceConfig = {
# The script needs to run to completion before this service
# is done
Type = "oneshot";
# NOTE: to be able to see errors in your script do this
StandardOutput = "journal+console";
StandardError = "journal+console";
};
# This service is required for boot to succeed
requiredBy = ["initrd.target"];
# Should complete before any file systems are mounted
before = ["sysroot.mount"];
boot.initrd.postDeviceCommands = ''
# Mount the btrfs filesystem.
mkdir -p /btrfs-tmp
mount -t btrfs "${cfg.device}" /btrfs-tmp
# Wait until the root device is available
# If you're altering a different device, specify its device unit explicitly.
# see: systemd-escape(1)
requires = ["initrd-root-device.target"];
after = [
"initrd-root-device.target"
# Allow hibernation to resume before trying to alter any data
"local-fs-pre.target"
];
# If the moribund subvolume exists, send it do 'death row' (old-roots),
# where live for about three days before its eventual deletion.
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
mkdir -p /btrfs-tmp/old-roots
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
fi
script = ''
# Mount the btrfs filesystem.
mkdir -p /btrfs-tmp
mount -t btrfs "${cfg.device}" /btrfs-tmp
delete_subvolume_recursively() {
IFS=$'\n'
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
delete_subvolume_recursively "/btrfs-tmp/$i"
done
btrfs subvolume delete "$1"
}
# If the moribund subvolume exists, send it do 'death row' (old-roots),
# where live for about three days before its eventual deletion.
if [[ -e "/btrfs-tmp/${cfg.subvolume}" ]]; then
mkdir -p /btrfs-tmp/old-roots
timestamp=$(date --date="@$(stat -c %Y "/btrfs-tmp/${cfg.subvolume}")" "+%Y-%m-%-d_%H:%M:%S")
mv "/btrfs-tmp/${cfg.subvolume}" "/btrfs-tmp/old-roots/$timestamp"
fi
# Delete previous roots older than three days.
# TODO: I would prefer archiving the last N previous roots, rather than
# time.
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
delete_subvolume_recursively "$i"
done
delete_subvolume_recursively() {
IFS=$'\n'
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
delete_subvolume_recursively "/btrfs-tmp/$i"
done
btrfs subvolume delete "$1"
}
# Delete previous roots older than three days.
# TODO: I would prefer archiving the last N previous roots, rather than
# time.
for i in $(find /btrfs-tmp/old-roots/ -maxdepth 1 -mtime +3); do
delete_subvolume_recursively "$i"
done
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
umount /btrfs-tmp
'';
};
# NOTE: path = [...]; doesnt work for initrd, use full paths in
# your script or extraBin
extraBin = {
"mkdir" = "${pkgs.coreutils}/bin/mkdir";
"date" = "${pkgs.coreutils}/bin/date";
"stat" = "${pkgs.coreutils}/bin/stat";
"mv" = "${pkgs.coreutils}/bin/mv";
"find" = "${pkgs.findutils}/bin/find";
"btrfs" = "${pkgs.btrfs-progs}/bin/btrfs";
};
};
btrfs subvolume create "/btrfs-tmp/${cfg.subvolume}"
umount /btrfs-tmp
'';
};
}
+1 -1
View File
@@ -14,7 +14,7 @@ in {
package = pkgs.niri-unstable;
};
# security.pam.services.swaylock = {};
security.pam.services.swaylock = {};
};
}
-2
View File
@@ -22,13 +22,11 @@ in {
"https://nix-community.cachix.org"
"https://cache.nixos.org"
"https://cache.iog.io"
"https://cache.zw3rk.com"
];
trusted-public-keys = [
(builtins.readFile ../../public-keys/deertopia-cache.pub.pem)
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
"loony-tools:pr9m4BkM/5/eSTZlkQyRt57Jz7OMBxNSUiMC4FkcNfk="
];
};
};
-12
View File
@@ -1,12 +0,0 @@
{ 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;
};
}
+1 -2
View File
@@ -8,9 +8,8 @@ let users = builtins.readDir ../users;
inputs.self.homeManagerModules.default
inputs.sops-nix.homeManagerModules.sops
inputs.impermanence.homeManagerModules.impermanence
inputs.nixcord.homeModules.nixcord
inputs.dms.homeModules.dank-material-shell
inputs.dms.homeModules.niri
# Directory name should always match username.
({ ... }: { home.username = username; })
-3
View File
@@ -37,8 +37,6 @@ let
inputs.niri.nixosModules.niri
inputs.stylix.nixosModules.stylix
inputs.nixarr.nixosModules.default
inputs.dms.nixosModules.greeter
inputs.dms.nixosModules.dank-material-shell
# Directory name should always match host name.
({ ... }: { networking.hostName = hostName; })
@@ -61,7 +59,6 @@ let
pkgs = nixpkgs;
};
inherit inputs system;
host = hostName;
};
})
];
+3 -4
View File
@@ -30,7 +30,6 @@ 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
@@ -51,7 +50,7 @@ sops:
TXFLY2l0UHJ3Z0NGZjVpbTQ2UC8yaTQKA7wTmW9Ha6T2KmCr/nkXdizgv8+V6SAp
ZhDO+uDQ1evIh2wLWMOXNJ3d/zplLCOTzR2xkqBIUp5V7MXj45RUIA==
-----END AGE ENCRYPTED FILE-----
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]
lastmodified: "2026-03-01T08:57:03Z"
mac: ENC[AES256_GCM,data:uNqk+x+nLgDUdHI5flUuXF/vGnkMpUUhdFfkOULm+bebkPL6PI5kJHV78GPs+aA9BPCmTvomgGe51zvyJFRcH3gBJ2bF5YfdC0ROrRbZS4KYIuZwrELf77zq73MbIFt//BTpDYK4cUC8CPRoAEwtoTG6lyHbxcAk4+B5w2NFfN8=,iv:rFaEaav1LHrhtKtiRfIqHTj5+cOBv3lC1UyqEvOoUsg=,tag:x/4n+rcQxd+neQGLcXa66g==,type:str]
unencrypted_suffix: _unencrypted
version: 3.12.1
version: 3.11.0
+50 -70
View File
@@ -18,79 +18,59 @@
];
};
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";
homeConfiguration = { config, lib, pkgs, ... }: {
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 = 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;
guile.enable = true;
qalculate.enable = true;
toki-pona.enable = true;
prism-launcher.enable = on "sydpc";
flatpak.enable = on "sydpc";
drawing-tablet.enable = on "sydpc";
easyeffects.enable = on "sydpc";
ryujinx.enable = false;
haskell.enable = true;
kerbal-space-program.enable = on "sydpc";
libreoffice.enable = on "fruitbook";
hydrus.enable = on "sydpc";
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;
rnote.enable = on "sydpc";
};
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 = on "fruitbook";
zathura.enable = on "sydpc";
};
sydnix = {
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 = {
hunspell.enable = true;
emacs.enable = true;
impermanence.enable = true;
syncthing.enable = true;
fonts.enable = true;
dank-material-shell.enable = true;
};
# Don't touch!
home.stateVersion = "18.09";
};
# Don't touch!
home.stateVersion = "18.09";
};
}
+3 -4
View File
@@ -17,7 +17,6 @@ gitlab-oauth: ENC[AES256_GCM,data:1THznoGRZmq7BkisZoGa0ZiPG7aSmkV06SY=,iv:Gq6UPH
anki-username: ENC[AES256_GCM,data:cUWaxIc=,iv:I2wy54406Xe4tVHIhIFZqbezepc2wtp2M15T7ES9zGQ=,tag:FiU2CscHDcNv+6S5pODG7w==,type:str]
anki-password: ENC[AES256_GCM,data:kXQq1JPjTRpQ4f6/BOFj/gBhUA==,iv:P8MVsmCfyOoEJmyAjBfMSRT6mpkwDUBIzr2UjZmjHOA=,tag:D7KWEpldP/H6CUH7y+5/7Q==,type:str]
anki-sync-key: ENC[AES256_GCM,data:wvAo92t6oR8PxE5EId/OC+J4GKs/Rp21PSp+uDt72JWFzeWHO6a1KA==,iv:2yU4skxlDuH6smSr5PnPe8ZkWf4gdxKBXQfzPFiZXoA=,tag:7KXl5A4vzRdkWO++LbMb9A==,type:str]
jellyfin-rpc-api-key: ENC[AES256_GCM,data:srElaGG1JVWwDb+xA4iG9ew6oFUEHSd6AlLUXN8iA3c=,iv:z1UQshfWW6Q7GK8Ff8GK3OD7z0Aa5kePVRPLlUsDmF0=,tag:+csa3asD+0qthO05uZqK0A==,type:str]
sops:
age:
- recipient: age1qayk0d0f765v57pedm7mtau6qkmv8rh6jtaqm40g5g9armaty4jqc0v0y2
@@ -29,7 +28,7 @@ sops:
VVBqSEM2bVFBU0M5YzZBQWIwUmVXUXMKvWb57Rc+rO5M8Pf7lvbSjuZB4FrHgT3A
uBQHH3wpv0BVVzL8tucPnwNxDnwpWvFxxwNVy/rtfs6y6HPu6fuOsA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2026-03-06T21:55:34Z"
mac: ENC[AES256_GCM,data:kkEZI0Of8KUpGJRoGAD3gXCtNz44Sucki4Fk2lQ55o+IcBYtxJwwpoQH3usihSigaPquee4XAxhdlWyHt7S46Q9dTFXjT9IUpnxrlG0ZQOnTRbdRlT2qcxLSlghdDWRuezhjT5KWFqlq4Av85KmL7kiB7LAkPVk6EERHJuFsWR8=,iv:Y3wd4hP1ui3rtXe++3j1oAKYbd8V4cc0SBLOlcyl5Zc=,tag:/FK8R28WAWDhWImMnm6wQg==,type:str]
lastmodified: "2025-11-30T00:32:08Z"
mac: ENC[AES256_GCM,data:9c3xcwnGSoi/IpDHBJ922kd9Xh4EodOL/1B1epdCIB/N3Pu07wVMGSGm97e2uqczbFgebXc/Oz1Gpr9hdxNpvxlldXQgqPhZIlk6Pfelf6E0WcC5+QOE1ZQ6MTsgAE5RjFy2fctphXJi/Z9VuTcSgakSYuy+0QbPCfuwL5CaTVk=,iv:8qwCqjVALlaxJCAfZURpt7c6/3b9KKar7mtsYb3/rlw=,tag:utHZLe3FojSmyvBBIzfY2A==,type:str]
unencrypted_suffix: _unencrypted
version: 3.12.1
version: 3.11.0