diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 3b9e135..1e0d5a4 100755
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -20,7 +20,7 @@ jobs:
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v16
with:
- pr-title: "chore: update flake.lock" # Title of PR to be created
+ pr-title: "[chore] Update flake.lock" # Title of PR to be created
pr-labels: | # Labels to be set on the PR
dependencies
automated
diff --git a/.gitignore b/.gitignore
index 6cbea19..461ffdf 100755
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
result
age-key.txt
-.decrypted~common.yaml
\ No newline at end of file
+.decrypted~common.yaml
diff --git a/README.md b/README.md
index 641d2db..23092c0 100755
--- a/README.md
+++ b/README.md
@@ -6,8 +6,8 @@
...
-
+
-
-
+
+
diff --git a/colors/default.nix b/colors/default.nix
deleted file mode 100755
index d19592c..0000000
--- a/colors/default.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- ...
-}:
-{
- imports = [
- ./sorahiro_soft.nix
- ];
-}
diff --git a/colors/sorahiro_hard.nix b/colors/sorahiro_hard.nix
deleted file mode 100755
index e85ded6..0000000
--- a/colors/sorahiro_hard.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- nix-colors,
- ...
-}:
-{
- # usage: a = "#${config.colorScheme.colors.base00}";
-
- colorScheme = {
- slug = "sorahiro-hard";
- name = "sorahiro-hard";
- author = "Soraefir @ Helcel";
- colors = {
- # Format: Name, Pantone, RAL
- base00= "#030B12"; # Rich Black / 6C / 000-15-00
- base01= "#0C1D2E"; # Maastricht Blue / 5395C / 270-20-15
- base02= "#203A53"; # Japanese Indigo / 534C / 260-20-20
- base03= "#425F7C"; # Deep Space Sparkle / 7699C / 260-40-20
- base04= "#93A9BE"; # Pewter Blue / 535C / 260-70-15
- base05= "#B6C5D5"; # Pastel Blue / 5445C / 260-80-10
- base06= "#D6DFE8"; # Gainsboro / 642C / 260-90-05
- base07= "#F0F3F7"; # White / 656C / 290-92-05
- base08= "#F59331"; # Deep Saffron / 715C / 070-70-70
- base09= "#F5F531"; # Maximum Yellow / 394C / 100-80-80
- base0A= "#93F531"; # French Lime / 7488C / 120-70-75
- base0B= "#31F593"; # Eucalyptus / 3385C / 160-70-50
- base0C= "#3193F5"; # Brilliant Azure / 2727C / 280-50-40
- baseOD= "#9331F5"; # Blue-Violet / 7442C / 300-40-45
- base0E= "#F53193"; # Royal Pink / 232C / 350-50-50
- base0F= "#F53131"; # Deep Carmine Pink / 1788C / 040-50-70
-
- };
- };
-}
\ No newline at end of file
diff --git a/colors/sorahiro_soft.nix b/colors/sorahiro_soft.nix
deleted file mode 100755
index dcf7e1f..0000000
--- a/colors/sorahiro_soft.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- nix-colors,
- ...
-}:
-{
- # usage: a = "#${config.colorScheme.colors.base00}";
-
- colorScheme = {
- slug = "sorahiro-soft";
- name = "sorahiro-soft";
- author = "Soraefir @ Helcel";
- colors = {
- # Format: Name, Pantone, RAL
- base00= "#030B12"; # Rich Black / 6C / 000-15-00
- base01= "#0C1D2E"; # Maastricht Blue / 5395C / 270-20-15
- base02= "#203A53"; # Japanese Indigo / 534C / 260-20-20
- base03= "#425F7C"; # Deep Space Sparkle / 7699C / 260-40-20
- base04= "#93A9BE"; # Pewter Blue / 535C / 260-70-15
- base05= "#B6C5D5"; # Pastel Blue / 5445C / 260-80-10
- base06= "#D6DFE8"; # Gainsboro / 642C / 260-90-05
- base07= "#F0F3F7"; # White / 656C / 290-92-05
- base08= "#F5B97D"; # Mellow Apricot / 156C / 070-80-40
- base09= "#F5F57D"; # Sunny / 393C / 100-90-50
- base0A= "#B9F57D"; # Yellow-Green / 373C / 120-80-60
- base0B= "#7DF5B9"; # Aquamarine / 3375C / 150-80-40
- base0C= "#7DB9F5"; # Light Azure / 278C / 250-70-30
- base0D= "#B97DF5"; # Lavender / 2572C / 310-60-35
- base0E= "#F57DB9"; # Persian Pink / 211C / 350-60-45
- base0F= "#F57D7D"; # Light Coral / 170C / 030-60-50
- };
- };
-}
diff --git a/flake.lock b/flake.lock
index 4a07481..39d21a8 100644
--- a/flake.lock
+++ b/flake.lock
@@ -23,11 +23,11 @@
]
},
"locked": {
- "lastModified": 1696360011,
- "narHash": "sha256-HpPv27qMuPou4acXcZ8Klm7Zt0Elv9dgDvSJaomWb9Y=",
+ "lastModified": 1698429334,
+ "narHash": "sha256-Gq3+QabboczSu7RMpcy79RSLMSqnySO3wsnHQk4DfbE=",
"owner": "lnl7",
"repo": "nix-darwin",
- "rev": "8b6ea26d5d2e8359d06278364f41fbc4b903b28a",
+ "rev": "afe83cbc2e673b1f08d32dd0f70df599678ff1e7",
"type": "github"
},
"original": {
@@ -37,13 +37,65 @@
"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-utils": {
+ "inputs": {
+ "systems": "systems_2"
+ },
+ "locked": {
+ "lastModified": 1694529238,
+ "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils-plus": {
+ "inputs": {
+ "flake-utils": "flake-utils"
+ },
+ "locked": {
+ "lastModified": 1696331477,
+ "narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
+ "owner": "gytis-ivaskevicius",
+ "repo": "flake-utils-plus",
+ "rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "gytis-ivaskevicius",
+ "repo": "flake-utils-plus",
+ "type": "github"
+ }
+ },
"hardware": {
"locked": {
- "lastModified": 1697100850,
- "narHash": "sha256-qSAzJVzNRIo+r3kBjL8TcpJctcgcHlnZyqdzpWgtg0M=",
+ "lastModified": 1699159446,
+ "narHash": "sha256-cL63IjsbPl2otS7R4kdXbVOJOXYMpGw5KGZoWgdCuCM=",
"owner": "nixos",
"repo": "nixos-hardware",
- "rev": "fb6af288f6cf0f00d3af60cf9d5110433b954565",
+ "rev": "627bc9b88256379578885a7028c9e791c29fb581",
"type": "github"
},
"original": {
@@ -59,11 +111,11 @@
]
},
"locked": {
- "lastModified": 1696940889,
- "narHash": "sha256-p2Wic74A1tZpFcld1wSEbFQQbrZ/tPDuLieCnspamQo=",
+ "lastModified": 1699368917,
+ "narHash": "sha256-nUtGIWf86BOkUbtksWtfglvCZ/otP0FTZlQH8Rzc7PA=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "6bba64781e4b7c1f91a733583defbd3e46b49408",
+ "rev": "6a8444467c83c961e2f5ff64fb4f422e303c98d3",
"type": "github"
},
"original": {
@@ -81,11 +133,11 @@
"xdph": "xdph"
},
"locked": {
- "lastModified": 1697059673,
- "narHash": "sha256-9dIM1ei+O6zcFFM0pgmBhbHv83tli2y8ikjKb1phouc=",
+ "lastModified": 1699391198,
+ "narHash": "sha256-HrnlCdZBqqE37gFORapfSGEGcqhCyhX2aSMRnDEmR0k=",
"owner": "hyprwm",
"repo": "Hyprland",
- "rev": "06cc42441cd5b24444f7c79495851dedde8bc732",
+ "rev": "751d2851cc270c3322ffe2eb83c156e4298a0c0e",
"type": "github"
},
"original": {
@@ -140,11 +192,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1694767346,
- "narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=",
+ "lastModified": 1698134075,
+ "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "ace5093e36ab1e95cb9463863491bee90d5a4183",
+ "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4",
"type": "github"
},
"original": {
@@ -171,11 +223,11 @@
},
"nixpkgs-stable": {
"locked": {
- "lastModified": 1696717752,
- "narHash": "sha256-qEq1styCyQHSrw7AOhskH2qwCFx93bOwsGEzUIrZC0g=",
+ "lastModified": 1699110214,
+ "narHash": "sha256-L2TU4RgtiqF69W8Gacg2jEkEYJrW+Kp0Mp4plwQh5b8=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "2f3b6b3fcd9fa0a4e6b544180c058a70890a7cc1",
+ "rev": "78f3a4ae19f0e99d5323dd2e3853916b8ee4afee",
"type": "github"
},
"original": {
@@ -187,11 +239,11 @@
},
"nixpkgs_2": {
"locked": {
- "lastModified": 1696879762,
- "narHash": "sha256-Ud6bH4DMcYHUDKavNMxAhcIpDGgHMyL/yaDEAVSImQY=",
+ "lastModified": 1699099776,
+ "narHash": "sha256-X09iKJ27mGsGambGfkKzqvw5esP1L/Rf8H3u3fCqIiU=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "f99e5f03cc0aa231ab5950a15ed02afec45ed51a",
+ "rev": "85f1ba3e51676fa8cc604a3d863d729026a6b8eb",
"type": "github"
},
"original": {
@@ -203,11 +255,11 @@
},
"nixpkgs_3": {
"locked": {
- "lastModified": 1696693680,
- "narHash": "sha256-PH0HQTkqyj7DmdPKPwrrXwVURLBqzZs4nqnDw9q8mhg=",
+ "lastModified": 1699094435,
+ "narHash": "sha256-YLZ5/KKZ1PyLrm2MO8UxRe4H3M0/oaYqNhSlq6FDeeA=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "945559664c1dc5836173ee12896ba421d9b37181",
+ "rev": "9d5d25bbfe8c0297ebe85324addcb5020ed1a454",
"type": "github"
},
"original": {
@@ -219,11 +271,11 @@
},
"nur": {
"locked": {
- "lastModified": 1697118309,
- "narHash": "sha256-7kr8JD4Sa54jGnJz1AFjE6bFnzy4KMFsRdPvhQa0ESE=",
+ "lastModified": 1699430897,
+ "narHash": "sha256-/9fkDvkl16UReQs08KlHk7888SXfBEM89fl3buvSAVg=",
"owner": "nix-community",
"repo": "nur",
- "rev": "8a488b2668191da034e571d0b015117ce47e1ae6",
+ "rev": "aa435f27b4a4f58c8acf5e0c4f9e3cf72aac2834",
"type": "github"
},
"original": {
@@ -241,20 +293,43 @@
"nix-colors": "nix-colors",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
+ "snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix"
}
},
+ "snowfall-lib": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "flake-utils-plus": "flake-utils-plus",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1696432959,
+ "narHash": "sha256-oJQZv2MYyJaVyVJY5IeevzqpGvMGKu5pZcCCJvb+xjc=",
+ "owner": "snowfallorg",
+ "repo": "lib",
+ "rev": "92803a029b5314d4436a8d9311d8707b71d9f0b6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "snowfallorg",
+ "repo": "lib",
+ "type": "github"
+ }
+ },
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
- "lastModified": 1697064251,
- "narHash": "sha256-xxp2sB+4vqB6S6zC/L5J8LlRKgVbgIZOcYl9/TDrEzI=",
+ "lastModified": 1699311858,
+ "narHash": "sha256-W/sQrghPAn5J9d+9kMnHqi4NPVWVpy0V/qzQeZfS/dM=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "f995ea159252a53b25fa99824f2891e3b479d511",
+ "rev": "664187539871f63857bda2d498f452792457b998",
"type": "github"
},
"original": {
@@ -278,22 +353,37 @@
"type": "github"
}
},
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
- "lastModified": 1696410538,
- "narHash": "sha256-ecDhdYLXWHsxMv+EWG36mCNDvzRbu9qfjH7dLxL7aGM=",
+ "lastModified": 1697909146,
+ "narHash": "sha256-jU0I6FoCKnj4zIBL4daosFWh81U1fM719Z6cae8PxSY=",
"owner": "wlroots",
"repo": "wlroots",
- "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc",
+ "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
- "rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc",
+ "rev": "47bf87ade2bd32395615a385ebde1fefbcdf79a2",
"type": "gitlab"
}
},
@@ -313,11 +403,11 @@
]
},
"locked": {
- "lastModified": 1694628480,
- "narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=",
+ "lastModified": 1697981233,
+ "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
- "rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2",
+ "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index fb74933..0bb5244 100755
--- a/flake.nix
+++ b/flake.nix
@@ -1,15 +1,16 @@
{
description = "SoraFlake";
-
+
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
hardware.url = "github:nixos/nixos-hardware";
nur.url = "github:nix-community/nur";
-
+
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
- };
+ };
+
darwin = {
url = "github:lnl7/nix-darwin/master";
inputs.nixpkgs.follows = "nixpkgs";
@@ -19,89 +20,62 @@
sops-nix.url = "github:Mic92/sops-nix";
nix-colors.url = "github:misterio77/nix-colors";
+ snowfall-lib = {
+ url = "github:snowfallorg/lib";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
};
- outputs = { self, nixpkgs, hardware, nur, home-manager, darwin, sops-nix, hyprland, nix-colors, ... }@inputs:
-
- let
- gen = import ./generator.nix { inherit inputs nixpkgs home-manager darwin sops-nix hyprland nix-colors; };
- forEachSystem = nixpkgs.lib.genAttrs [ "aarch64-linux" "x86_64-linux" ];
+ outputs = inputs:
+ let
+ lib = inputs.snowfall-lib.mkLib {
+ inherit inputs;
+ src = ./.;
+ };
+ in lib.mkFlake {
- in {
+ package-namespace = "custom";
- devShells = forEachSystem (system:
- let
- overlays = import ./pkgs/overlay.nix { inherit pkgs; };
- overrides = {custom = import ./pkgs { inherit pkgs; }; };
- pkgs = import nixpkgs {
- inherit system overlays ;
- } // overrides;
- in {
- default = import ./modules/devshell.nix { inherit pkgs; };
- }
- );
+ channels-config = {
+ allowUnfree = true;
+ permittedInsecurePackages = [ ];
+ };
- nixosConfigurations = {
- valinor = gen.generate {
- type = "nixos";
- system = "x86_64-linux";
- host = "valinor";
+ systems = {
+ modules = {
+ darwin = with inputs; [ sops-nix.nixosModules.sops ];
+
+ home = with inputs; [
+ nix-colors.homeManagerModules
+ hyprland.homeManagerModules
+ ];
+
+ nixos = with inputs; [ sops-nix.nixosModules.sops ];
+ };
};
- iriy = gen.generate {
- type = "nixos";
- system = "x86_64-linux";
- host = "iriy";
- };
- efir = gen.generate {
- type = "nixos";
- system = "x86_64-linux";
- host = "efir";
- };
- avalon = gen.generate {
- type = "nixos";
- system = "x86_64-linux";
- host = "avalon";
- };
-
+
};
- darwinConfigurations = {
- asgard = gen.generate {
- type = "macos";
- system = "x86_64-darwin";
- host = "asgard";
- };
- };
- homeConfigurations = {
- yomi = gen.generate {
- type = "home";
- system = "arm-64";
- host = "example";
- };
- example = gen.generate {
- type = "home";
- system = "-"; #supports any
- host = "example";
- };
- };
- # ===== Unsupported/NotImplemented ======
- # menel - PI/ARM64
- # ilduma - PI/ARM64
- # daimoth - PI/ARM64
- # gimle - ....
- # ===== Unused ======
- #
- # naraka - ?
- # diyu - ?
- # tirnanog - ?
- # valhalla - ?
- # arcadia - ?
- # elysium - ?
- # empyrean - ?
- # duat - ?
- # sheol - ?
- # adlivun - ?
- # araf - ?
- # aman/araman - ?
- };
+ # ===== Unsupported/NotImplemented ======
+ # menel - PI/ARM64
+ # ilduma - PI/ARM64
+ # daimoth - PI/ARM64
+ # gimle - ....
+
+ # ===== Unused ======
+ #
+ # naraka - ?
+ # diyu - ?
+ # tirnanog - ?
+ # valhalla - ?
+ # arcadia - ?
+ # elysium - ?
+ # empyrean - ?
+ # duat - ?
+ # sheol - ?
+ # adlivun - ?
+ # araf - ?
+ # aman/araman - ?
+
}
diff --git a/generator.nix b/generator.nix
deleted file mode 100755
index fa74b20..0000000
--- a/generator.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ inputs, nixpkgs, home-manager, darwin, sops-nix, hyprland, nix-colors, ... }:
-{
- generate = { type, system, host }:
- ({"nixos" = nixpkgs.lib.nixosSystem {
- system = system;
- modules = [
- sops-nix.nixosModules.sops
- ./hosts/${host}
- home-manager.nixosModules.home-manager {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
- home-manager.extraSpecialArgs = {
- inherit inputs;
- };
- home-manager.users.sora = {
- imports = [
- nix-colors.homeManagerModule
- hyprland.homeManagerModules.default
- ./hosts/${host}/home.nix
- ];
- };
- }
- ];
- };
- "macos" = darwin.lib.darwinSystem {
- system = system;
- modules = [
- sops-nix.nixosModules.sops
- ./hosts/${host}
- home-manager.darwinModules.home-manager {
- home-manager.useGlobalPkgs = true;
- home-manager.useUserPackages = true;
- home-manager.extraSpecialArgs = {
- inherit inputs;
- };
- home-manager.users.sora = {
- imports = [
- nix-colors.homeManagerModule
- hyprland.homeManagerModules.default
- ./hosts/${host}/home.nix
- ];
- };
- }
- ];
- };
- "home" = home-manager.lib.homeManagerConfiguration {
- modules = [
- ./hosts/${host}/home.nix
- ];
- };
- _ = throw "Unsupported system";
- }.${type});
-}
\ No newline at end of file
diff --git a/home/cli/default.nix b/home/cli/default.nix
deleted file mode 100755
index 6a1c5d4..0000000
--- a/home/cli/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- pkgs,
- ...
-}: {
- imports = [
- ./git
- ./neofetch
- ./starship
- ./zsh
- ./helix
- ];
-
- home.packages = with pkgs; [
- sudo
- ripgrep
-
- bat
- croc
- socat
- ];
-}
\ No newline at end of file
diff --git a/home/cli/git/default.nix b/home/cli/git/default.nix
deleted file mode 100755
index e829d9f..0000000
--- a/home/cli/git/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- pkgs,
- ...
-}: {
-
- programs.git = {
- enable = true;
- userEmail = "soraefir+git@pm.me";
- userName = "soraefir";
- signing = {
- key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
- signByDefault = true;
- };
- ignores = ["*result*" ".direnv" "node_modules"];
- extraConfig = {
- core.hooksPath = "./.dev/hooks";
- };
- };
-
- home.packages = with pkgs; [
- tig
- ];
-}
\ No newline at end of file
diff --git a/home/cli/helix/default.nix b/home/cli/helix/default.nix
deleted file mode 100644
index fecf2d3..0000000
--- a/home/cli/helix/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- ...
-}:{
- programs.helix = {
- enable = true;
- languages = { };
- settings = { };
- themes = { };
- };
-}
\ No newline at end of file
diff --git a/home/cli/neofetch/default.nix b/home/cli/neofetch/default.nix
deleted file mode 100755
index f2672bb..0000000
--- a/home/cli/neofetch/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- pkgs,
- config,
- ...
-}: {
- home.packages = with pkgs; [
- neofetch
- ];
- xdg.configFile."neofetch/config.conf".source =./config.conf;
-}
diff --git a/home/cli/starship/default.nix b/home/cli/starship/default.nix
deleted file mode 100755
index eae9512..0000000
--- a/home/cli/starship/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- config,
- lib,
- ...
-}: {
-
- home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship";
-
- programs.starship = {
- enable = true;
- enableFishIntegration = false;
- enableIonIntegration = false;
- enableNushellIntegration = false;
- enableZshIntegration = true;
- settings = {
- format = lib.concatStrings [
- "[░▒▓](#${config.colorScheme.colors.base06})"
- "$username"
- "$hostname"
- "[](bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base06})"
- "$directory"
- "[](bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base05})"
- "[ ](bg:#${config.colorScheme.colors.base04})"
- "$env_var"
- "[](bg:#${config.colorScheme.colors.base00} fg:#${config.colorScheme.colors.base04})"
- " "
- ];
- username = {
- show_always = true;
- style_user = "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
- style_root = "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
- format = "[ $user]($style)";
- };
- hostname = {
- ssh_symbol = "";
- style = "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
- format = "[@$hostname]($style)";
- ssh_only = false;
- disabled = false;
- };
- directory = {
- style = "bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base00}";
- format = "[ $path ]($style)";
- truncation_length = 3;
- truncation_symbol = "…/";
- };
- directory.substitutions = {
- "documents" = " ";
- "downloads" = " ";
- "music" = " ";
- "pictures" = " ";
- };
- env_var = {
- variable = "DEVSH";
- default = "";
- style = "bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base00}";
- format = "[$env_value]($style)";
- };
- };
- };
-}
\ No newline at end of file
diff --git a/home/cli/zsh/default.nix b/home/cli/zsh/default.nix
deleted file mode 100755
index f4eb1c2..0000000
--- a/home/cli/zsh/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- pkgs,
- ...
-}:
-let
- nixflake_dir = "$HOME/files/nixconfig";
-in {
- programs.zsh = {
- enable = true;
- shellAliases = {
- "sudo" = "sudo ";
- "devsh-dl" = "nix develop --profile /tmp/devsh-env ${nixflake_dir} -c zsh";
- "devsh" = "nix develop --profile /tmp/devsh-env ${nixflake_dir} -c zsh";
- "nixu" = "(cd ${nixflake_dir} && nix flake update)";
- "nixb" = "(cd ${nixflake_dir} && sudo nixos-rebuild switch --flake ./)";
- "nixf" = "sudo echo 'Full Update' && echo 'Update lock' && nixu && echo 'Building new' && nixb && (devsh && exit) ";
- "nixgcf" = "sudo nix-collect-garbage -d && nix-collect-garbage -d";
- "ssh" = "TERM=xterm-256color ${pkgs.openssh}/bin/ssh";
- "top" = "btop";
- };
- };
-}
diff --git a/home/gui/default.nix b/home/gui/default.nix
deleted file mode 100755
index bcdb9a7..0000000
--- a/home/gui/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- pkgs,
- lib,
- inputs,
- ...
-}: {
- imports = [
- ./dunst
- ./eww
- ./wofi
- ./mpv
- ./wayland
- ./pipewire
-
- ./theme
-
- ./firefox
- ./zathura
- ./kitty
-
- ./vosk
- ./various
- ];
-
- home.packages = with pkgs; [
- brillo
- dunst
- libnotify
- wofi
- btop
- swayidle
- swaylock-effects
- swww
- ];
-
- xdg.mimeApps = {
- enable = true;
- defaultApplications = {
- "x-scheme-handler/discord-409416265891971072" = ["discord-409416265891971072.desktop"];
- "x-scheme-handler/discord-402572971681644545" = ["discord-402572971681644545.desktop"];
- "x-scheme-handler/discord-696343075731144724" = ["discord-696343075731144724.desktop"];
- "x-scheme-handler/http" = ["firefox.desktop"];
- "x-scheme-handler/https" = ["firefox.desktop"];
- "x-scheme-handler/chrome" = ["firefox.desktop"];
- "text/html" = ["firefox.desktop"];
- "application/x-extension-htm" = ["firefox.desktop"];
- "application/x-extension-html" = ["firefox.desktop"];
- "application/x-extension-shtml" = ["firefox.desktop"];
- "application/xhtml+xml" = ["firefox.desktop"];
- "application/x-extension-xhtml" = ["firefox.desktop"];
- "application/x-extension-xht" = ["firefox.desktop"];
-
- "application/pdf" = ["org.pwmt.zathura-pdf-mupdf.desktop"];
- "text/plain" = ["vscodium.desktop"];
-
- "video/mp4" = ["mpv.desktop"];
-
- "image/png" = ["imv-dir.desktop"];
- "image/jpg" = ["imv-dir.desktop"];
- };
- associations = {
- removed = {
- "application/pdf" = ["krita_pdf.desktop"];
- };
- };
- };
-}
\ No newline at end of file
diff --git a/home/gui/dunst/default.nix b/home/gui/dunst/default.nix
deleted file mode 100755
index b6bcc8b..0000000
--- a/home/gui/dunst/default.nix
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- config,
- ...
-}:
-{
-
- services.dunst = {
- enable = true;
- #waylandDisplay = "DP-2";
- settings = {
- global = {
- follow = "mouse";
- height = "200";
- width = "400";
- scale = "0";
- origin = "top-right";
- offset = "4x40";
- notification_limit = "0";
- progress_bar = "true";
- progress_bar_height = "10";
- progress_bar_frame_width = "0";
- progress_bar_min_width = "350";
- progress_bar_max_width = "400";
- indicate_hidden = "yes";
- transparency = "0";
- separator_height = "2";
- padding = "12";
- horizontal_padding = "15";
- text_icon_padding = "0";
- frame_width = "2";
- frame_color = "#${config.colorScheme.colors.base03}";
- separator_color = "auto";
- sort = "yes";
- font = "IBM Plex Mono 14";
- markup = "full";
- format = "%s\\n%b";
- alignment = "center";
- vertical_alignment = "center";
- show_age_threshold = "60";
- ellipsize = "end";
- ignore_newline = "no";
- stack_duplicates = "true";
- hide_duplicate_count = "false";
- show_indicators = "yes";
- min_icon_size = 32;
- max_icon_size = 64;
-
- icon_path = "/usr/share/icons/gnome/128x128/status/:/usr/share/icons/gnome/128x128/devices/";
- icon_theme = "Papirus, Adwaita";
- enable_recursive_icon_lookup = "true";
-
- sticky_history = "yes";
- history_length = "20";
-
- dmenu = "wofi --show dmenu -p dunst:";
- browser = "/usr/bin/xdg-open";
- always_run_script = "true";
- title = "Dunst";
- class = "Dunst";
- corner_radius = "10";
- ignore_dbusclose = "false";
- layer = "top";
- force_xwayland = "true";
- force_xinerama = "false";
-
- mouse_left_click = "close_current";
- mouse_middle_click = "context";
- mouse_right_click = "do_action";
-
- };
- urgency_low = {
- background = "#${config.colorScheme.colors.base00}";
- foreground = "#${config.colorScheme.colors.base07}";
- frame_color = "#${config.colorScheme.colors.base03}";
- timeout = "3";
- highlight = "#${config.colorScheme.colors.base0B}";
- };
- urgency_normal = {
- background = "#${config.colorScheme.colors.base00}";
- foreground = "#${config.colorScheme.colors.base07}";
- frame_color = "#${config.colorScheme.colors.base03}";
- timeout = "5";
- highlight = "#${config.colorScheme.colors.base0C}";
- };
- urgency_critical ={
- background = "#${config.colorScheme.colors.base00}";
- foreground = "#${config.colorScheme.colors.base0F}";
- frame_color = "#${config.colorScheme.colors.base03}";
- timeout = "10";
- highlight = "#${config.colorScheme.colors.base0E}";
- };
- };
- };
-}
\ No newline at end of file
diff --git a/home/gui/eww/default.nix b/home/gui/eww/default.nix
deleted file mode 100755
index a0feab5..0000000
--- a/home/gui/eww/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- config,
- pkgs,
- lib,
- ...
-}:
-{
-
- home.packages = with pkgs; [
- eww-wayland
- jaq
- ];
-
- xdg.configFile."eww" = {
- source = lib.cleanSourceWith {
- filter = name: _type: let
- baseName = baseNameOf (toString name);
- in
- !(lib.hasSuffix ".nix" baseName) && (baseName != "_colors.scss");
- src = lib.cleanSource ./.;
- };
-
- recursive = true;
- };
-
- # colors file
- xdg.configFile."eww/css/_colors.scss".text = ''
-$base00: #${config.colorScheme.colors.base00};
-$base01: #${config.colorScheme.colors.base01};
-$base02: #${config.colorScheme.colors.base02};
-$base03: #${config.colorScheme.colors.base03};
-$base04: #${config.colorScheme.colors.base04};
-$base05: #${config.colorScheme.colors.base05};
-$base06: #${config.colorScheme.colors.base06};
-$base07: #${config.colorScheme.colors.base07};
-$base08: #${config.colorScheme.colors.base08};
-$base09: #${config.colorScheme.colors.base09};
-$base0A: #${config.colorScheme.colors.base0A};
-$base0B: #${config.colorScheme.colors.base0B};
-$base0C: #${config.colorScheme.colors.base0C};
-$base0D: #${config.colorScheme.colors.base0D};
-$base0E: #${config.colorScheme.colors.base0E};
-$base0F: #${config.colorScheme.colors.base0F};
-
-
-$fg: $base07;
-$bg: $base00;
-$bg1: $base01;
-$border: $base03;
-'';
-}
\ No newline at end of file
diff --git a/home/gui/firefox/default.nix b/home/gui/firefox/default.nix
deleted file mode 100755
index baec7a6..0000000
--- a/home/gui/firefox/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- config,
- ...
-}: {
- programs.firefox = {
- enable = true;
- profiles = {
- main = {
- id = 0;
- settings = {
- "browser.uidensity" = 1;
- "privacy.trackingprotection.enabled" = true;
- "privacy.trackingprotection.socialtracking.enabled" = true;
- "privacy.trackingprotection.socialtracking.annotate.enabled" = true;
- "services.sync.declinedEngines" = "passwords";
- "services.sync.engine.passwords" = false;
- "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
- };
- userChrome = builtins.readFile ./userChrome.css;
- };
- };
- };
- }
diff --git a/home/gui/kitty/default.nix b/home/gui/kitty/default.nix
deleted file mode 100755
index 7c43a97..0000000
--- a/home/gui/kitty/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- config,
- ...
-}: {
- programs.kitty = {
- enable = true;
- settings = {
- foreground = "#${config.colorScheme.colors.base07}";
- background = "#${config.colorScheme.colors.base00}";
- selection_foreground = "#${config.colorScheme.colors.base07}";
- selection_background = "#${config.colorScheme.colors.base03}";
- background_opacity = "0.9";
-
- cursor = "#${config.colorScheme.colors.base05}";
- cursor_text_color = "#${config.colorScheme.colors.base01}";
-
- url_color = "#${config.colorScheme.colors.base05}";
-
- active_border_color = "#${config.colorScheme.colors.base05}";
- inactive_border_color = "#${config.colorScheme.colors.base03}";
- bell_border_color = "#${config.colorScheme.colors.base09}";
-
- wayland_titlebar_color = "system";
- macos_titlebar_color = "system";
-
- active_tab_foreground = "#${config.colorScheme.colors.base0C}";
- active_tab_background = "#${config.colorScheme.colors.base01}";
- inactive_tab_foreground = "#${config.colorScheme.colors.base06}";
- inactive_tab_background = "#${config.colorScheme.colors.base00}";
- tab_bar_background = "#${config.colorScheme.colors.base02}";
-
- mark1_foreground = "#${config.colorScheme.colors.base00}";
- mark1_background = "#${config.colorScheme.colors.base0C}";
- mark2_foreground = "#${config.colorScheme.colors.base00}";
- mark2_background = "#${config.colorScheme.colors.base0E}";
- mark3_foreground = "#${config.colorScheme.colors.base00}";
- mark3_background = "#${config.colorScheme.colors.base0A}";
-
- color0= "#${config.colorScheme.colors.base00}";
- color1= "#${config.colorScheme.colors.base01}";
- color2= "#${config.colorScheme.colors.base02}";
- color3= "#${config.colorScheme.colors.base03}";
- color4= "#${config.colorScheme.colors.base04}";
- color5= "#${config.colorScheme.colors.base05}";
- color6= "#${config.colorScheme.colors.base06}";
- color7= "#${config.colorScheme.colors.base07}";
- color8= "#${config.colorScheme.colors.base08}";
- color9= "#${config.colorScheme.colors.base09}";
- color10= "#${config.colorScheme.colors.base0A}";
- color11= "#${config.colorScheme.colors.base0B}";
- color12= "#${config.colorScheme.colors.base0C}";
- color13= "#${config.colorScheme.colors.base0D}";
- color14= "#${config.colorScheme.colors.base0E}";
- color15= "#${config.colorScheme.colors.base0F}";
-
- font_size = 12;
- window-padding-width = 15;
- # ...
- };
- };
-}
\ No newline at end of file
diff --git a/home/gui/mpv/default.nix b/home/gui/mpv/default.nix
deleted file mode 100755
index 4257dc6..0000000
--- a/home/gui/mpv/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- pkgs,
- ...
-}: {
- programs.mpv = {
- enable = true;
- scripts = with pkgs; [
- mpvScripts.mpris
- ];
- };
-}
\ No newline at end of file
diff --git a/home/gui/pipewire/default.nix b/home/gui/pipewire/default.nix
deleted file mode 100755
index b049123..0000000
--- a/home/gui/pipewire/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- ...
-}:{
-
- xdg.configFile."pipewire/pipewire-pulse.conf.d/desktop.conf".text = ''
- context.modules = [
- { name = libpipewire-module-loopback
- args = {
- node.description = "Desktop"
- node.name = "Desktop"
- audio.position = [ FL FR ]
- capture.props = {
- media.class = Audio/Sink
- node.name = "Desktop"
- }
- }
- }
- { name = libpipewire-module-loopback
- args = {
- node.description = "Music"
- node.name = "Music"
- audio.position = [ FL FR ]
- capture.props = {
- media.class = Audio/Sink
- node.name = "Music"
- }
- }
- }
- ]
- '';
-}
\ No newline at end of file
diff --git a/home/gui/theme/default.nix b/home/gui/theme/default.nix
deleted file mode 100755
index c211a82..0000000
--- a/home/gui/theme/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- pkgs,
- inputs,
- config,
- ...
-}:
-let
- colorVariant = " black";
- gtkThemeFromScheme = import ./gtk-theme-gen.nix { inherit pkgs config; };
- wallpaperGen = import ./wallpaper-gen.nix {inherit pkgs config; };
-in
-{
- home.pointerCursor = {
- package = pkgs.bibata-cursors;
- name = "Bibata-Modern-Classic";
- size = 24;
- gtk.enable = true;
- x11.enable = true;
- };
-
- gtk = {
- enable = true;
- theme = {
- name = "${config.colorscheme.slug}";
- package = gtkThemeFromScheme;
- };
- iconTheme = {
- name = "tela-circle-icon-theme";
- package = pkgs.tela-circle-icon-theme;
- };
- };
-
- qt = {
- enable = true;
- platformTheme = "gtk";
- };
-
- home.packages = [
- wallpaperGen
- ];
-
- xdg.configFile."script/wallpaper.sh".text = ''
-#!/bin/sh
-
-NIXDIR=${wallpaperGen}
-WPDIR=$NIXDIR/share/wallpaper/
-
-IMGS=$(find $WPDIR -type f -print)
-
-
-RES=$(echo "$IMGS" | awk -v dir="$WPDIR" '{
- image_file = $0;
- gsub("^" dir, "", image_file);
- print "img:" $0 ":text:" image_file;
-}')
-
-IMG=$WPDIR/$(echo "$RES" | wofi --dmenu --allow-images show-icons true -theme-str '#window { width: 50%; }' -p "Choose wallpaper:")
-IMG=$(echo "$IMG" | awk -F ':' '{print $2}')
-swww img $IMG
-'';
-}
diff --git a/home/gui/theme/wallpaper-gen.nix b/home/gui/theme/wallpaper-gen.nix
deleted file mode 100644
index 6b03693..0000000
--- a/home/gui/theme/wallpaper-gen.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ pkgs, config }:
-
-let
- scheme = config.colorScheme;
- colors = scheme.colors;
- dither = "atkinson"; # none | floyd-steinberg | atkinson | jjn | burkes | sierra | sierra-lite
-in
-pkgs.stdenv.mkDerivation rec {
- pname = "generated-wallpaper";
- version = "a1676fc2a0e3dfb7bf95d8a89e592830";
- src = pkgs.fetchFromGitea {
- domain = "git.helcel.net";
- owner = "sora";
- repo = "nixconfig-wallpaper";
- rev = version;
- sha256 = "sha256-ZhBjTaKzoiEq1ptMmNWWRPCjLJsvy9My/HuzRaDjX1c=";
- };
-
- buildInputs = with pkgs; [
- custom.repalette
- nodejs
- imagemagick
- gifsicle
- ];
-
- configurePhase = ''
- echo "${colors.base00},${colors.base01},\
- ${colors.base02},${colors.base03},\
- ${colors.base04},${colors.base05},\
- ${colors.base06},${colors.base07},\
- ${colors.base08},${colors.base09},\
- ${colors.base0A},${colors.base0B},\
- ${colors.base0C},${colors.base0D},\
- ${colors.base0E},${colors.base0F}" > palette.in
- '';
-
- buildPhase = ''
- make DITHER=${dither} PALETTE_SIZE=0 all
- '';
-
- installPhase = ''
- mkdir -p $out/share/wallpaper
- cp -r build/* $out/share/wallpaper/
- '';
-}
\ No newline at end of file
diff --git a/home/gui/various/btop.nix b/home/gui/various/btop.nix
deleted file mode 100644
index 4787a2d..0000000
--- a/home/gui/various/btop.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- config,
- ...
-}: {
- xdg.configFile."btop/themes/${config.colorScheme.slug}.theme".text = ''
-
-# Theme generated from: ${config.colorScheme.slug}
-
-# Main background, empty for terminal default, need to be empty if you want transparent background
-theme[main_bg]="#${config.colorScheme.colors.base00}"
-
-# Main text color
-theme[main_fg]="#${config.colorScheme.colors.base07}"
-
-# Title color for boxes
-theme[title]="#${config.colorScheme.colors.base07}"
-
-# Higlight color for keyboard shortcuts
-theme[hi_fg]="#${config.colorScheme.colors.base0E}"
-
-# Background color of selected item in processes box
-theme[selected_bg]="#${config.colorScheme.colors.base0C}"
-
-# Foreground color of selected item in processes box
-theme[selected_fg]="#${config.colorScheme.colors.base00}"
-
-# Color of inactive/disabled text
-theme[inactive_fg]="#${config.colorScheme.colors.base02}"
-
-# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
-theme[graph_text]="#${config.colorScheme.colors.base05}"
-
-# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
-theme[proc_misc]="#${config.colorScheme.colors.base0C}"
-
-# Cpu box outline color
-theme[cpu_box]="#${config.colorScheme.colors.base02}"
-
-# Memory/disks box outline color
-theme[mem_box]="#${config.colorScheme.colors.base02}"
-
-# Net up/down box outline color
-theme[net_box]="#${config.colorScheme.colors.base02}"
-
-# Processes box outline color
-theme[proc_box]="#${config.colorScheme.colors.base02}"
-
-# Box divider line and small boxes line color
-theme[div_line]="#${config.colorScheme.colors.base02}"
-
-# Temperature graph colors
-theme[temp_start]="#${config.colorScheme.colors.base0D}"
-theme[temp_mid]=""
-theme[temp_end]="#${config.colorScheme.colors.base0F}"
-
-# CPU graph colors
-theme[cpu_start]="#${config.colorScheme.colors.base0C}"
-theme[cpu_mid]=""
-theme[cpu_end]="#${config.colorScheme.colors.base0C}"
-
-# Mem/Disk free meter
-theme[free_start]="#${config.colorScheme.colors.base0A}"
-theme[free_mid]=""
-theme[free_end]="#${config.colorScheme.colors.base0A}"
-
-# Mem/Disk cached meter
-theme[cached_start]="#${config.colorScheme.colors.base09}"
-theme[cached_mid]=""
-theme[cached_end]="#${config.colorScheme.colors.base09}"
-
-# Mem/Disk available meter
-theme[available_start]="#${config.colorScheme.colors.base0B}"
-theme[available_mid]=""
-theme[available_end]="#${config.colorScheme.colors.base0B}"
-
-# Mem/Disk used meter
-theme[used_start]="#${config.colorScheme.colors.base08}"
-theme[used_mid]=""
-theme[used_end]="#${config.colorScheme.colors.base08}"
-
-# Download graph colors
-theme[download_start]="#${config.colorScheme.colors.base02}"
-theme[download_mid]=""
-theme[download_end]="#${config.colorScheme.colors.base0D}"
-
-# Upload graph colors
-theme[upload_start]="#${config.colorScheme.colors.base02}"
-theme[upload_mid]=""
-theme[upload_end]="#${config.colorScheme.colors.base0E}"
-
- '';
-}
\ No newline at end of file
diff --git a/home/gui/various/default.nix b/home/gui/various/default.nix
deleted file mode 100755
index b053f1d..0000000
--- a/home/gui/various/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- pkgs,
- lib,
- inputs,
- ...
-}: {
- imports = [
- ./openttd.nix
- ./btop.nix
- ];
-
- home.packages = with pkgs; [
- ];
-}
\ No newline at end of file
diff --git a/home/gui/various/openttd.nix b/home/gui/various/openttd.nix
deleted file mode 100755
index b6390bb..0000000
--- a/home/gui/various/openttd.nix
+++ /dev/null
@@ -1,769 +0,0 @@
-{
- config,
- ...
-}: {
-
- xdg.configFile."openttd/openttd.cfg".text = ''
-[misc]
-display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS
-extra_display_opt = SHOW_MONEY_TEXT_EFFECTS
-fullscreen = false
-video_hw_accel = true
-video_vsync = true
-support8bpp = no
-graphicsset =
-soundsset = "NoSound"
-musicset =
-videodriver =
-musicdriver =
-sounddriver =
-blitter =
-language = english.lng
-resolution = 1920,1080
-screenshot_format =
-savegame_format =
-rightclick_emulate = false
-small_font = IBM Plex Mono
-medium_font = IBM Plex Mono
-large_font = IBM Plex Mono
-mono_font = IBM Plex Mono
-small_size = 8
-medium_size = 11
-large_size = 14
-mono_size = 11
-small_aa = true
-medium_aa = true
-large_aa = true
-mono_aa = true
-sprite_cache_size_px = 128
-player_face = 0
-transparency_options = 511
-transparency_locks = 0
-invisibility_options = 2
-keyboard =
-keyboard_caps =
-last_newgrf_count = 27
-gui_zoom = 2
-font_zoom = 2
-zoning_overlay_inner = 0
-zoning_overlay_outer = 0
-cargo_payment_x_mode = 0
-extra_transparency_options = 1
-extra_transparency_locks = 0
-gui_scale = -1
-
-[difficulty]
-max_no_competitors = 0
-number_towns = 2
-industry_density = 3
-max_loan = 300000
-initial_interest = 2
-vehicle_costs = 0
-competitor_speed = 2
-vehicle_breakdowns = 1
-subsidy_multiplier = 2
-construction_cost = 0
-terrain_type = 2
-quantity_sea_lakes = 1
-economy = false
-line_reverse_mode = false
-disasters = false
-town_council_tolerance = 0
-money_cheat_in_multiplayer = false
-rename_towns_in_multiplayer = false
-vehicle_costs_in_depot = 1
-vehicle_costs_when_stopped = 1
-subsidy_duration = 1
-override_town_settings_in_multiplayer = false
-
-[game_creation]
-town_name = 21
-landscape = temperate
-heightmap_height = 26
-snow_line_height = 10
-rainforest_line_height = 8
-climate_threshold_mode = 0
-snow_coverage = 20
-desert_coverage = 50
-starting_year = 1900
-ending_year = 2050
-land_generator = 1
-oil_refinery_limit = 32
-tgen_smoothness = 1
-variety = 3
-generation_seed = 2479758246
-generation_unique_id = 0
-tree_placer = 2
-heightmap_rotation = 1
-se_flat_world_height = 1
-map_x = 7
-map_y = 7
-water_borders = 15
-custom_town_number = 1
-custom_terrain_type = 30
-custom_sea_level = 1
-min_river_length = 16
-river_route_random = 5
-rivers_top_of_hill = true
-river_tropics_width = 5
-lake_size = 10
-lakes_allowed_in_deserts = false
-amount_of_rivers = 2
-amount_of_rocks = 5
-height_affects_rocks = 0
-build_public_roads = 2
-custom_industry_number = 1
-lake_tropics_width = 5
-coast_tropics_width = 0
-
-[vehicle]
-road_side = right
-train_acceleration_model = 1
-train_braking_model = 0
-roadveh_acceleration_model = 1
-train_slope_steepness = 3
-roadveh_slope_steepness = 7
-max_train_length = 12
-smoke_amount = 1
-never_expire_vehicles = false
-no_expire_vehicles_after = 0
-no_introduce_vehicles_after = 0
-max_trains = 500
-max_roadveh = 500
-max_aircraft = 0
-max_ships = 300
-wagon_speed_limits = true
-disable_elrails = false
-freight_trains = 1
-plane_speed = 4
-dynamic_engines = true
-plane_crashes = 2
-improved_breakdowns = false
-ship_collision_avoidance = true
-no_train_crash_other_company = false
-flip_direction_all_trains = false
-roadveh_articulated_overtaking = true
-drive_through_train_depot = false
-extend_vehicle_life = 0
-adjacent_crossings = true
-safer_crossings = true
-pay_for_repair = true
-repair_cost = 100
-servint_ispercent = false
-servint_trains = 150
-servint_roadveh = 150
-servint_ships = 360
-servint_aircraft = 100
-auto_timetable_by_default = true
-auto_separation_by_default = true
-slow_road_vehicles_in_curves = true
-train_speed_adaptation = false
-realistic_braking_aspect_limited = 0
-through_load_speed_limit = 15
-roadveh_cant_quantum_tunnel = false
-rail_depot_speed_limit = 61
-
-[construction]
-map_height_limit = 0
-build_on_slopes = true
-command_pause_level = 2
-enable_build_river = true
-enable_remove_water = true
-terraform_per_64k_frames = 4194304
-terraform_frame_burst = 4096
-clear_per_64k_frames = 4194304
-clear_frame_burst = 4096
-tree_per_64k_frames = 4194304
-tree_frame_burst = 4096
-purchase_land_per_64k_frames = 1048576
-purchase_land_frame_burst = 1024
-build_object_per_64k_frames = 2097152
-build_object_frame_burst = 2048
-autoslope = true
-extra_dynamite = true
-max_bridge_length = 128
-max_bridge_height = 12
-max_tunnel_length = 128
-chunnel = true
-train_signal_side = 1
-road_stop_on_town_road = true
-road_stop_on_competitor_road = true
-road_custom_bridge_heads = true
-rail_custom_bridge_heads = true
-allow_grf_objects_under_bridges = false
-allow_stations_under_bridges = false
-allow_road_stops_under_bridges = true
-allow_docks_under_bridges = true
-purchase_land_permitted = 2
-build_object_area_permitted = true
-raw_industry_construction = 0
-industry_platform = 1
-maximum_signal_evaluations = 256
-freeform_edges = true
-extra_tree_placement = 2
-trees_around_snow_line_enabled = true
-trees_around_snow_line_range = 8
-tree_growth_rate = 0
-no_expire_objects_after = 0
-ignore_object_intro_dates = false
-trees_around_snow_line_dynamic_range = 75
-
-[station]
-never_expire_airports = false
-station_spread = 16
-modified_catchment = true
-catchment_increase = 0
-cargo_class_rating_wait_time = false
-station_size_rating_cargo_amount = false
-serve_neutral_industries = true
-adjacent_stations = true
-distant_join_stations = true
-station_delivery_mode = 0
-
-[economy]
-town_layout = 1
-allow_town_roads = true
-found_town = 1
-allow_town_level_crossings = true
-town_cargogen_mode = 1
-town_cargo_scale_factor = 0
-industry_cargo_scale_factor = 0
-station_noise_level = false
-inflation = false
-inflation_fixed_dates = true
-day_length_factor = 5
-multiple_industry_per_town = false
-bribe = true
-exclusive_rights = true
-fund_buildings = true
-fund_roads = true
-give_money = true
-type = 1
-allow_shares = false
-min_years_for_shares = 6
-feeder_payment_share = 75
-town_growth_rate = 2
-town_zone_calc_mode = false
-town_zone_0_mult = 15
-town_zone_1_mult = 9
-town_zone_2_mult = 0
-town_zone_3_mult = 5
-town_zone_4_mult = 3
-city_zone_0_mult = 15
-city_zone_1_mult = 9
-city_zone_2_mult = 0
-city_zone_3_mult = 5
-city_zone_4_mult = 3
-town_growth_cargo_transported = 0
-larger_towns = 4
-initial_city_size = 2
-mod_road_rebuild = true
-town_min_distance = 20
-infrastructure_sharing[0] = true
-infrastructure_sharing[1] = true
-infrastructure_sharing[2] = true
-infrastructure_sharing[3] = false
-sharing_fee[0] = 100
-sharing_fee[1] = 100
-sharing_fee[2] = 100
-sharing_fee[3] = 100
-sharing_payment_in_debt = true
-dist_local_authority = 20
-town_noise_population[0] = 800
-town_noise_population[1] = 2000
-town_noise_population[2] = 4000
-infrastructure_maintenance = false
-random_road_reconstruction = 0
-max_town_heightlevel = 255
-min_town_land_area = 0
-min_city_land_area = 75
-town_build_tunnels = 2
-town_max_road_slope = 4
-allow_town_bridges = true
-disable_inflation_newgrf_flag = false
-payment_algorithm = 1
-
-[linkgraph]
-recalc_interval = 4
-recalc_time = 16
-recalc_not_scaled_by_daylength = true
-distribution_pax = 2
-distribution_mail = 2
-distribution_armoured = 0
-distribution_default = 0
-accuracy = 16
-demand_distance = 100
-demand_size = 100
-short_path_saturation = 80
-aircraft_link_scale = 100
-
-[pf]
-forbid_90_deg = false
-roadveh_queue = true
-reroute_rv_on_layout_change = 1
-pathfinder_for_trains = 2
-pathfinder_for_roadvehs = 2
-pathfinder_for_ships = 2
-reverse_at_signals = false
-wait_oneway_signal = 15
-wait_twoway_signal = 41
-wait_for_pbs_path = 30
-reserve_paths = false
-path_backoff_interval = 20
-npf.npf_max_search_nodes = 10000
-npf.npf_rail_firstred_penalty = 1000
-npf.npf_rail_firstred_exit_penalty = 10000
-npf.npf_rail_lastred_penalty = 1000
-npf.npf_rail_station_penalty = 100
-npf.npf_rail_slope_penalty = 100
-npf.npf_rail_curve_penalty = 100
-npf.npf_rail_depot_reverse_penalty = 5000
-npf.npf_rail_pbs_cross_penalty = 300
-npf.npf_rail_pbs_signal_back_penalty = 1500
-npf.npf_buoy_penalty = 200
-npf.npf_water_curve_penalty = 100
-npf.npf_road_curve_penalty = 100
-npf.npf_crossing_penalty = 300
-npf.npf_road_drive_through_penalty = 800
-npf.npf_road_dt_occupied_penalty = 800
-npf.npf_road_bay_occupied_penalty = 1500
-npf.maximum_go_to_depot_penalty = 2000
-yapf.disable_node_optimization = false
-yapf.max_search_nodes = 10000
-yapf.rail_firstred_twoway_eol = false
-yapf.rail_firstred_penalty = 1000
-yapf.rail_firstred_exit_penalty = 10000
-yapf.rail_lastred_penalty = 1000
-yapf.rail_lastred_exit_penalty = 10000
-yapf.rail_station_penalty = 1000
-yapf.rail_slope_penalty = 200
-yapf.rail_curve45_penalty = 100
-yapf.rail_curve90_penalty = 600
-yapf.rail_depot_reverse_penalty = 5000
-yapf.rail_crossing_penalty = 300
-yapf.rail_look_ahead_max_signals = 10
-yapf.rail_look_ahead_signal_p0 = 500
-yapf.rail_look_ahead_signal_p1 = -100
-yapf.rail_look_ahead_signal_p2 = 5
-yapf.rail_pbs_cross_penalty = 300
-yapf.rail_pbs_station_penalty = 800
-yapf.rail_pbs_signal_back_penalty = 1500
-yapf.rail_doubleslip_penalty = 100
-yapf.rail_longer_platform_penalty = 800
-yapf.rail_longer_platform_per_tile_penalty = 0
-yapf.rail_shorter_platform_penalty = 4000
-yapf.rail_shorter_platform_per_tile_penalty = 0
-yapf.road_slope_penalty = 200
-yapf.road_curve_penalty = 100
-yapf.road_crossing_penalty = 300
-yapf.road_stop_penalty = 800
-yapf.road_stop_occupied_penalty = 800
-yapf.road_stop_bay_occupied_penalty = 1500
-yapf.maximum_go_to_depot_penalty = 2000
-yapf.ship_curve45_penalty = 100
-yapf.ship_curve90_penalty = 600
-back_of_one_way_pbs_waiting_point = true
-
-[order]
-no_servicing_if_no_breakdowns = true
-improved_load = true
-selectgoods = true
-serviceathelipad = true
-nonstop_only = false
-gradual_loading = true
-
-[script]
-settings_profile = easy
-script_max_opcode_till_suspend = 10000
-script_max_memory_megabytes = 1024
-
-[ai]
-ai_in_multiplayer = true
-ai_disable_veh_train = false
-ai_disable_veh_roadveh = false
-ai_disable_veh_aircraft = false
-ai_disable_veh_ship = false
-
-[locale]
-currency = CHF
-units_velocity = metric
-units_power = si
-units_weight = metric
-units_volume = metric
-units_force = si
-units_height = si
-digit_group_separator =
-digit_group_separator_currency =
-digit_decimal_separator =
-units_velocity_nautical = metric
-
-[gui]
-autosave = monthly
-threaded_saves = true
-date_format_in_default_names = iso
-show_finances = true
-auto_scrolling = 0
-scroll_mode = 0
-smooth_scroll = false
-right_mouse_wnd_close = true
-measure_tooltip = true
-errmsg_duration = 5
-hover_delay_ms = 250
-osk_activation = disabled
-toolbar_pos = 1
-statusbar_pos = 1
-window_snap_radius = 10
-window_soft_limit = 20
-zoom_min = 0
-zoom_max = 9
-sprite_zoom_min = 0
-population_in_label = true
-link_terraform_toolbar = false
-smallmap_land_colour = 0
-liveries = 2
-starting_colour = 16
-auto_remove_signals = false
-prefer_teamchat = false
-scrollwheel_scrolling = 0
-scrollwheel_multiplier = 5
-viewport_map_scan_surroundings = true
-show_slopes_on_viewport_map = true
-show_bridges_on_map = true
-show_tunnels_on_map = true
-show_vehicle_route = 1
-dash_level_of_route_lines = 0
-use_owner_colour_for_tunnelbridge = false
-show_scrolling_viewport_on_map = 3
-default_viewport_map_mode = 0
-action_when_viewport_map_is_dblclicked = 1
-pause_on_newgame = true
-advanced_vehicle_list = 1
-timetable_in_ticks = false
-timetable_leftover_ticks = false
-override_time_settings = false
-time_in_minutes = false
-ticks_per_minute = 74
-clock_offset = 0
-date_with_time = 0
-timetable_start_text_entry = false
-timetable_arrival_departure = true
-max_departures = 10
-max_departure_time = 120
-departure_calc_frequency = 10
-departure_show_vehicle = false
-departure_show_group = false
-departure_show_company = false
-departure_show_vehicle_type = false
-departure_show_vehicle_color = false
-departure_larger_font = false
-departure_destination_type = false
-departure_show_both = false
-departure_only_passengers = false
-departure_smart_terminus = false
-departure_show_all_stops = false
-departure_merge_identical = false
-departure_conditionals = 0
-quick_goto = true
-loading_indicators = 1
-default_rail_type = 0
-default_road_type = 0
-enable_signal_gui = true
-coloured_news_year = 2000
-drag_signals_density = 4
-drag_signals_fixed_distance = false
-semaphore_build_before = 1950
-vehicle_income_warn = true
-order_review_system = 2
-no_depot_order_warn = false
-lost_vehicle_warn = true
-restriction_wait_vehicle_warn = false
-new_nonstop = true
-stop_location = 2
-keep_all_autosave = false
-autosave_on_exit = false
-autosave_on_network_disconnect = true
-max_num_autosaves = 16
-savegame_overwrite_confirm = yes
-auto_euro = true
-news_message_timeout = 2
-show_track_reservation = true
-default_signal_type = 4
-cycle_signal_types = 0
-station_numtracks = 4
-station_platlength = 7
-station_dragdrop = false
-station_show_coverage = true
-persistent_buildingtools = true
-expenses_layout = true
-station_gui_group_order = 3
-station_gui_sort_by = 0
-station_gui_sort_order = 0
-missing_strings_threshold = 25
-graph_line_thickness = 3
-show_vehicle_route_steps = true
-show_train_length_in_details = true
-show_train_weight_ratios_in_details = false
-show_vehicle_group_in_details = true
-show_vehicle_list_company_colour = true
-show_restricted_signal_default = true
-show_adv_tracerestrict_features = true
-show_progsig_ui = true
-show_veh_list_cargo_filter = true
-enable_single_veh_shared_order_gui = false
-show_adv_load_mode_features = true
-disable_top_veh_list_mass_actions = false
-adv_sig_bridge_tun_modes = true
-show_depot_sell_gui = false
-open_vehicle_gui_clone_share = false
-show_newgrf_name = false
-linkgraph_colours = 0
-vehicle_names = 1
-shade_trees_on_slopes = true
-show_date_in_logs = false
-settings_restriction_mode = 2
-developer = 1
-newgrf_developer_tools = false
-ai_developer_tools = false
-scenario_developer = false
-newgrf_show_old_versions = false
-newgrf_default_palette = 1
-console_show_unlisted = false
-console_backlog_timeout = 100
-console_backlog_length = 100
-refresh_rate = 60
-fast_forward_speed_limit = 2500
-network_chat_box_width_pct = 40
-network_chat_box_height = 25
-network_chat_timeout = 20
-sort_track_types_by_speed = false
-station_rating_tooltip_mode = 1
-demolish_confirm_mode = 2
-experimental_dual_pane_train_purchase_window = false
-dual_pane_train_purchase_window = true
-show_noentrysig_ui = true
-autosave_custom_days = 14
-autosave_custom_minutes = 30
-signal_gui_mode = 0
-show_all_signal_default = true
-show_wagon_intro_year = false
-allow_hiding_waypoint_labels = false
-disable_water_animation = 255
-show_order_occupancy_by_default = false
-show_order_management_button = false
-show_group_hierarchy_name = false
-show_vehicle_group_hierarchy_name = false
-newgrf_disable_big_gui = false
-show_vehicle_route_mode = 1
-dual_pane_train_purchase_window_dual_buttons = true
-zoom_max_extra = 9
-show_cargo_in_vehicle_lists = false
-scale_bevels = true
-
-[game_time]
-time_in_minutes = false
-ticks_per_minute = 74
-clock_offset = 0
-
-[sound]
-news_ticker = false
-news_full = false
-new_year = false
-confirm = false
-click_beep = false
-disaster = false
-vehicle = false
-ambient = false
-
-[music]
-playlist = 0
-music_vol = 50
-effect_vol = 100
-custom_1 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-custom_2 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-playing = true
-shuffle = false
-
-[news_display]
-arrival_player = full
-arrival_other = summarized
-accident = full
-company_info = full
-open = summarized
-close = summarized
-economy = full
-production_player = summarized
-production_other = off
-production_nobody = off
-advice = full
-new_vehicles = full
-acceptance = full
-subsidies = summarized
-general = full
-accident_other = full
-
-[scenario]
-multiple_buildings = false
-house_ignore_dates = false
-house_ignore_zones = 0
-house_ignore_grf = false
-
-[network]
-commands_per_frame = 2
-max_commands_in_queue = 16
-bytes_per_frame = 8
-bytes_per_frame_burst = 256
-max_init_time = 100
-max_join_time = 500
-max_download_time = 1000
-max_password_time = 2000
-max_lag_time = 500
-pause_on_join = true
-server_port = 3979
-server_admin_port = 3977
-server_admin_chat = true
-autoclean_companies = false
-autoclean_unprotected = 12
-autoclean_protected = 36
-autoclean_novehicles = 0
-max_companies = 15
-max_clients = 25
-max_spectators = 15
-restart_game_year = 0
-min_active_clients = 0
-reload_cfg = false
-last_host =
-last_port = 0
-no_http_content_downloads = false
-server_game_type = public
-use_relay_service = ask
-
-[currency]
-rate = 1
-separator = "."
-to_euro = 0
-prefix =
-suffix = " credits"
-
-[company]
-engine_renew = true
-engine_renew_months = 6
-engine_renew_money = 100000
-renew_keep_length = false
-auto_timetable_separation_rate = 40
-timetable_autofill_rounding = 74
-order_occupancy_smoothness = 75
-infra_others_buy_in_depot[0] = false
-infra_others_buy_in_depot[1] = false
-infra_others_buy_in_depot[2] = false
-infra_others_buy_in_depot[3] = false
-advance_order_on_clone = false
-copy_clone_add_to_group = true
-simulated_wormhole_signals = 4
-remain_if_next_order_same_station = true
-
-[ai_players]
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-none = start_date=730
-
-[game_scripts]
-none =
-
-[version]
-version_string = jgrpp-0.53.3
-version_number = 1E006D64
-ini_version = 2
-
-[preset-TEST]
-444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
-52571203|2E00A55DF056E0F4BD7BBC2517514DC7|egrvts2-202/egrvts2.grf = 0 62 2 0
-45520C00|FCF4EE39F19C02D9E8603D07621DDD99|japanese_town_names.0.6/jpset_namw.grf =
-52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
-474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
-52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
-2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
-45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
-52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
-44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
-42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
-535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 2 1 1 1 0 1 0 0
-44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
-736C6602|2DB244FD410D77FCCE2DE6D5AF09DF51|japanese_city_names-1/jpcities.grf =
-"454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
-1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
-454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
-41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
-74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
-4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
-4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
-56420202|B2EB887D411D23173688A4F72BE7184C|purr_universal_rainbow_rails-0.0.7/purr.grf = 0 1 0 0 0 0 0 0 0 0 0 0 20 35 35 35 35
-
-[client_locale]
-sync_locale_network_server = false
-
-[preset-MAIN]
-41560103|FAD3EB34DE1CBAF515FD7A870C4F9A08|egrvts_v2.1-r237/egrvts2_1.grf = 0 63 0 3 0
-4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
-41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
-52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
-474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
-52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
-2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
-45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
-52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
-44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
-42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
-4B523033|A2FD753BC20D1F1F7E0DF9AD5F09FECB|jp_shinkansen-0.2.1/jpplusshinkansen_v0.2.1.grf = 1 2 1 0 1 0 1
-595AAA01|24705D6F58BF2D6686AF3915B5CE7006|jp_metro_set-5.1/jpmetro.grf = 1 1 2
-444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
-"454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
-1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
-454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
-74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
-4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
-F1250008|6A2E778BFF67AB76437696ED1C3C780A|firs_industry_replacement_set_4-4.15.1/firs.grf = 1 0 0 0 0 0 16 150 80 300 1
-535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 1 0 1 1 0 1 0 0
-44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
-
-[newgrf]
-41560103|FAD3EB34DE1CBAF515FD7A870C4F9A08|egrvts_v2.1-r237/egrvts2_1.grf = 0 63 0 3 0
-4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
-41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
-52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
-474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
-52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
-2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
-45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
-52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
-44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
-42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
-4B523033|A2FD753BC20D1F1F7E0DF9AD5F09FECB|jp_shinkansen-0.2.1/jpplusshinkansen_v0.2.1.grf = 1 2 1 0 1 0 1
-595AAA01|24705D6F58BF2D6686AF3915B5CE7006|jp_metro_set-5.1/jpmetro.grf = 1 1 2
-444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
-"454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
-1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
-454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
-74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
-4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
-F1250008|6A2E778BFF67AB76437696ED1C3C780A|firs_industry_replacement_set_4-4.15.1/firs.grf = 1 0 0 0 0 0 16 150 80 300 1
-535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 1 0 1 1 0 1 0 0
-44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
-
-[newgrf-static]
-
- '';
-
-
-}
\ No newline at end of file
diff --git a/home/gui/vosk/default.nix b/home/gui/vosk/default.nix
deleted file mode 100644
index 8b8683d..0000000
--- a/home/gui/vosk/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-
-{
- pkgs,
- lib,
- inputs,
- ...
-}: {
- home.packages = with pkgs; [
- custom.vosk
- custom.voskcli
- custom.vosk-lang.en-us
- custom.vosk-lang.ja
- custom.vosk-lang.de
- custom.vosk-lang.ru
- jq
- (python3.withPackages(ps: with ps; [ translatepy ]))
- ];
-
-xdg.configFile."script/transcript-translate.py".text = ''
-#!/bin/python
-
-import sys;
-from translatepy.translators.google import GoogleTranslate;
-
-if len(sys.argv) != 2:
- print("No language provided.")
- exit
-translator = GoogleTranslate()
-while True:
- for line in sys.stdin:
- sys.stdout.write(translator.translate(line,sys.argv[1]).result+"\n")
-'';
-
- xdg.configFile."script/transcript.sh".text = ''
-#!/bin/sh
-
-MODELS=(
- "English:${pkgs.custom.vosk-lang.en-us}/usr/share/vosk-models/en-us"
- "German:${pkgs.custom.vosk-lang.de}/usr/share/vosk-models/de"
- "Russian:${pkgs.custom.vosk-lang.ru}/usr/share/vosk-models/ru"
- "Japanese:${pkgs.custom.vosk-lang.ja}/usr/share/vosk-models/ja"
-)
-
-MODEL_OPTS=""
-for pair in "''${MODELS[@]}"; do
- MODEL_OPTS+="$pair\n"
-done
-
-MODEL_OPT=$(echo -e "$MODEL_OPTS" | wofi --dmenu -p "Choose model:")
-MODEL=$(echo "$MODEL_OPT" | awk -F ':' '{print $2}')
-
-TRANSS="None\nNone-prog\nEnglish\nGerman\nRussian\nJapanese"
-TRANS=$(echo -e "$TRANSS" | wofi --dmenu -p "Choose translation:")
-
-export VOSK_MODEL=$MODEL
-case $TRANS in
- "None")
- voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' 2>/dev/null
- ;;
- "None-prog")
- voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty, .partial // empty | select(length > 0)' 2>/dev/null
- ;;
- *)
- voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' | python ~/.config/script/transcript-translate.py $TRANS
- ;;
-esac
-'';
-
-}
\ No newline at end of file
diff --git a/home/gui/wayland/default.nix b/home/gui/wayland/default.nix
deleted file mode 100755
index fa6dbed..0000000
--- a/home/gui/wayland/default.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- pkgs,
- config,
- ...
-}:
-let
- wlogout_pkg = pkgs.wlogout;
-in
-{
-
-xdg.configFile."swaylock/config".text =
-''
-screenshots
-grace=5
-effect-pixelate=5
-fade-in=0.2
-
-ignore-empty-password
-font=IBM Plex Mono
-
-color=${config.colorscheme.colors.base00}00
-
-indicator-radius=100
-indicator-thickness=30
-
-separator-color=${config.colorscheme.colors.base00}00
-
-inside-color=${config.colorscheme.colors.base0C}00
-inside-clear-color=${config.colorscheme.colors.base08}FF
-inside-caps-lock-color=${config.colorscheme.colors.base09}00
-inside-ver-color=${config.colorscheme.colors.base0C}FF
-inside-wrong-color=${config.colorscheme.colors.base0F}FF
-
-
-ring-color=${config.colorscheme.colors.base00}00
-ring-clear-color=${config.colorscheme.colors.base00}00
-ring-caps-lock-color=${config.colorscheme.colors.base00}00
-ring-ver-color=${config.colorscheme.colors.base00}00
-ring-wrong-color=${config.colorscheme.colors.base00}00
-
-line-color=${config.colorscheme.colors.base00}00
-line-clear-color=${config.colorscheme.colors.base00}00
-line-caps-lock-color=${config.colorscheme.colors.base00}00
-line-ver-color=${config.colorscheme.colors.base00}00
-line-wrong-color=${config.colorscheme.colors.base00}00
-
-text-color=${config.colorscheme.colors.base00}00
-text-clear-color=${config.colorscheme.colors.base00}00
-text-caps-lock-color=${config.colorscheme.colors.base00}00
-text-ver-color=${config.colorscheme.colors.base00}00
-text-wrong-color=${config.colorscheme.colors.base00}00
-
-
-key-hl-color=${config.colorscheme.colors.base0C}FF
-bs-hl-color=${config.colorscheme.colors.base08}FF
-caps-lock-key-hl-color=${config.colorscheme.colors.base09}FF
-caps-lock-bs-hl-color=${config.colorscheme.colors.base09}FF
-'';
-
-xdg.configFile."wlogout/style.css".text =
-''
-window {
- font-family: Material Design Icons;
- font-size: 64pt;
- color: #${config.colorscheme.colors.base07};
- background-color: alpha(#${config.colorscheme.colors.base00},0.6);
-}
-
-button {
- border-radius:7px;
- border: 2px solid #${config.colorscheme.colors.base03};
- color: #${config.colorscheme.colors.base07};
- padding: 20px;
- background-color: alpha(#${config.colorscheme.colors.base00},0.8);
- transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
-}
-
-button:hover {
- background-color: alpha(#${config.colorscheme.colors.base02},0.8);
-}
-
-button:focus {
- background-color: alpha(#${config.colorscheme.colors.base02},1.0);
- border: 2px solid #${config.colorscheme.colors.base05};
-}
-
-'';
-
-xdg.configFile."wlogout/layout".text =
-''
-{
- "label" : "lock",
- "action" : "swaylock",
- "text" : "",
- "keybind" : "l"
-}
-{
- "label" : "reboot",
- "action" : "systemctl reboot",
- "text" : "",
- "keybind" : "r"
-}
-{
- "label" : "shutdown",
- "action" : "systemctl poweroff",
- "text" : "",
- "keybind" : "s"
-}
-'';
-
-}
\ No newline at end of file
diff --git a/home/gui/wofi/default.nix b/home/gui/wofi/default.nix
deleted file mode 100755
index 1a7ff7d..0000000
--- a/home/gui/wofi/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- config,
- ...
-}: {
-
- xdg.configFile."wofi/config".text = ''
- width=280
- lines=10
- xoffset=5
- yoffset=5
- location=2
- prompt=
- filter_rate=100
- allow_markup=false
- no_actions=true
- halign=fill
- orientation=vertical
- content_halign=fill
- insensitive=true
- allow_images=true
- image_size=16
- hide_scroll=true
- '';
- xdg.configFile."wofi/style.css".text = ''
- window {
- margin: 0px;
- border-radius:7px;
- background-color: #${config.colorscheme.colors.base00};
- }
-
- #input {
- all: unset;
- min-height: 20px;
- padding: 4px 10px;
- margin: 4px;
- border: none;
- color: #${config.colorscheme.colors.base07};
- font-weight: bold;
- background-color: #${config.colorscheme.colors.base01};
- outline: #${config.colorscheme.colors.base04};
- }
-
- #input:selected {
- color: #${config.colorscheme.colors.base0C};
- }
-
- #inner-box {
- font-weight: bold;
- border-radius: 0px;
- }
-
- #outer-box {
- margin: 0px;
- padding: 3px;
- border-radius: 7px;
- border: 2px solid #${config.colorscheme.colors.base03};
- }
-
- #text:selected {
- color: #${config.colorscheme.colors.base00};
- background-color: transparent;
- }
-
- #entry:selected {
- background-color: #${config.colorscheme.colors.base07};
- }
- '';
-
-}
\ No newline at end of file
diff --git a/home/gui/zathura/default.nix b/home/gui/zathura/default.nix
deleted file mode 100755
index 23ef766..0000000
--- a/home/gui/zathura/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- config,
- ...
-}: {
- programs.zathura = {
- enable = true;
- extraConfig = ''
- set default-fg "#${config.colorScheme.colors.base06}"
- set default-bg "#${config.colorScheme.colors.base00}"
-
- set completion-bg "#${config.colorScheme.colors.base02}"
- set completion-fg "#${config.colorScheme.colors.base06}"
- set completion-highlight-bg "#${config.colorScheme.colors.base03}"
- set completion-highlight-fg "#${config.colorScheme.colors.base06}"
- set completion-group-bg "#${config.colorScheme.colors.base01}"
- set completion-group-fg "#${config.colorScheme.colors.base0C}"
-
- set statusbar-fg "#${config.colorScheme.colors.base06}"
- set statusbar-bg "#${config.colorScheme.colors.base01}"
-
- set notification-bg "#${config.colorScheme.colors.base01}"
- set notification-fg "#${config.colorScheme.colors.base06}"
- set notification-error-bg "#${config.colorScheme.colors.base01}"
- set notification-error-fg "#${config.colorScheme.colors.base0F}"
- set notification-warning-bg "#${config.colorScheme.colors.base01}"
- set notification-warning-fg "#${config.colorScheme.colors.base09}"
-
- set inputbar-fg "#${config.colorScheme.colors.base06}"
- set inputbar-bg "#${config.colorScheme.colors.base01}"
-
- set recolor-lightcolor "#${config.colorScheme.colors.base00}"
- set recolor-darkcolor "#${config.colorScheme.colors.base06}"
-
- set index-fg "#${config.colorScheme.colors.base06}"
- set index-bg "#${config.colorScheme.colors.base00}"
- set index-active-fg "#${config.colorScheme.colors.base06}"
- set index-active-bg "#${config.colorScheme.colors.base01}"
-
- set render-loading-bg "#${config.colorScheme.colors.base00}"
- set render-loading-fg "#${config.colorScheme.colors.base06}"
-
- set highlight-color "#${config.colorScheme.colors.base04}"
- set highlight-fg "#${config.colorScheme.colors.base0E}"
- set highlight-active-color "#${config.colorScheme.colors.base0E}"
-
- '';
- };
-}
\ No newline at end of file
diff --git a/home/wayland/default.nix b/home/wayland/default.nix
deleted file mode 100755
index e94aa4c..0000000
--- a/home/wayland/default.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- pkgs,
- ...
-}:
-
-let
- dbus-hyprland-environment = pkgs.writeTextFile {
- name = "dbus-hyprland-environment";
- destination = "/bin/dbus-hyprland-environment";
- executable = true;
- text = ''
- dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
- systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
- systemctl --user start pipewire wireplumber pipewire-media-session xdg-desktop-portal xdg-desktop-portal-hyprland
- '';
- };
- in
-{
-
- imports = [
- ../../modules/greetd.nix
- ];
-
- environment.systemPackages = with pkgs; [
- dbus-hyprland-environment
- xdg-user-dirs
- wayland
- grim
- slurp
- swappy
- cliphist
- wl-clipboard
- wlogout
- wlr-randr
- wdisplays
- kanshi
- glib
- ];
-
- services.dbus.enable = true;
- xdg.portal = {
- enable = true;
- # wlr.enable = true;
- extraPortals = with pkgs; [
- xdg-desktop-portal-hyprland
- xdg-desktop-portal
- ];
- };
-
- programs.xwayland.enable = true;
-
- environment.sessionVariables = rec {
- GBM_BACKEND = "amd-drm";
- __GL_GSYNC_ALLOWED = "0";
- __GL_VRR_ALLOWED = "0";
- WLR_DRM_NO_ATOMIC = "1";
- __GLX_VENDOR_LIBRARY_NAME = "amd";
- _JAVA_AWT_WM_NONREPARENTING = "1";
- QT_QPA_PLATFORM = "wayland";
- QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
- GDK_BACKEND = "wayland";
- WLR_NO_HARDWARE_CURSORS = "1";
- MOZ_ENABLE_WAYLAND = "1";
- WLR_BACKEND = "vulkan";
- WLR_RENDERER = "vulkan";
- XCURSOR_SIZE = "24";
- NIXOS_OZONE_WL = "1";
- PATH = [
- "$HOME/.local/bin/:$PATH"
- ];
- XDG_CACHE_HOME = "$HOME/.cache";
- XDG_CONFIG_HOME = "$HOME/.config";
- XDG_DATA_HOME = "$HOME/.local/share";
- XDG_STATE_HOME = "$HOME/.local/state";
- XDG_BIN_HOME = "$HOME/.local/bin";
- };
-
- environment.etc."greetd/environments".text = ''
- Hyprland
- '';
-
- environment.etc."xdg/user-dirs.defaults".text = ''
- XDG_DESKTOP_DIR="$HOME/desktop"
- XDG_DOCUMENTS_DIR="$HOME/files"
- XDG_DOWNLOAD_DIR="$HOME/download"
- XDG_MUSIC_DIR="$HOME/media/music"
- XDG_PICTURES_DIR="$HOME/media/photo"
- XDG_PUBLICSHARE_DIR="$HOME/pub"
- XDG_TEMPLATES_DIR="$HOME/media/templates"
- XDG_VIDEOS_DIR="$HOME/media/video"
- '';
-
-}
\ No newline at end of file
diff --git a/home/wayland/hyprland/config.nix b/home/wayland/hyprland/config.nix
deleted file mode 100755
index 6b4e1f0..0000000
--- a/home/wayland/hyprland/config.nix
+++ /dev/null
@@ -1,227 +0,0 @@
-{
- config,
- ...
-}: {
- wayland.windowManager.hyprland.extraConfig = ''
-
-monitor=,preferred,auto,1
-
-input {
- kb_layout = us, ru
- kb_variant = intl, phonetic
- kb_model = pc104
- kb_options = grp:ctrls_toggle
- kb_rules =
-
- follow_mouse = 1
-
- sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification.
- force_no_accel = true
-
- touchpad {
- natural_scroll=no
- disable_while_typing=true
- scroll_factor=1
- disable_while_typing=0
- tap-to-click=0
- }
-}
-
-misc {
- disable_hyprland_logo=true
- animate_mouse_windowdragging=false
- animate_manual_resizes=false
-}
-
-general {
- gaps_in = 8
- gaps_out = 15
- border_size = 2
-
- #col.active_border = rgb(${config.colorScheme.colors.base05})
- #col.inactive_border = rgb(${config.colorScheme.colors.base03})
- #col.group_border_active = rgb(${config.colorScheme.colors.base05})
- #col.group_border = rgb(${config.colorScheme.colors.base03})
-
- layout = dwindle
-}
-
-decoration {
- rounding = 7
-
- blur {
- enabled = true
- size = 2
- passes = 1
- new_optimizations = true
- }
- #multisample_edges = true
-
- #opactity
- inactive_opacity = 1.0
- active_opacity = 1.0
- fullscreen_opacity = 1.0
-
- # shadow
- drop_shadow = no
- shadow_range = 60
- shadow_offset = 0 5
- shadow_render_power = 4
- col.shadow = rgba(00000099)
-}
-
-animations {
- enabled = false
-}
-
-dwindle {
- pseudotile = yes
- # force_split = 0
- preserve_split = yes
-}
-
-master {
- new_is_master = true
-}
-
-gestures {
- workspace_swipe = off
-}
-
-exec-once = eww open bar & dunst
-
-exec-once = swww init
-
-exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
-exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
-
-exec-once = wl-paste --type text --watch cliphist store #Stores only text data
-exec-once = wl-paste --type image --watch cliphist store #Stores only image data
-
-exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'
-
-
-#windowrules
-windowrulev2 = noshadow, floating:0
-
-windowrulev2 = float, title:^(flying_kitty)$
-windowrulev2 = size 1100 600, title:^(flying_kitty)$
-windowrulev2 = move center, title:^(flying_kitty)$
-windowrulev2 = animation slide, title:^(flying_kitty)$
-windowrulev2 = float, title:^(Volume Control)$
-windowrulev2 = float, title:^(Picture-in-Picture)$
-windowrulev2 = float, title:^(Steam)$
-windowrulev2 = fullscreen, title:^(wlogout)$
-windowrulev2 = float, title:^(wlogout)$
-
-windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$
-windowrulev2 = workspace 2 silent, class:^(discord)$
-
-windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
-windowrulev2 = workspace 8 silent, title:^(Nextcloud)$
-windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$
-
-#SPECIAL FLOATERS
-windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
-windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
-windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
-windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
-windowrulev2 = float,title:^(Open)$
-windowrulev2 = float,title:^(Choose Files)$
-windowrulev2 = float,title:^(Save As)$
-windowrulev2 = float,title:^(Confirm to replace files)$
-windowrulev2 = float,title:^(File Operation Progress)$
-windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
-windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
-windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$
-windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
-windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
-windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
-windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
-windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$
-windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$
-
-#binds
-$mainMod = SUPER
-
-bind = SUPER, RETURN, exec, kitty
-
-bind = SUPER_SHIFT, RETURN,togglespecialworkspace,
-# bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance
-bind = SUPER, Q, killactive,
-bind = SUPER, T, togglefloating,
-bind = SUPER, F, fullscreen,
-
-bind = SUPER, D, exec, wofi -modi --show drun
-bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar
-
-bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy
-bind = , Print, exec, grim -g "$(slurp -d)" - | swappy -f -
-
-bind = SUPER, L, exec, swaylock
-
-
-bind = SUPER, P, pseudo, # dwindle
-bind = SUPER, J, togglesplit, # dwindle
-bind = SUPER, G, togglegroup
-bind = SUPER, tab, changegroupactive
-
-bind = SUPER, left, movefocus, l
-bind = SUPER, right, movefocus, r
-bind = SUPER, up, movefocus, u
-bind = SUPER, down, movefocus, d
-
-bind = SUPER, 1, workspace, 1
-bind = SUPER, 2, workspace, 2
-bind = SUPER, 3, workspace, 3
-bind = SUPER, 4, workspace, 4
-bind = SUPER, 5, workspace, 5
-bind = SUPER, 6, workspace, 6
-bind = SUPER, 7, workspace, 7
-bind = SUPER, 8, workspace, 8
-bind = SUPER, 9, workspace, 9
-bind = SUPER, 0, workspace, 10
-
-bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
-bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
-bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
-bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
-bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
-bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
-bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
-bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
-bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
-bind = SUPER SHIFT, 0, movetoworkspacesilent, 10
-
-bind = SUPER, mouse_down, workspace, e+1
-bind = SUPER, mouse_up, workspace, e-1
-
-bindm = SUPER, mouse:272, movewindow
-bindm = SUPER, mouse:273, resizewindow
-bind = , XF86AudioPlay, exec, playerctl play-pause
-bind = , XF86AudioPrev, exec, playerctl previous
-bind = , XF86AudioNext, exec, playerctl next
-bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+
-bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%-
-bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle
-bind = , XF86MonBrightnessUp, exec, brillo -A 5
-bind = , XF86MonBrightnessDown, exec, brillo -U 5
-
-exec-once = [workspace special silent] kitty --title flying_kitty
-exec-once = sh ~/.config/startup.sh
- '';
-
-
- xdg.configFile."startup.sh".text = ''
-#!/bin/sh
-sleep 2
-keepassxc &
-firefox &
-jellyfin-mpv-shim &
-easyeffects --gapplication-service &
-
-sleep 2
-nextcloud &
-telegram-desktop&
- '';
-}
diff --git a/home/wayland/hyprland/default.nix b/home/wayland/hyprland/default.nix
deleted file mode 100755
index a966e4b..0000000
--- a/home/wayland/hyprland/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- ...
-}: {
- imports = [./config.nix];
-
- wayland.windowManager.hyprland = {
- enable = true;
- };
-
-}
\ No newline at end of file
diff --git a/home/xorg/bspwm/config.nix b/home/xorg/bspwm/config.nix
deleted file mode 100755
index 826c80c..0000000
--- a/home/xorg/bspwm/config.nix
+++ /dev/null
@@ -1,316 +0,0 @@
-{
- config,
- ...
-}: {
- xsession.windowManager.bspwm.extraConfig = ''
- #! /bin/bash
-
-xrandr > /dev/shm/xrandr_output
-sxhkd &
-/nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
-
-(xss-lock -- ~/.config/lock.sh || echo "AutoLock Hook Unavailable") &
-
-wmname LG3D
-
-export _IDISP=$(xrandr --query | grep " connected" | cut -d" " -f1 | grep "eDP" )
-
-if [[ $(hostname) == 'Iriy' ]]; then
- xrandr --output DP-0 --scale 1
- xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-3 --off --output DP-4 --mode 1920x1080 --pos 4800x0 --rotate normal --output DP-5 --off
- bspc monitor DP-4 -d 1
- bspc monitor DP-2 -d 2 3
- bspc monitor DP-0 -d 0 4 5 6 7 8 9
-elif [[ $(hostname) == 'valinor' ]]; then
- bspc monitor $_IDISP -d 1 2 3 4 5 6 7 8 9
-else
- bspc monitor $_IDISP -d 1 2 3 4 5 6 7 8 9
-fi
-
-bspc config remove_unplugged_monitors true
-bspc config remove_disabled_monitors true
-
-bspc config border_width 2
-bspc config window_gap 6
-bspc config split_ratio 0.52
-bspc config borderless_monocle false
-bspc config gapless_monocle false
-
-
-bspc rule -a Screenkey manage=off
-
-#bspc config super mod4
-bspc config pointer_action1 move
-bspc config pointer_action2 none
-bspc config pointer_action3 resize_corner
-#bspc config click_to_focus true
-#bspc config focus_follows_pointer true
-
-xsetroot -cursor_name left_ptr
-
-feh --bg-fill ~/cloud/dark.jpg
-
-xrdb ~/.Xressources
-
-dunst &
-eww open bar &
-
-
-## Tab Global - Floating/Global Rules
-bspc rule -a URxvt:yakuaki sticky=on state=floating hidden=on rectangle=$(($(xrandr --current | grep ' connected ' | uniq | awk '{print $4}' | cut -d 'x' -f1 | head -n1)-16))x600+$(($(xrandr --current | grep ' connected' | uniq | awk '{print $4}' | cut -d "+" -f2 | head -n1)+8))+$(($(xrandr --current | grep ' connected' | uniq | awk '{print $4}' | cut -d "+" -f3 | head -n1)+36))
-urxvt -name yakuaki -e ~/.config/script/yakuaki &
-kitty
-
-bspc rule -a feh state=floating
-bspc rule -a Confirm state=floating
-bspc rule -a Preferences state=floating
-bspc rule -a dialog state=floating
-bspc rule -a menu state=floating
-bspc rule -a task_dialog state=floating
-bspc rule -a bubble state=floating
-
-
-## Tab 8 - Various & Utility
-bspc rule -a KeePassXC --one-shot desktop=8
-bspc rule -a Nextcloud desktop=8
-bspc rule -a Tk:tk desktop=8
-
-## Tab 4 - Dev
-bspc rule -a VSCodium desktop=4
-
-## Tab 3 - Games & Movies
-# ...
-# ...
-
-## Tab 2 - Coms Main
-bspc rule -a TelegramDesktop desktop=2
-bspc rule -a Instagram desktop=2
-bspc rule -a lightcord desktop=2
-bspc rule -a discord desktop=2
-
-
-## Tab 1 - Internet
-bspc rule -a Firefox --one-shot desktop=1
-bspc rule -a firefox --one-shot desktop=1
-bspc rule -a Google-chrome desktop=1
-bspc rule -a Chromium=1
-
-
-sh ~/.config/startup.sh
- '';
-
-
- xdg.configFile."startup.sh".text = ''
-#!/bin/sh
-
-bspc desktop -f 0
-
-keepassxc --keyfile ~/.config/hcl.ico ~/cloud/kek.kdbx --pw-stdin <<< $(rofi -dmenu -password -i -no-fixed-num-lines -p "Password:" -theme themes/pass) &
-
-sleep 2
-bspc desktop -f 0
-
-telegram-desktop &
-nextcloud &
-jellyfin-mpv-shim &
-flameshot &
-
-sleep 2
-
-firefox &
-
-ibus-daemon -drx
-
-easyeffects --gapplication-service &
-bspc desktop -f 0
- '';
-
-
-services.sxhkd.extraConfig = ''
-super + Return
- urxvt
-
-# terminal floating
-super + shift + Return
- ~/.config/script/toggle_yakuaki
-
-# program launcher
-super + d
- rofi -modi "drun" -show drun
-
-super + shift + d
- rofi -show run
-
-super + Tab
- rofi -show window
-
-super + Escape
- pkill -USR1 -x sxhkd; \
- notify-send "sxhkd config reloaded"
-
-#
-# bspwm hotkeys
-#
-
-# quit bspwm normally
-super + alt + Escape
- bspc quit
-
-# close and kill
-super + {_,shift + }w
- bspc node -{c,k}
-
-# alternate between the tiled and monocle layout
-super + m
- bspc desktop -l next
-
-# if the current node is automatic, send it to the last manual, otherwise pull the last leaf
-super + y
- bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused
-
-# swap the current node and the biggest node
-super + g
- bspc node -s biggest
-
-#
-# state/flags
-#
-
-# set the window state
-super + {t,shift + t,s,f}
- bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
-
-# set the node flags
-super + ctrl + {x,y,z}
- bspc node -g {locked,sticky,private}
-
-#
-# focus/swap
-#
-
-# focus the node in the given direction
-super + shift + {_,ctrl + }{h,j,k,l}
- bspc node -{f,s} {west,south,north,east}
-
-# focus the node for the given path jump
-# super + {p,b,comma,period}
-# bspc node -f @{parent,brother,first,second}
-
-# focus the next/previous node
-super + {_,shift + }c
- bspc node -f {next,prev}
-
-# focus the next/previous desktop
-super + bracket{left,right}
- bspc desktop -f {prev,next}
-
-# focus the last node/desktop
-super + {grave,Tab}
- bspc {node,desktop} -f last
-
-# focus the older or newer node in the focus history
-super + {o,i}
- bspc wm -h off; \
- bspc node {older,newer} -f; \
- bspc wm -h on
-
-# focus or send to the given desktop
-super + {_,shift + }{1-9,0}
- bspc {desktop -f,node -d} {1-9,0}
-
-# focus the next/previous node in the same window
-super + {comma,period}
- bspc node -f {next,prev}.local
-
-#
-# preselect
-#
-
-# preselect the direction
-super + ctrl + {h,j,k,l}
- bspc node -p {west,south,north,east}
-
-# preselect the ratio
-super + ctrl + {1-9}
- bspc node -o 0.{1-9}
-
-# cancel the preselection for the focused node
-super + ctrl + space
- bspc node -p cancel
-
-# cancel the preselection for the focused desktop
-super + ctrl + shift + space
- bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
-
-#
-# move/resize
-#
-
-# expand a window by moving one of its side outward
-super + alt + {h,j,k,l}
- bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
-
-# contract a window by moving one of its side inward
-super + alt + shift + {h,j,k,l}
- bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
-
-# move a floating window
-super + {Left,Down,Up,Right}
- bspc node -v {-20 0,0 20,0 -20,20 0}
-
-super + {equal,minus}
- bspc config window_gap $(( $(bspc config window_gap) {+,-} 5 ))
-
-super + ctrl + {Left,Right,Up,Down}
- bspc node @focused:/ --rotate {270,90,180,180}
-
-super + shift + {Left,Right,Up,Down}
- bspc node -f @parent; bspc node -R 90
-
-# Screenshots
-Print
- flameshot gui
-
-# Lock Desktop
-super + l
- ~/.config/script/lock.sh
-
-# Lock Alternative
-super + k
- xtrlock
-
-# VOLUME
-
-XF86AudioMute
- pactl set-sink-mute @DEFAULT_SINK@ toggle
-
-XF86AudioRaiseVolume
- pactl set-sink-volume @DEFAULT_SINK@ +5%
-
-XF86AudioLowerVolume
- pactl set-sink-volume @DEFAULT_SINK@ -5%
-
-# BRIGHTNESS
-
-# Brightness goes up
-#/home/gamehelp16/Documents/brightness -u
-XF86MonBrightnessUp
- brightnessctl set +16
-
-# Brightness goes down
-XF86MonBrightnessDown
- brightnessctl set 16-
-
-super + F1
- pactl set-source-mute @DEFAULT_SOURCE@ toggle
-
-XF86AudioMicMute
- pactl set-source-mute @DEFAULT_SOURCE@ toggle
-
-super + F7
- ~/.config/script/screens.sh
-
-XF86Display
- ~/.config/script/screens.sh
- '';
-}
diff --git a/home/xorg/bspwm/default.nix b/home/xorg/bspwm/default.nix
deleted file mode 100755
index fea257a..0000000
--- a/home/xorg/bspwm/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- ...
-}: {
- imports = [
- ./config.nix
- ./script.nix
- ./xressources.nix
- ];
-
- xsession.windowManager.bspwm = {
- enable = true;
- };
-
- services.sxhkd = {
- enable = true;
- };
-
-}
\ No newline at end of file
diff --git a/home/xorg/bspwm/script.nix b/home/xorg/bspwm/script.nix
deleted file mode 100755
index b1b786c..0000000
--- a/home/xorg/bspwm/script.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- config,
- ...
-}: {
-
- xdg.configFile."script/lock.sh".text = ''
-#!/bin/bash
-TMPBG=/tmp/screen.png
-RES=$(xrandr | grep 'current' | sed -E 's/.*current\s([0-9]+)\sx\s([0-9]+).*/\1x\2/')
-
-ffmpeg -f x11grab -video_size $RES -y -i $DISPLAY -filter_complex "boxblur=10:1" -vframes 1 $TMPBG
-
-pkill -xu $EUID -USR1 dunst
-i3lock -i $TMPBG &
-wait
-pkill -xu $EUID -USR1 dunst
-
-rm $TMPBG
- '';
-
- xdg.configFile."script/screens.sh".text = ''
-#!/bin/bash
-
-if [[ $(hostname) == 'Iriy' ]]; then
-MENU="$(rofi -sep "|" -dmenu -i -p 'Display Mode' -theme-str 'entry { placeholder: ""; } inputbar { children: [prompt, textbox-prompt-colon, entry];}' -location 2 -xoffset 0 -yoffset 34 -width 8 -hide-scrollbar -line-padding 4 -padding 10 -lines 6 <<< "None | S")"
- case "$MENU" in
- *None)
- xrandr --output DP-0 --scale 1
- xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-3 --off --output DP-4 --mode 1920x1080 --pos 4800x0 --rotate normal --output DP-5 --off
- bspc monitor DP-4 -d 1
- bspc monitor DP-2 -d 2 3
- bspc monitor DP-0 -d 0 4 5 6 7 8 9
- ;;
- *S)
- xrandr --output DP-0 --scale 1
- xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --off --output DP-3 --off --output DP-4 --off --output DP-5 --off
- bspc monitor DP-0 -d 0 1 2 3 4 5 6 7 8 9
- ;;
- *WIP) echo "WIP"
- esac
-elif [[ $(hostname) == 'valinor' ]]; then
-MENU="$(rofi -sep "|" -dmenu -i -p 'Display Mode' -theme-str 'entry { placeholder: ""; } inputbar { children: [prompt, textbox-prompt-colon, entry];}' -location 2 -xoffset 0 -yoffset 34 -width 8 -hide-scrollbar -line-padding 4 -padding 10 -lines 6 <<< "None|P0|P1")"
- case "$MENU" in
- *None)
- xrandr --output HDMI-1 --off --output DisplayPort-0 --off --output DisplayPort-1 --off --output eDP-1 --auto
- bspc monitor eDP -d 1 2 3 4 5 6 7 8 9
- ;;
- *P0)
- xrandr --output HDMI-1 --auto --output eDP-1 --auto --below HDMI-1
- bspc monitor HDMI-1 --swap eDP-1
- bspc monitor HDMI-1 -d 0
- bspc monitor eDP-1 -d 1 2 3 4 5 6 7 8 9
- ;;
- *P1)
- xrandr --output eDP-1 --primary --mode 1920x1080 --pos 1200x1200 --rotate normal --output HDMI-1 --mode 1920x1200 --pos 1200x0 --rotate normal --output DisplayPort-1 --mode 1920x1200 --pos 0x210 --rotate left
- bspc monitor HDMI-1 --swap eDP-1
- bspc monitor HDMI-1 -d 0
- bspc monitor eDP -d 1 2 3 4 5 6 7 8 9
- ;;
- *WIP) echo "WIP"
- esac
-fi
-feh --bg-fill ~/cloud/dark.jpg
- '';
-
- xdg.configFile."script/yakuaki.sh".text = ''
-#!/bin/bash
-bspc query -N -n any.floating.hidden > /tmp/yakuakid
-~/.config/script/toggle_yakuaki
-$SHELL
-clear
- '';
-
- xdg.configFile."script/toggle_yakuaki.sh".text = ''
-#!/bin/bash
-if [[ -e /tmp/yakuakid ]]
-then
- id=$(cat /tmp/yakuakid)
- exists=$(bspc query -N $id -n)
- if [[ $exists = $id ]]
- then
- bspc node $id --flag hidden;bspc node -f $id
- else
- rm /tmp/yakuakid
- urxvt -name yakuaki -e ~/.config/script/yakuaki &
- fi
-else
- ~/.config/script/yakuaki
-fi
- '';
-
-}
\ No newline at end of file
diff --git a/home/xorg/bspwm/xressources.nix b/home/xorg/bspwm/xressources.nix
deleted file mode 100755
index 4e46801..0000000
--- a/home/xorg/bspwm/xressources.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-{
- config,
- ...
-}: {
- xresources.extraConfig = ''
-
-#define white #ffffff
-#define black #000000
-#define cFG #${config.colorScheme.colors.base07}
-#define cBG #${config.colorScheme.colors.base00}
-#define cP #${config.colorScheme.colors.base07}
-#define cH #${config.colorScheme.colors.base0C}
-#define c0 #${config.colorScheme.colors.base00}
-#define c1 #${config.colorScheme.colors.base01}
-#define c2 #${config.colorScheme.colors.base02}
-#define c3 #${config.colorScheme.colors.base03}
-#define c4 #${config.colorScheme.colors.base04}
-#define c5 #${config.colorScheme.colors.base05}
-#define c6 #${config.colorScheme.colors.base06}
-#define c7 #${config.colorScheme.colors.base07}
-#define c8 #${config.colorScheme.colors.base08}
-#define c9 #${config.colorScheme.colors.base09}
-#define cA #${config.colorScheme.colors.base0A}
-#define cB #${config.colorScheme.colors.base0B}
-#define cC #${config.colorScheme.colors.base0C}
-#define cD #${config.colorScheme.colors.base0D}
-#define cE #${config.colorScheme.colors.base0E}
-#define cF #${config.colorScheme.colors.base0F}
-
-Xft.dpi: 96
-
-URxvt.perl-ext-common: default,matcher,tabbed
-URxvt.url-launcher: firefox
-URxvt.matcher.button: 1
-URxvt.url-select.launcher: firefox
-URxvt.url-select.underline: true
-
-!URxvt*loginShell: true
-!URxvt*borderless: true
-URxvt*dynamicColors: on
-
-URxvt*foreground: cFG
-URxvt*background: cBG
-
-URxvt*saveLines: 8192
-URxvt*mapAlert: true
-!URxvt*visualBell: true
-URxvt*pastableTabs: false
-
-URxvt*transparent: True
-URxvt*shading: 25
-
-URxvt*cursorColor: cP
-URxvt*throughColor: cF
-!URxvt*highlightColor: cH
-
-URxvt*font: xft:IBMPlexMono:style=Regular:size=10, xft:OpenMoji:size=11, xft:MaterialDesignIcons:size=11
-URxvt*boldFont: xft:IBMPlexMono:style=Bold:size=10
-URxvt*italicFont: xft:IBMPlexMono:style=Oblique:size=10
-
-URxvt.iso14755: False
-URxvt.scrollBar: False
-URxvt.scrollBar_right: False
-URxvt.scrollBar_floating: False
-URxvt.scrollstyle: rxvt
-
-URxvt.tabbed.tabbar-fg: 7
-URxvt.tabbed.tabbar-bg: 0
-URxvt.tabbed.tab-fg: 7
-URxvt.tabbed.tab-bg: 1
-
-URxvt.letterSpace: true
-
-Xft.antialias: True
-Xft.autohint: False
-Xft.hinting: True
-
-!*.foreground: cFG
-!*.background: cBF
-!*.cursorColor: cP
-
-!*fading:35
-!*faceColor:c1
-
-*.color0: c0
-*.color1: c1
-*.color2: c2
-*.color3: c3
-*.color4: c4
-*.color5: c5
-*.color6: c6
-*.color7: c7
-*.color8: c8
-*.color9: c9
-*.color10: cA
-*.color11: cB
-*.color12: cC
-*.color13: cD
-*.color14: cE
-*.color15: cF
- '';
-}
\ No newline at end of file
diff --git a/home/xorg/default.nix b/home/xorg/default.nix
deleted file mode 100755
index 6a66dc5..0000000
--- a/home/xorg/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- pkgs,
- ...
-}: {
-
- imports = [
- ../../modules/greetd.nix
- ];
-
- environment.systemPackages = with pkgs; [
- sxhkd
- xrandr
- arandr
- flameshot
- xtrlock
- i3lock
-
- # dbus-hyprland-environment
- # xdg-user-dirs
- # wayland
- # grim
- # slurp
- # cliphist
- # wl-clipboard
- # wlogout
- # wlr-randr
- # glib
- ];
-
-
- services.dbus.enable = true;
- xdg.portal = {
- enable = true;
- };
-
- programs.bspwm.enable = true;
-
- environment.sessionVariables = rec {
- GBM_BACKEND = "amd-drm";
- __GL_GSYNC_ALLOWED = "0";
- __GL_VRR_ALLOWED = "0";
- WLR_DRM_NO_ATOMIC = "1";
- __GLX_VENDOR_LIBRARY_NAME = "amd";
- _JAVA_AWT_WM_NONREPARENTING = "1";
- QT_QPA_PLATFORM = "xcb";
- QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
- GDK_BACKEND = "x11";
- WLR_NO_HARDWARE_CURSORS = "1";
- MOZ_ENABLE_WAYLAND = "-";
- WLR_BACKEND = "vulkan";
- WLR_RENDERER = "vulkan";
- XCURSOR_SIZE = "24";
- NIXOS_OZONE_WL = "1";
- PATH = [
- "$HOME/.local/bin/:$PATH"
- ];
- XDG_CACHE_HOME = "$HOME/.cache";
- XDG_CONFIG_HOME = "$HOME/.config";
- XDG_DATA_HOME = "$HOME/.local/share";
- XDG_STATE_HOME = "$HOME/.local/state";
- XDG_BIN_HOME = "$HOME/.local/bin";
- };
-
- environment.etc."greetd/environments".text = ''
- bspwm
- '';
-
-}
\ No newline at end of file
diff --git a/homes/x86_64-darwin/sora@asgard/home.nix b/homes/x86_64-darwin/sora@asgard/home.nix
new file mode 100755
index 0000000..927e889
--- /dev/null
+++ b/homes/x86_64-darwin/sora@asgard/home.nix
@@ -0,0 +1,13 @@
+{ pkgs, ... }: {
+ home = {
+ packages = with pkgs; [ ];
+ stateVersion = "23.05";
+ };
+
+ programs = {
+ zsh = {
+ enable = true;
+ # FIND SETTINGS FROM /home/cli/zsh
+ };
+ };
+}
diff --git a/homes/x86_64-linux/sora@avalon/default.nix b/homes/x86_64-linux/sora@avalon/default.nix
new file mode 100644
index 0000000..778bf2e
--- /dev/null
+++ b/homes/x86_64-linux/sora@avalon/default.nix
@@ -0,0 +1,17 @@
+{ ... }: {
+ imports = [ ./display.nix ];
+
+ config.homecfg = {
+ username = "sora";
+ make = {
+ gui = false;
+ cli = true;
+ game = false;
+ };
+ git = {
+ email = "soraefir+git@pm.me";
+ username = "soraefir";
+ key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
+ };
+ };
+}
diff --git a/homes/x86_64-linux/sora@iriy/default.nix b/homes/x86_64-linux/sora@iriy/default.nix
new file mode 100644
index 0000000..570bf21
--- /dev/null
+++ b/homes/x86_64-linux/sora@iriy/default.nix
@@ -0,0 +1,17 @@
+{ ... }: {
+ imports = [ ./display.nix ];
+
+ config.homecfg = {
+ username = "sora";
+ make = {
+ gui = true;
+ cli = true;
+ game = true;
+ };
+ git = {
+ email = "soraefir+git@pm.me";
+ username = "soraefir";
+ key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
+ };
+ };
+}
diff --git a/homes/x86_64-linux/sora@iriy/display.nix b/homes/x86_64-linux/sora@iriy/display.nix
new file mode 100644
index 0000000..77fcc9a
--- /dev/null
+++ b/homes/x86_64-linux/sora@iriy/display.nix
@@ -0,0 +1,17 @@
+{ ... }: {
+
+ services.kanshi = {
+ enable = true;
+ systemdTarget = "graphical-session.target";
+ profiles = {
+ default = {
+ outputs = [{
+ criteria = "CEX CX133 0x00000001";
+ mode = "1920x1200@59.972";
+ position = "0,0";
+ status = "enable";
+ }];
+ };
+ };
+ };
+}
diff --git a/homes/x86_64-linux/sora@valinor/default.nix b/homes/x86_64-linux/sora@valinor/default.nix
new file mode 100644
index 0000000..1c7fa8e
--- /dev/null
+++ b/homes/x86_64-linux/sora@valinor/default.nix
@@ -0,0 +1,17 @@
+{ config, ... }: {
+ imports = [ ./display.nix ];
+
+ config.homecfg = {
+ username = "sora";
+ make = {
+ gui = true;
+ cli = true;
+ game = true;
+ };
+ git = {
+ email = "soraefir+git@pm.me";
+ username = "soraefir";
+ key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
+ };
+ };
+}
diff --git a/hosts/valinor/home.nix b/homes/x86_64-linux/sora@valinor/display.nix
old mode 100755
new mode 100644
similarity index 67%
rename from hosts/valinor/home.nix
rename to homes/x86_64-linux/sora@valinor/display.nix
index eb5471b..7f2f02b
--- a/hosts/valinor/home.nix
+++ b/homes/x86_64-linux/sora@valinor/display.nix
@@ -1,23 +1,16 @@
-{config, pkgs, ...}:
-{
-
- imports = [
- ../_/home.nix
- ];
+{ ... }: {
services.kanshi = {
enable = true;
systemdTarget = "graphical-session.target";
profiles = {
default = {
- outputs = [
- {
- criteria = "eDP-1";
- mode = "1920x1080@60.020";
- position = "0,0";
- status = "enable";
- }
- ];
+ outputs = [{
+ criteria = "eDP-1";
+ mode = "1920x1080@60.020";
+ position = "0,0";
+ status = "enable";
+ }];
};
d0 = {
outputs = [
@@ -37,5 +30,4 @@
};
};
};
-
-}
\ No newline at end of file
+}
diff --git a/hosts/_/cfg.nix b/hosts/_/cfg.nix
deleted file mode 100755
index a29b4ee..0000000
--- a/hosts/_/cfg.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- lib,
- config,
- ...
-}:
-with lib;
-let
- cfg = config.hostcfg;
-in {
- options.hostcfg = {
- hostname = mkOption {
- type = types.str;
- };
- wlp_if = mkOption {
- type = types.str;
- };
- wg_ip4 = mkOption {
- type = types.str;
- };
- wg_ip6 = mkOption {
- type = types.str;
- };
- wg_pk = mkOption {
- type = types.str;
- };
- };
-}
\ No newline at end of file
diff --git a/hosts/_/home.nix b/hosts/_/home.nix
deleted file mode 100755
index 126f468..0000000
--- a/hosts/_/home.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- config,
- pkgs,
- ...
-}:{
-
-imports = [
- ../../colors
- ../../home/cli
- ../../home/gui
- ../../home/wayland/hyprland
-];
-
- systemd.user.startServices = "sd-switch";
- programs.home-manager.enable = true;
- services.nextcloud-client.enable = true;
-
- xdg.userDirs.enable = true;
- xdg.userDirs.desktop = "${config.home.homeDirectory}/desktop";
- xdg.userDirs.documents = "${config.home.homeDirectory}/desktop";
- xdg.userDirs.download = "${config.home.homeDirectory}/downloads";
- xdg.userDirs.extraConfig = {
- XDG_MISC_DIR = "${config.home.homeDirectory}/misc";
- };
- xdg.userDirs.music = "${config.home.homeDirectory}/media/music";
- xdg.userDirs.pictures = "${config.home.homeDirectory}/media/photo";
- xdg.userDirs.publicShare = "${config.home.homeDirectory}/media/photo";
- xdg.userDirs.templates = "${config.home.homeDirectory}/media/template";
- xdg.userDirs.videos = "${config.home.homeDirectory}/media/video";
- xdg.userDirs.createDirectories = true;
-
- home = {
- username = "sora";
- homeDirectory = "/home/sora";
- packages = with pkgs; [
-
- #lang
- #See DEVSH
-
- #ui
- firefox
- vscodium
- xfce.thunar
- xfce.thunar-volman
- xfce.thunar-archive-plugin
- xfce.tumbler
-
- # xplorer
- telegram-desktop
- obs-studio
- pavucontrol
- unzip
- appimage-run
- yt-dlp
- keepassxc
- nextcloud-client
- jellyfin-mpv-shim
-
- #software
- godot_4
- krita
- gimp
- imv
- darktable
- gramps
- custom.simc
-
- #games
- wineWowPackages.wayland
- gamemode
- gamescope
- mangohud
- prismlauncher
- openttd-jgrpp
- bottles
-
- #sexyterm
- cbonsai
- pipes-rs
- cmatrix
- cava
- ];
-
- stateVersion = "23.05";
- };
-}
\ No newline at end of file
diff --git a/hosts/_/host.nix b/hosts/_/host.nix
deleted file mode 100755
index 85ff5ac..0000000
--- a/hosts/_/host.nix
+++ /dev/null
@@ -1,166 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- imports =
- [
- ../../home/wayland
- # ../../home/xorg
- ../../modules
- ];
-
- time.timeZone = "Europe/Zurich";
-
- i18n.defaultLocale = "en_GB.UTF-8";
-
- i18n.extraLocaleSettings = {
- LC_ADDRESS = "en_GB.UTF-8";
- LC_IDENTIFICATION = "en_GB.UTF-8";
- LC_MEASUREMENT = "en_GB.UTF-8";
- LC_MONETARY = "en_GB.UTF-8";
- LC_NAME = "en_GB.UTF-8";
- LC_NUMERIC = "en_GB.UTF-8";
- LC_PAPER = "en_GB.UTF-8";
- LC_TELEPHONE = "en_GB.UTF-8";
- LC_TIME = "en_GB.UTF-8";
- };
-
- services = {
- fstrim = {
- enable = true;
- };
- xserver = {
- enable = true;
- videoDrivers = [ "amd" ];
- layout = "us";
- xkbVariant = "intl";
- excludePackages = [ pkgs.xterm ];
- exportConfiguration = true;
- # libinput.touchpad.tapping = false;
- desktopManager.xterm.enable = false;
- };
- gvfs = {
- enable = true;
- };
- };
-
- programs.gnupg.agent = {
- enable = true;
- enableSSHSupport = true;
- };
-
- # services.pcscd.enable = true;
-
- sound.enable = true;
- hardware.pulseaudio.enable = false;
- security.rtkit.enable = true;
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- wireplumber.enable = true;
- };
-
- #documentation.nixos.enable = false;
-
- services.fwupd.enable = true;
-
- hardware.bluetooth.enable = true;
- hardware.brillo.enable = true;
- services.blueman.enable = true;
-
- programs.steam.enable = true;
- programs.zsh.enable = true;
- programs.adb.enable = true;
-
- programs.wireshark.enable = true;
-
- programs.ssh = {
- extraConfig = ''
- IdentityFile ${config.sops.secrets."${config.hostcfg.hostname}_ssh_priv".path}
- '';
- };
-
-
- security.polkit.enable = true;
- security.pam.services.swaylock = {
- text = ''
- auth include login
- '';
- };
-
- hardware = {
- opengl = {
- enable = true;
- extraPackages = with pkgs; [];
- };
- };
-
- modules.battery_monitor.enable = true;
-
- users = {
- defaultUserShell = pkgs.zsh;
- users.sora = {
- isNormalUser = true;
- description = "sora";
- extraGroups = [ "networkmanager" "wheel" "vboxsf" "adbusers" "lp" "audio" "video" "docker" "wireshark"];
- };
- };
-
- environment.systemPackages = with pkgs; [
- wget
- dconf
- gvfs
- sops
-
- polkit_gnome
- nfs-utils
- bluez
- bluez-tools
- easyeffects
-
- jre8
- jdk8
- jdk
- ];
-
- nix = {
- package = pkgs.nixFlakes;
- extraOptions = ''
- experimental-features = nix-command flakes
- warn-dirty = false
- keep-outputs = true
- keep-derivations = true
- '';
- gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 7d";
- };
- settings = {
- auto-optimise-store = true;
- builders-use-substitutes = true;
- substituters = [
- "https://hyprland.cachix.org"
- "https://cache.nixos.org"
- ];
- trusted-public-keys = [
- "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
- "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
- ];
- };
- };
-
- nixpkgs.config = {
- permittedInsecurePackages = [];
- allowUnfree = true;
- packageOverrides = pkgs: rec{
- custom = import ../../pkgs { inherit pkgs; };
- };
- };
- nixpkgs.overlays = import ../../pkgs/overlay.nix { inherit pkgs; };
-
- system.stateVersion = "23.05";
-}
diff --git a/hosts/asgard/default.nix b/hosts/asgard/default.nix
deleted file mode 100755
index 71bbf55..0000000
--- a/hosts/asgard/default.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-
-{ config, pkgs, ... }:
-
-{
- imports = [];
-
- users.users.sora = {
- home = "/Users/sora";
- shell = pkgs.zsh;
- };
-
- networking = {
- computerName = "asgard";
- hostName = "asgard";
- };
-
- fonts = {
- fontDir.enable = true;
- fonts = with pkgs; [
- ibm-plex
- openmoji-color
- material-design-icons
- ];
- };
-
- environment = {
- shells = with pkgs; [ zsh ];
- variables = {
- EDITOR = "nvim";
- VISUAL = "vscodium";
- };
- systemPackages = with pkgs; [
- git
- ranger
-
- fd
- ripgrep
- ];
- };
-
- programs = {
- zsh.enable = true;
- };
-
- services = {
- nix-daemon.enable = true;
- };
-
- homebrew = {
- enable = true;
- onActivation = {
- autoUpdate = false;
- upgrade = false;
- cleanup = "zap";
- };
- brews = [
- "wireguard-tools"
- ];
- casks = [
- ];
- };
-
-
-
- nix = {
- package = pkgs.nix;
- extraOptions = ''
- experimental-features = nix-command flakes
- warn-dirty = false
- '';
- gc = {
- automatic = true;
- dates = "weekly";
- options = "--delete-older-than 7d";
- };
- settings = {
- auto-optimise-store = true;
- builders-use-substitutes = true;
- substituters = [
- "https://cache.nixos.org"
- ];
- trusted-public-keys = [
- "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
- ];
- };
- };
-
- system = {
- defaults = {
- NSGlobalDomain = {
- KeyRepeat = 1;
- NSAutomaticCapitalizationEnabled = false;
- NSAutomaticSpellingCorrectionEnabled = false;
- };
- dock = {
- autohide = true;
- orientation = "bottom";
- showhidden = true;
- tilesize = 40;
- };
- finder = {
- QuitMenuItem = false;
- };
- trackpad = {
- Clicking = true;
- TrackpadRightClick = true;
- };
- };
- activationScripts.postActivation.text = ''sudo chsh -s ${pkgs.zsh}/bin/zsh'';
- stateVersion = 4;
- };
-}
\ No newline at end of file
diff --git a/hosts/asgard/home.nix b/hosts/asgard/home.nix
deleted file mode 100755
index 88c3d29..0000000
--- a/hosts/asgard/home.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{ pkgs, ... }:
-{
- home = {
- packages = with pkgs; [];
- stateVersion = "23.05";
- };
-
- programs = {
- zsh = {
- enable = true;
- # FIND SETTINGS FROM /home/cli/zsh
- };
- };
-}
\ No newline at end of file
diff --git a/hosts/iriy/default.nix b/hosts/iriy/default.nix
deleted file mode 100755
index 5c1dd47..0000000
--- a/hosts/iriy/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- imports =
- [
- ../_/cfg.nix
- ./hardware-configuration.nix
- ../_/host.nix
- ];
-
- boot.loader = {
- systemd-boot = {
- enable = true;
- configurationLimit = 8;
- };
- efi = {
- canTouchEfiVariables = true;
- efiSysMountPoint = "/boot/efi";
- };
- };
-
- hostcfg = {
- hostname = "iriy";
- wlp_if = "wlp9s0";
- wg_ip4 = "10.10.1.7/32";
- wg_ip6 = "fd10:10:10::7/128";
- wg_pk = config.sops.secrets.iriy_wg_priv.path;
- };
-
-}
diff --git a/hosts/iriy/hardware-configuration.nix b/hosts/iriy/hardware-configuration.nix
deleted file mode 100755
index 20cdcd1..0000000
--- a/hosts/iriy/hardware-configuration.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-# Do not modify this file! It was generated by ‘nixos-generate-config’
-# and may be overwritten by future invocations. Please make changes
-# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
-
-{
- imports = [
- (modulesPath + "/installer/scan/not-detected.nix")
- ];
-
- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "v4l2loopback" "kvm-amd" ];
-# boot.kernelPackages = pkgs.linuxPackages_latest;
- boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ];
-
- virtualisation = {
- # libvirtd.enable = true;
- # waydroid.enable = true;
- # lxd.enable = true;
- docker = {
- enable = true;
- rootless = {
- enable = true;
- setSocketVariable = true;
- };
- };
- };
-
- fileSystems."/" =
- { device = "/dev/disk/by-uuid/f612abce-6f3f-439a-8585-6a050e18b7fc";
- fsType = "ext4";
- };
-
- fileSystems."/boot/efi" =
- { device = "/dev/disk/by-uuid/349E-5086";
- fsType = "vfat";
- };
-
- swapDevices =
- [ {
- device = "/dev/disk/by-uuid/42394c4d-2c81-4917-82ff-75a548715a7d";
- }];
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
- hardware.opengl.driSupport32Bit = true;
-}
diff --git a/hosts/iriy/home.nix b/hosts/iriy/home.nix
deleted file mode 100755
index 1d19ffc..0000000
--- a/hosts/iriy/home.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{config, pkgs, ...}:
-{
-
- imports = [
- ../_/home.nix
- ];
-
- services.kanshi = {
- enable = true;
- systemdTarget = "graphical-session.target";
- profiles = {
- default = {
- outputs = [
- {
- criteria = "CEX CX133 0x00000001";
- mode = "1920x1200@59.972";
- position = "0,0";
- status = "enable";
- }
- ];
- };
- };
- };
-
-}
\ No newline at end of file
diff --git a/hosts/valinor/default.nix b/hosts/valinor/default.nix
deleted file mode 100755
index 500b9e7..0000000
--- a/hosts/valinor/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- config,
- pkgs,
- ...
-}: {
- imports =
- [
- ../_/cfg.nix
- ./hardware-configuration.nix
- ../_/host.nix
- ../../modules/tlp.nix
- ];
-
- boot.loader = {
- systemd-boot = {
- enable = true;
- configurationLimit = 8;
- };
- efi = {
- canTouchEfiVariables = true;
- efiSysMountPoint = "/boot/efi";
- };
- };
-
- hostcfg = {
- hostname = "valinor";
- wlp_if = "wlp3s0";
- wg_ip4 = "10.10.1.5/32";
- wg_ip6 = "fd10:10:10::5/128";
- wg_pk = config.sops.secrets.valinor_wg_priv.path;
- };
-
-}
diff --git a/hosts/valinor/hardware-configuration.nix b/hosts/valinor/hardware-configuration.nix
deleted file mode 100755
index a1f709f..0000000
--- a/hosts/valinor/hardware-configuration.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-# Do not modify this file! It was generated by ‘nixos-generate-config’
-# and may be overwritten by future invocations. Please make changes
-# to /etc/nixos/configuration.nix instead.
-{ config, lib, pkgs, modulesPath, ... }:
-
-{
- imports = [
- (modulesPath + "/installer/scan/not-detected.nix")
- ];
-
- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
- boot.initrd.kernelModules = [ ];
- boot.kernelModules = [ "v4l2loopback" "kvm-amd" ];
-# boot.kernelPackages = pkgs.linuxPackages_latest;
- boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback.out ];
-
- virtualisation = {
- # libvirtd.enable = true;
- # waydroid.enable = true;
- # lxd.enable = true;
- docker = {
- enable = true;
- rootless = {
- enable = true;
- setSocketVariable = true;
- };
- };
- };
-
- fileSystems."/" =
- { device = "/dev/disk/by-uuid/e9713f83-ee3a-4fb1-806f-594c3bab7006";
- fsType = "ext4";
- };
-
- fileSystems."/boot/efi" =
- { device = "/dev/disk/by-uuid/F344-72E2";
- fsType = "vfat";
- };
-
- swapDevices =
- [ { device = "/dev/disk/by-uuid/8bbeae2f-9431-4849-9b42-9f2655da596e"; }
- ];
-
- # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
- # (the default) this is the recommended approach. When using systemd-networkd it's
- # still possible to use this option, but it's recommended to use it in conjunction
- # with explicit per-interface declarations with `networking.interfaces..useDHCP`.
- networking.useDHCP = lib.mkDefault true;
- # networking.interfaces.enp2s0f0.useDHCP = lib.mkDefault true;
- # networking.interfaces.enp6s0f3u1u3i5.useDHCP = lib.mkDefault true;
- # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
-
- nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
- hardware.opengl.driSupport32Bit = true;
-}
diff --git a/modules/battery_monitor.nix b/modules/battery_monitor.nix
deleted file mode 100644
index ad4db26..0000000
--- a/modules/battery_monitor.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-
-let conf = config.modules.battery_monitor;
-
-in {
- options.modules.battery_monitor = with lib; {
- enable = mkEnableOption "battery_monitor";
- };
-
- config = lib.mkIf conf.enable {
- # Regularly check battery status
- systemd.user.services.battery_monitor = {
- wants = [ "display-manager.service" ];
- wantedBy = [ "graphical-session.target" ];
- script = ''
- prev_val=100
- check () { [[ $1 -ge $val ]] && [[ $1 -lt $prev_val ]]; }
- notify () {
- ${pkgs.libnotify}/bin/notify-send -a Battery "$@" \
- -h "int:value:$val" "Discharging" "$val%, $remaining"
- }
- while true; do
- IFS=: read _ bat0 < <(${pkgs.acpi}/bin/acpi -b)
- IFS=\ , read status val remaining <<<"$bat0"
- val=''${val%\%}
- if [[ $status = Discharging ]]; then
- echo "$val%, $remaining"
- if check 30 || check 25 || check 20; then notify
- elif check 15 || [[ $val -le 10 ]]; then notify -u critical
- fi
- fi
- prev_val=$val
- # Sleep longer when battery is high to save CPU
- if [[ $val -gt 30 ]]; then sleep 10m; elif [[ $val -ge 20 ]]; then sleep 5m; else sleep 1m; fi
- done
- '';
- };
-
- };
-}
\ No newline at end of file
diff --git a/modules/default.nix b/modules/default.nix
deleted file mode 100755
index 843bba4..0000000
--- a/modules/default.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- ...
-}: {
- imports = [
- ./secret.nix
- ./security.nix
- ./udevd.nix
- ./networking.nix
- ./fonts.nix
-
- ./battery_monitor.nix
- ];
-}
diff --git a/modules/devshell.nix b/modules/devshell.nix
deleted file mode 100644
index bb2fc19..0000000
--- a/modules/devshell.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- pkgs,
- ...
-}:
-pkgs.mkShell {
- buildInputs = with pkgs; [
- #LANG & COMPILER
- gcc (with llvmPackages; [ libcxxClang ])
- gnumake cmake
- go gotools
- jdk gradle maven
- kotlin
- nodejs yarn-berry
- crystal shards
- python311Full virtualenv (with python311Packages; [ pip ]) pipenv
- scala sbt
-
- #LIBS
- openssl pcre pcre2
- ncurses patchelf zlib
-
- #DBG & TOOLS
- gdbgui valgrind
- sox
- docker-compose
-
- #CUSTOM (custom...)
- ];
- shellHook = ''
- export DEVSH="DEV"
- export HTTP_PORT=8080
- export HTTP_ADDR="0.0.0.0"
- '';
-}
\ No newline at end of file
diff --git a/modules/greetd.nix b/modules/greetd.nix
deleted file mode 100755
index 87fc48c..0000000
--- a/modules/greetd.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- ...
-}: {
- services.greetd = {
- enable = true;
- settings = rec {
- initial_session = {
- command = "zsh";
- user = "sora";
- };
- default_session = initial_session;
- };
- };
-}
-
-
diff --git a/modules/home/base/default.nix b/modules/home/base/default.nix
new file mode 100644
index 0000000..002b20d
--- /dev/null
+++ b/modules/home/base/default.nix
@@ -0,0 +1,12 @@
+{ config, ... }: {
+
+ systemd.user.startServices = "sd-switch";
+ programs.home-manager.enable = true;
+
+ home = {
+ username = "${config.homecfg.username}";
+ homeDirectory = "/home/${config.homecfg.username}";
+
+ stateVersion = "23.05";
+ };
+}
diff --git a/modules/home/cli/btop/default.nix b/modules/home/cli/btop/default.nix
new file mode 100644
index 0000000..67791c7
--- /dev/null
+++ b/modules/home/cli/btop/default.nix
@@ -0,0 +1,91 @@
+{ pkgs, config, ... }: {
+
+ home.packages = with pkgs; [ btop ];
+ xdg.configFile."btop/themes/${config.colorScheme.slug}.theme".text = ''
+
+ # Theme generated from: ${config.colorScheme.slug}
+
+ # Main background, empty for terminal default, need to be empty if you want transparent background
+ theme[main_bg]="#${config.colorScheme.colors.base00}"
+
+ # Main text color
+ theme[main_fg]="#${config.colorScheme.colors.base07}"
+
+ # Title color for boxes
+ theme[title]="#${config.colorScheme.colors.base07}"
+
+ # Higlight color for keyboard shortcuts
+ theme[hi_fg]="#${config.colorScheme.colors.base0E}"
+
+ # Background color of selected item in processes box
+ theme[selected_bg]="#${config.colorScheme.colors.base0C}"
+
+ # Foreground color of selected item in processes box
+ theme[selected_fg]="#${config.colorScheme.colors.base00}"
+
+ # Color of inactive/disabled text
+ theme[inactive_fg]="#${config.colorScheme.colors.base02}"
+
+ # Color of text appearing on top of graphs, i.e uptime and current network graph scaling
+ theme[graph_text]="#${config.colorScheme.colors.base05}"
+
+ # Misc colors for processes box including mini cpu graphs, details memory graph and details status text
+ theme[proc_misc]="#${config.colorScheme.colors.base0C}"
+
+ # Cpu box outline color
+ theme[cpu_box]="#${config.colorScheme.colors.base02}"
+
+ # Memory/disks box outline color
+ theme[mem_box]="#${config.colorScheme.colors.base02}"
+
+ # Net up/down box outline color
+ theme[net_box]="#${config.colorScheme.colors.base02}"
+
+ # Processes box outline color
+ theme[proc_box]="#${config.colorScheme.colors.base02}"
+
+ # Box divider line and small boxes line color
+ theme[div_line]="#${config.colorScheme.colors.base02}"
+
+ # Temperature graph colors
+ theme[temp_start]="#${config.colorScheme.colors.base0D}"
+ theme[temp_mid]=""
+ theme[temp_end]="#${config.colorScheme.colors.base0F}"
+
+ # CPU graph colors
+ theme[cpu_start]="#${config.colorScheme.colors.base0C}"
+ theme[cpu_mid]=""
+ theme[cpu_end]="#${config.colorScheme.colors.base0C}"
+
+ # Mem/Disk free meter
+ theme[free_start]="#${config.colorScheme.colors.base0A}"
+ theme[free_mid]=""
+ theme[free_end]="#${config.colorScheme.colors.base0A}"
+
+ # Mem/Disk cached meter
+ theme[cached_start]="#${config.colorScheme.colors.base09}"
+ theme[cached_mid]=""
+ theme[cached_end]="#${config.colorScheme.colors.base09}"
+
+ # Mem/Disk available meter
+ theme[available_start]="#${config.colorScheme.colors.base0B}"
+ theme[available_mid]=""
+ theme[available_end]="#${config.colorScheme.colors.base0B}"
+
+ # Mem/Disk used meter
+ theme[used_start]="#${config.colorScheme.colors.base08}"
+ theme[used_mid]=""
+ theme[used_end]="#${config.colorScheme.colors.base08}"
+
+ # Download graph colors
+ theme[download_start]="#${config.colorScheme.colors.base02}"
+ theme[download_mid]=""
+ theme[download_end]="#${config.colorScheme.colors.base0D}"
+
+ # Upload graph colors
+ theme[upload_start]="#${config.colorScheme.colors.base02}"
+ theme[upload_mid]=""
+ theme[upload_end]="#${config.colorScheme.colors.base0E}"
+
+ '';
+}
diff --git a/modules/home/cli/git/default.nix b/modules/home/cli/git/default.nix
new file mode 100755
index 0000000..c6567a9
--- /dev/null
+++ b/modules/home/cli/git/default.nix
@@ -0,0 +1,16 @@
+{ config, pkgs, ... }: {
+
+ programs.git = {
+ enable = true;
+ userEmail = "${config.homecfg.git.email}";
+ userName = "${config.homecfg.git.username}";
+ signing = {
+ key = "${config.homecfg.git.key}";
+ signByDefault = true;
+ };
+ ignores = [ "*result*" ".direnv" "node_modules" ];
+ extraConfig = { core.hooksPath = "./.dev/hooks"; };
+ };
+
+ home.packages = with pkgs; [ tig ];
+}
diff --git a/modules/home/cli/helix/default.nix b/modules/home/cli/helix/default.nix
new file mode 100644
index 0000000..db45d8d
--- /dev/null
+++ b/modules/home/cli/helix/default.nix
@@ -0,0 +1,8 @@
+{ ... }: {
+ programs.helix = {
+ #enable = true;
+ languages = { };
+ settings = { };
+ themes = { };
+ };
+}
diff --git a/modules/home/cli/kitty/default.nix b/modules/home/cli/kitty/default.nix
new file mode 100755
index 0000000..95161eb
--- /dev/null
+++ b/modules/home/cli/kitty/default.nix
@@ -0,0 +1,58 @@
+{ config, ... }: {
+ programs.kitty = {
+ enable = true;
+ settings = {
+ foreground = "#${config.colorScheme.colors.base07}";
+ background = "#${config.colorScheme.colors.base00}";
+ selection_foreground = "#${config.colorScheme.colors.base07}";
+ selection_background = "#${config.colorScheme.colors.base03}";
+ background_opacity = "0.9";
+
+ cursor = "#${config.colorScheme.colors.base05}";
+ cursor_text_color = "#${config.colorScheme.colors.base01}";
+
+ url_color = "#${config.colorScheme.colors.base05}";
+
+ active_border_color = "#${config.colorScheme.colors.base05}";
+ inactive_border_color = "#${config.colorScheme.colors.base03}";
+ bell_border_color = "#${config.colorScheme.colors.base09}";
+
+ wayland_titlebar_color = "system";
+ macos_titlebar_color = "system";
+
+ active_tab_foreground = "#${config.colorScheme.colors.base0C}";
+ active_tab_background = "#${config.colorScheme.colors.base01}";
+ inactive_tab_foreground = "#${config.colorScheme.colors.base06}";
+ inactive_tab_background = "#${config.colorScheme.colors.base00}";
+ tab_bar_background = "#${config.colorScheme.colors.base02}";
+
+ mark1_foreground = "#${config.colorScheme.colors.base00}";
+ mark1_background = "#${config.colorScheme.colors.base0C}";
+ mark2_foreground = "#${config.colorScheme.colors.base00}";
+ mark2_background = "#${config.colorScheme.colors.base0E}";
+ mark3_foreground = "#${config.colorScheme.colors.base00}";
+ mark3_background = "#${config.colorScheme.colors.base0A}";
+
+ color0 = "#${config.colorScheme.colors.base00}";
+ color1 = "#${config.colorScheme.colors.base01}";
+ color2 = "#${config.colorScheme.colors.base02}";
+ color3 = "#${config.colorScheme.colors.base03}";
+ color4 = "#${config.colorScheme.colors.base04}";
+ color5 = "#${config.colorScheme.colors.base05}";
+ color6 = "#${config.colorScheme.colors.base06}";
+ color7 = "#${config.colorScheme.colors.base07}";
+ color8 = "#${config.colorScheme.colors.base08}";
+ color9 = "#${config.colorScheme.colors.base09}";
+ color10 = "#${config.colorScheme.colors.base0A}";
+ color11 = "#${config.colorScheme.colors.base0B}";
+ color12 = "#${config.colorScheme.colors.base0C}";
+ color13 = "#${config.colorScheme.colors.base0D}";
+ color14 = "#${config.colorScheme.colors.base0E}";
+ color15 = "#${config.colorScheme.colors.base0F}";
+
+ font_size = 12;
+ window-padding-width = 15;
+ # ...
+ };
+ };
+}
diff --git a/home/cli/neofetch/config.conf b/modules/home/cli/neofetch/config.conf
similarity index 100%
rename from home/cli/neofetch/config.conf
rename to modules/home/cli/neofetch/config.conf
diff --git a/modules/home/cli/neofetch/default.nix b/modules/home/cli/neofetch/default.nix
new file mode 100755
index 0000000..dfc7028
--- /dev/null
+++ b/modules/home/cli/neofetch/default.nix
@@ -0,0 +1,4 @@
+{ pkgs, config, ... }: {
+ home.packages = with pkgs; [ neofetch ];
+ xdg.configFile."neofetch/config.conf".source = ./config.conf;
+}
diff --git a/modules/home/cli/other/default.nix b/modules/home/cli/other/default.nix
new file mode 100644
index 0000000..9f8640b
--- /dev/null
+++ b/modules/home/cli/other/default.nix
@@ -0,0 +1,17 @@
+{ pkgs, ... }: {
+ home.packages = with pkgs; [
+ sudo
+ ripgrep
+ unzip
+
+ socat
+ ripgrep
+
+ appimage-run
+
+ cbonsai
+ pipes-rs
+ cmatrix
+ cava
+ ];
+}
diff --git a/modules/home/cli/starship/default.nix b/modules/home/cli/starship/default.nix
new file mode 100755
index 0000000..a4b60a1
--- /dev/null
+++ b/modules/home/cli/starship/default.nix
@@ -0,0 +1,62 @@
+{ config, lib, pkgs, ... }: {
+
+ home.sessionVariables.STARSHIP_CACHE = "${config.xdg.cacheHome}/starship";
+ home.packages = with pkgs; [ starship ];
+ programs.starship = {
+ enable = true;
+ enableFishIntegration = false;
+ enableIonIntegration = false;
+ enableNushellIntegration = false;
+ enableZshIntegration = true;
+ settings = {
+ format = lib.concatStrings [
+ "[░▒▓](#${config.colorScheme.colors.base06})"
+ "$username"
+ "$hostname"
+ "[](bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base06})"
+ "$directory"
+ "[](bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base05})"
+ "[ ](bg:#${config.colorScheme.colors.base04})"
+ "$env_var"
+ "[](bg:#${config.colorScheme.colors.base00} fg:#${config.colorScheme.colors.base04})"
+ " "
+ ];
+ username = {
+ show_always = true;
+ style_user =
+ "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
+ style_root =
+ "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
+ format = "[ $user]($style)";
+ };
+ hostname = {
+ ssh_symbol = "";
+ style =
+ "bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
+ format = "[@$hostname]($style)";
+ ssh_only = false;
+ disabled = false;
+ };
+ directory = {
+ style =
+ "bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base00}";
+ format = "[ $path ]($style)";
+ truncation_length = 3;
+ truncation_symbol = "…/";
+ };
+ directory.substitutions = {
+ "documents" = " ";
+ "downloads" = " ";
+ "music" = " ";
+ "pictures" = " ";
+ };
+ env_var = {
+ variable = "DEVSH";
+ default = "";
+ style =
+ "bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base00}";
+ format = "[$env_value]($style)";
+ };
+ };
+ };
+}
diff --git a/modules/home/cli/zsh/default.nix b/modules/home/cli/zsh/default.nix
new file mode 100755
index 0000000..9534105
--- /dev/null
+++ b/modules/home/cli/zsh/default.nix
@@ -0,0 +1,18 @@
+{ pkgs, ... }:
+let
+ nixflake_dir = "$HOME/files/nixconfig";
+ nixflake_url = "git+https://git.helcel.net/sora/nixconfig";
+in {
+ programs.zsh = {
+ enable = true;
+ shellAliases = {
+ "sudo" = "sudo ";
+ "devsh" =
+ "nix develop --profile /tmp/devsh-env ${nixflake_url}#devsh -c zsh";
+ "nixb" = "(sudo nixos-rebuild switch --flake ${nixflake_url})";
+ "nixgc" = "sudo nix-collect-garbage -d && nix-collect-garbage -d";
+ "ssh" = "TERM=xterm-256color ${pkgs.openssh}/bin/ssh";
+ "top" = "btop";
+ };
+ };
+}
diff --git a/modules/home/gui/apps/firefox/default.nix b/modules/home/gui/apps/firefox/default.nix
new file mode 100755
index 0000000..eab3754
--- /dev/null
+++ b/modules/home/gui/apps/firefox/default.nix
@@ -0,0 +1,22 @@
+{ lib, config, ... }: {
+ config = lib.mkIf (config.homecfg.make.gui) {
+ programs.firefox = {
+ enable = true;
+ profiles = {
+ main = {
+ id = 0;
+ settings = {
+ "browser.uidensity" = 1;
+ "privacy.trackingprotection.enabled" = true;
+ "privacy.trackingprotection.socialtracking.enabled" = true;
+ "privacy.trackingprotection.socialtracking.annotate.enabled" = true;
+ "services.sync.declinedEngines" = "passwords";
+ "services.sync.engine.passwords" = false;
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
+ };
+ userChrome = builtins.readFile ./userChrome.css;
+ };
+ };
+ };
+ };
+}
diff --git a/home/gui/firefox/userChrome.css b/modules/home/gui/apps/firefox/userChrome.css
similarity index 100%
rename from home/gui/firefox/userChrome.css
rename to modules/home/gui/apps/firefox/userChrome.css
diff --git a/modules/home/gui/apps/images/default.nix b/modules/home/gui/apps/images/default.nix
new file mode 100644
index 0000000..5ee2e31
--- /dev/null
+++ b/modules/home/gui/apps/images/default.nix
@@ -0,0 +1,11 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ programs.imv.enable = true;
+
+ programs.obs-studio.enable = true;
+
+ home.packages = with pkgs; [ jellyfin-mpv-shim krita gimp darktable ];
+ };
+
+}
diff --git a/modules/home/gui/apps/mpv/default.nix b/modules/home/gui/apps/mpv/default.nix
new file mode 100755
index 0000000..cee994e
--- /dev/null
+++ b/modules/home/gui/apps/mpv/default.nix
@@ -0,0 +1,11 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ programs.mpv = {
+ enable = true;
+ scripts = with pkgs; [ mpvScripts.mpris ];
+ };
+
+ programs.yt-dlp.enable = true;
+ };
+}
diff --git a/modules/home/gui/apps/pipewire/default.nix b/modules/home/gui/apps/pipewire/default.nix
new file mode 100755
index 0000000..e544aea
--- /dev/null
+++ b/modules/home/gui/apps/pipewire/default.nix
@@ -0,0 +1,31 @@
+{ lib, config, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ xdg.configFile."pipewire/pipewire-pulse.conf.d/desktop.conf".text = ''
+ context.modules = [
+ { name = libpipewire-module-loopback
+ args = {
+ node.description = "Desktop"
+ node.name = "Desktop"
+ audio.position = [ FL FR ]
+ capture.props = {
+ media.class = Audio/Sink
+ node.name = "Desktop"
+ }
+ }
+ }
+ { name = libpipewire-module-loopback
+ args = {
+ node.description = "Music"
+ node.name = "Music"
+ audio.position = [ FL FR ]
+ capture.props = {
+ media.class = Audio/Sink
+ node.name = "Music"
+ }
+ }
+ }
+ ]
+ '';
+ };
+}
diff --git a/modules/home/gui/apps/vosk/default.nix b/modules/home/gui/apps/vosk/default.nix
new file mode 100644
index 0000000..cd39077
--- /dev/null
+++ b/modules/home/gui/apps/vosk/default.nix
@@ -0,0 +1,65 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ # home.packages = with pkgs; [
+ # custom.vosk
+ # custom.vosk.cli
+ # custom.vosk.lang.en
+ # custom.vosk.lang.ja
+ # custom.vosk.lang.de
+ # custom.vosk.lang.ru
+ # jq
+ # (python3.withPackages (ps: with ps; [ translatepy ]))
+ # ];
+
+ # xdg.configFile."script/transcript-translate.py".text = ''
+ # #!/bin/python
+
+ # import sys;
+ # from translatepy.translators.google import GoogleTranslate;
+
+ # if len(sys.argv) != 2:
+ # print("No language provided.")
+ # exit
+ # translator = GoogleTranslate()
+ # while True:
+ # for line in sys.stdin:
+ # sys.stdout.write(translator.translate(line,sys.argv[1]).result+"\n")
+ # '';
+
+ # xdg.configFile."script/transcript.sh".text = ''
+ # #!/bin/sh
+
+ # MODELS=(
+ # "English:${pkgs.custom.vosklang.en-us}/usr/share/vosk-models/en-us"
+ # "German:${pkgs.custom.vosklang.de}/usr/share/vosk-models/de"
+ # "Russian:${pkgs.custom.vosklang.ru}/usr/share/vosk-models/ru"
+ # "Japanese:${pkgs.custom.vosklang.ja}/usr/share/vosk-models/ja"
+ # )
+
+ # MODEL_OPTS=""
+ # for pair in "''${MODELS[@]}"; do
+ # MODEL_OPTS+="$pair\n"
+ # done
+
+ # MODEL_OPT=$(echo -e "$MODEL_OPTS" | wofi --dmenu -p "Choose model:")
+ # MODEL=$(echo "$MODEL_OPT" | awk -F ':' '{print $2}')
+
+ # TRANSS="None\nNone-prog\nEnglish\nGerman\nRussian\nJapanese"
+ # TRANS=$(echo -e "$TRANSS" | wofi --dmenu -p "Choose translation:")
+
+ # export VOSK_MODEL=$MODEL
+ # case $TRANS in
+ # "None")
+ # voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' 2>/dev/null
+ # ;;
+ # "None-prog")
+ # voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty, .partial // empty | select(length > 0)' 2>/dev/null
+ # ;;
+ # *)
+ # voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' | python ~/.config/script/transcript-translate.py $TRANS
+ # ;;
+ # esac
+ # '';
+ };
+}
diff --git a/modules/home/gui/apps/vscodium/default.nix b/modules/home/gui/apps/vscodium/default.nix
new file mode 100644
index 0000000..7cc0bcc
--- /dev/null
+++ b/modules/home/gui/apps/vscodium/default.nix
@@ -0,0 +1,17 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ programs.vscode = {
+ enable = true;
+ package = pkgs.vscodium;
+ extensions = with pkgs.vscode-extensions; [
+ bbenoist.nix
+ esbenp.prettier-vscode
+ golang.go
+ ms-python.vscode-pylance
+ ms-vscode.cpptools
+ dbaeumer.vscode-eslint
+ ];
+ };
+ };
+}
diff --git a/modules/home/gui/apps/zathura/default.nix b/modules/home/gui/apps/zathura/default.nix
new file mode 100755
index 0000000..45ee9c6
--- /dev/null
+++ b/modules/home/gui/apps/zathura/default.nix
@@ -0,0 +1,48 @@
+{ lib, config, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ programs.zathura = {
+ enable = true;
+ extraConfig = ''
+ set default-fg "#${config.colorScheme.colors.base06}"
+ set default-bg "#${config.colorScheme.colors.base00}"
+
+ set completion-bg "#${config.colorScheme.colors.base02}"
+ set completion-fg "#${config.colorScheme.colors.base06}"
+ set completion-highlight-bg "#${config.colorScheme.colors.base03}"
+ set completion-highlight-fg "#${config.colorScheme.colors.base06}"
+ set completion-group-bg "#${config.colorScheme.colors.base01}"
+ set completion-group-fg "#${config.colorScheme.colors.base0C}"
+
+ set statusbar-fg "#${config.colorScheme.colors.base06}"
+ set statusbar-bg "#${config.colorScheme.colors.base01}"
+
+ set notification-bg "#${config.colorScheme.colors.base01}"
+ set notification-fg "#${config.colorScheme.colors.base06}"
+ set notification-error-bg "#${config.colorScheme.colors.base01}"
+ set notification-error-fg "#${config.colorScheme.colors.base0F}"
+ set notification-warning-bg "#${config.colorScheme.colors.base01}"
+ set notification-warning-fg "#${config.colorScheme.colors.base09}"
+
+ set inputbar-fg "#${config.colorScheme.colors.base06}"
+ set inputbar-bg "#${config.colorScheme.colors.base01}"
+
+ set recolor-lightcolor "#${config.colorScheme.colors.base00}"
+ set recolor-darkcolor "#${config.colorScheme.colors.base06}"
+
+ set index-fg "#${config.colorScheme.colors.base06}"
+ set index-bg "#${config.colorScheme.colors.base00}"
+ set index-active-fg "#${config.colorScheme.colors.base06}"
+ set index-active-bg "#${config.colorScheme.colors.base01}"
+
+ set render-loading-bg "#${config.colorScheme.colors.base00}"
+ set render-loading-fg "#${config.colorScheme.colors.base06}"
+
+ set highlight-color "#${config.colorScheme.colors.base04}"
+ set highlight-fg "#${config.colorScheme.colors.base0E}"
+ set highlight-active-color "#${config.colorScheme.colors.base0E}"
+
+ '';
+ };
+ };
+}
diff --git a/modules/home/gui/base/default.nix b/modules/home/gui/base/default.nix
new file mode 100644
index 0000000..8791ff7
--- /dev/null
+++ b/modules/home/gui/base/default.nix
@@ -0,0 +1,18 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ services.nextcloud-client.enable = true;
+
+ home.packages = with pkgs; [
+ xfce.thunar
+ xfce.thunar-volman
+ xfce.thunar-archive-plugin
+ xfce.tumbler
+
+ telegram-desktop
+ pavucontrol
+ keepassxc
+ gramps
+ ];
+ };
+}
diff --git a/modules/home/gui/games/default.nix b/modules/home/gui/games/default.nix
new file mode 100644
index 0000000..3054ac6
--- /dev/null
+++ b/modules/home/gui/games/default.nix
@@ -0,0 +1,21 @@
+{ lib, config, pkgs, ... }: {
+
+ imports = [ ./openttd.nix ];
+
+ config = lib.mkIf (config.homecfg.make.game) {
+
+ home.packages = with pkgs; [
+ custom.simc
+
+ #games
+ steam
+ gamemode
+ gamescope
+ mangohud
+ prismlauncher
+ openttd-jgrpp
+ bottles
+ ];
+ };
+
+}
diff --git a/modules/home/gui/games/openttd.nix b/modules/home/gui/games/openttd.nix
new file mode 100755
index 0000000..b70f2a1
--- /dev/null
+++ b/modules/home/gui/games/openttd.nix
@@ -0,0 +1,766 @@
+{ lib, config, ... }: {
+
+ config = lib.mkIf (config.homecfg.make.game) {
+ xdg.configFile."openttd/openttd.cfg".text = ''
+ [misc]
+ display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS
+ extra_display_opt = SHOW_MONEY_TEXT_EFFECTS
+ fullscreen = false
+ video_hw_accel = true
+ video_vsync = true
+ support8bpp = no
+ graphicsset =
+ soundsset = "NoSound"
+ musicset =
+ videodriver =
+ musicdriver =
+ sounddriver =
+ blitter =
+ language = english.lng
+ resolution = 1920,1080
+ screenshot_format =
+ savegame_format =
+ rightclick_emulate = false
+ small_font = IBM Plex Mono
+ medium_font = IBM Plex Mono
+ large_font = IBM Plex Mono
+ mono_font = IBM Plex Mono
+ small_size = 8
+ medium_size = 11
+ large_size = 14
+ mono_size = 11
+ small_aa = true
+ medium_aa = true
+ large_aa = true
+ mono_aa = true
+ sprite_cache_size_px = 128
+ player_face = 0
+ transparency_options = 511
+ transparency_locks = 0
+ invisibility_options = 2
+ keyboard =
+ keyboard_caps =
+ last_newgrf_count = 27
+ gui_zoom = 2
+ font_zoom = 2
+ zoning_overlay_inner = 0
+ zoning_overlay_outer = 0
+ cargo_payment_x_mode = 0
+ extra_transparency_options = 1
+ extra_transparency_locks = 0
+ gui_scale = -1
+
+ [difficulty]
+ max_no_competitors = 0
+ number_towns = 2
+ industry_density = 3
+ max_loan = 300000
+ initial_interest = 2
+ vehicle_costs = 0
+ competitor_speed = 2
+ vehicle_breakdowns = 1
+ subsidy_multiplier = 2
+ construction_cost = 0
+ terrain_type = 2
+ quantity_sea_lakes = 1
+ economy = false
+ line_reverse_mode = false
+ disasters = false
+ town_council_tolerance = 0
+ money_cheat_in_multiplayer = false
+ rename_towns_in_multiplayer = false
+ vehicle_costs_in_depot = 1
+ vehicle_costs_when_stopped = 1
+ subsidy_duration = 1
+ override_town_settings_in_multiplayer = false
+
+ [game_creation]
+ town_name = 21
+ landscape = temperate
+ heightmap_height = 26
+ snow_line_height = 10
+ rainforest_line_height = 8
+ climate_threshold_mode = 0
+ snow_coverage = 20
+ desert_coverage = 50
+ starting_year = 1900
+ ending_year = 2050
+ land_generator = 1
+ oil_refinery_limit = 32
+ tgen_smoothness = 1
+ variety = 3
+ generation_seed = 2479758246
+ generation_unique_id = 0
+ tree_placer = 2
+ heightmap_rotation = 1
+ se_flat_world_height = 1
+ map_x = 7
+ map_y = 7
+ water_borders = 15
+ custom_town_number = 1
+ custom_terrain_type = 30
+ custom_sea_level = 1
+ min_river_length = 16
+ river_route_random = 5
+ rivers_top_of_hill = true
+ river_tropics_width = 5
+ lake_size = 10
+ lakes_allowed_in_deserts = false
+ amount_of_rivers = 2
+ amount_of_rocks = 5
+ height_affects_rocks = 0
+ build_public_roads = 2
+ custom_industry_number = 1
+ lake_tropics_width = 5
+ coast_tropics_width = 0
+
+ [vehicle]
+ road_side = right
+ train_acceleration_model = 1
+ train_braking_model = 0
+ roadveh_acceleration_model = 1
+ train_slope_steepness = 3
+ roadveh_slope_steepness = 7
+ max_train_length = 12
+ smoke_amount = 1
+ never_expire_vehicles = false
+ no_expire_vehicles_after = 0
+ no_introduce_vehicles_after = 0
+ max_trains = 500
+ max_roadveh = 500
+ max_aircraft = 0
+ max_ships = 300
+ wagon_speed_limits = true
+ disable_elrails = false
+ freight_trains = 1
+ plane_speed = 4
+ dynamic_engines = true
+ plane_crashes = 2
+ improved_breakdowns = false
+ ship_collision_avoidance = true
+ no_train_crash_other_company = false
+ flip_direction_all_trains = false
+ roadveh_articulated_overtaking = true
+ drive_through_train_depot = false
+ extend_vehicle_life = 0
+ adjacent_crossings = true
+ safer_crossings = true
+ pay_for_repair = true
+ repair_cost = 100
+ servint_ispercent = false
+ servint_trains = 150
+ servint_roadveh = 150
+ servint_ships = 360
+ servint_aircraft = 100
+ auto_timetable_by_default = true
+ auto_separation_by_default = true
+ slow_road_vehicles_in_curves = true
+ train_speed_adaptation = false
+ realistic_braking_aspect_limited = 0
+ through_load_speed_limit = 15
+ roadveh_cant_quantum_tunnel = false
+ rail_depot_speed_limit = 61
+
+ [construction]
+ map_height_limit = 0
+ build_on_slopes = true
+ command_pause_level = 2
+ enable_build_river = true
+ enable_remove_water = true
+ terraform_per_64k_frames = 4194304
+ terraform_frame_burst = 4096
+ clear_per_64k_frames = 4194304
+ clear_frame_burst = 4096
+ tree_per_64k_frames = 4194304
+ tree_frame_burst = 4096
+ purchase_land_per_64k_frames = 1048576
+ purchase_land_frame_burst = 1024
+ build_object_per_64k_frames = 2097152
+ build_object_frame_burst = 2048
+ autoslope = true
+ extra_dynamite = true
+ max_bridge_length = 128
+ max_bridge_height = 12
+ max_tunnel_length = 128
+ chunnel = true
+ train_signal_side = 1
+ road_stop_on_town_road = true
+ road_stop_on_competitor_road = true
+ road_custom_bridge_heads = true
+ rail_custom_bridge_heads = true
+ allow_grf_objects_under_bridges = false
+ allow_stations_under_bridges = false
+ allow_road_stops_under_bridges = true
+ allow_docks_under_bridges = true
+ purchase_land_permitted = 2
+ build_object_area_permitted = true
+ raw_industry_construction = 0
+ industry_platform = 1
+ maximum_signal_evaluations = 256
+ freeform_edges = true
+ extra_tree_placement = 2
+ trees_around_snow_line_enabled = true
+ trees_around_snow_line_range = 8
+ tree_growth_rate = 0
+ no_expire_objects_after = 0
+ ignore_object_intro_dates = false
+ trees_around_snow_line_dynamic_range = 75
+
+ [station]
+ never_expire_airports = false
+ station_spread = 16
+ modified_catchment = true
+ catchment_increase = 0
+ cargo_class_rating_wait_time = false
+ station_size_rating_cargo_amount = false
+ serve_neutral_industries = true
+ adjacent_stations = true
+ distant_join_stations = true
+ station_delivery_mode = 0
+
+ [economy]
+ town_layout = 1
+ allow_town_roads = true
+ found_town = 1
+ allow_town_level_crossings = true
+ town_cargogen_mode = 1
+ town_cargo_scale_factor = 0
+ industry_cargo_scale_factor = 0
+ station_noise_level = false
+ inflation = false
+ inflation_fixed_dates = true
+ day_length_factor = 5
+ multiple_industry_per_town = false
+ bribe = true
+ exclusive_rights = true
+ fund_buildings = true
+ fund_roads = true
+ give_money = true
+ type = 1
+ allow_shares = false
+ min_years_for_shares = 6
+ feeder_payment_share = 75
+ town_growth_rate = 2
+ town_zone_calc_mode = false
+ town_zone_0_mult = 15
+ town_zone_1_mult = 9
+ town_zone_2_mult = 0
+ town_zone_3_mult = 5
+ town_zone_4_mult = 3
+ city_zone_0_mult = 15
+ city_zone_1_mult = 9
+ city_zone_2_mult = 0
+ city_zone_3_mult = 5
+ city_zone_4_mult = 3
+ town_growth_cargo_transported = 0
+ larger_towns = 4
+ initial_city_size = 2
+ mod_road_rebuild = true
+ town_min_distance = 20
+ infrastructure_sharing[0] = true
+ infrastructure_sharing[1] = true
+ infrastructure_sharing[2] = true
+ infrastructure_sharing[3] = false
+ sharing_fee[0] = 100
+ sharing_fee[1] = 100
+ sharing_fee[2] = 100
+ sharing_fee[3] = 100
+ sharing_payment_in_debt = true
+ dist_local_authority = 20
+ town_noise_population[0] = 800
+ town_noise_population[1] = 2000
+ town_noise_population[2] = 4000
+ infrastructure_maintenance = false
+ random_road_reconstruction = 0
+ max_town_heightlevel = 255
+ min_town_land_area = 0
+ min_city_land_area = 75
+ town_build_tunnels = 2
+ town_max_road_slope = 4
+ allow_town_bridges = true
+ disable_inflation_newgrf_flag = false
+ payment_algorithm = 1
+
+ [linkgraph]
+ recalc_interval = 4
+ recalc_time = 16
+ recalc_not_scaled_by_daylength = true
+ distribution_pax = 2
+ distribution_mail = 2
+ distribution_armoured = 0
+ distribution_default = 0
+ accuracy = 16
+ demand_distance = 100
+ demand_size = 100
+ short_path_saturation = 80
+ aircraft_link_scale = 100
+
+ [pf]
+ forbid_90_deg = false
+ roadveh_queue = true
+ reroute_rv_on_layout_change = 1
+ pathfinder_for_trains = 2
+ pathfinder_for_roadvehs = 2
+ pathfinder_for_ships = 2
+ reverse_at_signals = false
+ wait_oneway_signal = 15
+ wait_twoway_signal = 41
+ wait_for_pbs_path = 30
+ reserve_paths = false
+ path_backoff_interval = 20
+ npf.npf_max_search_nodes = 10000
+ npf.npf_rail_firstred_penalty = 1000
+ npf.npf_rail_firstred_exit_penalty = 10000
+ npf.npf_rail_lastred_penalty = 1000
+ npf.npf_rail_station_penalty = 100
+ npf.npf_rail_slope_penalty = 100
+ npf.npf_rail_curve_penalty = 100
+ npf.npf_rail_depot_reverse_penalty = 5000
+ npf.npf_rail_pbs_cross_penalty = 300
+ npf.npf_rail_pbs_signal_back_penalty = 1500
+ npf.npf_buoy_penalty = 200
+ npf.npf_water_curve_penalty = 100
+ npf.npf_road_curve_penalty = 100
+ npf.npf_crossing_penalty = 300
+ npf.npf_road_drive_through_penalty = 800
+ npf.npf_road_dt_occupied_penalty = 800
+ npf.npf_road_bay_occupied_penalty = 1500
+ npf.maximum_go_to_depot_penalty = 2000
+ yapf.disable_node_optimization = false
+ yapf.max_search_nodes = 10000
+ yapf.rail_firstred_twoway_eol = false
+ yapf.rail_firstred_penalty = 1000
+ yapf.rail_firstred_exit_penalty = 10000
+ yapf.rail_lastred_penalty = 1000
+ yapf.rail_lastred_exit_penalty = 10000
+ yapf.rail_station_penalty = 1000
+ yapf.rail_slope_penalty = 200
+ yapf.rail_curve45_penalty = 100
+ yapf.rail_curve90_penalty = 600
+ yapf.rail_depot_reverse_penalty = 5000
+ yapf.rail_crossing_penalty = 300
+ yapf.rail_look_ahead_max_signals = 10
+ yapf.rail_look_ahead_signal_p0 = 500
+ yapf.rail_look_ahead_signal_p1 = -100
+ yapf.rail_look_ahead_signal_p2 = 5
+ yapf.rail_pbs_cross_penalty = 300
+ yapf.rail_pbs_station_penalty = 800
+ yapf.rail_pbs_signal_back_penalty = 1500
+ yapf.rail_doubleslip_penalty = 100
+ yapf.rail_longer_platform_penalty = 800
+ yapf.rail_longer_platform_per_tile_penalty = 0
+ yapf.rail_shorter_platform_penalty = 4000
+ yapf.rail_shorter_platform_per_tile_penalty = 0
+ yapf.road_slope_penalty = 200
+ yapf.road_curve_penalty = 100
+ yapf.road_crossing_penalty = 300
+ yapf.road_stop_penalty = 800
+ yapf.road_stop_occupied_penalty = 800
+ yapf.road_stop_bay_occupied_penalty = 1500
+ yapf.maximum_go_to_depot_penalty = 2000
+ yapf.ship_curve45_penalty = 100
+ yapf.ship_curve90_penalty = 600
+ back_of_one_way_pbs_waiting_point = true
+
+ [order]
+ no_servicing_if_no_breakdowns = true
+ improved_load = true
+ selectgoods = true
+ serviceathelipad = true
+ nonstop_only = false
+ gradual_loading = true
+
+ [script]
+ settings_profile = easy
+ script_max_opcode_till_suspend = 10000
+ script_max_memory_megabytes = 1024
+
+ [ai]
+ ai_in_multiplayer = true
+ ai_disable_veh_train = false
+ ai_disable_veh_roadveh = false
+ ai_disable_veh_aircraft = false
+ ai_disable_veh_ship = false
+
+ [locale]
+ currency = CHF
+ units_velocity = metric
+ units_power = si
+ units_weight = metric
+ units_volume = metric
+ units_force = si
+ units_height = si
+ digit_group_separator =
+ digit_group_separator_currency =
+ digit_decimal_separator =
+ units_velocity_nautical = metric
+
+ [gui]
+ autosave = monthly
+ threaded_saves = true
+ date_format_in_default_names = iso
+ show_finances = true
+ auto_scrolling = 0
+ scroll_mode = 0
+ smooth_scroll = false
+ right_mouse_wnd_close = true
+ measure_tooltip = true
+ errmsg_duration = 5
+ hover_delay_ms = 250
+ osk_activation = disabled
+ toolbar_pos = 1
+ statusbar_pos = 1
+ window_snap_radius = 10
+ window_soft_limit = 20
+ zoom_min = 0
+ zoom_max = 9
+ sprite_zoom_min = 0
+ population_in_label = true
+ link_terraform_toolbar = false
+ smallmap_land_colour = 0
+ liveries = 2
+ starting_colour = 16
+ auto_remove_signals = false
+ prefer_teamchat = false
+ scrollwheel_scrolling = 0
+ scrollwheel_multiplier = 5
+ viewport_map_scan_surroundings = true
+ show_slopes_on_viewport_map = true
+ show_bridges_on_map = true
+ show_tunnels_on_map = true
+ show_vehicle_route = 1
+ dash_level_of_route_lines = 0
+ use_owner_colour_for_tunnelbridge = false
+ show_scrolling_viewport_on_map = 3
+ default_viewport_map_mode = 0
+ action_when_viewport_map_is_dblclicked = 1
+ pause_on_newgame = true
+ advanced_vehicle_list = 1
+ timetable_in_ticks = false
+ timetable_leftover_ticks = false
+ override_time_settings = false
+ time_in_minutes = false
+ ticks_per_minute = 74
+ clock_offset = 0
+ date_with_time = 0
+ timetable_start_text_entry = false
+ timetable_arrival_departure = true
+ max_departures = 10
+ max_departure_time = 120
+ departure_calc_frequency = 10
+ departure_show_vehicle = false
+ departure_show_group = false
+ departure_show_company = false
+ departure_show_vehicle_type = false
+ departure_show_vehicle_color = false
+ departure_larger_font = false
+ departure_destination_type = false
+ departure_show_both = false
+ departure_only_passengers = false
+ departure_smart_terminus = false
+ departure_show_all_stops = false
+ departure_merge_identical = false
+ departure_conditionals = 0
+ quick_goto = true
+ loading_indicators = 1
+ default_rail_type = 0
+ default_road_type = 0
+ enable_signal_gui = true
+ coloured_news_year = 2000
+ drag_signals_density = 4
+ drag_signals_fixed_distance = false
+ semaphore_build_before = 1950
+ vehicle_income_warn = true
+ order_review_system = 2
+ no_depot_order_warn = false
+ lost_vehicle_warn = true
+ restriction_wait_vehicle_warn = false
+ new_nonstop = true
+ stop_location = 2
+ keep_all_autosave = false
+ autosave_on_exit = false
+ autosave_on_network_disconnect = true
+ max_num_autosaves = 16
+ savegame_overwrite_confirm = yes
+ auto_euro = true
+ news_message_timeout = 2
+ show_track_reservation = true
+ default_signal_type = 4
+ cycle_signal_types = 0
+ station_numtracks = 4
+ station_platlength = 7
+ station_dragdrop = false
+ station_show_coverage = true
+ persistent_buildingtools = true
+ expenses_layout = true
+ station_gui_group_order = 3
+ station_gui_sort_by = 0
+ station_gui_sort_order = 0
+ missing_strings_threshold = 25
+ graph_line_thickness = 3
+ show_vehicle_route_steps = true
+ show_train_length_in_details = true
+ show_train_weight_ratios_in_details = false
+ show_vehicle_group_in_details = true
+ show_vehicle_list_company_colour = true
+ show_restricted_signal_default = true
+ show_adv_tracerestrict_features = true
+ show_progsig_ui = true
+ show_veh_list_cargo_filter = true
+ enable_single_veh_shared_order_gui = false
+ show_adv_load_mode_features = true
+ disable_top_veh_list_mass_actions = false
+ adv_sig_bridge_tun_modes = true
+ show_depot_sell_gui = false
+ open_vehicle_gui_clone_share = false
+ show_newgrf_name = false
+ linkgraph_colours = 0
+ vehicle_names = 1
+ shade_trees_on_slopes = true
+ show_date_in_logs = false
+ settings_restriction_mode = 2
+ developer = 1
+ newgrf_developer_tools = false
+ ai_developer_tools = false
+ scenario_developer = false
+ newgrf_show_old_versions = false
+ newgrf_default_palette = 1
+ console_show_unlisted = false
+ console_backlog_timeout = 100
+ console_backlog_length = 100
+ refresh_rate = 60
+ fast_forward_speed_limit = 2500
+ network_chat_box_width_pct = 40
+ network_chat_box_height = 25
+ network_chat_timeout = 20
+ sort_track_types_by_speed = false
+ station_rating_tooltip_mode = 1
+ demolish_confirm_mode = 2
+ experimental_dual_pane_train_purchase_window = false
+ dual_pane_train_purchase_window = true
+ show_noentrysig_ui = true
+ autosave_custom_days = 14
+ autosave_custom_minutes = 30
+ signal_gui_mode = 0
+ show_all_signal_default = true
+ show_wagon_intro_year = false
+ allow_hiding_waypoint_labels = false
+ disable_water_animation = 255
+ show_order_occupancy_by_default = false
+ show_order_management_button = false
+ show_group_hierarchy_name = false
+ show_vehicle_group_hierarchy_name = false
+ newgrf_disable_big_gui = false
+ show_vehicle_route_mode = 1
+ dual_pane_train_purchase_window_dual_buttons = true
+ zoom_max_extra = 9
+ show_cargo_in_vehicle_lists = false
+ scale_bevels = true
+
+ [game_time]
+ time_in_minutes = false
+ ticks_per_minute = 74
+ clock_offset = 0
+
+ [sound]
+ news_ticker = false
+ news_full = false
+ new_year = false
+ confirm = false
+ click_beep = false
+ disaster = false
+ vehicle = false
+ ambient = false
+
+ [music]
+ playlist = 0
+ music_vol = 50
+ effect_vol = 100
+ custom_1 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ custom_2 = 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+ playing = true
+ shuffle = false
+
+ [news_display]
+ arrival_player = full
+ arrival_other = summarized
+ accident = full
+ company_info = full
+ open = summarized
+ close = summarized
+ economy = full
+ production_player = summarized
+ production_other = off
+ production_nobody = off
+ advice = full
+ new_vehicles = full
+ acceptance = full
+ subsidies = summarized
+ general = full
+ accident_other = full
+
+ [scenario]
+ multiple_buildings = false
+ house_ignore_dates = false
+ house_ignore_zones = 0
+ house_ignore_grf = false
+
+ [network]
+ commands_per_frame = 2
+ max_commands_in_queue = 16
+ bytes_per_frame = 8
+ bytes_per_frame_burst = 256
+ max_init_time = 100
+ max_join_time = 500
+ max_download_time = 1000
+ max_password_time = 2000
+ max_lag_time = 500
+ pause_on_join = true
+ server_port = 3979
+ server_admin_port = 3977
+ server_admin_chat = true
+ autoclean_companies = false
+ autoclean_unprotected = 12
+ autoclean_protected = 36
+ autoclean_novehicles = 0
+ max_companies = 15
+ max_clients = 25
+ max_spectators = 15
+ restart_game_year = 0
+ min_active_clients = 0
+ reload_cfg = false
+ last_host =
+ last_port = 0
+ no_http_content_downloads = false
+ server_game_type = public
+ use_relay_service = ask
+
+ [currency]
+ rate = 1
+ separator = "."
+ to_euro = 0
+ prefix =
+ suffix = " credits"
+
+ [company]
+ engine_renew = true
+ engine_renew_months = 6
+ engine_renew_money = 100000
+ renew_keep_length = false
+ auto_timetable_separation_rate = 40
+ timetable_autofill_rounding = 74
+ order_occupancy_smoothness = 75
+ infra_others_buy_in_depot[0] = false
+ infra_others_buy_in_depot[1] = false
+ infra_others_buy_in_depot[2] = false
+ infra_others_buy_in_depot[3] = false
+ advance_order_on_clone = false
+ copy_clone_add_to_group = true
+ simulated_wormhole_signals = 4
+ remain_if_next_order_same_station = true
+
+ [ai_players]
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+ none = start_date=730
+
+ [game_scripts]
+ none =
+
+ [version]
+ version_string = jgrpp-0.53.3
+ version_number = 1E006D64
+ ini_version = 2
+
+ [preset-TEST]
+ 444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
+ 52571203|2E00A55DF056E0F4BD7BBC2517514DC7|egrvts2-202/egrvts2.grf = 0 62 2 0
+ 45520C00|FCF4EE39F19C02D9E8603D07621DDD99|japanese_town_names.0.6/jpset_namw.grf =
+ 52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
+ 474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
+ 52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
+ 2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
+ 45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
+ 52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
+ 44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
+ 42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
+ 535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 2 1 1 1 0 1 0 0
+ 44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
+ 736C6602|2DB244FD410D77FCCE2DE6D5AF09DF51|japanese_city_names-1/jpcities.grf =
+ "454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
+ 1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
+ 454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
+ 41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
+ 74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
+ 4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
+ 4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
+ 56420202|B2EB887D411D23173688A4F72BE7184C|purr_universal_rainbow_rails-0.0.7/purr.grf = 0 1 0 0 0 0 0 0 0 0 0 0 20 35 35 35 35
+
+ [client_locale]
+ sync_locale_network_server = false
+
+ [preset-MAIN]
+ 41560103|FAD3EB34DE1CBAF515FD7A870C4F9A08|egrvts_v2.1-r237/egrvts2_1.grf = 0 63 0 3 0
+ 4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
+ 41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
+ 52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
+ 474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
+ 52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
+ 2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
+ 45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
+ 52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
+ 44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
+ 42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
+ 4B523033|A2FD753BC20D1F1F7E0DF9AD5F09FECB|jp_shinkansen-0.2.1/jpplusshinkansen_v0.2.1.grf = 1 2 1 0 1 0 1
+ 595AAA01|24705D6F58BF2D6686AF3915B5CE7006|jp_metro_set-5.1/jpmetro.grf = 1 1 2
+ 444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
+ "454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
+ 1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
+ 454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
+ 74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
+ 4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
+ F1250008|6A2E778BFF67AB76437696ED1C3C780A|firs_industry_replacement_set_4-4.15.1/firs.grf = 1 0 0 0 0 0 16 150 80 300 1
+ 535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 1 0 1 1 0 1 0 0
+ 44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
+
+ [newgrf]
+ 41560103|FAD3EB34DE1CBAF515FD7A870C4F9A08|egrvts_v2.1-r237/egrvts2_1.grf = 0 63 0 3 0
+ 4A544E45|8F3301887E272D775C331163F2C71CE5|japanese_town_names_extended-0.1/jtne.grf =
+ 41533031|B21E7D6ADD69B1C07643939764FB4878|swedish_houses-1.1.2/swehouses.grf =
+ 52453400|B2E27B74A3894198A00139CFCF09D011|japanese_buildings-3.1/jpbuild.grf = 2 0 1
+ 474C0000|1E5E4C815B905749AAE94142C1A67B8B|japanese_faces-3.0/jpfaces.grf =
+ 52453200|A222F0B3BCF0CFE187A7868116A00C49|japanset_landscape-3.2/jpland.grf = 1 0 1 0 0
+ 2C320A01|065916BDB63F43BBB4A686E1B4954004|japanese_signals-3.0/jpsignals.grf = 1
+ 45530500|D9BE5AFA481FC3E0A96E6EB72B455612|japanese_stations-3.6/jpstations.grf = 1 1 1 1
+ 52453300|EF6A4519AD4C18B9B9112B8D7083862D|japanese_trees-3.0/jptrees.grf =
+ 44503000|0BF5A48500990CF4CBFED5D7CC6ED120|japanese_tracks-3.2/jptracks.grf = 0 0 0 2 2 1 1 1 3 1 0
+ 42531320|45C480EEF47E0A8B67CA4E1B1DC30604|jp_multiple_units_jgr_jnr_jr-0.4.2/jpplus_v042.grf = 1 2 1 1 1
+ 4B523033|A2FD753BC20D1F1F7E0DF9AD5F09FECB|jp_shinkansen-0.2.1/jpplusshinkansen_v0.2.1.grf = 1 2 1 0 1 0 1
+ 595AAA01|24705D6F58BF2D6686AF3915B5CE7006|jp_metro_set-5.1/jpmetro.grf = 1 1 2
+ 444C1105|4AC44465E334F062F56BC24C728C8E72|dach_trains-0.3.2/dach.grf = 1
+ "454E1302|623C32CFD50835F484DBBD42EC45FE3D|japanese_suspended_monorail_set-1.1/jpsusmon nrt.grf" = 1 2 2
+ 1560B248|76BE5A3BA8C66817C14CFA05177D20D9|redfish-0.4/redfish.grf = 1 1 0
+ 454E2001|342B064182A42854EF830BC11BE86E4E|real_international_maglev_set-1.6/rims.grf = 1 2 2 0 2 1 1 1 1 0 0 0 1 1 0 1
+ 74677563|8A53DE2FF752868097FBE403FACD8DA4|total_bridge_renewal_japan-1.12/total_bridgesw.grf =
+ 4A565201|934DD16DC79E23A741D9C372AC5B67D3|project_gondola-0.4/gondola.grf =
+ F1250008|6A2E778BFF67AB76437696ED1C3C780A|firs_industry_replacement_set_4-4.15.1/firs.grf = 1 0 0 0 0 0 16 150 80 300 1
+ 535A0D00|21AC703CAB2BE6A80FAF2344366FE0C1|japanese_train_set-3.3/jptrains.grf = 0 1 1 2 1 0 1 1 0 1 0 0
+ 44501401|5B9D588504701CCC2BB14CDB1F18D06B|japanese_maglevs-3.1/jptrainsadd.grf = 0 0 0 0 0 1 1 1
+
+ [newgrf-static]
+
+ '';
+ };
+}
diff --git a/modules/home/gui/theme/default.nix b/modules/home/gui/theme/default.nix
new file mode 100755
index 0000000..1e77ed4
--- /dev/null
+++ b/modules/home/gui/theme/default.nix
@@ -0,0 +1,56 @@
+{ lib, config, pkgs, ... }:
+let
+ colorVariant = " black";
+ gtkThemeFromScheme = import ./gtk-theme-gen.nix { inherit pkgs config; };
+ wallpaperGen = import ./wallpaper-gen.nix { inherit pkgs config; };
+in {
+
+ config = lib.mkIf (config.homecfg.make.gui) {
+ home.pointerCursor = {
+ package = pkgs.bibata-cursors;
+ name = "Bibata-Modern-Classic";
+ size = 24;
+ gtk.enable = true;
+ x11.enable = true;
+ };
+
+ gtk = {
+ enable = true;
+ theme = {
+ name = "${config.colorscheme.slug}";
+ package = gtkThemeFromScheme;
+ };
+ iconTheme = {
+ name = "tela-circle-icon-theme";
+ package = pkgs.tela-circle-icon-theme;
+ };
+ };
+
+ qt = {
+ enable = true;
+ platformTheme = "gtk";
+ };
+
+ home.packages = [ wallpaperGen pkgs.swww ];
+
+ xdg.configFile."script/wallpaper.sh".text = ''
+ #!/bin/sh
+
+ NIXDIR=${wallpaperGen}
+ WPDIR=$NIXDIR/share/wallpaper/
+
+ IMGS=$(find $WPDIR -type f -print)
+
+
+ RES=$(echo "$IMGS" | awk -v dir="$WPDIR" '{
+ image_file = $0;
+ gsub("^" dir, "", image_file);
+ print "img:" $0 ":text:" image_file;
+ }')
+
+ IMG=$WPDIR/$(echo "$RES" | wofi --dmenu --allow-images show-icons true -theme-str '#window { width: 50%; }' -p "Choose wallpaper:")
+ IMG=$(echo "$IMG" | awk -F ':' '{print $2}')
+ swww img $IMG
+ '';
+ };
+}
diff --git a/home/gui/theme/gtk-theme-gen.nix b/modules/home/gui/theme/gtk-theme-gen.nix
similarity index 98%
rename from home/gui/theme/gtk-theme-gen.nix
rename to modules/home/gui/theme/gtk-theme-gen.nix
index f08ddc0..b435da7 100755
--- a/home/gui/theme/gtk-theme-gen.nix
+++ b/modules/home/gui/theme/gtk-theme-gen.nix
@@ -6,8 +6,7 @@ let
ln -s ${pkgs.resvg}/bin/resvg $out/bin/rendersvg
'';
scheme = config.colorScheme;
-in
-pkgs.stdenv.mkDerivation rec {
+in pkgs.stdenv.mkDerivation rec {
name = "generated-gtk-theme-${scheme.slug}";
src = pkgs.fetchFromGitHub {
owner = "nana-4";
@@ -66,4 +65,4 @@ pkgs.stdenv.mkDerivation rec {
./change_color.sh -o ${scheme.slug} /build/gtk-colors -i False -t "$out/share/themes"
chmod 555 -R .
'';
-}
\ No newline at end of file
+}
diff --git a/modules/home/gui/theme/wallpaper-gen.nix b/modules/home/gui/theme/wallpaper-gen.nix
new file mode 100644
index 0000000..b5b46e5
--- /dev/null
+++ b/modules/home/gui/theme/wallpaper-gen.nix
@@ -0,0 +1,40 @@
+{ pkgs, config }:
+
+let
+ scheme = config.colorScheme;
+ colors = scheme.colors;
+ dither =
+ "atkinson"; # none | floyd-steinberg | atkinson | jjn | burkes | sierra | sierra-lite
+in pkgs.stdenv.mkDerivation rec {
+ pname = "generated-wallpaper";
+ version = "a1676fc2a0e3dfb7bf95d8a89e592830";
+ src = pkgs.fetchFromGitea {
+ domain = "git.helcel.net";
+ owner = "sora";
+ repo = "nixconfig-wallpaper";
+ rev = version;
+ sha256 = "sha256-ZhBjTaKzoiEq1ptMmNWWRPCjLJsvy9My/HuzRaDjX1c=";
+ };
+
+ buildInputs = with pkgs; [ custom.repalette nodejs imagemagick gifsicle ];
+
+ configurePhase = ''
+ echo "${colors.base00},${colors.base01},\
+ ${colors.base02},${colors.base03},\
+ ${colors.base04},${colors.base05},\
+ ${colors.base06},${colors.base07},\
+ ${colors.base08},${colors.base09},\
+ ${colors.base0A},${colors.base0B},\
+ ${colors.base0C},${colors.base0D},\
+ ${colors.base0E},${colors.base0F}" > palette.in
+ '';
+
+ buildPhase = ''
+ make DITHER=${dither} PALETTE_SIZE=0 all
+ '';
+
+ installPhase = ''
+ mkdir -p $out/share/wallpaper
+ cp -r build/* $out/share/wallpaper/
+ '';
+}
diff --git a/modules/home/homecfg/default.nix b/modules/home/homecfg/default.nix
new file mode 100644
index 0000000..0ac6137
--- /dev/null
+++ b/modules/home/homecfg/default.nix
@@ -0,0 +1,39 @@
+{ inputs, lib, config, ... }:
+with lib; {
+ options.homecfg = {
+ username = mkOption { type = types.str; };
+ wm = mkOption {
+ type = types.enum [ "Wayland" "X11" ];
+ default = "Wayland";
+ };
+ make = {
+ cli = mkOption {
+ type = types.bool;
+ default = true;
+ };
+ gui = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ game = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ power = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ };
+ git = {
+ username = mkOption { type = types.str; };
+ email = mkOption { type = types.str; };
+ key = mkOption { type = types.str; };
+ };
+ };
+
+ imports = with inputs; [
+ nix-colors.homeManagerModules.default
+ ../../shared/colors
+ ];
+
+}
diff --git a/modules/home/wayland/apps/dunst/default.nix b/modules/home/wayland/apps/dunst/default.nix
new file mode 100755
index 0000000..886f469
--- /dev/null
+++ b/modules/home/wayland/apps/dunst/default.nix
@@ -0,0 +1,94 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+ home.packages = with pkgs; [ libnotify ];
+ services.dunst = {
+ enable = true;
+ #waylandDisplay = "DP-2";
+ settings = {
+ global = {
+ follow = "mouse";
+ height = "200";
+ width = "400";
+ scale = "0";
+ origin = "top-right";
+ offset = "4x40";
+ notification_limit = "0";
+ progress_bar = "true";
+ progress_bar_height = "10";
+ progress_bar_frame_width = "0";
+ progress_bar_min_width = "350";
+ progress_bar_max_width = "400";
+ indicate_hidden = "yes";
+ transparency = "0";
+ separator_height = "2";
+ padding = "12";
+ horizontal_padding = "15";
+ text_icon_padding = "0";
+ frame_width = "2";
+ frame_color = "#${config.colorScheme.colors.base03}";
+ separator_color = "auto";
+ sort = "yes";
+ font = "IBM Plex Mono 14";
+ markup = "full";
+ format = ''%s\n%b'';
+ alignment = "center";
+ vertical_alignment = "center";
+ show_age_threshold = "60";
+ ellipsize = "end";
+ ignore_newline = "no";
+ stack_duplicates = "true";
+ hide_duplicate_count = "false";
+ show_indicators = "yes";
+ min_icon_size = 32;
+ max_icon_size = 64;
+
+ icon_path =
+ "/usr/share/icons/gnome/128x128/status/:/usr/share/icons/gnome/128x128/devices/";
+ icon_theme = "Papirus, Adwaita";
+ enable_recursive_icon_lookup = "true";
+
+ sticky_history = "yes";
+ history_length = "20";
+
+ dmenu = "wofi --show dmenu -p dunst:";
+ browser = "/usr/bin/xdg-open";
+ always_run_script = "true";
+ title = "Dunst";
+ class = "Dunst";
+ corner_radius = "10";
+ ignore_dbusclose = "false";
+ layer = "top";
+ force_xwayland = "true";
+ force_xinerama = "false";
+
+ mouse_left_click = "close_current";
+ mouse_middle_click = "context";
+ mouse_right_click = "do_action";
+
+ };
+ urgency_low = {
+ background = "#${config.colorScheme.colors.base00}";
+ foreground = "#${config.colorScheme.colors.base07}";
+ frame_color = "#${config.colorScheme.colors.base03}";
+ timeout = "3";
+ highlight = "#${config.colorScheme.colors.base0B}";
+ };
+ urgency_normal = {
+ background = "#${config.colorScheme.colors.base00}";
+ foreground = "#${config.colorScheme.colors.base07}";
+ frame_color = "#${config.colorScheme.colors.base03}";
+ timeout = "5";
+ highlight = "#${config.colorScheme.colors.base0C}";
+ };
+ urgency_critical = {
+ background = "#${config.colorScheme.colors.base00}";
+ foreground = "#${config.colorScheme.colors.base0F}";
+ frame_color = "#${config.colorScheme.colors.base03}";
+ timeout = "10";
+ highlight = "#${config.colorScheme.colors.base0E}";
+ };
+ };
+ };
+ };
+}
diff --git a/home/gui/eww/css/_calendar.scss b/modules/home/wayland/apps/eww/css/_calendar.scss
similarity index 100%
rename from home/gui/eww/css/_calendar.scss
rename to modules/home/wayland/apps/eww/css/_calendar.scss
diff --git a/home/gui/eww/css/_sidebar.scss b/modules/home/wayland/apps/eww/css/_sidebar.scss
similarity index 100%
rename from home/gui/eww/css/_sidebar.scss
rename to modules/home/wayland/apps/eww/css/_sidebar.scss
diff --git a/home/gui/eww/css/_system.scss b/modules/home/wayland/apps/eww/css/_system.scss
similarity index 100%
rename from home/gui/eww/css/_system.scss
rename to modules/home/wayland/apps/eww/css/_system.scss
diff --git a/modules/home/wayland/apps/eww/default.nix b/modules/home/wayland/apps/eww/default.nix
new file mode 100755
index 0000000..7dbf908
--- /dev/null
+++ b/modules/home/wayland/apps/eww/default.nix
@@ -0,0 +1,43 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+ home.packages = with pkgs; [ eww-wayland jaq ];
+
+ xdg.configFile."eww" = {
+ source = lib.cleanSourceWith {
+ filter = name: _type:
+ let baseName = baseNameOf (toString name);
+ in !(lib.hasSuffix ".nix" baseName) && (baseName != "_colors.scss");
+ src = lib.cleanSource ./.;
+ };
+
+ recursive = true;
+ };
+
+ # colors file
+ xdg.configFile."eww/css/_colors.scss".text = ''
+ $base00: #${config.colorScheme.colors.base00};
+ $base01: #${config.colorScheme.colors.base01};
+ $base02: #${config.colorScheme.colors.base02};
+ $base03: #${config.colorScheme.colors.base03};
+ $base04: #${config.colorScheme.colors.base04};
+ $base05: #${config.colorScheme.colors.base05};
+ $base06: #${config.colorScheme.colors.base06};
+ $base07: #${config.colorScheme.colors.base07};
+ $base08: #${config.colorScheme.colors.base08};
+ $base09: #${config.colorScheme.colors.base09};
+ $base0A: #${config.colorScheme.colors.base0A};
+ $base0B: #${config.colorScheme.colors.base0B};
+ $base0C: #${config.colorScheme.colors.base0C};
+ $base0D: #${config.colorScheme.colors.base0D};
+ $base0E: #${config.colorScheme.colors.base0E};
+ $base0F: #${config.colorScheme.colors.base0F};
+
+
+ $fg: $base07;
+ $bg: $base00;
+ $bg1: $base01;
+ $border: $base03;
+ '';
+ };
+}
diff --git a/home/gui/eww/eww.scss b/modules/home/wayland/apps/eww/eww.scss
similarity index 100%
rename from home/gui/eww/eww.scss
rename to modules/home/wayland/apps/eww/eww.scss
diff --git a/home/gui/eww/eww.yuck b/modules/home/wayland/apps/eww/eww.yuck
similarity index 100%
rename from home/gui/eww/eww.yuck
rename to modules/home/wayland/apps/eww/eww.yuck
diff --git a/home/gui/eww/modules/clock.yuck b/modules/home/wayland/apps/eww/modules/clock.yuck
similarity index 100%
rename from home/gui/eww/modules/clock.yuck
rename to modules/home/wayland/apps/eww/modules/clock.yuck
diff --git a/home/gui/eww/modules/net.yuck b/modules/home/wayland/apps/eww/modules/net.yuck
similarity index 100%
rename from home/gui/eww/modules/net.yuck
rename to modules/home/wayland/apps/eww/modules/net.yuck
diff --git a/home/gui/eww/modules/sys.yuck b/modules/home/wayland/apps/eww/modules/sys.yuck
similarity index 100%
rename from home/gui/eww/modules/sys.yuck
rename to modules/home/wayland/apps/eww/modules/sys.yuck
diff --git a/home/gui/eww/modules/variables.yuck b/modules/home/wayland/apps/eww/modules/variables.yuck
similarity index 100%
rename from home/gui/eww/modules/variables.yuck
rename to modules/home/wayland/apps/eww/modules/variables.yuck
diff --git a/home/gui/eww/modules/workspaces.yuck b/modules/home/wayland/apps/eww/modules/workspaces.yuck
similarity index 100%
rename from home/gui/eww/modules/workspaces.yuck
rename to modules/home/wayland/apps/eww/modules/workspaces.yuck
diff --git a/home/gui/eww/scripts/battery b/modules/home/wayland/apps/eww/scripts/battery
similarity index 100%
rename from home/gui/eww/scripts/battery
rename to modules/home/wayland/apps/eww/scripts/battery
diff --git a/home/gui/eww/scripts/brightness b/modules/home/wayland/apps/eww/scripts/brightness
similarity index 100%
rename from home/gui/eww/scripts/brightness
rename to modules/home/wayland/apps/eww/scripts/brightness
diff --git a/home/gui/eww/scripts/flightmode b/modules/home/wayland/apps/eww/scripts/flightmode
similarity index 100%
rename from home/gui/eww/scripts/flightmode
rename to modules/home/wayland/apps/eww/scripts/flightmode
diff --git a/home/gui/eww/scripts/memory b/modules/home/wayland/apps/eww/scripts/memory
similarity index 100%
rename from home/gui/eww/scripts/memory
rename to modules/home/wayland/apps/eww/scripts/memory
diff --git a/home/gui/eww/scripts/net b/modules/home/wayland/apps/eww/scripts/net
similarity index 100%
rename from home/gui/eww/scripts/net
rename to modules/home/wayland/apps/eww/scripts/net
diff --git a/home/gui/eww/scripts/powermode b/modules/home/wayland/apps/eww/scripts/powermode
similarity index 100%
rename from home/gui/eww/scripts/powermode
rename to modules/home/wayland/apps/eww/scripts/powermode
diff --git a/home/gui/eww/scripts/volume b/modules/home/wayland/apps/eww/scripts/volume
similarity index 100%
rename from home/gui/eww/scripts/volume
rename to modules/home/wayland/apps/eww/scripts/volume
diff --git a/home/gui/eww/scripts/workspaces b/modules/home/wayland/apps/eww/scripts/workspaces
similarity index 100%
rename from home/gui/eww/scripts/workspaces
rename to modules/home/wayland/apps/eww/scripts/workspaces
diff --git a/home/gui/eww/windows/calendar.yuck b/modules/home/wayland/apps/eww/windows/calendar.yuck
similarity index 100%
rename from home/gui/eww/windows/calendar.yuck
rename to modules/home/wayland/apps/eww/windows/calendar.yuck
diff --git a/home/gui/eww/windows/system.yuck b/modules/home/wayland/apps/eww/windows/system.yuck
similarity index 100%
rename from home/gui/eww/windows/system.yuck
rename to modules/home/wayland/apps/eww/windows/system.yuck
diff --git a/modules/home/wayland/apps/waylock/default.nix b/modules/home/wayland/apps/waylock/default.nix
new file mode 100755
index 0000000..d23ce74
--- /dev/null
+++ b/modules/home/wayland/apps/waylock/default.nix
@@ -0,0 +1,103 @@
+{ lib, pkgs, config, ... }: {
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+
+ home.packages = with pkgs; [ swayidle swaylock-effects wlogout ];
+
+ xdg.configFile."swaylock/config".text = ''
+ screenshots
+ grace=5
+ effect-pixelate=5
+ fade-in=0.2
+
+ ignore-empty-password
+ font=IBM Plex Mono
+
+ color=${config.colorscheme.colors.base00}00
+
+ indicator-radius=100
+ indicator-thickness=30
+
+ separator-color=${config.colorscheme.colors.base00}00
+
+ inside-color=${config.colorscheme.colors.base0C}00
+ inside-clear-color=${config.colorscheme.colors.base08}FF
+ inside-caps-lock-color=${config.colorscheme.colors.base09}00
+ inside-ver-color=${config.colorscheme.colors.base0C}FF
+ inside-wrong-color=${config.colorscheme.colors.base0F}FF
+
+
+ ring-color=${config.colorscheme.colors.base00}00
+ ring-clear-color=${config.colorscheme.colors.base00}00
+ ring-caps-lock-color=${config.colorscheme.colors.base00}00
+ ring-ver-color=${config.colorscheme.colors.base00}00
+ ring-wrong-color=${config.colorscheme.colors.base00}00
+
+ line-color=${config.colorscheme.colors.base00}00
+ line-clear-color=${config.colorscheme.colors.base00}00
+ line-caps-lock-color=${config.colorscheme.colors.base00}00
+ line-ver-color=${config.colorscheme.colors.base00}00
+ line-wrong-color=${config.colorscheme.colors.base00}00
+
+ text-color=${config.colorscheme.colors.base00}00
+ text-clear-color=${config.colorscheme.colors.base00}00
+ text-caps-lock-color=${config.colorscheme.colors.base00}00
+ text-ver-color=${config.colorscheme.colors.base00}00
+ text-wrong-color=${config.colorscheme.colors.base00}00
+
+
+ key-hl-color=${config.colorscheme.colors.base0C}FF
+ bs-hl-color=${config.colorscheme.colors.base08}FF
+ caps-lock-key-hl-color=${config.colorscheme.colors.base09}FF
+ caps-lock-bs-hl-color=${config.colorscheme.colors.base09}FF
+ '';
+
+ xdg.configFile."wlogout/style.css".text = ''
+ window {
+ font-family: Material Design Icons;
+ font-size: 64pt;
+ color: #${config.colorscheme.colors.base07};
+ background-color: alpha(#${config.colorscheme.colors.base00},0.6);
+ }
+
+ button {
+ border-radius:7px;
+ border: 2px solid #${config.colorscheme.colors.base03};
+ color: #${config.colorscheme.colors.base07};
+ padding: 20px;
+ background-color: alpha(#${config.colorscheme.colors.base00},0.8);
+ transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
+ }
+
+ button:hover {
+ background-color: alpha(#${config.colorscheme.colors.base02},0.8);
+ }
+
+ button:focus {
+ background-color: alpha(#${config.colorscheme.colors.base02},1.0);
+ border: 2px solid #${config.colorscheme.colors.base05};
+ }
+
+ '';
+
+ xdg.configFile."wlogout/layout".text = ''
+ {
+ "label" : "lock",
+ "action" : "swaylock",
+ "text" : "",
+ "keybind" : "l"
+ }
+ {
+ "label" : "reboot",
+ "action" : "systemctl reboot",
+ "text" : "",
+ "keybind" : "r"
+ }
+ {
+ "label" : "shutdown",
+ "action" : "systemctl poweroff",
+ "text" : "",
+ "keybind" : "s"
+ }
+ '';
+ };
+}
diff --git a/modules/home/wayland/apps/wofi/default.nix b/modules/home/wayland/apps/wofi/default.nix
new file mode 100755
index 0000000..a773f24
--- /dev/null
+++ b/modules/home/wayland/apps/wofi/default.nix
@@ -0,0 +1,68 @@
+{ lib, config, pkgs, ... }: {
+
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+ home.packages = with pkgs; [ wofi ];
+ xdg.configFile."wofi/config".text = ''
+ width=280
+ lines=10
+ xoffset=5
+ yoffset=5
+ location=2
+ prompt=
+ filter_rate=100
+ allow_markup=false
+ no_actions=true
+ halign=fill
+ orientation=vertical
+ content_halign=fill
+ insensitive=true
+ allow_images=true
+ image_size=16
+ hide_scroll=true
+ '';
+ xdg.configFile."wofi/style.css".text = ''
+ window {
+ margin: 0px;
+ border-radius:7px;
+ background-color: #${config.colorscheme.colors.base00};
+ }
+
+ #input {
+ all: unset;
+ min-height: 20px;
+ padding: 4px 10px;
+ margin: 4px;
+ border: none;
+ color: #${config.colorscheme.colors.base07};
+ font-weight: bold;
+ background-color: #${config.colorscheme.colors.base01};
+ outline: #${config.colorscheme.colors.base04};
+ }
+
+ #input:selected {
+ color: #${config.colorscheme.colors.base0C};
+ }
+
+ #inner-box {
+ font-weight: bold;
+ border-radius: 0px;
+ }
+
+ #outer-box {
+ margin: 0px;
+ padding: 3px;
+ border-radius: 7px;
+ border: 2px solid #${config.colorscheme.colors.base03};
+ }
+
+ #text:selected {
+ color: #${config.colorscheme.colors.base00};
+ background-color: transparent;
+ }
+
+ #entry:selected {
+ background-color: #${config.colorscheme.colors.base07};
+ }
+ '';
+ };
+}
diff --git a/modules/home/wayland/base/default.nix b/modules/home/wayland/base/default.nix
new file mode 100644
index 0000000..1bba47e
--- /dev/null
+++ b/modules/home/wayland/base/default.nix
@@ -0,0 +1,69 @@
+{ lib, config, pkgs, ... }:
+let
+ dbus-hyprland-environment = pkgs.writeTextFile {
+ name = "dbus-hyprland-environment";
+ destination = "/bin/dbus-hyprland-environment";
+ executable = true;
+ text = ''
+ dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=hyprland
+ systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
+ systemctl --user start pipewire wireplumber pipewire-media-session xdg-desktop-portal xdg-desktop-portal-hyprland
+ '';
+ };
+in {
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+
+ home.packages = with pkgs; [
+ dbus-hyprland-environment
+ wayland
+
+ grim
+ slurp
+ swappy
+ cliphist
+ wl-clipboard
+
+ wlr-randr
+ wdisplays
+ kanshi
+
+ glib
+
+ brillo
+ swww
+ ];
+
+ xdg.mimeApps = {
+ enable = true;
+ defaultApplications = {
+ "x-scheme-handler/discord-409416265891971072" =
+ [ "discord-409416265891971072.desktop" ];
+ "x-scheme-handler/discord-402572971681644545" =
+ [ "discord-402572971681644545.desktop" ];
+ "x-scheme-handler/discord-696343075731144724" =
+ [ "discord-696343075731144724.desktop" ];
+ "x-scheme-handler/http" = [ "firefox.desktop" ];
+ "x-scheme-handler/https" = [ "firefox.desktop" ];
+ "x-scheme-handler/chrome" = [ "firefox.desktop" ];
+ "text/html" = [ "firefox.desktop" ];
+ "application/x-extension-htm" = [ "firefox.desktop" ];
+ "application/x-extension-html" = [ "firefox.desktop" ];
+ "application/x-extension-shtml" = [ "firefox.desktop" ];
+ "application/xhtml+xml" = [ "firefox.desktop" ];
+ "application/x-extension-xhtml" = [ "firefox.desktop" ];
+ "application/x-extension-xht" = [ "firefox.desktop" ];
+
+ "application/pdf" = [ "org.pwmt.zathura-pdf-mupdf.desktop" ];
+ "text/plain" = [ "vscodium.desktop" ];
+
+ "video/mp4" = [ "mpv.desktop" ];
+
+ "image/png" = [ "imv-dir.desktop" ];
+ "image/jpg" = [ "imv-dir.desktop" ];
+ };
+ associations = {
+ removed = { "application/pdf" = [ "krita_pdf.desktop" ]; };
+ };
+ };
+ };
+}
diff --git a/modules/home/wayland/hyprland/config.nix b/modules/home/wayland/hyprland/config.nix
new file mode 100755
index 0000000..ccc54cd
--- /dev/null
+++ b/modules/home/wayland/hyprland/config.nix
@@ -0,0 +1,230 @@
+{ lib, config, pkgs, ... }: {
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+ home.packages = with pkgs; [ hyprland ];
+ wayland.windowManager.hyprland = {
+ enable = true;
+ xwayland.enable = true;
+ extraConfig = ''
+
+ monitor=,preferred,auto,1
+
+ input {
+ kb_layout = us, ru
+ kb_variant = intl, phonetic
+ kb_model = pc104
+ kb_options = grp:ctrls_toggle
+ kb_rules =
+
+ follow_mouse = 1
+
+ sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification.
+ force_no_accel = true
+
+ touchpad {
+ natural_scroll=no
+ disable_while_typing=true
+ scroll_factor=1
+ disable_while_typing=0
+ tap-to-click=0
+ }
+ }
+
+ misc {
+ disable_hyprland_logo=true
+ animate_mouse_windowdragging=false
+ animate_manual_resizes=false
+ }
+
+ general {
+ gaps_in = 8
+ gaps_out = 15
+ border_size = 2
+
+ #col.active_border = rgb(${config.colorScheme.colors.base05})
+ #col.inactive_border = rgb(${config.colorScheme.colors.base03})
+ #col.group_border_active = rgb(${config.colorScheme.colors.base05})
+ #col.group_border = rgb(${config.colorScheme.colors.base03})
+
+ layout = dwindle
+ }
+
+ decoration {
+ rounding = 7
+
+ blur {
+ enabled = true
+ size = 2
+ passes = 1
+ new_optimizations = true
+ }
+ #multisample_edges = true
+
+ #opactity
+ inactive_opacity = 1.0
+ active_opacity = 1.0
+ fullscreen_opacity = 1.0
+
+ # shadow
+ drop_shadow = no
+ shadow_range = 60
+ shadow_offset = 0 5
+ shadow_render_power = 4
+ col.shadow = rgba(00000099)
+ }
+
+ animations {
+ enabled = false
+ }
+
+ dwindle {
+ pseudotile = yes
+ # force_split = 0
+ preserve_split = yes
+ }
+
+ master {
+ new_is_master = true
+ }
+
+ gestures {
+ workspace_swipe = off
+ }
+
+ exec-once = eww open bar & dunst
+
+ exec-once = swww init
+
+ exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+ exec-once = /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
+
+ exec-once = wl-paste --type text --watch cliphist store #Stores only text data
+ exec-once = wl-paste --type image --watch cliphist store #Stores only image data
+
+ exec-once = swayidle -w timeout 600 'swaylock' before-sleep 'swaylock'
+
+
+ #windowrules
+ windowrulev2 = noshadow, floating:0
+
+ windowrulev2 = float, title:^(flying_kitty)$
+ windowrulev2 = size 1100 600, title:^(flying_kitty)$
+ windowrulev2 = move center, title:^(flying_kitty)$
+ windowrulev2 = animation slide, title:^(flying_kitty)$
+ windowrulev2 = float, title:^(Volume Control)$
+ windowrulev2 = float, title:^(Picture-in-Picture)$
+ windowrulev2 = float, title:^(Steam)$
+ windowrulev2 = fullscreen, title:^(wlogout)$
+ windowrulev2 = float, title:^(wlogout)$
+
+ windowrulev2 = workspace 2 silent, class:^(org.telegram.desktop)$
+ windowrulev2 = workspace 2 silent, class:^(discord)$
+
+ windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
+ windowrulev2 = workspace 8 silent, title:^(Nextcloud)$
+ windowrulev2 = workspace 8 silent, class:^(Tk)$,title:^(Server Configuration)$
+
+ #SPECIAL FLOATERS
+ windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
+ windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(KeePassXC - Access Request)$
+ windowrulev2 = float,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
+ windowrulev2 = pin,class:^(org.keepassxc.KeePassXC)$,title:^(Unlock Database - KeePassXC)$
+ windowrulev2 = float,title:^(Open)$
+ windowrulev2 = float,title:^(Choose Files)$
+ windowrulev2 = float,title:^(Save As)$
+ windowrulev2 = float,title:^(Confirm to replace files)$
+ windowrulev2 = float,title:^(File Operation Progress)$
+ windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
+ windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
+ windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$
+ windowrulev2 = float,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
+ windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
+ windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
+ windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
+ windowrulev2 = float,class:^(org.telegram.desktop)$,title:^(Media viewer)$
+ windowrulev2 = center,class:^(org.telegram.desktop)$,title:^(Media viewer)$
+
+ #binds
+ $mainMod = SUPER
+
+ bind = SUPER, RETURN, exec, kitty
+
+ bind = SUPER_SHIFT, RETURN,togglespecialworkspace,
+ # bind = SUPER_SHIFT, RETURN, exec, kitty --title flying_kitty --single-instance
+ bind = SUPER, Q, killactive,
+ bind = SUPER, T, togglefloating,
+ bind = SUPER, F, fullscreen,
+
+ bind = SUPER, D, exec, wofi -modi --show drun
+ bind = SUPER SHIFT,D,exec, ~/.config/hypr/themes/apatheia/eww/launch_bar
+
+ bind = SUPER, V, exec, cliphist list | wofi -dmenu | cliphist decode | wl-copy
+ bind = , Print, exec, grim -g "$(slurp -d)" - | swappy -f -
+
+ bind = SUPER, L, exec, swaylock
+
+
+ bind = SUPER, P, pseudo, # dwindle
+ bind = SUPER, J, togglesplit, # dwindle
+ bind = SUPER, G, togglegroup
+ bind = SUPER, tab, changegroupactive
+
+ bind = SUPER, left, movefocus, l
+ bind = SUPER, right, movefocus, r
+ bind = SUPER, up, movefocus, u
+ bind = SUPER, down, movefocus, d
+
+ bind = SUPER, 1, workspace, 1
+ bind = SUPER, 2, workspace, 2
+ bind = SUPER, 3, workspace, 3
+ bind = SUPER, 4, workspace, 4
+ bind = SUPER, 5, workspace, 5
+ bind = SUPER, 6, workspace, 6
+ bind = SUPER, 7, workspace, 7
+ bind = SUPER, 8, workspace, 8
+ bind = SUPER, 9, workspace, 9
+ bind = SUPER, 0, workspace, 10
+
+ bind = SUPER SHIFT, 1, movetoworkspacesilent, 1
+ bind = SUPER SHIFT, 2, movetoworkspacesilent, 2
+ bind = SUPER SHIFT, 3, movetoworkspacesilent, 3
+ bind = SUPER SHIFT, 4, movetoworkspacesilent, 4
+ bind = SUPER SHIFT, 5, movetoworkspacesilent, 5
+ bind = SUPER SHIFT, 6, movetoworkspacesilent, 6
+ bind = SUPER SHIFT, 7, movetoworkspacesilent, 7
+ bind = SUPER SHIFT, 8, movetoworkspacesilent, 8
+ bind = SUPER SHIFT, 9, movetoworkspacesilent, 9
+ bind = SUPER SHIFT, 0, movetoworkspacesilent, 10
+
+ bind = SUPER, mouse_down, workspace, e+1
+ bind = SUPER, mouse_up, workspace, e-1
+
+ bindm = SUPER, mouse:272, movewindow
+ bindm = SUPER, mouse:273, resizewindow
+ bind = , XF86AudioPlay, exec, playerctl play-pause
+ bind = , XF86AudioPrev, exec, playerctl previous
+ bind = , XF86AudioNext, exec, playerctl next
+ bind = , XF86AudioRaiseVolume, exec, amixer -q sset 'Master' 5%+
+ bind = , XF86AudioLowerVolume, exec, amixer -q sset 'Master' 5%-
+ bind = , XF86AudioMute, exec, amixer -q sset 'Master' toggle
+ bind = , XF86MonBrightnessUp, exec, brillo -A 5
+ bind = , XF86MonBrightnessDown, exec, brillo -U 5
+
+ exec-once = [workspace special silent] kitty --title flying_kitty
+ exec-once = sh ~/.config/startup.sh
+ '';
+ };
+
+ xdg.configFile."startup.sh".text = ''
+ #!/bin/sh
+ sleep 2
+ keepassxc &
+ firefox &
+ jellyfin-mpv-shim &
+ easyeffects --gapplication-service &
+
+ sleep 2
+ nextcloud &
+ telegram-desktop&
+ '';
+ };
+}
diff --git a/modules/home/wayland/hyprland/default.nix b/modules/home/wayland/hyprland/default.nix
new file mode 100755
index 0000000..cc12be1
--- /dev/null
+++ b/modules/home/wayland/hyprland/default.nix
@@ -0,0 +1,6 @@
+{ lib, config, pkgs, ... }: {
+ imports = [ ./config.nix ];
+ config = lib.mkIf (config.homecfg.wm == "Wayland") {
+ wayland.windowManager.hyprland = { enable = true; };
+ };
+}
diff --git a/modules/home/xdg/default.nix b/modules/home/xdg/default.nix
new file mode 100644
index 0000000..29e21f9
--- /dev/null
+++ b/modules/home/xdg/default.nix
@@ -0,0 +1,19 @@
+{ config, pkgs, ... }: {
+
+ home.packages = with pkgs; [ xdg-user-dirs ];
+
+ xdg.userDirs.enable = true;
+ xdg.userDirs.desktop = "${config.home.homeDirectory}/desktop";
+ xdg.userDirs.documents = "${config.home.homeDirectory}/desktop";
+ xdg.userDirs.download = "${config.home.homeDirectory}/downloads";
+ xdg.userDirs.extraConfig = {
+ XDG_MISC_DIR = "${config.home.homeDirectory}/misc";
+ };
+ xdg.userDirs.music = "${config.home.homeDirectory}/media/music";
+ xdg.userDirs.pictures = "${config.home.homeDirectory}/media/photo";
+ xdg.userDirs.publicShare = "${config.home.homeDirectory}/media/photo";
+ xdg.userDirs.templates = "${config.home.homeDirectory}/media/template";
+ xdg.userDirs.videos = "${config.home.homeDirectory}/media/video";
+ xdg.userDirs.createDirectories = true;
+
+}
diff --git a/modules/home/xorg/bspwm/config.nix b/modules/home/xorg/bspwm/config.nix
new file mode 100755
index 0000000..00756fa
--- /dev/null
+++ b/modules/home/xorg/bspwm/config.nix
@@ -0,0 +1,314 @@
+{ lib, config, ... }: {
+ config = lib.mkIf (config.homecfg.wm == "X11") {
+ xsession.windowManager.bspwm.extraConfig = ''
+ #! /bin/bash
+
+ xrandr > /dev/shm/xrandr_output
+ sxhkd &
+ /nix/store/$(ls -la /nix/store | grep 'polkit-gnome' | grep '4096' | awk '{print $9}' | sed -n '$p')/libexec/polkit-gnome-authentication-agent-1 &
+
+ (xss-lock -- ~/.config/lock.sh || echo "AutoLock Hook Unavailable") &
+
+ wmname LG3D
+
+ export _IDISP=$(xrandr --query | grep " connected" | cut -d" " -f1 | grep "eDP" )
+
+ if [[ $(hostname) == 'Iriy' ]]; then
+ xrandr --output DP-0 --scale 1
+ xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-3 --off --output DP-4 --mode 1920x1080 --pos 4800x0 --rotate normal --output DP-5 --off
+ bspc monitor DP-4 -d 1
+ bspc monitor DP-2 -d 2 3
+ bspc monitor DP-0 -d 0 4 5 6 7 8 9
+ elif [[ $(hostname) == 'valinor' ]]; then
+ bspc monitor $_IDISP -d 1 2 3 4 5 6 7 8 9
+ else
+ bspc monitor $_IDISP -d 1 2 3 4 5 6 7 8 9
+ fi
+
+ bspc config remove_unplugged_monitors true
+ bspc config remove_disabled_monitors true
+
+ bspc config border_width 2
+ bspc config window_gap 6
+ bspc config split_ratio 0.52
+ bspc config borderless_monocle false
+ bspc config gapless_monocle false
+
+
+ bspc rule -a Screenkey manage=off
+
+ #bspc config super mod4
+ bspc config pointer_action1 move
+ bspc config pointer_action2 none
+ bspc config pointer_action3 resize_corner
+ #bspc config click_to_focus true
+ #bspc config focus_follows_pointer true
+
+ xsetroot -cursor_name left_ptr
+
+ feh --bg-fill ~/cloud/dark.jpg
+
+ xrdb ~/.Xressources
+
+ dunst &
+ eww open bar &
+
+
+ ## Tab Global - Floating/Global Rules
+ bspc rule -a URxvt:yakuaki sticky=on state=floating hidden=on rectangle=$(($(xrandr --current | grep ' connected ' | uniq | awk '{print $4}' | cut -d 'x' -f1 | head -n1)-16))x600+$(($(xrandr --current | grep ' connected' | uniq | awk '{print $4}' | cut -d "+" -f2 | head -n1)+8))+$(($(xrandr --current | grep ' connected' | uniq | awk '{print $4}' | cut -d "+" -f3 | head -n1)+36))
+ urxvt -name yakuaki -e ~/.config/script/yakuaki &
+ kitty
+
+ bspc rule -a feh state=floating
+ bspc rule -a Confirm state=floating
+ bspc rule -a Preferences state=floating
+ bspc rule -a dialog state=floating
+ bspc rule -a menu state=floating
+ bspc rule -a task_dialog state=floating
+ bspc rule -a bubble state=floating
+
+
+ ## Tab 8 - Various & Utility
+ bspc rule -a KeePassXC --one-shot desktop=8
+ bspc rule -a Nextcloud desktop=8
+ bspc rule -a Tk:tk desktop=8
+
+ ## Tab 4 - Dev
+ bspc rule -a VSCodium desktop=4
+
+ ## Tab 3 - Games & Movies
+ # ...
+ # ...
+
+ ## Tab 2 - Coms Main
+ bspc rule -a TelegramDesktop desktop=2
+ bspc rule -a Instagram desktop=2
+ bspc rule -a lightcord desktop=2
+ bspc rule -a discord desktop=2
+
+
+ ## Tab 1 - Internet
+ bspc rule -a Firefox --one-shot desktop=1
+ bspc rule -a firefox --one-shot desktop=1
+ bspc rule -a Google-chrome desktop=1
+ bspc rule -a Chromium=1
+
+
+ sh ~/.config/startup.sh
+ '';
+
+ xdg.configFile."startup.sh".text = ''
+ #!/bin/sh
+
+ bspc desktop -f 0
+
+ keepassxc --keyfile ~/.config/hcl.ico ~/cloud/kek.kdbx --pw-stdin <<< $(rofi -dmenu -password -i -no-fixed-num-lines -p "Password:" -theme themes/pass) &
+
+ sleep 2
+ bspc desktop -f 0
+
+ telegram-desktop &
+ nextcloud &
+ jellyfin-mpv-shim &
+ flameshot &
+
+ sleep 2
+
+ firefox &
+
+ ibus-daemon -drx
+
+ easyeffects --gapplication-service &
+ bspc desktop -f 0
+ '';
+
+ services.sxhkd.extraConfig = ''
+ super + Return
+ urxvt
+
+ # terminal floating
+ super + shift + Return
+ ~/.config/script/toggle_yakuaki
+
+ # program launcher
+ super + d
+ rofi -modi "drun" -show drun
+
+ super + shift + d
+ rofi -show run
+
+ super + Tab
+ rofi -show window
+
+ super + Escape
+ pkill -USR1 -x sxhkd; \
+ notify-send "sxhkd config reloaded"
+
+ #
+ # bspwm hotkeys
+ #
+
+ # quit bspwm normally
+ super + alt + Escape
+ bspc quit
+
+ # close and kill
+ super + {_,shift + }w
+ bspc node -{c,k}
+
+ # alternate between the tiled and monocle layout
+ super + m
+ bspc desktop -l next
+
+ # if the current node is automatic, send it to the last manual, otherwise pull the last leaf
+ super + y
+ bspc query -N -n focused.automatic && bspc node -n last.!automatic || bspc node last.leaf -n focused
+
+ # swap the current node and the biggest node
+ super + g
+ bspc node -s biggest
+
+ #
+ # state/flags
+ #
+
+ # set the window state
+ super + {t,shift + t,s,f}
+ bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
+
+ # set the node flags
+ super + ctrl + {x,y,z}
+ bspc node -g {locked,sticky,private}
+
+ #
+ # focus/swap
+ #
+
+ # focus the node in the given direction
+ super + shift + {_,ctrl + }{h,j,k,l}
+ bspc node -{f,s} {west,south,north,east}
+
+ # focus the node for the given path jump
+ # super + {p,b,comma,period}
+ # bspc node -f @{parent,brother,first,second}
+
+ # focus the next/previous node
+ super + {_,shift + }c
+ bspc node -f {next,prev}
+
+ # focus the next/previous desktop
+ super + bracket{left,right}
+ bspc desktop -f {prev,next}
+
+ # focus the last node/desktop
+ super + {grave,Tab}
+ bspc {node,desktop} -f last
+
+ # focus the older or newer node in the focus history
+ super + {o,i}
+ bspc wm -h off; \
+ bspc node {older,newer} -f; \
+ bspc wm -h on
+
+ # focus or send to the given desktop
+ super + {_,shift + }{1-9,0}
+ bspc {desktop -f,node -d} {1-9,0}
+
+ # focus the next/previous node in the same window
+ super + {comma,period}
+ bspc node -f {next,prev}.local
+
+ #
+ # preselect
+ #
+
+ # preselect the direction
+ super + ctrl + {h,j,k,l}
+ bspc node -p {west,south,north,east}
+
+ # preselect the ratio
+ super + ctrl + {1-9}
+ bspc node -o 0.{1-9}
+
+ # cancel the preselection for the focused node
+ super + ctrl + space
+ bspc node -p cancel
+
+ # cancel the preselection for the focused desktop
+ super + ctrl + shift + space
+ bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
+
+ #
+ # move/resize
+ #
+
+ # expand a window by moving one of its side outward
+ super + alt + {h,j,k,l}
+ bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
+
+ # contract a window by moving one of its side inward
+ super + alt + shift + {h,j,k,l}
+ bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
+
+ # move a floating window
+ super + {Left,Down,Up,Right}
+ bspc node -v {-20 0,0 20,0 -20,20 0}
+
+ super + {equal,minus}
+ bspc config window_gap $(( $(bspc config window_gap) {+,-} 5 ))
+
+ super + ctrl + {Left,Right,Up,Down}
+ bspc node @focused:/ --rotate {270,90,180,180}
+
+ super + shift + {Left,Right,Up,Down}
+ bspc node -f @parent; bspc node -R 90
+
+ # Screenshots
+ Print
+ flameshot gui
+
+ # Lock Desktop
+ super + l
+ ~/.config/script/lock.sh
+
+ # Lock Alternative
+ super + k
+ xtrlock
+
+ # VOLUME
+
+ XF86AudioMute
+ pactl set-sink-mute @DEFAULT_SINK@ toggle
+
+ XF86AudioRaiseVolume
+ pactl set-sink-volume @DEFAULT_SINK@ +5%
+
+ XF86AudioLowerVolume
+ pactl set-sink-volume @DEFAULT_SINK@ -5%
+
+ # BRIGHTNESS
+
+ # Brightness goes up
+ #/home/gamehelp16/Documents/brightness -u
+ XF86MonBrightnessUp
+ brightnessctl set +16
+
+ # Brightness goes down
+ XF86MonBrightnessDown
+ brightnessctl set 16-
+
+ super + F1
+ pactl set-source-mute @DEFAULT_SOURCE@ toggle
+
+ XF86AudioMicMute
+ pactl set-source-mute @DEFAULT_SOURCE@ toggle
+
+ super + F7
+ ~/.config/script/screens.sh
+
+ XF86Display
+ ~/.config/script/screens.sh
+ '';
+
+ };
+}
diff --git a/modules/home/xorg/bspwm/default.nix b/modules/home/xorg/bspwm/default.nix
new file mode 100755
index 0000000..7d1e0be
--- /dev/null
+++ b/modules/home/xorg/bspwm/default.nix
@@ -0,0 +1,11 @@
+{ lib, pkgs, config, ... }: {
+
+ imports = [ ./config.nix ./script.nix ./xressources.nix ];
+
+ config = lib.mkIf (config.homecfg.wm == "X11") {
+ xsession.windowManager.bspwm = { enable = true; };
+ services.sxhkd = { enable = true; };
+ home.packages = with pkgs; [ xrandr arandr flameshot xtrlock i3lock ];
+
+ };
+}
diff --git a/modules/home/xorg/bspwm/script.nix b/modules/home/xorg/bspwm/script.nix
new file mode 100755
index 0000000..f089d7e
--- /dev/null
+++ b/modules/home/xorg/bspwm/script.nix
@@ -0,0 +1,89 @@
+{ lib, config, ... }: {
+ config = lib.mkIf (config.homecfg.wm == "X11") {
+ xdg.configFile."script/lock.sh".text = ''
+ #!/bin/bash
+ TMPBG=/tmp/screen.png
+ RES=$(xrandr | grep 'current' | sed -E 's/.*current\s([0-9]+)\sx\s([0-9]+).*/\1x\2/')
+
+ ffmpeg -f x11grab -video_size $RES -y -i $DISPLAY -filter_complex "boxblur=10:1" -vframes 1 $TMPBG
+
+ pkill -xu $EUID -USR1 dunst
+ i3lock -i $TMPBG &
+ wait
+ pkill -xu $EUID -USR1 dunst
+
+ rm $TMPBG
+ '';
+
+ xdg.configFile."script/screens.sh".text = ''
+ #!/bin/bash
+
+ if [[ $(hostname) == 'Iriy' ]]; then
+ MENU="$(rofi -sep "|" -dmenu -i -p 'Display Mode' -theme-str 'entry { placeholder: ""; } inputbar { children: [prompt, textbox-prompt-colon, entry];}' -location 2 -xoffset 0 -yoffset 34 -width 8 -hide-scrollbar -line-padding 4 -padding 10 -lines 6 <<< "None | S")"
+ case "$MENU" in
+ *None)
+ xrandr --output DP-0 --scale 1
+ xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --mode 1920x1080 --pos 0x0 --rotate normal --output DP-3 --off --output DP-4 --mode 1920x1080 --pos 4800x0 --rotate normal --output DP-5 --off
+ bspc monitor DP-4 -d 1
+ bspc monitor DP-2 -d 2 3
+ bspc monitor DP-0 -d 0 4 5 6 7 8 9
+ ;;
+ *S)
+ xrandr --output DP-0 --scale 1
+ xrandr --output DVI-I-0 --off --output DVI-I-1 --off --output HDMI-0 --off --output DP-0 --mode 3840x2160 --pos 1920x254 --rotate normal --scale 0.75 --primary --output DP-1 --off --output DP-2 --off --output DP-3 --off --output DP-4 --off --output DP-5 --off
+ bspc monitor DP-0 -d 0 1 2 3 4 5 6 7 8 9
+ ;;
+ *WIP) echo "WIP"
+ esac
+ elif [[ $(hostname) == 'valinor' ]]; then
+ MENU="$(rofi -sep "|" -dmenu -i -p 'Display Mode' -theme-str 'entry { placeholder: ""; } inputbar { children: [prompt, textbox-prompt-colon, entry];}' -location 2 -xoffset 0 -yoffset 34 -width 8 -hide-scrollbar -line-padding 4 -padding 10 -lines 6 <<< "None|P0|P1")"
+ case "$MENU" in
+ *None)
+ xrandr --output HDMI-1 --off --output DisplayPort-0 --off --output DisplayPort-1 --off --output eDP-1 --auto
+ bspc monitor eDP -d 1 2 3 4 5 6 7 8 9
+ ;;
+ *P0)
+ xrandr --output HDMI-1 --auto --output eDP-1 --auto --below HDMI-1
+ bspc monitor HDMI-1 --swap eDP-1
+ bspc monitor HDMI-1 -d 0
+ bspc monitor eDP-1 -d 1 2 3 4 5 6 7 8 9
+ ;;
+ *P1)
+ xrandr --output eDP-1 --primary --mode 1920x1080 --pos 1200x1200 --rotate normal --output HDMI-1 --mode 1920x1200 --pos 1200x0 --rotate normal --output DisplayPort-1 --mode 1920x1200 --pos 0x210 --rotate left
+ bspc monitor HDMI-1 --swap eDP-1
+ bspc monitor HDMI-1 -d 0
+ bspc monitor eDP -d 1 2 3 4 5 6 7 8 9
+ ;;
+ *WIP) echo "WIP"
+ esac
+ fi
+ feh --bg-fill ~/cloud/dark.jpg
+ '';
+
+ xdg.configFile."script/yakuaki.sh".text = ''
+ #!/bin/bash
+ bspc query -N -n any.floating.hidden > /tmp/yakuakid
+ ~/.config/script/toggle_yakuaki
+ $SHELL
+ clear
+ '';
+
+ xdg.configFile."script/toggle_yakuaki.sh".text = ''
+ #!/bin/bash
+ if [[ -e /tmp/yakuakid ]]
+ then
+ id=$(cat /tmp/yakuakid)
+ exists=$(bspc query -N $id -n)
+ if [[ $exists = $id ]]
+ then
+ bspc node $id --flag hidden;bspc node -f $id
+ else
+ rm /tmp/yakuakid
+ urxvt -name yakuaki -e ~/.config/script/yakuaki &
+ fi
+ else
+ ~/.config/script/yakuaki
+ fi
+ '';
+ };
+}
diff --git a/modules/home/xorg/bspwm/xressources.nix b/modules/home/xorg/bspwm/xressources.nix
new file mode 100755
index 0000000..3945bb4
--- /dev/null
+++ b/modules/home/xorg/bspwm/xressources.nix
@@ -0,0 +1,101 @@
+{ lib, config, ... }: {
+ config = lib.mkIf (config.homecfg.wm == "X11") {
+ xresources.extraConfig = ''
+
+ #define white #ffffff
+ #define black #000000
+ #define cFG #${config.colorScheme.colors.base07}
+ #define cBG #${config.colorScheme.colors.base00}
+ #define cP #${config.colorScheme.colors.base07}
+ #define cH #${config.colorScheme.colors.base0C}
+ #define c0 #${config.colorScheme.colors.base00}
+ #define c1 #${config.colorScheme.colors.base01}
+ #define c2 #${config.colorScheme.colors.base02}
+ #define c3 #${config.colorScheme.colors.base03}
+ #define c4 #${config.colorScheme.colors.base04}
+ #define c5 #${config.colorScheme.colors.base05}
+ #define c6 #${config.colorScheme.colors.base06}
+ #define c7 #${config.colorScheme.colors.base07}
+ #define c8 #${config.colorScheme.colors.base08}
+ #define c9 #${config.colorScheme.colors.base09}
+ #define cA #${config.colorScheme.colors.base0A}
+ #define cB #${config.colorScheme.colors.base0B}
+ #define cC #${config.colorScheme.colors.base0C}
+ #define cD #${config.colorScheme.colors.base0D}
+ #define cE #${config.colorScheme.colors.base0E}
+ #define cF #${config.colorScheme.colors.base0F}
+
+ Xft.dpi: 96
+
+ URxvt.perl-ext-common: default,matcher,tabbed
+ URxvt.url-launcher: firefox
+ URxvt.matcher.button: 1
+ URxvt.url-select.launcher: firefox
+ URxvt.url-select.underline: true
+
+ !URxvt*loginShell: true
+ !URxvt*borderless: true
+ URxvt*dynamicColors: on
+
+ URxvt*foreground: cFG
+ URxvt*background: cBG
+
+ URxvt*saveLines: 8192
+ URxvt*mapAlert: true
+ !URxvt*visualBell: true
+ URxvt*pastableTabs: false
+
+ URxvt*transparent: True
+ URxvt*shading: 25
+
+ URxvt*cursorColor: cP
+ URxvt*throughColor: cF
+ !URxvt*highlightColor: cH
+
+ URxvt*font: xft:IBMPlexMono:style=Regular:size=10, xft:OpenMoji:size=11, xft:MaterialDesignIcons:size=11
+ URxvt*boldFont: xft:IBMPlexMono:style=Bold:size=10
+ URxvt*italicFont: xft:IBMPlexMono:style=Oblique:size=10
+
+ URxvt.iso14755: False
+ URxvt.scrollBar: False
+ URxvt.scrollBar_right: False
+ URxvt.scrollBar_floating: False
+ URxvt.scrollstyle: rxvt
+
+ URxvt.tabbed.tabbar-fg: 7
+ URxvt.tabbed.tabbar-bg: 0
+ URxvt.tabbed.tab-fg: 7
+ URxvt.tabbed.tab-bg: 1
+
+ URxvt.letterSpace: true
+
+ Xft.antialias: True
+ Xft.autohint: False
+ Xft.hinting: True
+
+ !*.foreground: cFG
+ !*.background: cBF
+ !*.cursorColor: cP
+
+ !*fading:35
+ !*faceColor:c1
+
+ *.color0: c0
+ *.color1: c1
+ *.color2: c2
+ *.color3: c3
+ *.color4: c4
+ *.color5: c5
+ *.color6: c6
+ *.color7: c7
+ *.color8: c8
+ *.color9: c9
+ *.color10: cA
+ *.color11: cB
+ *.color12: cC
+ *.color13: cD
+ *.color14: cE
+ *.color15: cF
+ '';
+ };
+}
diff --git a/modules/networking.nix b/modules/networking.nix
deleted file mode 100755
index df075cd..0000000
--- a/modules/networking.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- config,
- ...
-}:
-{
- networking = {
-
- hostName = config.hostcfg.hostname;
- useDHCP = true;
- nameservers = [ "1.1.1.1" "9.9.9.9" ];
- supplicant = {
- "${config.hostcfg.wlp_if}" = {
- configFile.path = config.sops.secrets.wifi.path;
- extraConf = ''
- network={
- ssid="test"
- psk="12345678"
- }
- network={
- ssid="WIFIonICE"
- }
- network={
- ssid="JR-EAST_FREE_Wi-Fi"
- }
- network={
- ssid="JR-WEST_FREE_Wi-Fi"
- }
- network={
- ssid="tabinohotel"
- psk="tabinohotel"
- }
- network={
- ssid="comforthotel"
- psk="comforthotel"
- }
- network={
- ssid="sotetsu-hotels"
- psk="sotetsux"
- }
- '';
- };
- };
-
- firewall = {
- enable = true;
- };
-
- wireguard = {
- enable = true;
- interfaces = {
- wg0 = {
- ips = [ config.hostcfg.wg_ip4 config.hostcfg.wg_ip6 ];
- privateKeyFile = config.hostcfg.wg_pk;
- listenPort = 1515;
- peers = [{
- allowedIPs = [ "10.10.1.0/24" "fd10:10:10::0/64" ];
- endpoint = "vpn.helcel.net:1515";
- publicKey = "NFBJvYXZC+bd62jhrKnM7/pugidWhgR6+C5qIiUiq3Q=";
- persistentKeepalive = 30;
- }];
- };
- };
- };
-
- };
-
-}
diff --git a/modules/nixos/gui/audio/default.nix b/modules/nixos/gui/audio/default.nix
new file mode 100644
index 0000000..d897058
--- /dev/null
+++ b/modules/nixos/gui/audio/default.nix
@@ -0,0 +1,18 @@
+{ lib, config, pkgs, ... }:
+let cfg = config.hostcfg.make.gui;
+in {
+ config = lib.mkIf cfg {
+ sound.enable = true;
+ hardware.pulseaudio.enable = false;
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ wireplumber.enable = true;
+ };
+
+ environment.systemPackages = with pkgs; [ easyeffects ];
+ };
+}
diff --git a/modules/nixos/gui/games/default.nix b/modules/nixos/gui/games/default.nix
new file mode 100644
index 0000000..8c51a99
--- /dev/null
+++ b/modules/nixos/gui/games/default.nix
@@ -0,0 +1,10 @@
+{ lib, config, pkgs, ... }:
+let cfg = config.hostcfg.make.game;
+in {
+ config = lib.mkIf cfg {
+ programs.steam = {
+ enable = true;
+ remotePlay.openFirewall = true;
+ };
+ };
+}
diff --git a/modules/nixos/gui/greet/default.nix b/modules/nixos/gui/greet/default.nix
new file mode 100644
index 0000000..fd7d5d8
--- /dev/null
+++ b/modules/nixos/gui/greet/default.nix
@@ -0,0 +1,24 @@
+{ lib, config, pkgs, ... }:
+let cfg = config.hostcfg.make.gui;
+in {
+ config = lib.mkIf cfg {
+
+ environment.systemPackages = with pkgs; [ hyprland ];
+ # environment.systemPackages = with pkgs; [ bspwm ];
+
+ services.greetd = {
+ enable = true;
+ settings = rec {
+ initial_session = {
+ command = "zsh -c '${pkgs.hyprland}/bin/Hyprland'";
+ user = "${config.hostcfg.username}";
+ };
+ default_session = initial_session;
+ };
+ };
+ environment.etc."greetd/environments".text = ''
+ Hyprland
+ '';
+ };
+}
+
diff --git a/modules/nixos/gui/xserver/default.nix b/modules/nixos/gui/xserver/default.nix
new file mode 100644
index 0000000..ac89898
--- /dev/null
+++ b/modules/nixos/gui/xserver/default.nix
@@ -0,0 +1,16 @@
+{ lib, config, pkgs, ... }:
+let cfg = config.hostcfg.make.gui;
+in {
+ config = lib.mkIf cfg {
+ services.xserver = {
+ enable = true;
+ videoDrivers = [ "amd" ];
+ layout = "us";
+ xkbVariant = "intl";
+ excludePackages = [ pkgs.xterm ];
+ exportConfiguration = true;
+ # libinput.touchpad.tapping = false;
+ desktopManager.xterm.enable = false;
+ };
+ };
+}
diff --git a/modules/nixos/hostcfg/default.nix b/modules/nixos/hostcfg/default.nix
new file mode 100755
index 0000000..fd8d096
--- /dev/null
+++ b/modules/nixos/hostcfg/default.nix
@@ -0,0 +1,44 @@
+{ lib, config, ... }:
+with lib; {
+ options.hostcfg = {
+ hostname = mkOption { type = types.str; };
+ username = mkOption { type = types.str; };
+ make = {
+ cli = mkOption {
+ type = types.bool;
+ default = true;
+ };
+ gui = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ virt = mkOption {
+ type = types.bool;
+ default = true;
+ };
+ power = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ game = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ };
+ net = {
+ wlp = {
+ enable = mkOption { type = types.bool; };
+ nif = mkOption { type = types.str; };
+ };
+ wg = {
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ };
+ ip4 = mkOption { type = types.str; };
+ ip6 = mkOption { type = types.str; };
+ pk = mkOption { type = types.str; };
+ };
+ };
+ };
+}
diff --git a/modules/nixos/system/dbus/default.nix b/modules/nixos/system/dbus/default.nix
new file mode 100644
index 0000000..775a984
--- /dev/null
+++ b/modules/nixos/system/dbus/default.nix
@@ -0,0 +1 @@
+{ ... }: { services.dbus.enable = true; }
diff --git a/modules/fonts.nix b/modules/nixos/system/fonts/default.nix
old mode 100755
new mode 100644
similarity index 81%
rename from modules/fonts.nix
rename to modules/nixos/system/fonts/default.nix
index 9ff23de..c9e2a37
--- a/modules/fonts.nix
+++ b/modules/nixos/system/fonts/default.nix
@@ -1,8 +1,5 @@
-{
- pkgs,
- ...
-}: {
-
+{ pkgs, ... }: {
+
fonts = {
enableDefaultPackages = false;
fontDir.enable = true;
@@ -21,14 +18,14 @@
enable = true;
allowBitmaps = true;
defaultFonts = {
- monospace = [ "IBM Plex Mono" "Openmoji" "Material Design Icons"];
- serif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons"];
- sansSerif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons"];
+ monospace = [ "IBM Plex Mono" "Openmoji" "Material Design Icons" ];
+ serif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons" ];
+ sansSerif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons" ];
emoji = [ "Openmoji" ];
};
-
- hinting.style = "medium";
- # hinting.style = "hintfull";
+
+ hinting.style = "medium";
+ # hinting.style = "hintfull";
};
};
}
diff --git a/modules/nixos/system/hw/base/default.nix b/modules/nixos/system/hw/base/default.nix
new file mode 100644
index 0000000..3c21537
--- /dev/null
+++ b/modules/nixos/system/hw/base/default.nix
@@ -0,0 +1 @@
+{ ... }: { services.fwupd.enable = true; }
diff --git a/modules/nixos/system/hw/boot/default.nix b/modules/nixos/system/hw/boot/default.nix
new file mode 100644
index 0000000..f8f8a18
--- /dev/null
+++ b/modules/nixos/system/hw/boot/default.nix
@@ -0,0 +1,12 @@
+{ ... }: {
+ boot.loader = {
+ systemd-boot = {
+ enable = true;
+ configurationLimit = 8;
+ };
+ efi = {
+ canTouchEfiVariables = true;
+ efiSysMountPoint = "/boot/efi";
+ };
+ };
+}
diff --git a/modules/nixos/system/hw/fs/default.nix b/modules/nixos/system/hw/fs/default.nix
new file mode 100644
index 0000000..841a9be
--- /dev/null
+++ b/modules/nixos/system/hw/fs/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ services.fstrim.enable = true;
+ services.gvfs.enable = true;
+
+ environment.systemPackages = with pkgs; [ gvfs nfs-utils ];
+}
diff --git a/modules/nixos/system/hw/opengl/default.nix b/modules/nixos/system/hw/opengl/default.nix
new file mode 100644
index 0000000..3829a9f
--- /dev/null
+++ b/modules/nixos/system/hw/opengl/default.nix
@@ -0,0 +1 @@
+{ ... }: { hardware.opengl = { enable = true; }; }
diff --git a/modules/nixos/system/hw/power/default.nix b/modules/nixos/system/hw/power/default.nix
new file mode 100644
index 0000000..53eda18
--- /dev/null
+++ b/modules/nixos/system/hw/power/default.nix
@@ -0,0 +1,42 @@
+{ lib, config, pkgs, ... }:
+let cfg = config.hostcfg.make.power;
+in {
+ config = lib.mkIf cfg {
+ services.tlp = {
+ enable = true;
+ settings = {
+ START_CHARGE_THRESH_BAT0 = 75;
+ STOP_CHARGE_THRESH_BAT0 = 90;
+ CPU_SCALING_GOVERNOR_ON_AC = "performance";
+ CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
+ };
+ };
+
+ systemd.user.services.battery_monitor = {
+ wants = [ "display-manager.service" ];
+ wantedBy = [ "graphical-session.target" ];
+ script = ''
+ prev_val=100
+ check () { [[ $1 -ge $val ]] && [[ $1 -lt $prev_val ]]; }
+ notify () {
+ ${pkgs.libnotify}/bin/notify-send -a Battery "$@" \
+ -h "int:value:$val" "Discharging" "$val%, $remaining"
+ }
+ while true; do
+ IFS=: read _ bat0 < <(${pkgs.acpi}/bin/acpi -b)
+ IFS=\ , read status val remaining <<<"$bat0"
+ val=''${val%\%}
+ if [[ $status = Discharging ]]; then
+ echo "$val%, $remaining"
+ if check 30 || check 25 || check 20; then notify
+ elif check 15 || [[ $val -le 10 ]]; then notify -u critical
+ fi
+ fi
+ prev_val=$val
+ # Sleep longer when battery is high to save CPU
+ if [[ $val -gt 30 ]]; then sleep 10m; elif [[ $val -ge 20 ]]; then sleep 5m; else sleep 1m; fi
+ done
+ '';
+ };
+ };
+}
diff --git a/modules/nixos/system/hw/udev/default.nix b/modules/nixos/system/hw/udev/default.nix
new file mode 100644
index 0000000..dc59092
--- /dev/null
+++ b/modules/nixos/system/hw/udev/default.nix
@@ -0,0 +1,13 @@
+{ ... }: {
+ systemd.services.systemd-udevd.restartIfChanged = false;
+
+ services.udev.extraRules = ''
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0127", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0118", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0128", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="010a", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0102", GROUP="plugdev", TAG+="uaccess"
+ SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0313", GROUP="plugdev", TAG+="uaccess"
+ '';
+}
diff --git a/modules/nixos/system/hw/virt/default.nix b/modules/nixos/system/hw/virt/default.nix
new file mode 100644
index 0000000..5ecdf96
--- /dev/null
+++ b/modules/nixos/system/hw/virt/default.nix
@@ -0,0 +1,18 @@
+{ lib, config, ... }:
+let cfg = config.hostcfg.make.virt;
+in {
+ config = lib.mkIf cfg {
+ virtualisation = {
+ # libvirtd.enable = true;
+ # waydroid.enable = true;
+ # lxd.enable = true;
+ docker = {
+ enable = true;
+ rootless = {
+ enable = true;
+ setSocketVariable = true;
+ };
+ };
+ };
+ };
+}
diff --git a/modules/nixos/system/locale/default.nix b/modules/nixos/system/locale/default.nix
new file mode 100644
index 0000000..8b010d3
--- /dev/null
+++ b/modules/nixos/system/locale/default.nix
@@ -0,0 +1,17 @@
+{ ... }: {
+ time.timeZone = "Europe/Zurich";
+
+ i18n.defaultLocale = "en_GB.UTF-8";
+
+ i18n.extraLocaleSettings = {
+ LC_ADDRESS = "en_GB.UTF-8";
+ LC_IDENTIFICATION = "en_GB.UTF-8";
+ LC_MEASUREMENT = "en_GB.UTF-8";
+ LC_MONETARY = "en_GB.UTF-8";
+ LC_NAME = "en_GB.UTF-8";
+ LC_NUMERIC = "en_GB.UTF-8";
+ LC_PAPER = "en_GB.UTF-8";
+ LC_TELEPHONE = "en_GB.UTF-8";
+ LC_TIME = "en_GB.UTF-8";
+ };
+}
diff --git a/modules/nixos/system/network/base/default.nix b/modules/nixos/system/network/base/default.nix
new file mode 100644
index 0000000..596998c
--- /dev/null
+++ b/modules/nixos/system/network/base/default.nix
@@ -0,0 +1,9 @@
+{ config, ... }: {
+ networking = {
+ hostName = config.hostcfg.hostname;
+ useDHCP = true;
+ nameservers = [ "1.1.1.1" "9.9.9.9" ];
+
+ firewall = { enable = true; };
+ };
+}
diff --git a/modules/nixos/system/network/bluetooth/default.nix b/modules/nixos/system/network/bluetooth/default.nix
new file mode 100644
index 0000000..1ab40b5
--- /dev/null
+++ b/modules/nixos/system/network/bluetooth/default.nix
@@ -0,0 +1,7 @@
+{ pkgs, ... }: {
+ hardware.bluetooth.enable = true;
+ hardware.brillo.enable = true;
+ services.blueman.enable = true;
+
+ environment.systemPackages = with pkgs; [ bluez bluez-tools ];
+}
diff --git a/modules/security.nix b/modules/nixos/system/network/security/default.nix
old mode 100755
new mode 100644
similarity index 93%
rename from modules/security.nix
rename to modules/nixos/system/network/security/default.nix
index ce2f03c..4180862
--- a/modules/security.nix
+++ b/modules/nixos/system/network/security/default.nix
@@ -1,5 +1,4 @@
-# security tweaks borrowed from @hlissner
-{
+{ ... }: {
boot.kernel.sysctl = {
# The Magic SysRq key is a key combo that allows users connected to the
# system console of a Linux kernel to perform some low-level commands.
@@ -40,11 +39,9 @@
"net.ipv4.tcp_congestion_control" = "bbr";
"net.core.default_qdisc" = "cake";
};
- boot.kernelModules = ["tcp_bbr"];
+ boot.kernelModules = [ "tcp_bbr" ];
# So we don't have to do this later...
- security.acme = {
- acceptTerms = true;
- };
+ security.acme = { acceptTerms = true; };
}
diff --git a/modules/nixos/system/network/wifi/default.nix b/modules/nixos/system/network/wifi/default.nix
new file mode 100644
index 0000000..300055e
--- /dev/null
+++ b/modules/nixos/system/network/wifi/default.nix
@@ -0,0 +1,38 @@
+{ lib, config, ... }:
+let cfg = config.hostcfg.net.wlp;
+in {
+ config = lib.mkIf cfg.enable {
+ networking.supplicant = {
+ "${cfg.nif}" = {
+ configFile.path = config.sops.secrets.wifi.path;
+ extraConf = ''
+ network={
+ ssid="test"
+ psk="12345678"
+ }
+ network={
+ ssid="WIFIonICE"
+ }
+ network={
+ ssid="JR-EAST_FREE_Wi-Fi"
+ }
+ network={
+ ssid="JR-WEST_FREE_Wi-Fi"
+ }
+ network={
+ ssid="tabinohotel"
+ psk="tabinohotel"
+ }
+ network={
+ ssid="comforthotel"
+ psk="comforthotel"
+ }
+ network={
+ ssid="sotetsu-hotels"
+ psk="sotetsux"
+ }
+ '';
+ };
+ };
+ };
+}
diff --git a/modules/nixos/system/network/wireguard/default.nix b/modules/nixos/system/network/wireguard/default.nix
new file mode 100644
index 0000000..4061c25
--- /dev/null
+++ b/modules/nixos/system/network/wireguard/default.nix
@@ -0,0 +1,18 @@
+{ config, ... }: {
+ networking.wireguard = {
+ enable = true;
+ interfaces = {
+ wg0 = {
+ ips = [ config.hostcfg.net.wg.ip4 config.hostcfg.net.wg.ip6 ];
+ privateKeyFile = config.hostcfg.net.wg.pk;
+ listenPort = 1515;
+ peers = [{
+ allowedIPs = [ "10.10.1.0/24" "fd10:10:10::0/64" ];
+ endpoint = "vpn.helcel.net:1515";
+ publicKey = "NFBJvYXZC+bd62jhrKnM7/pugidWhgR6+C5qIiUiq3Q=";
+ persistentKeepalive = 30;
+ }];
+ };
+ };
+ };
+}
diff --git a/modules/nixos/system/nix/default.nix b/modules/nixos/system/nix/default.nix
new file mode 100644
index 0000000..43ec949
--- /dev/null
+++ b/modules/nixos/system/nix/default.nix
@@ -0,0 +1,27 @@
+{ pkgs, ... }: {
+ nix = {
+ package = pkgs.nixFlakes;
+ extraOptions = ''
+ experimental-features = nix-command flakes
+ warn-dirty = false
+ keep-outputs = true
+ keep-derivations = true
+ '';
+ gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 7d";
+ };
+ settings = {
+ auto-optimise-store = true;
+ builders-use-substitutes = true;
+ substituters =
+ [ "https://hyprland.cachix.org" "https://cache.nixos.org" ];
+ trusted-public-keys = [
+ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
+ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
+ ];
+ };
+ };
+ system.stateVersion = "23.05";
+}
diff --git a/modules/nixos/system/security/gpg/default.nix b/modules/nixos/system/security/gpg/default.nix
new file mode 100644
index 0000000..ccbeae7
--- /dev/null
+++ b/modules/nixos/system/security/gpg/default.nix
@@ -0,0 +1,6 @@
+{ ... }: {
+ programs.gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+}
diff --git a/modules/nixos/system/security/polkit/default.nix b/modules/nixos/system/security/polkit/default.nix
new file mode 100644
index 0000000..704437a
--- /dev/null
+++ b/modules/nixos/system/security/polkit/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }: {
+ security.polkit.enable = true;
+ security.pam.services.swaylock = {
+ text = ''
+ auth include login
+ '';
+ };
+
+ environment.systemPackages = with pkgs; [ polkit_gnome ];
+}
diff --git a/secrets/common.yaml b/modules/nixos/system/security/sops/common.yaml
similarity index 100%
rename from secrets/common.yaml
rename to modules/nixos/system/security/sops/common.yaml
diff --git a/modules/secret.nix b/modules/nixos/system/security/sops/default.nix
similarity index 53%
rename from modules/secret.nix
rename to modules/nixos/system/security/sops/default.nix
index 3833aec..745b913 100755
--- a/modules/secret.nix
+++ b/modules/nixos/system/security/sops/default.nix
@@ -1,13 +1,10 @@
-{
- config,
- ...
-}:{
- sops.defaultSopsFile = ../secrets/common.yaml;
- sops.age.keyFile = "/var/lib/sops-nix/age-key.txt"; #opt/nixflake/secrets/age-key.txt;
+{ config, pkgs, ... }: {
+ sops.defaultSopsFile = ./common.yaml;
+ sops.age.keyFile = "/var/lib/sops-nix/age-key.txt";
sops.age.generateKey = true;
- sops.secrets.wifi = {};
-
+ sops.secrets.wifi = { };
+
sops.secrets."${config.hostcfg.hostname}_ssh_priv" = {
mode = "0400";
owner = config.users.users.sora.name;
@@ -18,7 +15,9 @@
owner = config.users.users.sora.name;
group = config.users.users.sora.group;
};
- sops.secrets."${config.hostcfg.hostname}_wg_priv" = {};
- sops.secrets."${config.hostcfg.hostname}_wg_pub" = {};
+ sops.secrets."${config.hostcfg.hostname}_wg_priv" = { };
+ sops.secrets."${config.hostcfg.hostname}_wg_pub" = { };
+
+ environment.systemPackages = with pkgs; [ sops ];
}
diff --git a/modules/nixos/system/security/ssh/default.nix b/modules/nixos/system/security/ssh/default.nix
new file mode 100644
index 0000000..5fca906
--- /dev/null
+++ b/modules/nixos/system/security/ssh/default.nix
@@ -0,0 +1,9 @@
+{ config, ... }: {
+ programs.ssh = {
+ extraConfig = ''
+ IdentityFile ${
+ config.sops.secrets."${config.hostcfg.hostname}_ssh_priv".path
+ }
+ '';
+ };
+}
diff --git a/modules/nixos/system/xdg/default.nix b/modules/nixos/system/xdg/default.nix
new file mode 100644
index 0000000..bf33ac4
--- /dev/null
+++ b/modules/nixos/system/xdg/default.nix
@@ -0,0 +1,59 @@
+{ pkgs, ... }: {
+
+ xdg.portal = {
+ enable = true;
+ # wlr.enable = true;
+ extraPortals = with pkgs; [
+ xdg-desktop-portal-hyprland
+ xdg-desktop-portal
+ ];
+ };
+
+ environment.sessionVariables = rec {
+ GBM_BACKEND = "amd-drm";
+ __GL_GSYNC_ALLOWED = "0";
+ __GL_VRR_ALLOWED = "0";
+ WLR_DRM_NO_ATOMIC = "1";
+ __GLX_VENDOR_LIBRARY_NAME = "amd";
+ _JAVA_AWT_WM_NONREPARENTING = "1";
+ QT_QPA_PLATFORM = "wayland";
+ QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
+ GDK_BACKEND = "wayland";
+ WLR_NO_HARDWARE_CURSORS = "1";
+ MOZ_ENABLE_WAYLAND = "1";
+ WLR_BACKEND = "vulkan";
+ WLR_RENDERER = "vulkan";
+ XCURSOR_SIZE = "24";
+ NIXOS_OZONE_WL = "1";
+ PATH = [ "$HOME/.local/bin/:$PATH" ];
+ XDG_CACHE_HOME = "$HOME/.cache";
+ XDG_CONFIG_HOME = "$HOME/.config";
+ XDG_DATA_HOME = "$HOME/.local/share";
+ XDG_STATE_HOME = "$HOME/.local/state";
+ XDG_BIN_HOME = "$HOME/.local/bin";
+ XDG_DESKTOP_DIR = "$HOME/desktop";
+ XDG_DOCUMENTS_DIR = "$HOME/files";
+ XDG_DOWNLOAD_DIR = "$HOME/download";
+ XDG_MUSIC_DIR = "$HOME/media/music";
+ XDG_PICTURES_DIR = "$HOME/media/photo";
+ XDG_PUBLICSHARE_DIR = "$HOME/pub";
+ XDG_TEMPLATES_DIR = "$HOME/media/templates";
+ XDG_VIDEOS_DIR = "$HOME/media/video";
+ };
+
+ environment.etc."xdg/user-dirs.defaults".text = ''
+ XDG_CACHE_HOME="$HOME/.cache"
+ XDG_CONFIG_HOME="$HOME/.config"
+ XDG_DATA_HOME="$HOME/.local/share"
+ XDG_STATE_HOME="$HOME/.local/state"
+ XDG_BIN_HOME="$HOME/.local/bin"
+ XDG_DESKTOP_DIR="$HOME/desktop"
+ XDG_DOCUMENTS_DIR="$HOME/files"
+ XDG_DOWNLOAD_DIR="$HOME/download"
+ XDG_MUSIC_DIR="$HOME/media/music"
+ XDG_PICTURES_DIR="$HOME/media/photo"
+ XDG_PUBLICSHARE_DIR="$HOME/pub"
+ XDG_TEMPLATES_DIR="$HOME/media/templates"
+ XDG_VIDEOS_DIR="$HOME/media/video"
+ '';
+}
diff --git a/modules/nixos/tools/debug/default.nix b/modules/nixos/tools/debug/default.nix
new file mode 100644
index 0000000..ff3d5f0
--- /dev/null
+++ b/modules/nixos/tools/debug/default.nix
@@ -0,0 +1,6 @@
+{ pkgs, ... }: {
+ programs.adb.enable = true;
+ programs.wireshark.enable = true;
+
+ environment.systemPackages = with pkgs; [ wget dconf ];
+}
diff --git a/modules/nixos/users/default.nix b/modules/nixos/users/default.nix
new file mode 100644
index 0000000..cf55158
--- /dev/null
+++ b/modules/nixos/users/default.nix
@@ -0,0 +1,21 @@
+{ config, pkgs, ... }: {
+ programs.zsh.enable = true;
+ users = {
+ defaultUserShell = pkgs.zsh;
+ users.${config.hostcfg.username} = {
+ isNormalUser = true;
+ description = "${config.hostcfg.username}";
+ extraGroups = [
+ "networkmanager"
+ "wheel"
+ "vboxsf"
+ "adbusers"
+ "lp"
+ "audio"
+ "video"
+ "docker"
+ "wireshark"
+ ];
+ };
+ };
+}
diff --git a/modules/shared/colors/default.nix b/modules/shared/colors/default.nix
new file mode 100755
index 0000000..6e5c2dd
--- /dev/null
+++ b/modules/shared/colors/default.nix
@@ -0,0 +1 @@
+{ ... }: { imports = [ ./sorahiro_soft.nix ]; }
diff --git a/colors/palette0.png b/modules/shared/colors/palette0.png
similarity index 100%
rename from colors/palette0.png
rename to modules/shared/colors/palette0.png
diff --git a/colors/palette1h.png b/modules/shared/colors/palette1h.png
similarity index 100%
rename from colors/palette1h.png
rename to modules/shared/colors/palette1h.png
diff --git a/colors/palette1p.png b/modules/shared/colors/palette1p.png
similarity index 100%
rename from colors/palette1p.png
rename to modules/shared/colors/palette1p.png
diff --git a/modules/shared/colors/sorahiro_hard.nix b/modules/shared/colors/sorahiro_hard.nix
new file mode 100755
index 0000000..a5240a2
--- /dev/null
+++ b/modules/shared/colors/sorahiro_hard.nix
@@ -0,0 +1,29 @@
+{ nix-colors, ... }: {
+ # usage: a = "#${config.colorScheme.colors.base00}";
+
+ colorScheme = {
+ slug = "sorahiro-hard";
+ name = "sorahiro-hard";
+ author = "Soraefir @ Helcel";
+ colors = {
+ # Format: Name, Pantone, RAL
+ base00 = "#030B12"; # Rich Black / 6C / 000-15-00
+ base01 = "#0C1D2E"; # Maastricht Blue / 5395C / 270-20-15
+ base02 = "#203A53"; # Japanese Indigo / 534C / 260-20-20
+ base03 = "#425F7C"; # Deep Space Sparkle / 7699C / 260-40-20
+ base04 = "#93A9BE"; # Pewter Blue / 535C / 260-70-15
+ base05 = "#B6C5D5"; # Pastel Blue / 5445C / 260-80-10
+ base06 = "#D6DFE8"; # Gainsboro / 642C / 260-90-05
+ base07 = "#F0F3F7"; # White / 656C / 290-92-05
+ base08 = "#F59331"; # Deep Saffron / 715C / 070-70-70
+ base09 = "#F5F531"; # Maximum Yellow / 394C / 100-80-80
+ base0A = "#93F531"; # French Lime / 7488C / 120-70-75
+ base0B = "#31F593"; # Eucalyptus / 3385C / 160-70-50
+ base0C = "#3193F5"; # Brilliant Azure / 2727C / 280-50-40
+ baseOD = "#9331F5"; # Blue-Violet / 7442C / 300-40-45
+ base0E = "#F53193"; # Royal Pink / 232C / 350-50-50
+ base0F = "#F53131"; # Deep Carmine Pink / 1788C / 040-50-70
+
+ };
+ };
+}
diff --git a/modules/shared/colors/sorahiro_soft.nix b/modules/shared/colors/sorahiro_soft.nix
new file mode 100755
index 0000000..a2af370
--- /dev/null
+++ b/modules/shared/colors/sorahiro_soft.nix
@@ -0,0 +1,28 @@
+{ nix-colors, ... }: {
+ # usage: a = "#${config.colorScheme.colors.base00}";
+
+ colorScheme = {
+ slug = "sorahiro-soft";
+ name = "sorahiro-soft";
+ author = "Soraefir @ Helcel";
+ colors = {
+ # Format: Name, Pantone, RAL
+ base00 = "#030B12"; # Rich Black / 6C / 000-15-00
+ base01 = "#0C1D2E"; # Maastricht Blue / 5395C / 270-20-15
+ base02 = "#203A53"; # Japanese Indigo / 534C / 260-20-20
+ base03 = "#425F7C"; # Deep Space Sparkle / 7699C / 260-40-20
+ base04 = "#93A9BE"; # Pewter Blue / 535C / 260-70-15
+ base05 = "#B6C5D5"; # Pastel Blue / 5445C / 260-80-10
+ base06 = "#D6DFE8"; # Gainsboro / 642C / 260-90-05
+ base07 = "#F0F3F7"; # White / 656C / 290-92-05
+ base08 = "#F5B97D"; # Mellow Apricot / 156C / 070-80-40
+ base09 = "#F5F57D"; # Sunny / 393C / 100-90-50
+ base0A = "#B9F57D"; # Yellow-Green / 373C / 120-80-60
+ base0B = "#7DF5B9"; # Aquamarine / 3375C / 150-80-40
+ base0C = "#7DB9F5"; # Light Azure / 278C / 250-70-30
+ base0D = "#B97DF5"; # Lavender / 2572C / 310-60-35
+ base0E = "#F57DB9"; # Persian Pink / 211C / 350-60-45
+ base0F = "#F57D7D"; # Light Coral / 170C / 030-60-50
+ };
+ };
+}
diff --git a/modules/tlp.nix b/modules/tlp.nix
deleted file mode 100644
index 9a1ebf5..0000000
--- a/modules/tlp.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{...}:{
- services.tlp = {
- enable = true;
- settings = {
- START_CHARGE_THRESH_BAT0 = 75;
- STOP_CHARGE_THRESH_BAT0 = 90;
- CPU_SCALING_GOVERNOR_ON_AC = "performance";
- CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
- };
- };
-}
\ No newline at end of file
diff --git a/modules/udevd.nix b/modules/udevd.nix
deleted file mode 100755
index fff0ffa..0000000
--- a/modules/udevd.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- ...
-}: {
- systemd.services.systemd-udevd.restartIfChanged = false;
-
- services.udev.extraRules = ''
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0127", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0118", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0128", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="010a", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0102", GROUP="plugdev", TAG+="uaccess"
- SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0313", GROUP="plugdev", TAG+="uaccess"
- '';
-}
diff --git a/overlays/openttd-jgrpp/default.nix b/overlays/openttd-jgrpp/default.nix
new file mode 100644
index 0000000..d5e57f3
--- /dev/null
+++ b/overlays/openttd-jgrpp/default.nix
@@ -0,0 +1,12 @@
+{ ... }:
+final: prev: {
+ openttd-jgrpp = prev.openttd-jgrpp.overrideAttrs (old: rec {
+ version = "0.53.3";
+ src = prev.fetchFromGitHub rec {
+ owner = "JGRennison";
+ repo = "OpenTTD-patches";
+ rev = "jgrpp-${version}";
+ hash = "sha256-xpo4E07ifWUZy5z78Fwm1SpLP3wUBaBreZYbJuiNH3w=";
+ };
+ });
+}
diff --git a/overlays/yarn-berry/adefault.nix b/overlays/yarn-berry/adefault.nix
new file mode 100644
index 0000000..942e35a
--- /dev/null
+++ b/overlays/yarn-berry/adefault.nix
@@ -0,0 +1,12 @@
+{ ... }:
+final: prev: {
+ yarn-berry = prev.yarn-berry.overrideAttrs (old: rec {
+ version = "3.6.3";
+ src = prev.fetchFromGitHub {
+ owner = "yarnpkg";
+ repo = "berry";
+ rev = "@yarnpkg/cli/${version}";
+ hash = "sha256-5QEnFalOEMs1bKYDYpFGnF1YwiGuW3ZxstyJAjz1/KQ=";
+ };
+ });
+}
diff --git a/packages/repalette/default.nix b/packages/repalette/default.nix
new file mode 100644
index 0000000..52b902c
--- /dev/null
+++ b/packages/repalette/default.nix
@@ -0,0 +1,31 @@
+{ lib, pkgs, fetchFromGitHub, makeWrapper, stb }:
+let stdenv = pkgs.llvmPackages.stdenv;
+in stdenv.mkDerivation rec {
+ pname = "repalette";
+ version = "849e1857cc985968c5dd08377fff27b258931937";
+
+ src = fetchFromGitHub {
+ owner = "ziap";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-Q86W9/xwFjViIyvnCQfwyQjzrfC122+KK6A3mwJPXOg=";
+ };
+
+ nativeBuildInputs = [ makeWrapper ];
+
+ makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
+
+ configurePhase = ''
+ cp ${stb.src}/stb_image.h stb_image.h
+ cp ${stb.src}/stb_image_write.h stb_image_write.h
+ '';
+
+ buildPhase = ''
+ make ${pname}
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv repalette $out/bin
+ '';
+}
diff --git a/packages/simc/default.nix b/packages/simc/default.nix
new file mode 100644
index 0000000..cfe9ba6
--- /dev/null
+++ b/packages/simc/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, qt6 }:
+stdenv.mkDerivation rec {
+ pname = "simc";
+ version = "ae04662fca7cad8bf218cd8e43ab05631caad758";
+
+ src = fetchFromGitHub rec {
+ owner = "simulationcraft";
+ repo = pname;
+ rev = version;
+ hash = "sha256-mTo6YTgZMpfyWvdU1JEEmfmBjJlZwAgja1iliOem7mM=";
+ };
+
+ nativeBuildInputs =
+ [ qt6.wrapQtAppsHook qt6.qmake qt6.qtwebengine qt6.qtbase ];
+
+ buildInputs = [ qt6.qtwayland ];
+
+ configurePhase = ''
+ qmake simulationcraft.pro
+ '';
+
+ buildPhase = ''
+ SC_NO_NETWORKING=1 make -j$NIX_BUILD_CORES
+ '';
+
+ installPhase = ''
+ mkdir -p $out/bin
+ mv gui/SimulationCraft $out/bin
+ '';
+
+}
diff --git a/packages/vosk/cli/default.nix b/packages/vosk/cli/default.nix
new file mode 100644
index 0000000..97d29e9
--- /dev/null
+++ b/packages/vosk/cli/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitea, buildGoModule, makeWrapper, pkgs, alsa-utils }:
+buildGoModule rec {
+ pname = "voskcli";
+ version = "5eedba33b96dcd3826010cbd12e404cbfb544383";
+ vendorSha256 = "sha256-8l2i/fhN+2q+tjHpWdjRmesDDBBpxEPrTB8IE5Cr0I8=";
+ src = fetchFromGitea {
+ domain = "git.helcel.net";
+ owner = "helcel";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-TeCUtHuBGVyV+YmY3MGaf1jydTWgZITUgmUZzy4wZLU=";
+ };
+ preBuild = ''
+ export CGO_CFLAGS="-I${pkgs.vosk}/include"
+ export CGO_LDFLAGS="-L${pkgs.vosk}/lib"
+ '';
+ nativeBuildInputs = [ makeWrapper ];
+ installPhase = ''
+ runHook preInstall
+ install -Dm755 $GOPATH/bin/voskcli -t $out/bin
+ runHook postInstall
+ '';
+ postFixup = ''
+ wrapProgram $out/bin/voskcli \
+ --prefix PATH : ${lib.makeBinPath [ alsa-utils ]} \
+ --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc.lib ]} \
+ '';
+}
diff --git a/packages/vosk/default.nix b/packages/vosk/default.nix
new file mode 100644
index 0000000..2135857
--- /dev/null
+++ b/packages/vosk/default.nix
@@ -0,0 +1,26 @@
+{ lib, pkgs, stdenv, fetchurl, unzip }:
+let
+ version = "0.3.45";
+ base = stdenv.mkDerivation {
+ name = "vosk-api";
+ version = "${version}";
+ src = fetchurl {
+ url =
+ "https://github.com/alphacep/vosk-api/releases/download/v${version}/vosk-linux-x86_64-${version}.zip";
+ sha256 = "sha256-u9yO2FxDl59kQxQoiXcOqVy/vFbP+1xdzXOvqHXF+7I=";
+ };
+ nativeBuildInputs = [ unzip ];
+ unpackCmd = "unzip $curSrc";
+
+ installPhase = ''
+ mkdir -p $out/lib
+ mv libvosk.so $out/lib/
+ mkdir -p $out/include
+ mv vosk_api.h $out/include/
+ '';
+ };
+in {
+ default = (pkgs.callPackage base { });
+ cli = (pkgs.callPackage ./cli { });
+ lang = (pkgs.callPackage ./lang { });
+}
diff --git a/packages/vosk/lang/default.nix b/packages/vosk/lang/default.nix
new file mode 100644
index 0000000..78871f6
--- /dev/null
+++ b/packages/vosk/lang/default.nix
@@ -0,0 +1,62 @@
+{ lib, stdenv, fetchurl, unzip }:
+let
+ vosk_model_wrapper = { name, version, hash }:
+ stdenv.mkDerivation {
+ name = name;
+ version = version;
+ src = fetchurl {
+ url =
+ "https://alphacephei.com/kaldi/models/vosk-model-${name}-${version}.zip";
+ sha256 = hash;
+ };
+ nativeBuildInputs = [ unzip ];
+ unpackCmd = "unzip $curSrc";
+
+ installPhase = ''
+ mkdir -p $out/usr/share/vosk-models
+ cp -r . $out/usr/share/vosk-models/${name}
+ '';
+ };
+in {
+ small-en-us = vosk_model_wrapper {
+ name = "small-en-us";
+ version = "0.15";
+ hash = "sha256-MPJiQsTrRJ+UjkLLMC3XpobLKaNCOoNn+Z/0F4CUJJg=";
+ };
+
+ en-us = vosk_model_wrapper {
+ name = "en-us";
+ version = "0.22";
+ hash = "sha256-R/moHrsDnbsL0xkXXDasOTwIk7eWwrYwPmTPWMJ7afY=";
+ };
+
+ ru = vosk_model_wrapper {
+ name = "ru";
+ version = "0.22";
+ hash = "sha256-hNniz2MkSA5Odo2n11Ei/RJQ31RJuJ2PnZQX7Hon+yM=";
+ };
+
+ small-ja = vosk_model_wrapper {
+ name = "small-ja";
+ version = "0.22";
+ hash = "sha256-76CS0oAVOndhXp4MfXKD6T5gDePRnTvsaGxX7xnVLqw=";
+ };
+
+ ja = vosk_model_wrapper {
+ name = "ja";
+ version = "0.22";
+ hash = "sha256-r2INuBXvcW+QNV+REJK6DHRU2R15Ps3Y3uLfY0Lg6cw=";
+ };
+
+ small-de = vosk_model_wrapper {
+ name = "small-de";
+ version = "0.15";
+ hash = "sha256-t+U8kLHwo4RW9M1is2bs1YgDzZfNQrBkOOLBMXE9XkM=";
+ };
+
+ de = vosk_model_wrapper {
+ name = "de";
+ version = "0.21";
+ hash = "sha256-JFBgdW+Ng5T8WxNjnPIgt2ICBXlfMPN7aCOHjU9gOyo=";
+ };
+}
diff --git a/pkgs/custom/repalette.nix b/pkgs/custom/repalette.nix
deleted file mode 100644
index 4814249..0000000
--- a/pkgs/custom/repalette.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper, stb
-}:
- stdenv.mkDerivation rec {
- pname = "repalette";
- version = "849e1857cc985968c5dd08377fff27b258931937";
-
- src = fetchFromGitHub {
- owner = "ziap";
- repo = pname;
- rev = version;
- sha256 = "sha256-Q86W9/xwFjViIyvnCQfwyQjzrfC122+KK6A3mwJPXOg=";
- };
-
- nativeBuildInputs = [
- makeWrapper
- ];
-
- makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
-
- configurePhase = ''
- cp ${stb.src}/stb_image.h stb_image.h
- cp ${stb.src}/stb_image_write.h stb_image_write.h
- '';
-
- buildPhase = ''
- make ${pname}
- '';
-
- installPhase = ''
- mkdir -p $out/bin
- mv repalette $out/bin
- '';
-}
\ No newline at end of file
diff --git a/pkgs/custom/simc.nix b/pkgs/custom/simc.nix
deleted file mode 100644
index 82a3623..0000000
--- a/pkgs/custom/simc.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, qmake, qtbase, qtwebengine, qtwayland
-}:
-stdenv.mkDerivation rec {
- pname = "simc";
- version = "ae04662fca7cad8bf218cd8e43ab05631caad758";
-
- src = fetchFromGitHub rec {
- owner = "simulationcraft";
- repo = pname;
- rev = version;
- hash = "sha256-mTo6YTgZMpfyWvdU1JEEmfmBjJlZwAgja1iliOem7mM=";
- };
-
- nativeBuildInputs = [ wrapQtAppsHook qmake qtwebengine qtbase ];
-
- buildInputs = [ qtwayland ];
-
- configurePhase = ''
- qmake simulationcraft.pro
- '';
-
- buildPhase = ''
- SC_NO_NETWORKING=1 make -j$NIX_BUILD_CORES
- '';
-
- installPhase = ''
- mkdir -p $out/bin
- mv gui/SimulationCraft $out/bin
- '';
-
-}
\ No newline at end of file
diff --git a/pkgs/custom/vosk-lang.nix b/pkgs/custom/vosk-lang.nix
deleted file mode 100644
index 5ff363f..0000000
--- a/pkgs/custom/vosk-lang.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-}:
- let vosk_model_wrapper = {name, version, hash}: stdenv.mkDerivation {
- name = name;
- version = version;
- src = fetchurl {
- url = "https://alphacephei.com/kaldi/models/vosk-model-${name}-${version}.zip";
- sha256 = hash;
- };
- nativeBuildInputs = [ unzip ];
- unpackCmd = "unzip $curSrc";
-
- installPhase = ''
- mkdir -p $out/usr/share/vosk-models
- cp -r . $out/usr/share/vosk-models/${name}
- '';
- };
-in
-{
- small-en-us = vosk_model_wrapper{
- name = "small-en-us";
- version = "0.15";
- hash = "sha256-MPJiQsTrRJ+UjkLLMC3XpobLKaNCOoNn+Z/0F4CUJJg=";
- };
-
- en-us = vosk_model_wrapper{
- name = "en-us";
- version = "0.22";
- hash = "sha256-R/moHrsDnbsL0xkXXDasOTwIk7eWwrYwPmTPWMJ7afY=";
- };
-
- ru = vosk_model_wrapper{
- name = "ru" ;
- version = "0.22";
- hash = "sha256-hNniz2MkSA5Odo2n11Ei/RJQ31RJuJ2PnZQX7Hon+yM=";
- };
-
- small-ja = vosk_model_wrapper{
- name = "small-ja";
- version = "0.22";
- hash = "sha256-76CS0oAVOndhXp4MfXKD6T5gDePRnTvsaGxX7xnVLqw=";
- };
-
- ja = vosk_model_wrapper{
- name = "ja" ;
- version = "0.22";
- hash = "sha256-r2INuBXvcW+QNV+REJK6DHRU2R15Ps3Y3uLfY0Lg6cw=";
- };
-
- small-de = vosk_model_wrapper{
- name = "small-de";
- version = "0.15";
- hash = "sha256-t+U8kLHwo4RW9M1is2bs1YgDzZfNQrBkOOLBMXE9XkM=";
- };
-
- de = vosk_model_wrapper{
- name = "de";
- version = "0.21";
- hash = "sha256-JFBgdW+Ng5T8WxNjnPIgt2ICBXlfMPN7aCOHjU9gOyo=";
- };
-}
diff --git a/pkgs/custom/vosk.nix b/pkgs/custom/vosk.nix
deleted file mode 100644
index 30be2b4..0000000
--- a/pkgs/custom/vosk.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-}:
-stdenv.mkDerivation {
- name = "vosk-api";
- version = "0.3.45";
- src = fetchurl {
- url = "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-x86_64-0.3.45.zip";
- sha256 = "sha256-u9yO2FxDl59kQxQoiXcOqVy/vFbP+1xdzXOvqHXF+7I=";
- };
- nativeBuildInputs = [ unzip ];
- unpackCmd = "unzip $curSrc";
-
- installPhase = ''
- mkdir -p $out/lib
- mv libvosk.so $out/lib/
- mkdir -p $out/include
- mv vosk_api.h $out/include/
- '';
-}
\ No newline at end of file
diff --git a/pkgs/custom/voskcli.nix b/pkgs/custom/voskcli.nix
deleted file mode 100644
index ab7ba93..0000000
--- a/pkgs/custom/voskcli.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, stdenv, fetchFromGitea, buildGoModule, makeWrapper, custom, alsa-utils
-}:
-buildGoModule rec {
- pname = "voskcli";
- version = "5eedba33b96dcd3826010cbd12e404cbfb544383";
- vendorSha256 = "sha256-8l2i/fhN+2q+tjHpWdjRmesDDBBpxEPrTB8IE5Cr0I8=";
- src = fetchFromGitea {
- domain = "git.helcel.net";
- owner = "helcel";
- repo = pname;
- rev = version;
- sha256 = "sha256-TeCUtHuBGVyV+YmY3MGaf1jydTWgZITUgmUZzy4wZLU=";
- };
- preBuild = ''
- export CGO_CFLAGS="-I${custom.vosk}/include"
- export CGO_LDFLAGS="-L${custom.vosk}/lib"
- '';
- nativeBuildInputs = [ makeWrapper ];
- installPhase = ''
- runHook preInstall
- install -Dm755 $GOPATH/bin/voskcli -t $out/bin
- runHook postInstall
- '';
- postFixup = ''
- wrapProgram $out/bin/voskcli \
- --prefix PATH : ${lib.makeBinPath [ alsa-utils ]} \
- --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc.lib ]} \
- '';
-}
\ No newline at end of file
diff --git a/pkgs/default.nix b/pkgs/default.nix
deleted file mode 100644
index eca01bd..0000000
--- a/pkgs/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- pkgs,
- ...
-}: let self = {
- simc = (pkgs.qt6.callPackage ./custom/simc.nix { });
- repalette = (pkgs.callPackage ./custom/repalette.nix { stdenv = pkgs.llvmPackages.stdenv; });
-
- vosk = (pkgs.callPackage ./custom/vosk.nix { });
- vosk-lang = (pkgs.callPackage ./custom/vosk-lang.nix { });
- voskcli = (pkgs.callPackage ./custom/voskcli.nix { custom = self;});
-
- pythonPackages = {
- # example = (pkgs.python3Packages.callPackage ./custom/example.nix { });
- };
- nodePackages = {
- };
-};
-in self
\ No newline at end of file
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
deleted file mode 100755
index 9df5d18..0000000
--- a/pkgs/overlay.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- pkgs,
- ...
-}:
- [(self: super: rec{
- openttd-jgrpp = super.openttd-jgrpp.overrideAttrs (old: rec{
- version = "0.53.3";
-
- src = super.fetchFromGitHub rec {
- owner = "JGRennison";
- repo = "OpenTTD-patches";
- rev = "jgrpp-0.53.3";
- hash = "sha256-xpo4E07ifWUZy5z78Fwm1SpLP3wUBaBreZYbJuiNH3w=";
- };
- });
-
- yarn-berry = super.yarn-berry.overrideAttrs (old: rec{
- version = "3.6.3";
- src = super.fetchFromGitHub {
- owner = "yarnpkg";
- repo = "berry";
- rev = "@yarnpkg/cli/${version}";
- hash = "sha256-5QEnFalOEMs1bKYDYpFGnF1YwiGuW3ZxstyJAjz1/KQ=";
- };
- });
-})]
diff --git a/shells/devsh/default.nix b/shells/devsh/default.nix
new file mode 100644
index 0000000..a9eaabb
--- /dev/null
+++ b/shells/devsh/default.nix
@@ -0,0 +1,47 @@
+{ pkgs, ... }:
+pkgs.mkShell {
+ buildInputs = with pkgs; [
+ #LANG & COMPILER
+ gcc
+ (with llvmPackages; [ libcxxClang ])
+ gnumake
+ cmake
+ go
+ gotools
+ jdk
+ gradle
+ maven
+ kotlin
+ nodejs
+ yarn-berry
+ crystal
+ shards
+ python311Full
+ virtualenv
+ (with python311Packages; [ pip ])
+ pipenv
+ scala
+ sbt
+
+ #LIBS
+ openssl
+ pcre
+ pcre2
+ ncurses
+ patchelf
+ zlib
+
+ #DBG & TOOLS
+ gdbgui
+ valgrind
+ sox
+ docker-compose
+
+ #CUSTOM (custom...)
+ ];
+ shellHook = ''
+ export DEVSH="DEV"
+ export HTTP_PORT=8080
+ export HTTP_ADDR="0.0.0.0"
+ '';
+}
diff --git a/systems/x86_64-darwin/default.nix b/systems/x86_64-darwin/default.nix
new file mode 100755
index 0000000..dc1b570
--- /dev/null
+++ b/systems/x86_64-darwin/default.nix
@@ -0,0 +1,93 @@
+{ config, pkgs, ... }:
+
+{
+ imports = [ ];
+
+ users.users.sora = {
+ home = "/Users/sora";
+ shell = pkgs.zsh;
+ };
+
+ networking = {
+ computerName = "asgard";
+ hostName = "asgard";
+ };
+
+ fonts = {
+ fontDir.enable = true;
+ fonts = with pkgs; [ ibm-plex openmoji-color material-design-icons ];
+ };
+
+ environment = {
+ shells = with pkgs; [ zsh ];
+ variables = {
+ EDITOR = "nvim";
+ VISUAL = "vscodium";
+ };
+ systemPackages = with pkgs; [
+ git
+ ranger
+
+ fd
+ ripgrep
+ ];
+ };
+
+ programs = { zsh.enable = true; };
+
+ services = { nix-daemon.enable = true; };
+
+ homebrew = {
+ enable = true;
+ onActivation = {
+ autoUpdate = false;
+ upgrade = false;
+ cleanup = "zap";
+ };
+ brews = [ "wireguard-tools" ];
+ casks = [ ];
+ };
+
+ nix = {
+ package = pkgs.nix;
+ extraOptions = ''
+ experimental-features = nix-command flakes
+ warn-dirty = false
+ '';
+ gc = {
+ automatic = true;
+ dates = "weekly";
+ options = "--delete-older-than 7d";
+ };
+ settings = {
+ auto-optimise-store = true;
+ builders-use-substitutes = true;
+ substituters = [ "https://cache.nixos.org" ];
+ trusted-public-keys =
+ [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" ];
+ };
+ };
+
+ system = {
+ defaults = {
+ NSGlobalDomain = {
+ KeyRepeat = 1;
+ NSAutomaticCapitalizationEnabled = false;
+ NSAutomaticSpellingCorrectionEnabled = false;
+ };
+ dock = {
+ autohide = true;
+ orientation = "bottom";
+ showhidden = true;
+ tilesize = 40;
+ };
+ finder = { QuitMenuItem = false; };
+ trackpad = {
+ Clicking = true;
+ TrackpadRightClick = true;
+ };
+ };
+ activationScripts.postActivation.text = "sudo chsh -s ${pkgs.zsh}/bin/zsh";
+ stateVersion = 4;
+ };
+}
diff --git a/systems/x86_64-linux/avalon/default.nix b/systems/x86_64-linux/avalon/default.nix
new file mode 100644
index 0000000..18273fb
--- /dev/null
+++ b/systems/x86_64-linux/avalon/default.nix
@@ -0,0 +1,32 @@
+{ config, inputs, ... }: {
+ imports = with inputs.hardware.nixosModules; [
+ ./hardware-configuration.nix
+ common-cpu-intel
+ common-gpu-intel
+ ];
+
+ hostcfg = {
+ hostname = "avalon";
+ username = "sora";
+ make = {
+ gui = false;
+ cli = true;
+ virt = true;
+ power = false;
+ game = false;
+ };
+ net = {
+ wlp = {
+ enable = false;
+ nif = "";
+ };
+ wg = {
+ enable = true;
+ ip4 = "10.10.1.2/32";
+ ip6 = "fd10:10:10::2/128";
+ pk = config.sops.secrets.avalon_wg_priv.path;
+ };
+ };
+ };
+}
+
diff --git a/systems/x86_64-linux/iriy/default.nix b/systems/x86_64-linux/iriy/default.nix
new file mode 100644
index 0000000..eb98035
--- /dev/null
+++ b/systems/x86_64-linux/iriy/default.nix
@@ -0,0 +1,32 @@
+{ config, inputs, ... }: {
+ imports = with inputs.hardware.nixosModules; [
+ ./hardware-configuration.nix
+ common-cpu-amd
+ common-gpu-amd
+ ];
+
+ hostcfg = {
+ hostname = "iriy";
+ username = "sora";
+ make = {
+ gui = true;
+ cli = true;
+ virt = true;
+ power = false;
+ game = true;
+ };
+ net = {
+ wlp = {
+ enable = true;
+ nif = "wlp11s0";
+ };
+ wg = {
+ enable = true;
+ ip4 = "10.10.1.7/32";
+ ip6 = "fd10:10:10::7/128";
+ pk = config.sops.secrets.iriy_wg_priv.path;
+ };
+ };
+ };
+}
+
diff --git a/systems/x86_64-linux/iriy/hardware-configuration.nix b/systems/x86_64-linux/iriy/hardware-configuration.nix
new file mode 100755
index 0000000..bb30242
--- /dev/null
+++ b/systems/x86_64-linux/iriy/hardware-configuration.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
+
+ boot.initrd.availableKernelModules =
+ [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "v4l2loopback" "kvm-amd" ];
+ # boot.kernelPackages = pkgs.linuxPackages_latest;
+ boot.extraModulePackages = with config.boot.kernelPackages;
+ [ v4l2loopback.out ];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/f612abce-6f3f-439a-8585-6a050e18b7fc";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot/efi" = {
+ device = "/dev/disk/by-uuid/349E-5086";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [{ device = "/dev/disk/by-uuid/42394c4d-2c81-4917-82ff-75a548715a7d"; }];
+
+ networking.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode =
+ lib.mkDefault config.hardware.enableRedistributableFirmware;
+ hardware.opengl.driSupport32Bit = true;
+}
diff --git a/systems/x86_64-linux/valinor/default.nix b/systems/x86_64-linux/valinor/default.nix
new file mode 100644
index 0000000..425c2d3
--- /dev/null
+++ b/systems/x86_64-linux/valinor/default.nix
@@ -0,0 +1,32 @@
+{ config, inputs, ... }: {
+ imports = with inputs.hardware.nixosModules; [
+ ./hardware-configuration.nix
+ common-cpu-amd
+ common-gpu-amd
+ ];
+
+ hostcfg = {
+ hostname = "valinor";
+ username = "sora";
+ make = {
+ gui = true;
+ cli = true;
+ virt = true;
+ power = true;
+ game = true;
+ };
+ net = {
+ wlp = {
+ enable = true;
+ nif = "wlp3s0";
+ };
+ wg = {
+ enable = true;
+ ip4 = "10.10.1.5/32";
+ ip6 = "fd10:10:10::5/128";
+ pk = config.sops.secrets.valinor_wg_priv.path;
+ };
+ };
+ };
+}
+
diff --git a/systems/x86_64-linux/valinor/hardware-configuration.nix b/systems/x86_64-linux/valinor/hardware-configuration.nix
new file mode 100755
index 0000000..4d42f14
--- /dev/null
+++ b/systems/x86_64-linux/valinor/hardware-configuration.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, modulesPath, ... }:
+
+{
+ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
+
+ boot.initrd.availableKernelModules =
+ [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.kernelModules = [ ];
+ boot.kernelModules = [ "v4l2loopback" "kvm-amd" ];
+ # boot.kernelPackages = pkgs.linuxPackages_latest;
+ boot.extraModulePackages = with config.boot.kernelPackages;
+ [ v4l2loopback.out ];
+
+ fileSystems."/" = {
+ device = "/dev/disk/by-uuid/e9713f83-ee3a-4fb1-806f-594c3bab7006";
+ fsType = "ext4";
+ };
+
+ fileSystems."/boot/efi" = {
+ device = "/dev/disk/by-uuid/F344-72E2";
+ fsType = "vfat";
+ };
+
+ swapDevices =
+ [{ device = "/dev/disk/by-uuid/8bbeae2f-9431-4849-9b42-9f2655da596e"; }];
+
+ networking.useDHCP = lib.mkDefault true;
+
+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+ hardware.cpu.amd.updateMicrocode =
+ lib.mkDefault config.hardware.enableRedistributableFirmware;
+ hardware.opengl.driSupport32Bit = true;
+}