Compare commits
1 commit
main
...
garage-mod
Author | SHA1 | Date | |
---|---|---|---|
8098b42e3d |
56 changed files with 639 additions and 2439 deletions
32
.github/workflows/build-and-cache.yml
vendored
Normal file
32
.github/workflows/build-and-cache.yml
vendored
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
name: build and cache random stuff
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
push:
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
package:
|
||||||
|
- .#attic-client
|
||||||
|
- .#attic-server
|
||||||
|
- .#eza
|
||||||
|
- .#conduwuit
|
||||||
|
- "github:oxalica/nil"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: DeterminateSystems/nix-installer-action@main
|
||||||
|
with:
|
||||||
|
logger: pretty
|
||||||
|
- uses: DeterminateSystems/magic-nix-cache-action@main
|
||||||
|
- uses: cachix/cachix-action@v15
|
||||||
|
with:
|
||||||
|
name: cything
|
||||||
|
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||||
|
- name: Setup Attic cache
|
||||||
|
uses: ryanccn/attic-action@v0
|
||||||
|
with:
|
||||||
|
endpoint: ${{ vars.ATTIC_ENDPOINT }}
|
||||||
|
cache: ${{ vars.ATTIC_CACHE }}
|
||||||
|
token: ${{ secrets.ATTIC_TOKEN }}
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- run: nix build '${{ matrix.package }}'
|
126
.github/workflows/build-machines-and-homes.yml
vendored
126
.github/workflows/build-machines-and-homes.yml
vendored
|
@ -1,126 +0,0 @@
|
||||||
name: build and cache machines and homes
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
push:
|
|
||||||
pull_request:
|
|
||||||
jobs:
|
|
||||||
build-machines:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
machine:
|
|
||||||
- chunk
|
|
||||||
- ytnix
|
|
||||||
- titan
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
continue-on-error: true
|
|
||||||
steps:
|
|
||||||
- name: Maximize build disk space
|
|
||||||
uses: easimon/maximize-build-space@v10
|
|
||||||
with:
|
|
||||||
overprovision-lvm: true
|
|
||||||
swap-size-mb: 1024
|
|
||||||
remove-dotnet: 'true'
|
|
||||||
remove-android: 'true'
|
|
||||||
remove-haskell: 'true'
|
|
||||||
remove-codeql: 'true'
|
|
||||||
remove-docker-images: 'true'
|
|
||||||
build-mount-path: /nix
|
|
||||||
- name: Install Nix
|
|
||||||
uses: cachix/install-nix-action@v30
|
|
||||||
with:
|
|
||||||
install_url: https://releases.nixos.org/nix/nix-2.25.4/install
|
|
||||||
extra_nix_config: 'accept-flake-config = true'
|
|
||||||
- name: Sync repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: cachix/cachix-action@v14
|
|
||||||
with:
|
|
||||||
name: cything
|
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
||||||
useDaemon: false
|
|
||||||
installCommand: nix profile install nixpkgs#cachix
|
|
||||||
- name: Setup Attic cache
|
|
||||||
uses: ryanccn/attic-action@v0
|
|
||||||
with:
|
|
||||||
endpoint: ${{ vars.ATTIC_ENDPOINT }}
|
|
||||||
cache: ${{ vars.ATTIC_CACHE }}
|
|
||||||
token: ${{ secrets.ATTIC_TOKEN }}
|
|
||||||
- name: Restore and cache Nix store
|
|
||||||
uses: nix-community/cache-nix-action@v5.1.0
|
|
||||||
with:
|
|
||||||
# restore and save a cache using this key
|
|
||||||
primary-key: nix-${{ runner.os }}-${{ matrix.machine }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
|
||||||
# if there's no cache hit, restore a cache by this prefix
|
|
||||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.machine }}-
|
|
||||||
# do purge caches
|
|
||||||
purge: true
|
|
||||||
# purge all versions of the cache
|
|
||||||
purge-prefixes: nix-${{ runner.os }}-
|
|
||||||
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
|
|
||||||
purge-last-accessed: 86400
|
|
||||||
# except the version with the `primary-key`, if it exists
|
|
||||||
purge-primary-key: never
|
|
||||||
# always save the cache
|
|
||||||
save-always: true
|
|
||||||
- run: nix build -L .#nixosConfigurations.${{ matrix.machine }}.config.system.build.toplevel
|
|
||||||
build-homes:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
home:
|
|
||||||
- yt@ytnix
|
|
||||||
- yt@chunk
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
# - macos-latest
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
continue-on-error: true
|
|
||||||
steps:
|
|
||||||
- name: Maximize build disk space
|
|
||||||
uses: easimon/maximize-build-space@v10
|
|
||||||
with:
|
|
||||||
overprovision-lvm: true
|
|
||||||
swap-size-mb: 1024
|
|
||||||
remove-dotnet: 'true'
|
|
||||||
remove-android: 'true'
|
|
||||||
remove-haskell: 'true'
|
|
||||||
remove-codeql: 'true'
|
|
||||||
remove-docker-images: 'true'
|
|
||||||
build-mount-path: /nix
|
|
||||||
- uses: nixbuild/nix-quick-install-action@master
|
|
||||||
- name: Sync repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: cachix/cachix-action@v14
|
|
||||||
with:
|
|
||||||
name: cything
|
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
||||||
useDaemon: false
|
|
||||||
installCommand: nix profile install nixpkgs#cachix
|
|
||||||
- name: Setup Attic cache
|
|
||||||
uses: ryanccn/attic-action@v0
|
|
||||||
with:
|
|
||||||
endpoint: ${{ vars.ATTIC_ENDPOINT }}
|
|
||||||
cache: ${{ vars.ATTIC_CACHE }}
|
|
||||||
token: ${{ secrets.ATTIC_TOKEN }}
|
|
||||||
- name: Restore and cache Nix store
|
|
||||||
uses: nix-community/cache-nix-action@v5.1.0
|
|
||||||
with:
|
|
||||||
# restore and save a cache using this key
|
|
||||||
primary-key: nix-${{ runner.os }}-${{ matrix.home }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
|
||||||
# if there's no cache hit, restore a cache by this prefix
|
|
||||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.home }}-
|
|
||||||
# do purge caches
|
|
||||||
purge: true
|
|
||||||
# purge all versions of the cache
|
|
||||||
purge-prefixes: nix-${{ runner.os }}-
|
|
||||||
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
|
|
||||||
purge-last-accessed: 86400
|
|
||||||
# except the version with the `primary-key`, if it exists
|
|
||||||
purge-primary-key: never
|
|
||||||
# always save the cache
|
|
||||||
save-always: true
|
|
||||||
- run: nix build -L .#homeConfigurations."${{ matrix.home }}".activationPackage
|
|
59
.github/workflows/build-packages.yml
vendored
59
.github/workflows/build-packages.yml
vendored
|
@ -1,59 +0,0 @@
|
||||||
name: build and cache packages
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
inputs:
|
|
||||||
package:
|
|
||||||
description: "package to build"
|
|
||||||
required: false
|
|
||||||
type: string
|
|
||||||
jobs:
|
|
||||||
build-packages:
|
|
||||||
strategy:
|
|
||||||
matrix:
|
|
||||||
package:
|
|
||||||
- github:cything/nixpkgs/928e0c6874ab3e759305e93f806a4cf559645677#alvr
|
|
||||||
- github:cything/nixpkgs/8929e1256ceec677dd57fce405cdaca23176399b#lact
|
|
||||||
- ${{ inputs.package }}
|
|
||||||
os:
|
|
||||||
- ubuntu-latest
|
|
||||||
- macos-latest
|
|
||||||
- ubuntu-24.04-arm
|
|
||||||
runs-on: ${{ matrix.os }}
|
|
||||||
continue-on-error: true
|
|
||||||
steps:
|
|
||||||
- name: Install Nix
|
|
||||||
uses: cachix/install-nix-action@v30
|
|
||||||
- name: Sync repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
persist-credentials: false
|
|
||||||
- uses: cachix/cachix-action@v14
|
|
||||||
with:
|
|
||||||
name: cything
|
|
||||||
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
||||||
useDaemon: false
|
|
||||||
installCommand: nix profile install nixpkgs#cachix
|
|
||||||
- name: Setup Attic cache
|
|
||||||
uses: ryanccn/attic-action@v0
|
|
||||||
with:
|
|
||||||
endpoint: ${{ vars.ATTIC_ENDPOINT }}
|
|
||||||
cache: ${{ vars.ATTIC_CACHE }}
|
|
||||||
token: ${{ secrets.ATTIC_TOKEN }}
|
|
||||||
- name: Restore and cache Nix store
|
|
||||||
uses: nix-community/cache-nix-action@v5.1.0
|
|
||||||
with:
|
|
||||||
# restore and save a cache using this key
|
|
||||||
primary-key: nix-${{ runner.os }}-${{ matrix.package }}-${{ hashFiles('**/*.nix', 'flake.lock') }}
|
|
||||||
# if there's no cache hit, restore a cache by this prefix
|
|
||||||
restore-prefixes-first-match: nix-${{ runner.os }}-${{ matrix.package }}-
|
|
||||||
# do purge caches
|
|
||||||
purge: true
|
|
||||||
# purge all versions of the cache
|
|
||||||
purge-prefixes: nix-${{ runner.os }}-
|
|
||||||
# created more than this number of seconds ago relative to the start of the `Post Restore` phase
|
|
||||||
purge-last-accessed: 86400
|
|
||||||
# except the version with the `primary-key`, if it exists
|
|
||||||
purge-primary-key: never
|
|
||||||
# always save the cache
|
|
||||||
save-always: true
|
|
||||||
- run: nix build -L ${{ matrix.package }}
|
|
10
.sops.yaml
10
.sops.yaml
|
@ -103,13 +103,3 @@ creation_rules:
|
||||||
- age:
|
- age:
|
||||||
- *chunk
|
- *chunk
|
||||||
- *cy
|
- *cy
|
||||||
- path_regex: secrets/services/tailscale.yaml
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *chunk
|
|
||||||
- *cy
|
|
||||||
- path_regex: secrets/yt/(.*).yaml$
|
|
||||||
key_groups:
|
|
||||||
- age:
|
|
||||||
- *yt
|
|
||||||
- *cy
|
|
1076
flake.lock
generated
1076
flake.lock
generated
File diff suppressed because it is too large
Load diff
334
flake.nix
334
flake.nix
|
@ -2,7 +2,7 @@
|
||||||
description = "cy's flake";
|
description = "cy's flake";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -20,92 +20,30 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
lanzaboote = {
|
lanzaboote = {
|
||||||
url = "github:nix-community/lanzaboote/master";
|
url = "github:nix-community/lanzaboote/v0.4.1";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.crane.follows = "crane";
|
|
||||||
inputs.flake-compat.follows = "flake-compat";
|
|
||||||
inputs.flake-parts.follows = "flake-parts";
|
|
||||||
inputs.rust-overlay.follows = "rust-overlay";
|
|
||||||
};
|
};
|
||||||
nixvim = {
|
nixvim = {
|
||||||
url = "github:nix-community/nixvim";
|
url = "github:nix-community/nixvim";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.flake-parts.follows = "flake-parts";
|
|
||||||
inputs.flake-compat.follows = "flake-compat";
|
|
||||||
inputs.home-manager.follows = "home-manager";
|
|
||||||
inputs.treefmt-nix.follows = "treefmt";
|
|
||||||
};
|
|
||||||
flake-parts = {
|
|
||||||
url = "github:hercules-ci/flake-parts";
|
|
||||||
inputs.nixpkgs-lib.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
niri = {
|
|
||||||
url = "github:sodiboo/niri-flake";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.nixpkgs-stable.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
rust-overlay = {
|
|
||||||
url = "github:oxalica/rust-overlay";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
conduwuit = {
|
|
||||||
url = "github:girlbossceo/conduwuit";
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
crane.follows = "crane";
|
|
||||||
flake-compat.follows = "flake-compat";
|
|
||||||
flake-utils.follows = "flake-utils";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
lix-module = {
|
|
||||||
url = "git+https://git.lix.systems/lix-project/nixos-module";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.flake-utils.follows = "flake-utils";
|
|
||||||
inputs.lix.follows = "lix";
|
|
||||||
};
|
|
||||||
lix = {
|
|
||||||
url = "git+https://git.lix.systems/lix-project/lix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.flake-compat.follows = "flake-compat";
|
|
||||||
};
|
|
||||||
nix-ld = {
|
|
||||||
url = "github:nix-community/nix-ld";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
plasma-manager = {
|
|
||||||
url = "github:nix-community/plasma-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
inputs.home-manager.follows = "home-manager";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs-garage.url = "github:cything/nixpkgs/garage-module"; # unmerged PR
|
nixpkgs-borg.url = "github:cything/nixpkgs/borg"; # unmerged PR
|
||||||
|
nixpkgs-btrbk.url = "github:cything/nixpkgs/btrbk"; # unmerged PR
|
||||||
nvim-github-theme = {
|
eza.url = "github:nixos/nixpkgs/d722e8ce81cf103280ce1ff65accb3fc25cbd2ba";
|
||||||
url = "github:projekt0n/github-nvim-theme";
|
nixpkgs-garage.url = "github:cything/nixpkgs/garage-module";
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# deduplication
|
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
crane.url = "github:ipetkov/crane";
|
|
||||||
flake-compat.url = "github:edolstra/flake-compat";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
"https://cache.cything.io/central"
|
"https://cache.cything.io/central"
|
||||||
"https://niri.cachix.org"
|
"https://cache.cything.io/infra-ci"
|
||||||
"https://nix-community.cachix.org"
|
"https://cache.cything.io/attic"
|
||||||
"https://cache.garnix.io"
|
|
||||||
"https://cything.cachix.org"
|
|
||||||
"https://aseipp-nix-cache.global.ssl.fastly.net"
|
|
||||||
];
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
|
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
|
||||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
"infra-ci:xG5f5tddUBcvToYjlpHD5OY/puYQkKmgKeIQCshNs38="
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"attic:HL3hVpqXxwcF7Q1R+IvU2i0+YxIjQA2xxKM5EJMXLLs="
|
||||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
|
||||||
"cything.cachix.org-1:xqW1W5NNL+wrM9wfSELb0MLj/harD2ZyB4HbdaMyvPI="
|
|
||||||
];
|
];
|
||||||
builders-use-substitutes = true;
|
builders-use-substitutes = true;
|
||||||
};
|
};
|
||||||
|
@ -115,137 +53,139 @@
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
home-manager,
|
home-manager,
|
||||||
|
treefmt,
|
||||||
disko,
|
disko,
|
||||||
flake-parts,
|
|
||||||
...
|
...
|
||||||
}@inputs:
|
}@inputs:
|
||||||
flake-parts.lib.mkFlake { inherit inputs; } (
|
let
|
||||||
{ ... }:
|
lib = nixpkgs.lib;
|
||||||
{
|
inherit (self) outputs;
|
||||||
imports = [
|
|
||||||
inputs.treefmt.flakeModule
|
|
||||||
];
|
|
||||||
debug = true;
|
|
||||||
systems = [
|
|
||||||
"x86_64-linux"
|
|
||||||
];
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
inputs',
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
treefmt = {
|
|
||||||
projectRootFile = "flake.nix";
|
|
||||||
programs.nixfmt.enable = true;
|
|
||||||
programs.stylua.enable = true;
|
|
||||||
programs.yamlfmt.enable = true;
|
|
||||||
programs.typos.enable = true;
|
|
||||||
programs.shellcheck.enable = true;
|
|
||||||
|
|
||||||
settings.global.excludes = [
|
systems = [ "x86_64-linux" ];
|
||||||
"secrets/*"
|
forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
|
||||||
"**/*.png" # tries to format a png file
|
|
||||||
];
|
overridePkgsFromFlake =
|
||||||
};
|
pkgs: flake: pkgNames:
|
||||||
|
let
|
||||||
|
pkgs' = import flake { inherit (pkgs) system config; };
|
||||||
|
pkgNames' = builtins.map (lib.splitString ".") pkgNames;
|
||||||
|
pkgVals = builtins.map (
|
||||||
|
path:
|
||||||
|
let
|
||||||
|
package = lib.getAttrFromPath path pkgs';
|
||||||
|
in
|
||||||
|
lib.setAttrByPath path package
|
||||||
|
) pkgNames';
|
||||||
|
in
|
||||||
|
lib.foldl' lib.recursiveUpdate { } pkgVals;
|
||||||
|
overlayPkgsFromFlake =
|
||||||
|
flake: pkgNames: _final: prev:
|
||||||
|
overridePkgsFromFlake prev flake pkgNames;
|
||||||
|
overlays = [
|
||||||
|
(overlayPkgsFromFlake inputs.eza [
|
||||||
|
"eza"
|
||||||
|
])
|
||||||
|
] ++ import ./overlay;
|
||||||
|
|
||||||
|
pkgsFor = lib.genAttrs systems (
|
||||||
|
system:
|
||||||
|
import nixpkgs {
|
||||||
|
inherit system overlays;
|
||||||
|
config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
treefmtEval = forEachSystem (
|
||||||
|
pkgs:
|
||||||
|
treefmt.lib.evalModule pkgs {
|
||||||
|
projectRootFile = "flake.nix";
|
||||||
|
programs.nixfmt.enable = true;
|
||||||
|
programs.stylua.enable = true;
|
||||||
|
programs.yamlfmt.enable = true;
|
||||||
|
programs.typos.enable = true;
|
||||||
|
programs.shellcheck.enable = true;
|
||||||
|
programs.deadnix.enable = true;
|
||||||
|
|
||||||
|
settings.global.excludes = [ "secrets/*" ];
|
||||||
|
}
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
|
formatter = forEachSystem (pkgs: treefmtEval.${pkgs.system}.config.build.wrapper);
|
||||||
|
checks = forEachSystem (pkgs: {
|
||||||
|
formatting = treefmtEval.${pkgs.system}.config.build.check self;
|
||||||
|
});
|
||||||
|
# lets us build overlaid packages with `nix build .#<package>`
|
||||||
|
packages = pkgsFor;
|
||||||
|
|
||||||
|
nixosConfigurations =
|
||||||
|
let
|
||||||
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
ytnix = lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
nixpkgs = { inherit pkgs; };
|
||||||
|
}
|
||||||
|
./hosts/ytnix
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
./modules
|
||||||
|
inputs.lanzaboote.nixosModules.lanzaboote
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
flake =
|
chunk = lib.nixosSystem {
|
||||||
let
|
specialArgs = { inherit inputs outputs; };
|
||||||
pkgs = import nixpkgs {
|
modules = [
|
||||||
config.allowUnfree = true;
|
|
||||||
system = "x86_64-linux";
|
|
||||||
overlays = [
|
|
||||||
inputs.niri.overlays.niri
|
|
||||||
inputs.rust-overlay.overlays.default
|
|
||||||
] ++ import ./overlay;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
nixosConfigurations =
|
|
||||||
let
|
|
||||||
lib = nixpkgs.lib;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
ytnix = lib.nixosSystem {
|
nixpkgs = { inherit pkgs; };
|
||||||
specialArgs = { inherit inputs; };
|
disabledModules = [
|
||||||
modules = [
|
"services/web-servers/garage.nix"
|
||||||
{
|
];
|
||||||
nixpkgs = { inherit pkgs; };
|
}
|
||||||
}
|
./hosts/chunk
|
||||||
./hosts/ytnix
|
inputs.sops-nix.nixosModules.sops
|
||||||
inputs.sops-nix.nixosModules.sops
|
./modules
|
||||||
./modules
|
(inputs.nixpkgs-garage + "/nixos/modules/services/web-servers/garage.nix")
|
||||||
inputs.lanzaboote.nixosModules.lanzaboote
|
];
|
||||||
inputs.niri.nixosModules.niri
|
|
||||||
inputs.lix-module.nixosModules.default
|
|
||||||
inputs.nix-ld.nixosModules.nix-ld
|
|
||||||
];
|
|
||||||
};
|
|
||||||
chunk = lib.nixosSystem {
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
nixpkgs = { inherit pkgs; };
|
|
||||||
disabledModules = [
|
|
||||||
"services/web-servers/garage.nix"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
./hosts/chunk
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
./modules
|
|
||||||
(inputs.nixpkgs-garage + "/nixos/modules/services/web-servers/garage.nix")
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
titan = lib.nixosSystem {
|
|
||||||
specialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
{
|
|
||||||
nixpkgs = { inherit pkgs; };
|
|
||||||
}
|
|
||||||
./hosts/titan
|
|
||||||
disko.nixosModules.disko
|
|
||||||
inputs.sops-nix.nixosModules.sops
|
|
||||||
./modules
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
homeConfigurations =
|
|
||||||
let
|
|
||||||
lib = home-manager.lib;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"yt@ytnix" = lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./home/yt/ytnix.nix
|
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
|
||||||
inputs.niri.homeModules.config
|
|
||||||
inputs.plasma-manager.homeManagerModules.plasma-manager
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"yt@chunk" = lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./home/yt/chunk.nix
|
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"codespace@codespace" = lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
extraSpecialArgs = { inherit inputs; };
|
|
||||||
modules = [
|
|
||||||
./home/yt/codespace.nix
|
|
||||||
inputs.nixvim.homeManagerModules.nixvim
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
|
||||||
);
|
titan = lib.nixosSystem {
|
||||||
|
specialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
{
|
||||||
|
nixpkgs = { inherit pkgs; };
|
||||||
|
}
|
||||||
|
./hosts/titan
|
||||||
|
disko.nixosModules.disko
|
||||||
|
inputs.sops-nix.nixosModules.sops
|
||||||
|
./modules
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
homeConfigurations = {
|
||||||
|
"yt@ytnix" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./home/yt/ytnix.nix
|
||||||
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
"yt@chunk" = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = pkgsFor.x86_64-linux;
|
||||||
|
extraSpecialArgs = { inherit inputs outputs; };
|
||||||
|
modules = [
|
||||||
|
./home/yt/chunk.nix
|
||||||
|
inputs.nixvim.homeManagerModules.nixvim
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
builds:
|
|
||||||
include:
|
|
||||||
- 'nixosConfigurations.*'
|
|
||||||
- 'homeConfigurations.*'
|
|
||||||
- '*.aarch64-linux.*'
|
|
||||||
- '*.x86_64-linux.*'
|
|
|
@ -17,32 +17,40 @@
|
||||||
blink = "yes";
|
blink = "yes";
|
||||||
blink-rate = 500;
|
blink-rate = 500;
|
||||||
beam-thickness = 1.5;
|
beam-thickness = 1.5;
|
||||||
color = "161821 c6c8d1";
|
|
||||||
};
|
};
|
||||||
mouse = {
|
mouse = {
|
||||||
hide-when-typing = "yes";
|
hide-when-typing = "yes";
|
||||||
};
|
};
|
||||||
colors = {
|
colors = {
|
||||||
foreground = "c6c8d1";
|
|
||||||
background = "161821";
|
background = "161821";
|
||||||
regular0 = "1e2132";
|
foreground = "c6c8d1";
|
||||||
regular1 = "e27878";
|
|
||||||
regular2 = "b4be82";
|
selection-background = "1e2132";
|
||||||
regular3 = "e2a478";
|
selection-foreground = "c6c8d1";
|
||||||
regular4 = "84a0c6";
|
|
||||||
regular5 = "a093c7";
|
regular0 = "161821";
|
||||||
regular6 = "89b8c2";
|
|
||||||
regular7 = "c6c8d1";
|
|
||||||
bright0 = "6b7089";
|
bright0 = "6b7089";
|
||||||
|
|
||||||
|
regular1 = "e27878";
|
||||||
bright1 = "e98989";
|
bright1 = "e98989";
|
||||||
|
|
||||||
|
regular2 = "b4be82";
|
||||||
bright2 = "c0ca8e";
|
bright2 = "c0ca8e";
|
||||||
|
|
||||||
|
regular3 = "e2a478";
|
||||||
bright3 = "e9b189";
|
bright3 = "e9b189";
|
||||||
|
|
||||||
|
regular4 = "84a0c6";
|
||||||
bright4 = "91acd1";
|
bright4 = "91acd1";
|
||||||
|
|
||||||
|
regular5 = "a093c7";
|
||||||
bright5 = "ada0d3";
|
bright5 = "ada0d3";
|
||||||
|
|
||||||
|
regular6 = "89b8c2";
|
||||||
bright6 = "95c4ce";
|
bright6 = "95c4ce";
|
||||||
|
|
||||||
|
regular7 = "c6c8d1";
|
||||||
bright7 = "d2d4de";
|
bright7 = "d2d4de";
|
||||||
selection-foreground = "161821";
|
|
||||||
selection-background = "c6c8d1";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
key-bindings = {
|
key-bindings = {
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.ghostty = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
clearDefaultKeybinds = true;
|
|
||||||
settings = {
|
|
||||||
theme = "iceberg-dark";
|
|
||||||
font-family = "IBM Plex Mono";
|
|
||||||
font-size = "12";
|
|
||||||
window-decoration = false;
|
|
||||||
confirm-close-surface = false;
|
|
||||||
keybind = [
|
|
||||||
"ctrl+q=quit"
|
|
||||||
"ctrl+shift+c=copy_to_clipboard"
|
|
||||||
"ctrl+shift+v=paste_from_clipboard"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.irssi = {
|
|
||||||
enable = true;
|
|
||||||
networks.liberachat = {
|
|
||||||
nick = "cy7";
|
|
||||||
server = {
|
|
||||||
address = "irc.libera.chat";
|
|
||||||
port = 6697;
|
|
||||||
autoConnect = true;
|
|
||||||
};
|
|
||||||
channels = {
|
|
||||||
nixos.autoJoin = true;
|
|
||||||
linux.autoJoin = true;
|
|
||||||
rust.autoJoin = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extraConfig = ''
|
|
||||||
ignores = ( { level = "JOINS PARTS QUITS MODES NICKS"; } )
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,72 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.kitty = {
|
|
||||||
enable = true;
|
|
||||||
font = {
|
|
||||||
name = "IBM Plex Mono";
|
|
||||||
package = pkgs.ibm-plex;
|
|
||||||
size = 12;
|
|
||||||
};
|
|
||||||
themeFile = "GitHub_Dark";
|
|
||||||
settings = {
|
|
||||||
enable_audio_bell = true;
|
|
||||||
# how many windows should be open before kitty asks
|
|
||||||
# for confirmation
|
|
||||||
confirm_os_window_close = 0;
|
|
||||||
clear_all_shortcuts = true;
|
|
||||||
|
|
||||||
# will probably lower this later but the max allowed is actually 4GB
|
|
||||||
# this is NOT stored in memory and can only be viewed with scrollback_pager
|
|
||||||
"scrollback_pager_history_size" = "1024";
|
|
||||||
# see https://github.com/sharkdp/bat/issues/1077#issuecomment-652785399
|
|
||||||
"scrollback_pager" = "bat --pager='less -FR +G'";
|
|
||||||
"scrollback_lines" = 20000;
|
|
||||||
};
|
|
||||||
keybindings = {
|
|
||||||
# kitty_mod is ctrl+shift by default
|
|
||||||
"kitty_mod+c" = "copy_to_clipboard";
|
|
||||||
"kitty_mod+v" = "paste_from_clipboard";
|
|
||||||
# "ctrl+q" = "quit";
|
|
||||||
|
|
||||||
"kitty_mod+m" = "show_scrollback";
|
|
||||||
|
|
||||||
# windows
|
|
||||||
"kitty_mod+h" = "neighboring_window left";
|
|
||||||
"kitty_mod+alt+h" = "move_window left";
|
|
||||||
"kitty_mod+l" = "neighboring_window right";
|
|
||||||
"kitty_mod+alt+l" = "move_window right";
|
|
||||||
"kitty_mod+j" = "neighboring_window down";
|
|
||||||
"kitty_mod+alt+j" = "move_window down";
|
|
||||||
"kitty_mod+k" = "neighboring_window up";
|
|
||||||
"kitty_mod+alt+k" = "move_window up";
|
|
||||||
"ctrl+f3" = "detach_window new-tab";
|
|
||||||
"ctrl+f4" = "detach_window tab-left";
|
|
||||||
"ctrl+f5" = "load_config_file";
|
|
||||||
"ctrl+alt+l" = "next_layout";
|
|
||||||
"ctrl+alt+t" = "goto_layout tall";
|
|
||||||
"ctrl+alt+s" = "goto_layout stack";
|
|
||||||
"kitty_mod+enter" = "new_window_with_cwd";
|
|
||||||
"kitty_mod+r" = "resize_window";
|
|
||||||
|
|
||||||
# tabs
|
|
||||||
"kitty_mod+n" = "next_tab";
|
|
||||||
"kitty_mod+p" = "previous_tab";
|
|
||||||
"kitty_mod+alt+n" = "move_tab_forward";
|
|
||||||
"kitty_mod+alt+p" = "move_tab_backward";
|
|
||||||
"kitty_mod+w" = "close_tab";
|
|
||||||
"kitty_mod+t" = "new_tab_with_cwd";
|
|
||||||
"ctrl+f2" = "detach_tab";
|
|
||||||
|
|
||||||
# hints
|
|
||||||
# > basically means the preceding key is a prefix (think tmux)
|
|
||||||
"kitty_mod+o>o" = "open_url_with_hints";
|
|
||||||
"kitty_mod+o>p" = "kitten hints --type path --program -";
|
|
||||||
"kitty_mod+o>n" = "kitten hints --type line --program -";
|
|
||||||
"kitty_mod+o>w" = "kitten hints --type word --program -";
|
|
||||||
"kitty_mod+o>h" = "kitten hints --type hash --program -";
|
|
||||||
"kitty_mod+o>l" = "kitten hints --type linenum";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh.shellAliases."ssh" = "kitten ssh";
|
|
||||||
}
|
|
|
@ -1,210 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
wallpaper = "${./nixos-c-book.png}";
|
|
||||||
terminal = "kitty";
|
|
||||||
menu = [
|
|
||||||
"fuzzel"
|
|
||||||
"-w"
|
|
||||||
"100"
|
|
||||||
];
|
|
||||||
browser = "librewolf";
|
|
||||||
file-manager = "thunar";
|
|
||||||
clipboard = "cliphist list | ${lib.concatStringsSep " " menu} --dmenu | cliphist decode | wl-copy";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
programs.niri.settings = {
|
|
||||||
prefer-no-csd = true;
|
|
||||||
input.keyboard.xkb.options = "ctrl:nocaps";
|
|
||||||
spawn-at-startup = [
|
|
||||||
{ command = [ "${lib.getExe pkgs.waybar}" ]; }
|
|
||||||
{
|
|
||||||
command = [
|
|
||||||
"${lib.getExe pkgs.swaybg}"
|
|
||||||
"-m"
|
|
||||||
"fill"
|
|
||||||
"-i"
|
|
||||||
wallpaper
|
|
||||||
];
|
|
||||||
}
|
|
||||||
{ command = [ "${lib.getExe pkgs.xwayland-satellite}" ]; }
|
|
||||||
{
|
|
||||||
command = [
|
|
||||||
"wl-paste"
|
|
||||||
"--watch"
|
|
||||||
"cliphist"
|
|
||||||
"store"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
hotkey-overlay.skip-at-startup = true;
|
|
||||||
|
|
||||||
input = {
|
|
||||||
touchpad = {
|
|
||||||
tap = true;
|
|
||||||
dwt = true;
|
|
||||||
natural-scroll = true;
|
|
||||||
click-method = "clickfinger";
|
|
||||||
};
|
|
||||||
warp-mouse-to-focus = false;
|
|
||||||
focus-follows-mouse.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
DISPLAY = ":0"; # for xwayland-satellite
|
|
||||||
ANKI_WAYLAND = "1";
|
|
||||||
};
|
|
||||||
|
|
||||||
layout = {
|
|
||||||
gaps = 0;
|
|
||||||
focus-ring = {
|
|
||||||
width = 4;
|
|
||||||
active.color = "#4c7899";
|
|
||||||
inactive.color = "#333333";
|
|
||||||
};
|
|
||||||
always-center-single-column = true;
|
|
||||||
border.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
window-rules = [
|
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{ app-id = "mpv"; }
|
|
||||||
{ app-id = "Bitwarden"; }
|
|
||||||
{
|
|
||||||
app-id = "ghidra-Ghidra";
|
|
||||||
# pop-up windows
|
|
||||||
title = "^win(.*)";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
open-floating = true;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{
|
|
||||||
app-id = "anki";
|
|
||||||
title = "Add";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
default-column-width.proportion = .25;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matches = [
|
|
||||||
{ app-id = "foot"; }
|
|
||||||
{
|
|
||||||
app-id = "anki";
|
|
||||||
title = "^Browse";
|
|
||||||
}
|
|
||||||
{ app-id = "com.mitchellh.ghostt"; }
|
|
||||||
{ app-id = "org.kde.okular"; }
|
|
||||||
{ app-id = "kitty"; }
|
|
||||||
{ app-id = "VSCodium"; }
|
|
||||||
];
|
|
||||||
default-column-width.proportion = .5;
|
|
||||||
}
|
|
||||||
{
|
|
||||||
matches = [ { app-id = "librewolf"; } ];
|
|
||||||
default-column-width.proportion = .75;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.niri.settings.binds =
|
|
||||||
with config.lib.niri.actions;
|
|
||||||
let
|
|
||||||
sh = spawn "sh" "-c";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"Mod+Return".action = spawn terminal;
|
|
||||||
"Mod+D".action = spawn menu;
|
|
||||||
|
|
||||||
"Mod+Shift+E".action = quit;
|
|
||||||
"Mod+Equal".action = set-column-width "+10%";
|
|
||||||
"Mod+Minus".action = set-column-width "-10%";
|
|
||||||
"Mod+Shift+Equal".action = set-window-height "+10%";
|
|
||||||
"Mod+Shift+Minus".action = set-window-height "-10%";
|
|
||||||
"Super+Alt+L".action = spawn "swaylock";
|
|
||||||
"Mod+Ctrl+Q".action = close-window;
|
|
||||||
"Mod+H".action = focus-column-left;
|
|
||||||
"Mod+L".action = focus-column-right;
|
|
||||||
"Mod+K".action = focus-window-up;
|
|
||||||
"Mod+J".action = focus-window-down;
|
|
||||||
"Mod+Shift+H".action = move-column-left;
|
|
||||||
"Mod+Shift+L".action = move-column-right;
|
|
||||||
"Mod+Shift+K".action = move-window-up;
|
|
||||||
"Mod+Shift+J".action = move-window-down;
|
|
||||||
"Mod+U".action = focus-workspace-up;
|
|
||||||
"Mod+I".action = focus-workspace-down;
|
|
||||||
"Mod+Shift+U".action = move-window-to-workspace-up;
|
|
||||||
"Mod+Shift+I".action = move-window-to-workspace-down;
|
|
||||||
"Mod+W".action = maximize-column;
|
|
||||||
"Mod+E".action = set-column-width "50%";
|
|
||||||
"Mod+R".action = set-column-width "75%";
|
|
||||||
"Mod+Q".action = set-column-width "25%";
|
|
||||||
"Mod+C".action = center-column;
|
|
||||||
"Mod+Shift+Space".action = toggle-window-floating;
|
|
||||||
"Mod+Space".action = switch-focus-between-floating-and-tiling;
|
|
||||||
"Print".action = screenshot;
|
|
||||||
"Alt+Print".action = screenshot-window;
|
|
||||||
"Ctrl+Print".action = screenshot-screen;
|
|
||||||
# "Mod+R".action = switch-preset-column-width;
|
|
||||||
"Mod+Shift+R".action = switch-preset-window-height;
|
|
||||||
"Mod+Ctrl+R".action = reset-window-height;
|
|
||||||
"Mod+F".action = fullscreen-window;
|
|
||||||
"Mod+WheelScrollDown" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action = focus-column-right;
|
|
||||||
};
|
|
||||||
"Mod+WheelScrollUp" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action = focus-column-left;
|
|
||||||
};
|
|
||||||
"Mod+Shift+WheelScrollDown" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action = focus-workspace-down;
|
|
||||||
};
|
|
||||||
"Mod+Shift+WheelScrollUp" = {
|
|
||||||
cooldown-ms = 150;
|
|
||||||
action = focus-workspace-up;
|
|
||||||
};
|
|
||||||
|
|
||||||
"XF86AudioRaiseVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%+";
|
|
||||||
"XF86AudioLowerVolume".action = sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-";
|
|
||||||
"XF86AudioMute".action = sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
|
||||||
"XF86MonBrightnessUp".action = sh "brightnessctl set 1%+";
|
|
||||||
"XF86MonBrightnessDown".action = sh "brightnessctl set 1%-";
|
|
||||||
|
|
||||||
"Mod+1".action = focus-workspace 1;
|
|
||||||
"Mod+2".action = focus-workspace 2;
|
|
||||||
"Mod+3".action = focus-workspace 3;
|
|
||||||
"Mod+4".action = focus-workspace 4;
|
|
||||||
"Mod+5".action = focus-workspace 5;
|
|
||||||
"Mod+6".action = focus-workspace 6;
|
|
||||||
"Mod+7".action = focus-workspace 7;
|
|
||||||
"Mod+8".action = focus-workspace 8;
|
|
||||||
"Mod+9".action = focus-workspace 9;
|
|
||||||
"Mod+Shift+1".action = move-column-to-workspace 1;
|
|
||||||
"Mod+Shift+2".action = move-column-to-workspace 2;
|
|
||||||
"Mod+Shift+3".action = move-column-to-workspace 3;
|
|
||||||
"Mod+Shift+4".action = move-column-to-workspace 4;
|
|
||||||
"Mod+Shift+5".action = move-column-to-workspace 5;
|
|
||||||
"Mod+Shift+6".action = move-column-to-workspace 6;
|
|
||||||
"Mod+Shift+7".action = move-column-to-workspace 7;
|
|
||||||
"Mod+Shift+8".action = move-column-to-workspace 8;
|
|
||||||
"Mod+Shift+9".action = move-column-to-workspace 9;
|
|
||||||
|
|
||||||
"Mod+Alt+B".action = spawn browser;
|
|
||||||
"Mod+Alt+A".action = spawn "anki";
|
|
||||||
"Mod+Alt+F".action = spawn file-manager;
|
|
||||||
"Mod+Alt+E".action = spawn "evolution";
|
|
||||||
"Mod+P".action = spawn "bitwarden";
|
|
||||||
"Mod+Comma".action = sh clipboard;
|
|
||||||
|
|
||||||
"MouseForward".action = spawn "sh" "${./scripts/remote.sh}" "btn1";
|
|
||||||
"MouseBack".action = spawn "sh" "${./scripts/remote.sh}";
|
|
||||||
};
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 150 KiB |
|
@ -1,25 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
active_window=$(niri msg --json focused-window |jq -r .app_id)
|
|
||||||
|
|
||||||
if [ "$1" = "btn1" ]; then
|
|
||||||
if [ "$active_window" = "anki" ]; then
|
|
||||||
wtype " "
|
|
||||||
elif [ "$active_window" = "kitty" ]; then
|
|
||||||
wtype -M ctrl -M shift -k c -m ctrl -m shift
|
|
||||||
elif [ "$active_window" = "chromium-browser" ] || [ "$active_window" = "librewolf" ]; then
|
|
||||||
wtype -M alt -P right -p right -m alt
|
|
||||||
else
|
|
||||||
wtype -M ctrl -k c -m ctrl
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$active_window" = "anki" ]; then
|
|
||||||
wtype "1"
|
|
||||||
elif [ "$active_window" = "kitty" ]; then
|
|
||||||
wtype -M ctrl -M shift -k v -m ctrl
|
|
||||||
elif [ "$active_window" = "chromium-browser" ] || [ "$active_window" = "librewolf" ]; then
|
|
||||||
wtype -M alt -P left -p left -m alt
|
|
||||||
else
|
|
||||||
wtype -M ctrl -k v -m ctrl
|
|
||||||
fi
|
|
||||||
fi
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, inputs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
programs.nixvim = {
|
programs.nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -15,18 +15,15 @@
|
||||||
incsearch = true;
|
incsearch = true;
|
||||||
smartcase = true;
|
smartcase = true;
|
||||||
};
|
};
|
||||||
colorscheme = "github_dark_tritanopia";
|
colorscheme = "iceberg";
|
||||||
clipboard.register = "unnamed";
|
clipboard.register = "unnamedplus";
|
||||||
|
|
||||||
globals = {
|
globals = {
|
||||||
mapleader = ",";
|
mapleader = ",";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraPlugins = [
|
extraPlugins = with pkgs.vimPlugins; [
|
||||||
(pkgs.vimUtils.buildVimPlugin {
|
iceberg-vim
|
||||||
name = "github-theme";
|
|
||||||
src = inputs.nvim-github-theme;
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
keymaps = [
|
keymaps = [
|
||||||
|
@ -71,41 +68,6 @@
|
||||||
key = "<C-e>";
|
key = "<C-e>";
|
||||||
mode = "i";
|
mode = "i";
|
||||||
}
|
}
|
||||||
# quick chat with copilot
|
|
||||||
{
|
|
||||||
key = "<leader>ccq";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
local input = vim.fn.input("Quick chat: ")
|
|
||||||
if input ~= "" then
|
|
||||||
require("CopilotChat").ask(input, { selection = require("CopilotChat.select").buffer })
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
# ask perplexity a quick question
|
|
||||||
{
|
|
||||||
key = "<leader>ccs";
|
|
||||||
action.__raw = ''
|
|
||||||
function()
|
|
||||||
local input = vim.fn.input("Perplexity: ")
|
|
||||||
if input ~= "" then
|
|
||||||
require("CopilotChat").ask(input, {
|
|
||||||
agent = "perplexityai",
|
|
||||||
selection = false,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
mode = [
|
|
||||||
"n"
|
|
||||||
"v"
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
plugins.cmp = {
|
plugins.cmp = {
|
||||||
|
@ -133,8 +95,8 @@
|
||||||
"<C-h>" = "cmp.mapping.abort()";
|
"<C-h>" = "cmp.mapping.abort()";
|
||||||
"<C-n>" = "cmp.mapping.select_next_item()";
|
"<C-n>" = "cmp.mapping.select_next_item()";
|
||||||
"<C-p>" = "cmp.mapping.select_prev_item()";
|
"<C-p>" = "cmp.mapping.select_prev_item()";
|
||||||
"<C-u>" = "cmp.mapping.scroll_docs(-4)";
|
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||||
"<C-d>" = "cmp.mapping.scroll_docs(4)";
|
"<C-u>" = "cmp.mapping.scroll_docs(4)";
|
||||||
"<C-k>" = ''
|
"<C-k>" = ''
|
||||||
cmp.mapping(function(fallback)
|
cmp.mapping(function(fallback)
|
||||||
if cmp.visible() then
|
if cmp.visible() then
|
||||||
|
@ -150,8 +112,7 @@
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
'';
|
'';
|
||||||
# plain tab conflicts with i try to indent
|
"<Tab>" = ''
|
||||||
"<C-Tab>" = ''
|
|
||||||
cmp.mapping(function(fallback)
|
cmp.mapping(function(fallback)
|
||||||
if require("luasnip").jumpable(1) then
|
if require("luasnip").jumpable(1) then
|
||||||
require("luasnip").jump(1)
|
require("luasnip").jump(1)
|
||||||
|
@ -179,23 +140,13 @@
|
||||||
"K" = "hover";
|
"K" = "hover";
|
||||||
"gd" = "definition";
|
"gd" = "definition";
|
||||||
"gD" = "references";
|
"gD" = "references";
|
||||||
# "gt" = "type_definition"; # conflicts with switch tab
|
"gt" = "type_definition";
|
||||||
"gI" = "type_definition";
|
|
||||||
"gi" = "implementation";
|
"gi" = "implementation";
|
||||||
};
|
};
|
||||||
servers = {
|
servers = {
|
||||||
bashls.enable = true;
|
bashls.enable = true;
|
||||||
lua_ls.enable = true;
|
lua_ls.enable = true;
|
||||||
nil_ls = {
|
nil_ls.enable = true;
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
formatting.command = [
|
|
||||||
"nix"
|
|
||||||
"fmt"
|
|
||||||
];
|
|
||||||
nix.flake.autoArchive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
rust_analyzer = {
|
rust_analyzer = {
|
||||||
enable = true;
|
enable = true;
|
||||||
installRustc = true;
|
installRustc = true;
|
||||||
|
@ -206,37 +157,19 @@
|
||||||
plugins.treesitter = {
|
plugins.treesitter = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nixGrammars = true;
|
nixGrammars = true;
|
||||||
settings = {
|
settings.indent.enable = true;
|
||||||
indent.enable = true;
|
|
||||||
auto_install = true;
|
|
||||||
highlight.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
plugins.fzf-lua = {
|
plugins.fzf-lua = {
|
||||||
enable = true;
|
enable = true;
|
||||||
profile = "fzf-native";
|
|
||||||
keymaps = {
|
keymaps = {
|
||||||
"<leader>ff" = "files";
|
"<leader>ff" = "git_files";
|
||||||
"<leader>fg" = "live_grep";
|
"<leader>fg" = "live_grep";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins.neo-tree = {
|
plugins.neo-tree = {
|
||||||
enable = true;
|
enable = true;
|
||||||
buffers.followCurrentFile.enabled = true;
|
closeIfLastWindow = true;
|
||||||
window.width = 30;
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins.gitsigns = {
|
|
||||||
enable = true;
|
|
||||||
settings.current_line_blame = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
plugins.copilot-chat = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
model = "claude-3.5-sonnet";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins.cmp-buffer.enable = true;
|
plugins.cmp-buffer.enable = true;
|
||||||
|
@ -248,8 +181,6 @@
|
||||||
plugins.nvim-autopairs.enable = true;
|
plugins.nvim-autopairs.enable = true;
|
||||||
plugins.rainbow-delimiters.enable = true;
|
plugins.rainbow-delimiters.enable = true;
|
||||||
plugins.web-devicons.enable = true;
|
plugins.web-devicons.enable = true;
|
||||||
plugins.auto-save.enable = true;
|
plugins.gitsigns.enable = true;
|
||||||
plugins.indent-blankline.enable = true;
|
|
||||||
plugins.undotree.enable = true;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
{
|
|
||||||
programs.plasma = {
|
|
||||||
enable = true;
|
|
||||||
overrideConfig = true;
|
|
||||||
immutableByDefault = true;
|
|
||||||
workspace = {
|
|
||||||
lookAndFeel = "org.ide.breezedark.desktop";
|
|
||||||
cursor = {
|
|
||||||
theme = "Bibata-Modern-Classic";
|
|
||||||
size = 23;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts = {
|
|
||||||
general = {
|
|
||||||
family = "IBM Plex Mono";
|
|
||||||
pointSize = 12;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
input.keyboard = {
|
|
||||||
numlockOnStartup = "on";
|
|
||||||
options = [ "ctrl:nocaps" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Meta key is actually the Super key in KDE
|
|
||||||
|
|
||||||
hotkeys.commands = {
|
|
||||||
"launch-terminal" = {
|
|
||||||
name = "launch terminal";
|
|
||||||
key = "Meta+Return";
|
|
||||||
command = "kitty";
|
|
||||||
};
|
|
||||||
"launch-browser" = {
|
|
||||||
name = "launch browser";
|
|
||||||
key = "Meta+B";
|
|
||||||
command = "librewolf";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
shortcuts = {
|
|
||||||
kwin = {
|
|
||||||
"Switch Window Down" = "Meta+J";
|
|
||||||
"Switch Window Left" = "Meta+H";
|
|
||||||
"Switch Window Right" = "Meta+L";
|
|
||||||
"Switch Window Up" = "Meta+K";
|
|
||||||
"Window Quick Tile Down" = "Meta+Shift+J";
|
|
||||||
"Window Quick Tile Left" = "Meta+Shift+H";
|
|
||||||
"Window Quick Tile Right" = "Meta+Shift+L";
|
|
||||||
"Window Quick Tile Up" = "Meta+Shift+K";
|
|
||||||
"Window Close" = "Meta+Ctrl+Q";
|
|
||||||
"Window Maximize" = "Meta+W";
|
|
||||||
"Window Minimize" = "Meta+Shift+-";
|
|
||||||
"Window Fullscreen" = "Meta+F";
|
|
||||||
"Window Shrink Horizontal" = "Meta+-";
|
|
||||||
};
|
|
||||||
|
|
||||||
ksmserver = {
|
|
||||||
"Lock Session" = [
|
|
||||||
"Screensaver"
|
|
||||||
"Meta+Ctrl+L"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
configFile = {
|
|
||||||
# save RAM
|
|
||||||
baloofilerc."Basic Settings"."Indexing-Enabled" = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# looks like KDE overrides services.logind settings
|
|
||||||
powerdevil.AC = {
|
|
||||||
whenLaptopLidClosed = "hibernate";
|
|
||||||
};
|
|
||||||
powerdevil.battery = {
|
|
||||||
whenLaptopLidClosed = "hibernate";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -125,7 +125,6 @@ for_window [app_id=mpv] inhibit_idle visible, floating enable, sticky enable
|
||||||
for_window [app_id="LibreWolf" title="^Extension"] floating enable
|
for_window [app_id="LibreWolf" title="^Extension"] floating enable
|
||||||
for_window [floating] border csd
|
for_window [floating] border csd
|
||||||
for_window [app_id="Bitwarden"] floating enable
|
for_window [app_id="Bitwarden"] floating enable
|
||||||
for_window [app_id=anki title="Add"] floating enable
|
|
||||||
|
|
||||||
bar {
|
bar {
|
||||||
swaybar_command waybar
|
swaybar_command waybar
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vscodium;
|
|
||||||
enableUpdateCheck = false;
|
|
||||||
enableExtensionUpdateCheck = false;
|
|
||||||
mutableExtensionsDir = false;
|
|
||||||
extensions = with pkgs.vscode-extensions; [
|
|
||||||
vscodevim.vim
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
editorconfig.editorconfig
|
|
||||||
github.github-vscode-theme
|
|
||||||
github.copilot
|
|
||||||
rust-lang.rust-analyzer
|
|
||||||
];
|
|
||||||
userSettings = {
|
|
||||||
"workbench.colorTheme" = "GitHub Dark Default";
|
|
||||||
"files.autoSave" = "afterDelay";
|
|
||||||
"nix.enableLanguageServer" = true;
|
|
||||||
"nix.serverPath" = "nixd";
|
|
||||||
"editor.fontFamily" = "IBM Plex Mono";
|
|
||||||
"editor.fontSize" = 16;
|
|
||||||
"editor.wordWrap" = "on";
|
|
||||||
|
|
||||||
# vim mode settings
|
|
||||||
"vim.handleKeys" = {
|
|
||||||
"<C-b>" = false; # file tree toggle
|
|
||||||
};
|
|
||||||
"vim.normalModeKeyBindings" = [
|
|
||||||
{
|
|
||||||
"before" = [ ";" ];
|
|
||||||
"after" = [ ":" ];
|
|
||||||
"silent" = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
"workbench.startupEditor" = "none";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,8 +6,8 @@
|
||||||
"margin-left": 0,
|
"margin-left": 0,
|
||||||
"margin-right": 0,
|
"margin-right": 0,
|
||||||
"margin-top": 0,
|
"margin-top": 0,
|
||||||
"modules-left": ["niri/workspaces", "clock#time", "clock#date", "battery"], // Sets modules for the left of the bar
|
"modules-left": ["sway/workspaces", "clock#time", "clock#date", "battery"], // Sets modules for the left of the bar
|
||||||
"modules-center": ["niri/window"], // Set modules for the center of the bar
|
"modules-center": ["sway/window"], // Set modules for the center of the bar
|
||||||
"modules-right": ["tray", "temperature", "cpu", "memory", "wireplumber"], // Set modules for the right of the bar
|
"modules-right": ["tray", "temperature", "cpu", "memory", "wireplumber"], // Set modules for the right of the bar
|
||||||
"clock#time": {
|
"clock#time": {
|
||||||
"format": "<span color=\"#7aa2f7\"> </span>{:%H:%M:%S}",
|
"format": "<span color=\"#7aa2f7\"> </span>{:%H:%M:%S}",
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
"on-click": "pavucontrol",
|
"on-click": "pavucontrol",
|
||||||
"interval": 4,
|
"interval": 4,
|
||||||
},
|
},
|
||||||
"niri/window": {
|
"sway/window": {
|
||||||
"max-length": 64,
|
"max-length": 64,
|
||||||
},
|
},
|
||||||
"tray": {
|
"tray": {
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
foot.terminfo
|
||||||
attic-server
|
attic-server
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./common.nix
|
|
||||||
];
|
|
||||||
home = {
|
|
||||||
username = "codespace";
|
|
||||||
homeDirectory = "/home/codespace";
|
|
||||||
stateVersion = "24.05";
|
|
||||||
};
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
systemd.user.startServices = "sd-switch";
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
foot.terminfo
|
|
||||||
attic-client
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -30,7 +30,7 @@
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "cy";
|
userName = "cy";
|
||||||
userEmail = "cy@cy7.sh";
|
userEmail = "hi@cything.io";
|
||||||
delta = {
|
delta = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = {
|
options = {
|
||||||
|
@ -44,11 +44,7 @@
|
||||||
rebase = true;
|
rebase = true;
|
||||||
autostash = true;
|
autostash = true;
|
||||||
};
|
};
|
||||||
merge = {
|
merge.tool = "vimdiff";
|
||||||
tool = "vimdiff";
|
|
||||||
keepBackup = false;
|
|
||||||
prompt = false;
|
|
||||||
};
|
|
||||||
rebase = {
|
rebase = {
|
||||||
stat = true;
|
stat = true;
|
||||||
autoStash = true;
|
autoStash = true;
|
||||||
|
@ -56,10 +52,12 @@
|
||||||
updateRefs = true;
|
updateRefs = true;
|
||||||
};
|
};
|
||||||
help.autocorrect = 1;
|
help.autocorrect = 1;
|
||||||
"mergetool \"vimdiff\"".cmd = "nvim -d $LOCAL $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'";
|
mergetool = {
|
||||||
|
prompt = false;
|
||||||
|
path = "nvim-open";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
programs.ripgrep.enable = true;
|
programs.ripgrep.enable = true;
|
||||||
programs.man.generateCaches = true;
|
programs.man.generateCaches = true;
|
||||||
programs.fd.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,11 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./common.nix
|
./common.nix
|
||||||
../foot.nix
|
../foot.nix
|
||||||
../niri
|
|
||||||
../irssi.nix
|
|
||||||
../kitty.nix
|
|
||||||
../vscode.nix
|
|
||||||
../plasma.nix
|
|
||||||
];
|
];
|
||||||
home = {
|
home = {
|
||||||
username = "yt";
|
username = "yt";
|
||||||
|
@ -22,34 +16,31 @@
|
||||||
|
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
# keep this commented when using plasma
|
qt = {
|
||||||
# otherwise "system settings" in KDE will not function
|
enable = true;
|
||||||
# qt = {
|
platformTheme.name = "gtk";
|
||||||
# enable = true;
|
style.name = "adwaita-dark";
|
||||||
# platformTheme.name = "kde";
|
style.package = pkgs.adwaita-qt;
|
||||||
# style.name = "breeze-dark";
|
};
|
||||||
# style.package = pkgs.kdePackages.breeze;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# this one too
|
gtk = {
|
||||||
# gtk = {
|
enable = true;
|
||||||
# enable = true;
|
cursorTheme = {
|
||||||
# theme = {
|
package = pkgs.bibata-cursors;
|
||||||
# package = pkgs.adw-gtk3;
|
name = "Bibata-Modern";
|
||||||
# name = "adw-gtk3-dark";
|
};
|
||||||
# };
|
theme = {
|
||||||
# iconTheme = {
|
package = pkgs.adw-gtk3;
|
||||||
# package = pkgs.adwaita-icon-theme;
|
name = "adw-gtk3-dark";
|
||||||
# name = "Adwaita";
|
};
|
||||||
# };
|
iconTheme = {
|
||||||
# };
|
package = pkgs.adwaita-icon-theme;
|
||||||
|
name = "Adwaita";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
home.pointerCursor = {
|
home.sessionVariables = {
|
||||||
package = pkgs.bibata-cursors;
|
ANKI_WAYLAND = "1";
|
||||||
name = "Bibata-Modern-Classic";
|
|
||||||
size = 23;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
|
@ -59,6 +50,7 @@
|
||||||
bitwarden-desktop
|
bitwarden-desktop
|
||||||
bitwarden-cli
|
bitwarden-cli
|
||||||
fastfetch
|
fastfetch
|
||||||
|
discord
|
||||||
nwg-look
|
nwg-look
|
||||||
kdePackages.gwenview
|
kdePackages.gwenview
|
||||||
kdePackages.okular
|
kdePackages.okular
|
||||||
|
@ -107,23 +99,6 @@
|
||||||
clang
|
clang
|
||||||
seahorse
|
seahorse
|
||||||
github-cli
|
github-cli
|
||||||
fuzzel
|
|
||||||
nixpkgs-review
|
|
||||||
just
|
|
||||||
hugo
|
|
||||||
ghidra-bin
|
|
||||||
sequoia
|
|
||||||
sccache
|
|
||||||
awscli2
|
|
||||||
lldb
|
|
||||||
(cutter.withPlugins (p: with p; [
|
|
||||||
rz-ghidra
|
|
||||||
jsdec
|
|
||||||
sigdb
|
|
||||||
]))
|
|
||||||
ida-free
|
|
||||||
patchelf
|
|
||||||
radare2
|
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.waybar.enable = true;
|
programs.waybar.enable = true;
|
||||||
|
@ -146,6 +121,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
|
sway.source = ../sway;
|
||||||
rofi.source = ../rofi;
|
rofi.source = ../rofi;
|
||||||
waybar.source = ../waybar;
|
waybar.source = ../waybar;
|
||||||
mpv.source = ../mpv;
|
mpv.source = ../mpv;
|
||||||
|
@ -161,36 +137,5 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.direnv = {
|
services.gnome-keyring.enable = true;
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.git.extraConfig = {
|
|
||||||
user = {
|
|
||||||
signingKey = "~/.ssh/id.key";
|
|
||||||
};
|
|
||||||
gpg.format = "ssh";
|
|
||||||
commit.gpgsign = true;
|
|
||||||
core.sshCommand = "ssh -i ~/.ssh/id.key";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
# to make ghidra work on xwayland
|
|
||||||
_JAVA_AWT_WM_NONREPARENTING = 1;
|
|
||||||
|
|
||||||
# sccache stuff
|
|
||||||
RUSTC_WRAPPER = "${lib.getExe pkgs.sccache}";
|
|
||||||
SCCACHE_BUCKET = "sccache";
|
|
||||||
SCCACHE_REGION = "earth";
|
|
||||||
SCCACHE_ENDPOINT = "https://sccache.s3.cy7.sh";
|
|
||||||
SCCACHE_ALLOW_CORE_DUMPS = "true";
|
|
||||||
SCCACHE_S3_USE_SSL = "true";
|
|
||||||
SCCACHE_CACHE_MULTIARCH = "true";
|
|
||||||
SCCACHE_LOG_LEVEL = "warn";
|
|
||||||
AWS_DEFAULT_REGION = "earth";
|
|
||||||
AWS_ENDPOINT_URL = "https://s3.cy7.sh";
|
|
||||||
AWS_ACCESS_KEY_ID = "$(cat /run/secrets/aws/key_id)";
|
|
||||||
AWS_SECRET_ACCESS_KEY = "$(cat /run/secrets/aws/key_secret)";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,6 +39,11 @@
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
# disable control+s to pause terminal
|
# disable control+s to pause terminal
|
||||||
unsetopt FLOW_CONTROL
|
unsetopt FLOW_CONTROL
|
||||||
|
# manually integrate fzf cause we need to make sure zsh-vi-mode
|
||||||
|
# won't override C-r
|
||||||
|
function zvm_after_init() {
|
||||||
|
eval "$(${pkgs.fzf}/bin/fzf --zsh)"
|
||||||
|
}
|
||||||
|
|
||||||
# useful emacs mode bindings
|
# useful emacs mode bindings
|
||||||
bindkey -M viins "^E" end-of-line
|
bindkey -M viins "^E" end-of-line
|
||||||
|
@ -82,9 +87,9 @@
|
||||||
"ta" = "tmux new-session -A -s";
|
"ta" = "tmux new-session -A -s";
|
||||||
"se" = "sudoedit";
|
"se" = "sudoedit";
|
||||||
"s" = "sudo";
|
"s" = "sudo";
|
||||||
"nrs" = "sudo nixos-rebuild switch -L --flake .";
|
"nrs" = "sudo nixos-rebuild switch --flake .";
|
||||||
"nrt" = "sudo nixos-rebuild test -L --flake .";
|
"nrt" = "sudo nixos-rebuild test --flake .";
|
||||||
"hrs" = "home-manager switch -L --flake .";
|
"hrs" = "home-manager switch --flake .";
|
||||||
"g" = "git";
|
"g" = "git";
|
||||||
"ga" = "git add";
|
"ga" = "git add";
|
||||||
"gaa" = "git add --all";
|
"gaa" = "git add --all";
|
||||||
|
@ -111,5 +116,4 @@
|
||||||
programs.zoxide.enableZshIntegration = true;
|
programs.zoxide.enableZshIntegration = true;
|
||||||
programs.eza.enableZshIntegration = true;
|
programs.eza.enableZshIntegration = true;
|
||||||
programs.nix-index.enableZshIntegration = false;
|
programs.nix-index.enableZshIntegration = false;
|
||||||
programs.direnv.enableZshIntegration = false;
|
|
||||||
}
|
}
|
||||||
|
|
89
hosts/chunk/Caddyfile
Normal file
89
hosts/chunk/Caddyfile
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
acme_ca https://acme.zerossl.com/v2/DV90
|
||||||
|
acme_eab {
|
||||||
|
key_id {$EAB_KEY_ID}
|
||||||
|
mac_key {$EAB_MAC_KEY}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
(common) {
|
||||||
|
encode zstd gzip
|
||||||
|
header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
|
||||||
|
}
|
||||||
|
|
||||||
|
git.cything.io {
|
||||||
|
import common
|
||||||
|
|
||||||
|
# wrap in route so things are evaluated in the order written
|
||||||
|
route {
|
||||||
|
# rewrite gitlab URIs to make it work with forgejo
|
||||||
|
uri path_regexp /-/ /
|
||||||
|
uri replace /blob/ /src/
|
||||||
|
redir https://git.cy7.sh{uri} permanent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
git.cy7.sh {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:3000
|
||||||
|
}
|
||||||
|
|
||||||
|
rss.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8080
|
||||||
|
}
|
||||||
|
|
||||||
|
photos.cy7.sh {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:2283
|
||||||
|
}
|
||||||
|
|
||||||
|
chat.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8448
|
||||||
|
}
|
||||||
|
|
||||||
|
pass.cy7.sh {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8081
|
||||||
|
}
|
||||||
|
|
||||||
|
dns.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8082
|
||||||
|
}
|
||||||
|
|
||||||
|
pad.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8085
|
||||||
|
}
|
||||||
|
|
||||||
|
red.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8087
|
||||||
|
}
|
||||||
|
|
||||||
|
grafana.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8088
|
||||||
|
}
|
||||||
|
|
||||||
|
element.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8089
|
||||||
|
}
|
||||||
|
|
||||||
|
cache.cything.io {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:8090
|
||||||
|
}
|
||||||
|
|
||||||
|
s3.cy7.sh {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:3900
|
||||||
|
}
|
||||||
|
|
||||||
|
admin.s3.cy7.sh {
|
||||||
|
import common
|
||||||
|
reverse_proxy localhost:3903
|
||||||
|
}
|
|
@ -21,9 +21,4 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."dns.cything.io".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8082
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."cache.cything.io".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8090
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
{ inputs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
services.conduwuit = {
|
services.conduwuit = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package =
|
|
||||||
inputs.conduwuit.packages.x86_64-linux.static-x86_64-linux-musl-all-features-x86_64-haswell-optimised;
|
|
||||||
settings.global = {
|
settings.global = {
|
||||||
port = [ 8448 ];
|
port = [ 8448 ];
|
||||||
server_name = "cything.io";
|
server_name = "cything.io";
|
||||||
allow_check_for_updates = true;
|
allow_check_for_updates = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."chat.cything.io".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8448
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -24,7 +26,6 @@
|
||||||
./attic.nix
|
./attic.nix
|
||||||
./forgejo.nix
|
./forgejo.nix
|
||||||
./garage.nix
|
./garage.nix
|
||||||
./tailscale.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
|
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
|
||||||
|
@ -65,19 +66,14 @@
|
||||||
"attic/env" = {
|
"attic/env" = {
|
||||||
sopsFile = ../../secrets/services/attic.yaml;
|
sopsFile = ../../secrets/services/attic.yaml;
|
||||||
};
|
};
|
||||||
|
|
||||||
"garage/env" = {
|
"garage/env" = {
|
||||||
sopsFile = ../../secrets/services/garage.yaml;
|
sopsFile = ../../secrets/services/garage.yaml;
|
||||||
};
|
};
|
||||||
"tailscale/auth" = {
|
|
||||||
sopsFile = ../../secrets/services/tailscale.yaml;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot.loader.grub.enable = true;
|
||||||
loader.grub.enable = true;
|
boot.loader.grub.device = "/dev/vda";
|
||||||
loader.grub.device = "/dev/vda";
|
|
||||||
kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
|
@ -181,13 +177,11 @@
|
||||||
programs.gnupg.agent.enable = true;
|
programs.gnupg.agent.enable = true;
|
||||||
programs.git.enable = true;
|
programs.git.enable = true;
|
||||||
|
|
||||||
my.caddy.enable = true;
|
services.caddy = {
|
||||||
services.caddy.virtualHosts."cy7.sh" = {
|
enable = true;
|
||||||
serverAliases = [ "www.cy7.sh" ];
|
configFile = ./Caddyfile;
|
||||||
extraConfig = ''
|
environmentFile = config.sops.secrets."caddy/env".path;
|
||||||
import common
|
logFormat = lib.mkForce "level INFO";
|
||||||
redir https://cything.io temporary
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# container stuff
|
# container stuff
|
||||||
|
@ -203,5 +197,4 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
virtualisation.oci-containers.backend = "podman";
|
virtualisation.oci-containers.backend = "podman";
|
||||||
environment.enableAllTerminfo = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,4 @@
|
||||||
port = 8112;
|
port = 8112;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."t.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8112
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,9 @@
|
||||||
virtualisation.oci-containers.containers.element = {
|
virtualisation.oci-containers.containers.element = {
|
||||||
image = "vectorim/element-web";
|
image = "vectorim/element-web";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
ports = [ "127.0.0.1:8089:8089" ];
|
ports = [ "127.0.0.1:8089:80" ];
|
||||||
pull = "newer";
|
pull = "newer";
|
||||||
networks = [ "element-net" ];
|
networks = [ "element-net" ];
|
||||||
environment = {
|
|
||||||
ELEMENT_WEB_PORT = "8089";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.create-element-net = {
|
systemd.services.create-element-net = {
|
||||||
|
@ -25,9 +22,4 @@
|
||||||
${pkgs.podman}/bin/podman network create element-net
|
${pkgs.podman}/bin/podman network create element-net
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."element.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8089
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
{ pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
services.forgejo = {
|
services.forgejo = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.forgejo; # uses forgejo-lts by default
|
|
||||||
user = "git";
|
user = "git";
|
||||||
group = "git";
|
group = "git";
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -11,17 +10,16 @@
|
||||||
HTTP_PORT = 3000;
|
HTTP_PORT = 3000;
|
||||||
HTTP_ADDR = "127.0.0.1";
|
HTTP_ADDR = "127.0.0.1";
|
||||||
DOMAIN = "git.cy7.sh";
|
DOMAIN = "git.cy7.sh";
|
||||||
LANDING_PAGE = "explore";
|
LANDING_PAGE = "/cy";
|
||||||
};
|
};
|
||||||
session.COOKIE_SECURE = true;
|
session.COOKIE_SECURE = true;
|
||||||
service.DISABLE_REGISTRATION = true;
|
service.DISABLE_REGISTRATION = true;
|
||||||
ui = {
|
ui = {
|
||||||
AMBIGUOUS_UNICODE_DETECTION = false;
|
AMBIGUOUS_UNICODE_DETECTION = false;
|
||||||
DEFAULT_THEME = "forgejo-dark";
|
DEFAULT_THEME = "gitea-dark";
|
||||||
};
|
};
|
||||||
actions.ENABLED = false;
|
actions.ENABLED = false;
|
||||||
repository.ENABLE_PUSH_CREATE_USER = true;
|
repository.ENABLE_PUSH_CREATE_USER = true;
|
||||||
indexer.REPO_INDEXER_ENABLED = true;
|
|
||||||
};
|
};
|
||||||
database = {
|
database = {
|
||||||
type = "postgres";
|
type = "postgres";
|
||||||
|
@ -30,24 +28,4 @@
|
||||||
name = "git";
|
name = "git";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."git.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
|
|
||||||
# renamed repo
|
|
||||||
uri replace /cy/infra /cy/nixos-config
|
|
||||||
|
|
||||||
reverse_proxy localhost:3000
|
|
||||||
'';
|
|
||||||
services.caddy.virtualHosts."git.cything.io".extraConfig = ''
|
|
||||||
import common
|
|
||||||
|
|
||||||
# wrap in route so things are evaluated in the order written
|
|
||||||
route {
|
|
||||||
# rewrite gitlab URIs to make it work with forgejo
|
|
||||||
uri path_regexp /-/ /
|
|
||||||
uri replace /blob/ /src/
|
|
||||||
redir https://git.cy7.sh{uri} permanent
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
{ config, pkgs, ... }:
|
{config, pkgs, ...}: {
|
||||||
{
|
|
||||||
services.garage = {
|
services.garage = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.garage;
|
package = pkgs.garage;
|
||||||
|
@ -8,12 +7,6 @@
|
||||||
s3_api = {
|
s3_api = {
|
||||||
s3_region = "earth";
|
s3_region = "earth";
|
||||||
api_bind_addr = "[::]:3900";
|
api_bind_addr = "[::]:3900";
|
||||||
root_domain = ".s3.cy7.sh";
|
|
||||||
};
|
|
||||||
s3_web = {
|
|
||||||
bind_addr = "[::]:3902";
|
|
||||||
root_domain = ".web.s3.cy7.sh";
|
|
||||||
index = "index.html";
|
|
||||||
};
|
};
|
||||||
admin.api_bind_addr = "[::]:3903";
|
admin.api_bind_addr = "[::]:3903";
|
||||||
rpc_bind_addr = "[::]:3901";
|
rpc_bind_addr = "[::]:3901";
|
||||||
|
@ -22,22 +15,4 @@
|
||||||
};
|
};
|
||||||
environmentFile = config.sops.secrets."garage/env".path;
|
environmentFile = config.sops.secrets."garage/env".path;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts = {
|
|
||||||
"s3.cy7.sh" = {
|
|
||||||
serverAliases = [ "*.s3.cy7.sh" ];
|
|
||||||
extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:3900
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
"*.web.s3.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:3902
|
|
||||||
'';
|
|
||||||
"admin.s3.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:3903
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,9 +31,4 @@
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."grafana.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8088
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,4 @@
|
||||||
protocolUseSSL = true;
|
protocolUseSSL = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."pad.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8085
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,9 +95,4 @@ in
|
||||||
${pkgs.podman}/bin/podman network create immich-net
|
${pkgs.podman}/bin/podman network create immich-net
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."photos.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:2283
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,13 +5,8 @@
|
||||||
adminCredentialsFile = config.sops.secrets."miniflux/env".path;
|
adminCredentialsFile = config.sops.secrets."miniflux/env".path;
|
||||||
config = {
|
config = {
|
||||||
PORT = 8080;
|
PORT = 8080;
|
||||||
BASE_URL = "https://rss.cy7.sh";
|
BASE_URL = "https://rss.cything.io";
|
||||||
FORCE_REFRESH_INTERVAL = 0; # don't rate limit me
|
FORCE_REFRESH_INTERVAL = 0; # don't rate limit me
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."rss.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8080
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,4 @@
|
||||||
REDLIB_ROBOTS_DISABLE_INDEXING = "on";
|
REDLIB_ROBOTS_DISABLE_INDEXING = "on";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."red.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8087
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
authKeyFile = config.sops.secrets."tailscale/auth".path;
|
|
||||||
extraUpFlags = [
|
|
||||||
"--advertise-exit-node"
|
|
||||||
"--accept-dns=false"
|
|
||||||
];
|
|
||||||
useRoutingFeatures = "server";
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -10,9 +10,4 @@
|
||||||
DATABASE_URL = "postgresql://vaultwarden:vaultwarden@127.0.0.1:5432/vaultwarden";
|
DATABASE_URL = "postgresql://vaultwarden:vaultwarden@127.0.0.1:5432/vaultwarden";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.caddy.virtualHosts."pass.cy7.sh".extraConfig = ''
|
|
||||||
import common
|
|
||||||
reverse_proxy localhost:8081
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ inputs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
nix = {
|
nix = {
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -9,21 +9,8 @@
|
||||||
"root"
|
"root"
|
||||||
"@wheel"
|
"@wheel"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [ "central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg=" ];
|
||||||
"central:uWhjva6m6dhC2hqNisjn2hXGvdGBs19vPkA1dPEuwFg="
|
substituters = [ "https://cache.cything.io/central" ];
|
||||||
"niri.cachix.org-1:Wv0OmO7PsuocRKzfDoJ3mulSl7Z6oezYhGhR+3W2964="
|
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
||||||
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
|
|
||||||
"cything.cachix.org-1:xqW1W5NNL+wrM9wfSELb0MLj/harD2ZyB4HbdaMyvPI="
|
|
||||||
];
|
|
||||||
substituters = [
|
|
||||||
"https://aseipp-nix-cache.global.ssl.fastly.net"
|
|
||||||
"https://cache.cything.io/central"
|
|
||||||
"https://niri.cachix.org"
|
|
||||||
"https://nix-community.cachix.org"
|
|
||||||
"https://cache.garnix.io"
|
|
||||||
"https://cything.cachix.org"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
channel.enable = false;
|
channel.enable = false;
|
||||||
optimise = {
|
optimise = {
|
||||||
|
@ -37,9 +24,8 @@
|
||||||
options = "--delete-older-than 14d";
|
options = "--delete-older-than 14d";
|
||||||
};
|
};
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
builders-use-substitutes = true
|
builders-use-substitutes = true
|
||||||
'';
|
'';
|
||||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
|
||||||
};
|
};
|
||||||
time.timeZone = "America/Toronto";
|
time.timeZone = "America/Toronto";
|
||||||
networking.firewall.logRefusedConnections = false;
|
networking.firewall.logRefusedConnections = false;
|
||||||
|
|
|
@ -13,16 +13,14 @@
|
||||||
|
|
||||||
cything.io {
|
cything.io {
|
||||||
import common
|
import common
|
||||||
|
reverse_proxy localhost:8084
|
||||||
|
|
||||||
header /.well-known/matrix/* Content-Type application/json
|
header /.well-known/matrix/* Content-Type application/json
|
||||||
header /.well-known/matrix/* Access-Control-Allow-Origin *
|
header /.well-known/matrix/* Access-Control-Allow-Origin *
|
||||||
header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD
|
header /.well-known/matrix/* Access-Control-Allow-Methods GET,POST,PUT,DELETE,OPTIONS,PATCH,HEAD
|
||||||
header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept
|
header /.well-known/matrix/* Access-Control-Allow-Headers X-Requested-With,Content-Type,Authorization,Origin,Accept
|
||||||
route {
|
respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"}
|
||||||
respond /.well-known/matrix/server {"m.server":"chat.cything.io:443"}
|
respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}}
|
||||||
respond /.well-known/matrix/client {"m.server":{"base_url":"https://chat.cything.io"},"m.homeserver":{"base_url":"https://chat.cything.io"},"org.matrix.msc3575.proxy":{"url":"https://chat.cything.io"}}
|
|
||||||
redir https://cy7.sh/posts{uri} permanent
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
www.cything.io {
|
www.cything.io {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -9,7 +10,12 @@
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../common.nix
|
../common.nix
|
||||||
../zsh.nix
|
../zsh.nix
|
||||||
./tailscale.nix
|
{
|
||||||
|
disabledModules = [
|
||||||
|
"services/backup/btrbk.nix"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
(inputs.nixpkgs-btrbk + "/nixos/modules/services/backup/btrbk.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
|
sops.age.keyFile = "/root/.config/sops/age/keys.txt";
|
||||||
|
@ -33,17 +39,6 @@
|
||||||
sopsFile = ../../secrets/newsboat.yaml;
|
sopsFile = ../../secrets/newsboat.yaml;
|
||||||
owner = "yt";
|
owner = "yt";
|
||||||
};
|
};
|
||||||
"tailscale/auth" = {
|
|
||||||
sopsFile = ../../secrets/services/tailscale.yaml;
|
|
||||||
};
|
|
||||||
"aws/key_id" = {
|
|
||||||
sopsFile = ../../secrets/yt/aws.yaml;
|
|
||||||
owner = "yt";
|
|
||||||
};
|
|
||||||
"aws/key_secret" = {
|
|
||||||
sopsFile = ../../secrets/yt/aws.yaml;
|
|
||||||
owner = "yt";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
@ -53,7 +48,7 @@
|
||||||
efi.canTouchEfiVariables = false; # toggle when installing
|
efi.canTouchEfiVariables = false; # toggle when installing
|
||||||
};
|
};
|
||||||
tmp.cleanOnBoot = true;
|
tmp.cleanOnBoot = true;
|
||||||
kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
kernelPackages = pkgs.linuxPackages_latest;
|
||||||
extraModulePackages = with config.boot.kernelPackages; [
|
extraModulePackages = with config.boot.kernelPackages; [
|
||||||
rtl8821ce
|
rtl8821ce
|
||||||
];
|
];
|
||||||
|
@ -70,7 +65,6 @@
|
||||||
pkiBundle = "/var/lib/sbctl";
|
pkiBundle = "/var/lib/sbctl";
|
||||||
};
|
};
|
||||||
kernel.sysctl."kernel.sysrq" = 1;
|
kernel.sysctl."kernel.sysrq" = 1;
|
||||||
binfmt.emulatedSystems = [ "aarch64-linux" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
|
@ -141,7 +135,6 @@
|
||||||
"wheel"
|
"wheel"
|
||||||
"libvirtd"
|
"libvirtd"
|
||||||
"docker"
|
"docker"
|
||||||
"disk"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
@ -174,8 +167,6 @@
|
||||||
haskell-language-server
|
haskell-language-server
|
||||||
ghc
|
ghc
|
||||||
sbctl # secure boot
|
sbctl # secure boot
|
||||||
wine-wayland
|
|
||||||
wine64
|
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
|
@ -189,12 +180,6 @@
|
||||||
services.displayManager = {
|
services.displayManager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
autoLogin.user = "yt";
|
autoLogin.user = "yt";
|
||||||
defaultSession = "plasma";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
wayland.enable = true;
|
|
||||||
autoNumlock = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
|
@ -210,6 +195,11 @@
|
||||||
};
|
};
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
|
|
||||||
|
programs.sway = {
|
||||||
|
enable = true;
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
};
|
||||||
|
|
||||||
my.backup = {
|
my.backup = {
|
||||||
enable = true;
|
enable = true;
|
||||||
jobName = "ytnixRsync";
|
jobName = "ytnixRsync";
|
||||||
|
@ -284,56 +274,12 @@
|
||||||
programs.virt-manager.enable = true;
|
programs.virt-manager.enable = true;
|
||||||
|
|
||||||
services.usbmuxd.enable = true;
|
services.usbmuxd.enable = true;
|
||||||
programs.nix-ld.dev = {
|
programs.nix-ld.enable = true;
|
||||||
enable = true;
|
|
||||||
# nix run github:thiagokokada/nix-alien#nix-alien-find-libs ./<binary>
|
|
||||||
libraries = with pkgs; [
|
|
||||||
mesa
|
|
||||||
extest
|
|
||||||
stdenv.cc.cc
|
|
||||||
libGL
|
|
||||||
fontconfig
|
|
||||||
libxkbcommon
|
|
||||||
zlib
|
|
||||||
libxml2
|
|
||||||
dbus
|
|
||||||
freetype
|
|
||||||
egl-wayland
|
|
||||||
waylandpp
|
|
||||||
cairo
|
|
||||||
xcb-util-cursor
|
|
||||||
libplist
|
|
||||||
p11-kit
|
|
||||||
kdePackages.qtwayland
|
|
||||||
qt6.qtwayland
|
|
||||||
libsForQt5.qt5.qtwayland
|
|
||||||
xorg.libX11
|
|
||||||
xorg.libxcb
|
|
||||||
xorg.xcbutilwm
|
|
||||||
xorg.xcbutilimage
|
|
||||||
xorg.xcbutilkeysyms
|
|
||||||
xorg.xcbutilrenderutil
|
|
||||||
xorg.libXScrnSaver
|
|
||||||
xorg.libXcomposite
|
|
||||||
xorg.libXcursor
|
|
||||||
xorg.libXdamage
|
|
||||||
xorg.libXext
|
|
||||||
xorg.libXfixes
|
|
||||||
xorg.libXi
|
|
||||||
xorg.libXrandr
|
|
||||||
xorg.libXrender
|
|
||||||
xorg.libXtst
|
|
||||||
xorg.libxkbfile
|
|
||||||
xorg.libxshmfence
|
|
||||||
];
|
|
||||||
};
|
|
||||||
programs.evolution.enable = true;
|
programs.evolution.enable = true;
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wlr.enable = true;
|
wlr.enable = true;
|
||||||
xdgOpenUsePortal = true;
|
|
||||||
extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-gnome ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.obs-studio = {
|
programs.obs-studio = {
|
||||||
|
@ -376,23 +322,4 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
services.trezord.enable = true;
|
services.trezord.enable = true;
|
||||||
|
|
||||||
programs.niri.enable = true;
|
|
||||||
programs.niri.package = pkgs.niri-unstable;
|
|
||||||
programs.xwayland.enable = true;
|
|
||||||
|
|
||||||
services.udev.extraHwdb = ''
|
|
||||||
SUBSYSTEM=="usb", SYSFS{idVendor}=="090c", SYSFS{idProduct}=="1000", ACTION=="add", GROUP="users", MODE="0664"
|
|
||||||
'';
|
|
||||||
|
|
||||||
programs.ssh = {
|
|
||||||
askPassword = "${pkgs.seahorse}/libexec/seahorse/ssh-askpass";
|
|
||||||
startAgent = true;
|
|
||||||
enableAskPassword = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.desktopManager.plasma6 = {
|
|
||||||
enable = true;
|
|
||||||
enableQt5Integration = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
authKeyFile = config.sops.secrets."tailscale/auth".path;
|
|
||||||
openFirewall = true;
|
|
||||||
useRoutingFeatures = "client";
|
|
||||||
extraUpFlags = [
|
|
||||||
"--exit-node=100.122.132.30"
|
|
||||||
"--accept-dns=false"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
18
justfile
18
justfile
|
@ -1,18 +0,0 @@
|
||||||
update:
|
|
||||||
git branch -D update || true
|
|
||||||
git switch -c update
|
|
||||||
nix flake update
|
|
||||||
git add flake.lock
|
|
||||||
git commit -s -m "flake update"
|
|
||||||
git push -f
|
|
||||||
git switch main
|
|
||||||
|
|
||||||
upgrade:
|
|
||||||
git switch update
|
|
||||||
sudo nixos-rebuild switch -L --flake . --use-substitutes
|
|
||||||
nixos-rebuild switch -L --flake .#chunk --target-host root@2a0f:85c1:840:2bfb::1 --use-substitutes
|
|
||||||
nixos-rebuild switch -L --flake .#titan --target-host root@www.cything.io --use-substitutes
|
|
||||||
home-manager -L switch --flake .
|
|
||||||
git switch main
|
|
||||||
git merge update
|
|
||||||
git branch -d update
|
|
|
@ -2,6 +2,7 @@
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
inputs,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -30,6 +31,13 @@ let
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
imports = [
|
||||||
|
{
|
||||||
|
disabledModules = [ "services/backup/borgbackup.nix" ];
|
||||||
|
}
|
||||||
|
(inputs.nixpkgs-borg + "/nixos/modules/services/backup/borgbackup.nix")
|
||||||
|
];
|
||||||
|
|
||||||
options.my.backup = {
|
options.my.backup = {
|
||||||
enable = lib.mkEnableOption "backup";
|
enable = lib.mkEnableOption "backup";
|
||||||
paths = lib.mkOption {
|
paths = lib.mkOption {
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.my.caddy;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.my.caddy = {
|
|
||||||
enable = lib.mkEnableOption "caddy reverse proxy";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.caddy = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.caddy.withPlugins {
|
|
||||||
plugins = [
|
|
||||||
# error message will tell you the correct version tag to use
|
|
||||||
# (still need the @ to pass nix config check)
|
|
||||||
"github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e"
|
|
||||||
];
|
|
||||||
hash = "sha256-jCcSzenewQiW897GFHF9WAcVkGaS/oUu63crJu7AyyQ=";
|
|
||||||
};
|
|
||||||
logFormat = lib.mkForce "level INFO";
|
|
||||||
acmeCA = "https://acme-v02.api.letsencrypt.org/directory";
|
|
||||||
extraConfig = ''
|
|
||||||
(common) {
|
|
||||||
encode zstd gzip
|
|
||||||
header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
globalConfig = ''
|
|
||||||
acme_dns cloudflare {$CLOUDFLARE_KEY}
|
|
||||||
'';
|
|
||||||
environmentFile = config.sops.secrets."caddy/env".path;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -2,6 +2,5 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./backup.nix
|
./backup.nix
|
||||||
./caddy.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,23 @@
|
||||||
final: prev:
|
final: prev: {
|
||||||
let
|
|
||||||
newRust = final.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;
|
|
||||||
newRustPlatform = final.makeRustPlatform {
|
|
||||||
cargo = newRust;
|
|
||||||
rustc = newRust;
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
conduwuit = prev.conduwuit.override (old: {
|
conduwuit = prev.conduwuit.override (old: {
|
||||||
rustPlatform = newRustPlatform // {
|
rustPlatform = old.rustPlatform // {
|
||||||
buildRustPackage =
|
buildRustPackage =
|
||||||
args:
|
args:
|
||||||
newRustPlatform.buildRustPackage (
|
old.rustPlatform.buildRustPackage (
|
||||||
args
|
args
|
||||||
// {
|
// {
|
||||||
version = "0.5.0-rc2";
|
version = "0.5.0-rc2";
|
||||||
src = final.fetchFromGitHub {
|
src = final.fetchFromGitHub {
|
||||||
owner = "girlbossceo";
|
owner = "girlbossceo";
|
||||||
repo = "conduwuit";
|
repo = "conduwuit";
|
||||||
rev = "5b8464252c2c03edf65e43153be026dbb768a12a";
|
rev = "8c74e35e7640a041c1f3496d82585e5240294352";
|
||||||
hash = "sha256-yNdxoVZX13QUDJYM6zTMY9ExvacTqB+f0MLvDreSW8U=";
|
hash = "sha256-/2YD3TXT9pQ7oPEm9wDrq35afU88qukMIWqrBX5JyXg=";
|
||||||
};
|
};
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
cargoHash = "sha256-g19UujLI9d4aw+1273gfC17LDLOciqBvuLhe/VCsh80=";
|
cargoHash = "sha256-ZenMTCEJrALKQnW7/eXqrhFj+BedE9i/rQZMsPHl8K0=";
|
||||||
|
cargoPatches = [
|
||||||
|
./fix-lint.patch
|
||||||
|
];
|
||||||
# unstable has this set to "conduit"
|
# unstable has this set to "conduit"
|
||||||
meta.mainProgram = "conduwuit";
|
meta.mainProgram = "conduwuit";
|
||||||
|
|
||||||
|
|
74
overlay/conduwuit/fix-lint.patch
Normal file
74
overlay/conduwuit/fix-lint.patch
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
|
index 3f900a114..0d30a3fec 100644
|
||||||
|
--- a/Cargo.lock
|
||||||
|
+++ b/Cargo.lock
|
||||||
|
@@ -4493,7 +4493,7 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
|
||||||
|
[[package]]
|
||||||
|
name = "tracing"
|
||||||
|
version = "0.1.41"
|
||||||
|
-source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"pin-project-lite",
|
||||||
|
@@ -4504,7 +4504,7 @@ dependencies = [
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-attributes"
|
||||||
|
version = "0.1.28"
|
||||||
|
-source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
@@ -4514,7 +4514,7 @@ dependencies = [
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-core"
|
||||||
|
version = "0.1.33"
|
||||||
|
-source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
dependencies = [
|
||||||
|
"once_cell",
|
||||||
|
"valuable",
|
||||||
|
@@ -4534,7 +4534,7 @@ dependencies = [
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-log"
|
||||||
|
version = "0.2.0"
|
||||||
|
-source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
dependencies = [
|
||||||
|
"log",
|
||||||
|
"once_cell",
|
||||||
|
@@ -4562,7 +4562,7 @@ dependencies = [
|
||||||
|
[[package]]
|
||||||
|
name = "tracing-subscriber"
|
||||||
|
version = "0.3.18"
|
||||||
|
-source = "git+https://github.com/girlbossceo/tracing?rev=ccc4fbd8238c2d5ba354e61ec17ac610af11401d#ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+source = "git+https://github.com/girlbossceo/tracing?rev=3cf1c991e3660785d3855a34245949557db33209#3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
dependencies = [
|
||||||
|
"matchers",
|
||||||
|
"nu-ansi-term",
|
||||||
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
|
index 76acda807..a2916a6aa 100644
|
||||||
|
--- a/Cargo.toml
|
||||||
|
+++ b/Cargo.toml
|
||||||
|
@@ -513,16 +513,16 @@ version = "0.2"
|
||||||
|
# https://github.com/girlbossceo/tracing/commit/b348dca742af641c47bc390261f60711c2af573c
|
||||||
|
[patch.crates-io.tracing-subscriber]
|
||||||
|
git = "https://github.com/girlbossceo/tracing"
|
||||||
|
-rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+rev = "3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
[patch.crates-io.tracing]
|
||||||
|
git = "https://github.com/girlbossceo/tracing"
|
||||||
|
-rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+rev = "3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
[patch.crates-io.tracing-core]
|
||||||
|
git = "https://github.com/girlbossceo/tracing"
|
||||||
|
-rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+rev = "3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
[patch.crates-io.tracing-log]
|
||||||
|
git = "https://github.com/girlbossceo/tracing"
|
||||||
|
-rev = "ccc4fbd8238c2d5ba354e61ec17ac610af11401d"
|
||||||
|
+rev = "3cf1c991e3660785d3855a34245949557db33209"
|
||||||
|
|
||||||
|
# adds a tab completion callback: https://github.com/girlbossceo/rustyline-async/commit/de26100b0db03e419a3d8e1dd26895d170d1fe50
|
||||||
|
# adds event for CTRL+\: https://github.com/girlbossceo/rustyline-async/commit/67d8c49aeac03a5ef4e818f663eaa94dd7bf339b
|
|
@ -1,28 +0,0 @@
|
||||||
# This is the authoritiative configuration of this project's Rust toolchain.
|
|
||||||
#
|
|
||||||
# Other files that need upkeep when this changes:
|
|
||||||
#
|
|
||||||
# * `Cargo.toml`
|
|
||||||
# * `flake.nix`
|
|
||||||
#
|
|
||||||
# Search in those files for `rust-toolchain.toml` to find the relevant places.
|
|
||||||
# If you're having trouble making the relevant changes, bug a maintainer.
|
|
||||||
|
|
||||||
[toolchain]
|
|
||||||
channel = "1.84.0"
|
|
||||||
profile = "minimal"
|
|
||||||
components = [
|
|
||||||
# For rust-analyzer
|
|
||||||
"rust-src",
|
|
||||||
"rust-analyzer",
|
|
||||||
# For CI and editors
|
|
||||||
"rustfmt",
|
|
||||||
"clippy",
|
|
||||||
]
|
|
||||||
targets = [
|
|
||||||
#"x86_64-apple-darwin",
|
|
||||||
"x86_64-unknown-linux-gnu",
|
|
||||||
"x86_64-unknown-linux-musl",
|
|
||||||
"aarch64-unknown-linux-musl",
|
|
||||||
#"aarch64-apple-darwin",
|
|
||||||
]
|
|
|
@ -2,7 +2,6 @@ let
|
||||||
overlays = [
|
overlays = [
|
||||||
./conduwuit
|
./conduwuit
|
||||||
./attic
|
./attic
|
||||||
./vscode.nix
|
|
||||||
];
|
];
|
||||||
importedOverlays = map (m: import m) overlays;
|
importedOverlays = map (m: import m) overlays;
|
||||||
in
|
in
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
vscode-extensions = prev.vscode-extensions // {
|
|
||||||
github = prev.vscode-extensions.github // {
|
|
||||||
codespaces = prev.vscode-utils.buildVscodeMarketplaceExtension {
|
|
||||||
mktplcRef = {
|
|
||||||
publisher = "github";
|
|
||||||
name = "codespaces";
|
|
||||||
version = "1.17.3";
|
|
||||||
hash = "sha256-idJFYHJ4yeqpFZBX55Y0v1yfzgqyhS0MrC4yIto7i7w=";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,5 +1,5 @@
|
||||||
caddy:
|
caddy:
|
||||||
env: ENC[AES256_GCM,data:XyxcCVT+rwlS7A3xzUgGqpMoLwhfUJo2++zPTgoPt3q6Edt14bYQJsoSJXnKx/lGg/0ilNfEEg8AEnru/Mzx0bWedSdWuZ380l8wlLiucqQThhEBhEJlyd94BMNzhxFdj82w0ejp4oWb5By/WjkFNesvAyxPIo/Ir4S+fTgGpA1iO2Ms8Pdjp00qeXYsK1CfjaXOYlEP+8BxntN2JKLYb8Cgs7dLmHfUwP6gTFKlTukUTtQZYUw336q3TtGy,iv:Ab/E0ljUBxzWlXfAC2BXCYxlgo0ErvKFaubgVjFR3OU=,tag:Yr24/DofYS2lM6f2/1LQ3Q==,type:str]
|
env: ENC[AES256_GCM,data:uVCkVky5MRRhN+g4f634nBjvpcI5Ldy+eOKXg7eGu9foswTHA1SXDs67+Wuvo/jaPw7Zg67xKZRHnoTon1udQzyfu0T6pmVKfsUPewITYCd+qLTanFz6uVRUHzpUVwjCZNqB8gxNr/BiZ70NG4vQXRjgd3zKFrQYQBr4zSaP2vK1pRdbuQ==,iv:dQBfX4X8huUp2dqY3tEGW+BPZ/XADT10ptt85R7X+AY=,tag:cvMbFjkRHoxxnNfz8dGv5g==,type:str]
|
||||||
sops:
|
sops:
|
||||||
kms: []
|
kms: []
|
||||||
gcp_kms: []
|
gcp_kms: []
|
||||||
|
@ -33,8 +33,8 @@ sops:
|
||||||
Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH
|
Q2hBZE1FOHJ3aW5rVmoyK045eG11cmsKFOmP5iWONREZvxu0rM+fKMPQKgnYq5LH
|
||||||
AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ==
|
AKMZFsP7nnUxjdCXEA18sDg4Rf0qp8i3uQK3D6P7417j9ye/YZA4BQ==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-01-30T17:26:39Z"
|
lastmodified: "2024-12-17T03:25:37Z"
|
||||||
mac: ENC[AES256_GCM,data:saoalvnwHsv0CTw/cRZqibnH9oGoZTNwGUT7RePKRa8OwNzbUEzQt+Z1WrmmWoqR+omQXLE+lpOPv6uNYxvAWnIelzCGeBBCMSBxtjlTUsjts7oFo7d9C5SdTIOkzotDxryvjRupb0P7hAmEqcSUKRZipJy5MVR7VXR1XZ4fIPM=,iv:VaP05zj8L2pygi1/M4BnOV3Inf0ssaWMu+aTBkdDMys=,tag:nuZT8GMB4F0T5dHnTvHOhA==,type:str]
|
mac: ENC[AES256_GCM,data:bhFBLkT2q6HGtTPtHLVZkKZn00Lbm11/u3qSR19lU2E1SsQ7mpukvCqcTxNWtJ+HHth6yJJfgM6XABKq/9/598L2MgGuF3C/GGS3xpjwHh5RyV8t1lV8cqDaZGjGOMGx35lFQ6DoXOreQrtP/f7MKzf+nVNFr1NbTR8YhqR1xDU=,iv:+fjYlbyIyM9nLagrvE+PUhC2pT7QTsTSQX7ELZ7Wuhs=,tag:GWQv6VmIsWwFzb4bUr5CLg==,type:str]
|
||||||
pgp: []
|
pgp: []
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.9.4
|
version: 3.9.2
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
tailscale:
|
|
||||||
auth: ENC[AES256_GCM,data:7gGiUBRUK25Tp5y/5DDZKOTxKPFFfN1UUeBOdMLLQqobq643MKdJ9imxkKmKFg/FwgLYft/uzdxQGGlE7Q==,iv:HRmd+T1QuTYP8VrX/bZt8dWSwm5rcUvpEMqCMPfxjE4=,tag:PRZn2Pm6yydfEULrYGM6yg==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1eg6sxflw6l44fp20sl068sampwd95fm0mnh4ssegrhtktgm50ptqcuspyn
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2Z1JZZmZMaDQ3UHYvbXYr
|
|
||||||
c05RaEMxUGJXSGczUDBkL1UxT0hjQ0VNNkJNClFUNmJ5d3gyaHFwMTdNVW9GQ2ly
|
|
||||||
V3haMkx5Z1B5dmJ0SE4wY0UzMWswQ0EKLS0tIGNpZVo3UmtHcjFZVE5FMmdpOGMx
|
|
||||||
UFZGb3I1L3FJYVE2VjJ5aTVoZlo4bFUKwH2sPBwuLQXrHmiKYSu4Eut/H2j/2tUW
|
|
||||||
1y8Eph7l6w3kfhZRRbo6cZ8gcbZNHPSPeAvWf/TpYumiTt1WBt8SMw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age10h6pg5qdpc4t0rpmksfv788a57f04n83zgqaezkjjn65nkhv547s0vxfdn
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSVXBMTEMrY1NGa1NBSjZP
|
|
||||||
R04wYUsrdGlVa3FnL1NYVG4xdUdqeHNnM0ZJCmhMSzFoRVFSOFBrQlU3VUtwaU0r
|
|
||||||
TEtad1B5NGh3OW1oajNvckhJcExrU0kKLS0tIFc5K3JOVTUvSFU1dmQxMUFRZ1o3
|
|
||||||
em5IemlsM29zVy9GK3RmTlgzVnRpMDAKRatmFgCdoXcypQ+1EDedCuVctl0SFMf4
|
|
||||||
kjtHrTSpept/y9bpTUy656aPRQ1LvqvfPs7Co1ssC/YWFroDsLgv4w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2025-01-24T05:26:20Z"
|
|
||||||
mac: ENC[AES256_GCM,data:GbQrLESUR/x+eLzukOR1FaJsd8zxlrz9dc/2kDBKUYAgI8L4QwLmwRuzpaIJgNLv2PdLTW83oSC8ekxR8fmsap40DpiygcrmPdPUeVFbEPaz7SSvU+DCgB0UX+qNQ9aOQ0BIbeKKOIj3r9enGv2o6DKY8I85n7VXjnGZAmCf1C8=,iv:UrtVqRGwvOpXOH3X3qF6ZF+VwqO0VGt+hFG7r6oUqCg=,tag:TD4mG3t5ORYgAS0GBmA7Eg==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.3
|
|
|
@ -1,32 +0,0 @@
|
||||||
aws:
|
|
||||||
key_id: ENC[AES256_GCM,data:vxa8IS5zVOStsQaQNoPy36MeCw2KD2Th5tg=,iv:TrPukr/bpkGysf1YigBlXwaCu0H1FM6ivCVQEgnst6A=,tag:yrlcsDkLkH7U2i3JgjDaBA==,type:str]
|
|
||||||
key_secret: ENC[AES256_GCM,data:R9hFgtylEW1RphrP7/9Hi7HIb7gcQX1WDEVfnUTTzh+/0LM2Rb9CdkaleO8wNlcyYVE/jUKtqdqqrospAJ7+Zw==,iv:3+yCVqH441+oXFLI5usaQdhnE3GFhbJjMsYeRvk8xEw=,tag:STxA32cSdwPBikXyVEP5+Q==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1sy0at69err83qyml2vqu8xvwjccfws447aaadfvacj2qluw3p45s2mtrw8
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKaUZKbTVjZ1NEWlE5RzZT
|
|
||||||
T1dKdkRQajEva0tpRXhxYUlYWmw1b3MwSFZvCmhteVJ2VGhVNnZTZkJlem1OT3dL
|
|
||||||
dGlQTWdOUlo3TXNOS0wvNlpqVWpZSFEKLS0tIC9DNjY3OW1zWUlRQ1ZEOGlBRk9R
|
|
||||||
azQxMGhQejQ5M0N1YjFtSW5uVnRCQ3MKtt26G2PxIry/lppOT/NUX8jebEb5NgqO
|
|
||||||
HuHj7WT51Gtotfgb22VfGeOCaw9+pPYSjdk9WV4z57r7Z/lylALKRw==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age10h6pg5qdpc4t0rpmksfv788a57f04n83zgqaezkjjn65nkhv547s0vxfdn
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPaVIwbExDUjJiVFpHOFJu
|
|
||||||
dk1SUHc5UDRFUENsbkg2RmQvazdEZ1NKeEhvCjVCNzdwRFN0aUZJL0pVSTI1RUxv
|
|
||||||
Ymhhc0tsSENVa1VUKzRBZk5IcjEvNFUKLS0tIFpPNlRXOVYyVnpyUmtLMTFqNlZ0
|
|
||||||
UlYrTExEUVc0dURLR1czN3BnYzZ2VGMKCbAgM50jvs9VciA1Pb/VY+2I4x62LBGe
|
|
||||||
j7eHkfTFc8Gnk/rZA9/ZJDLFr/FUPMQWK/NVoz6oLjO6oVFXqN6OqA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2025-01-30T17:45:09Z"
|
|
||||||
mac: ENC[AES256_GCM,data:uXnJ8DCs1ZZ72PFAmSQpqvVH2UYvRX8AeUC00A6WsgNL9sz6H0b7PwXBn4SucHACwLwilMVKYpFGE1pPMsIgpHxU5coNhvTfth/ChY1KS73LAwrJUAyUoFI3mumPkklj7b/u1CbBfhuhA2QoZVl+d9BGQn5CQu3+BySUmcT+P9k=,iv:H/hUTBDNcsGBP5TA/7U1QMZogZvuoPuEAg/tBCpbf9w=,tag:W7rH84Na/tHPuJlA9tRXEQ==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.4
|
|
Loading…
Add table
Reference in a new issue