diff --git a/.argocd-ignore b/.argocd-ignore
new file mode 100644
index 0000000..e90b739
--- /dev/null
+++ b/.argocd-ignore
@@ -0,0 +1 @@
+.pre-commit-config.yaml
diff --git a/.devenv.flake.nix b/.devenv.flake.nix
new file mode 100644
index 0000000..cb97411
--- /dev/null
+++ b/.devenv.flake.nix
@@ -0,0 +1,163 @@
+{
+ inputs =
+ let
+ version = "1.6.1";
+system = "x86_64-linux";
+devenv_root = "/home/gwg313/repos/homelab-gitops";
+devenv_dotfile = ./.devenv;
+devenv_dotfile_string = ".devenv";
+container_name = null;
+devenv_tmpdir = "/run/user/1000";
+devenv_runtime = "/run/user/1000/devenv-f22e6d0";
+devenv_istesting = false;
+devenv_direnvrc_latest_version = 1;
+
+ in {
+ git-hooks.url = "github:cachix/git-hooks.nix";
+ git-hooks.inputs.nixpkgs.follows = "nixpkgs";
+ pre-commit-hooks.follows = "git-hooks";
+ nixpkgs.url = "github:cachix/devenv-nixpkgs/rolling";
+ devenv.url = "github:cachix/devenv?dir=src/modules";
+ } // (if builtins.pathExists (devenv_dotfile + "/flake.json")
+ then builtins.fromJSON (builtins.readFile (devenv_dotfile + "/flake.json"))
+ else { });
+
+ outputs = { nixpkgs, ... }@inputs:
+ let
+ version = "1.6.1";
+system = "x86_64-linux";
+devenv_root = "/home/gwg313/repos/homelab-gitops";
+devenv_dotfile = ./.devenv;
+devenv_dotfile_string = ".devenv";
+container_name = null;
+devenv_tmpdir = "/run/user/1000";
+devenv_runtime = "/run/user/1000/devenv-f22e6d0";
+devenv_istesting = false;
+devenv_direnvrc_latest_version = 1;
+
+ devenv =
+ if builtins.pathExists (devenv_dotfile + "/devenv.json")
+ then builtins.fromJSON (builtins.readFile (devenv_dotfile + "/devenv.json"))
+ else { };
+ getOverlays = inputName: inputAttrs:
+ map
+ (overlay:
+ let
+ input = inputs.${inputName} or (throw "No such input `${inputName}` while trying to configure overlays.");
+ in
+ input.overlays.${overlay} or (throw "Input `${inputName}` has no overlay called `${overlay}`. Supported overlays: ${nixpkgs.lib.concatStringsSep ", " (builtins.attrNames input.overlays)}"))
+ inputAttrs.overlays or [ ];
+ overlays = nixpkgs.lib.flatten (nixpkgs.lib.mapAttrsToList getOverlays (devenv.inputs or { }));
+ pkgs = import nixpkgs {
+ inherit system;
+ config = {
+ allowUnfree = devenv.allowUnfree or false;
+ allowBroken = devenv.allowBroken or false;
+ permittedInsecurePackages = devenv.permittedInsecurePackages or [ ];
+ };
+ inherit overlays;
+ };
+ lib = pkgs.lib;
+ importModule = path:
+ if lib.hasPrefix "./" path
+ then if lib.hasSuffix ".nix" path
+ then ./. + (builtins.substring 1 255 path)
+ else ./. + (builtins.substring 1 255 path) + "/devenv.nix"
+ else if lib.hasPrefix "../" path
+ then throw "devenv: ../ is not supported for imports"
+ else
+ let
+ paths = lib.splitString "/" path;
+ name = builtins.head paths;
+ input = inputs.${name} or (throw "Unknown input ${name}");
+ subpath = "/${lib.concatStringsSep "/" (builtins.tail paths)}";
+ devenvpath = "${input}" + subpath;
+ devenvdefaultpath = devenvpath + "/devenv.nix";
+ in
+ if lib.hasSuffix ".nix" devenvpath
+ then devenvpath
+ else if builtins.pathExists devenvdefaultpath
+ then devenvdefaultpath
+ else throw (devenvdefaultpath + " file does not exist for input ${name}.");
+ project = pkgs.lib.evalModules {
+ specialArgs = inputs // { inherit inputs; };
+ modules = [
+ ({ config, ... }: {
+ _module.args.pkgs = pkgs.appendOverlays (config.overlays or [ ]);
+ })
+ (inputs.devenv.modules + /top-level.nix)
+ {
+ devenv.cliVersion = version;
+ devenv.root = devenv_root;
+ devenv.dotfile = devenv_root + "/" + devenv_dotfile_string;
+ }
+ (pkgs.lib.optionalAttrs (inputs.devenv.isTmpDir or false) {
+ devenv.tmpdir = devenv_tmpdir;
+ devenv.runtime = devenv_runtime;
+ })
+ (pkgs.lib.optionalAttrs (inputs.devenv.hasIsTesting or false) {
+ devenv.isTesting = devenv_istesting;
+ })
+ (pkgs.lib.optionalAttrs (container_name != null) {
+ container.isBuilding = pkgs.lib.mkForce true;
+ containers.${container_name}.isBuilding = true;
+ })
+ ({ options, ... }: {
+ config.devenv = pkgs.lib.optionalAttrs (builtins.hasAttr "direnvrcLatestVersion" options.devenv) {
+ direnvrcLatestVersion = devenv_direnvrc_latest_version;
+ };
+ })
+ ] ++ (map importModule (devenv.imports or [ ])) ++ [
+ (if builtins.pathExists ./devenv.nix then ./devenv.nix else { })
+ (devenv.devenv or { })
+ (if builtins.pathExists ./devenv.local.nix then ./devenv.local.nix else { })
+ (if builtins.pathExists (devenv_dotfile + "/cli-options.nix") then import (devenv_dotfile + "/cli-options.nix") else { })
+ ];
+ };
+ config = project.config;
+
+ options = pkgs.nixosOptionsDoc {
+ options = builtins.removeAttrs project.options [ "_module" ];
+ warningsAreErrors = false;
+ # Unpack Nix types, e.g. literalExpression, mDoc.
+ transformOptions =
+ let isDocType = v: builtins.elem v [ "literalDocBook" "literalExpression" "literalMD" "mdDoc" ];
+ in lib.attrsets.mapAttrs (_: v:
+ if v ? _type && isDocType v._type then
+ v.text
+ else if v ? _type && v._type == "derivation" then
+ v.name
+ else
+ v
+ );
+ };
+
+ build = options: config:
+ lib.concatMapAttrs
+ (name: option:
+ if builtins.hasAttr "type" option then
+ if option.type.name == "output" || option.type.name == "outputOf" then {
+ ${name} = config.${name};
+ } else { }
+ else
+ let v = build option config.${name};
+ in if v != { } then {
+ ${name} = v;
+ } else { }
+ )
+ options;
+
+ systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+ in
+ {
+ devShell = lib.genAttrs systems (system: config.shell);
+ packages = lib.genAttrs systems (system: {
+ optionsJSON = options.optionsJSON;
+ # deprecated
+ inherit (config) info procfileScript procfileEnv procfile;
+ ci = config.ciDerivation;
+ });
+ devenv = config;
+ build = build project.options project.config;
+ };
+ }
diff --git a/.envrc b/.envrc
index 3550a30..894571b 100644
--- a/.envrc
+++ b/.envrc
@@ -1 +1,3 @@
-use flake
+source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k="
+
+use devenv
diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml
deleted file mode 100644
index 90bf8fe..0000000
--- a/.github/workflows/nix.yml
+++ /dev/null
@@ -1,11 +0,0 @@
-on: [push, pull_request]
-name: Basic Code Checks
-jobs:
- formatting-check:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4.1.1
- - uses: cachix/install-nix-action@v23
- with:
- nix_path: nixpkgs=channel:nixos-unstable
- - run: nix develop --command alejandra --check .
diff --git a/.gitignore b/.gitignore
index 21e1222..26d999e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1 @@
-.direnv
-
-.pre-commit-config.yaml
-
+.devenv
diff --git a/.gitleaks.toml b/.gitleaks.toml
new file mode 100644
index 0000000..d077ace
--- /dev/null
+++ b/.gitleaks.toml
@@ -0,0 +1,5 @@
+[allowlist]
+description = "Ignore Kubernetes SealedSecrets"
+regexes = [
+ '''(?s)kind:\s*SealedSecret.*?encryptedData:.*?'''
+]
diff --git a/.profile b/.profile
deleted file mode 100644
index 017c331..0000000
--- a/.profile
+++ /dev/null
@@ -1 +0,0 @@
-export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$HOME/.local/share/flatpak/exports/share
diff --git a/.sops.yaml b/.sops.yaml
deleted file mode 100644
index 971379a..0000000
--- a/.sops.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-keys:
- - &primary age1k3hs0gyzrmsdyqh9lpret46q3xaayxxntruzc4euy6h3slqn4u6q36h7rg
-creation_rules:
- - path_regex: secrets/secrets.yaml$
- key_groups:
- - age:
- - *primary
diff --git a/.yamllint b/.yamllint
new file mode 100644
index 0000000..a9bdbc2
--- /dev/null
+++ b/.yamllint
@@ -0,0 +1,10 @@
+extends: default
+
+rules:
+ document-start: disable
+ line-length:
+ max: 80
+ allow-non-breakable-words: false
+
+ignore: |
+ **/*sealed*.yaml
diff --git a/README.md b/README.md
deleted file mode 100644
index 54d05bc..0000000
--- a/README.md
+++ /dev/null
@@ -1,54 +0,0 @@
-# NixOS Flake Configuration
-
-## Overview
-
-This repository contains my NixOS configuration as a flake. This configuration
-is designed to provide a reproducible and declarative setup for my system. It
-includes system configuration, package management, and various other NixOS
-features.
-
-### Window Manager
-
-- hyrpland
-- waybar
-- swaylock
-- wofi
-- light
-- grimshot
-- mako
-
-### Terminal
-
-- alacritty
-- zsh
-- starship
-- tmux
-- neovim(my configuration can be found
- [here](https://github.com/gwg313/nvim-nix))
-- eza
-- ripgrep
-- fd
-
-## Prerequisites
-
-Before using this NixOS flake configuration, you should have the following
-prerequisites:
-
-- NixOs should be installed on your system.
-- Familiarity with Nix and NixOS concepts is helpful but not required.
-
-## Usage
-
-NixOS and home-manager are called seperately,
-
-To rebuild and switch to the new NixOS configuration:
-
-```bash
-nixos-rebuild switch --flake .#candlekeep
-```
-
-To rebuild and switch to the new home-manager configuration:
-
-```bash
-home-manager switch --flake .#gwg313@candlekeep
-```
diff --git a/apps/audiobookshelf.yaml b/apps/audiobookshelf.yaml
new file mode 100644
index 0000000..a309f47
--- /dev/null
+++ b/apps/audiobookshelf.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: audiobookshelf
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: audiobookshelf
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: audiobookshelf
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/bytestash.yaml b/apps/bytestash.yaml
new file mode 100644
index 0000000..945c677
--- /dev/null
+++ b/apps/bytestash.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: bytestash
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: bytestash
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: bytestash
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/cert-issuer.yaml b/apps/cert-issuer.yaml
new file mode 100644
index 0000000..e3c961f
--- /dev/null
+++ b/apps/cert-issuer.yaml
@@ -0,0 +1,18 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: cert-issuer
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: cluster-issuer
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: cert-manager
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
diff --git a/apps/cert-manager.yaml b/apps/cert-manager.yaml
new file mode 100644
index 0000000..223a61b
--- /dev/null
+++ b/apps/cert-manager.yaml
@@ -0,0 +1,24 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: cert-manager
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://charts.jetstack.io
+ chart: cert-manager
+ targetRevision: v1.15.0
+ helm:
+ releaseName: cert-manager
+ values: |
+ installCRDs: true
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: cert-manager
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/forgejo.yaml b/apps/forgejo.yaml
new file mode 100644
index 0000000..0410e0a
--- /dev/null
+++ b/apps/forgejo.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: forgejo
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: forgejo
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: forgejo
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/harbor-config.yaml b/apps/harbor-config.yaml
new file mode 100644
index 0000000..728dc9c
--- /dev/null
+++ b/apps/harbor-config.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: harbor-config
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: harbor-config
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: harbor
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/harbor.yaml b/apps/harbor.yaml
new file mode 100644
index 0000000..f077ad3
--- /dev/null
+++ b/apps/harbor.yaml
@@ -0,0 +1,51 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: harbor
+ namespace: argocd
+spec:
+ project: default
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: harbor
+ source:
+ repoURL: https://helm.goharbor.io
+ chart: harbor
+ targetRevision: 1.14.2
+ helm:
+ releaseName: harbor
+ values: |
+ externalURL: https://registry.gwg313.xyz
+ expose:
+ type: clusterIP
+ tls:
+ enabled: false
+ certSource: secret
+ secret:
+ secretName: harbor-cert-nginx
+ nginx:
+ replicas: 0
+
+ persistence:
+ persistentVolumeClaim:
+ registry:
+ existingClaim: harbor-registry
+ jobservice:
+ existingClaim: harbor-jobservice
+ trivy:
+ existingClaim: harbor-trivy
+ database:
+ existingClaim: harbor-database
+ redis:
+ existingClaim: harbor-redis
+ core:
+ existingClaim: harbor-core
+
+ ingress:
+ enabled: false
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/istio/istio-base.yaml b/apps/istio/istio-base.yaml
new file mode 100644
index 0000000..3421a1b
--- /dev/null
+++ b/apps/istio/istio-base.yaml
@@ -0,0 +1,22 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: istio-base
+ namespace: argocd
+ annotations:
+ argocd.argoproj.io/sync-wave: "0"
+spec:
+ project: default
+ source:
+ repoURL: https://istio-release.storage.googleapis.com/charts
+ chart: base
+ targetRevision: 1.26.0
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: istio-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/istio/istio-cni.yaml b/apps/istio/istio-cni.yaml
new file mode 100644
index 0000000..772c789
--- /dev/null
+++ b/apps/istio/istio-cni.yaml
@@ -0,0 +1,26 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: istio-cni
+ namespace: argocd
+ annotations:
+ argocd.argoproj.io/sync-wave: "1"
+spec:
+ project: default
+ source:
+ repoURL: https://istio-release.storage.googleapis.com/charts
+ chart: cni
+ targetRevision: 1.26.0
+ helm:
+ values: |
+ cni:
+ enabled: true
+ chained: false
+ logLevel: info
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: istio-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
diff --git a/apps/istio/istio-gateway.yaml b/apps/istio/istio-gateway.yaml
new file mode 100644
index 0000000..20d7d61
--- /dev/null
+++ b/apps/istio/istio-gateway.yaml
@@ -0,0 +1,50 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: istio-gateway
+ namespace: argocd
+ annotations:
+ argocd.argoproj.io/sync-wave: "2"
+spec:
+ project: default
+ source:
+ repoURL: https://istio-release.storage.googleapis.com/charts
+ chart: gateway
+ targetRevision: 1.26.0
+ helm:
+ values: |
+ replicaCount: 2
+
+ autoscaling:
+ enabled: false
+
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "512Mi"
+ limits:
+ cpu: "1000m"
+ memory: "1Gi"
+
+ podDisruptionBudget:
+ enabled: true
+ minAvailable: 1
+
+ proxy:
+ logLevel: warning
+ componentLogLevel: "misc:error,config:debug"
+
+ readinessProbe:
+ httpGet:
+ path: /healthz/ready
+ port: 15021
+ initialDelaySeconds: 5
+ periodSeconds: 5
+ failureThreshold: 3
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: istio-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
diff --git a/apps/istio/istio-istiod.yaml b/apps/istio/istio-istiod.yaml
new file mode 100644
index 0000000..55cbaf4
--- /dev/null
+++ b/apps/istio/istio-istiod.yaml
@@ -0,0 +1,43 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: istio-istiod
+ namespace: argocd
+ annotations:
+ argocd.argoproj.io/sync-wave: "1"
+spec:
+ project: default
+ source:
+ repoURL: https://istio-release.storage.googleapis.com/charts
+ chart: istiod
+ targetRevision: 1.26.0
+ helm:
+ values: |
+ global:
+ istioCNI:
+ enabled: true
+
+ sidecarInjectorWebhook:
+ disableInitContainers: true
+
+ pilot:
+ autoscaleEnabled: false
+ replicaCount: 2
+ resources:
+ requests:
+ cpu: "500m"
+ memory: "512Mi"
+ limits:
+ cpu: "1000m"
+ memory: "1Gi"
+
+ podDisruptionBudget:
+ enabled: true
+ minAvailable: 1
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: istio-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
diff --git a/apps/istio/istio-peer-auth.yaml b/apps/istio/istio-peer-auth.yaml
new file mode 100644
index 0000000..5f4446a
--- /dev/null
+++ b/apps/istio/istio-peer-auth.yaml
@@ -0,0 +1,9 @@
+apiVersion: security.istio.io/v1beta1
+kind: PeerAuthentication
+metadata:
+ annotations:
+ name: default
+ namespace: istio-system
+spec:
+ mtls:
+ mode: PERMISSIVE
diff --git a/apps/metallb-config.yaml b/apps/metallb-config.yaml
new file mode 100644
index 0000000..06c86be
--- /dev/null
+++ b/apps/metallb-config.yaml
@@ -0,0 +1,18 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: metallb-config
+ namespace: argocd
+spec:
+ project: default
+ source:
+ path: metallb/config
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: HEAD
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: metallb-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
diff --git a/apps/metallb.yaml b/apps/metallb.yaml
new file mode 100644
index 0000000..bdf37ed
--- /dev/null
+++ b/apps/metallb.yaml
@@ -0,0 +1,22 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: metallb
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://metallb.github.io/metallb
+ chart: metallb
+ targetRevision: 0.14.5
+ helm:
+ releaseName: metallb
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: metallb-system
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/minio-config.yaml b/apps/minio-config.yaml
new file mode 100644
index 0000000..83e1911
--- /dev/null
+++ b/apps/minio-config.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: minio-config
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: minio
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: minio
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/minio.yaml b/apps/minio.yaml
new file mode 100644
index 0000000..ee9de30
--- /dev/null
+++ b/apps/minio.yaml
@@ -0,0 +1,37 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: minio
+ namespace: argocd
+spec:
+ destination:
+ namespace: minio
+ server: https://kubernetes.default.svc
+ project: default
+ source:
+ repoURL: https://charts.bitnami.com/bitnami
+ chart: minio
+ targetRevision: 17.0.9
+ helm:
+ releaseName: minio
+ values: |
+ auth:
+ existingSecret: minio-auth
+
+ ingress:
+ enabled: false
+
+ service:
+ type: ClusterIP
+ ports:
+ api: 9000
+ console: 9001
+
+ persistence:
+ existingClaim: minio-data
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/navidrome.yaml b/apps/navidrome.yaml
new file mode 100644
index 0000000..2962f82
--- /dev/null
+++ b/apps/navidrome.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: navidrome
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: navidrome
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: navidrome
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/nfs-subdir.yaml b/apps/nfs-subdir.yaml
new file mode 100644
index 0000000..dd612f0
--- /dev/null
+++ b/apps/nfs-subdir.yaml
@@ -0,0 +1,33 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: nfs-subdir-external-provisioner
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
+ chart: nfs-subdir-external-provisioner
+ targetRevision: 4.0.18
+ helm:
+ releaseName: nfs-subdir-external-provisioner
+ values: |
+ nfs:
+ server: truenas.local.gwg313.xyz
+ path: /mnt/tank/k8s/nfs-subdir
+
+ storageClass:
+ name: nfs-client
+ defaultClass: true
+ accessModes: ["ReadWriteMany"]
+ reclaimPolicy: Delete
+ archiveOnDelete: false
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: nfs-subdir-external-provisioner
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/sealed-secrets.yaml b/apps/sealed-secrets.yaml
new file mode 100644
index 0000000..5e7463d
--- /dev/null
+++ b/apps/sealed-secrets.yaml
@@ -0,0 +1,24 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: sealed-secrets
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://bitnami-labs.github.io/sealed-secrets
+ chart: sealed-secrets
+ targetRevision: 2.15.3
+ helm:
+ releaseName: sealed-secrets
+ values: |
+ fullnameOverride: sealed-secrets-controller
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: sealed-secrets
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/security.yaml b/apps/security.yaml
new file mode 100644
index 0000000..5bcdeb1
--- /dev/null
+++ b/apps/security.yaml
@@ -0,0 +1,18 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: cluster-security
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: security
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: kube-system
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
diff --git a/apps/woodpecker-manifests.yaml b/apps/woodpecker-manifests.yaml
new file mode 100644
index 0000000..8a36b56
--- /dev/null
+++ b/apps/woodpecker-manifests.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: woodpecker-manifests
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: HEAD
+ path: woodpecker
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: woodpecker
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/woodpecker.yaml b/apps/woodpecker.yaml
new file mode 100644
index 0000000..0a9f7a0
--- /dev/null
+++ b/apps/woodpecker.yaml
@@ -0,0 +1,23 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: woodpecker
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://woodpecker-ci.org/
+ chart: woodpecker
+ targetRevision: 3.2.0
+ helm:
+ releaseName: woodpecker
+ values: "server:\n env:\n WOODPECKER_HOST: \"https://ci.gwg313.xyz\"\n extraSecretNamesForEnvFrom:\n - woodpecker-server-secrets\n persistentVolume:\n enabled: true\n existingClaim: woodpecker-server-pvc5\n\nagent:\n enabled: true\n replicaCount: 1\n extraSecretNamesForEnvFrom:\n - woodpecker-agent-secrets\n env:\n WOODPECKER_SERVER: \"woodpecker-server:9000\"\n WOODPECKER_MAX_WORKFLOWS: \"5\"\n persistence:\n enabled: true\n existingClaim: woodpecker-agent-pvc5\n securityContext:\n privileged: true \n"
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: woodpecker
+ syncPolicy:
+ automated:
+ prune: true
+ selfHeal: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/apps/yopass.yaml b/apps/yopass.yaml
new file mode 100644
index 0000000..491a828
--- /dev/null
+++ b/apps/yopass.yaml
@@ -0,0 +1,20 @@
+apiVersion: argoproj.io/v1alpha1
+kind: Application
+metadata:
+ name: yopass
+ namespace: argocd
+spec:
+ project: default
+ source:
+ repoURL: https://github.com/gwg313/homelab-gitops
+ targetRevision: main
+ path: yopass
+ destination:
+ server: https://kubernetes.default.svc
+ namespace: yopass
+ syncPolicy:
+ automated:
+ selfHeal: true
+ prune: true
+ syncOptions:
+ - CreateNamespace=true
diff --git a/audiobookshelf/certificate.yaml b/audiobookshelf/certificate.yaml
new file mode 100644
index 0000000..4af686f
--- /dev/null
+++ b/audiobookshelf/certificate.yaml
@@ -0,0 +1,12 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: audiobookshelf-cert
+ namespace: istio-system
+spec:
+ secretName: audiobookshelf-cert
+ issuerRef:
+ name: letsencrypt-dns
+ kind: ClusterIssuer
+ dnsNames:
+ - audiobooks.gwg313.xyz
diff --git a/audiobookshelf/deployment.yaml b/audiobookshelf/deployment.yaml
new file mode 100644
index 0000000..01f20f9
--- /dev/null
+++ b/audiobookshelf/deployment.yaml
@@ -0,0 +1,42 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: audiobookshelf
+ namespace: audiobookshelf
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: audiobookshelf
+ template:
+ metadata:
+ labels:
+ app: audiobookshelf
+ spec:
+ containers:
+ - name: audiobookshelf
+ image: registry.gwg313.xyz/library/audiobookshelf:latest
+ ports:
+ - containerPort: 8080
+ volumeMounts:
+ - name: audiobooks-volume
+ mountPath: /audiobooks
+ - name: podcasts-volume
+ mountPath: /podcasts
+ - name: config-volume
+ mountPath: /config
+ - name: metadata-volume
+ mountPath: /metadata
+ volumes:
+ - name: audiobooks-volume
+ persistentVolumeClaim:
+ claimName: audiobookshelf-audiobooks
+ - name: podcasts-volume
+ persistentVolumeClaim:
+ claimName: audiobookshelf-podcasts
+ - name: config-volume
+ persistentVolumeClaim:
+ claimName: audiobookshelf-config
+ - name: metadata-volume
+ persistentVolumeClaim:
+ claimName: audiobookshelf-metadata
diff --git a/audiobookshelf/gateway.yaml b/audiobookshelf/gateway.yaml
new file mode 100644
index 0000000..7d9270d
--- /dev/null
+++ b/audiobookshelf/gateway.yaml
@@ -0,0 +1,18 @@
+apiVersion: networking.istio.io/v1beta1
+kind: Gateway
+metadata:
+ name: audiobookshelf-gateway
+ namespace: audiobookshelf
+spec:
+ selector:
+ istio: gateway
+ servers:
+ - port:
+ number: 443
+ name: https
+ protocol: HTTPS
+ tls:
+ mode: SIMPLE
+ credentialName: audiobookshelf-cert
+ hosts:
+ - audiobooks.gwg313.xyz
diff --git a/audiobookshelf/iscsi-sealed.yaml b/audiobookshelf/iscsi-sealed.yaml
new file mode 100644
index 0000000..b0057c6
--- /dev/null
+++ b/audiobookshelf/iscsi-sealed.yaml
@@ -0,0 +1,19 @@
+---
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: audiobookshelf-iscsi-auth
+ namespace: audiobookshelf
+spec:
+ encryptedData:
+ discovery.sendtargets.auth.password: AgBlREGUmNCv4V+AAsTN4xn1+CTIQspG86tK34CH8LbAQQtCwrldsyH/ZDnDEK2bmb7Eq0o4Lt9bYYdAFt/2d74ViMWVWyarIG5dU3kwMfzysQsu3lrWtIUwlFS08YaQJg+7Eipy1LbJvncTLY9ixZ3xA7Vx+rlyhXp0bt0Aet6ItzcxTbifA14xtCGDDDRcOjkBp+lhOY70tnqAkQ7NxLooPcNGSIqMPbIwhdc8Nq9Knz7ZqVTnVyl2QxdQSooUIcYBN0V97tiwtZUvwU0pb7LsxSEac2NbwzPMfoP8LnTETURK0JhqvO6Uvi7iMNBLw3sDzR2fCX1VhleLOM1JQgk93w5VA33GZOb+7iofJt+gVIs651G9+rCS2hN8XiQPiZnCVtZ9upxM4DnHz1GvuML0NRcXyIN2zOzcZdwMXBRAQ42XwcdbZIOubiVNbV/yEDoNmA6aR1ItRYDGyheRKwphLEDnbXlgWEDnKKHiUjrj833vNTXn9wtOZ2mnfzE//cr3fvaosQthfnviI/QRo8plpXI8y9BgjNToecsbQNzNIP17ZljCZB2HTBa8urX9A9vAOcFD51k6FugfE92tnBtSu42vGi3vkEuxM2blrFAWlpsChHkyQmONJchHgNsyKqZdlRzFLraZTtic9z8HBjmOyXgykGuoPzGf29vB8bwZ3mIUE8GSsF7WV9hAGdfGzE0VnUp3CKOIMFyrudVeWFOX
+ discovery.sendtargets.auth.username: AgBerGD4HXIRcJDdyknlztVIIfpLYyEnB5jIQV7tHksPPtDp4VxOQcOOnsgn2xcskpGbPP60iQJgTn9eNtHnRVylFhRDBr7ugn7LKWw0KGg/sexYx07Do6Sc7h7+MrzaoxV7kV7hOJrflALtKhSTmsiNLVnskmU+reckgLYFrFjSPOYJsDJlpq7WPXVBVW2nEJ0EMkCyfWAU1ADfpM5rvbtLu3geCAWAz557BASYgdvaBEWOT5sONC2rbl2MaSJeBVZX+Wr5IdzVd3K/VFJRSJ7xE5LAVKbuWGPpt18H86uU7mqXuyYUz7FR7nD21FT8rPvj4/rXKTR0W2U/hrH/53Jn5yFj30+iAcDhq9C4fRA8ZvI9KsESRZXq0dnInPkYpHzPIKdMwtEs/qycIMGwczRO9d6UDj3qJsJTO4E1btvzPQMt1kJ3d2U87/r7TCzcbIpLlMez8VTS0osnwVkD9/4oR074TX/0m9aMqLomsrw4oyXsetJL8O4R1A59NsjtBRvyeG00BmmJMlSrI+DF+wa131/4g/y6BsYP30QwxxxoOHH1clSdXGueHhQpttmc7le8FSJ+pyyPLR8BrFi76GojZG3GZScArJm/072WcUnsvxpitmtwKgihRFGr6V5yPU/vvPLWsV+swQ+zh6IZ1RPNn8QPk4oKqJnoAlDmMkdXhgqLucor322cxU+bNkE0v3RPBeynzEVpGSzrtYzOvw==
+ node.session.auth.password: AgB/lsTVb/3hrYtzpEydBfcesvDgZUi6Si4VNjlGRS1PfK9DSLpRBZazgLkrFSIhLOviWb9Rp9zQDNTJFAZkLbPGh8zNWyTzbANgsSziht7ljBArnsT3iMRQbFvZGUkI3QM95EURVXC7GhPEfr15bkEqq93ETzaDaBvZ3tKN2XqjRTFFAR2aFVVV6rPPea3FfAVhhcR700pfbW4YpLPfHuUFentEuMo5a3QRYo3VdzPYB7lzRx+YgD9Rv1rSffTdnPJzlE9IkUeBZKnuK9Xg80Q75aPHvb6MfT++LRZHUtsftQFjbJMcFKqqDu+JktjViyrTYG/2cfdQKsHbsQu4OW4XamU0isZiz42T8cj/Dpo0C+m2meZVXkSrsvyeHCA77vl9yd24O7CkDGKLnAqe5RLWAMJVBQwnVqiDhTdTvEItoyV9MZM079CsPKSpVZMJ4GQoJDjKN3L9Z0IIWHlrV5RJ65RJA3d8/9Ku+vFtxyfGWB3GtXAFvXYW/OZn1vuIEmA3U11mgnGKDIRETBMpuJSvzVKiTxCL4yrq5Ap0VRfBlJlNbDSlj78z6x9Pd8TsSoKUA5htpObLy3+Dx2Lm6SUflKvB6ywKnIbhlfFONlUrsxX6J02taDmqTzeAFT5sSM2Xl4yFveb7XLQQOJUIc32ZAFXOkYkvr9T8lbxXDE9mJG7abzwal7i1KWrxgVnmgN8oM6QDciHqElUb+z+tE69g
+ node.session.auth.username: AgCjON6B6NWGlbQsJvBLvy1SOgUt7fuIScFKqsnVLZf/AmUH6VJ70qAtjOr+MfoyhvGkpNLAb64LpUsEmxX/AI4pONZnNUVYgWSha+yEizCLsYCp2wL7PHbobg9nkYxL7vRcS/So5iIaHHS+3cHIHJI5O8Dhb6gqOz5kafNgdLu0TJ56n1Axe4QI3mz0m5/XjovzzImM3DiMaqtzJotENGxnnA/X0/zBbNZry94iWuXCTJ115+6cVn+h3SvVw0/rwcJgfNxgIJJW4Rukl6WCyC6MTKTjNnA65Z5R9oW4JviGNF/0PNGTjmkuCoJqSNZ+p5XebhTxn65ultLMxvJXZhVmSHo3es3x8wlmO49UOGhT1a38P+p/9DrrTg3xEdIeDHMmdLaZgOjjEfDh/2OP2S2ZHVEXQnFvG2VnKgmMYWyeylhBGyn4cEkLc1fFhy55g2EMCeF5zXNldTlT3Gh0ca1ipF0BBXgvuJCa9c5tNBK2QS66QVdehOLBOxrnjTnd4VPt05JXKqSQZ6S0ukNecL5hBju2nGHlXdYcVeI94/uZmpkNJC+mqRTJdXGwtUhF9F529Ln+DtkhTcGUAPBcZdP9eEc/lkAjp/lJyzW2jgTynVkqAyBZJsA7etAHAUlsFMgFOw6bG/oKXpJE7wFJ4J929/inpVj8J9rlLC7ruRlQy9gUT8A2uLwAXVmQufpjBTi2AVyS6wACG+eusvOHYg==
+ template:
+ metadata:
+ creationTimestamp: null
+ name: audiobookshelf-iscsi-auth
+ namespace: audiobookshelf
+ type: kubernetes.io/iscsi-chap
diff --git a/audiobookshelf/pvcs.yaml b/audiobookshelf/pvcs.yaml
new file mode 100644
index 0000000..8f8abbe
--- /dev/null
+++ b/audiobookshelf/pvcs.yaml
@@ -0,0 +1,57 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: audiobookshelf-config
+ namespace: audiobookshelf
+spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+ volumeName: audiobookshelf-config-pv
+ storageClassName: audiobookshelf-iscsi
+
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: audiobookshelf-metadata
+ namespace: audiobookshelf
+spec:
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+ volumeName: audiobookshelf-metadata-pv
+ storageClassName: audiobookshelf-iscsi
+
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: audiobookshelf-audiobooks
+ namespace: audiobookshelf
+spec:
+ accessModes:
+ - ReadOnlyMany
+ resources:
+ requests:
+ storage: 100Gi
+ volumeName: audiobookshelf-audiobooks-pv
+ storageClassName: audiobookshelf-nfs
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: audiobookshelf-podcasts
+ namespace: audiobookshelf
+spec:
+ accessModes:
+ - ReadOnlyMany
+ resources:
+ requests:
+ storage: 100Gi
+ volumeName: audiobookshelf-podcasts-pv
+ storageClassName: audiobookshelf-nfs
diff --git a/audiobookshelf/pvs.yaml b/audiobookshelf/pvs.yaml
new file mode 100644
index 0000000..65b1e78
--- /dev/null
+++ b/audiobookshelf/pvs.yaml
@@ -0,0 +1,73 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: audiobookshelf-config-pv
+spec:
+ capacity:
+ storage: 1Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: audiobookshelf-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz:3260
+ iqn: iqn.2005-10.org.freenas.ctl:audiobookshelf-config
+ lun: 0
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: audiobookshelf-iscsi-auth
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: audiobookshelf-metadata-pv
+spec:
+ capacity:
+ storage: 1Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: audiobookshelf-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz:3260
+ iqn: iqn.2005-10.org.freenas.ctl:audiobookshelf-metadata
+ lun: 1
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: audiobookshelf-iscsi-auth
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: audiobookshelf-audiobooks-pv
+spec:
+ capacity:
+ storage: 100Gi
+ accessModes:
+ - ReadOnlyMany
+ persistentVolumeReclaimPolicy: Retain
+ nfs:
+ server: truenas.local.gwg313.xyz
+ path: /mnt/tank/media/audiobooks
+ storageClassName: audiobookshelf-nfs
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: audiobookshelf-podcasts-pv
+spec:
+ capacity:
+ storage: 100Gi
+ accessModes:
+ - ReadOnlyMany
+ persistentVolumeReclaimPolicy: Retain
+ nfs:
+ server: truenas.local.gwg313.xyz
+ path: /mnt/tank/media/podcasts
+ storageClassName: audiobookshelf-nfs
diff --git a/audiobookshelf/service.yaml b/audiobookshelf/service.yaml
new file mode 100644
index 0000000..f34268b
--- /dev/null
+++ b/audiobookshelf/service.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: audiobookshelf
+ namespace: audiobookshelf
+spec:
+ selector:
+ app: audiobookshelf
+ ports:
+ - port: 80
+ targetPort: 8080
diff --git a/audiobookshelf/virtualservice.yaml b/audiobookshelf/virtualservice.yaml
new file mode 100644
index 0000000..f128e38
--- /dev/null
+++ b/audiobookshelf/virtualservice.yaml
@@ -0,0 +1,19 @@
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: audiobookshelf
+ namespace: audiobookshelf
+spec:
+ hosts:
+ - audiobooks.gwg313.xyz
+ gateways:
+ - audiobookshelf-gateway
+ http:
+ - match:
+ - uri:
+ prefix: /
+ route:
+ - destination:
+ host: audiobookshelf
+ port:
+ number: 80
diff --git a/bytestash/bytestash-peer-auth.yaml b/bytestash/bytestash-peer-auth.yaml
new file mode 100644
index 0000000..8a3354a
--- /dev/null
+++ b/bytestash/bytestash-peer-auth.yaml
@@ -0,0 +1,8 @@
+apiVersion: security.istio.io/v1beta1
+kind: PeerAuthentication
+metadata:
+ name: strict-mtls
+ namespace: bytestash
+spec:
+ mtls:
+ mode: STRICT
diff --git a/bytestash/bytestash-secret-sealed.yaml b/bytestash/bytestash-secret-sealed.yaml
new file mode 100644
index 0000000..255eb8a
--- /dev/null
+++ b/bytestash/bytestash-secret-sealed.yaml
@@ -0,0 +1,15 @@
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: bytestash-secret
+ namespace: bytestash
+spec:
+ encryptedData:
+ JWT_SECRET_KEY: AgBhyqlrAr9hDaCZ7yPbZZuXtZMeqbMqd0LXWwT8nlEpTY0Tk7LLwjdv6DoY3gvj0Jbgcoa+Edgg6HywykouVAqe2i6HbDwWOPVjRw5K1GA7y7jlb8IOP2D7ZJN8sKW7MUfhmmraN0piuvpCMVl/NHbT1XfQq4mym/PChHcD4Ju+lNMfFWkHNZtXf/9tpYcTa3cmREf0uBFQRNQFP2TaUx8X+QmzIIdoGaqZA+Jud2HkTHymsRhn7fSK3smaJecw/y7IR4ohNcJ17FqOyaqbnQ/MUzB+aprFKjBOnVmZwbWSjJYWPN1nx6NPndmk8X3Q3XeB50WnoAhqNSwI6a58wo/zVHyM5B3Q+L9slCWd8t27z+Jv7Y8zRFl137dbhDBcrHf73miNnaK5x0b741Bv3yDakJG+DrU5YlmGH2/t4XBZjMMRxF4y0CgdT+DN+cZrkbkATHIQWZARmLTqYfig/2D+PfKhrniE4Tfq3V2gLN12Kwf09fqM02Uo2faOya6QF3fvGGZx3QXiDrzPMthLuvk1JqPqU98fNKniS8x7/q1LdHH6ga5wyXyGk76tl540p+kdY2sAi7K5/VAw0QM6A+6EHXJJgZ4bdd02eB0F1/lCKcCzZhs5lIjBu0r/d81wYlId6GtMvXZiMfsbMS9a7evGl20PXAn2C5KxWfyyyIX3wn7JIAxiOdGwPUOI6E4/LCJSnzlfBa7SWFrMHAjniNyQOLB0S9amtHwDDt6j
+ template:
+ metadata:
+ creationTimestamp: null
+ name: bytestash-secret
+ namespace: bytestash
+ type: Opaque
diff --git a/bytestash/certificate.yaml b/bytestash/certificate.yaml
new file mode 100644
index 0000000..a50a49e
--- /dev/null
+++ b/bytestash/certificate.yaml
@@ -0,0 +1,13 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: bytestash-cert
+ namespace: istio-system
+spec:
+ secretName: bytestash-cert
+ issuerRef:
+ name: letsencrypt-dns
+ kind: ClusterIssuer
+ commonName: bytestash.local.gwg313.xyz
+ dnsNames:
+ - bytestash.local.gwg313.xyz
diff --git a/bytestash/configmap.yaml b/bytestash/configmap.yaml
new file mode 100644
index 0000000..65e7119
--- /dev/null
+++ b/bytestash/configmap.yaml
@@ -0,0 +1,18 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: bytestash-config
+ namespace: bytestash
+data:
+ BASE_PATH: ""
+ TOKEN_EXPIRY: "24h"
+ ALLOW_NEW_ACCOUNTS: "true"
+ DEBUG: "true"
+ DISABLE_ACCOUNTS: "false"
+ DISABLE_INTERNAL_ACCOUNTS: "false"
+ OIDC_ENABLED: "false"
+ OIDC_DISPLAY_NAME: ""
+ OIDC_ISSUER_URL: ""
+ OIDC_CLIENT_ID: ""
+ OIDC_CLIENT_SECRET: ""
+ OIDC_SCOPES: ""
diff --git a/bytestash/deployment.yaml b/bytestash/deployment.yaml
new file mode 100644
index 0000000..9408803
--- /dev/null
+++ b/bytestash/deployment.yaml
@@ -0,0 +1,43 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: bytestash
+ namespace: bytestash
+spec:
+ replicas: 1
+ selector:
+ matchLabels:
+ app: bytestash
+ template:
+ metadata:
+ labels:
+ app: bytestash
+ annotations:
+ sidecar.istio.io/inject: "true"
+ spec:
+ securityContext:
+ runAsNonRoot: false
+ seccompProfile:
+ type: RuntimeDefault
+ containers:
+ - name: bytestash
+ image: "ghcr.io/jordan-dalby/bytestash:latest"
+ ports:
+ - containerPort: 5000
+ envFrom:
+ - configMapRef:
+ name: bytestash-config
+ - secretRef:
+ name: bytestash-secret
+ volumeMounts:
+ - name: bytestash-storage
+ mountPath: /data/snippets
+ securityContext:
+ allowPrivilegeEscalation: false
+ runAsNonRoot: false
+ capabilities:
+ drop: ["ALL"]
+ volumes:
+ - name: bytestash-storage
+ persistentVolumeClaim:
+ claimName: bytestash-pvc
diff --git a/bytestash/gateway.yaml b/bytestash/gateway.yaml
new file mode 100644
index 0000000..ca6ecee
--- /dev/null
+++ b/bytestash/gateway.yaml
@@ -0,0 +1,18 @@
+apiVersion: networking.istio.io/v1beta1
+kind: Gateway
+metadata:
+ name: bytestash-gateway
+ namespace: bytestash
+spec:
+ selector:
+ istio: gateway
+ servers:
+ - port:
+ number: 443
+ name: https
+ protocol: HTTPS
+ hosts:
+ - "bytestash.local.gwg313.xyz"
+ tls:
+ mode: SIMPLE
+ credentialName: bytestash-cert
diff --git a/bytestash/namespace.yaml b/bytestash/namespace.yaml
new file mode 100644
index 0000000..5288ac9
--- /dev/null
+++ b/bytestash/namespace.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+ name: bytestash
diff --git a/bytestash/service.yaml b/bytestash/service.yaml
new file mode 100644
index 0000000..4b305db
--- /dev/null
+++ b/bytestash/service.yaml
@@ -0,0 +1,11 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: bytestash
+ namespace: bytestash
+spec:
+ selector:
+ app: bytestash
+ ports:
+ - port: 80
+ targetPort: 5000
diff --git a/bytestash/storage.yaml b/bytestash/storage.yaml
new file mode 100644
index 0000000..585fc43
--- /dev/null
+++ b/bytestash/storage.yaml
@@ -0,0 +1,29 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: bytestash-pv
+spec:
+ capacity:
+ storage: 1Gi
+ volumeMode: Filesystem
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: manual
+ nfs:
+ path: /mnt/tank/docker-volumes/bytestash
+ server: truenas.local.gwg313.xyz
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: bytestash-pvc
+ namespace: bytestash
+spec:
+ storageClassName: manual
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 1Gi
+ volumeName: bytestash-pv
diff --git a/bytestash/virtualservice.yaml b/bytestash/virtualservice.yaml
new file mode 100644
index 0000000..095671b
--- /dev/null
+++ b/bytestash/virtualservice.yaml
@@ -0,0 +1,16 @@
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: bytestash
+ namespace: bytestash
+spec:
+ hosts:
+ - "bytestash.local.gwg313.xyz"
+ gateways:
+ - bytestash/bytestash-gateway
+ http:
+ - route:
+ - destination:
+ host: bytestash
+ port:
+ number: 80
diff --git a/cert-manager/values.yaml b/cert-manager/values.yaml
new file mode 100644
index 0000000..66e328a
--- /dev/null
+++ b/cert-manager/values.yaml
@@ -0,0 +1,4 @@
+installCRDs: true
+extraArgs:
+ - --dns01-recursive-nameservers-only
+ - --dns01-recursive-nameservers=1.1.1.1:53,8.8.8.8:53
diff --git a/cluster-issuer/01-sealedsecret.yaml b/cluster-issuer/01-sealedsecret.yaml
new file mode 100644
index 0000000..e9586d9
--- /dev/null
+++ b/cluster-issuer/01-sealedsecret.yaml
@@ -0,0 +1,15 @@
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: cloudflare-api-token
+ namespace: cert-manager
+spec:
+ encryptedData:
+ api-token: AgC7jVHCCMGqv2ZcLxU13J2icxYM6pLCpy9ODRFtEZpjY4MGmja+ScRs00ziY8DeH9Ahhrc21VYTTZAmw1bCesHIys0y19KeXbO5HudWbSt02792kT5sPsjlNdkZyXT0Qmbz3i4OPcH1V1+oXJArTuicoJkAiVg05jGPuIcYM2zDaMvMjk4cq7L8PYc/HAusXlHI/ggozPqmohS4ACBYvsUvgyDEGAvwW0vFRjHb1z3IxyzVtbDdgae8okoQWCHlKRTeFRReB1AX9wml+kNpq2SeElh/5Grdiz4MEr8PsoKUIJg3n+KqjOFgHX7I5gDW7LQv2+W66sYzd3GFF0g6MUs1EjznX35J/e7uYSm3ERtomSIFx3FFx6fFXuN5QkCx79MgKZxP8F/PwBdusc8tDHocgK8V2hvSjxIU2J74rjcMw4ZUqwFvlZa0xAJcUAlkFQrN/b7ldlwQYyzsXhPyRIvIGvGSmBabq+yHE4nyjCVezy28h361O3zB2kCJUXi1k2rbD2+NI1Z+25q6JyRgnUelnfzyiPFJTKlFIiP1He1FC441OPjXILYhuaIenm0w9GQKUt2ndNJng4wRtsCPi6PcGHUIOjiT8ErZTkN4pJmm4/bRYPXumS9J0sTPNr2z564fsZjRpyCD97BJuntnXRnWxQRVbMb55f99Zu2j5jziEDegg6aCsXRLoATHLsBFlK5IiC95cMpkaAbY5FWwCCp4IMLkiPWGlR1dnCbBgF2P4NtxihNW9cPC
+ template:
+ metadata:
+ creationTimestamp: null
+ name: cloudflare-api-token
+ namespace: cert-manager
+ type: Opaque
diff --git a/cluster-issuer/02-cluster-issuer.yaml b/cluster-issuer/02-cluster-issuer.yaml
new file mode 100644
index 0000000..a168955
--- /dev/null
+++ b/cluster-issuer/02-cluster-issuer.yaml
@@ -0,0 +1,16 @@
+apiVersion: cert-manager.io/v1
+kind: ClusterIssuer
+metadata:
+ name: letsencrypt-dns
+spec:
+ acme:
+ server: https://acme-v02.api.letsencrypt.org/directory
+ email: gwg313@pm.me
+ privateKeySecretRef:
+ name: letsencrypt-dns-key
+ solvers:
+ - dns01:
+ cloudflare:
+ apiTokenSecretRef:
+ name: cloudflare-api-token
+ key: api-token
diff --git a/common/gui/common.nix b/common/gui/common.nix
deleted file mode 100644
index b7b296f..0000000
--- a/common/gui/common.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ pkgs, ... }:
-{
- services.printing.enable = true;
-
- environment.systemPackages = with pkgs; [
- adwaita-icon-theme
- gnome-themes-extra
- librewolf
- qt5.qtwayland
- qt6.qmake
- qt6.qtwayland
- adwaita-qt
- adwaita-qt6
- ];
-}
diff --git a/common/gui/dbus.nix b/common/gui/dbus.nix
deleted file mode 100644
index d433ad5..0000000
--- a/common/gui/dbus.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- services.dbus = {
- enable = true;
- packages = [pkgs.dconf];
- };
-
- programs.dconf = {
- enable = true;
- };
-}
diff --git a/common/gui/default.nix b/common/gui/default.nix
deleted file mode 100644
index a81a95f..0000000
--- a/common/gui/default.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{lib, ...}: {
- imports = [
- ./thunar.nix
- ./steam.nix
- ];
-
- thunar.enable = lib.mkDefault true;
- steam.enable = lib.mkDefault false;
-}
diff --git a/common/gui/displayManager.nix b/common/gui/displayManager.nix
deleted file mode 100644
index 816340c..0000000
--- a/common/gui/displayManager.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: {
- services.xserver = {
- displayManager.gdm = {
- enable = false;
- wayland = true;
- };
- displayManager.lightdm.enable = false;
- };
- environment.systemPackages = with pkgs; [
- ];
-}
diff --git a/common/gui/hyprland.nix b/common/gui/hyprland.nix
deleted file mode 100644
index d8242e5..0000000
--- a/common/gui/hyprland.nix
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- pkgs,
- inputs,
- ...
-}:
-{
- imports = [
- ./common.nix
- ./dbus.nix
- ./pipewire.nix
- ./wayland.nix
- ./displayManager.nix
- # ./xdg.nix
- ];
-
- # Security
- security = {
- pam.services.swaylock = {
- text = ''
- auth include login
- '';
- };
- };
-
- # Services
- services = {
- xserver = {
- enable = true;
- xkb = {
- variant = "";
- layout = "us";
- };
- excludePackages = [ pkgs.xterm ];
- # videoDrivers = ["amdgpu"];
- libinput = {
- enable = true;
- touchpad.tapping = true;
- touchpad.naturalScrolling = true;
- touchpad.scrollMethod = "twofinger";
- touchpad.disableWhileTyping = true;
- touchpad.clickMethod = "clickfinger";
- };
- };
- gvfs.enable = true;
- tumbler.enable = true;
- gnome = {
- sushi.enable = true;
- gnome-keyring.enable = true;
- };
- };
-
- programs = {
- hyprland = {
- enable = true;
- withUWSM = true; # recommended for most users
- package = inputs.hyprland.packages.${pkgs.system}.hyprland;
- xwayland = {
- enable = true;
- };
- };
- waybar = {
- enable = false;
- package = pkgs.waybar.overrideAttrs (oldAttrs: {
- mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
- });
- };
- thunar = {
- enable = true;
- plugins = with pkgs.xfce; [
- thunar-archive-plugin
- thunar-volman
- ];
- };
- };
-
- environment.systemPackages = with pkgs; [
- libva-utils
- gsettings-desktop-schemas
- xdg-utils
- hyprland-qtutils
- ];
- environment.sessionVariables = {
- XDG_CURRENT_DESKTOP = "Hyprland";
- XDG_SESSION_DESKTOP = "Hyprland";
- XDG_SESSION_TYPE = "wayland";
- };
-}
diff --git a/common/gui/pipewire.nix b/common/gui/pipewire.nix
deleted file mode 100644
index ea26dd9..0000000
--- a/common/gui/pipewire.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
- # Enable sound with pipewire.
- hardware.pulseaudio.enable = false;
- # hardware.alsa.enablePersistence = true;
- security.rtkit.enable = true;
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- # If you want to use JACK applications, uncomment this
- #jack.enable = true;
-
- # use the example session manager (no others are packaged yet so this is enabled by default,
- # no need to redefine it in your config for now)
- #media-session.enable = true;
- extraConfig.pipewire.adjust-sample-rate = {
- "context.properties" = {
- "default.clock.rate" = 192000;
- #"defautlt.allowed-rates" = [ 192000 48000 44100 ];
- "defautlt.allowed-rates" = [ 192000 ];
- #"default.clock.quantum" = 32;
- #"default.clock.min-quantum" = 32;
- #"default.clock.max-quantum" = 32;
- };
- };
- };
-
- environment.systemPackages = with pkgs; [
- pipewire
- wireplumber
- easyeffects
- ];
-}
diff --git a/common/gui/retroarch.nix b/common/gui/retroarch.nix
deleted file mode 100644
index 9f7f4d1..0000000
--- a/common/gui/retroarch.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ pkgs, ... }:
-let
- retroarchWithCores = (
- pkgs.retroarch.withCores (
- cores: with cores; [
- bsnes
- mgba
- quicknes
- genesis-plus-gx
- ]
- )
- );
-in
-{
- environment.systemPackages = [
- retroarchWithCores
- ];
-}
diff --git a/common/gui/steam.nix b/common/gui/steam.nix
deleted file mode 100644
index b4dd8f6..0000000
--- a/common/gui/steam.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
- options = {
- steam.enable = lib.mkEnableOption "Enables steam";
- };
-
- config = lib.mkIf config.steam.enable {
- hardware.opengl.driSupport32Bit = true;
-
- nixpkgs.config.packageOverrides = pkgs: {
- steam = pkgs.steam.override {
- extraPkgs =
- pkgs: with pkgs; [
- xorg.libXcursor
- xorg.libXi
- xorg.libXinerama
- xorg.libXScrnSaver
- libpng
- libpulseaudio
- libvorbis
- stdenv.cc.cc.lib
- libkrb5
- keyutils
- ];
- };
- };
-
- programs.steam = {
- enable = true;
- remotePlay.openFirewall = true;
- gamescopeSession = {
- enable = true;
- args = [
- "-F fsr"
- "-f"
- ];
- };
- };
-
- environment.sessionVariables = {
- # Proton GE flag
- WINE_FULLSCREEN_FSR = "1";
- };
-
- environment.systemPackages = with pkgs; [
- protonup
- scanmem
- ];
- };
-}
diff --git a/common/gui/thunar.nix b/common/gui/thunar.nix
deleted file mode 100644
index 45c8ed2..0000000
--- a/common/gui/thunar.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- pkgs,
- config,
- lib,
- ...
-}:
-{
- options = {
- thunar.enable = lib.mkEnableOption "Enables thunar and its plugins";
- };
- config = lib.mkIf config.thunar.enable {
- programs.thunar = {
- enable = true;
- plugins = with pkgs.xfce; [
- xfconf
- tumbler
- thunar-archive-plugin
- thunar-volman
- ];
- };
- services.gvfs.enable = true; # Mount, trash, and other functionalities
- services.tumbler.enable = true; # Thumbnail support for images
- };
-}
diff --git a/common/gui/wayland.nix b/common/gui/wayland.nix
deleted file mode 100644
index ee4a70a..0000000
--- a/common/gui/wayland.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{pkgs, ...}: {
- environment.systemPackages = with pkgs; [
- wlr-randr
- wl-clipboard
- ];
-
- environment.sessionVariables = {
- POLKIT_AUTH_AGENT = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
- GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas";
- WLR_NO_HARDWARE_CURSORS = "1";
- NIXOS_OZONE_WL = "1";
- MOZ_ENABLE_WAYLAND = "1";
- SDL_VIDEODRIVER = "wayland";
- _JAVA_AWT_WM_NONREPARENTING = "1";
- CLUTTER_BACKEND = "wayland";
- # WLR_RENDERER = "vulkan";
- GTK_USE_PORTAL = "1";
- #NIXOS_XDG_OPEN_USE_PORTAL = "1"; # Sets the desktop portal to use flatpak
- WLR_NO_HARDWARE_CURSOR = "1";
- GDK_BACKEND = "wayland";
- QT_QPA_PLATFORM = "wayland;xcb";
- QT_AUTO_SCREEN_SCALE_FACTOR = "1";
- QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
- QT_QPA_PLATFORMTHEME = "qt5ct";
- };
-}
diff --git a/common/gui/xdg.nix b/common/gui/xdg.nix
deleted file mode 100644
index b48af6c..0000000
--- a/common/gui/xdg.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
- # XDG Portals
- xdg = {
- autostart.enable = true;
- portal = {
- enable = true;
- wlr.enable = true;
- xdgOpenUsePortal = true;
- extraPortals = [
- pkgs.xdg-desktop-portal-hyprland
- pkgs.xdg-desktop-portal-gtk
- pkgs.libsForQt5.xdg-desktop-portal-kde
- pkgs.lxqt.xdg-desktop-portal-lxqt
- ];
- };
- };
- environment.systemPackages = with pkgs; [
- xdg-utils
- xdg-desktop-portal
- xdg-desktop-portal-gtk
- xdg-desktop-portal-hyprland
- ];
-
- environment.sessionVariables = {
- XDG_SESSION_TYPE = "wayland";
- };
-}
diff --git a/common/networking/default.nix b/common/networking/default.nix
deleted file mode 100644
index a9a6091..0000000
--- a/common/networking/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ lib, ... }:
-{
- imports = [
- ./zerotier.nix
- ./firewall.nix
- # ./wireless.nix
- ./networkmanager.nix
- ];
-
- zerotier.enable = lib.mkDefault true;
- firewall.enable = lib.mkDefault true;
- # wireless.enable = lib.mkDefault false;
-}
diff --git a/common/networking/firewall.nix b/common/networking/firewall.nix
deleted file mode 100644
index 96ceb9a..0000000
--- a/common/networking/firewall.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- outputs,
- ...
-}:
-{
- options = {
- firewall.enable = lib.mkEnableOption "Enable the Firewall";
- };
- config = lib.mkIf config.firewall.enable {
- networking.nftables.enable = true;
- networking.firewall = {
- enable = true;
- };
- };
-}
diff --git a/common/networking/hosts.nix b/common/networking/hosts.nix
deleted file mode 100644
index 54126d5..0000000
--- a/common/networking/hosts.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-_: {
- networking.extraHosts = ''
- 10.147.17.246 audiobooks.zerotier.gwg313.xyz
- 10.147.17.246 music.zerotier.gwg313.xyz
- 10.147.17.246 recipes.zerotier.gwg313.xyz
- 10.147.17.246 scholarsome.zerotier.gwg313.xyz
- 10.147.17.246 bookmarks.zerotier.gwg313.xyz
- 10.147.17.246 pastebin.zerotier.gwg313.xyz
- 10.147.17.246 snippets.zerotier.gwg313.xyz
- 10.147.17.246 git.zerotier.gwg313.xyz
- 10.147.17.246 s3.zerotier.gwg313.xyz
- 10.147.17.246 s3-console.zerotier.gwg313.xyz
- 10.147.17.246 registry.zerotier.gwg313.xyz
- 10.147.17.246 ci.zerotier.gwg313.xyz
- 10.147.17.246 uptime.zerotier.gwg313.xyz
-
-
-
- 10.1.10.50 music.gwg313.xyz
- 10.1.10.50 git.gwg313.xyz
- 10.1.10.50 ci.gwg313.xyz
- 10.1.10.50 registry.gwg313.xyz
- 10.1.10.50 s3.gwg313.xyz
- 10.1.10.50 s3-console.gwg313.xyz
- 10.1.10.50 pastebin.gwg313.xyz
- 10.1.10.50 audiobooks.gwg313.xyz
- 10.1.10.9 uptime.gwg313.xyz
- '';
-}
diff --git a/common/networking/networkmanager.nix b/common/networking/networkmanager.nix
deleted file mode 100644
index b025d2d..0000000
--- a/common/networking/networkmanager.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- config,
- pkgs,
- ...
-}:
-{
-
- environment.systemPackages = with pkgs; [ linuxKernel.packages.linux_5_4.wireguard ];
-
- sops.secrets."wireless.env" = { };
- networking = {
- networkmanager = {
- enable = true;
- wifi.scanRandMacAddress = true;
- ensureProfiles = {
- environmentFiles = [ config.sops.secrets."wireless.env".path ];
- profiles = {
- home-wifi = {
- connection.id = "home-wifi";
- connection.type = "wifi";
- wifi.ssid = "$home_uuid";
- wifi-security = {
- auth-alg = "open";
- key-mgmt = "wpa-psk";
- psk = "$home_psk";
- };
- connection.autoconnect-priority = 100;
- };
- eduroam = {
- connection.id = "eduroam";
- connection.type = "wifi";
- wifi.ssid = "eduroam";
- wifi-security = {
- key-mgmt = "wpa-eap";
- };
- "802-1x" = {
- eap = "peap;";
- identity = "$eduroam_identity";
- password = "$school_password";
- phase2-auth = "mschapv2";
- };
- connection.autoconnect = true;
- connection.autoconnect-priority = 80;
- wifi.powersave = 2;
- wifi.mode = "infrastructure";
- ipv4.method = "auto";
- # ipv4.dns = "8.8.8.8,8.8.4.4.";
- # ipv6.dns = "2001:4860:4860::8888";
- # wifi.mac-address-randomization = "random";
- ipv4.dhcp-send-hostname = false;
- # ipv4.dhcp-hostname = "NoName";
- # connection.metered = "yes";
- };
-
- school = {
- connection.id = "School";
- connection.type = "wifi";
- wifi.ssid = "$school_uuid";
- wifi-security = {
- key-mgmt = "wpa-eap";
- };
- "802-1x" = {
- eap = "peap;";
- identity = "$school_identity";
- password = "$school_password";
- phase2-auth = "mschapv2";
- };
- connection.autoconnect = true;
- connection.autoconnect-priority = 90;
- wifi.powersave = 2;
- wifi.mode = "infrastructure";
- ipv4.method = "auto";
- # ipv4.dns = "8.8.8.8,8.8.4.4.";
- # ipv6.dns = "2001:4860:4860::8888";
- # wifi.mac-address-randomization = "random";
- ipv4.dhcp-send-hostname = false;
- # ipv4.dhcp-hostname = "NoName";
- # connection.metered = "yes";
- };
- };
- };
- };
- };
-}
diff --git a/common/networking/wireless.nix b/common/networking/wireless.nix
deleted file mode 100644
index 46389ff..0000000
--- a/common/networking/wireless.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
-
- options = {
- wireless.enable = lib.mkEnableOption "Enables Wifi and adds my networks";
- };
- config = lib.mkIf config.wireless.enable {
- sops.templates."wpa_supplicant.conf" = {
- content = ''
- network={
- }
- '';
- path = "/etc/wpa_supplicant.conf";
- };
- sops.secrets."wireless.env" = { };
- networking.wireless.enable = true;
- environment.systemPackages = with pkgs; [ wpa_supplicant_gui ];
- networking.wireless.userControlled.enable = true;
- networking.wireless.allowAuxiliaryImperativeNetworks = true;
-
- networking.wireless.secretsFile = config.sops.secrets."wireless.env".path;
- networking.wireless.networks = {
- "Tycho Station" = {
- pskRaw = "ext:home_psk";
- priority = 99;
- };
- "CU-Wireless" = {
- auth = ''
- key_mgmt=WPA-EAP
- eap=PEAP
- phase2="auth=MSCHAPV2"
- identity="glengoodwin"
- password=ext:school_password
- '';
- priority = 89;
- };
-
- "eduroam" = {
- auth = ''
- key_mgmt=WPA-EAP
- eap=PEAP
- phase2="auth=MSCHAPV2"
- identity="ext:eduroam_identity"
- password="ext:school_password"
- '';
- priority = 79;
- };
- };
- };
-}
diff --git a/common/networking/zerotier.nix b/common/networking/zerotier.nix
deleted file mode 100644
index e474bda..0000000
--- a/common/networking/zerotier.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- outputs,
- ...
-}:
-{
- options = {
- zerotier.enable = lib.mkEnableOption "Enables zerotier and joins my network";
- };
- config = lib.mkIf config.zerotier.enable {
- services.zerotierone = {
- joinNetworks = [
- "ebe7fbd445359e9d"
- ];
- enable = true;
- };
-
- networking.extraHosts = ''
- 192.168.194.54 graphene.zt
- 192.168.191.218 candlekeep.zt
- 192.168.191.201 grymforge.zt
- '';
- };
-}
diff --git a/common/nixos/bluetooth.nix b/common/nixos/bluetooth.nix
deleted file mode 100644
index eaff4f0..0000000
--- a/common/nixos/bluetooth.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- config,
- lib,
- ...
-}: {
- options = {
- bluetooth.enable = lib.mkEnableOption "Enables Bluetooth";
- };
-
- config = lib.mkIf config.bluetooth.enable {
- services.blueman.enable = true;
- hardware.bluetooth = {
- enable = true;
- powerOnBoot = true;
- };
-
- services.upower = {
- enable = true;
- };
- };
-}
diff --git a/common/nixos/common.nix b/common/nixos/common.nix
deleted file mode 100644
index f3dc8ed..0000000
--- a/common/nixos/common.nix
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- outputs,
- user,
- ...
-}:
-{
- imports = [
- ./packages.nix
- ./users.nix
- ./locale.nix
- ./documentation.nix
- ../../common/style/stylix.nix
- ];
- #
- security.sudo.extraRules = [
- {
- users = [ "gwg313" ];
- commands = [
- {
- command = "/run/current-system/sw/bin/nixos-rebuild";
- options = [ "NOPASSWD" ];
- }
- ];
- }
- ];
- nixpkgs.config = {
- allowUnfree = true;
- };
- nix = {
- settings = {
- substituters = [
- "https://cache.nixos.org?priority=10"
- "https://hyprland.cachix.org"
- "https://nix-community.cachix.org"
- "https://cache.garnix.io"
- "https://numtide.cachix.org"
- ];
- trusted-public-keys = [
- "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
- "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
- "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
- "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
- ];
- experimental-features = [
- "nix-command"
- "flakes"
- ];
- auto-optimise-store = true;
- trusted-users = [ "${user}" ];
- };
- optimise.automatic = true;
- gc = {
- automatic = true;
- dates = "daily";
- options = "--delete-older-than 14d";
- };
-
- };
-
- services = {
- fstrim.enable = true;
- };
- # Disable so comma can be installed
- programs.command-not-found.enable = false;
- programs.nix-index-database.comma.enable = true;
-
- # This value determines the NixOS release from which the default
- # settings for stateful data, like file locations and database versions
- # on your system we e ere taken. It's perfectly fine and recommended to leave
- # this value at the release version of the first install of this system.
- # Before changing this value read the documentation for this option
- # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
- system.stateVersion = "23.05"; # Did you read the comment?
-}
diff --git a/common/nixos/default.nix b/common/nixos/default.nix
deleted file mode 100644
index 8210252..0000000
--- a/common/nixos/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, pkgs, ... }:
-{
- imports = [
- ./common.nix
- ./laptop.nix
- ./nfs.nix
- ./restic.nix
- ./ssh/default.nix
- ./logrotate.nix
- ];
-
- laptop.enable = lib.mkDefault false;
- nfs.enable = lib.mkDefault false;
- restic.enable = lib.mkDefault true;
- services.flatpak.enable = true;
- systemd.services.flatpak-repo = {
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.flatpak ];
- script = ''
- flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- '';
- };
- # flatpak override --user --socket=wayland md.obsidian.Obsidian (Must run this for obsidian to launch)
-}
diff --git a/common/nixos/documentation.nix b/common/nixos/documentation.nix
deleted file mode 100644
index 19d8e1e..0000000
--- a/common/nixos/documentation.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ pkgs, ... }:
-{
- environment.systemPackages = [
- pkgs.man-pages
- pkgs.man-pages-posix
- ];
- documentation = {
- dev.enable = true;
- man = {
- man-db.enable = false;
- mandoc.enable = true;
- };
- };
-
- environment.sessionVariables = {
- MANPAGER = "sh -c '${pkgs.gnugrep}/bin/sed -u -e \"s/\\x1B\[[0-9\;]*m//g; s/.\\x08//g\" | ${pkgs.bat}/bin/bat -p -lman'";
- };
-}
diff --git a/common/nixos/laptop.nix b/common/nixos/laptop.nix
deleted file mode 100644
index d849971..0000000
--- a/common/nixos/laptop.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-{
- imports = [
- ./bluetooth.nix
- # ../networking/wireless.nix
- ../networking/networkmanager.nix
- ];
- options = {
- laptop.enable = lib.mkEnableOption "Enables Laptop options";
- };
-
- config = lib.mkIf config.laptop.enable {
- # enable's backlight switching
- programs.light.enable = true;
-
- # use TLP for power management
- services.tlp.enable = true;
-
- bluetooth.enable = true;
- # wireless.enable = true;
- };
-}
diff --git a/common/nixos/locale.nix b/common/nixos/locale.nix
deleted file mode 100644
index 5364945..0000000
--- a/common/nixos/locale.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- outputs,
- ...
-}: {
- # Set your time zone.
- time.timeZone = "America/Toronto";
-
- # Select internationalisation properties.
- i18n.defaultLocale = "en_US.UTF-8";
-
- i18n.extraLocaleSettings = {
- LC_ADDRESS = "en_US.UTF-8";
- LC_IDENTIFICATION = "en_US.UTF-8";
- LC_MEASUREMENT = "en_US.UTF-8";
- LC_MONETARY = "en_US.UTF-8";
- LC_NAME = "en_US.UTF-8";
- LC_NUMERIC = "en_US.UTF-8";
- LC_PAPER = "en_US.UTF-8";
- LC_TELEPHONE = "en_US.UTF-8";
- LC_TIME = "en_US.UTF-8";
- };
-}
diff --git a/common/nixos/logrotate.nix b/common/nixos/logrotate.nix
deleted file mode 100644
index 734a340..0000000
--- a/common/nixos/logrotate.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- ...
-}:
-{
-
- services.logrotate = {
- settings = {
- header = {
- dateext = true;
- };
-
- "var/log/audit/audit.log" = {
- frequency = "daily";
- rotate = 3;
- size = "100k";
- };
- };
- };
-}
diff --git a/common/nixos/nfs.nix b/common/nixos/nfs.nix
deleted file mode 100644
index 7ba3549..0000000
--- a/common/nixos/nfs.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- config,
- lib,
- inputs,
- ...
-}:
-{
- options = {
- nfs.enable = lib.mkEnableOption "Enables NFS and sets up mounts";
- };
-
- config = lib.mkIf config.nfs.enable {
- fileSystems = {
- "/media" = {
- device = inputs.secrets.nfs.devices.media;
- fsType = "nfs";
- options = [
- "x-systemd.automount"
- "noauto"
- "x-systemd.after=network-online.target"
- "x-systemd.mount-timeout=90"
- ];
- };
-
- "/books" = {
- device = inputs.secrets.nfs.devices.books;
- fsType = "nfs";
- options = [
- "x-systemd.automount"
- "noauto"
- "x-systemd.after=network-online.target"
- "x-systemd.mount-timeout=90"
- ];
- };
-
- "/music" = {
- device = inputs.secrets.nfs.devices.music;
- fsType = "nfs";
- options = [
- "x-systemd.automount"
- "noauto"
- "x-systemd.after=network-online.target"
- "x-systemd.mount-timeout=90"
- ];
- };
-
- "/projects" = {
- device = inputs.secrets.nfs.devices.projects;
- fsType = "nfs";
- options = [
- "x-systemd.automount"
- "noauto"
- "x-systemd.after=network-online.target"
- "x-systemd.mount-timeout=90"
- ];
- };
-
- "/backups" = {
- device = inputs.secrets.nfs.devices.backups;
- fsType = "nfs";
- options = [
- "x-systemd.automount"
- "noauto"
- "x-systemd.after=network-online.target"
- "x-systemd.mount-timeout=90"
- ];
- };
- };
- };
-}
diff --git a/common/nixos/packages.nix b/common/nixos/packages.nix
deleted file mode 100644
index b2c84fd..0000000
--- a/common/nixos/packages.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- config,
- lib,
- pkgs,
- user,
- inputs,
- outputs,
- ...
-}:
-{
- # Some programs need SUID wrappers, can be configured further or are
- # started in user sessions.
- programs.gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- };
-
- environment.sessionVariables = {
- SSH_AUTH_SOCK = "/run/user/1000/gnupg/S.gpg-agent.ssh";
- };
-
- # List packages installed in system profile. To search, run:
- # $ nix search wget
- environment.systemPackages = with pkgs; [
- alejandra
- sops
- just
- # vim
- wget
- home-manager
- git
- nh
- nix-output-monitor
- nvd
- # inputs.superfile.packages.${system}.default
- ];
- environment.sessionVariables = {
- NH_FLAKE = "/home/${user}/repos/nixos-config";
- };
-}
diff --git a/common/nixos/restic.nix b/common/nixos/restic.nix
deleted file mode 100644
index cb89774..0000000
--- a/common/nixos/restic.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- config,
- lib,
- user,
- ...
-}:
-{
- options = {
- restic.enable = lib.mkEnableOption "Enables Restic";
- };
-
- config = lib.mkIf config.nfs.enable {
- sops.secrets.restic_key = {
- owner = config.users.users.${user}.name;
- };
-
- services.restic.backups = {
- backups = {
- user = "${user}";
- repository = "/backups/grymforge";
- initialize = true;
- passwordFile = "${config.sops.secrets.restic_key.path}";
- paths = [
- "/home/${user}/repos"
- "/home/${user}/Documents"
- "/home/${user}/.local/share/password-store"
- ];
- # extraBackupArgs = [ "--exclude-file=/home/gwg313/Documents/Celsus" ];
- timerConfig = {
- OnCalendar = "06:40";
- };
- };
- };
- };
-}
diff --git a/common/nixos/ssh/default.nix b/common/nixos/ssh/default.nix
deleted file mode 100644
index c6f352e..0000000
--- a/common/nixos/ssh/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ lib, ... }:
-{
- imports = [
- ./ssh.nix
- ./ssh_client.nix
- ./ssh_guard.nix
- ];
-
- ssh_client.enable = lib.mkDefault true;
- ssh.enable = lib.mkDefault false;
- ssh_guard.enable = lib.mkDefault false;
-}
diff --git a/common/nixos/ssh/ssh.nix b/common/nixos/ssh/ssh.nix
deleted file mode 100644
index 273e758..0000000
--- a/common/nixos/ssh/ssh.nix
+++ /dev/null
@@ -1,156 +0,0 @@
-{
- config,
- lib,
- user,
- ...
-}:
-{
- options = {
- ssh.enable = lib.mkEnableOption "enable ssh settings";
- };
- config = lib.mkIf config.ssh.enable {
- # https://www.ssh-audit.com/hardening_guides.html
- # https://github.com/jtesta/ssh-audit
- services.openssh = {
- enable = true;
- settings = {
- ########## Features ##########
-
- # disallow ssh-agent forwarding to prevent lateral movement
- AllowAgentForwarding = false;
-
- # prevent TCP ports from being forwarded over SSH tunnels
- # **please be aware that disabling TCP forwarding does not prevent port forwarding**
- # any user with an interactive login shell can spin up his/her own instance of sshd
- AllowTcpForwarding = false;
-
- # prevent StreamLocal (Unix-domain socket) forwarding
- AllowStreamLocalForwarding = false;
-
- # disables all forwarding features
- # overrides all other forwarding switches
- DisableForwarding = true;
-
- # disallow remote hosts from connecting to forwarded ports
- # i.e. forwarded ports are forced to bind to 127.0.0.1 instad of 0.0.0.0
- GatewayPorts = "no";
-
- # prevent tun device forwarding
- PermitTunnel = false;
-
- # suppress MOTD
- PrintMotd = false;
-
- # disable X11 forwarding since it is not necessary
- X11Forwarding = false;
-
- ########## Authentication ##########
-
- AllowUsers = [ "${user}" ];
-
- # Use keys only. Remove if you want to SSH using password (not recommended)
- PasswordAuthentication = false;
- HostbasedAuthentication = false;
-
- # enable pubkey authentication
- PubkeyAuthentication = true;
-
- # Forbid root login through SSH.
- PermitRootLogin = "no";
-
- # nix enables pam by default
- # UsePAM = false;
-
- # challenge-response authentication backend it not configured by default
- # therefore, it is set to "no" by default to avoid the use of an unconfigured backend
- ChallengeResponseAuthentication = false;
-
- # set maximum authentication retries to prevent brute force attacks
- MaxAuthTries = 3;
-
- # disallow connecting using empty passwords
- PermitEmptyPasswords = false;
-
- ########## Cryptography ##########
-
- # explicitly define cryptography algorithms to avoid the use of weak algorithms
- # AES CTR modes have been removed to mitigate the Terrapin attack
- # https://terrapin-attack.com/
-
- Ciphers = [
- "aes256-gcm@openssh.com"
- "aes128-gcm@openssh.com"
- ];
- Macs = [
- "hmac-sha2-256-etm@openssh.com"
- "hmac-sha2-512-etm@openssh.com"
- "umac-128-etm@openssh.com"
- ];
- KexAlgorithms = [
- "sntrup761x25519-sha512@openssh.com"
- "curve25519-sha256"
- "curve25519-sha256@libssh.org"
- "diffie-hellman-group16-sha512"
- "diffie-hellman-group18-sha512"
- ];
-
- # hostKeyAlgorithms = [
- # "rsa-sha2-512"
- # "rsa-sha2-256"
- # "ssh-ed25519"
- # ];
-
- ########## Connection Preferences ##########
-
- # enforce SSH server to only use SSH protocol version 2
- # SSHv1 contains security issues and should be avoided at all costs
- # SSHv1 is disabled by default after OpenSSH 7.0, but this option is
- # specified anyways to ensure this configuration file's compatibility
- # with older versions of OpenSSH server
- Protocol = 2;
-
- # number of client alive messages sent without client responding
- ClientAliveCountMax = 2;
-
- # send a keepalive message to the client when the session has been idle for 300 seconds
- # this prevents/detects connection timeouts
- ClientAliveInterval = 300;
-
- # compression before encryption might cause security issues
- Compression = false;
-
- # prevent SSH trust relationships from allowing lateral movements
- IgnoreRhosts = true;
-
- # log verbosely for addtional information
- LogLevel = "VERBOSE";
-
- # allow a maximum of two multiplexed sessions over a single TCP connection
- MaxSessions = 2;
-
- # let ClientAliveInterval handle keepalive
- TCPKeepAlive = false;
-
- # disable reverse DNS lookups
- # UseDNS = false;
- };
- extraConfig = ''
- ########## Features ##########
-
- # accept locale-related environment variables
- AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
- AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
- AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
- AcceptEnv XMODIFIERS
-
- ########## Connection Preferences ##########
- # disable reverse DNS lookups
- UseDNS no
-
- ########## Disable GSS ##########
-
- GSSAPIAuthentication no
- '';
- };
- };
-}
diff --git a/common/nixos/ssh/ssh_client.nix b/common/nixos/ssh/ssh_client.nix
deleted file mode 100644
index ad5fa89..0000000
--- a/common/nixos/ssh/ssh_client.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-{
- options = {
- ssh_client.enable = lib.mkEnableOption "enable ssh client settings";
- };
- config = lib.mkIf config.ssh_client.enable {
- programs.ssh = {
- # disable unnecessary forwardings
- forwardX11 = false;
-
- # explicitly define cryptography algorithms to avoid the use of weak algorithms
- # AES CTR modes have been removed to mitigate the Terrapin attack
- # https://terrapin-attack.com/
- ciphers = [
- "aes256-gcm@openssh.com"
- "aes128-gcm@openssh.com"
- ];
- hostKeyAlgorithms = [
- "ssh-ed25519"
- "ssh-ed25519-cert-v01@openssh.com"
- "sk-ssh-ed25519@openssh.com"
- "sk-ssh-ed25519-cert-v01@openssh.com"
- "rsa-sha2-256"
- "rsa-sha2-256-cert-v01@openssh.com"
- "rsa-sha2-512"
- "rsa-sha2-512-cert-v01@openssh.com"
- ];
- macs = [
- "hmac-sha2-256-etm@openssh.com"
- "hmac-sha2-512-etm@openssh.com"
- "umac-128-etm@openssh.com"
- ];
- kexAlgorithms = [
- "sntrup761x25519-sha512@openssh.com"
- "curve25519-sha256"
- "curve25519-sha256@libssh.org"
- "diffie-hellman-group16-sha512"
- "diffie-hellman-group18-sha512"
- ];
- extraConfig = "
- # disable unnecessary forwardings
- ForwardAgent no
- ForwardX11Trusted no
- GatewayPorts no
- Tunnel no
-
- # disable unnecessary authentication methods
- ChallengeResponseAuthentication no
- HostbasedAuthentication no
-
- # define authentication methods to be used
- PasswordAuthentication yes
- PubkeyAuthentication yes
- PreferredAuthentications publickey,password
-
- # disable pre-connection compression as it could cause security issues
- Compression no
-
- # in addition to checking a host's hostname, also check the host's IP address
- # this provides extra safety against DNS spoofing attacks
- CheckHostIP yes
-
- # ask the user if the user wants to accept the new host's host key
- StrictHostKeyChecking ask
-
- # hash the entries in the known_hosts file to prevent disclosure
- # of the file's content
- HashKnownHosts yes
-
- # send a keepalive message to the server when the session has been idle for 60 seconds
- # this prevents/detects connection timeouts
- ServerAliveInterval 60
-
- # increase the number of password retries
- NumberOfPasswordPrompts 5
-
- # display an ASCII art of the server's host key
- VisualHostKey yes
- ";
- };
- };
-}
diff --git a/common/nixos/ssh/ssh_guard.nix b/common/nixos/ssh/ssh_guard.nix
deleted file mode 100644
index 456040b..0000000
--- a/common/nixos/ssh/ssh_guard.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- config,
- lib,
- ...
-}: {
- options = {
- ssh_guard.enable = lib.mkEnableOption "enable ssh guard";
- };
- config = lib.mkIf config.ssh_guard.enable {
- services.sshguard = {
- enable = true;
- services = [
- "sshd"
- ];
- blocktime = 120;
- detection_time = 1800;
- blacklist_threshold = 120;
- blacklist_file = "/var/lib/sshguard/blacklist.db";
- };
- };
-}
diff --git a/common/nixos/sysctl/default.nix b/common/nixos/sysctl/default.nix
deleted file mode 100644
index afb70c3..0000000
--- a/common/nixos/sysctl/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- imports = [
- ./kernel.nix
- ./file_system.nix
- ./virtualization.nix
- ./networking/default.nix
- ];
-}
diff --git a/common/nixos/sysctl/file_system.nix b/common/nixos/sysctl/file_system.nix
deleted file mode 100644
index 2cc0586..0000000
--- a/common/nixos/sysctl/file_system.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- # disallow core dumping by SUID/SGID programs
- "fs.suid_dumpable" = 0;
-
- # protect the creation of hard links
- # one of the following conditions must be fulfilled
- # - the user can only link to files that he or she owns
- # - the user must first have read and write access to a file, that he/she wants to link to
- "fs.protected_hardlinks" = 1;
-
- # protect the creation of symbolic links
- # one of the following conditions must be fulfilled
- # - the process following the symbolic link is the owner of the symbolic link
- # - the owner of the directory is also the owner of the symbolic link
- "fs.protected_symlinks" = 1;
-
- # enable extended FIFO protection
- "fs.protected_fifos" = 2;
-
- # similar to protected_fifos, but it avoids writes to an attacker-controlled regular file
- "fs.protected_regular" = 2;
-
- # increase system file descriptor limit
- # this value can be up to:
- # - 2147483647 (0x7fffffff) on a 32-bit system
- # - 9223372036854775807 (0x7fffffffffffffff) on a 64-bit system
- # be aware that the Linux kernel documentation suggests that inode-max should be 3-4 times
- # larger than this value
- "fs.file-max" = 9223372036854775807;
-
- # increase the amount of files that can be watched
- # each file watch handle takes 1080 bytes
- # up to 540 MiB of memory will be consumed if all 524288 handles are used
- "fs.inotify.max_user_watches" = 524288;
- };
-}
diff --git a/common/nixos/sysctl/kernel.nix b/common/nixos/sysctl/kernel.nix
deleted file mode 100644
index 2effb04..0000000
--- a/common/nixos/sysctl/kernel.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{
- config,
- pkgs,
- ...
-}:
-{
- boot.kernel.sysctl = {
- # enable ExecShield protection
- # 2 enables ExecShield by default unless applications bits are set to disabled
- # uncomment on systems without NX/XD protections
- # check with: dmesg | grep --color '[NX|DX]*protection'
- #kernel.exec-shield = 2
-
- # enable ASLR
- # turn on protection and randomize stack, vdso page and mmap + randomize brk base address
- "kernel.randomize_va_space" = 2;
-
- # controls the System Request debugging functionality of the kernel
- "kernel.sysrq" = 0;
-
- # controls whether core dumps will append the PID to the core filename
- # useful for debugging multi-threaded applications
- "kernel.core_uses_pid" = 1;
-
- # restrict access to kernel address
- # kernel pointers printed using %pK will be replaced with 0’s regardless of privileges
- "kernel.kptr_restrict" = 2;
-
- # Ptrace protection using Yama
- # - 1: only a parent process can be debugged
- # - 2: only admins can use ptrace (CAP_SYS_PTRACE capability required)
- # - 3: disables ptrace completely, reboot is required to re-enable ptrace
- # If you need ptrace to work, then avoid non-ancestor ptrace access to running processes and their credentials, and use value "1".
- # # breaks debuggers
- # "kernel.yama.ptrace_scope" = 3;
-
- # restrict kernel logs to root only
- "kernel.dmesg_restrict" = 1;
-
- # restrict BPF JIT compiler to root only
- "kernel.unprivileged_bpf_disabled" = 1;
-
- # disables kexec as it can be used to livepatch the running kernel
- "kernel.kexec_load_disabled" = 1;
-
- # disable unprivileged user namespaces to decrease attack surface
- "kernel.unprivileged_userns_clone" = 0;
-
- # disable the loading of kernel modules
- # this can be used to prevent runtime insertion of malicious modules
- # could break the system if enabled within sysctl.conf
- # consider setting this manually after system is up
- # sudo sysctl -w kernel.modules_disabled=1
- #kernel.modules_disabled = 1
-
- # allow for more PIDs
- # this value can be up to:
- # - 32768 (2^15) on a 32-bit system
- # - 4194304 (2^22) on a 64-bit system
- "kernel.pid_max" = 4194304;
-
- # reboot machine after kernel panic
- #kernel.panic = 10
-
- # restrict perf subsystem usage
- "kernel.perf_event_paranoid" = 3;
- "kernel.perf_cpu_time_max_percent" = 1;
- "kernel.perf_event_max_sample_rate" = 1;
-
- # prevent unprivileged attackers from loading vulnerable line disciplines with the TIOCSETD ioctl
- "dev.tty.ldisc_autoload" = 0;
- };
-}
diff --git a/common/nixos/sysctl/network.nix b/common/nixos/sysctl/network.nix
deleted file mode 100644
index 1f13683..0000000
--- a/common/nixos/sysctl/network.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- };
-}
diff --git a/common/nixos/sysctl/networking/default.nix b/common/nixos/sysctl/networking/default.nix
deleted file mode 100644
index edb4ce2..0000000
--- a/common/nixos/sysctl/networking/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- imports = [
- ./ipv4.nix
- ./ipv6.nix
- ./net.nix
- ];
-}
diff --git a/common/nixos/sysctl/networking/ipv4.nix b/common/nixos/sysctl/networking/ipv4.nix
deleted file mode 100644
index 7f50248..0000000
--- a/common/nixos/sysctl/networking/ipv4.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- # enable BBR congestion control
- "net.ipv4.tcp_congestion_control" = "bbr";
-
- # disallow IPv4 packet forwarding
- "net.ipv4.ip_forward" = 0;
-
- # enable SYN cookies for SYN flooding protection
- "net.ipv4.tcp_syncookies" = 1;
-
- # number of times SYNACKs for a passive TCP connection attempt will be retransmitted
- "net.ipv4.tcp_synack_retries" = 5;
-
- # do not send redirects
- "net.ipv4.conf.default.send_redirects" = 0;
- "net.ipv4.conf.all.send_redirects" = 0;
-
- # do not accept packets with SRR option
- "net.ipv4.conf.default.accept_source_route" = 0;
- "net.ipv4.conf.all.accept_source_route" = 0;
-
- # enable reverse path source validation (BCP38)
- # refer to RFC1812, RFC2827, and BCP38 (http://www.bcp38.info)
- "net.ipv4.conf.default.rp_filter" = 1;
- "net.ipv4.conf.all.rp_filter" = 1;
-
- # log packets with impossible addresses to kernel log
- "net.ipv4.conf.default.log_martians" = 1;
- "net.ipv4.conf.all.log_martians" = 1;
-
- # do not accept ICMP redirect messages
- "net.ipv4.conf.default.accept_redirects" = 0;
- "net.ipv4.conf.default.secure_redirects" = 0;
- "net.ipv4.conf.all.accept_redirects" = 0;
- "net.ipv4.conf.all.secure_redirects" = 0;
-
- # disable sending and receiving of shared media redirects
- # this setting overwrites net.ipv4.conf.all.secure_redirects
- # refer to RFC1620
- "net.ipv4.conf.default.shared_media" = 0;
- "net.ipv4.conf.all.shared_media" = 0;
-
- # always use the best local address for announcing local IP via ARP
- "net.ipv4.conf.default.arp_announce" = 2;
- "net.ipv4.conf.all.arp_announce" = 2;
-
- # reply only if the target IP address is local address configured on the incoming interface
- "net.ipv4.conf.default.arp_ignore" = 1;
- "net.ipv4.conf.all.arp_ignore" = 1;
-
- # drop Gratuitous ARP frames to prevent ARP poisoning
- # this can cause issues when ARP proxies are used in the network
- "net.ipv4.conf.default.drop_gratuitous_arp" = 1;
- "net.ipv4.conf.all.drop_gratuitous_arp" = 1;
-
- # ignore all ICMP echo requests
- #net.ipv4.icmp_echo_ignore_all = 1
-
- # ignore all ICMP echo and timestamp requests sent to broadcast/multicast
- "net.ipv4.icmp_echo_ignore_broadcasts" = 1;
-
- # ignore bad ICMP errors
- "net.ipv4.icmp_ignore_bogus_error_responses" = 1;
-
- # mitigate TIME-WAIT Assassination hazards in TCP
- # refer to RFC1337
- "net.ipv4.tcp_rfc1337" = 1;
-
- # disable TCP window scaling
- # this makes the host less susceptible to TCP RST DoS attacks
- # could drastically reduce throughput if latency is high
- #net.ipv4.tcp_window_scaling = 0
-
- # increase system IP port limits
- "net.ipv4.ip_local_port_range" = "1024 65535";
-
- # TCP timestamps could provide protection against wrapped sequence numbers,
- # but the host's uptime can be calculated precisely from its timestamps
- # it is also possible to differentiate operating systems based on their use of timestamps
- # - 0: disable TCP timestamps
- # - 1: enable timestamps as defined in RFC1323 and use random offset for
- # each connection rather than only using the current time
- # - 2: enable timestamps without random offsets
- "net.ipv4.tcp_timestamps" = 0;
-
- # enabling SACK can increase the throughput
- # but SACK is commonly exploited and rarely used
- "net.ipv4.tcp_sack" = 0;
- "net.ipv4.tcp_dsack" = 0;
- "net.ipv4.tcp_fack" = 0;
-
- # divide socket buffer evenly between TCP window size and application
- "net.ipv4.tcp_adv_win_scale" = 1;
-
- # SSR could impact TCP's performance on a fixed-speed network (e.g., wired)
- # but it could be helpful on a variable-speed network (e.g., LTE)
- # uncomment this if you are on a fixed-speed network
- "net.ipv4.tcp_slow_start_after_idle" = 0;
-
- # enabling MTU probing helps mitigating PMTU blackhole issues
- # this may not be desirable on congested networks
- "net.ipv4.tcp_mtu_probing" = 1;
- "net.ipv4.tcp_base_mss" = 1024;
-
- # increase memory thresholds to prevent packet dropping
- "net.ipv4.tcp_rmem" = "4096 87380 8388608";
- "net.ipv4.tcp_wmem" = "4096 87380 8388608";
- };
-}
diff --git a/common/nixos/sysctl/networking/ipv6.nix b/common/nixos/sysctl/networking/ipv6.nix
deleted file mode 100644
index 693f774..0000000
--- a/common/nixos/sysctl/networking/ipv6.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- # disallow IPv6 packet forwarding
- "net.ipv6.conf.default.forwarding" = 0;
- "net.ipv6.conf.all.forwarding" = 0;
-
- # number of Router Solicitations to send until assuming no routers are present
- "net.ipv6.conf.default.router_solicitations" = 0;
- "net.ipv6.conf.all.router_solicitations" = 0;
-
- # do not accept Router Preference from RA
- "net.ipv6.conf.default.accept_ra_rtr_pref" = 0;
- "net.ipv6.conf.all.accept_ra_rtr_pref" = 0;
-
- # learn prefix information in router advertisement
- "net.ipv6.conf.default.accept_ra_pinfo" = 0;
- "net.ipv6.conf.all.accept_ra_pinfo" = 0;
-
- # setting controls whether the system will accept Hop Limit settings from a router advertisement
- "net.ipv6.conf.default.accept_ra_defrtr" = 0;
- "net.ipv6.conf.all.accept_ra_defrtr" = 0;
-
- # router advertisements can cause the system to assign a global unicast address to an interface
- "net.ipv6.conf.default.autoconf" = 0;
- "net.ipv6.conf.all.autoconf" = 0;
-
- # number of neighbor solicitations to send out per address
- "net.ipv6.conf.default.dad_transmits" = 0;
- "net.ipv6.conf.all.dad_transmits" = 0;
-
- # number of global unicast IPv6 addresses can be assigned to each interface
- "net.ipv6.conf.default.max_addresses" = 1;
- "net.ipv6.conf.all.max_addresses" = 1;
-
- # enable IPv6 Privacy Extensions (RFC30;41) and prefer the temporary address
- #"net.ipv6.conf.default.use_tempaddr" = 2; # Nix sets by default
- "net.ipv6.conf.all.use_tempaddr" = 2;
-
- # ignore IPv6 ICMP redirect messages
- "net.ipv6.conf.default.accept_redirects" = 0;
- "net.ipv6.conf.all.accept_redirects" = 0;
-
- # do not accept packets with SRR option
- "net.ipv6.conf.default.accept_source_route" = 0;
- "net.ipv6.conf.all.accept_source_route" = 0;
-
- # ignore all ICMPv6 echo requests
- #net.ipv6.icmp.echo_ignore_all = 1
- #net.ipv6.icmp.echo_ignore_anycast = 1
- #net.ipv6.icmp.echo_ignore_multicast = 1
- };
-}
diff --git a/common/nixos/sysctl/networking/net.nix b/common/nixos/sysctl/networking/net.nix
deleted file mode 100644
index fe281dd..0000000
--- a/common/nixos/sysctl/networking/net.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- # increase the maximum length of processor input queues
- "net.core.netdev_max_backlog" = 250000;
-
- # enable BPF JIT hardening for all users
- # this trades off performance, but can mitigate JIT spraying
- "net.core.bpf_jit_harden" = 2;
-
- # increase TCP max buffer size setable using setsockopt()
- "net.core.rmem_max" = 8388608;
- "net.core.wmem_max" = 8388608;
- "net.core.rmem_default" = 8388608;
- "net.core.wmem_default" = 8388608;
- #net.core.optmem_max = 40960
- };
-}
diff --git a/common/nixos/sysctl/virtualization.nix b/common/nixos/sysctl/virtualization.nix
deleted file mode 100644
index 073ca9b..0000000
--- a/common/nixos/sysctl/virtualization.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- boot.kernel.sysctl = {
- # do not allow mmap in lower addresses
- "vm.mmap_min_addr" = 65536;
-
- # improve mmap ASLR effectiveness
- "vm.mmap_rnd_bits" = 32;
- "vm.mmap_rnd_compat_bits" = 16;
-
- # prevent unprivileged users from accessing userfaultfd
- # restricts syscall to the privileged users or the CAP_SYS_PTRACE capability
- "vm.unprivileged_userfaultfd" = 0;
- };
-}
diff --git a/common/nixos/tuigreet.nix b/common/nixos/tuigreet.nix
deleted file mode 100644
index 5114705..0000000
--- a/common/nixos/tuigreet.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ pkgs, ... }:
-{
- services.greetd = {
- enable = true;
- settings = {
- default_session = {
- command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland";
- user = "greeter";
- };
- };
- };
-
- environment.systemPackages = with pkgs; [ greetd.tuigreet ];
-
- systemd.services.greetd.serviceConfig = {
- Type = "idle";
- StandardInput = "tty";
- StandardOutput = "tty";
- StandardError = "journal";
- TTYReset = true;
- TTYVHangup = true;
- TTYVTDisallocate = true;
- };
-
- systemd.extraConfig = "DefaultTimeoutStopSec=10s";
-
-}
diff --git a/common/nixos/users.nix b/common/nixos/users.nix
deleted file mode 100644
index b9d8fba..0000000
--- a/common/nixos/users.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- outputs,
- ...
-}:
-{
- # Define a user account. Don't forget to set a password with 'passwd'.
- programs.zsh.enable = true;
- users.users.gwg313 = {
- isNormalUser = true;
- description = "Glen Goodwin";
- extraGroups = [
- "networkmanager"
- "wheel"
- "video"
- "docker"
- "audio"
- "wireshark"
- ];
- shell = pkgs.zsh;
- # shell = pkgs.nushell;
- uid = 1000;
- };
-}
diff --git a/common/nixos/variables-config.nix b/common/nixos/variables-config.nix
deleted file mode 100644
index e7cfce2..0000000
--- a/common/nixos/variables-config.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ lib, ... }:
-{
- options = {
- var = lib.mkOption {
- type = lib.types.attrs;
- default = { };
- };
- };
-}
diff --git a/common/style/stylix.nix b/common/style/stylix.nix
deleted file mode 100644
index 1334e62..0000000
--- a/common/style/stylix.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ pkgs, ... }:
-{
- stylix = {
- base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
- # base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-sulphurpool-light.yaml";
- # image = ./wallpaper.jpg;
- image = ../../wallpapers/nixos-wallpaper-catppuccin-latte.png;
- #polarity = "dark";
- autoEnable = true;
- enable = true;
-
- opacity.terminal = 1.0;
- fonts.sizes.terminal = 18;
-
- fonts = {
- serif = {
- package = pkgs.lmodern;
- name = "Latin Modern Roman";
- };
-
- sansSerif = {
- package = pkgs.inter;
- name = "Inter";
- };
-
- monospace = {
- package = pkgs.fira-code;
- name = "Fire Code";
- };
-
- emoji = {
- package = pkgs.noto-fonts-emoji;
- name = "Noto Color Emoji";
- };
- };
- cursor = {
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 20;
- };
- };
-}
diff --git a/common/style/vars/vars.nix b/common/style/vars/vars.nix
deleted file mode 100644
index d059ef8..0000000
--- a/common/style/vars/vars.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- lib,
- pkgs,
- config,
- ...
-}:
-{
- options.theme = lib.mkOption {
- type = lib.types.attrs;
- default = {
- rounding = 20;
- gaps-in = 10;
- gaps-out = 10 * 2;
- active-opacity = 0.96;
- inactive-opacity = 0.92;
- blur = true;
- border-size = 3;
- animation-speed = "fast"; # "fast" | "medium" | "slow"
- fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
- textColorOnWallpaper = config.lib.stylix.colors.base01; # Color of the text displayed on the wallpaper (Lockscreen, display manager, ...)
-
- bar = {
- # Hyprpanel
- position = "top"; # "top" | "bottom"
- transparent = true;
- transparentButtons = false;
- floating = true;
- };
- };
- description = "Theme configuration options";
- };
-
- config.stylix = {
- enable = true;
-
- # See https://tinted-theming.github.io/tinted-gallery/ for more schemes
- base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-latte.yaml";
- # base16Scheme = {
- # base00 = "09090B"; # Default Background
- # base01 = "1c1e1f"; # Lighter Background (Used for status bars, line number and folding marks)
- # base02 = "313244"; # Selection Background
- # base03 = "45475a"; # Comments, Invisibles, Line Highlighting
- # base04 = "585b70"; # Dark Foreground (Used for status bars)
- # base05 = "cdd6f4"; # Default Foreground, Caret, Delimiters, Operators
- # base06 = "f5e0dc"; # Light Foreground (Not often used)
- # base07 = "b4befe"; # Light Background (Not often used)
- # base08 = "f38ba8"; # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
- # base09 = "fab387"; # Integers, Boolean, Constants, XML Attributes, Markup Link Url
- # base0A = "f9e2af"; # Classes, Markup Bold, Search Text Background
- # base0B = "a6e3a1"; # Strings, Inherited Class, Markup Code, Diff Inserted
- # base0C = "94e2d5"; # Support, Regular Expressions, Escape Characters, Markup Quotes
- # base0D = "c5afd4"; # Functions, Methods, Attribute IDs, Headings, Accent color
- # base0E = "cba6f7"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
- # base0F = "f2cdcd"; # Deprecated, Opening/Closing Embedded Language Tags, e.g.
- # };
-
- cursor = {
- name = "phinger-cursors-light";
- package = pkgs.phinger-cursors;
- size = 20;
- };
-
- fonts = {
- serif = {
- package = pkgs.lmodern;
- name = "Latin Modern Roman";
- };
-
- sansSerif = {
- package = pkgs.inter;
- name = "Inter";
- };
-
- monospace = {
- package = pkgs.fira-code;
- name = "Fire Code";
- };
-
- emoji = {
- package = pkgs.noto-fonts-emoji;
- name = "Noto Color Emoji";
- };
- sizes = {
- applications = 13;
- desktop = 13;
- popups = 13;
- terminal = 13;
- };
- };
-
- polarity = "light";
- image = pkgs.fetchurl {
- url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/black-and-white-forest_minimalist_black-and-white.png";
- sha256 = "sha256-MOlLRQonZ6UAaSJlysjL8snxnMrSFH9VOLrjXaU82Kw=";
- };
- };
-}
diff --git a/common/style/wallpaper.jpg b/common/style/wallpaper.jpg
deleted file mode 100644
index 4d55dec..0000000
Binary files a/common/style/wallpaper.jpg and /dev/null differ
diff --git a/common/virtualization/default.nix b/common/virtualization/default.nix
deleted file mode 100644
index d6e49ee..0000000
--- a/common/virtualization/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- config,
- pkgs,
- user,
- lib,
- ...
-}:
-{
- imports = [
- ./libvirt.nix
- ./podman.nix
- ./kubernetes.nix
- ];
-
- libvirt.enable = lib.mkDefault true;
- podman.enable = lib.mkDefault true;
- kubernetes.enable = lib.mkDefault true;
-}
diff --git a/common/virtualization/kubernetes.nix b/common/virtualization/kubernetes.nix
deleted file mode 100644
index e0025f7..0000000
--- a/common/virtualization/kubernetes.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-{
- options = {
- kubernetes.enable = lib.mkEnableOption "Enables Kubernetes and tooling";
- };
- config = lib.mkIf config.kubernetes.enable {
- environment.systemPackages = with pkgs; [
- argocd # Declarative, GitOps continuous delivery tool for Kubernetes.
- k3d # Lightweight utility to run Kubernetes clusters using Docker.
- k9s # Kubernetes CLI to visually navigate and manage resources in clusters.
- kind # Kubernetes IN Docker: Tool for running local Kubernetes clusters using Docker container nodes.
- kubectl # Kubernetes command-line tool for interacting with clusters.
- kubectx # Switch between Kubernetes contexts and namespaces with ease.
- kubernetes-helm # Package manager for Kubernetes applications, simplifying deployment and management.
- minikube # Local Kubernetes cluster for easy testing and development.
- stern # Multi-container log tailing and streaming for Kubernetes.
- ];
- };
-}
diff --git a/common/virtualization/libvirt.nix b/common/virtualization/libvirt.nix
deleted file mode 100644
index f4f22cf..0000000
--- a/common/virtualization/libvirt.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- config,
- pkgs,
- user,
- lib,
- ...
-}:
-{
- options = {
- libvirt.enable = lib.mkEnableOption "Enables Libvirt";
- };
- config = lib.mkIf config.libvirt.enable {
- networking.firewall.trustedInterfaces = [ "virbr0" ];
- boot.kernelModules = [ "kvm-amd" ];
- environment.systemPackages = with pkgs; [
- virt-manager
- virtiofsd
- # vagrant
- ];
-
- users.users.${user} = {
- extraGroups = [
- "libvirtd"
- "qemu-libvirtd"
- "kvm"
- ];
- };
- # Allow VM to run as non-root without ulimit
- security.pam.loginLimits = [
- {
- domain = "${user}";
- type = "soft";
- item = "memlock";
- value = "20000000";
- }
- {
- domain = "${user}";
- type = "hard";
- item = "memlock";
- value = "20000000";
- }
- ];
-
- virtualisation.libvirtd = {
- enable = true;
- # qemu.ovmf.enable = true;
- # qemu.runAsRoot = false;
- onBoot = "ignore";
- onShutdown = "shutdown";
- qemu = {
- package = pkgs.qemu_kvm;
- runAsRoot = true;
- swtpm.enable = true;
- ovmf = {
- enable = true;
- packages = [
- (pkgs.OVMF.override {
- secureBoot = true;
- tpmSupport = true;
- }).fd
- ];
- };
- };
- };
-
- users.extraGroups.libvirtd.members = [ "${user}" ];
-
- # virtualisation.virtualbox.host.enable = true;
- # users.extraGroups.vboxusers.members = [ "${user}" ];
- # virtualisation.virtualbox.host.enableExtensionPack = true;
- # virtualisation.virtualbox.guest.enable = true;
- # virtualisation.virtualbox.guest.dragAndDrop = true;
- };
-}
diff --git a/common/virtualization/libvirt.sync-conflict-20250112-184217-N2TYFZ4.nix b/common/virtualization/libvirt.sync-conflict-20250112-184217-N2TYFZ4.nix
deleted file mode 100644
index 9fd9c81..0000000
--- a/common/virtualization/libvirt.sync-conflict-20250112-184217-N2TYFZ4.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- config,
- pkgs,
- user,
- lib,
- ...
-}:
-{
- options = {
- libvirt.enable = lib.mkEnableOption "Enables Libvirt";
- };
- config = lib.mkIf config.libvirt.enable {
- boot.kernelModules = [ "kvm-amd" ];
- environment.systemPackages = with pkgs; [
- virt-manager
- # vagrant
- ];
- virtualisation.libvirtd.enable = true;
- users.extraGroups.libvirtd.members = [ "${user}" ];
-
- virtualisation.virtualbox.host.enable = true;
- users.extraGroups.vboxusers.members = [ "user-with-access-to-virtualbox" ];
- virtualisation.virtualbox.host.enableExtensionPack = true;
- virtualisation.virtualbox.guest.enable = true;
- virtualisation.virtualbox.guest.dragAndDrop = true;
- };
-}
diff --git a/common/virtualization/podman.nix b/common/virtualization/podman.nix
deleted file mode 100644
index a09f7f3..0000000
--- a/common/virtualization/podman.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- pkgs,
- lib,
- config,
- ...
-}: {
- options = {
- podman.enable = lib.mkEnableOption "Enables podman and installs container tools";
- };
-
- config = lib.mkIf config.podman.enable {
- virtualisation = {
- podman = {
- enable = true;
-
- # Create a `docker` alias for podman, to use it as a drop-in replacement
- dockerCompat = true;
-
- # Required for containers under podman-compose to be able to talk to each other.
- defaultNetwork.settings.dns_enabled = true;
- };
- };
-
- environment.systemPackages = with pkgs; [
- buildah # Tool for building OCI (Open Container Initiative) and Docker container images.
- distrobox # Lightweight utility for running Linux distributions in containers.
- dive # A tool for exploring a Docker image, allowing inspection of layer contents.
- grype # A vulnerability scanner for container images and filesystems.
- hadolint # Dockerfile linter to analyze and enforce best practices in containerization.
- podman-compose # Podman plugin for managing multi-container applications.
- podman-tui # Text-based user interface (TUI) for Podman, facilitating container management.
- syft # Open-source tool for scanning and analyzing container images for software composition and vulnerabilities.
- ];
- };
-}
diff --git a/devenv.lock b/devenv.lock
new file mode 100644
index 0000000..43b0105
--- /dev/null
+++ b/devenv.lock
@@ -0,0 +1,103 @@
+{
+ "nodes": {
+ "devenv": {
+ "locked": {
+ "dir": "src/modules",
+ "lastModified": 1750529628,
+ "owner": "cachix",
+ "repo": "devenv",
+ "rev": "cee0466541d357356b8c1ee0a61f3e0b94c7a54e",
+ "type": "github"
+ },
+ "original": {
+ "dir": "src/modules",
+ "owner": "cachix",
+ "repo": "devenv",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1747046372,
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "git-hooks": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "gitignore": "gitignore",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1749636823,
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "rev": "623c56286de5a3193aa38891a6991b28f9bab056",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "repo": "git-hooks.nix",
+ "type": "github"
+ }
+ },
+ "gitignore": {
+ "inputs": {
+ "nixpkgs": [
+ "git-hooks",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1709087332,
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "gitignore.nix",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1750441195,
+ "owner": "cachix",
+ "repo": "devenv-nixpkgs",
+ "rev": "0ceffe312871b443929ff3006960d29b120dc627",
+ "type": "github"
+ },
+ "original": {
+ "owner": "cachix",
+ "ref": "rolling",
+ "repo": "devenv-nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "devenv": "devenv",
+ "git-hooks": "git-hooks",
+ "nixpkgs": "nixpkgs",
+ "pre-commit-hooks": [
+ "git-hooks"
+ ]
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/devenv.nix b/devenv.nix
new file mode 100644
index 0000000..bcd2d5d
--- /dev/null
+++ b/devenv.nix
@@ -0,0 +1,96 @@
+{
+ pkgs,
+ lib,
+ config,
+ inputs,
+ ...
+}: {
+ # https://devenv.sh/basics/
+ env.GREET = "devenv";
+ env = {
+ };
+
+ # https://devenv.sh/packages/
+ packages = with pkgs; [
+ kubectl
+ talosctl
+ kubeseal
+ kubeconform
+ yamllint
+ shellcheck
+ gitleaks
+ yamlfmt
+ ];
+
+ # https://devenv.sh/languages/
+ # languages.rust.enable = true;
+
+ # https://devenv.sh/processes/
+ # processes.cargo-watch.exec = "cargo-watch";
+
+ # https://devenv.sh/services/
+ # services.postgres.enable = true;
+
+ # https://devenv.sh/scripts/
+ scripts.hello.exec = ''
+ echo hello from $GREET
+ '';
+
+ enterShell = ''
+ hello
+ git --version
+ '';
+
+ # https://devenv.sh/tasks/
+ # tasks = {
+ # "myproj:setup".exec = "mytool build";
+ # "devenv:enterShell".after = [ "myproj:setup" ];
+ # };
+
+ # https://devenv.sh/tests/
+ enterTest = ''
+ echo "Running tests"
+ git --version | grep --color=auto "${pkgs.git.version}"
+ '';
+
+ # https://devenv.sh/pre-commit-hooks/
+ # git-hooks.hooks = {
+ # check-yaml.enable = true;
+ # end-of-file-fixer.enable = true;
+ # trim-trailing-whitespace.enable = true;
+ # yamlfmt = {
+ # enable = true;
+ # entry = "yamlfmt";
+ # args = ["-in-place"];
+ # files = "\\.ya?ml$";
+ # language = "system";
+ # };
+ # yamllint.enable = true;
+ # shellcheck.enable = true;
+ #
+ # kubeconform = {
+ # enable = true;
+ # entry = "kubeconform";
+ # args = [
+ # "-strict"
+ # "-summary"
+ # "-ignore-missing-schemas"
+ # "-schema-location"
+ # "https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/{{.ResourceKind}}-{{.ResourceAPIVersion}}.json"
+ # "-schema-location"
+ # "default"
+ # ];
+ # files = "\\.ya?ml$";
+ # };
+ #
+ # gitleaks = {
+ # enable = true;
+ # entry = "gitleaks detect --no-git -v --redact";
+ # language = "system";
+ # pass_filenames = false;
+ # };
+ # };
+ # pre-commit.hooks.shellcheck.enable = true;
+
+ # See full reference at https://devenv.sh/reference/options/
+}
diff --git a/flake.lock b/flake.lock
deleted file mode 100644
index 415eebb..0000000
--- a/flake.lock
+++ /dev/null
@@ -1,2615 +0,0 @@
-{
- "nodes": {
- "ags": {
- "inputs": {
- "astal": "astal",
- "gnim": "gnim",
- "nixpkgs": "nixpkgs"
- },
- "locked": {
- "lastModified": 1751452620,
- "narHash": "sha256-o06N/D80Epywtlg04PiP8gFl/fdVDocIZeET15v1pl0=",
- "owner": "Aylur",
- "repo": "ags",
- "rev": "7b06a791969a83c7fe0fda4333fb82db186e1c57",
- "type": "github"
- },
- "original": {
- "owner": "Aylur",
- "repo": "ags",
- "type": "github"
- }
- },
- "aquamarine": {
- "inputs": {
- "hyprutils": [
- "hyprland",
- "hyprutils"
- ],
- "hyprwayland-scanner": [
- "hyprland",
- "hyprwayland-scanner"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750974272,
- "narHash": "sha256-VaeQzSzekMvP+/OhwNZP4kzs4paWk5+20N0MFLTn+cs=",
- "owner": "hyprwm",
- "repo": "aquamarine",
- "rev": "dd921421391e75793d0cc674dc15eca16b46a089",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "aquamarine",
- "type": "github"
- }
- },
- "aquamarine_2": {
- "inputs": {
- "hyprutils": [
- "hyprspace",
- "hyprland",
- "hyprutils"
- ],
- "hyprwayland-scanner": [
- "hyprspace",
- "hyprland",
- "hyprwayland-scanner"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1745357003,
- "narHash": "sha256-jYwzQkv1r7HN/4qrAuKp+NR4YYNp2xDrOX5O9YVqkWo=",
- "owner": "hyprwm",
- "repo": "aquamarine",
- "rev": "a19cf76ee1a15c1c12083fa372747ce46387289f",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "aquamarine",
- "type": "github"
- }
- },
- "astal": {
- "inputs": {
- "nixpkgs": [
- "ags",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751126708,
- "narHash": "sha256-AodIKw7TmI7rHVcOfEsO82stupMYIMVQeLAUQfVxnkU=",
- "owner": "aylur",
- "repo": "astal",
- "rev": "ac90f09385a2295da9fdc108aaba4a317aaeacc7",
- "type": "github"
- },
- "original": {
- "owner": "aylur",
- "repo": "astal",
- "type": "github"
- }
- },
- "base16": {
- "inputs": {
- "fromYaml": "fromYaml"
- },
- "locked": {
- "lastModified": 1746562888,
- "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
- "owner": "SenchoPens",
- "repo": "base16.nix",
- "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
- "type": "github"
- },
- "original": {
- "owner": "SenchoPens",
- "repo": "base16.nix",
- "type": "github"
- }
- },
- "base16-fish": {
- "flake": false,
- "locked": {
- "lastModified": 1622559957,
- "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
- "owner": "tomyun",
- "repo": "base16-fish",
- "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
- "type": "github"
- },
- "original": {
- "owner": "tomyun",
- "repo": "base16-fish",
- "type": "github"
- }
- },
- "base16-helix": {
- "flake": false,
- "locked": {
- "lastModified": 1748408240,
- "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
- "owner": "tinted-theming",
- "repo": "base16-helix",
- "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "base16-helix",
- "type": "github"
- }
- },
- "base16-vim": {
- "flake": false,
- "locked": {
- "lastModified": 1732806396,
- "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
- "owner": "tinted-theming",
- "repo": "base16-vim",
- "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "base16-vim",
- "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
- "type": "github"
- }
- },
- "cachix": {
- "inputs": {
- "devenv": [
- "devenv"
- ],
- "flake-compat": [
- "devenv"
- ],
- "git-hooks": [
- "devenv",
- "git-hooks"
- ],
- "nixpkgs": [
- "devenv",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1748883665,
- "narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=",
- "owner": "cachix",
- "repo": "cachix",
- "rev": "f707778d902af4d62d8dd92c269f8e70de09acbe",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "ref": "latest",
- "repo": "cachix",
- "type": "github"
- }
- },
- "colmena": {
- "inputs": {
- "flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
- "nix-github-actions": "nix-github-actions",
- "nixpkgs": "nixpkgs_2",
- "stable": "stable"
- },
- "locked": {
- "lastModified": 1751144689,
- "narHash": "sha256-cgIntaqhcm62V1KU6GmrAGpHpahT4UExEWW2ryS02ZU=",
- "owner": "zhaofengli",
- "repo": "colmena",
- "rev": "3ceec72cfb396a8a8de5fe96a9d75a9ce88cc18e",
- "type": "github"
- },
- "original": {
- "owner": "zhaofengli",
- "repo": "colmena",
- "type": "github"
- }
- },
- "devenv": {
- "inputs": {
- "cachix": "cachix",
- "flake-compat": "flake-compat_2",
- "git-hooks": "git-hooks",
- "nix": "nix",
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751418294,
- "narHash": "sha256-9uNvQpop5vZiDD/zIacpXKLAiFV1TfkDGks39tcRKgg=",
- "owner": "cachix",
- "repo": "devenv",
- "rev": "ea17286a36947f6702ce21a18677006dc1e01ffd",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "ref": "main",
- "repo": "devenv",
- "type": "github"
- }
- },
- "firefox-gnome-theme": {
- "flake": false,
- "locked": {
- "lastModified": 1748383148,
- "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
- "owner": "rafaelmardojai",
- "repo": "firefox-gnome-theme",
- "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
- "type": "github"
- },
- "original": {
- "owner": "rafaelmardojai",
- "repo": "firefox-gnome-theme",
- "type": "github"
- }
- },
- "flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1650374568,
- "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "b4a34015c698c7793d592d66adbab377907a2be8",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_2": {
- "flake": false,
- "locked": {
- "lastModified": 1747046372,
- "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_3": {
- "flake": false,
- "locked": {
- "lastModified": 1696426674,
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_4": {
- "flake": false,
- "locked": {
- "lastModified": 1696426674,
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_5": {
- "locked": {
- "lastModified": 1733328505,
- "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
- "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
- "revCount": 69,
- "type": "tarball",
- "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69"
- },
- "original": {
- "type": "tarball",
- "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
- }
- },
- "flake-compat_6": {
- "flake": false,
- "locked": {
- "lastModified": 1696426674,
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_7": {
- "locked": {
- "lastModified": 1747046372,
- "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-compat_8": {
- "flake": false,
- "locked": {
- "lastModified": 1747046372,
- "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
- "flake-parts": {
- "inputs": {
- "nixpkgs-lib": [
- "devenv",
- "nix",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733312601,
- "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_2": {
- "inputs": {
- "nixpkgs-lib": "nixpkgs-lib"
- },
- "locked": {
- "lastModified": 1749398372,
- "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_3": {
- "inputs": {
- "nixpkgs-lib": [
- "nixvim",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1749398372,
- "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_4": {
- "inputs": {
- "nixpkgs-lib": "nixpkgs-lib_2"
- },
- "locked": {
- "lastModified": 1749398372,
- "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_5": {
- "inputs": {
- "nixpkgs-lib": [
- "stylix",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1743550720,
- "narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "c621e8422220273271f52058f618c94e405bb0f5",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-utils": {
- "locked": {
- "lastModified": 1659877975,
- "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "flake-utils_2": {
- "inputs": {
- "systems": "systems_4"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "flake-utils_3": {
- "inputs": {
- "systems": "systems_6"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "flake-utils_4": {
- "inputs": {
- "systems": "systems_9"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
- "fromYaml": {
- "flake": false,
- "locked": {
- "lastModified": 1731966426,
- "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
- "owner": "SenchoPens",
- "repo": "fromYaml",
- "rev": "106af9e2f715e2d828df706c386a685698f3223b",
- "type": "github"
- },
- "original": {
- "owner": "SenchoPens",
- "repo": "fromYaml",
- "type": "github"
- }
- },
- "git-hooks": {
- "inputs": {
- "flake-compat": [
- "devenv",
- "flake-compat"
- ],
- "gitignore": "gitignore",
- "nixpkgs": [
- "devenv",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1749636823,
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "623c56286de5a3193aa38891a6991b28f9bab056",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "git-hooks_2": {
- "inputs": {
- "flake-compat": [
- "stylix",
- "flake-compat"
- ],
- "gitignore": "gitignore_5",
- "nixpkgs": [
- "stylix",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1747372754,
- "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "gitignore": {
- "inputs": {
- "nixpkgs": [
- "devenv",
- "git-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "gitignore_2": {
- "inputs": {
- "nixpkgs": [
- "hyprland",
- "pre-commit-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "gitignore_3": {
- "inputs": {
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "pre-commit-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "gitignore_4": {
- "inputs": {
- "nixpkgs": [
- "pre-commit-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "gitignore_5": {
- "inputs": {
- "nixpkgs": [
- "stylix",
- "git-hooks",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1709087332,
- "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "gitignore.nix",
- "type": "github"
- }
- },
- "gnim": {
- "flake": false,
- "locked": {
- "lastModified": 1751120710,
- "narHash": "sha256-sT1ILM8m1QG8CeMmqLHhW/8T/MzUq3JL9jO3V7FMa4w=",
- "owner": "aylur",
- "repo": "gnim",
- "rev": "5d2b734be452e2819f3a7313dbb34fa43c23e5d9",
- "type": "github"
- },
- "original": {
- "owner": "aylur",
- "repo": "gnim",
- "type": "github"
- }
- },
- "gnome-shell": {
- "flake": false,
- "locked": {
- "lastModified": 1748186689,
- "narHash": "sha256-UaD7Y9f8iuLBMGHXeJlRu6U1Ggw5B9JnkFs3enZlap0=",
- "owner": "GNOME",
- "repo": "gnome-shell",
- "rev": "8c88f917db0f1f0d80fa55206c863d3746fa18d0",
- "type": "github"
- },
- "original": {
- "owner": "GNOME",
- "ref": "48.2",
- "repo": "gnome-shell",
- "type": "github"
- }
- },
- "gomod2nix": {
- "inputs": {
- "flake-utils": [
- "superfile",
- "flake-utils"
- ],
- "nixpkgs": [
- "superfile",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1745875161,
- "narHash": "sha256-0YkWCS13jpoo3+sX/3kcgdxBNt1VZTmvF+FhZb4rFKI=",
- "owner": "nix-community",
- "repo": "gomod2nix",
- "rev": "2cbd7fdd6eeab65c494cc426e18f4e4d2a5e35c0",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "gomod2nix",
- "type": "github"
- }
- },
- "home-manager": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751429452,
- "narHash": "sha256-4s5vRtaqdNhVBnbOWOzBNKrRa0ShQTLoEPjJp3joeNI=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "df12269039dcf752600b1bcc176bacf2786ec384",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "ref": "master",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "home-manager_2": {
- "inputs": {
- "nixpkgs": [
- "stylix",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1748737919,
- "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "5675a9686851d9626560052a032c4e14e533c1fa",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "hyprcursor": {
- "inputs": {
- "hyprlang": [
- "hyprland",
- "hyprlang"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749155331,
- "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=",
- "owner": "hyprwm",
- "repo": "hyprcursor",
- "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprcursor",
- "type": "github"
- }
- },
- "hyprcursor_2": {
- "inputs": {
- "hyprlang": [
- "hyprspace",
- "hyprland",
- "hyprlang"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1745948457,
- "narHash": "sha256-lzTV10FJTCGNtMdgW5YAhCAqezeAzKOd/97HbQK8GTU=",
- "owner": "hyprwm",
- "repo": "hyprcursor",
- "rev": "ac903e80b33ba6a88df83d02232483d99f327573",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprcursor",
- "type": "github"
- }
- },
- "hyprgraphics": {
- "inputs": {
- "hyprutils": [
- "hyprland",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750621377,
- "narHash": "sha256-8u6b5oAdX0rCuoR8wFenajBRmI+mzbpNig6hSCuWUzE=",
- "owner": "hyprwm",
- "repo": "hyprgraphics",
- "rev": "b3d628d01693fb9bb0a6690cd4e7b80abda04310",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprgraphics",
- "type": "github"
- }
- },
- "hyprgraphics_2": {
- "inputs": {
- "hyprutils": [
- "hyprspace",
- "hyprland",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1745015490,
- "narHash": "sha256-apEJ9zoSzmslhJ2vOKFcXTMZLUFYzh1ghfB6Rbw3Low=",
- "owner": "hyprwm",
- "repo": "hyprgraphics",
- "rev": "60754910946b4e2dc1377b967b7156cb989c5873",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprgraphics",
- "type": "github"
- }
- },
- "hyprland": {
- "inputs": {
- "aquamarine": "aquamarine",
- "hyprcursor": "hyprcursor",
- "hyprgraphics": "hyprgraphics",
- "hyprland-protocols": "hyprland-protocols",
- "hyprland-qtutils": "hyprland-qtutils",
- "hyprlang": "hyprlang",
- "hyprutils": "hyprutils",
- "hyprwayland-scanner": "hyprwayland-scanner",
- "nixpkgs": "nixpkgs_4",
- "pre-commit-hooks": "pre-commit-hooks",
- "systems": "systems",
- "xdph": "xdph"
- },
- "locked": {
- "lastModified": 1751404714,
- "narHash": "sha256-U2EbKyeRJmJp54AxAt426vVdznrMkCgUiGuv0OSnPJs=",
- "ref": "refs/heads/main",
- "rev": "90c8609cbb5ae7b488d7b14b4dfb3ec9585ed2b7",
- "revCount": 6239,
- "submodules": true,
- "type": "git",
- "url": "https://github.com/hyprwm/Hyprland"
- },
- "original": {
- "submodules": true,
- "type": "git",
- "url": "https://github.com/hyprwm/Hyprland"
- }
- },
- "hyprland-protocols": {
- "inputs": {
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749046714,
- "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
- "owner": "hyprwm",
- "repo": "hyprland-protocols",
- "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-protocols",
- "type": "github"
- }
- },
- "hyprland-protocols_2": {
- "inputs": {
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1743714874,
- "narHash": "sha256-yt8F7NhMFCFHUHy/lNjH/pjZyIDFNk52Q4tivQ31WFo=",
- "owner": "hyprwm",
- "repo": "hyprland-protocols",
- "rev": "3a5c2bda1c1a4e55cc1330c782547695a93f05b2",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-protocols",
- "type": "github"
- }
- },
- "hyprland-qt-support": {
- "inputs": {
- "hyprlang": [
- "hyprland",
- "hyprland-qtutils",
- "hyprlang"
- ],
- "nixpkgs": [
- "hyprland",
- "hyprland-qtutils",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "hyprland-qtutils",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749154592,
- "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "type": "github"
- }
- },
- "hyprland-qt-support_2": {
- "inputs": {
- "hyprlang": "hyprlang_2",
- "nixpkgs": [
- "hyprpolkitagent",
- "nixpkgs"
- ],
- "systems": [
- "hyprpolkitagent",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749154592,
- "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "type": "github"
- }
- },
- "hyprland-qt-support_3": {
- "inputs": {
- "hyprlang": [
- "hyprspace",
- "hyprland",
- "hyprland-qtutils",
- "hyprlang"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "hyprland-qtutils",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "hyprland-qtutils",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1737634706,
- "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=",
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "rev": "8810df502cdee755993cb803eba7b23f189db795",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-qt-support",
- "type": "github"
- }
- },
- "hyprland-qtutils": {
- "inputs": {
- "hyprland-qt-support": "hyprland-qt-support",
- "hyprlang": [
- "hyprland",
- "hyprlang"
- ],
- "hyprutils": [
- "hyprland",
- "hyprland-qtutils",
- "hyprlang",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750371812,
- "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=",
- "owner": "hyprwm",
- "repo": "hyprland-qtutils",
- "rev": "b13c7481e37856f322177010bdf75fccacd1adc8",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-qtutils",
- "type": "github"
- }
- },
- "hyprland-qtutils_2": {
- "inputs": {
- "hyprland-qt-support": "hyprland-qt-support_3",
- "hyprlang": [
- "hyprspace",
- "hyprland",
- "hyprlang"
- ],
- "hyprutils": [
- "hyprspace",
- "hyprland",
- "hyprland-qtutils",
- "hyprlang",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1745951494,
- "narHash": "sha256-2dModE32doiyQMmd6EDAQeZnz+5LOs6KXyE0qX76WIg=",
- "owner": "hyprwm",
- "repo": "hyprland-qtutils",
- "rev": "4be1d324faf8d6e82c2be9f8510d299984dfdd2e",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprland-qtutils",
- "type": "github"
- }
- },
- "hyprland_2": {
- "inputs": {
- "aquamarine": "aquamarine_2",
- "hyprcursor": "hyprcursor_2",
- "hyprgraphics": "hyprgraphics_2",
- "hyprland-protocols": "hyprland-protocols_2",
- "hyprland-qtutils": "hyprland-qtutils_2",
- "hyprlang": "hyprlang_3",
- "hyprutils": "hyprutils_4",
- "hyprwayland-scanner": "hyprwayland-scanner_2",
- "nixpkgs": "nixpkgs_6",
- "pre-commit-hooks": "pre-commit-hooks_2",
- "systems": [
- "hyprspace",
- "systems"
- ],
- "xdph": "xdph_2"
- },
- "locked": {
- "lastModified": 1747431568,
- "narHash": "sha256-pYwBbtvjHgJzvrHkZHsaqgMcCpOmQ4/9kymUgAnAjgk=",
- "owner": "hyprwm",
- "repo": "Hyprland",
- "rev": "2946009006bd8a988ff8a51b83528f6e1d8f0e98",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "Hyprland",
- "type": "github"
- }
- },
- "hyprlang": {
- "inputs": {
- "hyprutils": [
- "hyprland",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750371198,
- "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=",
- "owner": "hyprwm",
- "repo": "hyprlang",
- "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprlang",
- "type": "github"
- }
- },
- "hyprlang_2": {
- "inputs": {
- "hyprutils": "hyprutils_2",
- "nixpkgs": [
- "hyprpolkitagent",
- "hyprland-qt-support",
- "nixpkgs"
- ],
- "systems": [
- "hyprpolkitagent",
- "hyprland-qt-support",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749145882,
- "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=",
- "owner": "hyprwm",
- "repo": "hyprlang",
- "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprlang",
- "type": "github"
- }
- },
- "hyprlang_3": {
- "inputs": {
- "hyprutils": [
- "hyprspace",
- "hyprland",
- "hyprutils"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1746655412,
- "narHash": "sha256-kVQ0bHVtX6baYxRWWIh4u3LNJZb9Zcm2xBeDPOGz5BY=",
- "owner": "hyprwm",
- "repo": "hyprlang",
- "rev": "557241780c179cf7ef224df392f8e67dab6cef83",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprlang",
- "type": "github"
- }
- },
- "hyprpolkitagent": {
- "inputs": {
- "hyprland-qt-support": "hyprland-qt-support_2",
- "hyprutils": "hyprutils_3",
- "nixpkgs": "nixpkgs_5",
- "systems": "systems_2"
- },
- "locked": {
- "lastModified": 1750372026,
- "narHash": "sha256-TNK4bEM5vnbN0lj1zTjWYMrUFzjXq7ytkEMGaKP7czM=",
- "owner": "hyprwm",
- "repo": "hyprpolkitagent",
- "rev": "5f8de19fd0d723c421fc7892f5d2a2ac76994066",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprpolkitagent",
- "type": "github"
- }
- },
- "hyprspace": {
- "inputs": {
- "hyprland": "hyprland_2",
- "systems": "systems_3"
- },
- "locked": {
- "lastModified": 1751272032,
- "narHash": "sha256-493llKN7yyLkKlz8uYVAyvXH261IpDzuVA+TnewFIAg=",
- "owner": "KZDKM",
- "repo": "Hyprspace",
- "rev": "847a770436e1ecebdbe5ed006a93db7666937ff2",
- "type": "github"
- },
- "original": {
- "owner": "KZDKM",
- "repo": "Hyprspace",
- "type": "github"
- }
- },
- "hyprutils": {
- "inputs": {
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1751061882,
- "narHash": "sha256-g9n8Vrbx+2JYM170P9BbvGHN39Wlkr4U+V2WLHQsXL8=",
- "owner": "hyprwm",
- "repo": "hyprutils",
- "rev": "4737241eaf8a1e51671a2a088518071f9a265cf4",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprutils",
- "type": "github"
- }
- },
- "hyprutils_2": {
- "inputs": {
- "nixpkgs": [
- "hyprpolkitagent",
- "hyprland-qt-support",
- "hyprlang",
- "nixpkgs"
- ],
- "systems": [
- "hyprpolkitagent",
- "hyprland-qt-support",
- "hyprlang",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749135356,
- "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=",
- "owner": "hyprwm",
- "repo": "hyprutils",
- "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprutils",
- "type": "github"
- }
- },
- "hyprutils_3": {
- "inputs": {
- "nixpkgs": [
- "hyprpolkitagent",
- "nixpkgs"
- ],
- "systems": [
- "hyprpolkitagent",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1749135356,
- "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=",
- "owner": "hyprwm",
- "repo": "hyprutils",
- "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprutils",
- "type": "github"
- }
- },
- "hyprutils_4": {
- "inputs": {
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1746635225,
- "narHash": "sha256-W9G9bb0zRYDBRseHbVez0J8qVpD5QbizX67H/vsudhM=",
- "owner": "hyprwm",
- "repo": "hyprutils",
- "rev": "674ea57373f08b7609ce93baff131117a0dfe70d",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprutils",
- "type": "github"
- }
- },
- "hyprwayland-scanner": {
- "inputs": {
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750371869,
- "narHash": "sha256-lGk4gLjgZQ/rndUkzmPYcgbHr8gKU5u71vyrjnwfpB4=",
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "rev": "aa38edd6e3e277ae6a97ea83a69261a5c3aab9fd",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "type": "github"
- }
- },
- "hyprwayland-scanner_2": {
- "inputs": {
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1739870480,
- "narHash": "sha256-SiDN5BGxa/1hAsqhgJsS03C3t2QrLgBT8u+ENJ0Qzwc=",
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "rev": "206367a08dc5ac4ba7ad31bdca391d098082e64b",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "hyprwayland-scanner",
- "type": "github"
- }
- },
- "ixx": {
- "inputs": {
- "flake-utils": [
- "nixvim",
- "nuschtosSearch",
- "flake-utils"
- ],
- "nixpkgs": [
- "nixvim",
- "nuschtosSearch",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1748294338,
- "narHash": "sha256-FVO01jdmUNArzBS7NmaktLdGA5qA3lUMJ4B7a05Iynw=",
- "owner": "NuschtOS",
- "repo": "ixx",
- "rev": "cc5f390f7caf265461d4aab37e98d2292ebbdb85",
- "type": "github"
- },
- "original": {
- "owner": "NuschtOS",
- "ref": "v0.0.8",
- "repo": "ixx",
- "type": "github"
- }
- },
- "mnw": {
- "locked": {
- "lastModified": 1748710831,
- "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
- "owner": "Gerg-L",
- "repo": "mnw",
- "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
- "type": "github"
- },
- "original": {
- "owner": "Gerg-L",
- "repo": "mnw",
- "type": "github"
- }
- },
- "nil": {
- "inputs": {
- "nixpkgs": [
- "nvf",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1750047244,
- "narHash": "sha256-vluLARrk4485npdyHOj8XKr0yk6H22pNf+KVRNL+i/Y=",
- "owner": "oxalica",
- "repo": "nil",
- "rev": "870a4b1b5f12004832206703ac15aa85c42c247b",
- "type": "github"
- },
- "original": {
- "owner": "oxalica",
- "repo": "nil",
- "type": "github"
- }
- },
- "nix": {
- "inputs": {
- "flake-compat": [
- "devenv",
- "flake-compat"
- ],
- "flake-parts": "flake-parts",
- "git-hooks-nix": [
- "devenv",
- "git-hooks"
- ],
- "nixpkgs": "nixpkgs_3",
- "nixpkgs-23-11": [
- "devenv"
- ],
- "nixpkgs-regression": [
- "devenv"
- ]
- },
- "locked": {
- "lastModified": 1750955511,
- "narHash": "sha256-IDB/oh/P63ZTdhgSkey2LZHzeNhCdoKk+4j7AaPe1SE=",
- "owner": "cachix",
- "repo": "nix",
- "rev": "afa41b08df4f67b8d77a8034b037ac28c71c77df",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "ref": "devenv-2.30",
- "repo": "nix",
- "type": "github"
- }
- },
- "nix-github-actions": {
- "inputs": {
- "nixpkgs": [
- "colmena",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1729742964,
- "narHash": "sha256-B4mzTcQ0FZHdpeWcpDYPERtyjJd/NIuaQ9+BV1h+MpA=",
- "owner": "nix-community",
- "repo": "nix-github-actions",
- "rev": "e04df33f62cdcf93d73e9a04142464753a16db67",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "nix-github-actions",
- "type": "github"
- }
- },
- "nix-index-database": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751170039,
- "narHash": "sha256-3EKpUmyGmHYA/RuhZjINTZPU+OFWko0eDwazUOW64nw=",
- "owner": "Mic92",
- "repo": "nix-index-database",
- "rev": "9c932ae632d6b5150515e5749b198c175d8565db",
- "type": "github"
- },
- "original": {
- "owner": "Mic92",
- "repo": "nix-index-database",
- "type": "github"
- }
- },
- "nix-ld": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1751299546,
- "narHash": "sha256-9UQQstDOhUD4qjFdOtO3lp0FY7lafPsUYUiC4q6wszM=",
- "owner": "Mic92",
- "repo": "nix-ld",
- "rev": "9b03141cf43989ce602e3d3cc50a15ab63e11ebd",
- "type": "github"
- },
- "original": {
- "owner": "Mic92",
- "repo": "nix-ld",
- "type": "github"
- }
- },
- "nixcord": {
- "inputs": {
- "flake-compat": "flake-compat_5",
- "flake-parts": "flake-parts_2",
- "nixpkgs": "nixpkgs_7"
- },
- "locked": {
- "lastModified": 1751444861,
- "narHash": "sha256-zEQOZt97TVDUxVX/s6JY+Yvjm7ri8uejXQ0zOrdaEy0=",
- "owner": "kaylorben",
- "repo": "nixcord",
- "rev": "da2507d7613534513024ed07282f75ffef1cb8f0",
- "type": "github"
- },
- "original": {
- "owner": "kaylorben",
- "repo": "nixcord",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1751011381,
- "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs-24_05": {
- "locked": {
- "lastModified": 1735563628,
- "narHash": "sha256-OnSAY7XDSx7CtDoqNh8jwVwh4xNL/2HaJxGjryLWzX8=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "b134951a4c9f3c995fd7be05f3243f8ecd65d798",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-24.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs-lib": {
- "locked": {
- "lastModified": 1748740939,
- "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "rev": "656a64127e9d791a334452c6b6606d17539476e2",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "type": "github"
- }
- },
- "nixpkgs-lib_2": {
- "locked": {
- "lastModified": 1748740939,
- "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=",
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "rev": "656a64127e9d791a334452c6b6606d17539476e2",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "type": "github"
- }
- },
- "nixpkgs-unstable": {
- "locked": {
- "lastModified": 1751271578,
- "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_10": {
- "locked": {
- "lastModified": 1744868846,
- "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_11": {
- "locked": {
- "lastModified": 1747744144,
- "narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_12": {
- "locked": {
- "lastModified": 1751271578,
- "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_2": {
- "locked": {
- "lastModified": 1750134718,
- "narHash": "sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "9e83b64f727c88a7711a2c463a7b16eedb69a84c",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_3": {
- "locked": {
- "lastModified": 1747179050,
- "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1751011381,
- "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_5": {
- "locked": {
- "lastModified": 1748929857,
- "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_6": {
- "locked": {
- "lastModified": 1746461020,
- "narHash": "sha256-7+pG1I9jvxNlmln4YgnlW4o+w0TZX24k688mibiFDUE=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "3730d8a308f94996a9ba7c7138ede69c1b9ac4ae",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_7": {
- "locked": {
- "lastModified": 1749494155,
- "narHash": "sha256-FG4DEYBpROupu758beabUk9lhrblSf5hnv84v1TLqMc=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "88331c17ba434359491e8d5889cce872464052c2",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-25.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_8": {
- "locked": {
- "lastModified": 1751271578,
- "narHash": "sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU+tt4YY=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "3016b4b15d13f3089db8a41ef937b13a9e33a8df",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_9": {
- "locked": {
- "lastModified": 1750811787,
- "narHash": "sha256-rD/978c35JXz6JLAzciTIOCMenPumF6zrQOj4rVZeHE=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "992f916556fcfaa94451ebc7fc6e396134bbf5b1",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixvim": {
- "inputs": {
- "flake-parts": "flake-parts_3",
- "nixpkgs": "nixpkgs_9",
- "nuschtosSearch": "nuschtosSearch",
- "systems": "systems_5"
- },
- "locked": {
- "lastModified": 1751144320,
- "narHash": "sha256-KJsKiGfkfXFB23V26NQ1p+UPsexI6NKtivnrwSlWWdQ=",
- "owner": "nix-community",
- "repo": "nixvim",
- "rev": "ceb52aece5d571b37096945c2815604195a04eb4",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "nixvim",
- "type": "github"
- }
- },
- "nur": {
- "inputs": {
- "flake-parts": [
- "stylix",
- "flake-parts"
- ],
- "nixpkgs": [
- "stylix",
- "nixpkgs"
- ],
- "treefmt-nix": "treefmt-nix"
- },
- "locked": {
- "lastModified": 1748730660,
- "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
- "owner": "nix-community",
- "repo": "NUR",
- "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "NUR",
- "type": "github"
- }
- },
- "nuschtosSearch": {
- "inputs": {
- "flake-utils": "flake-utils_2",
- "ixx": "ixx",
- "nixpkgs": [
- "nixvim",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1749730855,
- "narHash": "sha256-L3x2nSlFkXkM6tQPLJP3oCBMIsRifhIDPMQQdHO5xWo=",
- "owner": "NuschtOS",
- "repo": "search",
- "rev": "8dfe5879dd009ff4742b668d9c699bc4b9761742",
- "type": "github"
- },
- "original": {
- "owner": "NuschtOS",
- "repo": "search",
- "type": "github"
- }
- },
- "nvf": {
- "inputs": {
- "flake-parts": "flake-parts_4",
- "flake-utils": "flake-utils_3",
- "mnw": "mnw",
- "nil": "nil",
- "nixpkgs": [
- "nixpkgs"
- ],
- "systems": "systems_7"
- },
- "locked": {
- "lastModified": 1751186226,
- "narHash": "sha256-Bt7jtmCW72JUPxOIrV73qBTAUOy4qvJXsls2ERDUcGo=",
- "owner": "notashelf",
- "repo": "nvf",
- "rev": "5bad5dd94ce5ea3b40b08d9e6802e69d02198d21",
- "type": "github"
- },
- "original": {
- "owner": "notashelf",
- "repo": "nvf",
- "type": "github"
- }
- },
- "pre-commit-hooks": {
- "inputs": {
- "flake-compat": "flake-compat_3",
- "gitignore": "gitignore_2",
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1750779888,
- "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "pre-commit-hooks_2": {
- "inputs": {
- "flake-compat": "flake-compat_4",
- "gitignore": "gitignore_3",
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1746537231,
- "narHash": "sha256-Wb2xeSyOsCoTCTj7LOoD6cdKLEROyFAArnYoS+noCWo=",
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "rev": "fa466640195d38ec97cf0493d6d6882bc4d14969",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "git-hooks.nix",
- "type": "github"
- }
- },
- "pre-commit-hooks_3": {
- "inputs": {
- "flake-compat": "flake-compat_6",
- "gitignore": "gitignore_4",
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1750779888,
- "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
- "owner": "cachix",
- "repo": "pre-commit-hooks.nix",
- "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
- "type": "github"
- },
- "original": {
- "owner": "cachix",
- "repo": "pre-commit-hooks.nix",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "ags": "ags",
- "colmena": "colmena",
- "devenv": "devenv",
- "home-manager": "home-manager",
- "hyprland": "hyprland",
- "hyprpolkitagent": "hyprpolkitagent",
- "hyprspace": "hyprspace",
- "nix-index-database": "nix-index-database",
- "nix-ld": "nix-ld",
- "nixcord": "nixcord",
- "nixpkgs": "nixpkgs_8",
- "nixpkgs-24_05": "nixpkgs-24_05",
- "nixpkgs-unstable": "nixpkgs-unstable",
- "nixvim": "nixvim",
- "nvf": "nvf",
- "pre-commit-hooks": "pre-commit-hooks_3",
- "secrets": "secrets",
- "sops-nix": "sops-nix",
- "stylix": "stylix",
- "superfile": "superfile",
- "zen-browser": "zen-browser"
- }
- },
- "secrets": {
- "locked": {
- "lastModified": 1743305321,
- "narHash": "sha256-2H42Qu7PRCeFe/asA5sq4SeD5IM0YXbkYnU51AaUChw=",
- "ref": "refs/heads/main",
- "rev": "7faa37e94383c6846f8a1a0192369e74d787eccb",
- "revCount": 4,
- "type": "git",
- "url": "ssh://git@github.com/gwg313/nixos-secrets.git"
- },
- "original": {
- "type": "git",
- "url": "ssh://git@github.com/gwg313/nixos-secrets.git"
- }
- },
- "sops-nix": {
- "inputs": {
- "nixpkgs": "nixpkgs_10"
- },
- "locked": {
- "lastModified": 1750119275,
- "narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
- "owner": "Mic92",
- "repo": "sops-nix",
- "rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
- "type": "github"
- },
- "original": {
- "owner": "Mic92",
- "repo": "sops-nix",
- "type": "github"
- }
- },
- "stable": {
- "locked": {
- "lastModified": 1750133334,
- "narHash": "sha256-urV51uWH7fVnhIvsZIELIYalMYsyr2FCalvlRTzqWRw=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "36ab78dab7da2e4e27911007033713bab534187b",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-25.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "stylix": {
- "inputs": {
- "base16": "base16",
- "base16-fish": "base16-fish",
- "base16-helix": "base16-helix",
- "base16-vim": "base16-vim",
- "firefox-gnome-theme": "firefox-gnome-theme",
- "flake-compat": "flake-compat_7",
- "flake-parts": "flake-parts_5",
- "git-hooks": "git-hooks_2",
- "gnome-shell": "gnome-shell",
- "home-manager": "home-manager_2",
- "nixpkgs": [
- "nixpkgs"
- ],
- "nur": "nur",
- "systems": "systems_8",
- "tinted-foot": "tinted-foot",
- "tinted-kitty": "tinted-kitty",
- "tinted-schemes": "tinted-schemes",
- "tinted-tmux": "tinted-tmux",
- "tinted-zed": "tinted-zed"
- },
- "locked": {
- "lastModified": 1751405764,
- "narHash": "sha256-romzrDMOWMPZioeChZnrugwaUSpROfkWClHhWHuRnRQ=",
- "owner": "danth",
- "repo": "stylix",
- "rev": "5b257989a8337dddc22aa04a70d3665d0384abef",
- "type": "github"
- },
- "original": {
- "owner": "danth",
- "repo": "stylix",
- "type": "github"
- }
- },
- "superfile": {
- "inputs": {
- "flake-compat": "flake-compat_8",
- "flake-utils": "flake-utils_4",
- "gomod2nix": "gomod2nix",
- "nixpkgs": "nixpkgs_11"
- },
- "locked": {
- "lastModified": 1751412022,
- "narHash": "sha256-KJcEmfedn3rBRmrdUuhEBaeKQF1iHF4IPmFTrIv0DuI=",
- "owner": "MHNightCat",
- "repo": "superfile",
- "rev": "ac240dbaf5878901c9f71dfdbbe41ede949be545",
- "type": "github"
- },
- "original": {
- "owner": "MHNightCat",
- "repo": "superfile",
- "type": "github"
- }
- },
- "systems": {
- "locked": {
- "lastModified": 1689347949,
- "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
- "owner": "nix-systems",
- "repo": "default-linux",
- "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default-linux",
- "type": "github"
- }
- },
- "systems_2": {
- "locked": {
- "lastModified": 1689347949,
- "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
- "owner": "nix-systems",
- "repo": "default-linux",
- "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default-linux",
- "type": "github"
- }
- },
- "systems_3": {
- "locked": {
- "lastModified": 1689347949,
- "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
- "owner": "nix-systems",
- "repo": "default-linux",
- "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default-linux",
- "type": "github"
- }
- },
- "systems_4": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_5": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_6": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_7": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_8": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_9": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "tinted-foot": {
- "flake": false,
- "locked": {
- "lastModified": 1726913040,
- "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
- "owner": "tinted-theming",
- "repo": "tinted-foot",
- "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "tinted-foot",
- "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
- "type": "github"
- }
- },
- "tinted-kitty": {
- "flake": false,
- "locked": {
- "lastModified": 1735730497,
- "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
- "owner": "tinted-theming",
- "repo": "tinted-kitty",
- "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "tinted-kitty",
- "type": "github"
- }
- },
- "tinted-schemes": {
- "flake": false,
- "locked": {
- "lastModified": 1748180480,
- "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
- "owner": "tinted-theming",
- "repo": "schemes",
- "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "schemes",
- "type": "github"
- }
- },
- "tinted-tmux": {
- "flake": false,
- "locked": {
- "lastModified": 1748740859,
- "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
- "owner": "tinted-theming",
- "repo": "tinted-tmux",
- "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "tinted-tmux",
- "type": "github"
- }
- },
- "tinted-zed": {
- "flake": false,
- "locked": {
- "lastModified": 1725758778,
- "narHash": "sha256-8P1b6mJWyYcu36WRlSVbuj575QWIFZALZMTg5ID/sM4=",
- "owner": "tinted-theming",
- "repo": "base16-zed",
- "rev": "122c9e5c0e6f27211361a04fae92df97940eccf9",
- "type": "github"
- },
- "original": {
- "owner": "tinted-theming",
- "repo": "base16-zed",
- "type": "github"
- }
- },
- "treefmt-nix": {
- "inputs": {
- "nixpkgs": [
- "stylix",
- "nur",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1733222881,
- "narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
- "owner": "numtide",
- "repo": "treefmt-nix",
- "rev": "49717b5af6f80172275d47a418c9719a31a78b53",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "treefmt-nix",
- "type": "github"
- }
- },
- "xdph": {
- "inputs": {
- "hyprland-protocols": [
- "hyprland",
- "hyprland-protocols"
- ],
- "hyprlang": [
- "hyprland",
- "hyprlang"
- ],
- "hyprutils": [
- "hyprland",
- "hyprutils"
- ],
- "hyprwayland-scanner": [
- "hyprland",
- "hyprwayland-scanner"
- ],
- "nixpkgs": [
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1750372504,
- "narHash": "sha256-VBeZb1oqZM1cqCAZnFz/WyYhO8aF/ImagI7WWg/Z3Og=",
- "owner": "hyprwm",
- "repo": "xdg-desktop-portal-hyprland",
- "rev": "400308fc4f9d12e0a93e483c2e7a649e12af1a92",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "xdg-desktop-portal-hyprland",
- "type": "github"
- }
- },
- "xdph_2": {
- "inputs": {
- "hyprland-protocols": [
- "hyprspace",
- "hyprland",
- "hyprland-protocols"
- ],
- "hyprlang": [
- "hyprspace",
- "hyprland",
- "hyprlang"
- ],
- "hyprutils": [
- "hyprspace",
- "hyprland",
- "hyprutils"
- ],
- "hyprwayland-scanner": [
- "hyprspace",
- "hyprland",
- "hyprwayland-scanner"
- ],
- "nixpkgs": [
- "hyprspace",
- "hyprland",
- "nixpkgs"
- ],
- "systems": [
- "hyprspace",
- "hyprland",
- "systems"
- ]
- },
- "locked": {
- "lastModified": 1745871725,
- "narHash": "sha256-M24SNc2flblWGXFkGQfqSlEOzAGZnMc9QG3GH4K/KbE=",
- "owner": "hyprwm",
- "repo": "xdg-desktop-portal-hyprland",
- "rev": "76bbf1a6b1378e4ab5230bad00ad04bc287c969e",
- "type": "github"
- },
- "original": {
- "owner": "hyprwm",
- "repo": "xdg-desktop-portal-hyprland",
- "type": "github"
- }
- },
- "zen-browser": {
- "inputs": {
- "nixpkgs": "nixpkgs_12"
- },
- "locked": {
- "lastModified": 1751447312,
- "narHash": "sha256-3O3Tvfyb6Wx3jCLTXx8DYwC+aPsMkba+bnmt6fI5EvY=",
- "ref": "refs/heads/main",
- "rev": "65d7cdedfa21891bb876adb8204fa70f52d7f85f",
- "revCount": 109,
- "type": "git",
- "url": "https://git.sr.ht/~canasta/zen-browser-flake/"
- },
- "original": {
- "type": "git",
- "url": "https://git.sr.ht/~canasta/zen-browser-flake/"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/flake.nix b/flake.nix
deleted file mode 100644
index d2abd18..0000000
--- a/flake.nix
+++ /dev/null
@@ -1,257 +0,0 @@
-{
- description = "gwg313 Nix configs";
-
- inputs = {
- # Nixpkgs
- #nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
- nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
- # You can access packages and modules from different nixpkgs revs
- # at the same time. Here's an working example:
- nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
- # Also see the 'unstable-packages' overlay at 'overlays/default.nix'.
- nix-ld.url = "github:Mic92/nix-ld";
- nix-ld.inputs.nixpkgs.follows = "nixpkgs";
- nixpkgs-24_05.url = "github:NixOS/nixpkgs/nixos-24.05";
- secrets.url = "git+ssh://git@github.com/gwg313/nixos-secrets.git";
- hyprpolkitagent.url = "github:hyprwm/hyprpolkitagent";
- hyprspace = {
- url = "github:KZDKM/Hyprspace";
- };
-
- # Home manager
- home-manager.url = "github:nix-community/home-manager/master";
- home-manager.inputs.nixpkgs.follows = "nixpkgs";
-
- nix-index-database = {
- url = "github:Mic92/nix-index-database";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- hyprland = {
- type = "git";
- url = "https://github.com/hyprwm/Hyprland";
- submodules = true;
- # Don't follow nixpkgs or cache will miss
- # inputs.nixpkgs.follows = "nixpkgs";
- };
- zen-browser.url = "git+https://git.sr.ht/~canasta/zen-browser-flake/";
- nixcord.url = "github:kaylorben/nixcord";
- devenv = {
- url = "github:cachix/devenv/main";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- stylix = {
- url = "github:danth/stylix";
- inputs.nixpkgs.follows = "nixpkgs";
- };
- ags.url = "github:Aylur/ags";
-
- # neovim-config.url = "github:gwg313/nvim-nix";
-
- sops-nix.url = "github:Mic92/sops-nix";
-
- superfile = {
- url = "github:MHNightCat/superfile";
- };
-
- nixvim = {
- url = "github:nix-community/nixvim";
- };
- nvf = {
- url = "github:notashelf/nvf";
- inputs.nixpkgs.follows = "nixpkgs";
- };
-
- pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
- pre-commit-hooks.inputs.nixpkgs.follows = "nixpkgs";
- colmena.url = "github:zhaofengli/colmena";
- };
-
- outputs =
- {
- self,
- nixpkgs,
- home-manager,
- colmena,
- nix-ld,
- ...
- }@inputs:
- let
- inherit (self) outputs;
- # Supported systems for your flake packages, shell, etc.
- systems = [
- "aarch64-linux"
- "i686-linux"
- "x86_64-linux"
- "aarch64-darwin"
- "x86_64-darwin"
- ];
- # This is a function that generates an attribute by calling a function you
- # pass to it, with each system as an argument
- forAllSystems = nixpkgs.lib.genAttrs systems;
- user = "gwg313";
- in
- {
- # Your custom packages
- # Accessible through 'nix build', 'nix shell', etc
- packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system});
- # Formatter for your nix files, available through 'nix fmt'
- # Other options beside 'alejandra' include 'nixpkgs-fmt'
- formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
-
- # Your custom packages and modifications, exported as overlays
- overlays = import ./overlays { inherit inputs; };
- # Reusable nixos modules you might want to export
- # These are usually stuff you would upstream into nixpkgs
- nixosModules = import ./modules/nixos;
- # Reusable home-manager modules you might want to export
- # These are usually stuff you would upstream into home-manager
- homeModules = import ./modules/home-manager;
-
- devShells = forAllSystems (
- system:
- let
- pkgs = nixpkgs.legacyPackages.${system};
- in
- {
- default = pkgs.mkShell {
- inherit (self.checks.${system}.pre-commit-check) shellHook;
- buildInputs = with pkgs; [
- alejandra
- apacheHttpd
- ];
- };
- }
- );
-
- checks = forAllSystems (
- system:
- let
- pkgs = nixpkgs.legacyPackages.${system};
- in
- {
- pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run {
- src = ./.;
- hooks = {
- nixfmt-rfc-style.enable = true;
- };
- };
- }
- );
-
- # NixOS configuration entrypoint
- # Available through 'nixos-rebuild --flake .#your-hostname'
- nixosConfigurations = {
- candlekeep = nixpkgs.lib.nixosSystem {
- specialArgs = {
- inherit user inputs outputs;
- };
- modules = [
- # > Our main nixos configuration file <
- ./hosts/candlekeep/configuration.nix
- nix-ld.nixosModules.nix-ld
- ];
- };
- };
-
- nixosConfigurations = {
- grymforge = nixpkgs.lib.nixosSystem {
- specialArgs = {
- inherit user inputs outputs;
- };
- modules = [
- # > Our main nixos configuration file <
- ./hosts/grymforge/configuration.nix
- ];
- };
- };
-
- # Standalone home-manager configuration entrypoint
- # Available through 'home-manager --flake .#your-username@your-hostname'
- homeConfigurations = {
- "gwg313@candlekeep" = home-manager.lib.homeManagerConfiguration {
- pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
- extraSpecialArgs = {
- inherit inputs outputs;
- };
- modules = [
- # > Our main home-manager configuration file <
- ./home-manager/machines/candlekeep.nix
- inputs.nixcord.homeModules.nixcord
- inputs.stylix.homeModules.stylix
- ];
- };
- };
-
- homeConfigurations = {
- "gwg313@grymforge" = home-manager.lib.homeManagerConfiguration {
- pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
- extraSpecialArgs = {
- inherit inputs outputs;
- };
- modules = [
- # > Our main home-manager configuration file <
- ./home-manager/machines/grymforge.nix
- inputs.nixcord.homeModules.nixcord
- inputs.stylix.homeModules.stylix
- ];
- };
- };
-
- homeConfigurations = {
- "gwg313@dorino" = home-manager.lib.homeManagerConfiguration {
- pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
- extraSpecialArgs = {
- inherit inputs outputs;
- };
- modules = [
- # > Our main home-manager configuration file <
- ./home-manager/machines/dorino.nix
- inputs.stylix.homeModules.stylix
- ];
- };
- };
-
- # colmena managed systems
- colmenaHive = colmena.lib.makeHive self.outputs.colmena;
- colmena = {
- meta = {
- specialArgs = {
- inherit user inputs outputs;
- };
- nixpkgs = import nixpkgs {
- system = "x86_64-linux";
- };
- };
-
- waypoint = {
- deployment = {
- targetHost = "waypoint"; # <- defined in ~/.ssh/config
- };
- imports = [ ./hosts/waypoint/configuration.nix ];
- };
-
- # kerby = {
- # deployment = {
- # targetHost = "waypoint"; # <- defined in ~/.ssh/config
- # };
- # imports = [./hosts/kerby/configuration.nix];
- # };
-
- seikan = {
- deployment = {
- targetHost = "seikan"; # <- defined in ~/.ssh/config
- };
- imports = [ ./hosts/seikan/configuration.nix ];
- };
-
- panopticon = {
- deployment = {
- targetHost = "panopticon"; # <- defined in ~/.ssh/config
- };
- imports = [ ./hosts/panopticon/configuration.nix ];
- };
- };
- };
-}
diff --git a/forgejo/certificate.yaml b/forgejo/certificate.yaml
new file mode 100644
index 0000000..66c8e1f
--- /dev/null
+++ b/forgejo/certificate.yaml
@@ -0,0 +1,14 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: forgejo-cert
+ namespace: istio-system
+spec:
+ secretName: forgejo-cert
+ issuerRef:
+ name: letsencrypt-dns
+ kind: ClusterIssuer
+ dnsNames:
+ - git.local.gwg313.xyz
+ - git.gwg313.xyz
+ - git.zerotier.gwg313.xyz
diff --git a/forgejo/deployment.yaml b/forgejo/deployment.yaml
new file mode 100644
index 0000000..62ce0e3
--- /dev/null
+++ b/forgejo/deployment.yaml
@@ -0,0 +1,48 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: forgejo
+ namespace: forgejo
+ labels:
+ app: forgejo
+spec:
+ strategy:
+ type: Recreate
+ replicas: 1
+ selector:
+ matchLabels:
+ app: forgejo
+ template:
+ metadata:
+ labels:
+ app: forgejo
+ spec:
+ securityContext:
+ runAsUser: 1000
+ runAsGroup: 1000
+ fsGroup: 1000
+ terminationGracePeriodSeconds: 30
+ containers:
+ - name: forgejo
+ image: codeberg.org/forgejo/forgejo:11-rootless
+ ports:
+ - containerPort: 3000
+ - containerPort: 2222
+ env:
+ - name: FORGEJO__server__ROOT_URL
+ value: "https://git.gwg313.xyz/"
+ - name: FORGEJO__ssh__START_SSH_SERVER
+ value: "false"
+ - name: FORGEJO__webhook__ALLOWED_HOST_LIST
+ value: "ci.gwg313.xyz"
+ volumeMounts:
+ - name: forgejo-volume
+ mountPath: /var/lib/gitea
+ subPath: data
+ - name: forgejo-volume
+ mountPath: /etc/gitea
+ subPath: config
+ volumes:
+ - name: forgejo-volume
+ persistentVolumeClaim:
+ claimName: forgejo-pvc
diff --git a/forgejo/destinationrule.yaml b/forgejo/destinationrule.yaml
new file mode 100644
index 0000000..1ec42cc
--- /dev/null
+++ b/forgejo/destinationrule.yaml
@@ -0,0 +1,12 @@
+apiVersion: networking.istio.io/v1beta1
+kind: DestinationRule
+metadata:
+ name: forgejo
+ namespace: forgejo
+spec:
+ host: forgejo.forgejo.svc.cluster.local
+ trafficPolicy:
+ outlierDetection:
+ consecutive5xxErrors: 1
+ interval: 5s
+ baseEjectionTime: 30s
diff --git a/forgejo/gateway.yaml b/forgejo/gateway.yaml
new file mode 100644
index 0000000..4699a1a
--- /dev/null
+++ b/forgejo/gateway.yaml
@@ -0,0 +1,20 @@
+apiVersion: networking.istio.io/v1beta1
+kind: Gateway
+metadata:
+ name: forgejo-gateway
+ namespace: forgejo
+spec:
+ selector:
+ istio: gateway
+ servers:
+ - port:
+ number: 443
+ name: https
+ protocol: HTTPS
+ tls:
+ mode: SIMPLE
+ credentialName: forgejo-cert
+ hosts:
+ - git.local.gwg313.xyz
+ - git.gwg313.xyz
+ - git.zerotier.gwg313.xyz
diff --git a/forgejo/sealed-secret.yaml b/forgejo/sealed-secret.yaml
new file mode 100644
index 0000000..a969f58
--- /dev/null
+++ b/forgejo/sealed-secret.yaml
@@ -0,0 +1,18 @@
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: forgejo-iscsi-auth
+ namespace: forgejo
+spec:
+ encryptedData:
+ discovery.sendtargets.auth.password: AgAcRgPxIe/pBpeUWcSJzzf8HVUpFe8pl9U8qzs1eutcun91clbW5m/sra3oKV6KmmFgd69I2M3w38wtSGG7iztZdIPcCkVXZSqX3ANKrWIwiJXUBqfNtXAD0IxGu8SdkHRp7fGWR9NlynT7WDEZpTNNQrQE0O4GQrM7gMy9wzy22Foxk8hhUCOKW9o2q/HefBBp4BHHhdAmnaya26Cm2Fdji6U2bnORlY8SESRAyty7jkQFI4FcUlXXUhamVccFGVxufhRNkJP+90iPQbD48VDPSGHQS11EbfoSaoXlt+NTRt/FCwSMc2h5L5AtuZHTh72PGCk2+coYDLQb2IL0o+jujsf0hVlRAzMvHi5nDrwNVh+gbuV1MmC1SED3CA6nkevTeEj5mmK+kviZua1Ezi4LQ9daFPhOGjobCtPyZZsHwIzKceqWM5dULvckzgvNLecwkJgDOYRd9j3/G1wgsCUNZj4OhZZgO6rfG+XXMZfFnoRR1x0NK6jInaNm5oG+vYgBjN1WlR7dgEdUN8W0dC0uqmbpsoCTEyjOnumB7ecqknonh/syU8GqlB8KLBv5pZs9YR2fdMgDwh+RW/oPXcNCbbjsGi8N6+R6TdM7hp7NYh4yQaI/qkruCuUgGLEmziFUgrcWfjpwsmhNIuYG2lC0MC+oFlLiS1vF2mIkAM6AnbGgnwnWUU1FK6Y9q0aUjsPKp6Yv169oXgsyHqMk0EzD
+ discovery.sendtargets.auth.username: AgCCpqxtivSysp6XGnnh3xhyqg0I6/RLlwjJMsyQ5RJRoRSxKspKEuaW2+oIzVbCrCm6JS1Amrjk9MgR9jGNo+MtGNXTIWGcy3IAV+Cg6JZSyD/MGCHMQh/NIfZQnAPt2AuFAsXUUbcZbuVS5BYf+27KD8a9sCRH9McPv6IqSPC4tVSWOrdGD+FeL4oZhWhMuMiqAVwXi18tx+bu8TmCXjUUS/bYD64KnwBo+xyGAkiem+0NLqn9b85YMZQ68RWUepfFVZywbxWDuO0cQALHTUPPnVRCZPFImhz6vitlEY1dOkEmBYWQ9NoJZhTdiQA0pnnCvs7bDpGiqOK2qvlSyR6Bii5ZEUSBVfbtFDLQqcw+4mwOr1o+Zh1tSYZspHrm3ogAf3tzgEgHuZdWwXe/MFxDiaUviBjRwWAeCapl39+kn/PUSNQuta87DAOH9WecGE4vE5cvytDs21R+TXuY5IRtXngumEIuxex8Pm0CzjHt5JarWnhLs6kSMpJ2erI129mHh6OclC7ahACuKIMneQhVyWOHoGYdU3YuitRYPz9opYRi0tR1FilUmxKebHhOzu00FjtQTwIME4WIZpRXzvSHapNmx3k/aAX19Ow/lzr0fcszJNebc0p9cRsK+amxB9vIttpFTvhShd0+RQ5R/xAsoj49h0fyKT0Y/pNybZFRMtdMTbYLH2HxZj0DEz71HC5Y3bxGhWQS
+ node.session.auth.password: AgBfFtXL40WF/RcyVHRZ4LxDfFEpzaldSWjahyOQUJAKAgb5flbMdP99nEpL1Z+ZChMXMIn1hU5AbbbdYiMTeSAGyyg8/MHnikv5dvNzUWRYIT2jK++XvqfMWBvFC5Tc9TVFrsc2nFBeNgQ1E5a9W8vLv42sC4MTEHNvCsMxARCcDoxSzzmrZUV+RNy2ze20kp9pgWPxqcsaouynS2Kxdo0L3Tch6wcAOKewi6VKgtmsqrQjdl1wFCiHZrHl421c7Z18kQFsMnq8bF1tbELxm+KB2B78jaPQNHBYKM0aURmt6mnKI99XIIUf42s7fqlInceQwCRx7Q8HYOMWgI2FPwGVAOKRh4CS7woXfwbEga44uBRA91F5UV6i2VHkpfEnF7i6aZ/wKqnlVZQVvs5zZvumn+TuPDXibExTl///dCof7v2Q5xY8OLr2YUScfW3gokj7QUmCqfANG0sUxx+UqeNArXPaSRAw5gvTqRGtDAEZMBevPJSpcoWNJuKOkHST+lgF4T56s3KdyQoe10nrsgTmTEamOn9inkJOtNIlIpDjUHVHrTUgs24Tjfm9LKkrvP+/finuUbVJob6ltA6iU7tHDAAo2XgV2KfFTJC1ogv0hKltZA5TqPiqwUBF9w9iI1aEN2ghjc7+s1YcRtUFHCRnKdg9kU8LraxY166Iwajl1PESQ58LFMXqdLYRb2xIvZGATRYhG8qfhUYokMWTwpAj
+ node.session.auth.username: AgCKkZz7+v4qNvKCoxJUQK+ti3ptzvB3tQFrAhhtz14ifumuPhewFWwDMesWrzavnSm6jtD1U+8rnwgRvS1yyJ4ZtypohbJGWJlp1b/Pk0RT4lwxVLj0zRPvATYHTNSvRhFrnMeLBWMQbAfFNRdGUXN03qp3oq9uWr1I4jJ9fOHfCsqa4j7SH5raZ8qvDO1lPPrUioysbWkMjgP8DG+C8w+LEazgZu86WO/whCG4mEEHSaXs1aofSKfygYRxpd7GKcdmdflU9xbmIWdJMdQ6COWRZb9G8gJE1RsFum3pF5xfx6nxUOm6FkPbRBjtroMEKd4EWAGfl+P2AWWZ3xpA1WSoxjUztDRRvy7xGnU2QOZV3EEXqjG1/H4VUY9kd/3v10rFB9N1UgdatqRZpcxweNzaMJcUUGHMO5TsCjrwcPOD9gCLtWtsbYlvvUFTN2jfPiS2hzquEZI/hdr+qJC9sPJSu9OUvmFx+quT7DzVjvov/HjkdKd+N/dDpXHFVsL2oDq7mjUmT5mzqg3F/6/YkKn8b2X0LTgXUONXxF8xTUsI4HKCSBoANUuT/ePwBY3tVyz0AY+sUQd5Pxq708HeHC2edNTUwmY6ucuLWtTorXzFXSBXQXfeGZqjONtkYCE60CsTp7+RUtdNnG23CNDMFAUujVxLQVa1XfNFlfk9znBQ1IxUBLkU6JJm9kw3hYn6Bk06B/+mOOim
+ template:
+ metadata:
+ creationTimestamp: null
+ name: forgejo-iscsi-auth
+ namespace: forgejo
+ type: kubernetes.io/iscsi-chap
diff --git a/forgejo/service.yaml b/forgejo/service.yaml
new file mode 100644
index 0000000..be8a302
--- /dev/null
+++ b/forgejo/service.yaml
@@ -0,0 +1,13 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: forgejo
+ namespace: forgejo
+spec:
+ selector:
+ app: forgejo
+ ports:
+ - name: http
+ port: 80
+ targetPort: 3000
+ type: ClusterIP
diff --git a/forgejo/storage.yaml b/forgejo/storage.yaml
new file mode 100644
index 0000000..376c165
--- /dev/null
+++ b/forgejo/storage.yaml
@@ -0,0 +1,36 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: forgejo-pv
+spec:
+ capacity:
+ storage: 20Gi
+ accessModes:
+ - ReadWriteOnce
+ persistentVolumeReclaimPolicy: Retain
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz:3260
+ iqn: iqn.2005-10.org.freenas.ctl:forgejo
+ lun: 0
+ fsType: ext4
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: forgejo-iscsi-auth
+ claimRef:
+ namespace: forgejo
+ name: forgejo-pvc
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: forgejo-pvc
+ namespace: forgejo
+spec:
+ storageClassName: manual
+ accessModes:
+ - ReadWriteOnce
+ resources:
+ requests:
+ storage: 20Gi
+ volumeName: forgejo-pv
diff --git a/forgejo/virtualservice.yaml b/forgejo/virtualservice.yaml
new file mode 100644
index 0000000..0efd103
--- /dev/null
+++ b/forgejo/virtualservice.yaml
@@ -0,0 +1,21 @@
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: forgejo
+ namespace: forgejo
+spec:
+ hosts:
+ - git.local.gwg313.xyz
+ - git.gwg313.xyz
+ - git.zerotier.gwg313.xyz
+ gateways:
+ - forgejo-gateway
+ http:
+ - match:
+ - uri:
+ prefix: /
+ route:
+ - destination:
+ host: forgejo
+ port:
+ number: 80
diff --git a/harbor-config/certificate-harbor.yaml b/harbor-config/certificate-harbor.yaml
new file mode 100644
index 0000000..d541d5c
--- /dev/null
+++ b/harbor-config/certificate-harbor.yaml
@@ -0,0 +1,12 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: harbor-cert-nginx
+ namespace: harbor
+spec:
+ secretName: harbor-cert-nginx
+ issuerRef:
+ name: letsencrypt-dns
+ kind: ClusterIssuer
+ dnsNames:
+ - harbor.gwg313.xyz
diff --git a/harbor-config/certificate.yaml b/harbor-config/certificate.yaml
new file mode 100644
index 0000000..0fb929a
--- /dev/null
+++ b/harbor-config/certificate.yaml
@@ -0,0 +1,12 @@
+apiVersion: cert-manager.io/v1
+kind: Certificate
+metadata:
+ name: harbor-cert
+ namespace: istio-system
+spec:
+ secretName: harbor-cert
+ issuerRef:
+ name: letsencrypt-dns
+ kind: ClusterIssuer
+ dnsNames:
+ - registry.gwg313.xyz
diff --git a/harbor-config/gateway.yaml b/harbor-config/gateway.yaml
new file mode 100644
index 0000000..a5d3d1e
--- /dev/null
+++ b/harbor-config/gateway.yaml
@@ -0,0 +1,18 @@
+apiVersion: networking.istio.io/v1beta1
+kind: Gateway
+metadata:
+ name: harbor-gateway
+ namespace: harbor
+spec:
+ selector:
+ istio: gateway
+ servers:
+ - port:
+ number: 443
+ name: https
+ protocol: HTTPS
+ hosts:
+ - registry.gwg313.xyz
+ tls:
+ mode: SIMPLE
+ credentialName: harbor-cert
diff --git a/harbor-config/harbor-iscsi-secrets-sealed.yaml b/harbor-config/harbor-iscsi-secrets-sealed.yaml
new file mode 100644
index 0000000..e2f19b5
--- /dev/null
+++ b/harbor-config/harbor-iscsi-secrets-sealed.yaml
@@ -0,0 +1,18 @@
+apiVersion: bitnami.com/v1alpha1
+kind: SealedSecret
+metadata:
+ creationTimestamp: null
+ name: harbor-iscsi-auth
+ namespace: harbor
+spec:
+ encryptedData:
+ discovery.sendtargets.auth.password: AgAeJ3ODG8BmuWuPNj9VRVGJdi68V0NMTAdhF2Nhk8soW+l742UnEQNneZLEg2MBM4iHOit5Nsjw/0YRm8Yb8loTZInIDIXCi6LrP1NX58zANuoc/K8lovHL9BxwSeucfs+/Jh9vfM6tvuFExFz+yHeYhlufWSBkZIqF7LkX/yR7H1Yc5r4hXCJ2lDd/0TDssN8CjrIZ/2R/8rhKB7/14KfHifV/bXVwXUMtevXvbeEqeJxPPvRPb2fX6D3rrlbOLBnWBiRr4pLf76QrKG5ZgRiV2iXOKHfP3JBO5SCh5ftK8qIVgmAt7TcnEftzp4R6z6BvD2s5UNtUdzXSuwBuGW6Hc7jR8KszoziLI4LEVfU5YZtlc4U2NYuvrWUfzl7WB4c15saqr3ZK1jFxfzTQE4CPfY3HD4mQR0wQvzpDFrTI57sygXG5mRcpePnxu62i7rmx/RUSMAY6kt00YnrnSTafufdcFBA+RbFcJ7saDiidhC1R9nmanl1R2bOh0aZN6c5GPfGcaAvP4CqSVmns/e3s3Csm3OIMaKB+D3adkcMT3iDrpmaoN0eSCYFFKeIzUApVgEWMOWGoGRfeomAzJbpqwhfLecNkOAH2jgX3OTDYuKxik1oAwNOlH7s9ogTXtALG51x7brH1Hfcp5J36v0g+dZV4k2/z4V1R4GbQ9HvKiIA/zWDjZXUwh1/Jmf/n1J2tgK4DFnOpfA5+Hi27OFtQ
+ discovery.sendtargets.auth.username: AgAUXQyptx3bktJI+I6jvViwYvq1tETgA4z06HqAF9sCy7FA/tLnhmaDFOJBlsUUZdxKvybpL4gFfibfEGv0hrVb5yPhf2CZGPRnWEjqRBTzKwmtT8eeRnkR4WxNx/bsJhlNr3p1EAAVYJqot4qH6FuFh9zG/rwzAaLT883/p4HCGPf0vgCQmQYOrKT1tNVb7+hvDWLTkA+A45R86SznapYMT+awIHRO/ePngMYzpwmnBw82X+z7QubLSZyqEzyBoF7G1Bst81aiSlCeip/BWgS///EAvqvFTUMMHkRn48Qm4S4qRHepEJD3jpk28PcF4hs06e3NluEmxJ6cr7ejtFMoSu0vkw5FHHZN3U5YoafxvC8hc+5TotkFs4KIUnAsgFwTn68w7qwjmClUtFoughW3Ku5+7DEd1Klw1CBqSO7kURZI/777kyfcoEeXmkXbRzr8lOfvJoaMrHUsR5v9RZrsvWiuhXJjOdfVGw5p8RL137E4MxPwMAdlCW3Ry78AJnSAaIn+3Nuv0+lSpB1LFGGiuDPR5hKfA/dKX+FqFFF1CMn7q/DrLlcBlkjUHLR5sg0IBc4EReZLLa02USNwsisTkiQo+Wm5rwZ0ZvCCHOSmJjbLsbmqzSuAf5ffVcnEk2OWjxzZoMB8+d7HRqXumrA7vKK70sTpSNoMR1UuL0Kfgm8wvKvP3Fqd0dKEb/etLaGvL0RJ4ek=
+ node.session.auth.password: AgANvpN/nYqlyN7mZyIBE9aXRrOiINOTurXYDSwI9N9rc2SwBKvtUC9kvDE/5MZaU/Itk2SK4vFJEKuLkmomeyk9BFJJ0V3tqEDklgvGG2EMSt8Xlj9We8ujWnrN4GYSb047F3b0mBakczxcRNiJisPkvq/XyYrBVCgPPJqVhJIYKXjSXcthd1Jfd3kJzbippjCykmupRTbz7/Vk6QtKmQXfEcPDuOLPCaF/gFL2/3vVachJh7zON62lKCkuHE7QTeIEPFOCJib/oDSi2TG4ts5u8h+uTXoJCBpJwAGDhHly6cOOAiXR9BAp2nbprRb193Ga5aOGmR+qXmjQdMc3dLiJnWpMmGo0tbl5JD4bUOi/E9VFzOprKdGeYlGssGOTdAtmlrnKvaiSS6YiuCvFMFsHdo8jyC45dE4LNuiOI3MX6mkyLEGOYStiS8e/HzRPg5AGLQsuD33RVKE0+IpPGys4ScU44k+jclpcdS00eXI+ZSEfSUQA8di8rXgZfrJLvuVtRFCTjx3HA8kb4J68nHEdBeXJJEQp9Nx/Tc1ic/Iyi+Br/4Pw+UQHI3YYkUfwWaBuCqxOX5Yedcy3BHqxkdCARNVB9cRBcfFMhJJnS6WVaCgXa0qzZLt7RqutVCa7jtCOmMK3PiU4q09ML4OqyIg/HV+c2OMCJG9nBKL8wtE0Huz1ZNWDgFIWybKA4an1P2cULiMAMNQHGPrvL+o9v9CO
+ node.session.auth.username: AgA+bt5d5wiAHDmoV5fJExQIUFFy+WmJFFmZY5/WnulzC+/SRxssz/MtikNv8nkFdtvPfTXM57ic2SwPfSXULyQbDY/Kiwi0UejaC+9lN+weCKhks2UgaHYUtv3Inm6xLMHcvfxrwUERrfx7U70vl60WP3CYQ91l0d3fxbbRByw3TZuTZkuYnGmCsfJK0q+hd7GCa8cSxMvUf32MbRrVXecxsBKB4dtsMz0kHiZaH0wchmzWV/mBmAHV5oqkTyk3rAKZHd8D9uqy23fUr8BV6e5hSF67JicCgn94gJq8Z0hrDnu93zZl+mCFnkwPk9uA1jAuQOptHNdXEkZSjUKXFSp5pG5hgxCmwtJNBxUiZDc7IjPETCh/BzD3WLHIzfYAqW7LxDDr9IKlUEf5CUeBw2CULCq9wIaRhXqiJmV36XmMlAGJt+J2SCCKUbhKsJfyHL+PG19gDv2f75bcWc3U6646Pn5b3f0X+eJ9wIyW2Q1cqxo0yZJ+kQ3M7/ABOQfZBYoafi305fE5byecWBgz91ZrXDG/lXGat1rZBVpZ660iIZ9YvCHCC0Vb5LNEPwsfgodUnp1lXoSq8Fm6ggfLhKLL2JrlJhmou3fHsnovNmqTC9wJ026iGrwFNE8nRKvniK8aujK8IHfklodDSFWC4h/IpJf9oLWw8li0a4Ll/s0msFlWq+GABYJZW9CA0br0tp4Or8PwUwM=
+ template:
+ metadata:
+ creationTimestamp: null
+ name: harbor-iscsi-auth
+ namespace: harbor
+ type: kubernetes.io/iscsi-chap
diff --git a/harbor-config/storage.yaml b/harbor-config/storage.yaml
new file mode 100644
index 0000000..1125792
--- /dev/null
+++ b/harbor-config/storage.yaml
@@ -0,0 +1,197 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: harbor-registry-pv
+spec:
+ capacity:
+ storage: 200Gi
+ accessModes:
+ - ReadWriteOnce
+ volumeMode: Filesystem
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: harbor-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz
+ iqn: iqn.2005-10.org.freenas.ctl:harbor-registry
+ lun: 1
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: harbor-iscsi-auth
+ namespace: harbor
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: harbor-registry
+ namespace: harbor
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: harbor-iscsi
+ volumeName: harbor-registry-pv
+ resources:
+ requests:
+ storage: 200Gi
+
+# Harbor: Jobservice
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: harbor-jobservice-pv
+spec:
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteOnce
+ volumeMode: Filesystem
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: harbor-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz
+ iqn: iqn.2005-10.org.freenas.ctl:harbor-jobservice
+ lun: 0
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: harbor-iscsi-auth
+ namespace: harbor
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: harbor-jobservice
+ namespace: harbor
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: harbor-iscsi
+ volumeName: harbor-jobservice-pv
+ resources:
+ requests:
+ storage: 10Gi
+
+# Harbor: Database
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: harbor-database-pv
+spec:
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteOnce
+ volumeMode: Filesystem
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: harbor-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz
+ iqn: iqn.2005-10.org.freenas.ctl:harbor-database
+ lun: 2
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: harbor-iscsi-auth
+ namespace: harbor
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: harbor-database
+ namespace: harbor
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: harbor-iscsi
+ volumeName: harbor-database-pv
+ resources:
+ requests:
+ storage: 10Gi
+
+# Harbor: Redis
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: harbor-redis-pv
+spec:
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteOnce
+ volumeMode: Filesystem
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: harbor-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz
+ iqn: iqn.2005-10.org.freenas.ctl:harbor-redis
+ lun: 3
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: harbor-iscsi-auth
+ namespace: harbor
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: harbor-redis
+ namespace: harbor
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: harbor-iscsi
+ volumeName: harbor-redis-pv
+ resources:
+ requests:
+ storage: 10Gi
+
+# Harbor: Trivy
+---
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: harbor-trivy-pv
+spec:
+ capacity:
+ storage: 10Gi
+ accessModes:
+ - ReadWriteOnce
+ volumeMode: Filesystem
+ persistentVolumeReclaimPolicy: Retain
+ storageClassName: harbor-iscsi
+ iscsi:
+ targetPortal: truenas.local.gwg313.xyz
+ iqn: iqn.2005-10.org.freenas.ctl:harbor-trivy
+ lun: 4
+ fsType: ext4
+ readOnly: false
+ chapAuthDiscovery: true
+ chapAuthSession: true
+ secretRef:
+ name: harbor-iscsi-auth
+ namespace: harbor
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: harbor-trivy
+ namespace: harbor
+spec:
+ accessModes:
+ - ReadWriteOnce
+ storageClassName: harbor-iscsi
+ volumeName: harbor-trivy-pv
+ resources:
+ requests:
+ storage: 10Gi
diff --git a/harbor-config/virtualservice.yaml b/harbor-config/virtualservice.yaml
new file mode 100644
index 0000000..d28983e
--- /dev/null
+++ b/harbor-config/virtualservice.yaml
@@ -0,0 +1,39 @@
+apiVersion: networking.istio.io/v1beta1
+kind: VirtualService
+metadata:
+ name: harbor
+ namespace: harbor
+spec:
+ hosts:
+ - registry.gwg313.xyz
+ gateways:
+ - harbor-gateway
+ http:
+ - match:
+ - uri:
+ prefix: /api/
+ - uri:
+ prefix: /service/
+ - uri:
+ prefix: /chartrepo
+ - uri:
+ prefix: /c/
+ - uri:
+ prefix: /v1/
+ - uri:
+ prefix: /v2/
+ route:
+ - destination:
+ host: harbor-core
+ port:
+ number: 80
+ - match:
+ - uri:
+ prefix: /
+ name: portal
+ route:
+ - destination:
+ host: harbor-portal
+ port:
+ number: 80
+ timeout: 30s
diff --git a/home-manager/machines/candlekeep.nix b/home-manager/machines/candlekeep.nix
deleted file mode 100644
index 6c9d961..0000000
--- a/home-manager/machines/candlekeep.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-# This is your home-manager configuration file
-# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
-{
- inputs,
- outputs,
- lib,
- config,
- pkgs,
- ...
-}:
-{
- # You can import other home-manager modules here
- imports = [
- # If you want to use modules your own flake exports (from modules/home-manager):
- # outputs.homeManagerModules.example
-
- # Or modules exported from other flakes (such as nix-colors):
- # inputs.nix-colors.homeManagerModules.default
- inputs.ags.homeManagerModules.default
-
- # You can also split up your configuration and import pieces of it here:
-
- ../modules/nvf
- ./candlekeep/variables.nix
- # ./nvim.nix
- ../modules/common.nix
- ../../common/style/vars/vars.nix
- ../modules/hyprland
- ../modules/common-gui.nix
- ../modules/linux-gui.nix
- ../modules/devenv.nix
- ../modules/ssh.nix
- ../modules/gh-dash.nix
- ../modules/ags.nix
- # ../modules/neovim
- ../modules/yazi.nix
- # ../modules/hyprpanel.nix
- # ../modules/hyprlock.nix
- # ../modules/hypridle.nix
- # ../modules/hyprspace.nix
- ../modules/qutebrowser.nix
- ../scripts/default.nix
- ];
-
- nixpkgs = {
- # You can add overlays here
- overlays = [
- # Add overlays your own flake exports (from overlays and pkgs dir):
- outputs.overlays.additions
- outputs.overlays.modifications
- outputs.overlays.unstable-packages
-
- # You can also add overlays exported from other flakes:
- # neovim-nightly-overlay.overlays.default
- # (final: prev: { neovim = inputs.neovim-config.packages."x86_64-linux".default; })
-
- # Or define it inline, for example:
- # (final: prev: {
- # hi = final.hello.overrideAttrs (oldAttrs: {
- # patches = [ ./change-hello-to-hi.patch ];
- # });
- # })
- ];
- # Configure your nixpkgs instance
- config = {
- # Disable if you don't want unfree packages
- allowUnfree = true;
- # Workaround for https://github.com/nix-community/home-manager/issues/2942
- allowUnfreePredicate = _: true;
- };
- };
-
- home = {
- username = "gwg313";
- homeDirectory = "/home/gwg313";
- };
-
- gtk = {
- enable = true;
- iconTheme = {
- name = "WhiteSur-Light";
- package = pkgs.whitesur-icon-theme.override {
- boldPanelIcons = true;
- alternativeIcons = true;
- };
- };
- # font.name = "Inter 13";
- };
-
- qt = {
- enable = true;
- platformTheme.name = "gtk";
- style.name = "adwaita";
- };
-
- # Add stuff for your user as you see fit:
- # programs.neovim.enable = true;
- home.packages = with pkgs; [
- openvpn
- hyprpanel
- nerd-fonts.overpass
- ];
-
- # Enable home-manager and git
- programs.home-manager.enable = true;
- programs.git.enable = true;
-
- # Nicely reload system units when changing configs
- systemd.user.startServices = "sd-switch";
-
- # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
- home.stateVersion = "23.05";
-}
diff --git a/home-manager/machines/candlekeep/variables.nix b/home-manager/machines/candlekeep/variables.nix
deleted file mode 100644
index 881f78c..0000000
--- a/home-manager/machines/candlekeep/variables.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ config, ... }:
-{
- imports = [ ../../../common/nixos/variables-config.nix ];
-
- config.var = {
- hostname = "candlekeep";
- username = "gwg313";
- configDirectory = "/home/" + config.var.username + "/.config/nixos";
-
- keyboardLayout = "en_US";
-
- location = "Ottawa";
- timeZone = "American/Toronto";
- defaultLocale = "en_US.UTF-8";
-
- git = {
- username = "gwg313";
- email = "gwg313@pm.me";
- };
-
- autoUpgrade = true;
- autoGarbageCollector = true;
-
- theme = import ../../../common/style/vars/candlekeep.nix;
- };
-}
diff --git a/home-manager/machines/dorino.nix b/home-manager/machines/dorino.nix
deleted file mode 100644
index 2180bb6..0000000
--- a/home-manager/machines/dorino.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This is your home-manager configuration file
-# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
-{
- inputs,
- outputs,
- lib,
- config,
- pkgs,
- ...
-}: {
- # You can import other home-manager modules here
- imports = [
- # If you want to use modules your own flake exports (from modules/home-manager):
- # outputs.homeManagerModules.example
-
- # Or modules exported from other flakes (such as nix-colors):
- # inputs.nix-colors.homeManagerModules.default
-
- # You can also split up your configuration and import pieces of it here:
- # ./nvim.nix
- ../modules/common.nix
- ];
-
- nixpkgs = {
- # You can add overlays here
- overlays = [
- # Add overlays your own flake exports (from overlays and pkgs dir):
- outputs.overlays.additions
- outputs.overlays.modifications
- outputs.overlays.unstable-packages
-
- # You can also add overlays exported from other flakes:
- # neovim-nightly-overlay.overlays.default
- (final: prev: {
- neovim = inputs.neovim-config.packages."x86_64-linux".default;
- })
- # Or define it inline, for example:
- # (final: prev: {
- # hi = final.hello.overrideAttrs (oldAttrs: {
- # patches = [ ./change-hello-to-hi.patch ];
- # });
- # })
- ];
- # Configure your nixpkgs instance
- config = {
- # Disable if you don't want unfree packages
- allowUnfree = true;
- # Workaround for https://github.com/nix-community/home-manager/issues/2942
- allowUnfreePredicate = _: true;
- };
- };
-
- home = {
- username = "gwg313";
- homeDirectory = "/home/gwg313";
- };
-
- stylix = {
- base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-terminal-storm.yaml";
- image = ./wallpaper.jpg;
- autoEnable = true;
-
- opacity.terminal = 1.0;
- fonts.sizes.terminal = 15;
-
- fonts = {
- serif = {
- package = pkgs.meslo-lgs-nf;
- name = "MesloLGS NF";
- };
-
- sansSerif = {
- package = pkgs.meslo-lgs-nf;
- name = "MesloLGS NF";
- };
-
- monospace = {
- package = pkgs.ibm-plex;
- name = "IBM Plex Mono";
- };
-
- emoji = {
- package = pkgs.noto-fonts-emoji;
- name = "Noto Color Emoji";
- };
- };
- cursor = {
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 20;
- };
- };
-
- # Add stuff for your user as you see fit:
- # programs.neovim.enable = true;
- home.packages = with pkgs; [
- podman
- podman-compose
- ];
-
- # Enable home-manager and git
- programs.home-manager.enable = true;
- programs.git.enable = true;
-
- programs.direnv.enable = true;
- # Nicely reload system units when changing configs
- systemd.user.startServices = "sd-switch";
-
- # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
- home.stateVersion = "23.05";
-}
diff --git a/home-manager/machines/grymforge.nix b/home-manager/machines/grymforge.nix
deleted file mode 100644
index 04d966a..0000000
--- a/home-manager/machines/grymforge.nix
+++ /dev/null
@@ -1,108 +0,0 @@
-# This is your home-manager configuration file
-# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
-{
- inputs,
- outputs,
- lib,
- config,
- pkgs,
- ...
-}:
-{
- # You can import other home-manager modules here
- imports = [
- # If you want to use modules your own flake exports (from modules/home-manager):
- # outputs.homeManagerModules.example
-
- # Or modules exported from other flakes (such as nix-colors):
- # inputs.nix-colors.homeManagerModules.default
-
- # You can also split up your configuration and import pieces of it here:
-
- ./grymforge/variables.nix
- # ../modules/hyprpanel.nix
- # ../modules/hyprlock.nix
- # ../modules/hypridle.nix
- # ./nvim.nix
- ../modules/nvf
- ../modules/common.nix
- ../modules/hyprland
- # ../modules/hyprland.nix
- ../modules/common-gui.nix
- ../modules/linux-gui.nix
- ../modules/devenv.nix
- ../modules/gh-dash.nix
- ../modules/ssh.nix
- # ../modules/neovim/default.nix
- ../modules/yazi.nix
- ../modules/qutebrowser.nix
- ../scripts/default.nix
- ../../common/style/vars/vars.nix
- ];
-
- nixpkgs = {
- # You can add overlays here
- overlays = [
- # Add overlays your own flake exports (from overlays and pkgs dir):
- outputs.overlays.additions
- outputs.overlays.modifications
- outputs.overlays.unstable-packages
-
- # You can also add overlays exported from other flakes:
- # neovim-nightly-overlay.overlays.default
- # (final: prev: {
- # neovim = inputs.neovim-config.packages."x86_64-linux".default;
- # })
-
- # Or define it inline, for example:
- # (final: prev: {
- # hi = final.hello.overrideAttrs (oldAttrs: {
- # patches = [ ./change-hello-to-hi.patch ];
- # });
- # })
- ];
- # Configure your nixpkgs instance
- config = {
- # Disable if you don't want unfree packages
- allowUnfree = true;
- # Workaround for https://github.com/nix-community/home-manager/issues/2942
- allowUnfreePredicate = _: true;
- };
- };
-
- home = {
- username = "gwg313";
- homeDirectory = "/home/gwg313";
- };
-
- gtk = {
- enable = true;
- iconTheme = {
- name = "WhiteSur-Light";
- package = pkgs.whitesur-icon-theme.override {
- boldPanelIcons = true;
- alternativeIcons = true;
- };
- };
- # font.name = "Inter 13";
- };
-
- qt = {
- enable = true;
- platformTheme.name = "gtk";
- style.name = "adwaita";
- };
- # Add stuff for your user as you see fit:
- # programs.neovim.enable = true;
- home.packages = with pkgs; [ openvpn ];
-
- # Enable home-manager and git
- programs.home-manager.enable = true;
- programs.git.enable = true;
-
- # Nicely reload system units when changing configs
- systemd.user.startServices = "sd-switch";
-
- # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
- home.stateVersion = "23.05";
-}
diff --git a/home-manager/machines/grymforge/variables.nix b/home-manager/machines/grymforge/variables.nix
deleted file mode 100644
index 762f024..0000000
--- a/home-manager/machines/grymforge/variables.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ config, ... }:
-{
- imports = [ ../../../common/nixos/variables-config.nix ];
-
- config.var = {
- hostname = "grymforge";
- username = "gwg313";
- configDirectory = "/home/" + config.var.username + "/.config/nixos";
-
- keyboardLayout = "en_US";
-
- location = "Ottawa";
- timeZone = "American/Toronto";
- defaultLocale = "en_US.UTF-8";
-
- git = {
- username = "gwg313";
- email = "gwg313@pm.me";
- };
-
- autoUpgrade = true;
- autoGarbageCollector = true;
-
- theme = import ../../../common/style/vars/grymforge.nix;
- };
-}
diff --git a/home-manager/machines/wallpaper.jpg b/home-manager/machines/wallpaper.jpg
deleted file mode 100644
index 4d55dec..0000000
Binary files a/home-manager/machines/wallpaper.jpg and /dev/null differ
diff --git a/home-manager/machines/wallpaper2.png b/home-manager/machines/wallpaper2.png
deleted file mode 100644
index 1cd2ed9..0000000
Binary files a/home-manager/machines/wallpaper2.png and /dev/null differ
diff --git a/home-manager/modules/ags.nix b/home-manager/modules/ags.nix
deleted file mode 100644
index e55803b..0000000
--- a/home-manager/modules/ags.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# A cat clone with syntax highlighting and Git integration.
-{ pkgs, ... }:
-{
- programs.ags = {
- enable = true;
- # null or path, leave as null if you don't want hm to manage the config
- # configDir = ../ags;
-
- # additional packages to add to gjs's runtime
- extraPackages = with pkgs; [
- gtksourceview
- accountsservice
- libdbusmenu-gtk3
- ];
- };
-}
diff --git a/home-manager/modules/alacritty.nix b/home-manager/modules/alacritty.nix
deleted file mode 100644
index 1fa8aba..0000000
--- a/home-manager/modules/alacritty.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# A fast, GPU-accelerated terminal emulator.
-{
- pkgs,
- lib,
- ...
-}:
-{
- programs.alacritty = {
- enable = true;
- settings = {
- env = {
- TERM = "xterm-256color";
- };
- font = {
- normal = {
- # family = lib.mkForce "Monaspace Krypton";
- family = lib.mkForce "Comic Code";
- };
- };
- };
- };
- home.packages = with pkgs; [
- ueberzugpp
- monaspace
- ];
-}
diff --git a/home-manager/modules/ansible.nix b/home-manager/modules/ansible.nix
deleted file mode 100644
index e24b8c7..0000000
--- a/home-manager/modules/ansible.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: {
- home.packages = with pkgs; [
- ansible # Open-source automation platform for configuration management, application deployment, and task automation.
- ansible-doctor # Ansible utility for diagnosing and troubleshooting common issues.
- ansible-later # Ansible plugin for scheduling tasks to run later.
- molecule # Testing framework for testing Ansible roles and playbooks in various environments.
- ];
-}
diff --git a/home-manager/modules/atuin.nix b/home-manager/modules/atuin.nix
deleted file mode 100644
index 0ade0ff..0000000
--- a/home-manager/modules/atuin.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-# ✨ Magical shell history
-{...}: {
- programs.atuin = {
- enable = true;
- flags = [
- "--disable-up-arrow"
- ];
- };
-}
diff --git a/home-manager/modules/bat.nix b/home-manager/modules/bat.nix
deleted file mode 100644
index f53b995..0000000
--- a/home-manager/modules/bat.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-# A cat clone with syntax highlighting and Git integration.
-{...}: {
- programs.bat = {
- enable = true;
- };
-}
diff --git a/home-manager/modules/broot.nix b/home-manager/modules/broot.nix
deleted file mode 100644
index bc473a5..0000000
--- a/home-manager/modules/broot.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-# An interactive treeview directory navigator
-{...}: {
- programs.broot = {
- enable = true;
- enableZshIntegration = true;
- };
-}
diff --git a/home-manager/modules/btop.nix b/home-manager/modules/btop.nix
deleted file mode 100644
index dcd59ed..0000000
--- a/home-manager/modules/btop.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ ... }:
-{
- programs.btop = {
- enable = true;
- };
-}
diff --git a/home-manager/modules/common-gui.nix b/home-manager/modules/common-gui.nix
deleted file mode 100644
index 5d15883..0000000
--- a/home-manager/modules/common-gui.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ pkgs, ... }:
-{
- imports = [
- ./alacritty.nix
- ./fuzzel.nix
- ./kitty.nix
- ./ghostty.nix
- ./obs.nix
- ./thunar.nix
- ./zen.nix
- ./mime.nix
- ./nixcord.nix
- ];
-
- fonts.fontconfig.enable = true;
-
- # Bluetooth power alerts
- services.poweralertd.enable = true;
-
- home.packages = with pkgs; [
- # fonts
- nerd-fonts.monaspace
- noto-fonts-cjk-sans
- rPackages.fontawesome
- ubuntu_font_family
- yt-dlp
- ];
-}
diff --git a/home-manager/modules/common.nix b/home-manager/modules/common.nix
deleted file mode 100644
index 69bffda..0000000
--- a/home-manager/modules/common.nix
+++ /dev/null
@@ -1,120 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-{
- imports = [
- ./atuin.nix
- ./bat.nix
- ./btop.nix
- # ./broot.nix
- ./eza.nix
- ./lazygit.nix
- ./git.nix
- ./pass.nix
- ./starship.nix
- ./tmux/tmux.nix
- ./zoxide.nix
- ./zsh.nix
- ./fzf.nix
- ./nushell/default.nix
- ];
- nixpkgs.config.allowUnfree = true;
-
- home.packages =
- with pkgs;
- [
- ncdu
- minio-client
-
- # Editors
- # neovim # Improved version of vim, often used with overlays.
- # vim # Highly configurable text editor popular for efficiency and extensibility.
-
- sshfs
- lurk
-
- # Builtin Replacements
- bottom # Similar to 'htop,' providing a top-like interface with additional features.
- colordiff # Tool to colorize 'diff' output, making differences between files easier to spot.
- du-dust # Modern replacement for 'du,' offering intuitive and visually appealing disk usage analysis.
- duf # Disk Usage/Free utility with a user-friendly interface for visualizing disk space consumption and information.
- eza # Modern replacement for 'ls' with additional features and a user-friendly interface.
- fd # Faster and user-friendly alternative to 'find' for searching and locating files.
- fzf # Fuzzy finder for rapid file and directory searches.
- htop # Modern and interactive process viewer, an improved alternative to 'top.'
- moar # A syntax highlighting pager
- ripgrep # Faster alternative to 'grep,' recursively searching directories for a regex pattern.
- rm-improved # Enhanced file and directory removal tool with interactive prompts, advanced options, and improved user feedback.
- tealdeer # Command-line utility providing simplified and community-driven man pages.
- pay-respects # Handy tool that corrects mistyped console commands.
- viddy # A modern watch command. Time machine and pager etc.
-
- # Multiplexers
- tmate # Terminal multiplexer allowing multiple users to access a single session.
-
- # Misc Tools
- hyperfine # Command-line benchmarking tool.
- mkvtoolnix # Set of tools to create, alter, and inspect Matroska files (MKV).
- p7zip # Command-line tool for handling 7z compressed files.
- rclone # Command-line program to manage files on cloud storage with support for a wide range of providers and advanced synchronization features.
- restic # Secure and efficient backup tool with deduplication, encryption, and flexible storage options.
- scc # Source code counter for various programming languages, providing code statistics and complexity analysis.
- tree # Displays directory structure in a tree-like format.
- unzip # Command-line tool for extracting files from ZIP archives.
- yt-dlp # Fork of youtube-dl, facilitating video downloads from various sites.
- age
- portal
- atac
- dblab
- gobang
- lazyjournal
-
- # TUI Apps
- #ncdu_2
-
- # Networking
- dig # A command-line tool for querying DNS name servers, providing detailed information about domain names, IP addresses, and DNS records.
- gping # Ping with TUI for a visual representation of network connectivity.
- iperf # Tool for measuring maximum TCP and UDP bandwidth performance.
- nmap # Network scanning tool for discovering hosts and services.
- rsync # Fast and versatile file copying and synchronization tool.
- speedtest-cli # Command-line interface for testing internet bandwidth.
- wget # Command-line utility for downloading files from the web.
-
- picocom # Minimal terminal emulator for microcontrollers.
-
- # Docs
- gnumake # GNU make tool, a build automation tool for compiling projects.
- pandoc # Document converter transforming files between markup formats.
-
- # Useful Utils
- buku # Powerful command-line bookmark manager, providing a flexible and efficient way to organize, search, and access your bookmarks securely.
- entr # Event notifier for automation and development, executing commands whenever files change in the specified directory.
- git-cliff # Tool for visualizing project commit history and generating release notes.
- grex # Tool generating regular expressions from user-provided test cases.
- sshs
-
- # Nix Tools
- alejandra # Nix code formatter.
- direnv # Environment switcher for the shell.
- nix-direnv # Integration of direnv with the Nix package manager.
- nix-init # Simplifies the process of creating Nix projects.
- nix-prefetch-github # Tool for fetching the latest version and hash of a GitHub repository.
- ]
- ++ lib.optionals stdenv.isDarwin [
- coreutils # Essential GNU core utilities, including `dd` with the `--status=progress` option for more informative progress reporting.
- time # GNU time command, providing more detailed and accurate information about the resource usage of a command or process.
- wifi-password # Command-line tool to quickly retrieve the current Wi-Fi password, simplifying access to network credentials.
- ]
- ++ lib.optionals stdenv.isLinux [
- bandwhich # Network bandwidth monitor that identifies and displays bandwidth usage per process, helping to pinpoint data-hungry applications.
- bmon # Bandwidth monitoring tool that visually represents network usage with a simple and easy-to-read interface.
- iftop # Network monitoring tool that displays a real-time, interactive view of network bandwidth usage by different connections.
- iotop # Disk I/O monitoring tool that provides a top-like interface to showcase real-time disk activity and identify performance bottlenecks.
- iputils # Package providing essential network utilities such as `ping` and `ifconfig` for network diagnostics and configuration.
- libuuid # Library for generating universally unique identifiers (UUIDs), with the `uuidgen` utility included. (Note: Already pre-installed on macOS.)
- ];
-}
diff --git a/home-manager/modules/devenv.nix b/home-manager/modules/devenv.nix
deleted file mode 100644
index 2c9eacf..0000000
--- a/home-manager/modules/devenv.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- config,
- lib,
- pkgs,
- inputs,
- ...
-}: {
- home.packages = with pkgs; [
- cachix
- # inputs.devenv.packages.${system}.devenv
- devenv
- ];
-
- programs.direnv.enable = true;
- programs.direnv.nix-direnv.enable = true;
-}
diff --git a/home-manager/modules/discord/default.nix b/home-manager/modules/discord/default.nix
deleted file mode 100644
index 816cfcb..0000000
--- a/home-manager/modules/discord/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-let
- cfg = config.programs.discord;
-
- discordPatcherBin = pkgs.writers.writePython3Bin "discord-krisp-patcher" {
- libraries = with pkgs.python3Packages; [
- pyelftools
- capstone
- ];
- flakeIgnore = [
- "E265" # from nix-shell shebang
- "E501" # line too long (82 > 79 characters)
- "F403" # 'from module import *' used; unable to detect undefined names
- "F405" # name may be undefined, or defined from star imports: module
- ];
- } (builtins.readFile ./krisp-patcher.py);
-
- wrapDiscordBinary = pkgs.writeShellScriptBin "discord" ''
- ${pkgs.findutils}/bin/find -L $HOME/.config/discord -name 'discord_krisp.node' -exec ${discordPatcherBin}/bin/discord-krisp-patcher {} +
- ${pkgs.discord}/bin/discord "$@"
- '';
-
- discord = pkgs.discord.override {
- # Performance mod
- withOpenASAR = true;
- # link fix
- nss = pkgs.nss_latest;
- };
-in
-{
- options.programs.discord = {
- enable = lib.mkEnableOption "Discord";
- wrapDiscord = lib.mkEnableOption "wrap the Discord binary with a patching each time";
- };
-
- config = lib.mkIf cfg.enable {
- home.packages = [
- discordPatcherBin
- ] ++ (if cfg.wrapDiscord then [ wrapDiscordBinary ] else [ pkgs.discord ]);
- };
-}
diff --git a/home-manager/modules/discord/krisp-patcher.py b/home-manager/modules/discord/krisp-patcher.py
deleted file mode 100644
index 984036c..0000000
--- a/home-manager/modules/discord/krisp-patcher.py
+++ /dev/null
@@ -1,87 +0,0 @@
-import shutil
-import sys
-
-from capstone import *
-from capstone.x86 import *
-from elftools.elf.elffile import ELFFile
-
-if len(sys.argv) < 2:
- print(f"Usage: {sys.argv[0]} [path to discord_krisp.node]")
- # "Unix programs generally use 2 for command line syntax errors and 1 for all other kind of errors."
- sys.exit(2)
-
-executable = sys.argv[1]
-
-elf = ELFFile(open(executable, "rb"))
-symtab = elf.get_section_by_name(".symtab")
-
-krisp_initialize_address = symtab.get_symbol_by_name("_ZN7discord15KrispInitializeEv")[
- 0
-].entry.st_value
-isSignedByDiscord_address = symtab.get_symbol_by_name(
- "_ZN7discord4util17IsSignedByDiscordERKNSt2Cr12basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE"
-)[0].entry.st_value
-
-text = elf.get_section_by_name(".text")
-text_start = text["sh_addr"]
-text_start_file = text["sh_offset"]
-# This seems to always be zero (.text starts at the right offset in the file). Do it just in case?
-address_to_file = text_start_file - text_start
-
-# Done with the ELF now.
-# elf.close()
-
-krisp_initialize_offset = krisp_initialize_address - address_to_file
-isSignedByDiscord_offset = krisp_initialize_address - address_to_file
-
-f = open(executable, "rb")
-f.seek(krisp_initialize_offset)
-krisp_initialize = f.read(64)
-f.close()
-
-# States
-found_issigned_by_discord_call = False
-found_issigned_by_discord_test = False
-found_issigned_by_discord_je = False
-found_already_patched = False
-je_location = None
-
-# We are looking for a call to IsSignedByDiscord, followed by a test, followed by a je.
-# Then we patch the je into a two byte nop.
-
-md = Cs(CS_ARCH_X86, CS_MODE_64)
-md.detail = True
-for i in md.disasm(krisp_initialize, krisp_initialize_address):
- if i.id == X86_INS_CALL:
- if i.operands[0].type == X86_OP_IMM:
- if i.operands[0].imm == isSignedByDiscord_address:
- found_issigned_by_discord_call = True
-
- if i.id == X86_INS_TEST:
- if found_issigned_by_discord_call:
- found_issigned_by_discord_test = True
-
- if i.id == X86_INS_JE:
- if found_issigned_by_discord_test:
- found_issigned_by_discord_je = True
- je_location = i.address
- break
-
- if i.id == X86_INS_NOP:
- if found_issigned_by_discord_test:
- found_already_patched = True
- break
-
-if je_location:
- print(f"Found patch location: 0x{je_location:x}")
-
- shutil.copyfile(executable, executable + ".orig")
- f = open(executable, "rb+")
- f.seek(je_location - address_to_file)
- f.write(b"\x66\x90") # Two byte NOP
- f.close()
-else:
- if found_already_patched:
- print("Couldn't find patch location - already patched.")
- else:
- print("Couldn't find patch location - review manually. Sorry.")
diff --git a/home-manager/modules/eza.nix b/home-manager/modules/eza.nix
deleted file mode 100644
index 302ae90..0000000
--- a/home-manager/modules/eza.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-# A modern replacement for 'ls'.
-{ ... }:
-{
- programs.eza = {
- enable = true;
- enableZshIntegration = true;
- git = true;
- icons = "auto";
- extraOptions = [
- "--group-directories-first"
- "--no-quotes"
- "--git-ignore"
- "--icons=always"
- ];
- };
-}
diff --git a/home-manager/modules/fuzzel.nix b/home-manager/modules/fuzzel.nix
deleted file mode 100644
index 89e6f9e..0000000
--- a/home-manager/modules/fuzzel.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-# Application launcher for wlroots based Wayland compositors, similar to rofi's `drun` mode.
-{...}: {
- programs.fuzzel = {
- enable = true;
- };
-}
diff --git a/home-manager/modules/fzf.nix b/home-manager/modules/fzf.nix
deleted file mode 100644
index 41568ba..0000000
--- a/home-manager/modules/fzf.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-# Fzf is a general-purpose command-line fuzzy finder.
-{
- config,
- lib,
- ...
-}:
-let
- accent = "#" + config.lib.stylix.colors.base0D;
- foreground = "#" + config.lib.stylix.colors.base05;
- muted = "#" + config.lib.stylix.colors.base03;
-in
-{
- programs.fzf = {
- enable = true;
- enableZshIntegration = true;
- colors = lib.mkForce {
- "fg+" = accent;
- "bg+" = "-1";
- "fg" = foreground;
- "bg" = "-1";
- "prompt" = muted;
- "pointer" = accent;
- };
- defaultOptions = [
- "--margin=1"
- "--layout=reverse"
- "--border=none"
- "--info='hidden'"
- "--header=''"
- "--prompt='/ '"
- "-i"
- "--no-bold"
- ];
- };
-}
diff --git a/home-manager/modules/gammastep.nix b/home-manager/modules/gammastep.nix
deleted file mode 100644
index 1256e14..0000000
--- a/home-manager/modules/gammastep.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- services.gammastep = {
- enable = true;
- latitude = 45.4;
- longitude = -75.7;
- temperature = {
- day = 6500;
- night = 3500;
- };
- tray = true;
- };
-}
diff --git a/home-manager/modules/gh-dash.nix b/home-manager/modules/gh-dash.nix
deleted file mode 100644
index 79d55b2..0000000
--- a/home-manager/modules/gh-dash.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{...}: {
- programs.gh-dash = {
- enable = true;
- settings = {
- defaults = {
- prsLimit = 20;
- issuesLimit = 20;
- layout = {
- prs = {
- repo = {
- grow = true;
- width = 10;
- hidden = false;
- };
- };
- };
- };
- prSections = [
- {
- title = "My Pull Requests";
- filters = "is:open author:@me";
- }
- {
- title = "Needs My Review";
- filters = "is:open review-requested:@me";
- }
- {
- title = "Nixvim";
- filters = "is:open repo:nix-community/nixvim";
- }
- ];
- issuesSections = [
- {
- title = "Created";
- filters = "is:open author:@me";
- }
- {
- title = "Assigned";
- filters = "is:open assignee:@me";
- }
- {
- title = "Subscribed";
- filters = "is:open -author:@me";
- }
- ];
- repoPaths = {
- "NixOS/nixpkgs" = "~/repos/nix/nixpkgs";
- "nix-community/*" = "~/repos/nix-community/*";
- };
- keybindings = {
- prs = [
- {
- key = "C";
- command = "tmux split-window -h -c {{.RepoPath}} 'gh pr checkout {{.PrNumber}} && nvim -c \":Octo pr edit {{.PrNumber}}\"'";
- }
- ];
- };
- pager = {
- diff = "delta";
- };
- };
- };
-}
diff --git a/home-manager/modules/ghostty.nix b/home-manager/modules/ghostty.nix
deleted file mode 100644
index e9ba672..0000000
--- a/home-manager/modules/ghostty.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- pkgs,
- lib,
- ...
-}:
-{
- programs.ghostty = {
- enable = true;
- enableZshIntegration = true;
- settings = {
- auto-update = "off";
- # background-opacity = 0.8;
- background-opacity = 1;
- confirm-close-surface = false;
- font-family = lib.mkForce "Comic Code Ligatures";
- font-size = 16;
- gtk-titlebar = false;
- # theme = "Teerb";
- };
-
- };
- home.packages = with pkgs; [
- ueberzugpp
- ];
-}
diff --git a/home-manager/modules/git.nix b/home-manager/modules/git.nix
deleted file mode 100644
index 6f7b7ad..0000000
--- a/home-manager/modules/git.nix
+++ /dev/null
@@ -1,154 +0,0 @@
-{
- config,
- lib,
- pkgs,
- user,
- ...
-}:
-{
- programs.git = {
- enable = true;
- userName = "gwg313";
- userEmail = "gwg313@pm.me";
- extraConfig = {
- credential = {
- helper = "!pass-git-helper $@";
- };
- user = {
- signingkey = "60FF63B4826B7400";
- };
- commit = {
- gpgsign = true;
- verbose = "true";
- };
- diff = {
- algorithm = "histogram";
- colorMoved = "plain";
- mnemonicPrefix = "true";
- renames = "true";
- compactionHeuristic = "true";
- tool = "nvimdiff";
- };
- "difftool \"nvimdiff\"" = {
- cmd = "nvim -d \"$LOCAL\" \"$REMOTE\" -c \"wincmd w\" -c \"wincmd L\"";
- };
- merge = {
- tool = "nvimdiff4";
- prompt = "false";
- conflictstyle = "zdiff3";
- };
- "mergetool \"nvimdiff4\"" = {
- cmd = "nvim -d $LOCAL $BASE $REMOTE $MERGED -c '$wincmd w' -c 'wincmd J'";
- };
- mergetool = {
- keepBackup = false;
- };
- init = {
- defaultBranch = "main";
- };
- core = {
- pager = "delta";
- editor = "nvim";
- };
- delta = {
- features = "line-numbers decorations";
- navigate = "true";
- whitespace-error-style = "22 reverse";
- };
- interactive = {
- diffFilter = "delta --color-only";
- };
- push = {
- default = "simple";
- autoSetupRemote = "true";
- followTags = "true";
- };
- pull = {
- rebase = "true";
- };
- rebase = {
- autoSquash = "true";
- autoStash = "true";
- updateRefs = "true";
- };
- fetch = {
- prune = "true";
- pruneTags = "true";
- all = "true";
- };
- tag = {
- sort = "version:refname";
- };
- branch = {
- sort = "-committerdate";
- };
-
- help = {
- autocorrect = "true";
- };
- rerere = {
- enabled = "true";
- autoupdate = "true";
- };
-
- color.ui = "1";
- };
- ignores = [
- "__pycache__"
- ".direnv"
- "npm-debug.log"
- ".cache/"
- ".DS_Store"
- ".idea/"
- "*.swp"
- "*.elc"
- "auto-save-list"
- ".direnv/"
- "node_modules"
- "result"
- "result-*"
- ];
- };
-
- programs.zsh = {
- shellAliases = {
- trackme = "git branch --set-upstream-to=origin/$(git symbolic-ref --short HEAD)";
- rebasemain = "git pull origin main --rebase";
- hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
- llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
- g = "lazygit";
- ga = "git add";
- gc = "git commit";
- gcu = "git add . && git commit -m 'Update'";
- gp = "git push";
- gpl = "git pull";
- gs = "git status";
- gd = "git diff";
- gco = "git checkout";
- gcb = "git checkout -b";
- gbr = "git branch";
- grs = "git reset HEAD~1";
- grh = "git reset --hard HEAD~1";
-
- gaa = "git add .";
- gcm = "git commit -m";
- };
- };
-
- home.packages = with pkgs; [
- cocogitto
- delta
- lazygit
- gh
- pre-commit
- graphite-cli
- tig
- pass-git-helper
- ];
-
- xdg.configFile."pass-git-helper/git-pass-mapping.ini".text = ''
- [git.gwg313.xyz*]
- target=git/https/git.gwg313.xyz
- line_username=1
- '';
-}
diff --git a/home-manager/modules/hyprland/animations.nix b/home-manager/modules/hyprland/animations.nix
deleted file mode 100644
index ec0c90e..0000000
--- a/home-manager/modules/hyprland/animations.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ config, ... }:
-let
- animationSpeed = config.theme.animation-speed;
-
- animationDuration =
- if animationSpeed == "slow" then
- "4"
- else if animationSpeed == "medium" then
- "2.5"
- else
- "1.5";
- borderDuration =
- if animationSpeed == "slow" then
- "10"
- else if animationSpeed == "medium" then
- "6"
- else
- "3";
-in
-{
- wayland.windowManager.hyprland.settings = {
- animations = {
- enabled = true;
- bezier = [
- "linear, 0, 0, 1, 1"
- "md3_standard, 0.2, 0, 0, 1"
- "md3_decel, 0.05, 0.7, 0.1, 1"
- "md3_accel, 0.3, 0, 0.8, 0.15"
- "overshot, 0.05, 0.9, 0.1, 1.1"
- "crazyshot, 0.1, 1.5, 0.76, 0.92"
- "hyprnostretch, 0.05, 0.9, 0.1, 1.0"
- "menu_decel, 0.1, 1, 0, 1"
- "menu_accel, 0.38, 0.04, 1, 0.07"
- "easeInOutCirc, 0.85, 0, 0.15, 1"
- "easeOutCirc, 0, 0.55, 0.45, 1"
- "easeOutExpo, 0.16, 1, 0.3, 1"
- "softAcDecel, 0.26, 0.26, 0.15, 1"
- "md2, 0.4, 0, 0.2, 1"
- ];
-
- animation = [
- "windows, 1, ${animationDuration}, md3_decel, popin 60%"
- "windowsIn, 1, ${animationDuration}, md3_decel, popin 60%"
- "windowsOut, 1, ${animationDuration}, md3_accel, popin 60%"
- "border, 1, ${borderDuration}, default"
- "fade, 1, ${animationDuration}, md3_decel"
- "layersIn, 1, ${animationDuration}, menu_decel, slide"
- "layersOut, 1, ${animationDuration}, menu_accel"
- "fadeLayersIn, 1, ${animationDuration}, menu_decel"
- "fadeLayersOut, 1, ${animationDuration}, menu_accel"
- "workspaces, 1, ${animationDuration}, menu_decel, slide"
- "specialWorkspace, 1, ${animationDuration}, md3_decel, slidevert"
- ];
- };
- };
-}
diff --git a/home-manager/modules/hyprland/bindings.nix b/home-manager/modules/hyprland/bindings.nix
deleted file mode 100644
index fa2f867..0000000
--- a/home-manager/modules/hyprland/bindings.nix
+++ /dev/null
@@ -1,70 +0,0 @@
-{ pkgs, ... }:
-{
- wayland.windowManager.hyprland.settings = {
- bindm = [
- # mouse movements
- "$mod, mouse:272, movewindow"
- "$mod_ALT, mouse:273, resizewindow"
- "$mod_ALT, mouse:272, resizewindow"
- ];
-
- "$mod" = "SUPER";
-
- bind =
- [
- # general binds
- ",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid
- # "$mod, RETURN, exec, ${pkgs.alacritty}/bin/alacritty"
- "$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty"
- "$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
- "$mod, Q, killactive"
- "SUPER_SHIFT, Q, exec, ${pkgs.wlogout}/bin/wlogout"
- "$mod, SPACE, exec, pkill fuzzel || ${pkgs.fuzzel}/bin/fuzzel" # pkill or allows for toggle
- "SUPER_SHIFT, SPACE, togglefloating"
- # "$mod, F, fullscreen"
- "$mod,F, fullscreen" # Toggle fullscreen
- "$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock"
- "$mod, B, exec, ${pkgs.grim}/bin/grim \"desktop-$(${pkgs.busybox}/bin/date +\"%Y%m%d%H%m\").png"
- "SUPER_SHIFT, B, exec, ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp -d)\" - | ${pkgs.wl-clipboard}/bin/wl-copy" # Screenshot selection directly to clipboard
-
- # move focus
- "$mod, left, movefocus, l"
- "$mod, right, movefocus, r"
- "$mod, up, movefocus, u"
- "$mod, down, movefocus, d"
- "$mod,right,workspace,+1"
- "$mod,left,workspace,-1"
-
- # Scroll through workspaces
- "$mod, mouse_down, workspace, e+1"
- "$mod, mouse_up, workspace, e-1"
- ]
- ++ (builtins.concatLists (
- builtins.genList (
- i:
- let
- ws = i + 1;
- in
- [
- "$mod,code:1${toString i}, workspace, ${toString ws}"
- "$mod SHIFT,code:1${toString i}, movetoworkspace, ${toString ws}"
- ]
- ) 9
- ));
-
- bindl = [
- ",XF86AudioMute, exec, sound-toggle" # Toggle Mute
- ",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" # Play/Pause Song
- ",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" # Next Song
- ",XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" # Previous Song
- ",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid
- ];
-
- bindle = [
- ",XF86AudioRaiseVolume, exec, sound-up" # Sound Up
- ",XF86AudioLowerVolume, exec, sound-down" # Sound Down
- ",XF86MonBrightnessUp, exec, brightness-up" # Brightness Up
- ",XF86MonBrightnessDown, exec, brightness-down" # Brightness Down
- ];
- };
-}
diff --git a/home-manager/modules/hyprland/default.nix b/home-manager/modules/hyprland/default.nix
deleted file mode 100644
index 26d34b7..0000000
--- a/home-manager/modules/hyprland/default.nix
+++ /dev/null
@@ -1,209 +0,0 @@
-# So best window tiling manager
-{
- pkgs,
- config,
- inputs,
- lib,
- ...
-}:
-let
- border-size = config.theme.border-size;
- gaps-in = config.theme.gaps-in;
- gaps-out = config.theme.gaps-out;
- active-opacity = config.theme.active-opacity;
- inactive-opacity = config.theme.inactive-opacity;
- rounding = config.theme.rounding;
- blur = config.theme.blur;
- keyboardLayout = config.var.keyboardLayout;
- background = "rgb(" + config.lib.stylix.colors.base00 + ")";
-in
-{
- imports = [
- ./animations.nix
- ./bindings.nix
- ./polkitagent.nix
- ./hyprspace.nix
- ./hyprpanel.nix
- ./hyprlock.nix
- ../gammastep.nix
- ];
-
- home.packages = with pkgs; [
- qt5.qtwayland
- qt6.qtwayland
- libsForQt5.qt5ct
- qt6ct
- hyprshot
- hyprpicker
- swappy
- imv
- wf-recorder
- wlr-randr
- wl-clipboard
- brightnessctl
- gnome-themes-extra
- libva
- dconf
- wayland-utils
- wayland-protocols
- glib
- direnv
- meson
- ];
-
- wayland.windowManager.hyprland = {
- enable = true;
- xwayland.enable = true;
- systemd = {
- enable = false;
- variables = [
- "--all"
- ]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal
- };
- package = null;
- portalPackage = null;
-
- settings = {
- "$mod" = "SUPER";
- "$shiftMod" = "SUPER_SHIFT";
-
- exec-once = [
- "dbus-update-activation-environment --systemd --all &"
- "systemctl --user enable --now hyprpaper.service &"
- "systemctl --user enable --now hypridle.service &"
- "systemctl --user enable --now nextcloud-client.service &"
- ];
-
- monitor = [
- "eDP-2,highres,0x0,1" # My internal laptop screen
- ",prefered,auto,1" # default
- ];
-
- env = [
- "XDG_CURRENT_DESKTOP,Hyprland"
- "MOZ_ENABLE_WAYLAND,1"
- "ANKI_WAYLAND,1"
- "DISABLE_QT5_COMPAT,0"
- "NIXOS_OZONE_WL,1"
- "XDG_SESSION_TYPE,wayland"
- "XDG_SESSION_DESKTOP,Hyprland"
- "QT_AUTO_SCREEN_SCALE_FACTOR,1"
- "QT_QPA_PLATFORM=wayland,xcb"
- "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
- "ELECTRON_OZONE_PLATFORM_HINT,auto"
- "__GL_GSYNC_ALLOWED,0"
- "__GL_VRR_ALLOWED,0"
- "DISABLE_QT5_COMPAT,0"
- "DIRENV_LOG_FORMAT,"
- "WLR_DRM_NO_ATOMIC,1"
- "WLR_BACKEND,vulkan"
- "WLR_RENDERER,vulkan"
- "WLR_NO_HARDWARE_CURSORS,1"
- "SDL_VIDEODRIVER,wayland"
- "CLUTTER_BACKEND,wayland"
- ];
-
- cursor = {
- no_hardware_cursors = true;
- default_monitor = "eDP-2";
- };
-
- general = {
- resize_on_border = true;
- gaps_in = gaps-in;
- gaps_out = gaps-out;
- border_size = border-size;
- layout = "master";
- "col.inactive_border" = lib.mkForce background;
- };
-
- decoration = {
- active_opacity = active-opacity;
- inactive_opacity = inactive-opacity;
- rounding = rounding;
- shadow = {
- enabled = true;
- range = 20;
- render_power = 3;
- };
- blur = {
- enabled = if blur then "true" else "false";
- size = 18;
- };
- };
-
- master = {
- new_status = true;
- allow_small_split = true;
- mfact = 0.5;
- };
-
- gestures = {
- workspace_swipe = true;
- };
-
- misc = {
- vfr = true;
- disable_hyprland_logo = true;
- disable_splash_rendering = true;
- disable_autoreload = true;
- focus_on_activate = true;
- new_window_takes_over_fullscreen = 2;
- };
-
- windowrulev2 = [
- "float, tag:modal"
- "pin, tag:modal"
- "center, tag:modal"
- # telegram media viewer
- "float, title:^(Media viewer)$"
-
- # Bitwarden extension
- "float, title:^(.*Bitwarden Password Manager.*)$"
-
- # gnome calculator
- "float, class:^(org.gnome.Calculator)$"
- "size 360 490, class:^(org.gnome.Calculator)$"
-
- # make Firefox/Zen PiP window floating and sticky
- "float, title:^(Picture-in-Picture)$"
- "pin, title:^(Picture-in-Picture)$"
-
- # idle inhibit while watching videos
- "idleinhibit focus, class:^(mpv|.+exe|celluloid)$"
- "idleinhibit focus, class:^(zen)$, title:^(.*YouTube.*)$"
- "idleinhibit fullscreen, class:^(zen)$"
-
- "dimaround, class:^(gcr-prompter)$"
- "dimaround, class:^(xdg-desktop-portal-gtk)$"
- "dimaround, class:^(polkit-gnome-authentication-agent-1)$"
- "dimaround, class:^(zen)$, title:^(File Upload)$"
-
- # fix xwayland apps
- "rounding 0, xwayland:1"
- "center, class:^(.*jetbrains.*)$, title:^(Confirm Exit|Open Project|win424|win201|splash)$"
- "size 640 400, class:^(.*jetbrains.*)$, title:^(splash)$"
- ];
-
- layerrule = [
- "noanim, launcher"
- "noanim, ^ags-.*"
- ];
-
- input = {
- # kb_layout = keyboardLayout;
-
- follow_mouse = 1;
- sensitivity = 0.5;
- repeat_delay = 300;
- repeat_rate = 50;
- numlock_by_default = true;
-
- touchpad = {
- natural_scroll = true;
- clickfinger_behavior = true;
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/hyprland/hypridle.nix b/home-manager/modules/hyprland/hypridle.nix
deleted file mode 100644
index 7023b31..0000000
--- a/home-manager/modules/hyprland/hypridle.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-# Hypridle is a daemon that listens for user activity and runs commands when the user is idle.
-{ pkgs, ... }:
-{
- services.hypridle = {
- enable = true;
- settings = {
- general = {
- ignore_dbus_inhibit = false;
- lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
- before_sleep_cmd = "loginctl lock-session";
- after_sleep_cmd = "hyprctl dispatch dpms on";
- };
-
- listener = [
- {
- timeout = 600;
- on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
- }
-
- # {
- # timeout = 660;
- # on-timeout = "systemctl suspend";
- # }
- ];
- };
- };
-}
diff --git a/home-manager/modules/hyprland/hyprlock.nix b/home-manager/modules/hyprland/hyprlock.nix
deleted file mode 100644
index 74f8b1c..0000000
--- a/home-manager/modules/hyprland/hyprlock.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- config,
- lib,
- ...
-}:
-let
- foreground = "rgba(${config.theme.textColorOnWallpaper}ee)";
- font = config.stylix.fonts.serif.name;
-in
-{
- programs.hyprlock = {
- enable = true;
- settings = {
- general = {
- grace = 5;
- no_fade_in = false;
- disable_loading_bar = false;
- };
-
- # BACKGROUND
- background = {
- monitor = "";
- blur_passes = 0;
- contrast = 0.8916;
- brightness = 0.7172;
- vibrancy = 0.1696;
- vibrancy_darkness = 0.0;
- };
-
- label = [
- {
- # Day-Month-Date
- monitor = "";
- text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"'';
- color = foreground;
- font_size = 28;
- font_family = font + " Bold";
- position = "0, 490";
- halign = "center";
- valign = "center";
- }
- # Time
- {
- monitor = "";
- text = ''cmd[update:1000] echo "$(date +"%I:%M")"'';
- color = foreground;
- font_size = 160;
- font_family = "steelfish outline regular";
- position = "0, 370";
- halign = "center";
- valign = "center";
- }
- # USER
- {
- monitor = "";
- text = " $USER";
- color = foreground;
- outline_thickness = 2;
- dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true;
- font_size = 18;
- font_family = font + " Bold";
- position = "0, -180";
- halign = "center";
- valign = "center";
- }
- ];
-
- # INPUT FIELD
- input-field = lib.mkForce {
- monitor = "";
- size = "300, 60";
- outline_thickness = 2;
- dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true;
- outer_color = "rgba(25, 25, 25, 0)";
- inner_color = "rgba(25, 25, 25, 0.1)";
- font_color = foreground;
- fade_on_empty = false;
- font_family = font + " Bold";
- placeholder_text = "🔒 Enter Password";
- hide_input = false;
- position = "0, -250";
- halign = "center";
- valign = "center";
- };
- };
- };
-}
diff --git a/home-manager/modules/hyprland/hyprpanel.nix b/home-manager/modules/hyprland/hyprpanel.nix
deleted file mode 100644
index 1cd1bb1..0000000
--- a/home-manager/modules/hyprland/hyprpanel.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-# Hyprpanel is the bar on top of the screen
-# Display information like workspaces, battery, wifi, ...
-{ config, ... }:
-let
- transparentButtons = config.theme.bar.transparentButtons;
-
- accent = "#${config.lib.stylix.colors.base0D}";
- accent-alt = "#${config.lib.stylix.colors.base03}";
- background = "#${config.lib.stylix.colors.base00}";
- background-alt = "#${config.lib.stylix.colors.base01}";
- foreground = "#${config.lib.stylix.colors.base05}";
- foregroundOnWallpaper = "#${config.theme.textColorOnWallpaper}";
- font = "${config.stylix.fonts.serif.name}";
- fontSizeForHyprpanel = "${toString config.stylix.fonts.sizes.desktop}px";
-
- rounding = config.theme.rounding;
- border-size = config.theme.border-size;
-
- gaps-out = config.theme.gaps-out;
- gaps-in = config.theme.gaps-in;
-
- floating = config.theme.bar.floating;
- transparent = config.theme.bar.transparent;
- position = config.theme.bar.position; # "top" ou "bottom"
-
- notificationOpacity = 90;
-
- location = config.var.location;
-in
-{
- wayland.windowManager.hyprland.settings.exec-once = [ "hyprpanel" ];
-
- programs.hyprpanel = {
- enable = true;
-
- settings = {
- layout = {
- bar.layouts = {
- "*" = {
- "left" = [
- "dashboard"
- "workspaces"
- "windowtitle"
- ];
- "middle" = [
- "media"
- "cava"
- ];
- "right" = [
- "systray"
- "volume"
- "bluetooth"
- "battery"
- "network"
- "clock"
- "notifications"
- ];
- };
- };
- };
-
- theme.font.name = font;
- theme.font.size = fontSizeForHyprpanel;
-
- theme.bar.outer_spacing = if floating && transparent then "0px" else "8px";
- theme.bar.buttons.y_margins = if floating && transparent then "0px" else "8px";
- theme.bar.buttons.spacing = "0.3em";
- theme.bar.buttons.radius =
- (if transparent then toString rounding else toString (rounding - 8)) + "px";
- theme.bar.floating = floating;
- theme.bar.buttons.padding_x = "0.8rem";
- theme.bar.buttons.padding_y = "0.4rem";
-
- theme.bar.margin_top = (if position == "top" then toString (gaps-in * 2) else "0") + "px";
- theme.bar.margin_bottom = (if position == "top" then "0" else toString (gaps-in * 2)) + "px";
- theme.bar.margin_sides = toString gaps-out + "px";
- theme.bar.border_radius = toString rounding + "px";
- theme.bar.transparent = transparent;
- theme.bar.location = position;
- theme.bar.dropdownGap = "4.5em";
- theme.bar.menus.shadow = if transparent then "0 0 0 0" else "0px 0px 3px 1px #16161e";
- theme.bar.buttons.style = "default";
- theme.bar.buttons.monochrome = true;
- theme.bar.menus.monochrome = true;
- theme.bar.menus.card_radius = toString rounding + "px";
- theme.bar.menus.border.size = toString border-size + "px";
- theme.bar.menus.border.radius = toString rounding + "px";
- theme.bar.menus.menu.media.card.tint = 90;
-
- bar.launcher.icon = "";
- bar.workspaces.show_numbered = false;
- bar.workspaces.workspaces = 5;
- bar.workspaces.numbered_active_indicator = "color";
- bar.workspaces.monitorSpecific = false;
- bar.workspaces.applicationIconEmptyWorkspace = "";
- bar.workspaces.showApplicationIcons = true;
- bar.workspaces.showWsIcons = true;
-
- bar.windowtitle.label = true;
- bar.volume.label = false;
- bar.network.truncation_size = 12;
- bar.bluetooth.label = false;
- bar.clock.format = "%a %b %d %I:%M %p";
- bar.notifications.show_total = true;
- bar.media.show_active_only = true;
-
- bar.customModules.updates.pollingInterval = 1440000;
- bar.customModules.cava.showIcon = false;
- bar.customModules.cava.stereo = true;
- bar.customModules.cava.showActiveOnly = true;
-
- notifications.position = "top right";
- notifications.showActionsOnHover = true;
- theme.notification.opacity = notificationOpacity;
- theme.notification.enableShadow = true;
- theme.notification.border_radius = toString rounding + "px";
-
- theme.osd.enable = true;
- theme.osd.orientation = "vertical";
- theme.osd.location = "left";
- theme.osd.radius = toString rounding + "px";
- theme.osd.margins = "0px 0px 0px 10px";
- theme.osd.muted_zero = true;
-
- menus.clock.weather.location = location;
- menus.clock.weather.unit = "metric";
- menus.dashboard.powermenu.confirmation = false;
- menus.dashboard.powermenu.avatar.image = "~/.face.icon";
-
- menus.dashboard.shortcuts.left.shortcut1.icon = "";
- menus.dashboard.shortcuts.left.shortcut1.command = "zen";
- menus.dashboard.shortcuts.left.shortcut1.tooltip = "Zen";
- menus.dashboard.shortcuts.left.shortcut2.icon = "";
- menus.dashboard.shortcuts.left.shortcut2.command = "caffeine";
- menus.dashboard.shortcuts.left.shortcut2.tooltip = "Caffeine";
- menus.dashboard.shortcuts.left.shortcut3.icon = "";
- menus.dashboard.shortcuts.left.shortcut3.command = "night-shift";
- menus.dashboard.shortcuts.left.shortcut3.tooltip = "Night-shift";
- menus.dashboard.shortcuts.left.shortcut4.icon = "";
- menus.dashboard.shortcuts.left.shortcut4.command = "menu";
- menus.dashboard.shortcuts.left.shortcut4.tooltip = "Search Apps";
-
- menus.dashboard.shortcuts.right.shortcut1.icon = "";
- menus.dashboard.shortcuts.right.shortcut1.command = "hyprpicker -a";
- menus.dashboard.shortcuts.right.shortcut1.tooltip = "Color Picker";
- menus.dashboard.shortcuts.right.shortcut3.icon = "";
- menus.dashboard.shortcuts.right.shortcut3.command = "screenshot region swappy";
- menus.dashboard.shortcuts.right.shortcut3.tooltip = "Screenshot";
-
- menus.power.lowBatteryNotification = true;
-
- wallpaper.enable = false;
-
- theme.bar.buttons.workspaces.hover = accent-alt;
- theme.bar.buttons.workspaces.active = accent;
- theme.bar.buttons.workspaces.available = accent-alt;
- theme.bar.buttons.workspaces.occupied = accent-alt;
-
- theme.bar.menus.background = background;
- theme.bar.menus.cards = background-alt;
- theme.bar.menus.label = foreground;
- theme.bar.menus.text = foreground;
- theme.bar.menus.border.color = accent;
- theme.bar.menus.popover.text = foreground;
- theme.bar.menus.popover.background = background-alt;
- theme.bar.menus.listitems.active = accent;
- theme.bar.menus.icons.active = accent;
- theme.bar.menus.switch.enabled = accent;
- theme.bar.menus.check_radio_button.active = accent;
- theme.bar.menus.buttons.default = accent;
- theme.bar.menus.buttons.active = accent;
- theme.bar.menus.iconbuttons.active = accent;
- theme.bar.menus.progressbar.foreground = accent;
- theme.bar.menus.slider.primary = accent;
- theme.bar.menus.tooltip.background = background-alt;
- theme.bar.menus.tooltip.text = foreground;
- theme.bar.menus.dropdownmenu.background = background-alt;
- theme.bar.menus.dropdownmenu.text = foreground;
-
- theme.bar.background = background + (if transparentButtons && transparent then "00" else "");
- theme.bar.buttons.text =
- if transparent && transparentButtons then foregroundOnWallpaper else foreground;
- theme.bar.buttons.background =
- (if transparent then background else background-alt) + (if transparentButtons then "00" else "");
- theme.bar.buttons.icon = accent;
-
- theme.bar.buttons.notifications.background = background-alt;
- theme.bar.buttons.hover = background;
- theme.bar.buttons.notifications.hover = background;
- theme.bar.buttons.notifications.total = accent;
- theme.bar.buttons.notifications.icon = accent;
-
- theme.osd.bar_color = accent;
- theme.osd.bar_overflow_color = accent-alt;
- theme.osd.icon = background;
- theme.osd.icon_container = accent;
- theme.osd.label = accent;
- theme.osd.bar_container = background-alt;
-
- theme.bar.menus.menu.media.background.color = background-alt;
- theme.bar.menus.menu.media.card.color = background-alt;
-
- theme.notification.background = background-alt;
- theme.notification.actions.background = accent;
- theme.notification.actions.text = foreground;
- theme.notification.label = accent;
- theme.notification.border = background-alt;
- theme.notification.text = foreground;
- theme.notification.labelicon = accent;
- theme.notification.close_button.background = background-alt;
- theme.notification.close_button.label = "#f38ba8";
- };
- };
-}
diff --git a/home-manager/modules/hyprland/hyprspace.nix b/home-manager/modules/hyprland/hyprspace.nix
deleted file mode 100644
index 2e0f98a..0000000
--- a/home-manager/modules/hyprland/hyprspace.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ inputs, pkgs, ... }:
-{
- wayland.windowManager.hyprland = {
- plugins = [ inputs.hyprspace.packages.${pkgs.system}.Hyprspace ];
- settings = {
- plugin = {
- overview = {
- centerAligned = true;
- hideTopLayers = true;
- hideOverlayLayers = true;
- showNewWorkspace = true;
- exitOnClick = true;
- exitOnSwitch = true;
- drawActiveWorkspace = true;
- autoDrag = false;
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/hyprland/polkitagent.nix b/home-manager/modules/hyprland/polkitagent.nix
deleted file mode 100644
index ac5d1ca..0000000
--- a/home-manager/modules/hyprland/polkitagent.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ inputs, pkgs, ... }:
-{
- home.packages = [ inputs.hyprpolkitagent.packages."${pkgs.system}".hyprpolkitagent ];
-
- wayland.windowManager.hyprland.settings.exec-once = [ "systemctl --user start hyprpolkitagent" ];
-}
diff --git a/home-manager/modules/k9s.nix b/home-manager/modules/k9s.nix
deleted file mode 100644
index 85427ac..0000000
--- a/home-manager/modules/k9s.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-# A terminal-based Kubernetes CLI.
-{...}: {
- programs.k9s = {
- enable = true;
- };
-}
diff --git a/home-manager/modules/kitty.nix b/home-manager/modules/kitty.nix
deleted file mode 100644
index b88e3e6..0000000
--- a/home-manager/modules/kitty.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-# A fast, GPU-accelerated terminal emulator.
-{
- pkgs,
- lib,
- ...
-}:
-{
- programs.kitty = {
- enable = true;
- settings = {
- scrollback_lines = 10000;
- initial_window_width = 1200;
- initial_window_height = 600;
- update_check_interval = 0;
- enable_audio_bell = false;
- confirm_os_window_close = "0";
- remember_window_size = "no";
- disable_ligatures = "never";
- url_style = "curly";
- copy_on_select = "clipboard";
- cursor_shape = "Underline";
- cursor_underline_thickness = 3;
- cursor_trail = 3;
- cursor_trail_decay = "0.1 0.4";
- window_padding_width = 10;
- open_url_with = "default";
- };
- font = {
- # name = lib.mkForce "Comic Code";
- size = lib.mkForce 16;
- };
- shellIntegration.enableZshIntegration = true;
- extraConfig = ''
- font_family family="Comic Code Ligatures"
- bold_font auto
- italic_font auto
- bold_italic_font auto
- symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d7,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+ed00-U+efc1,U+f000-U+f2ff,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f533,U+f0001-U+f1af0 Symbols Nerd Font Mono
- '';
- environment = {
- "TERM" = "xterm-256color";
- };
- };
- home.packages = with pkgs; [
- ueberzugpp
- ];
-}
diff --git a/home-manager/modules/lazygit.nix b/home-manager/modules/lazygit.nix
deleted file mode 100644
index d0683f6..0000000
--- a/home-manager/modules/lazygit.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ config, lib, ... }:
-let
- accent = "#${config.lib.stylix.colors.base0D}";
- muted = "#${config.lib.stylix.colors.base03}";
-in
-{
- programs.lazygit = {
- enable = true;
- settings = lib.mkForce {
-
- disableStartupPopups = true;
- notARepository = "skip";
- promptToReturnFromSubprocess = false;
- update.method = "never";
-
- git = {
- commit.signOff = true;
- overrideGpg = true;
- };
- gui = {
- theme = {
- activeBorderColor = [
- accent
- "bold"
- ];
- inactiveBorderColor = [ muted ];
- };
- showListFooter = false;
- showRandomTip = false;
- showCommandLog = false;
- showBottomLine = false;
- nerdFontsVersion = "3";
- };
- };
- };
-}
diff --git a/home-manager/modules/linux-gui.nix b/home-manager/modules/linux-gui.nix
deleted file mode 100644
index d3557dc..0000000
--- a/home-manager/modules/linux-gui.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ pkgs, ... }:
-{
- imports = [
- ./zathura.nix
- ];
-
- # programs.discord = {
- # enable = true;
- # wrapDiscord = true;
- # };
-
- home.packages = with pkgs; [
- element-desktop # A feature-rich client for Matrix.org
- gimp # GNU Image Manipulation Program, a powerful and open-source raster graphics editor for tasks like photo editing and graphic design.
- gparted # Gnome Partition Editor, a graphical partition manager for creating, resizing, and managing disk partitions.
- # kicad # An open-source electronic design automation (EDA) suite for creating schematics, PCB layouts, and 3D models.
- kodi # An open-source media center, providing a versatile platform for streaming and organizing media content.
- pavucontrol # PulseAudio Volume Control, a feature-rich GUI for controlling and configuring the PulseAudio sound system.
- #sublime-music # A modern and feature-rich music player with a clean user interface and advanced playback options.
- thunderbird # Mozilla Thunderbird, a powerful and customizable email client with integrated calendaring and chat features.
- wireshark # Open-source network protocol analyzer for real-time packet inspection and analysis.
- inkscape
- nicotine-plus
- anki
- # obsidian
- chromium
- vlc
- zotero
- feishin
- picard
- ];
-}
diff --git a/home-manager/modules/mime.nix b/home-manager/modules/mime.nix
deleted file mode 100644
index d650516..0000000
--- a/home-manager/modules/mime.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- pkgs,
- lib,
- ...
-}:
-with lib;
-let
- defaultApps = {
- browser = [ "zen-beta.desktop" ];
- text = [ "org.gnome.TextEditor.desktop" ];
- image = [ "imv-dir.desktop" ];
- audio = [ "mpv.desktop" ];
- video = [ "mpv.desktop" ];
- directory = [ "thunar.desktop" ];
- office = [ "libreoffice.desktop" ];
- pdf = [ "zathura.desktop" ];
- terminal = [ "kitty.desktop" ];
- discord = [ "discord.desktop" ];
- archive = [ "xarchiver.desktop" ];
- };
-
- mimeMap = {
- text = [ "text/plain" ];
- image = [
- "image/bmp"
- "image/gif"
- "image/jpeg"
- "image/jpg"
- "image/png"
- "image/svg+xml"
- "image/tiff"
- "image/vnd.microsoft.icon"
- "image/webp"
- ];
- audio = [
- "audio/aac"
- "audio/mpeg"
- "audio/ogg"
- "audio/opus"
- "audio/wav"
- "audio/webm"
- "audio/x-matroska"
- ];
- video = [
- "video/mp2t"
- "video/mp4"
- "video/mpeg"
- "video/ogg"
- "video/webm"
- "video/x-flv"
- "video/x-matroska"
- "video/x-msvideo"
- ];
- directory = [ "inode/directory" ];
- browser = [
- "text/html"
- "x-scheme-handler/about"
- "x-scheme-handler/http"
- "x-scheme-handler/https"
- "x-scheme-handler/unknown"
- ];
- office = [
- "application/vnd.oasis.opendocument.text"
- "application/vnd.oasis.opendocument.spreadsheet"
- "application/vnd.oasis.opendocument.presentation"
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
- "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
- "application/vnd.openxmlformats-officedocument.presentationml.presentation"
- "application/msword"
- "application/vnd.ms-excel"
- "application/vnd.ms-powerpoint"
- "application/rtf"
- ];
- pdf = [ "application/pdf" ];
- terminal = [ "terminal" ];
- archive = [
- "application/zip"
- "application/rar"
- "application/7z"
- "application/*tar"
- ];
- discord = [ "x-scheme-handler/discord" ];
- };
-
- associations =
- with lists;
- listToAttrs (
- flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap)
- );
-in
-{
- xdg = {
- configFile."mimeapps.list".force = true;
- mimeApps = {
- enable = true;
- associations.added = associations;
- defaultApplications = associations;
- };
- };
-}
diff --git a/home-manager/modules/neovim/autocommands.nix b/home-manager/modules/neovim/autocommands.nix
deleted file mode 100644
index 4feba30..0000000
--- a/home-manager/modules/neovim/autocommands.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{...}: {
- programs.nixvim = {
- autoCmd = [
- # Remove trailing whitespace on save
- {
- event = "BufWrite";
- command = "%s/\\s\\+$//e";
- }
-
- {
- event = "FileType";
- pattern = [
- "tex"
- "latex"
- "markdown"
- ];
- command = "setlocal spell spelllang=en_us";
- }
-
- {
- event = "FileType";
- pattern = [
- "tex"
- "latex"
- "markdown"
- ];
- command = "setlocal wrap";
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/default.nix b/home-manager/modules/neovim/default.nix
deleted file mode 100644
index ffeb224..0000000
--- a/home-manager/modules/neovim/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-# A cat clone with syntax highlighting and Git integration.
-{inputs, ...}: {
- imports = [
- inputs.nixvim.homeManagerModules.nixvim
- ./options.nix
- ./plugins
- ./autocommands.nix
- ./keymappings.nix
- ];
- programs.nixvim = {
- enable = true;
- defaultEditor = true;
- viAlias = true;
- vimAlias = true;
- luaLoader.enable = true;
-
- performance = {
- combinePlugins = {
- enable = true;
- standalonePlugins = [
- "hmts.nvim"
- "nvim-treesitter"
- ];
- };
- byteCompileLua.enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/keymappings.nix b/home-manager/modules/neovim/keymappings.nix
deleted file mode 100644
index 61fbc3f..0000000
--- a/home-manager/modules/neovim/keymappings.nix
+++ /dev/null
@@ -1,387 +0,0 @@
-{
- config,
- lib,
- ...
-}: {
- programs.nixvim = {
- extraConfigLuaPre = ''
- function bool2str(bool) return bool and "on" or "off" end
- '';
-
- keymaps = let
- helpers = config.lib.nixvim;
- normal =
- lib.mapAttrsToList
- (
- key: {action, ...} @ attrs: {
- mode = "n";
- inherit action key;
- options = attrs.options or {};
- }
- )
- {
- "" = {
- action = "";
- };
-
- # Esc to clear search results
- "" = {
- action = "noh";
- };
-
- # Backspace delete in normal
- "" = {
- action = "x";
- };
-
- # fix Y behaviour
- "Y" = {
- action = "y$";
- };
-
- # back and fourth between the two most recent files
- "" = {
- action = "b#";
- };
-
- # navigate to left/right window
- "[" = {
- action = "h";
- options = {
- desc = "Left window";
- };
- };
- "]" = {
- action = "l";
- options = {
- desc = "Right window";
- };
- };
- "." = {
- action = "j";
- options = {
- desc = "Up window";
- };
- };
- "," = {
- action = "k";
- options = {
- desc = "Down window";
- };
- };
-
- # navigate quickfix list
- "" = {
- action = "cnext";
- };
- "" = {
- action = "cprev";
- };
-
- # resize with arrows
- "" = {
- action = "resize -2";
- };
- "" = {
- action = "resize +2";
- };
- "" = {
- action = "vertical resize +2";
- };
- "" = {
- action = "vertical resize -2";
- };
-
- # move current line up/down
- # M = Alt key
- "" = {
- action = "move-2";
- };
- "" = {
- action = "move+";
- };
-
- "w" = {
- action = "w"; # Action to perform (save the file in this case)
- options = {
- desc = "Save";
- };
- };
-
- "j" = {
- action = "v:count == 0 ? 'gj' : 'j'";
- options = {
- desc = "Move cursor down";
- expr = true;
- };
- };
- "k" = {
- action = "v:count == 0 ? 'gk' : 'k'";
- options = {
- desc = "Move cursor up";
- expr = true;
- };
- };
- "q" = {
- action = "confirm q";
- options = {
- desc = "Quit";
- };
- };
- "" = {
- action = "enew";
- options = {
- desc = "New file";
- };
- };
- "W" = {
- action = "w!";
- options = {
- desc = "Force write";
- };
- };
- "Q" = {
- action = "q!";
- options = {
- desc = "Force quit";
- };
- };
- "|" = {
- action = "vsplit";
- options = {
- desc = "Vertical split";
- };
- };
- "\\" = {
- action = "split";
- options = {
- desc = "Horizontal split";
- };
- };
-
- "bC" = {
- action = "%bd!";
- options = {
- desc = "Close all buffers";
- };
- };
- "b]" = {
- action = "bnext";
- options = {
- desc = "Next buffer";
- };
- };
- "" = {
- action = "bnext";
- options = {
- desc = "Next buffer (default)";
- };
- };
- "b[" = {
- action = "bprevious";
- options = {
- desc = "Previous buffer";
- };
- };
- "" = {
- action = "bprevious";
- options = {
- desc = "Previous buffer";
- };
- };
-
- "ud" = {
- action.__raw = ''
- function ()
- vim.b.disable_diagnostics = not vim.b.disable_diagnostics
- if vim.b.disable_diagnostics then
- vim.diagnostic.disable(0)
- else
- vim.diagnostic.enable(0)
- end
- vim.notify(string.format("Buffer Diagnostics %s", bool2str(not vim.b.disable_diagnostics), "info"))
- end'';
- options = {
- desc = "Buffer Diagnostics toggle";
- };
- };
-
- "uD" = {
- action.__raw = ''
- function ()
- vim.g.disable_diagnostics = not vim.g.disable_diagnostics
- if vim.g.disable_diagnostics then
- vim.diagnostic.disable()
- else
- vim.diagnostic.enable()
- end
- vim.notify(string.format("Global Diagnostics %s", bool2str(not vim.g.disable_diagnostics), "info"))
- end'';
- options = {
- desc = "Global Diagnostics toggle";
- };
- };
-
- "uf" = {
- action.__raw = ''
- function ()
- -- vim.g.disable_autoformat = not vim.g.disable_autoformat
- vim.cmd('FormatToggle!')
- vim.notify(string.format("Buffer Autoformatting %s", bool2str(not vim.b[0].disable_autoformat), "info"))
- end'';
- options = {
- desc = "Buffer Autoformatting toggle";
- };
- };
-
- "uF" = {
- action.__raw = ''
- function ()
- -- vim.g.disable_autoformat = not vim.g.disable_autoformat
- vim.cmd('FormatToggle')
- vim.notify(string.format("Global Autoformatting %s", bool2str(not vim.g.disable_autoformat), "info"))
- end'';
- options = {
- desc = "Global Autoformatting toggle";
- };
- };
-
- "uS" = {
- action.__raw = ''
- function ()
- if vim.g.spell_enabled then vim.cmd('setlocal nospell') end
- if not vim.g.spell_enabled then vim.cmd('setlocal spell') end
- vim.g.spell_enabled = not vim.g.spell_enabled
- vim.notify(string.format("Spell %s", bool2str(vim.g.spell_enabled), "info"))
- end'';
- options = {
- desc = "Spell toggle";
- };
- };
-
- "uw" = {
- action.__raw = ''
- function ()
- vim.wo.wrap = not vim.wo.wrap
- vim.notify(string.format("Wrap %s", bool2str(vim.wo.wrap), "info"))
- end'';
- options = {
- desc = "Word Wrap toggle";
- };
- };
-
- "uh" = {
- action.__raw = ''
- function ()
- local curr_foldcolumn = vim.wo.foldcolumn
- if curr_foldcolumn ~= "0" then vim.g.last_active_foldcolumn = curr_foldcolumn end
- vim.wo.foldcolumn = curr_foldcolumn == "0" and (vim.g.last_active_foldcolumn or "1") or "0"
- vim.notify(string.format("Fold Column %s", bool2str(vim.wo.foldcolumn), "info"))
- end'';
- options = {
- desc = "Fold Column toggle";
- };
- };
-
- "uc" = {
- action.__raw = ''
- function ()
- vim.g.cmp_enabled = not vim.g.cmp_enabled
- vim.notify(string.format("Completions %s", bool2str(vim.g.cmp_enabled), "info"))
- end'';
- options = {
- desc = "Completions toggle";
- };
- };
- };
- visual =
- lib.mapAttrsToList
- (
- key: {action, ...} @ attrs: {
- mode = "v";
- inherit action key;
- options = attrs.options or {};
- }
- )
- {
- # Better indenting
- "" = {
- action = "" = {
- action = ">gv";
- options = {
- desc = "Indent line";
- };
- };
- ">" = {
- action = ">gv";
- options = {
- desc = "Indent line";
- };
- };
-
- # Move selected line/block in visual mode
- "K" = {
- action = "m '<-2gv=gv";
- };
- "J" = {
- action = "m '>+1gv=gv";
- };
-
- # Backspace delete in visual
- "" = {
- action = "x";
- };
- };
- insert =
- lib.mapAttrsToList
- (
- key: {action, ...} @ attrs: {
- mode = "i";
- inherit action key;
- options = attrs.options or {};
- }
- )
- {
- # Move selected line/block in insert mode
- "" = {
- action = "gk";
- };
- "" = {
- action = "";
- };
- "" = {
- action = "";
- };
- "" = {
- action = "gj";
- };
- };
- in
- helpers.keymaps.mkKeymaps {options.silent = true;} (normal ++ visual ++ insert);
- plugins.which-key.settings.spec = [
- {
- __unkeyed = "w";
- icon = "";
- }
- {
- __unkeyed = "W";
- icon = "";
- }
- {
- __unkeyed = "/";
- icon = "";
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/options.nix b/home-manager/modules/neovim/options.nix
deleted file mode 100644
index b2ce59c..0000000
--- a/home-manager/modules/neovim/options.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- programs.nixvim = {
- globals = {
- mapleader = " ";
- # Disable useless providers
- loaded_ruby_provider = 0; # Ruby
- loaded_perl_provider = 0; # Perl
- loaded_python_provider = 0; # Python 2
- };
-
- colorscheme = "base16-atelier-sulphurpool-light";
-
- clipboard = {
- # Use system clipboard
- register = "unnamedplus";
-
- providers.wl-copy.enable = true;
- };
-
- opts = {
- updatetime = 100; # Faster completion
-
- # Line numbers
- relativenumber = true; # Relative line numbers
- number = true; # Display the absolute line number of the current line
- hidden = true; # Keep closed buffer open in the background
- mouse = "a"; # Enable mouse control
- mousemodel = "extend"; # Mouse right-click extends the current selection
- splitbelow = true; # A new window is put below the current one
- splitright = true; # A new window is put right of the current one
-
- swapfile = false; # Disable the swap file
- modeline = true; # Tags such as 'vim:ft=sh'
- modelines = 100; # Sets the type of modelines
- undofile = true; # Automatically save and restore undo history
- incsearch = true; # Incremental search: show match for partly typed search command
- inccommand = "split"; # Search and replace: preview changes in quickfix list
- ignorecase = true; # When the search query is lower-case, match both lower and upper-case
- # patterns
- smartcase = true; # Override the 'ignorecase' option if the search pattern contains upper
- # case characters
- scrolloff = 8; # Number of screen lines to show around the cursor
- # scrolloff = 999; # Number of screen lines to show around the cursor
- cursorline = false; # Highlight the screen line of the cursor
- cursorcolumn = false; # Highlight the screen column of the cursor
- signcolumn = "yes"; # Whether to show the signcolumn
- colorcolumn = ""; # Columns to highlight
- laststatus = 3; # When to use a status line for the last window
- fileencoding = "utf-8"; # File-content encoding for the current buffer
- termguicolors = true; # Enables 24-bit RGB color in the |TUI|
- spell = false; # Highlight spelling mistakes (local to window)
- wrap = false; # Prevent text from wrapping
-
- # Tab options
- tabstop = 4; # Number of spaces a in the text stands for (local to buffer)
- shiftwidth = 4; # Number of spaces used for each step of (auto)indent (local to buffer)
- expandtab = true; # Expand to spaces in Insert mode (local to buffer)
- autoindent = true; # Do clever autoindenting
-
- textwidth = 0; # Maximum width of text that is being inserted. A longer line will be
- # broken after white space to get this width.
-
- # Folding
- foldlevel = 99; # Folds with a level higher than this number will be closed
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/autopairs.nix b/home-manager/modules/neovim/plugins/autopairs.nix
deleted file mode 100644
index 0d364a5..0000000
--- a/home-manager/modules/neovim/plugins/autopairs.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.nvim-autopairs = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/base16.nix b/home-manager/modules/neovim/plugins/base16.nix
deleted file mode 100644
index b672b6b..0000000
--- a/home-manager/modules/neovim/plugins/base16.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- colorschemes.base16 = {
- enable = true;
- colorscheme = "atelier-sulphurpool-light";
- autoLoad = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/bufferline.nix b/home-manager/modules/neovim/plugins/bufferline.nix
deleted file mode 100644
index dae888c..0000000
--- a/home-manager/modules/neovim/plugins/bufferline.nix
+++ /dev/null
@@ -1,168 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.bufferline =
- let
- mouse = {
- right =
- # Lua
- "'vertical sbuffer %d'";
- close =
- # Lua
- ''
- function(bufnum)
- require("mini.bufremove").delete(bufnum)
- end
- '';
- };
- in
- {
- enable = true;
-
- settings = {
- options = {
- mode = "buffers";
- always_show_bufferline = true;
- buffer_close_icon = "";
- close_command.__raw = mouse.close;
- close_icon = "";
- diagnostics = "nvim_lsp";
- diagnostics_indicator =
- # Lua
- ''
- function(count, level, diagnostics_dict, context)
- local s = ""
- for e, n in pairs(diagnostics_dict) do
- local sym = e == "error" and " "
- or (e == "warning" and " " or "" )
- if(sym ~= "") then
- s = s .. " " .. n .. sym
- end
- end
- return s
- end
- '';
- # Will make sure all names in bufferline are unique
- enforce_regular_tabs = false;
-
- groups = {
- options = {
- toggle_hidden_on_enter = true;
- };
-
- items = [
- {
- name = "Tests";
- highlight = {
- underline = true;
- fg = "#a6da95";
- sp = "#494d64";
- };
- priority = 2;
- # icon = "";
- matcher.__raw = ''
- function(buf)
- return buf.name:match('%test') or buf.name:match('%.spec')
- end
- '';
- }
- {
- name = "Docs";
- highlight = {
- undercurl = true;
- fg = "#ffffff";
- sp = "#494d64";
- };
- auto_close = false;
- matcher.__raw = ''
- function(buf)
- return buf.name:match('%.md') or buf.name:match('%.txt')
- end
- '';
- }
- ];
- };
-
- indicator = {
- style = "icon";
- icon = "▎";
- };
-
- left_trunc_marker = "";
- max_name_length = 18;
- max_prefix_length = 15;
- modified_icon = "●";
-
- numbers.__raw = ''
- function(opts)
- return string.format('%s·%s', opts.raise(opts.id), opts.lower(opts.ordinal))
- end
- '';
-
- persist_buffer_sort = true;
- right_mouse_command.__raw = mouse.right;
- right_trunc_marker = "";
- separator_style = "slant";
- show_buffer_close_icons = true;
- show_buffer_icons = true;
- show_close_icon = true;
- show_tab_indicators = true;
- sort_by = "extension";
- tab_size = 18;
-
- offsets = [
- {
- filetype = "neo-tree";
- text = "File Explorer";
- text_align = "center";
- highlight = "Directory";
- }
- ];
- };
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "bP";
- action = "BufferLineTogglePin";
- options = {
- desc = "Pin buffer toggle";
- };
- }
- {
- mode = "n";
- key = "bp";
- action = "BufferLinePick";
- options = {
- desc = "Pick Buffer";
- };
- }
- {
- mode = "n";
- key = "bsd";
- action = "BufferLineSortByDirectory";
- options = {
- desc = "Sort By Directory";
- };
- }
- {
- mode = "n";
- key = "bse";
- action = "BufferLineSortByExtension";
- options = {
- desc = "Sort By Extension";
- };
- }
- {
- mode = "n";
- key = "bsr";
- action = "BufferLineSortByRelativeDirectory";
- options = {
- desc = "Sort By Relative Directory";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/catppuccin.nix b/home-manager/modules/neovim/plugins/catppuccin.nix
deleted file mode 100644
index 742d600..0000000
--- a/home-manager/modules/neovim/plugins/catppuccin.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-_: {
- programs.nixvim = {
- colorschemes.catppuccin = {
- enable = true;
- settings = {
- dim_inactive = {
- enabled = false;
- percentage = 0.25;
- };
-
- # flavour = "macchiato";
- flavour = "latte";
-
- integrations = {
- aerial = true;
- cmp = true;
- dap = {
- enabled = true;
- enable_ui = true;
- };
- gitsigns = true;
- headlines = true;
- markdown = true;
- mason = true;
- mini.enabled = true;
-
- native_lsp = {
- enabled = true;
- virtual_text = {
- errors = ["italic"];
- hints = ["italic"];
- warnings = ["italic"];
- information = ["italic"];
- };
- underlines = {
- errors = ["underline"];
- hints = ["underline"];
- warnings = ["underline"];
- information = ["underline"];
- };
- inlay_hints = {
- background = false;
- };
- };
-
- neogit = true;
- neotree = false;
- noice = true;
- notify = true;
- rainbow_delimiters = true;
- sandwich = true;
- semantic_tokens = true;
- symbols_outline = true;
- telescope = {
- enabled = true;
- # style = "nvchad";
- };
- treesitter = true;
- which_key = true;
- };
-
- transparent_background = false;
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/clangd-extensions.nix b/home-manager/modules/neovim/plugins/clangd-extensions.nix
deleted file mode 100644
index ebf141e..0000000
--- a/home-manager/modules/neovim/plugins/clangd-extensions.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins = {
- clangd-extensions = {
- enable = true;
- enableOffsetEncodingWorkaround = true;
- settings = {
- ast = {
- role_icons = {
- type = "";
- declaration = "";
- expression = "";
- specifier = "";
- statement = "";
- templateArgument = "";
- };
- kind_icons = {
- compound = "";
- recovery = "";
- translationUnit = "";
- packExpansion = "";
- templateTypeParm = "";
- templateTemplateParm = "";
- templateParamObject = "";
- };
- };
- };
-
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/cmp.nix b/home-manager/modules/neovim/plugins/cmp.nix
deleted file mode 100644
index 31e0947..0000000
--- a/home-manager/modules/neovim/plugins/cmp.nix
+++ /dev/null
@@ -1,181 +0,0 @@
-{pkgs, ...}: {
- programs.nixvim = {
- extraConfigLuaPre = ''
- local has_words_before = function()
- unpack = unpack or table.unpack
- local line, col = unpack(vim.api.nvim_win_get_cursor(0))
- return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
- end
- '';
- plugins = {
- luasnip = {
- enable = true;
- fromVscode = [{}];
-
- settings = {
- enable_autosnippets = true;
- store_selection_keys = "";
- };
- };
- friendly-snippets = {
- enable = true;
- };
-
- lspkind = {
- enable = true;
- mode = "symbol_text";
- cmp = {
- enable = true;
- # Custom Theme
- after = ''
- function(entry, vim_item, kind)
- local strings = vim.split(kind.kind, "%s", { trimempty = true })
- kind.kind = " " .. (strings[1] or "") .. " "
- kind.menu = " (" .. (strings[2] or "") .. ")"
- return kind
- end
- '';
- };
- };
- cmp-nvim-lsp.enable = true;
- cmp-nvim-lua.enable = true;
- cmp_luasnip.enable = true;
- # cmp-path.enable = true;
- cmp-latex-symbols.enable = true;
- cmp-buffer.enable = true;
- cmp = {
- enable = true;
- autoEnableSources = true;
-
- settings = {
- experimental = {
- ghost_text = true;
- };
- sources = [
- {
- name = "nvim_lsp";
- # priority = 1000;
- # option = { };
- }
-
- {name = "luasnip";}
-
- {name = "buffer";}
-
- # { name = "path"; }
- ];
-
- mapping = {
- "" = "cmp.mapping.confirm({ select = true })";
- "" = ''
- cmp.mapping(function(fallback)
- if require("luasnip").expand_or_locally_jumpable() then
- require("luasnip").expand_or_jump()
- elseif cmp.visible() then
- cmp.select_next_item()
- elseif has_words_before() then
- cmp.complete()
- else
- fallback()
- end
- end, { "i", "s" })
- '';
- "" = ''
- cmp.mapping(function(fallback)
- if require("luasnip").jumpable(-1) then
- require("luasnip").jump(-1)
- elseif cmp.visible() then
- cmp.select_prev_item()
- else
- fallback()
- end
- end, { "i", "s" })
- '';
- "" = "cmp.mapping.complete()";
- "" = "cmp.mapping.abort()";
- "" = "cmp.mapping.select_prev_item()";
- "" = "cmp.mapping.select_next_item()";
- "" = "cmp.mapping.select_prev_item()";
- "" = "cmp.mapping.select_next_item()";
- "" = "cmp.mapping.scroll_docs(-4)";
- "" = "cmp.mapping.scroll_docs(4)";
- };
- window = {
- documentation.max_height = "math.floor(40 * (40 / vim.o.lines))";
- completion = {
- winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,Search:None";
- col_offset = -3;
- side_padding = 0;
- border = "rounded";
- };
- documentation = {
- border = "rounded";
- };
- };
-
- snippet.expand = ''
- function(args)
- require('luasnip').lsp_expand(args.body)
- end
- '';
-
- formatting = {
- fields = [
- "kind"
- "abbr"
- "menu"
- ];
- };
-
- menu = {
- buffer = "";
- calc = "";
- cmdline = "";
- codeium = "";
- emoji = "";
- git = "";
- luasnip = "";
- neorg = "";
- nvim_lsp = "";
- nvim_lua = "";
- path = "";
- spell = "";
- treesitter = "";
- };
- };
- };
- };
-
- extraPlugins = with pkgs.vimPlugins; [vim-snippets];
- extraConfigLua = ''
- luasnip = require("luasnip")
- kind_icons = {
- Text = "",
- Method = "",
- Function = "",
- Constructor = "",
- Field = "",
- Variable = "",
- Class = "",
- Interface = "",
- Module = "",
- Property = "",
- Unit = "",
- Value = "",
- Enum = "",
- Keyword = "",
- Snippet = "",
- Color = "",
- File = "",
- Reference = "",
- Folder = "",
- EnumMember = "",
- Constant = "",
- Struct = "",
- Event = "",
- Operator = "",
- TypeParameter = "",
- }
- '';
- };
-}
diff --git a/home-manager/modules/neovim/plugins/comment.nix b/home-manager/modules/neovim/plugins/comment.nix
deleted file mode 100644
index 3d0e571..0000000
--- a/home-manager/modules/neovim/plugins/comment.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.comment = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/conform.nix b/home-manager/modules/neovim/plugins/conform.nix
deleted file mode 100644
index 883fc64..0000000
--- a/home-manager/modules/neovim/plugins/conform.nix
+++ /dev/null
@@ -1,237 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}:
-{
- programs.nixvim = {
- extraConfigLuaPre =
- # lua
- ''
- local slow_format_filetypes = {}
-
- vim.api.nvim_create_user_command("FormatDisable", function(args)
- if args.bang then
- -- FormatDisable! will disable formatting just for this buffer
- vim.b.disable_autoformat = true
- else
- vim.g.disable_autoformat = true
- end
- end, {
- desc = "Disable autoformat-on-save",
- bang = true,
- })
- vim.api.nvim_create_user_command("FormatEnable", function()
- vim.b.disable_autoformat = false
- vim.g.disable_autoformat = false
- end, {
- desc = "Re-enable autoformat-on-save",
- })
- vim.api.nvim_create_user_command("FormatToggle", function(args)
- if args.bang then
- -- Toggle formatting for current buffer
- vim.b.disable_autoformat = not vim.b.disable_autoformat
- else
- -- Toggle formatting globally
- vim.g.disable_autoformat = not vim.g.disable_autoformat
- end
- end, {
- desc = "Toggle autoformat-on-save",
- bang = true,
- })
- '';
-
- plugins = {
- conform-nvim = {
- enable = true;
- settings = {
- format_on_save =
- # lua
- ''
- function(bufnr)
- if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
- return
- end
-
- if slow_format_filetypes[vim.bo[bufnr].filetype] then
- return
- end
-
- local function on_format(err)
- if err and err:match("timeout$") then
- slow_format_filetypes[vim.bo[bufnr].filetype] = true
- end
- end
-
- return { timeout_ms = 200, lsp_fallback = true }, on_format
- end
- '';
-
- format_after_save =
- # lua
- ''
- function(bufnr)
- if vim.g.disable_autoformat or vim.b[bufnr].disable_autoformat then
- return
- end
-
- if not slow_format_filetypes[vim.bo[bufnr].filetype] then
- return
- end
-
- return { lsp_fallback = true }
- end
- '';
-
- formattersByFt = {
- bash = [
- "shellcheck"
- "shellharden"
- "shfmt"
- ];
- bicep = [ "bicep" ];
- c = [ "clang_format" ];
- cmake = [ "cmake-format" ];
- cpp = [ "clang_format" ];
- cs = [ "csharpier" ];
- css = [ "stylelint" ];
- fish = [ "fish_indent" ];
- fsharp = [ "fantomas" ];
- go = [ "gofmt" ];
- haskell = [ "ormolu" ];
- java = [ "google-java-format" ];
- javascript = [
- [
- "prettierd"
- "prettier"
- ]
- ];
- json = [ "jq" ];
- lua = [ "stylua" ];
- markdown = [ "deno_fmt" ];
- nix = [ "nixfmt" ];
- python = [
- "isort"
- "black"
- ];
- rust = [ "rustfmt" ];
- sh = [
- "shellcheck"
- "shellharden"
- "shfmt"
- ];
- sql = [ "sqlfluff" ];
- swift = [ "swift_format" ];
- terraform = [ "terraform_fmt" ];
- toml = [ "taplo" ];
- typescript = [
- [
- "prettierd"
- "prettier"
- ]
- ];
- xml = [
- "xmlformat"
- "xmllint"
- ];
- yaml = [ "yamlfmt" ];
- zig = [ "zigfmt" ];
- "_" = [
- "squeeze_blanks"
- "trim_whitespace"
- "trim_newlines"
- ];
- };
-
- formatters = {
- black = {
- command = lib.getExe pkgs.black;
- };
- bicep = {
- command = lib.getExe pkgs.bicep;
- };
- cmake-format = {
- command = lib.getExe pkgs.cmake-format;
- };
- csharpier = {
- command = lib.getExe pkgs.csharpier;
- };
- deno_fmt = {
- command = lib.getExe pkgs.deno;
- };
- isort = {
- command = lib.getExe pkgs.isort;
- };
- fantomas = {
- command = lib.getExe pkgs.fantomas;
- };
- ormolu = {
- command = lib.getExe pkgs.ormolu;
- };
- jq = {
- command = lib.getExe pkgs.jq;
- };
- nixfmt = {
- command = lib.getExe pkgs.nixfmt-rfc-style;
- };
- prettierd = {
- command = lib.getExe pkgs.prettierd;
- };
- rustfmt = {
- command = lib.getExe pkgs.rustfmt;
- };
- shellcheck = {
- command = lib.getExe pkgs.shellcheck;
- };
- shfmt = {
- command = lib.getExe pkgs.shfmt;
- };
- shellharden = {
- command = lib.getExe pkgs.shellharden;
- };
- sqlfluff = {
- command = lib.getExe pkgs.sqlfluff;
- };
- squeeze_blanks = {
- comamnd = lib.getExe' pkgs.coreutils "cat";
- };
- stylelint = {
- command = lib.getExe pkgs.stylelint;
- };
- stylua = {
- command = lib.getExe pkgs.stylua;
- };
- swift_format = {
- command = lib.getExe pkgs.swift-format;
- };
- taplo = {
- command = lib.getExe pkgs.taplo;
- };
- terraform_fmt = {
- command = lib.getExe pkgs.terraform;
- };
- xmlformat = {
- command = lib.getExe pkgs.xmlformat;
- };
- yamlfmt = {
- command = lib.getExe pkgs.yamlfmt;
- };
- zigfmt = {
- command = lib.getExe pkgs.zig;
- };
- };
- };
-
- # NOTE:
- # Conform will run multiple formatters sequentially
- # [ "1" "2" "3"]
- # Use a sub-list to run only the first available formatter
- # [ ["1"] ["2"] ["3"] ]
- # Use the "*" filetype to run formatters on all filetypes.
- # Use the "_" filetype to run formatters on filetypes that don't
- # have other formatters configured.
-
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/debugprint.nix b/home-manager/modules/neovim/plugins/debugprint.nix
deleted file mode 100644
index cbf6f95..0000000
--- a/home-manager/modules/neovim/plugins/debugprint.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- debugprint = {
- enable = true;
-
- settings = {
- commands = {
- toggle_comment_debug_prints = "ToggleCommentDebugPrints";
- delete_debug_prints = "DeleteDebugPrints";
- };
-
- display_counter = true;
- display_snippet = true;
-
- keymaps = {
- normal = {
- plain_below = "g?p";
- plain_above = "g?P";
- variable_below = "g?v";
- variable_above = "g?V";
- variable_below_alwaysprompt.__raw = "nil";
- variable_above_alwaysprompt.__raw = "nil";
- textobj_below = "g?o";
- textobj_above = "g?O";
- toggle_comment_debug_prints.__raw = "nil";
- delete_debug_prints.__raw = "nil";
- };
- visual = {
- variable_below = "g?v";
- variable_above = "g?V";
- };
- };
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/default.nix b/home-manager/modules/neovim/plugins/default.nix
deleted file mode 100644
index b620f1d..0000000
--- a/home-manager/modules/neovim/plugins/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-_: {
- imports = [
- # ./none-ls.nix
- ./autopairs.nix
- ./bufferline.nix
- ./base16.nix
- # ./catppuccin.nix
- ./comment.nix
- ./conform.nix
- ./clangd-extensions.nix
- ./cmp.nix
- ./debugprint.nix
- ./diffview.nix
- ./flash.nix
- ./git-conflict.nix
- ./gitsigns.nix
- ./harpoon.nix
- # ./haskell-scope-highlighting.nix
- ./illuminate.nix
- # ./obsidian.nix
- ./indent-blankline.nix
- ./lightbulb.nix
- ./lualine.nix
- ./luasnip.nix
- ./lean.nix
- ./lsp.nix
- ./marks.nix
- ./mark-radar.nix
- ./mini.nix
- ./mini-bufremove.nix
- ./mini-surround.nix
- ./mini-indentscope.nix
- ./glow.nix
- ./navic.nix
- ./neoscroll.nix
- ./nix.nix
- ./noice.nix
- ./notify.nix
- ./precognition.nix
- # ./spectre.nix
- ./grug-far.nix
- ./snacks.nix
- ./refactoring.nix
- ./render-markdown.nix
- ./telescope.nix
- ./todo-comments.nix
- ./toggleterm.nix
- ./treesitter.nix
- ./trouble.nix
- ./which-key.nix
- ./undotree.nix
- ./yazi.nix
- ./yanky.nix
- ./vimtex.nix
- ./zenmode.nix
- ];
-}
diff --git a/home-manager/modules/neovim/plugins/diffview.nix b/home-manager/modules/neovim/plugins/diffview.nix
deleted file mode 100644
index 828e5ea..0000000
--- a/home-manager/modules/neovim/plugins/diffview.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- diffview = {
- enable = true;
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "gd";
- action.__raw =
- # lua
- ''
- function()
- vim.g.diffview_enabled = not vim.g.diffview_enabled
- if vim.g.diffview_enabled then
- vim.cmd('DiffviewClose')
- else
- vim.cmd('DiffviewOpen')
- end
- end
- '';
- options = {
- desc = "Git Diff toggle";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/flash.nix b/home-manager/modules/neovim/plugins/flash.nix
deleted file mode 100644
index dd18195..0000000
--- a/home-manager/modules/neovim/plugins/flash.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.flash = {
- enable = true;
- settings = {
- labels = "rsthnaio";
- };
- };
-
- keymaps = [
- {
- mode = [
- "n"
- "x"
- "o"
- ];
- key = "s";
- action.__raw = ''
- function()
- require("flash").jump()
- end
- '';
- options = {
- silent = true;
- desc = "Flash";
- };
- }
-
- {
- mode = [
- "n"
- "x"
- "o"
- ];
- key = "S";
- action.__raw = ''
- function()
- require("flash").treesitter()
- end
- '';
- options = {
- silent = true;
- desc = "Flash Treesitter";
- };
- }
-
- {
- mode = "o";
- key = "r";
- action.__raw = ''
- function()
- require("flash").remote()
- end
- '';
- options = {
- silent = true;
- desc = "Flash Remote";
- };
- }
-
- {
- mode = [
- "o"
- "x"
- ];
- key = "R";
- action.__raw = ''
- function()
- require("flash").treesitter_search()
- end
- '';
- options = {
- silent = true;
- desc = "Treesitter Search";
- };
- }
-
- {
- mode = "c";
- key = "";
- action.__raw = ''
- function()
- require("flash").toggle()
- end
- '';
- options = {
- silent = true;
- desc = "Toggle Flash Search";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/git-conflict.nix b/home-manager/modules/neovim/plugins/git-conflict.nix
deleted file mode 100644
index 7820cc2..0000000
--- a/home-manager/modules/neovim/plugins/git-conflict.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-_: {
- programs.nixvim = {
- plugins = {
- git-conflict = {
- enable = true;
-
- settings = {
- default_mappings = {
- ours = "co";
- theirs = "ct";
- none = "c0";
- both = "cb";
- next = "]x";
- prev = "[x";
- };
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/gitsigns.nix b/home-manager/modules/neovim/plugins/gitsigns.nix
deleted file mode 100644
index c787576..0000000
--- a/home-manager/modules/neovim/plugins/gitsigns.nix
+++ /dev/null
@@ -1,118 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.gitsigns = {
- enable = true;
- settings = {
- signs = {
- add.text = "▎";
- change.text = "▎";
- delete.text = "";
- topdelete.text = "";
- changedelete.text = "";
- };
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "gs";
- action = "Gitsigns stage_hunk";
- options = {
- silent = true;
- desc = "Stage Hunk";
- };
- }
-
- {
- mode = "n";
- key = "gr";
- action = "Gitsigns reset_hunk";
- options = {
- silent = true;
- desc = "Reset Hunk";
- };
- }
-
- {
- mode = "v";
- key = "gs";
- action = "lua function() Gitsigns stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end";
- options = {
- silent = true;
- desc = "Stage Hunk";
- };
- }
-
- {
- mode = "v";
- key = "gr";
- action = "function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end";
- options = {
- silent = true;
- desc = "Reset Hunk";
- };
- }
-
- {
- mode = "n";
- key = "gS";
- action = "Gitsigns stage_buffer";
- options = {
- silent = true;
- desc = "Stage Buffer";
- };
- }
-
- {
- mode = "n";
- key = "gu";
- action = "Gitsigns undo_stage_hunk";
- options = {
- silent = true;
- desc = "Undo Stage Hunk";
- };
- }
-
- {
- mode = "n";
- key = "gR";
- action = " Gitsigns reset_buffer";
- options = {
- silent = true;
- desc = "Reset Buffer";
- };
- }
-
- {
- mode = "n";
- key = "gp";
- action = " Gitsigns preview_hunk";
- options = {
- silent = true;
- desc = "Preview Hunk";
- };
- }
-
- {
- mode = "n";
- key = "gb";
- action = " Gitsigns toggle_current_line_blame";
- options = {
- silent = true;
- desc = "Blame";
- };
- }
-
- # {
- # mode = "n";
- # key = "gd";
- # action = " Gitsigns diffthis";
- # options = {
- # silent = true;
- # desc = "Diff";
- # };
- # }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/glow.nix b/home-manager/modules/neovim/plugins/glow.nix
deleted file mode 100644
index 2082566..0000000
--- a/home-manager/modules/neovim/plugins/glow.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{pkgs, ...}: let
- stylePkg = pkgs.fetchFromGitHub {
- owner = "catppuccin";
- repo = "glamour";
- rev = "f410083af1e9b2418bcd73dbbbc987461d4aa292";
- hash = "sha256-a7yR19KcxIS4UPhuhB+X0B+s8D5eytw0/EB0X4z46kA=";
- };
-in {
- programs.nixvim = {
- plugins = {
- glow = {
- enable = true;
-
- settings = {
- border = "single";
- style = "${stylePkg.outPath}/themes/catppuccin-latte.json";
- };
- };
-
- which-key.settings.spec = [
- {
- __unkeyed = "p";
- mode = "n";
- group = "Preview";
- icon = " ";
- }
- ];
- };
-
- keymaps = [
- {
- mode = "n";
- key = "pg";
- action = "Glow";
- options = {
- desc = "Glow (Markdown)";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/grug-far.nix b/home-manager/modules/neovim/plugins/grug-far.nix
deleted file mode 100644
index fe410cd..0000000
--- a/home-manager/modules/neovim/plugins/grug-far.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins = {
- grug-far = {
- enable = true;
- settings = {
- cmd = "GrugFar";
- };
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "rs";
- action = "GrugFar";
- options = {
- desc = "GrugFar toggle";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/harpoon.nix b/home-manager/modules/neovim/plugins/harpoon.nix
deleted file mode 100644
index 217d766..0000000
--- a/home-manager/modules/neovim/plugins/harpoon.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- harpoon.enable = true;
- which-key.settings.spec = [
- {
- __unkeyed = "m";
- mode = "n";
- group = " Marks";
- }
- ];
- };
-
- keymaps = [
- {
- mode = "n";
- key = "mm";
- action = ":lua require('harpoon.ui').toggle_quick_menu()";
- # lua = true;
- options = {
- silent = true;
- desc = "Mark Menu";
- };
- }
-
- {
- mode = "n";
- key = "ma";
- action = ":lua require('harpoon.mark').add_file()";
- # lua = true;
- options = {
- silent = true;
- desc = "Mark File";
- };
- }
- {
- mode = "n";
- key = "mn";
- action = ":lua require('harpoon.ui').nav_next()";
- # lua = true;
- options = {
- silent = true;
- desc = "Next Mark";
- };
- }
-
- {
- mode = "n";
- key = "mp";
- action = ":lua require('harpoon.ui').nav_prev()";
- # lua = true;
- options = {
- silent = true;
- desc = "Prev Mark";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/haskell-scope-highlighting.nix b/home-manager/modules/neovim/plugins/haskell-scope-highlighting.nix
deleted file mode 100644
index 5722587..0000000
--- a/home-manager/modules/neovim/plugins/haskell-scope-highlighting.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.haskell-scope-highlighting = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/illuminate.nix b/home-manager/modules/neovim/plugins/illuminate.nix
deleted file mode 100644
index bd33560..0000000
--- a/home-manager/modules/neovim/plugins/illuminate.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- illuminate = {
- enable = true;
-
- filetypesDenylist = [
- "dirvish"
- "fugitive"
- "neo-tree"
- "TelescopePrompt"
- ];
- largeFileCutoff = 3000;
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/indent-blankline.nix b/home-manager/modules/neovim/plugins/indent-blankline.nix
deleted file mode 100644
index 910699d..0000000
--- a/home-manager/modules/neovim/plugins/indent-blankline.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.indent-blankline = {
- enable = true;
-
- settings = {
- scope.enabled = false;
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "ui";
- action = "IBLToggle";
- options = {
- desc = "Indent-Blankline toggle";
- };
- }
- {
- mode = "n";
- key = "uI";
- action = "IBLToggleScope";
- options = {
- desc = "Indent-Blankline Scope toggle";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/lean.nix b/home-manager/modules/neovim/plugins/lean.nix
deleted file mode 100644
index 733be76..0000000
--- a/home-manager/modules/neovim/plugins/lean.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.lean = {
- enable = true;
- settings = {
- abbreviations.enable = false;
- lsp.enable = false;
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/lightbulb.nix b/home-manager/modules/neovim/plugins/lightbulb.nix
deleted file mode 100644
index d32a74e..0000000
--- a/home-manager/modules/neovim/plugins/lightbulb.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.nvim-lightbulb = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/lsp.nix b/home-manager/modules/neovim/plugins/lsp.nix
deleted file mode 100644
index 1edf45a..0000000
--- a/home-manager/modules/neovim/plugins/lsp.nix
+++ /dev/null
@@ -1,164 +0,0 @@
-{
- lib,
- pkgs,
- ...
-}:
-{
- programs.nixvim = {
- extraConfigLuaPre =
- # lua
- ''
- vim.fn.sign_define("DiagnosticSignError", { text = " ", texthl = "DiagnosticError", linehl = "", numhl = "" })
- vim.fn.sign_define("DiagnosticSignWarn", { text = " ", texthl = "DiagnosticWarn", linehl = "", numhl = "" })
- vim.fn.sign_define("DiagnosticSignHint", { text = " ", texthl = "DiagnosticHint", linehl = "", numhl = "" })
- vim.fn.sign_define("DiagnosticSignInfo", { text = " ", texthl = "DiagnosticInfo", linehl = "", numhl = "" })
- '';
- plugins = {
- lspkind.enable = true;
- lsp-lines.enable = true;
- lsp-format.enable = false; # conform-nvim does this
- lsp = {
- enable = true;
- keymaps = {
- silent = true;
- diagnostic = {
- # Navigate in diagnostics
- "lp" = "goto_prev";
- "ln" = "goto_next";
- };
-
- extra = [
- {
- action.__raw =
- # lua
- ''
- function()
- vim.lsp.buf.format({
- async = true,
- range = {
- ["start"] = vim.api.nvim_buf_get_mark(0, "<"),
- ["end"] = vim.api.nvim_buf_get_mark(0, ">"),
- }
- })
- end
- '';
- mode = "v";
- key = "lf";
- options = {
- desc = "Format selection";
- };
- }
- ];
-
- lspBuf = {
- "la" = "code_action";
- "ld" = "definition";
- "lf" = "format";
- "lD" = "references";
- "lt" = "type_definition";
- "li" = "implementation";
- "lh" = "hover";
- "lr" = "rename";
- };
- };
- servers = {
- nil_ls = {
- enable = true;
- filetypes = [ "nix" ];
- settings = {
- formatting = {
- command = [ "${lib.getExe pkgs.nixfmt-rfc-style}" ];
- };
- };
- };
-
- pyright.enable = true;
- hls.enable = true;
- gopls.enable = true;
- # hls.installGhc = true;
- hls.filetypes = [
- "haskell"
- "lhaskell"
- "cabal"
- ];
- leanls.enable = true;
- texlab.enable = true;
- html.enable = true;
-
- cmake = {
- enable = true;
- filetypes = [ "cmake" ];
- };
-
- # ccls = {
- # enable = true;
- # filetypes = [
- # "c"
- # "cpp"
- # "objc"
- # "objcpp"
- # ];
- #
- # initOptions.compilationDatabaseDirectory = "build";
- # };
- jdtls.enable = true;
- clangd = {
- enable = true;
- filetypes = [
- "c"
- "cpp"
- "objc"
- "objcpp"
- ];
- };
- };
- };
- which-key.settings.spec = [
- {
- __unkeyed = "l";
- group = " LSP";
- }
- {
- __unkeyed = "la";
- desc = "Code Action";
- }
- {
- __unkeyed = "ld";
- desc = "Definition";
- }
- {
- __unkeyed = "lD";
- desc = "References";
- }
- {
- __unkeyed = "lf";
- desc = "Format";
- }
- {
- __unkeyed = "lp";
- desc = "Prev";
- }
- {
- __unkeyed = "ln";
- desc = "Next";
- }
- {
- __unkeyed = "lt";
- desc = "Type Definition";
- }
- {
- __unkeyed = "li";
- desc = "Implementation";
- }
- {
- __unkeyed = "lh";
- desc = "Hover";
- }
- {
- __unkeyed = "lr";
- desc = "Rename";
- }
- ];
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/lualine.nix b/home-manager/modules/neovim/plugins/lualine.nix
deleted file mode 100644
index d4f3088..0000000
--- a/home-manager/modules/neovim/plugins/lualine.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.lualine = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/luasnip.nix b/home-manager/modules/neovim/plugins/luasnip.nix
deleted file mode 100644
index 22d438f..0000000
--- a/home-manager/modules/neovim/plugins/luasnip.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{pkgs, ...}: {
- programs.nixvim = {
- plugins.luasnip = {
- enable = true;
- settings = {
- enable_autosnippets = true;
- store_selection_keys = "";
- };
- fromVscode = [
- {
- lazyLoad = true;
- paths = "${pkgs.vimPlugins.friendly-snippets}";
- }
- ];
- fromLua = [{paths = [../snippets];}];
- };
- extraFiles = {
- "lua/personal/luasnip-helper-funcs.lua".text = ''
- local M = {}
-
- local ls = require("luasnip")
- local sn = ls.snippet_node
- local i = ls.insert_node
-
- function M.get_ISO_8601_date()
- return os.date("%Y-%m-%d")
- end
-
- function M.get_visual(args, parent)
- if (#parent.snippet.env.LS_SELECT_RAW > 0) then
- return sn(nil, i(1, parent.snippet.env.LS_SELECT_RAW))
- else
- return sn(nil, i(1, '''))
- end
- end
-
- return M
- '';
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/mark-radar.nix b/home-manager/modules/neovim/plugins/mark-radar.nix
deleted file mode 100644
index dbd74aa..0000000
--- a/home-manager/modules/neovim/plugins/mark-radar.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.mark-radar = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/marks.nix b/home-manager/modules/neovim/plugins/marks.nix
deleted file mode 100644
index 5a9bad6..0000000
--- a/home-manager/modules/neovim/plugins/marks.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.marks = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/mini-bufremove.nix b/home-manager/modules/neovim/plugins/mini-bufremove.nix
deleted file mode 100644
index 91b5158..0000000
--- a/home-manager/modules/neovim/plugins/mini-bufremove.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins = {
- mini = {
- enable = true;
-
- modules = {
- bufremove = { };
- };
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "c";
- action.__raw =
- # lua
- ''require("mini.bufremove").delete'';
- options = {
- desc = "Close buffer";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "";
- action.__raw =
- # lua
- ''require("mini.bufremove").delete'';
- options = {
- desc = "Close buffer";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/mini-indentscope.nix b/home-manager/modules/neovim/plugins/mini-indentscope.nix
deleted file mode 100644
index 6e417f2..0000000
--- a/home-manager/modules/neovim/plugins/mini-indentscope.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{...}: {
- programs.nixvim = {
- autoCmd = [
- {
- event = ["FileType"];
- pattern = [
- "help"
- "alpha"
- "dashboard"
- "neo-tree"
- "Trouble"
- "trouble"
- "lazy"
- "mason"
- "notify"
- "toggleterm"
- "lazyterm"
- ];
- callback.__raw = ''
- function()
- vim.b.miniindentscope_disable = true
- end
- '';
- }
- ];
-
- plugins = {
- mini = {
- enable = true;
-
- modules = {
- indentscope = {};
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/mini-surround.nix b/home-manager/modules/neovim/plugins/mini-surround.nix
deleted file mode 100644
index 55eb723..0000000
--- a/home-manager/modules/neovim/plugins/mini-surround.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins = {
- mini = {
- enable = true;
-
- modules = {
- surround = {
- mappings = {
- add = "gsa"; # -- Add surrounding in Normal and Visual modes
- delete = "gsd"; # -- Delete surrounding
- find = "gsf"; # -- Find surrounding (to the right)
- find_left = "gsF"; # -- Find surrounding (to the left)
- highlight = "gsh"; # -- Highlight surrounding
- replace = "gsr"; # -- Replace surrounding
- update_n_lines = "gsn"; # -- Update `n_lines`
- };
- };
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/mini.nix b/home-manager/modules/neovim/plugins/mini.nix
deleted file mode 100644
index 863b43e..0000000
--- a/home-manager/modules/neovim/plugins/mini.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.mini = {
- enable = true;
- mockDevIcons = true;
-
- modules = {
- ai = {};
- align = {};
- basics = {};
- bracketed = {};
- git = {};
- icons = {};
- pairs = {};
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/navic.nix b/home-manager/modules/neovim/plugins/navic.nix
deleted file mode 100644
index 312cffd..0000000
--- a/home-manager/modules/neovim/plugins/navic.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.navic = {
- enable = true;
- settings = {
- lsp.autoAttach = true;
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/neoscroll.nix b/home-manager/modules/neovim/plugins/neoscroll.nix
deleted file mode 100644
index cb1d686..0000000
--- a/home-manager/modules/neovim/plugins/neoscroll.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.neoscroll = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/nix.nix b/home-manager/modules/neovim/plugins/nix.nix
deleted file mode 100644
index 4cb6373..0000000
--- a/home-manager/modules/neovim/plugins/nix.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.nix = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/noice.nix b/home-manager/modules/neovim/plugins/noice.nix
deleted file mode 100644
index fce0d77..0000000
--- a/home-manager/modules/neovim/plugins/noice.nix
+++ /dev/null
@@ -1,144 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.noice = {
- enable = true;
-
- # Hides the title above noice boxes
-
- # Doesn't support the standard cmdline completions
- # popupmenu.backend = "cmp";
-
- settings = {
- popupmenu.backend = "nui";
- routes = [
- {
- filter = {
- event = "msg_show";
- kind = "search_count";
- };
- opts = {
- skip = true;
- };
- }
- {
- # skip progress messages from noisy servers
- filter = {
- event = "lsp";
- kind = "progress";
- cond.__raw = ''
- function(message)
- local client = vim.tbl_get(message.opts, 'progress', 'client')
- local servers = { 'jdtls' }
-
- for index, value in ipairs(servers) do
- if value == client then
- return true
- end
- end
- end
- '';
- };
- opts = {
- skip = true;
- };
- }
- ];
-
- views = {
- cmdline_popup = {
- border = {
- style = "single";
- };
- };
-
- confirm = {
- border = {
- style = "single";
- text = {
- top = "";
- };
- };
- };
- };
-
- presets = {
- bottom_search = false;
- command_palette = true;
- long_message_to_split = true;
- inc_rename = true;
- lsp_doc_border = true;
- };
-
- lsp = {
- override = {
- "vim.lsp.util.convert_input_to_markdown_lines" = true;
- "vim.lsp.util.stylize_markdown" = true;
- "cmp.entry.get_documentation" = true;
- };
-
- progress.enabled = true;
- signature.enabled = true;
- };
-
- messages = {
- view = "mini";
- viewError = "mini";
- viewWarn = "mini";
- };
-
- cmdline = {
- format = {
- cmdline = {
- pattern = "^:";
- icon = "";
- lang = "vim";
- opts = {
- border = {
- text = {
- top = "Cmd";
- };
- };
- };
- };
- search_down = {
- kind = "search";
- pattern = "^/";
- icon = " ";
- lang = "regex";
- };
- search_up = {
- kind = "search";
- pattern = "^%?";
- icon = " ";
- lang = "regex";
- };
- filter = {
- pattern = "^:%s*!";
- icon = "";
- lang = "bash";
- opts = {
- border = {
- text = {
- top = "Bash";
- };
- };
- };
- };
- lua = {
- pattern = "^:%s*lua%s+";
- icon = "";
- lang = "lua";
- };
- help = {
- pattern = "^:%s*he?l?p?%s+";
- icon = "";
- };
- input = { };
- };
- };
- };
-
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/none-ls.nix b/home-manager/modules/neovim/plugins/none-ls.nix
deleted file mode 100644
index 6b28be8..0000000
--- a/home-manager/modules/neovim/plugins/none-ls.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.none-ls = {
- enable = true;
- settings = {
- cmd = ["bash -c nvim"];
-
- debug = true;
- };
- sources = {
- code_actions = {
- statix.enable = true;
- };
- diagnostics = {
- statix.enable = true;
- deadnix.enable = true;
- };
- formatting = {
- alejandra.enable = true;
- stylua.enable = true;
- shfmt.enable = true;
- nixpkgs_fmt.enable = true;
- # prettier = {
- # enable = true;
- # disableTsServerFormatter = true;
- # };
- # black.enable = true;
- };
- };
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/notify.nix b/home-manager/modules/neovim/plugins/notify.nix
deleted file mode 100644
index d87e2a9..0000000
--- a/home-manager/modules/neovim/plugins/notify.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.notify = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/obsidian.nix b/home-manager/modules/neovim/plugins/obsidian.nix
deleted file mode 100644
index f9e18be..0000000
--- a/home-manager/modules/neovim/plugins/obsidian.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins.obsidian = {
- enable = true;
- };
- };
-}
diff --git a/home-manager/modules/neovim/plugins/precognition.nix b/home-manager/modules/neovim/plugins/precognition.nix
deleted file mode 100644
index 2076ecc..0000000
--- a/home-manager/modules/neovim/plugins/precognition.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ pkgs, ... }:
-{
- programs.nixvim = {
- extraPlugins = [ pkgs.vimPlugins.precognition-nvim ];
-
- keymaps = [
- {
- mode = "n";
- key = "vp";
- action.__raw = ''
- function()
- if require("precognition").toggle() then
- vim.notify("precognition on")
- else
- vim.notify("precognition off")
- end
- end
- '';
-
- options = {
- desc = "Precognition Toggle";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/refactoring.nix b/home-manager/modules/neovim/plugins/refactoring.nix
deleted file mode 100644
index 178a119..0000000
--- a/home-manager/modules/neovim/plugins/refactoring.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- refactoring = {
- enable = true;
- };
-
- telescope.enabledExtensions = ["refactoring"];
-
- which-key.settings.spec = [
- {
- __unkeyed = "r";
- mode = "x";
- group = " Refactor";
- }
- ];
- };
-
- keymaps = [
- {
- mode = "x";
- key = "re";
- action = ":Refactor extract ";
- options = {
- desc = "Extract";
- silent = true;
- };
- }
- {
- mode = "x";
- key = "rE";
- action = ":Refactor extract_to_file ";
- options = {
- desc = "Extract to file";
- silent = true;
- };
- }
- {
- mode = "x";
- key = "rv";
- action = ":Refactor extract_var ";
- options = {
- desc = "Extract var";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "ri";
- action = ":Refactor inline_var";
- options = {
- desc = "Inline var";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "rI";
- action = ":Refactor inline_func";
- options = {
- desc = "Inline Func";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "rb";
- action = ":Refactor extract_block";
- options = {
- desc = "Extract block";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "rB";
- action = ":Refactor extract_block_to_file";
- options = {
- desc = "Extract block to file";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "fR";
- action.__raw =
- # lua
- ''
- function()
- require('telescope').extensions.refactoring.refactors()
- end
- '';
- options = {
- desc = "Refactoring";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/render-markdown.nix b/home-manager/modules/neovim/plugins/render-markdown.nix
deleted file mode 100644
index c4a9d2c..0000000
--- a/home-manager/modules/neovim/plugins/render-markdown.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{pkgs, ...}: {
- programs.nixvim = {
- plugins.render-markdown = {
- enable = true;
- };
- };
-
- home.packages = with pkgs; [python312Packages.pylatexenc];
-}
diff --git a/home-manager/modules/neovim/plugins/snacks.nix b/home-manager/modules/neovim/plugins/snacks.nix
deleted file mode 100644
index 628ca4c..0000000
--- a/home-manager/modules/neovim/plugins/snacks.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ ... }:
-{
- programs.nixvim = {
- plugins.snacks = {
- enable = true;
- settings = {
- bigfile.enabled = true;
- bufdelete.enabled = true;
- gitbrowse.enabled = true;
- lazygit.enabled = true;
- statuscolumn = {
- enabled = true;
-
- folds = {
- open = true;
- git_hl = true;
- };
- };
- };
- };
- keymaps = [
- {
- mode = "n";
- key = "gg";
- action = "lua Snacks.lazygit()";
- options = {
- desc = "Open Lazygit";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "go";
- action = "lua Snacks.gitbrowse()";
- options = {
- desc = "Open file in browser";
- };
- }
- {
- mode = "n";
- key = "gl";
- action = "lua Snacks.lazygit.log()";
- options = {
- desc = "Open Lazygit Log (cwd)";
- };
- }
- {
- mode = "n";
- key = "c";
- action = ''lua Snacks.bufdelete.delete()'';
- options = {
- desc = "Close buffer";
- };
- }
- {
- mode = "n";
- key = "bc";
- action = ''lua Snacks.bufdelete.other()'';
- options = {
- desc = "Close all buffers but current";
- };
- }
- {
- mode = "n";
- key = "bC";
- action = ''lua Snacks.bufdelete.all()'';
- options = {
- desc = "Close all buffers";
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/spectre.nix b/home-manager/modules/neovim/plugins/spectre.nix
deleted file mode 100644
index 3d35555..0000000
--- a/home-manager/modules/neovim/plugins/spectre.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{...}: {
- programs.nixvim = {
- plugins = {
- spectre = {
- enable = true;
- };
- };
-
- keymaps = [
- {
- mode = "n";
- key = "rs";
- action = ":Spectre";
- options = {
- desc = "Spectre toggle";
- silent = true;
- };
- }
- ];
- };
-}
diff --git a/home-manager/modules/neovim/plugins/telescope.nix b/home-manager/modules/neovim/plugins/telescope.nix
deleted file mode 100644
index 37e48e4..0000000
--- a/home-manager/modules/neovim/plugins/telescope.nix
+++ /dev/null
@@ -1,240 +0,0 @@
-{pkgs, ...}: {
- programs.nixvim = {
- extraPackages = with pkgs; [ripgrep];
-
- keymaps = [
- {
- mode = "n";
- key = "fc";
- action.__raw =
- # lua
- ''
- function()
- require("telescope.builtin").find_files {
- prompt_title = "Config Files",
- cwd = vim.fn.stdpath "config",
- follow = true,
- }
- end
- '';
- options = {
- desc = "Find config files";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "fF";
- action.__raw =
- # lua
- ''
- function()
- require("telescope.builtin").find_files({ hidden = true, no_ignore = true})
- end
- '';
- options = {
- desc = "Find all files";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "fT";
- action.__raw =
- # lua
- ''
- function()
- require("telescope.builtin").colorscheme({ enable_preview = true })
- end
- '';
- options = {
- desc = "Find theme";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "fW";
- action.__raw =
- # lua
- ''
- function()
- require("telescope.builtin").live_grep {
- additional_args = function(args) return vim.list_extend(args, { "--hidden", "--no-ignore" }) end,
- }
- end
- '';
- options = {
- desc = "Find words in all files";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "f?";
- action.__raw =
- # lua
- ''
- function()
- require("telescope.builtin").live_grep { grep_open_files=true }
- end
- '';
- options = {
- desc = "Find words in all open buffers";
- silent = true;
- };
- }
- {
- mode = "n";
- key = "fe";
- action = ":Telescope file_browser";
- options = {
- desc = "File Explorer";
- silent = true;
- };
- }
- # {
- # mode = "n";
- # key = "fO";
- # action = ":Telescope frecency";
- # options = {
- # desc = "Find Frequent Files";
- # silent = true;
- # };
- # }
- ];
-
- plugins.telescope = {
- enable = true;
-
- extensions = {
- file-browser = {
- enable = true;
- settings = {
- hidden = true;
- };
- };
-
- # FIX: annoying frecency validation on startup about removed files
- # frecency = {
- # enable = true;
- # };
-
- ui-select = {
- enable = true;
- };
- };
-
- keymaps = {
- "f'" = {
- action = "marks";
- options.desc = "View marks";
- };
- "