Migrate to snowfall lib

This commit is contained in:
soraefir 2023-11-04 02:28:27 +01:00
parent a7ef5cf996
commit 99d64c588e
Signed by: sora
GPG Key ID: A362EA0491E2EEA0
175 changed files with 3870 additions and 4002 deletions

View File

@ -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

2
.gitignore vendored
View File

@ -1,3 +1,3 @@
result
age-key.txt
.decrypted~common.yaml
.decrypted~common.yaml

View File

@ -6,8 +6,8 @@
...
</h1>
<h1 align="center">
<img width="256" style="image-rendering: crisp-edges;" src="./colors/palette0.png"></img>
<img width="256" style="image-rendering: crisp-edges;" src="./modules/shared/colors/palette0.png"></img>
<br>
<img width="256" style="image-rendering: crisp-edges;" src="./colors/palette1p.png"></img>
<img width="256" style="image-rendering: crisp-edges;" src="./colors/palette1h.png"></img>
<img width="256" style="image-rendering: crisp-edges;" src="./modules/shared/colors/palette1p.png"></img>
<img width="256" style="image-rendering: crisp-edges;" src="./modules/shared/colors/palette1h.png"></img>
</h1>

View File

@ -1,8 +0,0 @@
{
...
}:
{
imports = [
./sorahiro_soft.nix
];
}

View File

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

View File

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

164
flake.lock generated
View File

@ -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": {

134
flake.nix
View File

@ -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 - ?
}

View File

@ -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});
}

View File

@ -1,21 +0,0 @@
{
pkgs,
...
}: {
imports = [
./git
./neofetch
./starship
./zsh
./helix
];
home.packages = with pkgs; [
sudo
ripgrep
bat
croc
socat
];
}

View File

@ -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
];
}

View File

@ -1,10 +0,0 @@
{
...
}:{
programs.helix = {
enable = true;
languages = { };
settings = { };
themes = { };
};
}

View File

@ -1,10 +0,0 @@
{
pkgs,
config,
...
}: {
home.packages = with pkgs; [
neofetch
];
xdg.configFile."neofetch/config.conf".source =./config.conf;
}

View File

@ -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)";
};
};
};
}

View File

@ -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";
};
};
}

View File

@ -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"];
};
};
};
}

View File

@ -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 = "<b>%s</b>\\n<span size=\"small\">%b</span>";
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}";
};
};
};
}

View File

@ -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;
'';
}

View File

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

View File

@ -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;
# ...
};
};
}

View File

@ -1,11 +0,0 @@
{
pkgs,
...
}: {
programs.mpv = {
enable = true;
scripts = with pkgs; [
mpvScripts.mpris
];
};
}

View File

@ -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"
}
}
}
]
'';
}

View File

@ -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
'';
}

View File

@ -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/
'';
}

View File

@ -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}"
'';
}

View File

@ -1,14 +0,0 @@
{
pkgs,
lib,
inputs,
...
}: {
imports = [
./openttd.nix
./btop.nix
];
home.packages = with pkgs; [
];
}

View File

@ -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]
'';
}

View File

@ -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
'';
}

View File

@ -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"
}
'';
}

View File

@ -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};
}
'';
}

View File

@ -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}"
'';
};
}

View File

@ -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"
'';
}

View File

@ -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&
'';
}

View File

@ -1,10 +0,0 @@
{
...
}: {
imports = [./config.nix];
wayland.windowManager.hyprland = {
enable = true;
};
}

View File

@ -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
'';
}

View File

@ -1,18 +0,0 @@
{
...
}: {
imports = [
./config.nix
./script.nix
./xressources.nix
];
xsession.windowManager.bspwm = {
enable = true;
};
services.sxhkd = {
enable = true;
};
}

View File

@ -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
'';
}

View File

@ -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
'';
}

View File

@ -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
'';
}

View File

@ -0,0 +1,13 @@
{ pkgs, ... }: {
home = {
packages = with pkgs; [ ];
stateVersion = "23.05";
};
programs = {
zsh = {
enable = true;
# FIND SETTINGS FROM /home/cli/zsh
};
};
}

View File

@ -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";
};
};
}

View File

@ -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";
};
};
}

View File

@ -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";
}];
};
};
};
}

View File

@ -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";
};
};
}

View File

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

View File

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

View File

@ -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";
};
}

View File

@ -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";
}

View File

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

View File

@ -1,14 +0,0 @@
{ pkgs, ... }:
{
home = {
packages = with pkgs; [];
stateVersion = "23.05";
};
programs = {
zsh = {
enable = true;
# FIND SETTINGS FROM /home/cli/zsh
};
};
}

View File

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

View File

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

View File

@ -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";
}
];
};
};
};
}

View File

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

View File

@ -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.<interface>.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;
}

View File

@ -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
'';
};
};
}

View File

@ -1,13 +0,0 @@
{
...
}: {
imports = [
./secret.nix
./security.nix
./udevd.nix
./networking.nix
./fonts.nix
./battery_monitor.nix
];
}

View File

@ -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"
'';
}

View File

@ -1,16 +0,0 @@
{
...
}: {
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "zsh";
user = "sora";
};
default_session = initial_session;
};
};
}

View File

@ -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";
};
}

View File

@ -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}"
'';
}

View File

@ -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 ];
}

View File

@ -0,0 +1,8 @@
{ ... }: {
programs.helix = {
#enable = true;
languages = { };
settings = { };
themes = { };
};
}

View File

@ -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;
# ...
};
};
}

View File

@ -0,0 +1,4 @@
{ pkgs, config, ... }: {
home.packages = with pkgs; [ neofetch ];
xdg.configFile."neofetch/config.conf".source = ./config.conf;
}

View File

@ -0,0 +1,17 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
sudo
ripgrep
unzip
socat
ripgrep
appimage-run
cbonsai
pipes-rs
cmatrix
cava
];
}

View File

@ -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)";
};
};
};
}

View File

@ -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";
};
};
}

View File

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

View File

@ -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 ];
};
}

View File

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

View File

@ -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"
}
}
}
]
'';
};
}

View File

@ -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
# '';
};
}

View File

@ -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
];
};
};
}

View File

@ -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}"
'';
};
};
}

View File

@ -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
];
};
}

View File

@ -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
];
};
}

View File

@ -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]
'';
};
}

View File

@ -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
'';
};
}

View File

@ -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 .
'';
}
}

View File

@ -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/
'';
}

View File

@ -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
];
}

View File

@ -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 = ''<b>%s</b>\n<span size="small">%b</span>'';
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}";
};
};
};
};
}

View File

@ -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;
'';
};
}

Some files were not shown because too many files have changed in this diff Show More