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; +}