[Init]
This commit is contained in:
parent
10fbbc2654
commit
a7ef5cf996
26
.github/workflows/main.yml
vendored
Executable file
26
.github/workflows/main.yml
vendored
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
name: update-flake-lock
|
||||||
|
on:
|
||||||
|
workflow_dispatch: # allows manual triggering
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * 0' # runs weekly on Sunday at 00:00
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
lockfile:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Install Nix
|
||||||
|
uses: cachix/install-nix-action@v16
|
||||||
|
with:
|
||||||
|
extra_nix_config: |
|
||||||
|
auto-optimise-store = true
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
- name: Update flake.lock
|
||||||
|
uses: DeterminateSystems/update-flake-lock@v16
|
||||||
|
with:
|
||||||
|
pr-title: "chore: update flake.lock" # Title of PR to be created
|
||||||
|
pr-labels: | # Labels to be set on the PR
|
||||||
|
dependencies
|
||||||
|
automated
|
3
.gitignore
vendored
Executable file
3
.gitignore
vendored
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
result
|
||||||
|
age-key.txt
|
||||||
|
.decrypted~common.yaml
|
46
.sops.yaml
Executable file
46
.sops.yaml
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
keys:
|
||||||
|
# Users
|
||||||
|
- &users:
|
||||||
|
- &sora 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0
|
||||||
|
# Hosts
|
||||||
|
- &hosts:
|
||||||
|
- &iriy age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s
|
||||||
|
- &avalon age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
- &valinor age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
- &asgard age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
|
||||||
|
creation_rules:
|
||||||
|
- path_regex: secrets/iriy.ya?ml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *iriy
|
||||||
|
pgp:
|
||||||
|
- *sora
|
||||||
|
- path_regex: secrets/avalon.ya?ml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *avalon
|
||||||
|
pgp:
|
||||||
|
- *sora
|
||||||
|
- path_regex: secrets/valinor.ya?ml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *valinor
|
||||||
|
pgp:
|
||||||
|
- *sora
|
||||||
|
- path_regex: secrets/asgard.ya?ml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *asgard
|
||||||
|
pgp:
|
||||||
|
- *sora
|
||||||
|
|
||||||
|
- path_regex: secrets/common.ya?ml$
|
||||||
|
key_groups:
|
||||||
|
- age:
|
||||||
|
- *valinor
|
||||||
|
- *iriy
|
||||||
|
- *avalon
|
||||||
|
- *asgard
|
||||||
|
pgp:
|
||||||
|
- *sora
|
15
README.md
15
README.md
@ -1,6 +1,13 @@
|
|||||||
<h1 align="center">
|
<h1 align="center">
|
||||||
<img src="https://files.catbox.moe/i4twd5.png"></img> <br>
|
<img src="./nix.png"></img> <br>
|
||||||
snowflake
|
</h1>
|
||||||
|
|
||||||
|
<h1 align="center">
|
||||||
|
...
|
||||||
|
</h1>
|
||||||
|
<h1 align="center">
|
||||||
|
<img width="256" style="image-rendering: crisp-edges;" src="./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>
|
||||||
</h1>
|
</h1>
|
||||||
<p align="center">:snowflake: a flake or crystal of snow :snowflake:</p>
|
|
||||||
<img src="https://files.catbox.moe/d3gsz1.png"></img>
|
|
8
colors/default.nix
Executable file
8
colors/default.nix
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./sorahiro_soft.nix
|
||||||
|
];
|
||||||
|
}
|
BIN
colors/palette0.png
Executable file
BIN
colors/palette0.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
colors/palette1h.png
Executable file
BIN
colors/palette1h.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
colors/palette1p.png
Executable file
BIN
colors/palette1p.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
33
colors/sorahiro_hard.nix
Executable file
33
colors/sorahiro_hard.nix
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
32
colors/sorahiro_soft.nix
Executable file
32
colors/sorahiro_soft.nix
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
332
flake.lock
generated
Normal file
332
flake.lock
generated
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"base16-schemes": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689473676,
|
||||||
|
"narHash": "sha256-L0RhUr9+W5EPWBpLcmkKpUeCEWRs/kLzVMF3Vao2ZU0=",
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-schemes",
|
||||||
|
"rev": "d95123ca6377cd849cfdce92c0a24406b0c6a789",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tinted-theming",
|
||||||
|
"repo": "base16-schemes",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696360011,
|
||||||
|
"narHash": "sha256-HpPv27qMuPou4acXcZ8Klm7Zt0Elv9dgDvSJaomWb9Y=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "8b6ea26d5d2e8359d06278364f41fbc4b903b28a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"ref": "master",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hardware": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1697100850,
|
||||||
|
"narHash": "sha256-qSAzJVzNRIo+r3kBjL8TcpJctcgcHlnZyqdzpWgtg0M=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"rev": "fb6af288f6cf0f00d3af60cf9d5110433b954565",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixos-hardware",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696940889,
|
||||||
|
"narHash": "sha256-p2Wic74A1tZpFcld1wSEbFQQbrZ/tPDuLieCnspamQo=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "6bba64781e4b7c1f91a733583defbd3e46b49408",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems",
|
||||||
|
"wlroots": "wlroots",
|
||||||
|
"xdph": "xdph"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1697059673,
|
||||||
|
"narHash": "sha256-9dIM1ei+O6zcFFM0pgmBhbHv83tli2y8ikjKb1phouc=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"rev": "06cc42441cd5b24444f7c79495851dedde8bc732",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "Hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1691753796,
|
||||||
|
"narHash": "sha256-zOEwiWoXk3j3+EoF3ySUJmberFewWlagvewDRuWYAso=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "0c2ce70625cb30aef199cb388f99e19a61a6ce03",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-colors": {
|
||||||
|
"inputs": {
|
||||||
|
"base16-schemes": "base16-schemes",
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1695388192,
|
||||||
|
"narHash": "sha256-2jelpE7xK+4M7jZNyWL7QYOYegQLYBDQS5bvdo8XRUQ=",
|
||||||
|
"owner": "misterio77",
|
||||||
|
"repo": "nix-colors",
|
||||||
|
"rev": "37227f274b34a3b51649166deb94ce7fec2c6a4c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "misterio77",
|
||||||
|
"repo": "nix-colors",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694767346,
|
||||||
|
"narHash": "sha256-5uH27SiVFUwsTsqC5rs3kS7pBoNhtoy9QfTP9BmknGk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ace5093e36ab1e95cb9463863491bee90d5a4183",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694911725,
|
||||||
|
"narHash": "sha256-8YqI+YU1DGclEjHsnrrGfqsQg3Wyga1DfTbJrN3Ud0c=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"rev": "819180647f428a3826bfc917a54449da1e532ce0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs.lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696717752,
|
||||||
|
"narHash": "sha256-qEq1styCyQHSrw7AOhskH2qwCFx93bOwsGEzUIrZC0g=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "2f3b6b3fcd9fa0a4e6b544180c058a70890a7cc1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696879762,
|
||||||
|
"narHash": "sha256-Ud6bH4DMcYHUDKavNMxAhcIpDGgHMyL/yaDEAVSImQY=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "f99e5f03cc0aa231ab5950a15ed02afec45ed51a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696693680,
|
||||||
|
"narHash": "sha256-PH0HQTkqyj7DmdPKPwrrXwVURLBqzZs4nqnDw9q8mhg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "945559664c1dc5836173ee12896ba421d9b37181",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nur": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1697118309,
|
||||||
|
"narHash": "sha256-7kr8JD4Sa54jGnJz1AFjE6bFnzy4KMFsRdPvhQa0ESE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nur",
|
||||||
|
"rev": "8a488b2668191da034e571d0b015117ce47e1ae6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nur",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"darwin": "darwin",
|
||||||
|
"hardware": "hardware",
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"hyprland": "hyprland",
|
||||||
|
"nix-colors": "nix-colors",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nur": "nur",
|
||||||
|
"sops-nix": "sops-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1697064251,
|
||||||
|
"narHash": "sha256-xxp2sB+4vqB6S6zC/L5J8LlRKgVbgIZOcYl9/TDrEzI=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"rev": "f995ea159252a53b25fa99824f2891e3b479d511",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wlroots": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"lastModified": 1696410538,
|
||||||
|
"narHash": "sha256-ecDhdYLXWHsxMv+EWG36mCNDvzRbu9qfjH7dLxL7aGM=",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc",
|
||||||
|
"type": "gitlab"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"host": "gitlab.freedesktop.org",
|
||||||
|
"owner": "wlroots",
|
||||||
|
"repo": "wlroots",
|
||||||
|
"rev": "3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc",
|
||||||
|
"type": "gitlab"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xdph": {
|
||||||
|
"inputs": {
|
||||||
|
"hyprland-protocols": [
|
||||||
|
"hyprland",
|
||||||
|
"hyprland-protocols"
|
||||||
|
],
|
||||||
|
"nixpkgs": [
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694628480,
|
||||||
|
"narHash": "sha256-Qg9hstRw0pvjGu5hStkr2UX1D73RYcQ9Ns/KnZMIm9w=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"rev": "8f45a6435069b9e24ebd3160eda736d7a391cbf2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
107
flake.nix
Executable file
107
flake.nix
Executable file
@ -0,0 +1,107 @@
|
|||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprland.url = "github:hyprwm/Hyprland";
|
||||||
|
sops-nix.url = "github:Mic92/sops-nix";
|
||||||
|
nix-colors.url = "github:misterio77/nix-colors";
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
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" ];
|
||||||
|
|
||||||
|
in {
|
||||||
|
|
||||||
|
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; };
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
nixosConfigurations = {
|
||||||
|
valinor = gen.generate {
|
||||||
|
type = "nixos";
|
||||||
|
system = "x86_64-linux";
|
||||||
|
host = "valinor";
|
||||||
|
};
|
||||||
|
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 - ?
|
||||||
|
};
|
||||||
|
}
|
53
generator.nix
Executable file
53
generator.nix
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
{ 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});
|
||||||
|
}
|
21
home/cli/default.nix
Executable file
21
home/cli/default.nix
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./git
|
||||||
|
./neofetch
|
||||||
|
./starship
|
||||||
|
./zsh
|
||||||
|
./helix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
sudo
|
||||||
|
ripgrep
|
||||||
|
|
||||||
|
bat
|
||||||
|
croc
|
||||||
|
socat
|
||||||
|
];
|
||||||
|
}
|
23
home/cli/git/default.nix
Executable file
23
home/cli/git/default.nix
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
];
|
||||||
|
}
|
10
home/cli/helix/default.nix
Normal file
10
home/cli/helix/default.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:{
|
||||||
|
programs.helix = {
|
||||||
|
enable = true;
|
||||||
|
languages = { };
|
||||||
|
settings = { };
|
||||||
|
themes = { };
|
||||||
|
};
|
||||||
|
}
|
127
home/cli/neofetch/config.conf
Executable file
127
home/cli/neofetch/config.conf
Executable file
@ -0,0 +1,127 @@
|
|||||||
|
|
||||||
|
print_info() {
|
||||||
|
info ""
|
||||||
|
info "${c5} ├─ Distro " distro
|
||||||
|
info "${c5} ├─ Kernel " kernel
|
||||||
|
info "${c5} ├─ Pkgs " packages
|
||||||
|
info "${c5} ├─ Compositor " de
|
||||||
|
info "${c5} ├─ CPU " cpu
|
||||||
|
info "${c5} ├─ GPU " gpu
|
||||||
|
info "${c5} ├─ Term " term
|
||||||
|
prin "$(color 0) $(color 1) $(color 2) $(color 3) $(color 4) $(color 5) $(color 6) $(color 7)"
|
||||||
|
prin "$(color 8) $(color 9) $(color 10) $(color 11) $(color 12) $(color 13) $(color 14) $(color 15)"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
##--------- Title
|
||||||
|
title_fqdn="off"
|
||||||
|
|
||||||
|
##--------- Kernel
|
||||||
|
kernel_shorthand="off"
|
||||||
|
|
||||||
|
##--------- Distro
|
||||||
|
distro_shorthand="on"
|
||||||
|
os_arch="off"
|
||||||
|
|
||||||
|
##--------- Uptime
|
||||||
|
uptime_shorthand="off"
|
||||||
|
|
||||||
|
##--------- Memory
|
||||||
|
memory_percent="off"
|
||||||
|
memory_unit="mib"
|
||||||
|
|
||||||
|
##--------- Packages
|
||||||
|
package_managers="on"
|
||||||
|
|
||||||
|
##--------- Shell
|
||||||
|
shell_path="off"
|
||||||
|
shell_version="on"
|
||||||
|
|
||||||
|
##--------- CPU
|
||||||
|
speed_type="bios_limit"
|
||||||
|
speed_shorthand="off"
|
||||||
|
cpu_brand="on"
|
||||||
|
cpu_speed="off"
|
||||||
|
cpu_cores="off"
|
||||||
|
cpu_temp="off"
|
||||||
|
|
||||||
|
##--------- GPU
|
||||||
|
gpu_brand="on"
|
||||||
|
gpu_type="dedicated"
|
||||||
|
|
||||||
|
##--------- Resolution
|
||||||
|
refresh_rate="off"
|
||||||
|
|
||||||
|
##--------- GTK
|
||||||
|
gtk_shorthand="off"
|
||||||
|
gtk2="on"
|
||||||
|
gtk3="on"
|
||||||
|
|
||||||
|
##--------- IP
|
||||||
|
public_ip_host="http://ident.me"
|
||||||
|
public_ip_timeout=2
|
||||||
|
|
||||||
|
##--------- DE
|
||||||
|
de_version="on"
|
||||||
|
|
||||||
|
##--------- Disk
|
||||||
|
disk_show=('/')
|
||||||
|
disk_subtitle="mount"
|
||||||
|
disk_percent="on"
|
||||||
|
|
||||||
|
##--------- Song
|
||||||
|
music_player="auto"
|
||||||
|
song_format="%artist% - %album% - %title%"
|
||||||
|
song_shorthand="off"
|
||||||
|
mpc_args=()
|
||||||
|
|
||||||
|
##--------- Text Colors
|
||||||
|
colors=(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
|
||||||
|
|
||||||
|
##--------- Text Options
|
||||||
|
bold="on"
|
||||||
|
underline_enabled="on"
|
||||||
|
underline_char=""
|
||||||
|
separator=":"
|
||||||
|
|
||||||
|
##--------- Color Blocks
|
||||||
|
block_range=(0 15)
|
||||||
|
color_blocks="on"
|
||||||
|
block_width=3
|
||||||
|
block_height=1
|
||||||
|
col_offset="auto"
|
||||||
|
|
||||||
|
##--------- Progress Bars
|
||||||
|
bar_char_elapsed="-"
|
||||||
|
bar_char_total="="
|
||||||
|
bar_border="on"
|
||||||
|
bar_length=15
|
||||||
|
bar_color_elapsed="distro"
|
||||||
|
bar_color_total="distro"
|
||||||
|
|
||||||
|
cpu_display="off"
|
||||||
|
memory_display="off"
|
||||||
|
battery_display="off"
|
||||||
|
disk_display="off"
|
||||||
|
|
||||||
|
##--------- Backend Settings
|
||||||
|
image_backend="kitty"
|
||||||
|
image_source="auto"
|
||||||
|
|
||||||
|
##--------- Ascii Options
|
||||||
|
ascii_distro="nixos_small"
|
||||||
|
ascii_bold="on"
|
||||||
|
|
||||||
|
##--------- Image Options
|
||||||
|
image_loop="off"
|
||||||
|
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
|
||||||
|
crop_mode="normal"
|
||||||
|
crop_offset="center"
|
||||||
|
image_size="auto"
|
||||||
|
gap=2
|
||||||
|
yoffset=0
|
||||||
|
xoffset=0
|
||||||
|
background_color=
|
||||||
|
|
||||||
|
##--------- Misc Options
|
||||||
|
stdout="off"
|
10
home/cli/neofetch/default.nix
Executable file
10
home/cli/neofetch/default.nix
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
neofetch
|
||||||
|
];
|
||||||
|
xdg.configFile."neofetch/config.conf".source =./config.conf;
|
||||||
|
}
|
61
home/cli/starship/default.nix
Executable file
61
home/cli/starship/default.nix
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
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)";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
22
home/cli/zsh/default.nix
Executable file
22
home/cli/zsh/default.nix
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
67
home/gui/default.nix
Executable file
67
home/gui/default.nix
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
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"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
94
home/gui/dunst/default.nix
Executable file
94
home/gui/dunst/default.nix
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
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}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
31
home/gui/eww/css/_calendar.scss
Executable file
31
home/gui/eww/css/_calendar.scss
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
.calendar-win {
|
||||||
|
@include window;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
padding: .2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
calendar {
|
||||||
|
padding: 5px;
|
||||||
|
|
||||||
|
:selected {
|
||||||
|
color: $base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header {
|
||||||
|
color: $base05;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
color: $base0C;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button {
|
||||||
|
color: $base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
:indeterminate {
|
||||||
|
color: $base03;
|
||||||
|
}
|
||||||
|
}
|
123
home/gui/eww/css/_sidebar.scss
Executable file
123
home/gui/eww/css/_sidebar.scss
Executable file
@ -0,0 +1,123 @@
|
|||||||
|
.system-menu-box {
|
||||||
|
@include window;
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.separator {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-row {
|
||||||
|
margin: 1rem 1.5rem 0;
|
||||||
|
|
||||||
|
.time { font-size: 2rem; }
|
||||||
|
|
||||||
|
.date-box {
|
||||||
|
margin: 0 1rem;
|
||||||
|
|
||||||
|
label { font-size: 1.1rem; }
|
||||||
|
|
||||||
|
.date {
|
||||||
|
background: unset;
|
||||||
|
margin: 0 .5rem 0 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
background-color: $bg1;
|
||||||
|
border-radius: 16px;
|
||||||
|
margin-bottom: .1rem;
|
||||||
|
padding: 0 .5rem;
|
||||||
|
|
||||||
|
label { font-size: 1.5rem; }
|
||||||
|
&:hover { background-color: $bg1; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-row {
|
||||||
|
margin: .5rem .7rem;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1rem;
|
||||||
|
margin: 0 .1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.element {
|
||||||
|
@include rounding;
|
||||||
|
background-color: $bg1;
|
||||||
|
margin: .3rem;
|
||||||
|
|
||||||
|
button {
|
||||||
|
@include rounding;
|
||||||
|
padding: 1rem 3rem;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: rgba(255, 255, 255, 0.2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sliders {
|
||||||
|
@include rounding;
|
||||||
|
background-color: $bg1;
|
||||||
|
margin: .5rem 1rem;
|
||||||
|
padding: .6rem 1rem;
|
||||||
|
|
||||||
|
scale {
|
||||||
|
margin-right: -1rem;
|
||||||
|
min-width: 21.5rem;
|
||||||
|
|
||||||
|
trough { margin-right: 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
box { margin: .2rem 0; }
|
||||||
|
label { font-size: 1.2rem; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume-slider-box,
|
||||||
|
.brightness-slider-box {
|
||||||
|
trough { background-color: $base02; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.volume-bar highlight {
|
||||||
|
@include rounding;
|
||||||
|
background-image: linear-gradient(to right, $base0B, $base0C);
|
||||||
|
}
|
||||||
|
|
||||||
|
.brightness-bar highlight {
|
||||||
|
@include rounding;
|
||||||
|
background-image: linear-gradient(to right, $base0A, $base0B);
|
||||||
|
}
|
||||||
|
|
||||||
|
.bottom-row {
|
||||||
|
margin: .5rem 1rem;
|
||||||
|
|
||||||
|
.battery-icon { font-size: 2rem; }
|
||||||
|
.battery-wattage { color: $base0A; }
|
||||||
|
|
||||||
|
.battery-status {
|
||||||
|
color: $base04;
|
||||||
|
margin: 0 .5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bt-connected {
|
||||||
|
background-color: $base0C;
|
||||||
|
color: $base00;
|
||||||
|
|
||||||
|
button:hover { background-color: rgba(0, 0, 0, .3); }
|
||||||
|
}
|
||||||
|
|
||||||
|
.net-connected {
|
||||||
|
background-color: $base0C;
|
||||||
|
color: $base00;
|
||||||
|
|
||||||
|
button:hover { background-color: rgba(0, 0, 0, .3); }
|
||||||
|
}
|
76
home/gui/eww/css/_system.scss
Executable file
76
home/gui/eww/css/_system.scss
Executable file
@ -0,0 +1,76 @@
|
|||||||
|
.membar {
|
||||||
|
color: $base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cpubar {
|
||||||
|
color: $base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.batbar {
|
||||||
|
color: $base0B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.membar,
|
||||||
|
.cpubar,
|
||||||
|
.batbar {
|
||||||
|
background-color: $bg1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconmem {
|
||||||
|
color: $base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
.iconcpu {
|
||||||
|
color: $base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-text {
|
||||||
|
font-size: 3rem;
|
||||||
|
padding: .7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-text-sub {
|
||||||
|
color: $fg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-text-mem,
|
||||||
|
.sys-text-cpu {
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-icon-mem,
|
||||||
|
.sys-icon-cpu {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.system-info-box {
|
||||||
|
@include rounding;
|
||||||
|
background-color: $bg1;
|
||||||
|
margin: .5rem 1rem;
|
||||||
|
padding: .5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-mem,
|
||||||
|
.sys-cpu {
|
||||||
|
background-color: $bg;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-icon-mem,
|
||||||
|
.sys-text-mem,
|
||||||
|
.sys-mem {
|
||||||
|
color: $base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-icon-cpu,
|
||||||
|
.sys-text-cpu,
|
||||||
|
.sys-cpu {
|
||||||
|
color: $base0C;
|
||||||
|
}
|
||||||
|
|
||||||
|
.sys-box {
|
||||||
|
margin: .3em;
|
||||||
|
|
||||||
|
box { margin-left: 1rem; }
|
||||||
|
}
|
51
home/gui/eww/default.nix
Executable file
51
home/gui/eww/default.nix
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
'';
|
||||||
|
}
|
109
home/gui/eww/eww.scss
Executable file
109
home/gui/eww/eww.scss
Executable file
@ -0,0 +1,109 @@
|
|||||||
|
@import 'css/colors';
|
||||||
|
|
||||||
|
@mixin rounding {
|
||||||
|
border-radius: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin window {
|
||||||
|
border: 2px solid $base03;
|
||||||
|
margin: 5px 5px 10px;
|
||||||
|
@include rounding;
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
all: unset;
|
||||||
|
font-family: "IBM Plex Mono";
|
||||||
|
transition: 200ms ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
@import 'css/calendar';
|
||||||
|
@import 'css/sidebar';
|
||||||
|
@import 'css/system';
|
||||||
|
|
||||||
|
.bar {
|
||||||
|
background-color: $bg;
|
||||||
|
color: $fg;
|
||||||
|
border-bottom: 2px solid $base03;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: $bg;
|
||||||
|
border: 1px solid $border;
|
||||||
|
border-radius: 8px;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon,
|
||||||
|
.icon label { font-family: Material Design Icons; }
|
||||||
|
|
||||||
|
.ws {
|
||||||
|
border-radius: 2rem;
|
||||||
|
margin: .7rem .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.focused {
|
||||||
|
background-color: $bg;
|
||||||
|
border-radius: 1rem;
|
||||||
|
margin: .3rem;
|
||||||
|
padding: .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.module { margin: 0 5px; }
|
||||||
|
|
||||||
|
.hour {
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.minute {
|
||||||
|
padding-right: .7rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.date {
|
||||||
|
background: $bg;
|
||||||
|
color: $base0C;
|
||||||
|
|
||||||
|
label {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.bright-icon { color: $base09; }
|
||||||
|
.module-bt { font-size: 1.2rem; }
|
||||||
|
|
||||||
|
scale trough {
|
||||||
|
background-color: $bg1;
|
||||||
|
border-radius: 24px;
|
||||||
|
margin: 0 1rem;
|
||||||
|
min-height: 10px;
|
||||||
|
min-width: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.workspaces { margin-left: 10px; }
|
||||||
|
|
||||||
|
.grey {
|
||||||
|
background-color: $base02;
|
||||||
|
}
|
||||||
|
|
||||||
|
.red {
|
||||||
|
background-color: $base0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
.orange {
|
||||||
|
background-color: $base08;
|
||||||
|
}
|
||||||
|
|
||||||
|
.green {
|
||||||
|
background-color: $base0B;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue {
|
||||||
|
background-color: $base0C;
|
||||||
|
}
|
44
home/gui/eww/eww.yuck
Executable file
44
home/gui/eww/eww.yuck
Executable file
@ -0,0 +1,44 @@
|
|||||||
|
(include "./modules/clock.yuck")
|
||||||
|
(include "./modules/net.yuck")
|
||||||
|
(include "./modules/sys.yuck")
|
||||||
|
(include "./modules/variables.yuck")
|
||||||
|
(include "./modules/workspaces.yuck")
|
||||||
|
|
||||||
|
(include "./windows/calendar.yuck")
|
||||||
|
(include "./windows/system.yuck")
|
||||||
|
|
||||||
|
(defwidget left []
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
(workspaces)))
|
||||||
|
|
||||||
|
(defwidget right []
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
(sys)
|
||||||
|
(clock_module)))
|
||||||
|
|
||||||
|
(defwidget center []
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:halign "center"
|
||||||
|
))
|
||||||
|
|
||||||
|
(defwidget bar-box []
|
||||||
|
(centerbox
|
||||||
|
(left)
|
||||||
|
(center)
|
||||||
|
(right)))
|
||||||
|
|
||||||
|
(defwindow bar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry :x "0%"
|
||||||
|
:y "0%"
|
||||||
|
:width "100%"
|
||||||
|
:height "32px"
|
||||||
|
:anchor "top center")
|
||||||
|
:stacking "fg"
|
||||||
|
:exclusive true
|
||||||
|
(bar-box))
|
24
home/gui/eww/modules/clock.yuck
Executable file
24
home/gui/eww/modules/clock.yuck
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
(defvar date_rev false)
|
||||||
|
|
||||||
|
(defwidget clock_module []
|
||||||
|
(eventbox
|
||||||
|
:onhover "${EWW_CMD} update date_rev=true"
|
||||||
|
:onhoverlost "${EWW_CMD} update date_rev=false"
|
||||||
|
(overlay
|
||||||
|
:class "module"
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
(label
|
||||||
|
:text {time.hour}
|
||||||
|
:class "hour")
|
||||||
|
(label
|
||||||
|
:text ":")
|
||||||
|
(label
|
||||||
|
:text {time.minute}
|
||||||
|
:class "minute"))
|
||||||
|
(revealer
|
||||||
|
:reveal date_rev
|
||||||
|
(button
|
||||||
|
:class "date"
|
||||||
|
:onclick "${EWW_CMD} open --toggle calendar"
|
||||||
|
{time.date})))))
|
7
home/gui/eww/modules/net.yuck
Executable file
7
home/gui/eww/modules/net.yuck
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
(defwidget net []
|
||||||
|
(button
|
||||||
|
:class "module icon"
|
||||||
|
:onclick "gnome-control-center &"
|
||||||
|
:tooltip {net.name}
|
||||||
|
:style "color: ${net.color};"
|
||||||
|
{net.icon}))
|
30
home/gui/eww/modules/sys.yuck
Executable file
30
home/gui/eww/modules/sys.yuck
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
(defwidget sys []
|
||||||
|
(box
|
||||||
|
:class "module"
|
||||||
|
:space-evenly false
|
||||||
|
:spacing 5
|
||||||
|
(circular-progress
|
||||||
|
:value {EWW_CPU.avg}
|
||||||
|
:class "cpubar"
|
||||||
|
:thickness 3
|
||||||
|
(button
|
||||||
|
:onclick "${EWW_CMD} open --toggle system-menu"
|
||||||
|
(label :class "icon-text" :text "")))
|
||||||
|
|
||||||
|
(circular-progress
|
||||||
|
:value {memory.percent}
|
||||||
|
:class "membar"
|
||||||
|
:thickness 3
|
||||||
|
(button
|
||||||
|
:onclick "${EWW_CMD} open --toggle system-menu"
|
||||||
|
(label :class "icon-text" :text "")))
|
||||||
|
|
||||||
|
(circular-progress
|
||||||
|
:value {battery.percentage}
|
||||||
|
:class "batbar"
|
||||||
|
:style "color: ${battery.color};"
|
||||||
|
:thickness 3
|
||||||
|
(button
|
||||||
|
:tooltip "${battery.percentage}%"
|
||||||
|
:onclick "${EWW_CMD} open --toggle system-menu"
|
||||||
|
(label :class "icon-text" :text "")))))
|
17
home/gui/eww/modules/variables.yuck
Executable file
17
home/gui/eww/modules/variables.yuck
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
(defvar bright_reveal false)
|
||||||
|
(defvar bt_rev false)
|
||||||
|
(defvar net_rev false)
|
||||||
|
(defvar time_rev false)
|
||||||
|
(defvar vol_reveal false)
|
||||||
|
|
||||||
|
(defpoll time :interval "5s" `date +'{"date": "%d/%m", "hour": "%H", "minute": "%M", "day": "%A"}'`)
|
||||||
|
|
||||||
|
(deflisten flightmode "scripts/flightmode")
|
||||||
|
(deflisten powermode "scripts/powermode")
|
||||||
|
(deflisten battery "scripts/battery")
|
||||||
|
(deflisten bluetooth "scripts/bluetooth")
|
||||||
|
(deflisten brightness "scripts/brightness")
|
||||||
|
(deflisten memory "scripts/memory")
|
||||||
|
(deflisten net "scripts/net")
|
||||||
|
(deflisten volume "scripts/volume")
|
||||||
|
(deflisten workspace "scripts/workspaces")
|
13
home/gui/eww/modules/workspaces.yuck
Executable file
13
home/gui/eww/modules/workspaces.yuck
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
(defwidget workspaces []
|
||||||
|
(eventbox
|
||||||
|
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
|
||||||
|
(box
|
||||||
|
:class "module workspaces"
|
||||||
|
(for ws in workspace
|
||||||
|
(button
|
||||||
|
:onclick "hyprctl dispatch workspace ${ws.number}"
|
||||||
|
:class "ws icon ${ws.color}"
|
||||||
|
; :tooltip {ws.tooltip}
|
||||||
|
(box
|
||||||
|
:class `${ws.focused ? "focused" : ""}`
|
||||||
|
:height 3))))))
|
61
home/gui/eww/scripts/battery
Executable file
61
home/gui/eww/scripts/battery
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
icons=("" "" "" "" "" "" "" "" "" "" "")
|
||||||
|
num_icons=$(awk -v n="${#icons[@]}" 'BEGIN{print 100 / n}')
|
||||||
|
BATTERY="/sys/class/power_supply/BAT0"
|
||||||
|
|
||||||
|
geticon() {
|
||||||
|
level=$(awk -v n="$CAPACITY" -v c="$num_icons" 'BEGIN{print int(n/c-1)}')
|
||||||
|
echo "${icons[$level]}"
|
||||||
|
}
|
||||||
|
|
||||||
|
status() {
|
||||||
|
if [ "$STATE" = "Charging" ]; then
|
||||||
|
echo -n "charging"
|
||||||
|
|
||||||
|
if [ "$RATE" -gt 0 ]; then
|
||||||
|
echo ", $(gettime) left"
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
elif [ "$STATE" = "Discharging" ]; then
|
||||||
|
echo "$(gettime)h left"
|
||||||
|
else
|
||||||
|
echo "fully charged"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
color() {
|
||||||
|
[ "$CAPACITY" -le 20 ] && echo '#f38ba8' || echo '#a6e3a1'
|
||||||
|
}
|
||||||
|
|
||||||
|
wattage() {
|
||||||
|
awk -v rate="$RATE" -v uw="1000000" 'BEGIN{print sprintf("%.1f W", rate/uw)}'
|
||||||
|
}
|
||||||
|
|
||||||
|
gettime() {
|
||||||
|
FULL=$(cat $BATTERY/energy_full)
|
||||||
|
NOW=$(cat $BATTERY/energy_now)
|
||||||
|
|
||||||
|
if [ "$RATE" -gt 0 ]; then
|
||||||
|
if [ "$STATE" = "Discharging" ]; then
|
||||||
|
EX="$NOW / $RATE"
|
||||||
|
else
|
||||||
|
EX="($FULL - $NOW) / $RATE"
|
||||||
|
fi
|
||||||
|
date -u -d@"$(awk -v ex="$EX" 'BEGIN{print ex * 3600}')" +%H:%M
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -d "$BATTERY" ]; then
|
||||||
|
while true; do
|
||||||
|
RATE=$(cat $BATTERY/power_now)
|
||||||
|
CAPACITY=$(cat $BATTERY/capacity)
|
||||||
|
STATE=$(cat $BATTERY/status)
|
||||||
|
|
||||||
|
echo '{ "icon": "'$(geticon)'", "percentage": '$CAPACITY', "wattage": "'$(wattage)'", "status": "'$(status)'", "color": "'$(color)'" }'
|
||||||
|
sleep 5
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo '{ "icon": "", "percentage": 0, "wattage": "", "status": "", "color": "#a6e3a1" }'
|
||||||
|
fi
|
30
home/gui/eww/scripts/brightness
Executable file
30
home/gui/eww/scripts/brightness
Executable file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function get_time_ms {
|
||||||
|
date -u +%s%3N
|
||||||
|
}
|
||||||
|
|
||||||
|
icons=("" "" "")
|
||||||
|
|
||||||
|
gen_output() {
|
||||||
|
icon="${icons[$(awk -v n="$(brillo)" 'BEGIN{print int(n/34)}')]}"
|
||||||
|
prcnt=$(brillo | xargs printf "%.*f\n" "0")
|
||||||
|
echo '{"percent": '$prcnt', "icon": "'$icon'"}'
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ $(brillo 2>/dev/stdout 1>/dev/null | head -n1 | awk '{print $1}') == "No" ]]; then
|
||||||
|
echo '{"percent": 100, "icon": ""}'
|
||||||
|
elif [ "$1" = "" ]; then
|
||||||
|
# initial
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
gen_output
|
||||||
|
|
||||||
|
udevadm monitor | rg --line-buffered "backlight" | while read -r _; do
|
||||||
|
current_time=$(get_time_ms)
|
||||||
|
delta=$((current_time - last_time))
|
||||||
|
if [[ $delta -gt 50 ]]; then
|
||||||
|
gen_output
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
23
home/gui/eww/scripts/flightmode
Executable file
23
home/gui/eww/scripts/flightmode
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
icon() {
|
||||||
|
[ "$STATUS" = "no" ] && echo "" || echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
if [ "$STATUS" = "no" ]; then
|
||||||
|
rfkill block all
|
||||||
|
else
|
||||||
|
rfkill unblock all
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "toggle" ]; then
|
||||||
|
toggle
|
||||||
|
else
|
||||||
|
icon
|
||||||
|
rfkill event | while read -r _; do
|
||||||
|
STATUS="$(rfkill list | sed -n 2p | awk '{print $3}')"
|
||||||
|
icon
|
||||||
|
done
|
||||||
|
fi
|
14
home/gui/eww/scripts/memory
Executable file
14
home/gui/eww/scripts/memory
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
total="$(free --si | rg Mem | awk '{print $2}')"
|
||||||
|
|
||||||
|
human() {
|
||||||
|
awk -v mem="$1" 'BEGIN{print sprintf("%.1f%s", mem/1000/(mem > 1000000 ? 1000 : 1), mem > 1000000 ? "G" : "M")}'
|
||||||
|
}
|
||||||
|
|
||||||
|
free --si -s 3 | rg --line-buffered Mem | while read -r line; do
|
||||||
|
used=$(echo "$line" | awk '{print $3}')
|
||||||
|
perc=$(awk -v used="$used" -v total="$total" 'BEGIN{print sprintf("%.f", used/total*100)}')
|
||||||
|
|
||||||
|
echo '{"total": "'$(human "$total")'", "used": "'$(human "$used")'", "percent": '$perc'}'
|
||||||
|
done
|
72
home/gui/eww/scripts/net
Executable file
72
home/gui/eww/scripts/net
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function get_time_ms {
|
||||||
|
date -u +%s%3N
|
||||||
|
}
|
||||||
|
|
||||||
|
icons=("" "" "" "" "")
|
||||||
|
|
||||||
|
function toggle() {
|
||||||
|
status=$(rfkill | grep wlan | awk '{print $4}')
|
||||||
|
|
||||||
|
if [ "$status" = "unblocked" ]; then
|
||||||
|
rfkill block wlan
|
||||||
|
else
|
||||||
|
rfkill unblock wlan
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function gen_wifi() {
|
||||||
|
signal=$(cat /proc/net/wireless | head -n3 | tail -n1 | awk '{print $3}')
|
||||||
|
level=$(awk -v n="$signal" 'BEGIN{print int((n-1)/20)}')
|
||||||
|
if [ "$level" -gt 4 ]; then
|
||||||
|
level=4
|
||||||
|
fi
|
||||||
|
|
||||||
|
icon=${icons[$level]}
|
||||||
|
color="#cba6f7"
|
||||||
|
class="net-connected"
|
||||||
|
name=$(wpa_cli status | grep \^ssid= | sed 's/ssid=//g')
|
||||||
|
}
|
||||||
|
|
||||||
|
function gen_ethernet() {
|
||||||
|
icon=""
|
||||||
|
class="net-connected"
|
||||||
|
color="#cba6f7"
|
||||||
|
name=Wired
|
||||||
|
}
|
||||||
|
|
||||||
|
function make_content() {
|
||||||
|
local ethernet wifi
|
||||||
|
ethernet=$(ip link | rg "^[0-9]+: en[po]+" | head -n1 | sed 's/[a-zA-Z0-9_,><:\ -]*state //g' | sed 's/ mode [a-zA-Z0-9 ]*//g')
|
||||||
|
wifi=$(wpa_cli status | rg "^wpa_state=" | sed 's/wpa_state=//g')
|
||||||
|
|
||||||
|
# test ethernet first
|
||||||
|
if [[ $ethernet == "UP" ]]; then
|
||||||
|
gen_ethernet
|
||||||
|
elif [[ $wifi == "COMPLETED" ]]; then
|
||||||
|
gen_wifi
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
color="#988ba2"
|
||||||
|
class="net-disconnected"
|
||||||
|
name="Disconnected"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo '{"icon": "'$icon'", "name": "'$name'", "color": "'$color'", "class": "'$class'"}'
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "toggle" ]; then
|
||||||
|
toggle
|
||||||
|
else
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
make_content
|
||||||
|
ip monitor | while read -r _; do
|
||||||
|
current_time=$(get_time_ms)
|
||||||
|
delta=$((current_time - last_time))
|
||||||
|
if [[ $delta -gt 50 ]]; then
|
||||||
|
make_content
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
20
home/gui/eww/scripts/powermode
Executable file
20
home/gui/eww/scripts/powermode
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
icon() {
|
||||||
|
[ "$STATUS" = "no" ] && echo "" || echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
if [ "$STATUS" = "no" ]; then
|
||||||
|
echo ""
|
||||||
|
else
|
||||||
|
echo ""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "toggle" ]; then
|
||||||
|
toggle
|
||||||
|
icon
|
||||||
|
else
|
||||||
|
icon
|
||||||
|
fi
|
64
home/gui/eww/scripts/volume
Executable file
64
home/gui/eww/scripts/volume
Executable file
@ -0,0 +1,64 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
function get_time_ms {
|
||||||
|
date -u +%s%3N
|
||||||
|
}
|
||||||
|
|
||||||
|
volicons=("" "" "")
|
||||||
|
|
||||||
|
vol() {
|
||||||
|
wpctl get-volume @DEFAULT_AUDIO_"$1"@ | awk '{print int($2*100)}'
|
||||||
|
}
|
||||||
|
ismuted() {
|
||||||
|
wpctl get-volume @DEFAULT_AUDIO_"$1"@ | rg -qi muted
|
||||||
|
echo -n $?
|
||||||
|
}
|
||||||
|
setvol() {
|
||||||
|
wpctl set-volume @DEFAULT_AUDIO_"$1"@ "$(awk -v n="$2" 'BEGIN{print (n / 100)}')"
|
||||||
|
}
|
||||||
|
setmute() {
|
||||||
|
wpctl set-mute @DEFAULT_AUDIO_"$1"@ toggle
|
||||||
|
}
|
||||||
|
|
||||||
|
gen_output() {
|
||||||
|
percent="$(vol "SINK")"
|
||||||
|
lvl=$(awk -v n="$percent" 'BEGIN{print int(n/34)}')
|
||||||
|
ismuted=$(ismuted "SINK")
|
||||||
|
|
||||||
|
if [ "$ismuted" = 1 ]; then
|
||||||
|
icon="${volicons[$lvl]}"
|
||||||
|
else
|
||||||
|
icon=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo '{"icon": "'$icon'", "percent": '$(vol "SINK")', "microphone": '$(vol "SOURCE")'}'
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "$1" = "mute" ]; then
|
||||||
|
if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
|
||||||
|
echo "Can only mute SINK or SOURCE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
setmute "$2"
|
||||||
|
elif [ "$1" = "setvol" ]; then
|
||||||
|
if [ "$2" != "SOURCE" ] && [ "$2" != "SINK" ]; then
|
||||||
|
echo "Can only set volume for SINK or SOURCE"
|
||||||
|
exit 1
|
||||||
|
elif [ "$3" -lt 0 ] || [ "$3" -gt 100 ]; then
|
||||||
|
echo "Volume must be between 0 and 100"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
setvol "$2" "$3"
|
||||||
|
else
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
gen_output
|
||||||
|
|
||||||
|
pw-cli -m 2>/dev/null | rg --line-buffered "PipeWire:Interface:Client" | while read -r event; do
|
||||||
|
current_time=$(get_time_ms)
|
||||||
|
delta=$((current_time - last_time))
|
||||||
|
if [[ $delta -gt 50 ]]; then
|
||||||
|
gen_output
|
||||||
|
last_time=$(get_time_ms)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
86
home/gui/eww/scripts/workspaces
Executable file
86
home/gui/eww/scripts/workspaces
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
colors=("blue" "orange" "green" "red")
|
||||||
|
empty="grey"
|
||||||
|
|
||||||
|
# get initial focused workspace
|
||||||
|
focusedws=$(hyprctl -j monitors | jaq -r '.[] | select(.focused == true) | .activeWorkspace.id')
|
||||||
|
|
||||||
|
declare -A o=([1]=0 [2]=0 [3]=0 [4]=0 [5]=0 [6]=0 [7]=0 [8]=0 [9]=0 [10]=0)
|
||||||
|
declare -A monitormap
|
||||||
|
declare -A workspaces
|
||||||
|
|
||||||
|
# set color for each workspace
|
||||||
|
status() {
|
||||||
|
if [ "${o[$1]}" -eq 1 ]; then
|
||||||
|
mon=${monitormap[${workspaces[$1]}]}
|
||||||
|
echo -n "${colors[$mon]}"
|
||||||
|
else
|
||||||
|
echo -n "$empty"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# handle workspace create/destroy
|
||||||
|
workspace_event() {
|
||||||
|
while read -r k v; do workspaces[$k]="$v"; done < <(hyprctl -j workspaces | jaq -jr '.[] | .id, " ", .monitor, "\n"')
|
||||||
|
}
|
||||||
|
# handle monitor (dis)connects
|
||||||
|
monitor_event() {
|
||||||
|
while read -r k v; do monitormap["$k"]=$v; done < <(hyprctl -j monitors | jaq -jr '.[] | .name, " ", .id, "\n"')
|
||||||
|
}
|
||||||
|
|
||||||
|
# get all apps titles in a workspace
|
||||||
|
applist() {
|
||||||
|
ws="$1"
|
||||||
|
|
||||||
|
apps=$(hyprctl -j clients | jaq -jr '.[] | select(.workspace.id == '"$ws"') | .title + "\\n"')
|
||||||
|
echo -En "${apps%"\n"}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# generate the json for eww
|
||||||
|
generate() {
|
||||||
|
echo -n '['
|
||||||
|
|
||||||
|
for i in {1..10}; do
|
||||||
|
echo -n ''"$([ "$i" -eq 1 ] || echo ,)" '{"number": "'"$i"'", "color": "'"$(status "$i")"'", "focused": '"$([ "$focusedws" = "$i" ] && echo "true" || echo "false")"'}' #, "tooltip": "'$(applist "$i")'" }'
|
||||||
|
done
|
||||||
|
|
||||||
|
echo ']'
|
||||||
|
}
|
||||||
|
|
||||||
|
# setup
|
||||||
|
|
||||||
|
# add monitors
|
||||||
|
monitor_event
|
||||||
|
|
||||||
|
# add workspaces
|
||||||
|
workspace_event
|
||||||
|
|
||||||
|
# check occupied workspaces
|
||||||
|
for num in "${!workspaces[@]}"; do
|
||||||
|
o[$num]=1
|
||||||
|
done
|
||||||
|
# generate initial widget
|
||||||
|
generate
|
||||||
|
|
||||||
|
# main loop
|
||||||
|
socat -u UNIX-CONNECT:/tmp/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | rg --line-buffered "workspace|mon(itor)?" | while read -r line; do
|
||||||
|
case ${line%>>*} in
|
||||||
|
"workspace")
|
||||||
|
focusedws=${line#*>>}
|
||||||
|
;;
|
||||||
|
"focusedmon")
|
||||||
|
focusedws=${line#*,}
|
||||||
|
;;
|
||||||
|
"createworkspace")
|
||||||
|
o[${line#*>>}]=1
|
||||||
|
;;
|
||||||
|
"destroyworkspace")
|
||||||
|
o[${line#*>>}]=0
|
||||||
|
;;
|
||||||
|
"monitor"*)
|
||||||
|
monitor_event
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
generate
|
||||||
|
done
|
14
home/gui/eww/windows/calendar.yuck
Executable file
14
home/gui/eww/windows/calendar.yuck
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
(defwidget calendar-win []
|
||||||
|
(box
|
||||||
|
:class "calendar-win"
|
||||||
|
(calendar)))
|
||||||
|
|
||||||
|
(defwindow calendar
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry
|
||||||
|
:x "0%"
|
||||||
|
:y "0%"
|
||||||
|
:anchor "top right"
|
||||||
|
:width "0px"
|
||||||
|
:height "0px")
|
||||||
|
(calendar-win))
|
188
home/gui/eww/windows/system.yuck
Executable file
188
home/gui/eww/windows/system.yuck
Executable file
@ -0,0 +1,188 @@
|
|||||||
|
(defwidget system-menu []
|
||||||
|
(box
|
||||||
|
:class "system-menu-box"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(centerbox
|
||||||
|
:class "top-row"
|
||||||
|
(box
|
||||||
|
(label
|
||||||
|
:class "time"
|
||||||
|
:text "${time.hour}:${time.minute}")
|
||||||
|
(box
|
||||||
|
:class "date-box"
|
||||||
|
:space-evenly false
|
||||||
|
(label
|
||||||
|
:class "date"
|
||||||
|
:text {time.date}
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:class "day"
|
||||||
|
:text {time.day}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label)
|
||||||
|
(box
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
(button
|
||||||
|
:halign "end"
|
||||||
|
:class "power-button icon"
|
||||||
|
:onclick "wlogout -p layer-shell -c 10 -m 500 &"
|
||||||
|
""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(centerbox
|
||||||
|
:class "system-row"
|
||||||
|
(box
|
||||||
|
:class "net-box"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:class "element icon ${net.class}"
|
||||||
|
(button
|
||||||
|
:class "net-button"
|
||||||
|
:onclick "scripts/net toggle"
|
||||||
|
{net.icon}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:text {net.name}
|
||||||
|
:xalign 0.5
|
||||||
|
:limit-width 15
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(box
|
||||||
|
:class "flightmode-box"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:class "element"
|
||||||
|
(button
|
||||||
|
:class "flightmode-button"
|
||||||
|
:onclick "scripts/flightmode toggle"
|
||||||
|
flightmode
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label
|
||||||
|
:text "Flight Mode"
|
||||||
|
:xalign 0.5
|
||||||
|
:limit-width 16
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(box
|
||||||
|
:class "powermode-box"
|
||||||
|
:space-evenly false
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:class "element"
|
||||||
|
(button
|
||||||
|
:class "powermode-button"
|
||||||
|
:onclick "scripts/powermode toggle"
|
||||||
|
powermode))
|
||||||
|
(label
|
||||||
|
:text "Power Mode"
|
||||||
|
:xalign 0.5
|
||||||
|
:limit-width 16)))
|
||||||
|
|
||||||
|
(box
|
||||||
|
:class "sliders"
|
||||||
|
:orientation "v"
|
||||||
|
(box
|
||||||
|
:class "volume-slider-box"
|
||||||
|
:space-evenly false
|
||||||
|
(button
|
||||||
|
:class "volume-icon icon"
|
||||||
|
:onclick "scripts/volume mute SINK"
|
||||||
|
{volume.icon})
|
||||||
|
(scale
|
||||||
|
:class "volume-bar"
|
||||||
|
:value {volume.percent}
|
||||||
|
:onchange "scripts/volume setvol SINK {}"))
|
||||||
|
(box
|
||||||
|
:class "brightness-slider-box"
|
||||||
|
:space-evenly false
|
||||||
|
(button
|
||||||
|
:class "brightness-slider-icon icon"
|
||||||
|
{brightness.icon})
|
||||||
|
(scale
|
||||||
|
:class "brightness-bar"
|
||||||
|
:value {brightness.percent}
|
||||||
|
:onchange "brillo -S {}")))
|
||||||
|
|
||||||
|
(box
|
||||||
|
:class "system-info-box"
|
||||||
|
|
||||||
|
; cpu
|
||||||
|
(box
|
||||||
|
:class "sys-box"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "start"
|
||||||
|
(circular-progress
|
||||||
|
:value "${EWW_CPU.avg}"
|
||||||
|
:class "sys-cpu"
|
||||||
|
:thickness 3
|
||||||
|
(label
|
||||||
|
:text ""
|
||||||
|
:class "sys-icon-cpu icon"))
|
||||||
|
(box
|
||||||
|
:orientation "v"
|
||||||
|
:vexpand false
|
||||||
|
(label
|
||||||
|
:text "CPU"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys-text-cpu")
|
||||||
|
(label
|
||||||
|
:text "${round(EWW_CPU.avg,2)}%"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys-text-sub")
|
||||||
|
(label
|
||||||
|
:text "${EWW_CPU.cores[0].freq} MHz"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys-text-sub")))
|
||||||
|
|
||||||
|
; memory
|
||||||
|
(box
|
||||||
|
:class "sys-box"
|
||||||
|
:space-evenly false
|
||||||
|
:halign "end"
|
||||||
|
(circular-progress
|
||||||
|
:value {memory.percent}
|
||||||
|
:class "sys-mem"
|
||||||
|
:thickness 3
|
||||||
|
(label
|
||||||
|
:text ""
|
||||||
|
:class "sys-icon-mem icon"))
|
||||||
|
(box
|
||||||
|
:orientation "v"
|
||||||
|
(label
|
||||||
|
:text "RAM"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys-text-mem")
|
||||||
|
(label
|
||||||
|
:text "${memory.used} | ${memory.total}"
|
||||||
|
:halign "start"
|
||||||
|
:class "sys-text-sub"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(label)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
(defwindow system-menu
|
||||||
|
:stacking "fg"
|
||||||
|
:monitor 0
|
||||||
|
:geometry (geometry
|
||||||
|
:x "0"
|
||||||
|
:y "0"
|
||||||
|
:width "0%"
|
||||||
|
:height "0%"
|
||||||
|
:anchor "right top")
|
||||||
|
(system-menu))
|
23
home/gui/firefox/default.nix
Executable file
23
home/gui/firefox/default.nix
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
14
home/gui/firefox/userChrome.css
Executable file
14
home/gui/firefox/userChrome.css
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
#main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar > .toolbar-items {
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
#main-window:not([tabsintitlebar="true"]) #TabsToolbar {
|
||||||
|
visibility: collapse !important;
|
||||||
|
}
|
||||||
|
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.tab {
|
||||||
|
margin-left: 1px;
|
||||||
|
margin-right: 1px;
|
||||||
|
}
|
61
home/gui/kitty/default.nix
Executable file
61
home/gui/kitty/default.nix
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
# ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
home/gui/mpv/default.nix
Executable file
11
home/gui/mpv/default.nix
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
programs.mpv = {
|
||||||
|
enable = true;
|
||||||
|
scripts = with pkgs; [
|
||||||
|
mpvScripts.mpris
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
31
home/gui/pipewire/default.nix
Executable file
31
home/gui/pipewire/default.nix
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}:{
|
||||||
|
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
'';
|
||||||
|
}
|
61
home/gui/theme/default.nix
Executable file
61
home/gui/theme/default.nix
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
}
|
69
home/gui/theme/gtk-theme-gen.nix
Executable file
69
home/gui/theme/gtk-theme-gen.nix
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
{ pkgs, config }:
|
||||||
|
|
||||||
|
let
|
||||||
|
rendersvg = pkgs.runCommand "rendersvg" { } ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
ln -s ${pkgs.resvg}/bin/resvg $out/bin/rendersvg
|
||||||
|
'';
|
||||||
|
scheme = config.colorScheme;
|
||||||
|
in
|
||||||
|
pkgs.stdenv.mkDerivation rec {
|
||||||
|
name = "generated-gtk-theme-${scheme.slug}";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nana-4";
|
||||||
|
repo = "materia-theme";
|
||||||
|
rev = "6e5850388a25f424b8193fe4523504d1dc364175";
|
||||||
|
sha256 = "sha256-I6hpH0VTmftU4+/pRbztuTQcBKcOFBFbNZXJL/2bcgU=";
|
||||||
|
};
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
sassc
|
||||||
|
bc
|
||||||
|
which
|
||||||
|
rendersvg
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
nodePackages.sass
|
||||||
|
gtk4.dev
|
||||||
|
optipng
|
||||||
|
];
|
||||||
|
phases = [ "unpackPhase" "installPhase" ];
|
||||||
|
installPhase = ''
|
||||||
|
HOME=/build
|
||||||
|
chmod 777 -R .
|
||||||
|
patchShebangs .
|
||||||
|
mkdir -p $out/share/themes
|
||||||
|
mkdir bin
|
||||||
|
sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt
|
||||||
|
|
||||||
|
cat > /build/gtk-colors << EOF
|
||||||
|
BG=${scheme.colors.base00}
|
||||||
|
FG=${scheme.colors.base07}
|
||||||
|
HDR_BG=${scheme.colors.base00}
|
||||||
|
HDR_FG=${scheme.colors.base07}
|
||||||
|
SEL_BG=${scheme.colors.base03}
|
||||||
|
SEL_FG=${scheme.colors.base07}
|
||||||
|
TXT_BG=${scheme.colors.base01}
|
||||||
|
TXT_FG=${scheme.colors.base07}
|
||||||
|
BTN_BG=${scheme.colors.base01}
|
||||||
|
BTN_FG=${scheme.colors.base07}
|
||||||
|
HDR_BTN_BG=${scheme.colors.base01}
|
||||||
|
HDR_BTN_FG=${scheme.colors.base07}
|
||||||
|
MENU_BG=${scheme.colors.base00}
|
||||||
|
MENU_FG=${scheme.colors.base07}
|
||||||
|
ACCENT_BG=${scheme.colors.base0C}
|
||||||
|
ACCENT_FG=${scheme.colors.base00}
|
||||||
|
MATERIA_SURFACE=${scheme.colors.base01}
|
||||||
|
MATERIA_VIEW=${scheme.colors.base00}
|
||||||
|
WM_BORDER_FOCUS=${scheme.colors.base02}
|
||||||
|
WM_BORDER_UNFOCUS=${scheme.colors.base02}
|
||||||
|
UNITY_DEFAULT_LAUNCHER_STYLE=False
|
||||||
|
ROUNDNESS=7
|
||||||
|
NAME=${scheme.slug}
|
||||||
|
MATERIA_STYLE_COMPACT=True
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "Changing colours:"
|
||||||
|
./change_color.sh -o ${scheme.slug} /build/gtk-colors -i False -t "$out/share/themes"
|
||||||
|
chmod 555 -R .
|
||||||
|
'';
|
||||||
|
}
|
45
home/gui/theme/wallpaper-gen.nix
Normal file
45
home/gui/theme/wallpaper-gen.nix
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{ 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/
|
||||||
|
'';
|
||||||
|
}
|
92
home/gui/various/btop.nix
Normal file
92
home/gui/various/btop.nix
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
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}"
|
||||||
|
|
||||||
|
'';
|
||||||
|
}
|
14
home/gui/various/default.nix
Executable file
14
home/gui/various/default.nix
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./openttd.nix
|
||||||
|
./btop.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
];
|
||||||
|
}
|
769
home/gui/various/openttd.nix
Executable file
769
home/gui/various/openttd.nix
Executable file
@ -0,0 +1,769 @@
|
|||||||
|
{
|
||||||
|
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]
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
|
||||||
|
}
|
69
home/gui/vosk/default.nix
Normal file
69
home/gui/vosk/default.nix
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
|
||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
111
home/gui/wayland/default.nix
Executable file
111
home/gui/wayland/default.nix
Executable file
@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
69
home/gui/wofi/default.nix
Executable file
69
home/gui/wofi/default.nix
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
{
|
||||||
|
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};
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
48
home/gui/zathura/default.nix
Executable file
48
home/gui/zathura/default.nix
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
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}"
|
||||||
|
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
93
home/wayland/default.nix
Executable file
93
home/wayland/default.nix
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
{
|
||||||
|
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"
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
227
home/wayland/hyprland/config.nix
Executable file
227
home/wayland/hyprland/config.nix
Executable file
@ -0,0 +1,227 @@
|
|||||||
|
{
|
||||||
|
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&
|
||||||
|
'';
|
||||||
|
}
|
10
home/wayland/hyprland/default.nix
Executable file
10
home/wayland/hyprland/default.nix
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [./config.nix];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
316
home/xorg/bspwm/config.nix
Executable file
316
home/xorg/bspwm/config.nix
Executable file
@ -0,0 +1,316 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
}
|
18
home/xorg/bspwm/default.nix
Executable file
18
home/xorg/bspwm/default.nix
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./config.nix
|
||||||
|
./script.nix
|
||||||
|
./xressources.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
xsession.windowManager.bspwm = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.sxhkd = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
92
home/xorg/bspwm/script.nix
Executable file
92
home/xorg/bspwm/script.nix
Executable file
@ -0,0 +1,92 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
102
home/xorg/bspwm/xressources.nix
Executable file
102
home/xorg/bspwm/xressources.nix
Executable file
@ -0,0 +1,102 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
}
|
68
home/xorg/default.nix
Executable file
68
home/xorg/default.nix
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
{
|
||||||
|
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
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
27
hosts/_/cfg.nix
Executable file
27
hosts/_/cfg.nix
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
86
hosts/_/home.nix
Executable file
86
hosts/_/home.nix
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
{
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
}
|
166
hosts/_/host.nix
Executable file
166
hosts/_/host.nix
Executable file
@ -0,0 +1,166 @@
|
|||||||
|
{
|
||||||
|
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";
|
||||||
|
}
|
112
hosts/asgard/default.nix
Executable file
112
hosts/asgard/default.nix
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
|
||||||
|
{ 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;
|
||||||
|
};
|
||||||
|
}
|
14
hosts/asgard/home.nix
Executable file
14
hosts/asgard/home.nix
Executable file
@ -0,0 +1,14 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [];
|
||||||
|
stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
zsh = {
|
||||||
|
enable = true;
|
||||||
|
# FIND SETTINGS FROM /home/cli/zsh
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
32
hosts/iriy/default.nix
Executable file
32
hosts/iriy/default.nix
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
48
hosts/iriy/hardware-configuration.nix
Executable file
48
hosts/iriy/hardware-configuration.nix
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
# 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;
|
||||||
|
}
|
25
hosts/iriy/home.nix
Executable file
25
hosts/iriy/home.nix
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
{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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
33
hosts/valinor/default.nix
Executable file
33
hosts/valinor/default.nix
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
56
hosts/valinor/hardware-configuration.nix
Executable file
56
hosts/valinor/hardware-configuration.nix
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
# 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;
|
||||||
|
}
|
41
hosts/valinor/home.nix
Executable file
41
hosts/valinor/home.nix
Executable file
@ -0,0 +1,41 @@
|
|||||||
|
{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";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
d0 = {
|
||||||
|
outputs = [
|
||||||
|
{
|
||||||
|
criteria = "CEX CX133 0x00000001";
|
||||||
|
mode = "2560x1600@59.972";
|
||||||
|
position = "0,0";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
criteria = "eDP-1";
|
||||||
|
mode = "1920x1080@60.020";
|
||||||
|
position = "2560,0";
|
||||||
|
status = "enable";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
41
modules/battery_monitor.nix
Normal file
41
modules/battery_monitor.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ 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
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
13
modules/default.nix
Executable file
13
modules/default.nix
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
./secret.nix
|
||||||
|
./security.nix
|
||||||
|
./udevd.nix
|
||||||
|
./networking.nix
|
||||||
|
./fonts.nix
|
||||||
|
|
||||||
|
./battery_monitor.nix
|
||||||
|
];
|
||||||
|
}
|
34
modules/devshell.nix
Normal file
34
modules/devshell.nix
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
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"
|
||||||
|
'';
|
||||||
|
}
|
34
modules/fonts.nix
Executable file
34
modules/fonts.nix
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
enableDefaultPackages = false;
|
||||||
|
fontDir.enable = true;
|
||||||
|
#fonts = with pkgs; [
|
||||||
|
packages = with pkgs; [
|
||||||
|
ibm-plex
|
||||||
|
lmmath
|
||||||
|
openmoji-color
|
||||||
|
material-design-icons
|
||||||
|
|
||||||
|
noto-fonts
|
||||||
|
unifont
|
||||||
|
];
|
||||||
|
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
allowBitmaps = true;
|
||||||
|
defaultFonts = {
|
||||||
|
monospace = [ "IBM Plex Mono" "Openmoji" "Material Design Icons"];
|
||||||
|
serif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons"];
|
||||||
|
sansSerif = [ "IBM Plex Sans" "Openmoji" "Material Design Icons"];
|
||||||
|
emoji = [ "Openmoji" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hinting.style = "medium";
|
||||||
|
# hinting.style = "hintfull";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
modules/greetd.nix
Executable file
16
modules/greetd.nix
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = rec {
|
||||||
|
initial_session = {
|
||||||
|
command = "zsh";
|
||||||
|
user = "sora";
|
||||||
|
};
|
||||||
|
default_session = initial_session;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
67
modules/networking.nix
Executable file
67
modules/networking.nix
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
networking = {
|
||||||
|
|
||||||
|
hostName = config.hostcfg.hostname;
|
||||||
|
useDHCP = true;
|
||||||
|
nameservers = [ "1.1.1.1" "9.9.9.9" ];
|
||||||
|
supplicant = {
|
||||||
|
"${config.hostcfg.wlp_if}" = {
|
||||||
|
configFile.path = config.sops.secrets.wifi.path;
|
||||||
|
extraConf = ''
|
||||||
|
network={
|
||||||
|
ssid="test"
|
||||||
|
psk="12345678"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="WIFIonICE"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="JR-EAST_FREE_Wi-Fi"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="JR-WEST_FREE_Wi-Fi"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="tabinohotel"
|
||||||
|
psk="tabinohotel"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="comforthotel"
|
||||||
|
psk="comforthotel"
|
||||||
|
}
|
||||||
|
network={
|
||||||
|
ssid="sotetsu-hotels"
|
||||||
|
psk="sotetsux"
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
wireguard = {
|
||||||
|
enable = true;
|
||||||
|
interfaces = {
|
||||||
|
wg0 = {
|
||||||
|
ips = [ config.hostcfg.wg_ip4 config.hostcfg.wg_ip6 ];
|
||||||
|
privateKeyFile = config.hostcfg.wg_pk;
|
||||||
|
listenPort = 1515;
|
||||||
|
peers = [{
|
||||||
|
allowedIPs = [ "10.10.1.0/24" "fd10:10:10::0/64" ];
|
||||||
|
endpoint = "vpn.helcel.net:1515";
|
||||||
|
publicKey = "NFBJvYXZC+bd62jhrKnM7/pugidWhgR6+C5qIiUiq3Q=";
|
||||||
|
persistentKeepalive = 30;
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
24
modules/secret.nix
Executable file
24
modules/secret.nix
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:{
|
||||||
|
sops.defaultSopsFile = ../secrets/common.yaml;
|
||||||
|
sops.age.keyFile = "/var/lib/sops-nix/age-key.txt"; #opt/nixflake/secrets/age-key.txt;
|
||||||
|
sops.age.generateKey = true;
|
||||||
|
|
||||||
|
sops.secrets.wifi = {};
|
||||||
|
|
||||||
|
sops.secrets."${config.hostcfg.hostname}_ssh_priv" = {
|
||||||
|
mode = "0400";
|
||||||
|
owner = config.users.users.sora.name;
|
||||||
|
group = config.users.users.sora.group;
|
||||||
|
};
|
||||||
|
sops.secrets."${config.hostcfg.hostname}_ssh_pub" = {
|
||||||
|
mode = "0400";
|
||||||
|
owner = config.users.users.sora.name;
|
||||||
|
group = config.users.users.sora.group;
|
||||||
|
};
|
||||||
|
sops.secrets."${config.hostcfg.hostname}_wg_priv" = {};
|
||||||
|
sops.secrets."${config.hostcfg.hostname}_wg_pub" = {};
|
||||||
|
|
||||||
|
}
|
50
modules/security.nix
Executable file
50
modules/security.nix
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
# security tweaks borrowed from @hlissner
|
||||||
|
{
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
# The Magic SysRq key is a key combo that allows users connected to the
|
||||||
|
# system console of a Linux kernel to perform some low-level commands.
|
||||||
|
# Disable it, since we don't need it, and is a potential security concern.
|
||||||
|
"kernel.sysrq" = 0;
|
||||||
|
|
||||||
|
## TCP hardening
|
||||||
|
# Prevent bogus ICMP errors from filling up logs.
|
||||||
|
"net.ipv4.icmp_ignore_bogus_error_responses" = 1;
|
||||||
|
# Reverse path filtering causes the kernel to do source validation of
|
||||||
|
# packets received from all interfaces. This can mitigate IP spoofing.
|
||||||
|
"net.ipv4.conf.default.rp_filter" = 1;
|
||||||
|
"net.ipv4.conf.all.rp_filter" = 1;
|
||||||
|
# Do not accept IP source route packets (we're not a router)
|
||||||
|
"net.ipv4.conf.all.accept_source_route" = 0;
|
||||||
|
"net.ipv6.conf.all.accept_source_route" = 0;
|
||||||
|
# Don't send ICMP redirects (again, we're on a router)
|
||||||
|
"net.ipv4.conf.all.send_redirects" = 0;
|
||||||
|
"net.ipv4.conf.default.send_redirects" = 0;
|
||||||
|
# Refuse ICMP redirects (MITM mitigations)
|
||||||
|
"net.ipv4.conf.all.accept_redirects" = 0;
|
||||||
|
"net.ipv4.conf.default.accept_redirects" = 0;
|
||||||
|
"net.ipv4.conf.all.secure_redirects" = 0;
|
||||||
|
"net.ipv4.conf.default.secure_redirects" = 0;
|
||||||
|
"net.ipv6.conf.all.accept_redirects" = 0;
|
||||||
|
"net.ipv6.conf.default.accept_redirects" = 0;
|
||||||
|
# Protects against SYN flood attacks
|
||||||
|
"net.ipv4.tcp_syncookies" = 1;
|
||||||
|
# Incomplete protection again TIME-WAIT assassination
|
||||||
|
"net.ipv4.tcp_rfc1337" = 1;
|
||||||
|
|
||||||
|
## TCP optimization
|
||||||
|
# TCP Fast Open is a TCP extension that reduces network latency by packing
|
||||||
|
# data in the sender’s initial TCP SYN. Setting 3 = enable TCP Fast Open for
|
||||||
|
# both incoming and outgoing connections:
|
||||||
|
"net.ipv4.tcp_fastopen" = 3;
|
||||||
|
# Bufferbloat mitigations + slight improvement in throughput & latency
|
||||||
|
"net.ipv4.tcp_congestion_control" = "bbr";
|
||||||
|
"net.core.default_qdisc" = "cake";
|
||||||
|
};
|
||||||
|
boot.kernelModules = ["tcp_bbr"];
|
||||||
|
|
||||||
|
# So we don't have to do this later...
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
11
modules/tlp.nix
Normal file
11
modules/tlp.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{...}:{
|
||||||
|
services.tlp = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
START_CHARGE_THRESH_BAT0 = 75;
|
||||||
|
STOP_CHARGE_THRESH_BAT0 = 90;
|
||||||
|
CPU_SCALING_GOVERNOR_ON_AC = "performance";
|
||||||
|
CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
15
modules/udevd.nix
Executable file
15
modules/udevd.nix
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
systemd.services.systemd-udevd.restartIfChanged = false;
|
||||||
|
|
||||||
|
services.udev.extraRules = ''
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0127", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0118", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0106", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0128", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="010a", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0102", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
SUBSYSTEM=="usb", ATTRS{idVendor}=="2104", ATTRS{idProduct}=="0313", GROUP="plugdev", TAG+="uaccess"
|
||||||
|
'';
|
||||||
|
}
|
33
pkgs/custom/repalette.nix
Normal file
33
pkgs/custom/repalette.nix
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub, makeWrapper, stb
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "repalette";
|
||||||
|
version = "849e1857cc985968c5dd08377fff27b258931937";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ziap";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-Q86W9/xwFjViIyvnCQfwyQjzrfC122+KK6A3mwJPXOg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
makeWrapper
|
||||||
|
];
|
||||||
|
|
||||||
|
makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
cp ${stb.src}/stb_image.h stb_image.h
|
||||||
|
cp ${stb.src}/stb_image_write.h stb_image_write.h
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make ${pname}
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
mv repalette $out/bin
|
||||||
|
'';
|
||||||
|
}
|
31
pkgs/custom/simc.nix
Normal file
31
pkgs/custom/simc.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitHub, wrapQtAppsHook, qmake, qtbase, qtwebengine, qtwayland
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "simc";
|
||||||
|
version = "ae04662fca7cad8bf218cd8e43ab05631caad758";
|
||||||
|
|
||||||
|
src = fetchFromGitHub rec {
|
||||||
|
owner = "simulationcraft";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
hash = "sha256-mTo6YTgZMpfyWvdU1JEEmfmBjJlZwAgja1iliOem7mM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook qmake qtwebengine qtbase ];
|
||||||
|
|
||||||
|
buildInputs = [ qtwayland ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
qmake simulationcraft.pro
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
SC_NO_NETWORKING=1 make -j$NIX_BUILD_CORES
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
mv gui/SimulationCraft $out/bin
|
||||||
|
'';
|
||||||
|
|
||||||
|
}
|
64
pkgs/custom/vosk-lang.nix
Normal file
64
pkgs/custom/vosk-lang.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, unzip
|
||||||
|
}:
|
||||||
|
let vosk_model_wrapper = {name, version, hash}: stdenv.mkDerivation {
|
||||||
|
name = name;
|
||||||
|
version = version;
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://alphacephei.com/kaldi/models/vosk-model-${name}-${version}.zip";
|
||||||
|
sha256 = hash;
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [ unzip ];
|
||||||
|
unpackCmd = "unzip $curSrc";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/usr/share/vosk-models
|
||||||
|
cp -r . $out/usr/share/vosk-models/${name}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
small-en-us = vosk_model_wrapper{
|
||||||
|
name = "small-en-us";
|
||||||
|
version = "0.15";
|
||||||
|
hash = "sha256-MPJiQsTrRJ+UjkLLMC3XpobLKaNCOoNn+Z/0F4CUJJg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
en-us = vosk_model_wrapper{
|
||||||
|
name = "en-us";
|
||||||
|
version = "0.22";
|
||||||
|
hash = "sha256-R/moHrsDnbsL0xkXXDasOTwIk7eWwrYwPmTPWMJ7afY=";
|
||||||
|
};
|
||||||
|
|
||||||
|
ru = vosk_model_wrapper{
|
||||||
|
name = "ru" ;
|
||||||
|
version = "0.22";
|
||||||
|
hash = "sha256-hNniz2MkSA5Odo2n11Ei/RJQ31RJuJ2PnZQX7Hon+yM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
small-ja = vosk_model_wrapper{
|
||||||
|
name = "small-ja";
|
||||||
|
version = "0.22";
|
||||||
|
hash = "sha256-76CS0oAVOndhXp4MfXKD6T5gDePRnTvsaGxX7xnVLqw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
ja = vosk_model_wrapper{
|
||||||
|
name = "ja" ;
|
||||||
|
version = "0.22";
|
||||||
|
hash = "sha256-r2INuBXvcW+QNV+REJK6DHRU2R15Ps3Y3uLfY0Lg6cw=";
|
||||||
|
};
|
||||||
|
|
||||||
|
small-de = vosk_model_wrapper{
|
||||||
|
name = "small-de";
|
||||||
|
version = "0.15";
|
||||||
|
hash = "sha256-t+U8kLHwo4RW9M1is2bs1YgDzZfNQrBkOOLBMXE9XkM=";
|
||||||
|
};
|
||||||
|
|
||||||
|
de = vosk_model_wrapper{
|
||||||
|
name = "de";
|
||||||
|
version = "0.21";
|
||||||
|
hash = "sha256-JFBgdW+Ng5T8WxNjnPIgt2ICBXlfMPN7aCOHjU9gOyo=";
|
||||||
|
};
|
||||||
|
}
|
22
pkgs/custom/vosk.nix
Normal file
22
pkgs/custom/vosk.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchurl
|
||||||
|
, unzip
|
||||||
|
}:
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
name = "vosk-api";
|
||||||
|
version = "0.3.45";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://github.com/alphacep/vosk-api/releases/download/v0.3.45/vosk-linux-x86_64-0.3.45.zip";
|
||||||
|
sha256 = "sha256-u9yO2FxDl59kQxQoiXcOqVy/vFbP+1xdzXOvqHXF+7I=";
|
||||||
|
};
|
||||||
|
nativeBuildInputs = [ unzip ];
|
||||||
|
unpackCmd = "unzip $curSrc";
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/lib
|
||||||
|
mv libvosk.so $out/lib/
|
||||||
|
mkdir -p $out/include
|
||||||
|
mv vosk_api.h $out/include/
|
||||||
|
'';
|
||||||
|
}
|
29
pkgs/custom/voskcli.nix
Normal file
29
pkgs/custom/voskcli.nix
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
{ lib, stdenv, fetchFromGitea, buildGoModule, makeWrapper, custom, alsa-utils
|
||||||
|
}:
|
||||||
|
buildGoModule rec {
|
||||||
|
pname = "voskcli";
|
||||||
|
version = "5eedba33b96dcd3826010cbd12e404cbfb544383";
|
||||||
|
vendorSha256 = "sha256-8l2i/fhN+2q+tjHpWdjRmesDDBBpxEPrTB8IE5Cr0I8=";
|
||||||
|
src = fetchFromGitea {
|
||||||
|
domain = "git.helcel.net";
|
||||||
|
owner = "helcel";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = "sha256-TeCUtHuBGVyV+YmY3MGaf1jydTWgZITUgmUZzy4wZLU=";
|
||||||
|
};
|
||||||
|
preBuild = ''
|
||||||
|
export CGO_CFLAGS="-I${custom.vosk}/include"
|
||||||
|
export CGO_LDFLAGS="-L${custom.vosk}/lib"
|
||||||
|
'';
|
||||||
|
nativeBuildInputs = [ makeWrapper ];
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
install -Dm755 $GOPATH/bin/voskcli -t $out/bin
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
postFixup = ''
|
||||||
|
wrapProgram $out/bin/voskcli \
|
||||||
|
--prefix PATH : ${lib.makeBinPath [ alsa-utils ]} \
|
||||||
|
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ stdenv.cc.cc.lib ]} \
|
||||||
|
'';
|
||||||
|
}
|
18
pkgs/default.nix
Normal file
18
pkgs/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let self = {
|
||||||
|
simc = (pkgs.qt6.callPackage ./custom/simc.nix { });
|
||||||
|
repalette = (pkgs.callPackage ./custom/repalette.nix { stdenv = pkgs.llvmPackages.stdenv; });
|
||||||
|
|
||||||
|
vosk = (pkgs.callPackage ./custom/vosk.nix { });
|
||||||
|
vosk-lang = (pkgs.callPackage ./custom/vosk-lang.nix { });
|
||||||
|
voskcli = (pkgs.callPackage ./custom/voskcli.nix { custom = self;});
|
||||||
|
|
||||||
|
pythonPackages = {
|
||||||
|
# example = (pkgs.python3Packages.callPackage ./custom/example.nix { });
|
||||||
|
};
|
||||||
|
nodePackages = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in self
|
26
pkgs/overlay.nix
Executable file
26
pkgs/overlay.nix
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
[(self: super: rec{
|
||||||
|
openttd-jgrpp = super.openttd-jgrpp.overrideAttrs (old: rec{
|
||||||
|
version = "0.53.3";
|
||||||
|
|
||||||
|
src = super.fetchFromGitHub rec {
|
||||||
|
owner = "JGRennison";
|
||||||
|
repo = "OpenTTD-patches";
|
||||||
|
rev = "jgrpp-0.53.3";
|
||||||
|
hash = "sha256-xpo4E07ifWUZy5z78Fwm1SpLP3wUBaBreZYbJuiNH3w=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
yarn-berry = super.yarn-berry.overrideAttrs (old: rec{
|
||||||
|
version = "3.6.3";
|
||||||
|
src = super.fetchFromGitHub {
|
||||||
|
owner = "yarnpkg";
|
||||||
|
repo = "berry";
|
||||||
|
rev = "@yarnpkg/cli/${version}";
|
||||||
|
hash = "sha256-5QEnFalOEMs1bKYDYpFGnF1YwiGuW3ZxstyJAjz1/KQ=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
})]
|
93
secrets/common.yaml
Executable file
93
secrets/common.yaml
Executable file
@ -0,0 +1,93 @@
|
|||||||
|
valinor_ssh_priv: ENC[AES256_GCM,data:+eeVw/05eU5VW29KhT9+eGXcf+Ola2n0ISbj5Lzyj/bB/8OWDGXkqxWjgZv3cbL9v265AbyqcHfYX94BynTtMITfM6Cwz3D0EcUmIyP3rgjrJZdnksLu41a30dUjLnfVqiPwZaxxccZb6/JNAgXrg4hjkTsrCiZeSGpPl2VqECVt0tfJ3nmJwX+7C95QMvzxCw5S6CbN53AZBPmqBqzmxperc0LegMR+2lXviuqTEL2ZH3mzo0YeJQS/yCVVQL6TWx/wyM4fKD4kavg07sCAoj7E4V9RL4DY75uIbEz2+hvw9yE4nCtg2UgLu2hmragbH5ZseD/BWu+d2JGQeAnSLJBr6lZj/LGsiCe5vdnNqh2igZ9EI8Bhjv2ed2ajAxPYxJ1cAT9noxx6E+KU6sjWaSeKhLsnO/X3Ht1ADiUP4i/j39aE/4U7Gmk8Gs+3LBF0FXS88M06HV1cCKkd8RLkD0v6uKpOd6deOkKZRRGT8XzrF6JGY6fMXksF7GCqYqKhHEvU3nd3MQ/XjZuSycIr6NKdo31iezwjFCELUf2XQCIEtLe77vxfZQQ9lhddLhM7FJVDwlIuVLjN0lzrUoCywOZOG/ipenkCLDD5JmPqbkgyqFEIKpLW3weqlIFPTQblwaW724kKB80E+0lvW+0mG8oiyeqBuFufhtaUEwmg93aCzPW7wJuP7rzBm2i0FPl4Mg0f1d7iJtrHaIcnncw7vzeo+LOq1zvlcCVO3lt/JTRhTbxMEDzzQvvuRnFVExQbNCd9BKErpZAIia/l+5/PYClqapQYuBsx+Y4jUC/ct6PicSz/YtdXgTQc3jqmsLJ46R7Y3qkeaYJvsFDbTtjG1GlQdisNPZEhtkWgvyIcxl62/SSqLJr+ZxWh2ldToVpnX4g9JKcHbHyvsD/JJRsSD8fHlGBlnpXpL4onkQNbtZQ9HUBpaz6rQvp7klM5iI1trpdnv8nf3H0G54mz5c4FY81VIXcy+2nEgadhWNdKlI0rjruvXyJKUvCPmh3ZyPZPL+7rkLI+ywj+0Gz7QGKcDsOy2L1UsHSpCJGRe0ZJO8vuq1relbMF2pz5eQHa+9S3NNG/v5WNWVw4BcCaX8tfuac467mZ+sr2CKAKn+ojhBAkSVWHWg95bURX1NUpjw6d2dPSJbLjen7FDZ1NiZsvW+eNIPnuaOAIoNKW9H2XXmXagJASOnwd+BwNWWB7APlQz/YfQycDG4TjAWCg22aoTagmXoPtiqNqo0gq7NljSbq5EY2hn1RUV7umMR/cqY4XmdBsVqSwnjBtuHGQArn2QRbAYJcHkrxpAzMfJSWNx176ARBFhQDITpI8Y2ROyF+tZaOcNOYuXfAjktV7Elgt5dNypxdo4a/qFt0IkjxRF8WGGTKU3eRnC0EvaVc3xifLIcjrihqiVnB3jb58pT7lSeTH8pnuTS2+jOVphvok+8ddKd+Q5Po2yw8e0PswzPK7dYdMjNNKhbg/W41Bxf5ZKWxGZjxMbwNndzPext/+QWZqTJDw+Cf3rCMpaAU3nRSW7b5TD9fYrmajSbkzHBy9ggt1y+IofLEWlsMkiisxqnggsbVyDlxMb2q5iOFYMWtG/VPE6e5yDUVlwsd1l+Mv+vASCJW0J2i5BJzpYVTnazcQabbVeK/t3t8oA7/aO7omZxbPYDcfBAfc8+ibx3iBW4tIrwe0EvsqkdhTt4C5jpxynfBnvUL4+O5IYFSyz29EKNPZ+2RQti6tMCZYi4/IDBg93WQHGMrUd0pyANwP0vYVH8QGtD3X94nwOjoJO3GXqD3qcGsCrmBmmJtHTYBZ39KZpxxujsYDeccUuRbV9Ivq9vydkjO4fkIKCtlSFWRtkgU6cl4IxoO7alRDvJzadWrBdW5k3ubZG3qV05+iV9KSdh520YrRzxGb0yd8Ii0pgJU38oEywWyLUL9+/Ov5UZALtflS90cLANodWfzNtAxcZP6C+XR3aRyI8dZp5ZcOwwbj9aieSImLDwnC0l1cdtxSu8Iwm29/yeh4v4JXl6t1bBsTkyCoirQnkyBC3lHLCbwE3vfB34BTcChR+qWhiM92rnr6be8M89AtnEfNsdpZAWD96craURM8wfmMh9tM66gjjHyYuJbi1186x4LAtST4VZMHnw6NoG3XK5sMoVZq8jFWfUqrpS6ZMRu1UV0qL1jNbcZifwOlDgmoFXhFMZ6CGax0Up+cFPI2BJ7wGQwsTszifSXah/XgFhrOWgu9Hs5YJYbTxs26yEhG2K9j1J/4dtNdowmPI05iMynybTzrQkB8T/lVE5w9o1wumNhftyXie10+Nc8U1Ok3JugGG1CoM35eLAPTA8vHZzj6819apBCtw2vGeHio9k27164gHhsZUdAhyfC8hxmR/V857ipCchBNGg6aQOh2hVs9+4mNaap1UXGlAOJZMp/O7BNknYi6LVuGOtiS01W86pgPtCrbb8/24RHcybSLXhS4spTDf/LfBHaEWiklQHyq7YU6hsTOcmTkMNLCFuNVbPXPFze30KWtPhyZyQNYPqEwo8dZ8InN3RNBaYCMgYel7kNcmCO/0HlL1Kqjc4i2mguFiw23Tz0YRmUpwDjEe9gfOjlm9EZQs0GQQyB2gNfaoH1oyiM5yvQ9MrY9OADGpos0334ZqW9mykUpjkhrCWKLmVLAzWejbqMw1ZDq7FRa+l6Uyt+2XFPar7dta/TsWYKv6kTqoz1JHMwf5EoGEgCszcwnqkcqd5T9NHoVNwwpkEN/7axF0OqT25NSpXkAcacSHo70998jL3zbdKFVamUmpF/hN6ioniJyKAelESPym7KpjZKBEsHGTzU30t1GgsGlYUwtR07O5FnRVViDiMyQHYAq1PXa1EbCS0b7bbdMYGcExJzHvlT8VmeKnJ1RoOvKWyil2habXd+TbxEWtfAOuWtJzLYwXWKPppsq/EwKxUGNla01hVrfAbm3QNP45gDGFZ0+piA8PLNq6PNFoSlINc/6/Z3WaENpGhxL0mKS2IS/d76AzHjUV+Hw6ylFUdYEjAPp2lR5woslQnxpO5n3oKpFl3jevzJmcNJKuZZEYzGU1leyddx30hzmVMfTliybA5I1GVTIigbdKwuRWL8uYQA1mHUeO5pEPGMv1X4GcoT5BDrdcFAaU6vjhXbjVhCNcPBbjxKHisfOBUr6nx1M/n3AHndhilimrPP5adOGpG2CFqKQtINb0UmpqPQJRB488tuVE3fTPgqNi+PEES1tIumBVdt5m95p+BNHPyVwLloMeGkCVqsTid2251NSpFd/n0BVAOR0zZP1hGRRzgU2tNPK4VAVuvuPQdPw7ZUbVSe/VvphOLXAG72M27W9IbLrsnnmaNeh5ur/9fl5yI52py53z0Zrp6WNociqyeC03xzPAwmYF9BFMG+j9Kto2OfbxOCUdWxhlCGDuUqODcAsvfKNQddq4Fha0HSLjvGOtfEuWmJNTzmfIeO3vg==,iv:pTQbb6nLHJ8BXTIYdiSe4vc5+1hpNuHhQhDkIAsZ9HI=,tag:jyO99VXSsCQlQD+Hh+gtvg==,type:str]
|
||||||
|
valinor_ssh_pub: ENC[AES256_GCM,data:c9s+tEjn+aZAjsxU7+dWmKLVc3dFdtna3ilDJrEb4k9TToyYY5VYEW6exxpbBl6MMAe98/KXgLPI5kTmq3gCqQe2dBnOB3C4f212DOmVyoYGj4AiqzU+Oo0pfg6DRw5BCjYGY7B+zJopqQgDvlIRTdJzAhQe3ZRuJFXKupVpJ+pEx56bo/memAf+BBZgIXChFrYadqze90rMmlw0D5V3L3lmTnqjoniXTXj5QoHh2f873qFAQ72+fSNlJCkasNavSiXKWVPcS3xMmgfiaffkqdO6pte1m/IgevKkKfciIOBbKskgsTZdy9iPGdELLH1wMzO45+vX3h2ATy/v5Hqq/yWlrDbvFFUKoaCb6n7/5O3MhaLwa78Uk09Dvbno2Wb8C5BBZlXBZ/BSooosDFUG/2IG8nKM+FrHJvtwgugCGa3ZQYKQr6iJ9g6tN83YRTEgKTCsZPnSNg+vXSBAib5ABHl8z7oHVB2hJFBnEn7Im99b/GRsCRD+/y9Y+4wF8nzznJgSrqInM59//EJHmwOWrHzSIpyV+cY67cCUXlkYB/ufx510XtEjijr2SOJXKmdAmme0EICkP/LY80Yrsoz2ee/A6w6ZP3HDHuxUVNeGNJvdoFhIyt9pEiRBwl7K2XKYCh/lRiE6E19EM6SmwplEM0+uAWTY+NUKZba2JSqFZLMlBFfWSLHgOHFLPatkZRUTkoNa4BOhtUlAYfuN/uHHimnL7H4O814OnjU5exqHca63VkDDhA==,iv:YT0ZN/Rt6CbMSFU1wZDbrenlwXCh7e4C06YbVL5J/VU=,tag:BqVtzOC1ViEkHHTXbgDJHw==,type:str]
|
||||||
|
valinor_wg_priv: ENC[AES256_GCM,data:1izZF+6G2Uc2MRBH56A07lexZEkyOiiFI4zltyoZco0+Y9EPhH1nJ4sWzs0=,iv:OIBIQvMsrq93/o0r8V6eSzfU63xtCzgQFf8NKXsjRk0=,tag:wdcQOfdaoxe7Vw0QWmngwA==,type:str]
|
||||||
|
valinor_wg_pub: ENC[AES256_GCM,data:noAhVF91HUwpU3lHl4knlmGkV0Zjbuc4TQhFhF7HjCbv1hdSycO17TDfgcw=,iv:82v169pOoCOwnOaqPTOMvtvOUJJEcXjPI9BzogC+UaI=,tag:NHIcOYD5mSnZ6kwZBAnXGg==,type:str]
|
||||||
|
iriy_ssh_priv: ENC[AES256_GCM,data:tLViFTWE62aJ7sCHVs2OxqewFI4QQVEoMdWV6l26FBFlbP9sQC0IWhtwkYVeQ7yFRlEjiB2RWcxG9KkLZm55JqAG6dX6AocG341u68PPWgcWYxYxI2056e/NYN2dlNE9SX0ImkT41/zQIG4b/7xRsFlBKJ0LUpbzWg6Bmo1Giu66NZhLLIkVRPqH7KzvUlyBiCAiIuMlVIBomxKwmeNn3SnaVDrfCbqhXwiJvGHZE09mtZnZMVd9vIo89+4PReykVUjEI04QhnSzv+ET62yw1AOk4k7yBWykhMi+KirlNL8qoHY/HSOaqndQpHc/GzCjClcWHeBjsouTnqx7YjZ77WpiVKuFIVNK18fZIwxIqW0cwftJpfMTlOfGIhfAjIebxOc1G7tAON7BWSZQNBtM9aQ5qmF5wwYKj1m2NxtqzD6Vwhd2XubgzFPCssYs/WZcF4NeJwYE9077NrMeLjE+kP8d7IJKwDuXTA0zldFaRURzKCy+NFnHIle/Bw5V08w/FeJsWAT7SeJM2V9yGYaysBTly2eh0YtW0vHdoijhZQ95jAD9ixfHiZ2Uz60F5L2s8DJ58i46OShT6ItJ98NeSxFT/cOIZQ7jd7mxmgZdQc4uXBk2ly9zlF86gti9MLdvbugkfLKnrCoHLec/g5wWyowRfriDgqzFgzcj0tGshhLr/Y7GsIj6ZzMCbHPhEz9oEqUR7tVmBXfyEisCBdujYaUByl9EgTnLx505LpuaqYJuiPq7YULCndye3EHdQWSiVQA6ncPpcqnKgAyqsBlRXa/2dsr4XJmdIOHTRQ11m+8jJ9R6gmiGIdjj7hq/kr9tCZWPSF/Idz2ml04nw9zjlroeq2CmiPAVskKmJohpWvrD+J5tz6pQSITbiQWnq+W2/7BT5LvkIewwegyckP2hvCpnsHvT1llD6gzf5kNkoNvHnrFOjPa83WLPUO20rykyuD1+5s04vw4j2+tcKEll54kB757yWUdn7af+vs7uvthc2Wen1vXXPHoZnDVDddO2vDsNMRCl1w6NE9Ey+bsLhgZ5hwvwi+i/cGg6XHoFtRMS8PKk7kpRqS5oTMxbhI6uVy2BLz2Mtot6VxA29NV9fngxoD6VU8bcen8P6Tt+QJs9FqN5Pik3mLuaZEp8xiarSe8vDoLHv+UZVLFgDc+6LegYUttM0vHf3oKBHSX8qduJOZrZ2UlgcU4b2AKfGkpRVg4tKb73kCZi8D9R9aMA3grMK2mEPGKjqoT0DbOa+CCpC3DGUg2LkZl4jvFMfX82lU86cQscnHNh0ajFgmxmmmrDiLVpZLRroslEntuvXmj3lQgZmsyrGdQ3Wy7W2TvcbqcEt095hU9jJu1dlj73ofP+ltxxF706//OU1ToTqKOoPXhwQNmGhHLdBOflyXy/SMF5Ymvelc6FI6ct9h7y8P955ZyX/IFurX0/XUvuxtDqb8xq5Jm378W8Wuh9Zq0FRwfcagEUMo8auqzVOSHx9yB60qsLoi3WEH54/CClwOelvDhD1nCQ9Dxr4oYmfIiRUcvYDlCvgwc8ZKWb+8eTTA7+aVEZ9HhIhV2yovykYcWE8hPFUITA6lUhdEtUotq4T9UofJ8S79U6DFCUX1BdMYGKSMxOPuQ0liviVh2pnXIN+4DH0OOz828dGmb21ClkwT+kvA/80XeSxrU59XT1IGRoNjPCRxZzuLnsfCA5rrIarz8y3gbL+CFY4rsoPTWfqWR8HUg7pUapdG/FiW4HCfK+BwtLowaxyF0Kj+eTf+1EPx7ReYiHo6Yzes3XVPJid0e/DRkKqpEHSv/xQssQlq3Zqxfjg6DsTQ/dpA05VSZowe4VxouVpV2kib0HZQt77AtR1y9bznED7BDM4X2f95PiRMeYKvSqCHkhakrMCmPlboFJn5vpsvlf/k3v3zpADfwvx5DZWhRYg9WfmG2XSEXrdIHKcDqQME4Ka/yHNBvYuI3SYvrUusZcxjqPXctSRCGGEd9zfGbkA01BQ2anA/xLvWQMzgnKDHRLpQ2cQcEUi3nrrODHaYu/myo5XJDMncPVUidfC/XrnqlalnI3MD1o58fBV7UA4AO2aLEZf/59Qp6NtdUQBppdNiFqXBP3841hAg6W991Lau24S8Z5e7zAjfu/16JYA/M1NeqSkLQOFVibs6SJRIkPm4JPw+sBAwPLmZyjvlbYdk6686vRa4Ibnl3WkaozIqpioyLyujwNfv2OAK6dN26PT+xM7L/3s5xhP0K5TFDKyzqvjjI0uFP07h+xiXZuEl7nP3EfzWT8/il4aSr284vZ9Aqd0FsgfuNPuo+A12aUBmSUjuy/ComwB+/vxbkNlWtMPvkCfdS1eXImigxm5IVQ30Ba3gNTmPQhUUw0AkQPd68g5PZDN0iIx4APhXOowBUEAy/YNTGC2MHUDGo3lWNXEBbE457x/Kq/CleDlHHG2lBAPBHBC+HxdsnyvaF15cmg69IIM5YU08cILY1sxQVDXhIWBlKg9pjZU9BJVR6cdRAXccL6XXRD3P5rJUkyBS6SmTmkXnQetrrQVt07lzfApSErslPqaIGEAuPTT7brQFylvi0eWo2mXDF9oBr1BGTUEGaswz8q8DUuBXA0U3apJoFoDQbJk0uRwv0CrdK9kjGHzf4wntf3qNc6fH0foEvpMaLxsBUyvL2+2WZYNz2+rDjgOtNO5yAd4ILL4JqZKcNr1zymEtFU4WGTOHUeT7no345NZjoTn88Y+12ApWd1NtPkLfpAkuogAJOUK6LCgLPRDQIkzagGCWjDmfbc18LM2MV/4Us1TdfBzENmTHCsLDhIy7Y6fIwteJ5oUuWhTeB+MdFSO/WBhS/v1rjHfE75GXvQBZrlkknKaDwS1sJaet/0OBSWK61Sk2821V9E6qSS6U0qSNQbwlVjG4JMCXsNITICTR+uTa2cUk+PiDe6uZohu3M2B8FiiH9/XNKpyywxhCWjz9K+rt59tiHO7MbPCG7Lzi86BtEIZ2B6fFfhCdooZTE4oelhitnH3R4LXUc8kiJ6KPFINbf6yEGnskYP+aEy/3XfR1Miw3LG6+FVTvldDy5EmInPv7Dw8K074imghLYkvcuWtj6qMo+EI4rGoH39OPhqyd3tDgKVDEWOHKE3Ictt2Ci4cxedS/NieqxZf5tUHiO3YZoYyylJcJ5mU0HoVFhtfmg/GsK5mywmt6B20x8XyMBMLolcWYNMzdWgPQ1ieKb87tCgNRIOnPuwZcUGq+L+cLpRR4yhfSYPPao4dG0dxsEQJiSHnRDea71bR7URhJeo6aanwnulYwsuhji+3+XFoY+2e8wrEoJG38se1tafnd1dQHpvfiEYKTSCYuHG3uZWHvlHW06YrAwnrQrMOs+dquuQhMLK4wlsjg0MzsEZRkZ/JopxVRkjS0N1UVDQuzIZMqf6gKoiUVaC5BsjhTwcYQrMx/DFhAnhL2iGwJfuEQrrIjNVz7FLPQ==,iv:cM6fDDPdHQ0Xamv41gKvCQ3Oh70hCRaijXLA8n2rEEA=,tag:7CsbqkiNGv7W5lCrPK3CmQ==,type:str]
|
||||||
|
iriy_ssh_pub: ENC[AES256_GCM,data:zjET00BIFhSI3/3bHO9d99VZLNqpGwWYuqhFvZAk6hYejOFRReCn3WKxXwEJh/IS8PYw1ARnj8DOpfYoRwhdofg+ap2/XMLE858B2cmgGQE5XZNftUryjmBV/WpWVECmAa/Dd6w71MACqZ9TDnt8Kkg5c0jtiGT7zg62/gMcjm/k531y1NDi4e8Jf7MFN9A/5nMpVDCpspZe42N2Lv+w0M2lhDrP4bjYTE9p7Klo27C7lt3vGahlNAjQBvx3o+309+4bSnE2hwTUkgwjN8YPx9qpV8v5XAfPEA3Syz4Qmhi6YpDnEsNPIVrmuGdNhrnprDQHJ8G04bHv51DXURf7Wtf8HSQUNVWXJoGb1jw5xzyiYEBB1Cu6VrRRHytQGtMMbQsIldoW7ISSo1jzRIPWJRMCYrY/4fneoALAXPN6u6VsYM+wtO6/1+A02KIz4uhHvt9c+iv2BNiJrwgHSdH2aY3JaOLEAI+wVQaf47WBfPIjfTzYsDx+kDNiflmBhENNWSqRnrXXLiAG0oVbbz0iuzA+C6w/gNc/t4L4foiMbeF3m9jVfFm3LrCmR1FJrGeA7ZSUAEQ6v55an+IbDMv7P9lUxgd7rsCj2M0elG2iDizV9vziFPOSJkplqzygxXZdo+In0pmRHUfWj06epacZjNdDxJHrakfhmWpGBvrwYRRp4/5p7/k2CToqj6UqedYen0S8M09JseHjNndr9/Oe2yJZYlzRhfq0ZDB1pzdVIiePcQ==,iv:nWWm3vecA7c5pv8bYrjjZk3VLHjKJI7c7ZPkK+pUqU4=,tag:Gfa5Izk6I3s/spA3GkXufQ==,type:str]
|
||||||
|
iriy_wg_priv: ENC[AES256_GCM,data:inng2niJrTXF3ld2T5Xs9t/64oDC8haJhpK1Iajpc60hMHWbenpqGRis7NM=,iv:E/cW6iwjbC3iKulvgBD5vXsjxh9A6nGO7Acr2DXAQps=,tag:CfHqE8u87xGDkzArZg3BnA==,type:str]
|
||||||
|
iriy_wg_pub: ENC[AES256_GCM,data:/4yPr9+NKyU/84L1heVhVa5Mzu6/9bTRciL4V8v31J99Fh5ratZDufNt8AY=,iv:1PzTUsgt1YQPQAywSQqBUVm08++EA9rTdQF/puRJMs8=,tag:ew+bmkZmlj74/mzdBPiSDA==,type:str]
|
||||||
|
avalon_ssh_priv: ENC[AES256_GCM,data:wTAQKXU=,iv:7x+5AnmbNde6lsr+y5MlkR7KoaOUSCGTCVwLECYxPHI=,tag:DkrosVUFtURFBuqQI0LxaQ==,type:bool]
|
||||||
|
avalon_ssh_pub: ENC[AES256_GCM,data:22S09ak=,iv:Q5SU6BQw9j4HMyohQorIeNwGL0xLx8erm10gvPpHmCc=,tag:o02ZcLBSz35sqY9INyOMRw==,type:bool]
|
||||||
|
avalon_wg_priv: ENC[AES256_GCM,data:Urf0hCzMoyo3IiV+0zhiHGhh3vfinrMAFbX9JwFgkXiW+3+AXN2b1b785JE=,iv:TV0zwPssXOEVSxiVo0jZwFCmZJiTSXXXctFXFX0H97s=,tag:YDNaw6dRBcbyMSjXTRIJmw==,type:str]
|
||||||
|
avalon_wg_pub: ENC[AES256_GCM,data:Lc8LIn3UX6mpN8WWum18OVI5LWjBLoW2Qles4Bv/cKP6yOfKTLXPkAYzmFU=,iv:P3UJr5aHkW07HVH0oy500HdsumZpcwwuRdRKx/Efgjo=,tag:U9G9Ja+7mS1x6no+MVptiQ==,type:str]
|
||||||
|
asgard_ssh_priv: ENC[AES256_GCM,data:PflBgd0=,iv:OvKG6iGAtvcx7Nw/CT3mJos69ECG0k5CasZMzg/xWo8=,tag:X9iQY/nDBb5Dz9a+rnN9Rg==,type:bool]
|
||||||
|
asgard_ssh_pub: ENC[AES256_GCM,data:+M50sSY=,iv:fWVBRPlz/ACENHhOJ5zabu0eqOAAH/AH9+HBqUZZQU8=,tag:UPdE0aLWnhj/zlXpKbdoGw==,type:bool]
|
||||||
|
asgard_wg_priv: ENC[AES256_GCM,data:YxlKrwQ=,iv:1xnNKjzkJ0KPglLQy35i3FZ6kaJIgf7u0vT4aciDQI8=,tag:Jg5a/215Ifxj/XXMkSHwMg==,type:bool]
|
||||||
|
asgard_wg_pub: ENC[AES256_GCM,data:7ojknU8=,iv:Rk2otESlMbnVItBS0Xo2JeoSjOiDusUnsMVMw9/4oU4=,tag:FD0S6AfDfvVgvgy0coF/Uw==,type:bool]
|
||||||
|
efir_ssh_priv: ENC[AES256_GCM,data:lfC0LrU=,iv:QCNZWYj1bokbZwVbPanuWzljwTv8k1yRvJJYzXiffRw=,tag:1r0myqf+wk0paT3ODStB6A==,type:bool]
|
||||||
|
efir_ssh_pub: ENC[AES256_GCM,data:s2CtFco=,iv:5ckMLWh/OrANzuN7dChi87jJqp8ulbTuhefteVijVeU=,tag:0Ojvf/u6Vs0tKiPzLnaHuQ==,type:bool]
|
||||||
|
efir_wg_priv: ENC[AES256_GCM,data:jxmtVME=,iv:4SJC/lexF/oxgZp4QDAA+MhLU50K6G7g4IgQmbXl81s=,tag:wC7h+uCgBfGFynIZlyaOng==,type:bool]
|
||||||
|
efir_wg_pub: ENC[AES256_GCM,data:lYCUem4=,iv:FmIo/U0Zo9O2pbiehLLbTe9bWKzRRjEJHP53zXPvhAU=,tag:nQKx887kvTKaoKIXTR+/EA==,type:bool]
|
||||||
|
vpn_ssh_priv: ENC[AES256_GCM,data:RQhNAZg=,iv:PHdobW9HIEITGaIq86YbOFhyf7OTeTzhgjWVKo0YgNs=,tag:EhSAJz8N2OAuHC7sbvBj+w==,type:bool]
|
||||||
|
vpn_ssh_pub: ENC[AES256_GCM,data:K7+ZMxQ=,iv:xp1ghLqP5sk91feAIxC1JpHOkCzBfYBO9rHW9ghfqAM=,tag:eX8s7hGITevnerFo1VpfRg==,type:bool]
|
||||||
|
vpn_wg_priv: ENC[AES256_GCM,data:YS2NMqSZdH6gTQq89sWNLna6sLFIzR+uDFurFP1s+3Pe1+QP/SAiX81PZfc=,iv:Ovm3ir8ia5793yYPsKrscpqc4A6B6r270hpx9pWmR1o=,tag:asWYQrENr5ip8kHdb2mkYw==,type:str]
|
||||||
|
vpn_wg_pub: ENC[AES256_GCM,data:orLTPlTD5Y6bimDcc+BFJytQFER2POfgcOFEk6zcKkvuq/GyU8bKgKLxuyM=,iv:TVHw+yVhlDJFz/8HYqI3qT85hGzgx+3Bj7mT0mr3dFE=,tag:EKDs8gE8RJMGQVfcYLj9Jw==,type:str]
|
||||||
|
pgp_key: ENC[AES256_GCM,data:nEMur/Uq,iv:2KXW/AAAWDX09Ich2S6LQ7618ZBAY61KZcGkIabqCLs=,tag:Q7o8fz3dFFuqeMpzu9U/Fg==,type:str]
|
||||||
|
wifi: ENC[AES256_GCM,data:LBDjdh4/Kny4cz7WZ5EGeFH7k0PGdERBq0/2wAWHdZtAhC2avlVNRfV8n/DsRodaUVm/6/tCXmXGOfqkzRgC9drQmDxeJWe5IhjJpOOOAXvLA/BCgzwu/Poi4b2KiXdZ1BgznMBV9+EBNFR55+KAb+GjjEIR96G15wGTfk3D0hPs9sE238OcfKFLv5L7ptUN7qnmAH6M4AIEKk0gv+J9dyu3UAw7qfdr6uiuPsYOoQ95A2q1OpERh7VnfsI6zjJ8vKSKbG/yb0VOhcCOlM1oijqSw+fUIMBlOQ9wWyWN2brqkhACqqIiBWxrqfPHQT2mobMTgE4vw1BruzTnhBrqtCeGG8yHEZnL/8NU4z3NQDG3FfYScVNDAvMrW+06HHKRi43vJ1Zz7HMb6ik8ZOKFI4CvsYingNSD1cAXt3FMet5PvVFfWErsrpO3dST7A0ZSb56N+fXrfBcB8jdxsOZBopfksFpx81J/VLLdAoO0aXtYhZlMM11nuCjkgTFPvwkxy2e/+gZVqPbWEaDeJ5j2bEB7lJ1DpMX88FN9g0zhA6cufVbSanaLCvCDCdxTslZVauO0mlmOBh0GMPD7Oi/l8hdCX74PqjSx0kmH4RWRL6Jei2PPnAEW4scWrhUOKxMaagFsLFyKvy3HYAnTqevlEi8FXmS2hglQzsN3H7343kaV+OSTy50uOG9wr7T3rbztcKDOf9dp1CM4JVk933wOmMdg7nXBrU16ELVYlWuBHgswHiBtZQXVvQBPhxp7giFjduhXlg92wvmV2ZEcVOSiDJp4nJsiIaGmwbq6PsO/1Xy5sIJ0/jh1aJwAnp507xEXl0tvcBXSdaXpHdUnKnBPw9q8Gt9Td+UoLgEb13Dy1op9Fs9iA9LMX1EMQe6d,iv:rxAs2PD9EWNONqU0Hh9DJfECJ93nnRMrbUCwormAwxw=,tag:+n0iICniidi4H0Zv9pCDfA==,type:str]
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBraWFDRFUxQ2l5OWV1OXNK
|
||||||
|
UExEbWZkM0kzVk1rZG4yY3pBLzdMVWVJS0UwCnhlWFJ5T2lZUXJyNkg1ejQxaU1t
|
||||||
|
L3F2RUhldTY3N2xXL0hwczNKRzNjcncKLS0tIEkycHoxcDBGNyt2V3RDY29wNGVp
|
||||||
|
TGg5Rk05VkRsaXM1Q0NxMmtMajRORDAKqjFldiAYJKjmnkeDkwanjYvhL6645DZ5
|
||||||
|
dVXExjqO/DG733ge8HFyKzpfpkzRymV1giUwxBdII1dd0mJ2ncINeA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3UkRjblIvYStZUzQyRHA1
|
||||||
|
ZGVXeHhrN0kyVkxZdms5U3gwVFlPMW12MVJjCjRkVURpZXBzb0tYenB4dGxKamh6
|
||||||
|
VXVBMmo1Ujkvd2VTRExyWE5MbVJaclUKLS0tIDVhRkYzZmEzUG00Q2IwOWZUMVVt
|
||||||
|
ODVIbytpcjN1cVMyaG1qVVdkRmtaMzQKNsvD9DpK/raDBob+IcuNk72tQDts36kJ
|
||||||
|
QhtoLy8MvUymi49PdEWrgyf68w5XwRO/U4iINhR0qzm0glg/XcyHjA==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc3hKWkk3ckNOY2UyTVhG
|
||||||
|
MmtLaEd0K04yaGxiOUoxMXkzOEFnYis4VkhnCktDRFM2bS8vb05OWDdwa0RwRlNO
|
||||||
|
cmlZemtxVGZ6S0tNTDV1cmE1N0pVWnMKLS0tIE9EZllycHJpcEY2R1pwOFhOZEU3
|
||||||
|
L01IcytDd3BPb0VOTW9DQ2lUdUVJS0kKiD+C+3mK1b/eIwCEFanFgYGLNk3JNPQ7
|
||||||
|
i1UqzbHVxSd0q/YVwdKAcj0jA6EezGm275tgq7IVsy2sHkvRMaEDtQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
- recipient: age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAweVU3TkxFZzRnd2I2clN2
|
||||||
|
ZTlTWmhwQkhVc1hnOXFvZVVDSWpHMVh1TGtrCkc3M1pUTnZCMHpvYXB5ZVhreGxa
|
||||||
|
ZVY2cG5Ja2ltL3k2Q1VEalc5TTNFMXcKLS0tIGd5UWl0RGVXT211Zm51dlB6WFZ1
|
||||||
|
STRtTVpVTCtVZ1FUNENqWFFVNTNuaVUKN6HRiZjTdENeif8dJ29urBxPXDaosjjY
|
||||||
|
InN4Ko6YUaGfvB1DTrKIzrxOpsHS+XjisoGfT71tJwwEOoREklEO/A==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2023-08-05T09:52:06Z"
|
||||||
|
mac: ENC[AES256_GCM,data:lIY0q/K772KOiRZ24QgPtWqN67FqOdKScfJ/G8tY/VOe+KquGSIIIIyXZoIjvjEnVZpKleQfqGpcbssZR491r09xDazhadCOtEfY3YGtNUYSDcWfgHjYOYm22Pa/8YK90aAwc/2BAY6X0mXR/zPPTpdALvzIGYaS5EYVLdcdcxI=,iv:kMAgc7e8ATA2ZGRXKt1XdVWlc17OIccnCndBzKVw4T4=,tag:pR+xVV5bnE2nP/7fGWSm3Q==,type:str]
|
||||||
|
pgp:
|
||||||
|
- created_at: "2023-04-20T10:20:17Z"
|
||||||
|
enc: |-
|
||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
wcFMA6R3Y9nD7qMBAQ/8CVWQaYKfOzvPIllZyyWpUjHRLLXaR8MNJ8U5WI/tdwdN
|
||||||
|
9UScDYJFuYRW7Q9s4Mt961kBGpaHqe9MUZBxUDlYX59+EN3FbO/eMQ5OqI05ESmL
|
||||||
|
TvZB4+S9C5o73nuypSDNvYz+Lgq6DO25ZPhXdtPhx2DE4G31/wft/LpxhjalIjI8
|
||||||
|
MU0Dv22R4qC+glJbe4GIF2IJ8XoxnnzjiGeSqiyv0QIBM0SzOtA5sKwNohWBnW7g
|
||||||
|
7vxOTm5+kyzG0dDjt3tFApgPDaA1wjofzhRuuveF52VBsuIA2opFdpqkyICvK6rn
|
||||||
|
NB5kUaPlY6A0m+n0oHSfY5wm/AnHNE4Oob/ifumAaB0EAJVUTRauI5M8SeJF0ya1
|
||||||
|
U0IQ9N2lb7Y6q4pqHywIa6fnylsqCfxInAYKMuslRq8f9t/qakb4/MYcnPrwpzjw
|
||||||
|
73/naiNoJmG6NVTkM52qTtOqZAmsaQd5cigTuPW2Z2CJq1yLZEVGSSd1DUGUjBDK
|
||||||
|
nQGucpVVVpD+ifrIPz+Iqwy+5NoZZm/Oa9pKJGFzqXinnDNZaqtgpmTw9QxcSeaP
|
||||||
|
VvGZG9CDd89MtAm1VQyuqi1bQ2faq3G0xNrLl7xUsfmjx4ofW+JXR87OzvGfLPhu
|
||||||
|
Sjl3kS9j5/MEBRBg3n9gNkgSu5Sy3ilhckY3yjTgAT9Gw2giDhCiUXi1/7KrGprS
|
||||||
|
UQHPCSsjyWsyuYVa3lAP/WPdVclc4WOdfYcetUCXBVP7LQr0bq+IG+2J0nnY3mDt
|
||||||
|
Va5k4sP1qu6Ecrs2JioQ1V2H+VmcrRykBWnMXl1tDSWKMA==
|
||||||
|
=pS8X
|
||||||
|
-----END PGP MESSAGE-----
|
||||||
|
fp: 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0
|
||||||
|
unencrypted_suffix: _unencrypted
|
||||||
|
version: 3.7.3
|
Loading…
x
Reference in New Issue
Block a user