Compare commits

..

1 Commits

Author SHA1 Message Date
github-actions[bot]
2001a2ae04 flake.lock: Update
Flake lock file updates:

• Updated input 'darwin':
    'github:lnl7/nix-darwin/afe83cbc2e673b1f08d32dd0f70df599678ff1e7' (2023-10-27)
  → 'github:lnl7/nix-darwin/e67f2bf515343da378c3f82f098df8ca01bccc5f' (2023-11-13)
• Updated input 'hardware':
    'github:nixos/nixos-hardware/627bc9b88256379578885a7028c9e791c29fb581' (2023-11-05)
  → 'github:nixos/nixos-hardware/5689f3ebf899f644a1aabe8774d4f37eb2f6c2f9' (2023-11-14)
• Updated input 'home-manager':
    'github:nix-community/home-manager/6a8444467c83c961e2f5ff64fb4f422e303c98d3' (2023-11-07)
  → 'github:nix-community/home-manager/280721186ab75a76537713ec310306f0eba3e407' (2023-11-12)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/751d2851cc270c3322ffe2eb83c156e4298a0c0e' (2023-11-07)
  → 'github:hyprwm/Hyprland/9e3dccca76ca3af4e96ac80c2ddef4774dc1354b' (2023-11-15)
• Updated input 'hyprland/wlroots':
    'gitlab:wlroots/wlroots/47bf87ade2bd32395615a385ebde1fefbcdf79a2' (2023-10-21)
  → 'gitlab:wlroots/wlroots/5de9e1a99d6642c2d09d589aa37ff0a8945dcee1' (2023-11-06)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/85f1ba3e51676fa8cc604a3d863d729026a6b8eb' (2023-11-04)
  → 'github:nixos/nixpkgs/e44462d6021bfe23dfb24b775cc7c390844f773d' (2023-11-12)
• Updated input 'nur':
    'github:nix-community/nur/aa435f27b4a4f58c8acf5e0c4f9e3cf72aac2834' (2023-11-08)
  → 'github:nix-community/nur/b5b271acce7379794ff4e3cfd920e464690ddd0e' (2023-11-15)
• Updated input 'sops-nix':
    'github:Mic92/sops-nix/664187539871f63857bda2d498f452792457b998' (2023-11-06)
  → 'github:Mic92/sops-nix/0e3a94167dcd10a47b89141f35b2ff9e04b34c46' (2023-11-14)
• Updated input 'sops-nix/nixpkgs':
    'github:NixOS/nixpkgs/9d5d25bbfe8c0297ebe85324addcb5020ed1a454' (2023-11-04)
  → 'github:NixOS/nixpkgs/9b92dad3804b543a8b5db878aabf7132d601fa91' (2023-11-07)
• Updated input 'sops-nix/nixpkgs-stable':
    'github:NixOS/nixpkgs/78f3a4ae19f0e99d5323dd2e3853916b8ee4afee' (2023-11-04)
  → 'github:NixOS/nixpkgs/9502d0245983bb233da8083b55d60d96fd3c29ff' (2023-11-12)
2023-11-15 13:01:33 +00:00
186 changed files with 2205 additions and 8159 deletions

View File

@@ -1,38 +0,0 @@
name: Nix Build
on:
pull_request:
push:
workflow_run:
workflows: []
types: [completed]
workflow_dispatch:
jobs:
build-nixos:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Install Nix ❄️"
uses: cachix/install-nix-action@v31
# - uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v13
- uses: DeterminateSystems/flake-checker-action@v12
- name: "Install Cachix ❄️"
uses: cachix/cachix-action@v16
with:
name: helcel
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: "Build NixOS CI config ❄️"
run: |
nix build .#nixosConfigurations.ci.config.system.build.toplevel
- name: "Build NixOS Sandbox config ❄️"
run: |
nix build .#nixosConfigurations.sandbox.config.system.build.toplevel

View File

@@ -1,30 +1,30 @@
name: update-flake-lock
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * 6,7'
env:
USER: "runner"
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install nix
uses: DeterminateSystems/nix-installer-action@v19
with:
github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
extra_nix_config: |
experimental-features = nix-command flakes
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v27
with:
token: ${{ secrets.GT_TOKEN_FOR_UPDATES }}
pr-title: "[chore] Update flake.lock"
pr-labels: |
dependencies
automated
name: update-flake-lock
on:
workflow_dispatch:
schedule:
- cron: '*/5 * * * *' # runs weekly on Sunday at 00:00 ... 0 0 * * 0
env:
USER: "runner"
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install nix
uses: DeterminateSystems/nix-installer-action@v7
with:
github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
extra_nix_config: |
experimental-features = nix-command flakes
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v20
with:
token: ${{ secrets.GT_TOKEN_FOR_UPDATES }}
pr-title: "[chore] Update flake.lock"
pr-labels: |
dependencies
automated

1
.gitignore vendored
View File

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

View File

@@ -4,55 +4,38 @@ keys:
- &sora 4E241635F8EDD2919D2FB44CA362EA0491E2EEA0
# Hosts
- &hosts:
- &ci age13qv9dn9806paqgpjwmmkwtdzvv4qpv0ulksq0epnn8ufaxeug5zskyas3z
- &iriy age1ms8f0ysv6vakxepvt69fejczs6tddexepesdv4rkgtheehj3nu4sc6290s
- &avalon age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
- &valinor age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
- &asgard age1sxzuhh2fcd4pmaz4mdqq95t683d32ft22w9t2r7pk258u0s8wymsqdj7lg
creation_rules:
- path_regex: modules/shared/sops/private/iriy.[a-z]+
- path_regex: secrets/iriy.ya?ml$
key_groups:
- age:
- *iriy
pgp:
- *sora
- path_regex: modules/shared/sops/private/avalon.[a-z]+
- path_regex: secrets/avalon.ya?ml$
key_groups:
- age:
- *avalon
pgp:
- *sora
- path_regex: modules/shared/sops/private/valinor.[a-z]+
- path_regex: secrets/valinor.ya?ml$
key_groups:
- age:
- *valinor
pgp:
- *sora
- path_regex: modules/shared/sops/private/asgard.[a-z]+
- path_regex: secrets/asgard.ya?ml$
key_groups:
- age:
- *asgard
pgp:
- *sora
- path_regex: modules/shared/sops/common.[a-z]+
key_groups:
- age:
- *valinor
- *iriy
- *avalon
- *asgard
pgp:
- *sora
- path_regex: modules/shared/sops/mock.[a-z]+
key_groups:
- age:
- *ci
- path_regex: modules/server/sops/server.[a-z]+
- path_regex: secrets/common.ya?ml$
key_groups:
- age:
- *valinor

375
flake.lock generated
View File

@@ -1,35 +1,13 @@
{
"nodes": {
"arion": {
"inputs": {
"flake-parts": "flake-parts",
"haskell-flake": "haskell-flake",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1745165725,
"narHash": "sha256-OnHV8Us04vRsWM0uL1cQez8DumhRi6yE+4K4VLtH6Ws=",
"owner": "hercules-ci",
"repo": "arion",
"rev": "4f59059633b14364b994503b179a701f5e6cfb90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "arion",
"type": "github"
}
},
"base16-schemes": {
"flake": false,
"locked": {
"lastModified": 1696158499,
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
"lastModified": 1689473676,
"narHash": "sha256-L0RhUr9+W5EPWBpLcmkKpUeCEWRs/kLzVMF3Vao2ZU0=",
"owner": "tinted-theming",
"repo": "base16-schemes",
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
"rev": "d95123ca6377cd849cfdce92c0a24406b0c6a789",
"type": "github"
},
"original": {
@@ -45,11 +23,11 @@
]
},
"locked": {
"lastModified": 1751313918,
"narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=",
"lastModified": 1699867978,
"narHash": "sha256-+arl45HUOcBdKiRGrKXZYXDyBQ6MQGkYPZa/28f6Yzo=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf",
"rev": "e67f2bf515343da378c3f82f098df8ca01bccc5f",
"type": "github"
},
"original": {
@@ -59,55 +37,65 @@
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"arion",
"nixpkgs"
]
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"lastModified": 1650374568,
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts_2": {
"flake-utils": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
"systems": "systems_2"
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flake-utils-plus": {
"inputs": {
"flake-utils": "flake-utils"
},
"locked": {
"lastModified": 1696331477,
"narHash": "sha256-YkbRa/1wQWdWkVJ01JvV+75KIdM37UErqKgTf0L54Fk=",
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"rev": "bfc53579db89de750b25b0c5e7af299e0c06d7d3",
"type": "github"
},
"original": {
"owner": "gytis-ivaskevicius",
"repo": "flake-utils-plus",
"type": "github"
}
},
"hardware": {
"locked": {
"lastModified": 1754564048,
"narHash": "sha256-dz303vGuzWjzOPOaYkS9xSW+B93PSAJxvBd6CambXVA=",
"lastModified": 1699997707,
"narHash": "sha256-ugb+1TGoOqqiy3axyEZpfF6T4DQUGjfWZ3Htry1EfvI=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113",
"rev": "5689f3ebf899f644a1aabe8774d4f37eb2f6c2f9",
"type": "github"
},
"original": {
@@ -116,22 +104,6 @@
"type": "github"
}
},
"haskell-flake": {
"locked": {
"lastModified": 1675296942,
"narHash": "sha256-u1X1sblozi5qYEcLp1hxcyo8FfDHnRUVX3dJ/tW19jY=",
"owner": "srid",
"repo": "haskell-flake",
"rev": "c2cafce9d57bfca41794dc3b99c593155006c71e",
"type": "github"
},
"original": {
"owner": "srid",
"ref": "0.1.0",
"repo": "haskell-flake",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -139,31 +111,77 @@
]
},
"locked": {
"lastModified": 1753592768,
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"lastModified": 1699783872,
"narHash": "sha256-4zTwLT2LL45Nmo6iwKB3ls3hWodVP9DiSWxki/oewWE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
"rev": "280721186ab75a76537713ec310306f0eba3e407",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-25.05",
"repo": "home-manager",
"type": "github"
}
},
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs",
"systems": "systems",
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1700051522,
"narHash": "sha256-u9k9O8oN5udH3ReAjJKribuJD8jHGHu5MDkJAXpqplo=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "9e3dccca76ca3af4e96ac80c2ddef4774dc1354b",
"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": 1707825078,
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
"lastModified": 1695388192,
"narHash": "sha256-2jelpE7xK+4M7jZNyWL7QYOYegQLYBDQS5bvdo8XRUQ=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
"rev": "37227f274b34a3b51649166deb94ce7fec2c6a4c",
"type": "github"
},
"original": {
@@ -172,45 +190,29 @@
"type": "github"
}
},
"nixUnstable": {
"locked": {
"lastModified": 1754711617,
"narHash": "sha256-WrZ280bT6NzNbBo+CKeJA/NW1rhvN/RUPZczqCpu2mI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "00b574b1ba8a352f0601c4dde4faff4b534ebb1e",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1754689972,
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
"owner": "nixos",
"lastModified": 1698134075,
"narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
"rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.05",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1697935651,
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
"lastModified": 1694911725,
"narHash": "sha256-8YqI+YU1DGclEjHsnrrGfqsQg3Wyga1DfTbJrN3Ud0c=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
"rev": "819180647f428a3826bfc917a54449da1e532ce0",
"type": "github"
},
"original": {
@@ -219,13 +221,29 @@
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1699756042,
"narHash": "sha256-bHHjQQBsEPOxLL+klYU2lYshDnnWY12SewzQ7n5ab2M=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9502d0245983bb233da8083b55d60d96fd3c29ff",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
"lastModified": 1699781429,
"narHash": "sha256-UYefjidASiLORAjIvVsUHG6WBtRhM67kTjEY4XfZOFs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
"rev": "e44462d6021bfe23dfb24b775cc7c390844f773d",
"type": "github"
},
"original": {
@@ -235,17 +253,29 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_2"
},
"nixpkgs_3": {
"locked": {
"lastModified": 1754771961,
"narHash": "sha256-aLtVkt7vTReGT/M51TvKpUNOhvs+XFAdimadlUiOPfg=",
"lastModified": 1699374756,
"narHash": "sha256-X21OIoVcJejN9JKoLuoZSx3ZZkMh/iSpJ+GGrSNQyGU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9b92dad3804b543a8b5db878aabf7132d601fa91",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": {
"locked": {
"lastModified": 1700053136,
"narHash": "sha256-2WbtMI0f4bzMnSxnRE3V83KDICKdScLPlQp+ZQc9DCA=",
"owner": "nix-community",
"repo": "nur",
"rev": "27dfc5e3bedd281be925bc290351890571a720d2",
"rev": "b5b271acce7379794ff4e3cfd920e464690ddd0e",
"type": "github"
},
"original": {
@@ -256,29 +286,50 @@
},
"root": {
"inputs": {
"arion": "arion",
"darwin": "darwin",
"hardware": "hardware",
"home-manager": "home-manager",
"hyprland": "hyprland",
"nix-colors": "nix-colors",
"nixUnstable": "nixUnstable",
"nixpkgs": "nixpkgs",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix"
}
},
"sops-nix": {
"snowfall-lib": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils-plus": "flake-utils-plus",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1754328224,
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
"lastModified": 1696432959,
"narHash": "sha256-oJQZv2MYyJaVyVJY5IeevzqpGvMGKu5pZcCCJvb+xjc=",
"owner": "snowfallorg",
"repo": "lib",
"rev": "92803a029b5314d4436a8d9311d8707b71d9f0b6",
"type": "github"
},
"original": {
"owner": "snowfallorg",
"repo": "lib",
"type": "github"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_3",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1699951338,
"narHash": "sha256-1GeczM7XfgHcYGYiYNcdwSFu3E62vmh4d7mffWZvyzE=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
"rev": "0e3a94167dcd10a47b89141f35b2ff9e04b34c46",
"type": "github"
},
"original": {
@@ -286,6 +337,84 @@
"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"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1699292815,
"narHash": "sha256-HXu98PyBMKEWLqiTb8viuLDznud/SdkdJsx5A5CWx7I=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1697981233,
"narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
},
"root": "root",

View File

@@ -1,14 +1,13 @@
{
description = "SoraFlake";
inputs = {
# Trick renovate into working: "github:NixOS/nixpkgs/nixpkgs-unstable"
nixUnstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
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/release-25.05";
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
@@ -17,39 +16,45 @@
inputs.nixpkgs.follows = "nixpkgs";
};
# hyprland = {
# url = "github:hyprwm/Hyprland";
# inputs.nixpkgs.follows = "nixpkgs";
# };
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
hyprland.url = "github:hyprwm/Hyprland";
sops-nix.url = "github:Mic92/sops-nix";
nix-colors.url = "github:misterio77/nix-colors";
arion.url = "github:hercules-ci/arion";
arion.inputs.nixpkgs.follows = "nixpkgs";
snowfall-lib = {
url = "github:snowfallorg/lib";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs:
let gen = import ./generator.nix { inherit inputs; };
in {
devShells = import ./shells { inherit inputs; };
let
lib = inputs.snowfall-lib.mkLib {
inherit inputs;
src = ./.;
};
in lib.mkFlake {
nixosConfigurations = {
valinor = gen.generate { host = "valinor"; };
iriy = gen.generate { host = "iriy"; };
efir = gen.generate { host = "efir"; };
avalon = gen.generate { host = "avalon"; };
ci = gen.generate { host = "ci"; };
sandbox = gen.generate { host = "sandbox"; };
package-namespace = "custom";
channels-config = {
allowUnfree = true;
permittedInsecurePackages = [ ];
};
darwinConfigurations = { asgard = gen.generate { host = "asgard"; }; };
homeConfigurations = {
yomi = gen.generate { host = "example"; };
example = gen.generate { host = "example"; };
systems = {
modules = {
darwin = with inputs; [ sops-nix.nixosModules.sops ];
home = with inputs; [
nix-colors.homeManagerModules
hyprland.homeManagerModules
];
nixos = with inputs; [ sops-nix.nixosModules.sops ];
};
};
};
# ===== Unsupported/NotImplemented ======

View File

@@ -1,68 +0,0 @@
{ inputs, ... }: {
generate = { host }:
let
syscfg = import ./systems/${host}/cfg.nix;
nameValuePair = name: value: { inherit name value; };
in ({
"nixos" = inputs.nixpkgs.lib.nixosSystem {
system = syscfg.syscfg.system;
specialArgs = { inherit inputs; };
modules = [
./modules/shared/syscfg
./modules/shared/sops
./modules/nixos
syscfg
./systems/${host}
inputs.arion.nixosModules.arion
inputs.sops-nix.nixosModules.sops
inputs.home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (map (userConfig:
nameValuePair userConfig.username {
imports = [
./modules/shared/syscfg
./modules/shared/colors
./modules/home
syscfg
{ usercfg = userConfig; }
inputs.nix-colors.homeManagerModule
# inputs.hyprland.homeManagerModules.default
inputs.sops-nix.homeManagerModules.sops
];
}) syscfg.syscfg.users);
}
];
};
"macos" = inputs.darwin.lib.darwinSystem {
system = syscfg.system;
modules = [
./modules/shared/syscfg
./modules/shared/sops
syscfg
./systems/${host}
inputs.sops-nix.nixosModules.sops
inputs.home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users = builtins.listToAttrs (map (userConfig:
nameValuePair userConfig.username {
imports = [
inputs.nix-colors.homeManagerModule
inputs.sops-nix.homeManagerModules.sops
];
}) syscfg.syscfg.users);
}
];
};
"home" = inputs.home-manager.lib.homeManagerConfiguration {
modules = [ ./modules/home ];
};
_ = throw "Unsupported system";
}.${syscfg.syscfg.type});
}

View File

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

View File

@@ -0,0 +1,17 @@
{ ... }: {
imports = [ ./display.nix ];
config.homecfg = {
username = "sora";
make = {
gui = false;
cli = true;
game = false;
};
git = {
email = "soraefir+git@pm.me";
username = "soraefir";
key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
};
};
}

View File

@@ -0,0 +1,17 @@
{ ... }: {
imports = [ ./display.nix ];
config.homecfg = {
username = "sora";
make = {
gui = true;
cli = true;
game = true;
};
git = {
email = "soraefir+git@pm.me";
username = "soraefir";
key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
};
};
}

View File

@@ -0,0 +1,17 @@
{ ... }: {
services.kanshi = {
enable = true;
systemdTarget = "graphical-session.target";
profiles = {
default = {
outputs = [{
criteria = "CEX CX133 0x00000001";
mode = "1920x1200@59.972";
position = "0,0";
status = "enable";
}];
};
};
};
}

View File

@@ -0,0 +1,17 @@
{ config, ... }: {
imports = [ ./display.nix ];
config.homecfg = {
username = "sora";
make = {
gui = true;
cli = true;
game = true;
};
git = {
email = "soraefir+git@pm.me";
username = "soraefir";
key = "4E241635F8EDD2919D2FB44CA362EA0491E2EEA0";
};
};
}

View File

@@ -0,0 +1,33 @@
{ ... }: {
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";
}
];
};
};
};
}

View File

@@ -1,21 +1,12 @@
{ lib, config, ... }: {
{ config, ... }: {
#environment.sessionVariables.SOPS_AGE_KEY_FILE = keyFilePath;
systemd.user.startServices = "sd-switch";
programs.home-manager.enable = true;
home = {
username = "${config.usercfg.username}";
homeDirectory = "/home/${config.usercfg.username}";
username = "${config.homecfg.username}";
homeDirectory = "/home/${config.homecfg.username}";
stateVersion = "24.11";
stateVersion = "23.05";
};
#SOPS
# sops.defaultSopsFile = ./sops/${config.usercfg.username}.yaml;
# sops.age.keyFile = "/var/lib/sops-nix/age-key.txt";
# sops.age.generateKey = true;
# sops.secrets."github_user_key" = { };
# sops.secrets."curse_forge_key" = { };
}

View File

@@ -1,69 +0,0 @@
curse_forge_key: ENC[AES256_GCM,data:PhhwPhUys/WDzXb40iFlrUcwFEJVzi49vDlm5Hpc7IUwbBiQI1Zvi6115THMvarnGESDyouPfoZP0wha,iv:x//EzR4QwdD0UxqV97yUepc39DopoqiDT21unpF9R2E=,tag:5jM1EibWo0wI+PS70+kb/Q==,type:str]
github_user_key: ENC[AES256_GCM,data:RvBsQjWGd2qRCvBzcpMv8FIXGY/GiPd9o0x2Oq+NlbXxR2NMqNBNLw==,iv:99AcmOWFft7XQAn7YrGjZuCvz0M5wUkYeInsWwyeUFM=,tag:wkw2YQGi9j/8XtOFd8KhdQ==,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: "2024-12-23T18:05:22Z"
mac: ENC[AES256_GCM,data:YSi2xIwz50VxUDL3QzGVUwRWUgZhvudSLCKgwIbWm8gkuAJ/V2sVRhJNVQJ1YvLO44ob5hmrgR4wSnOdAbS7FrpbLcJuoYBjVUTDjy+j6otnIDxEcYeciHhZ1pV/OiydBmJC+lZ4+SRdWdokL2HaXRKgc9QT9e/MdAbFIzI1x90=,iv:8rj8yEqHTMgoGu31RVskYizmROB/5I0ajZJ/EcmlVfE=,tag:PILFCyXY8sXYGxCEHS7qCg==,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.9.2

View File

@@ -6,86 +6,86 @@
# 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.palette.base00}"
theme[main_bg]="#${config.colorScheme.colors.base00}"
# Main text color
theme[main_fg]="#${config.colorScheme.palette.base07}"
theme[main_fg]="#${config.colorScheme.colors.base07}"
# Title color for boxes
theme[title]="#${config.colorScheme.palette.base07}"
theme[title]="#${config.colorScheme.colors.base07}"
# Higlight color for keyboard shortcuts
theme[hi_fg]="#${config.colorScheme.palette.base0E}"
theme[hi_fg]="#${config.colorScheme.colors.base0E}"
# Background color of selected item in processes box
theme[selected_bg]="#${config.colorScheme.palette.base0C}"
theme[selected_bg]="#${config.colorScheme.colors.base0C}"
# Foreground color of selected item in processes box
theme[selected_fg]="#${config.colorScheme.palette.base00}"
theme[selected_fg]="#${config.colorScheme.colors.base00}"
# Color of inactive/disabled text
theme[inactive_fg]="#${config.colorScheme.palette.base02}"
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.palette.base05}"
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.palette.base0C}"
theme[proc_misc]="#${config.colorScheme.colors.base0C}"
# Cpu box outline color
theme[cpu_box]="#${config.colorScheme.palette.base02}"
theme[cpu_box]="#${config.colorScheme.colors.base02}"
# Memory/disks box outline color
theme[mem_box]="#${config.colorScheme.palette.base02}"
theme[mem_box]="#${config.colorScheme.colors.base02}"
# Net up/down box outline color
theme[net_box]="#${config.colorScheme.palette.base02}"
theme[net_box]="#${config.colorScheme.colors.base02}"
# Processes box outline color
theme[proc_box]="#${config.colorScheme.palette.base02}"
theme[proc_box]="#${config.colorScheme.colors.base02}"
# Box divider line and small boxes line color
theme[div_line]="#${config.colorScheme.palette.base02}"
theme[div_line]="#${config.colorScheme.colors.base02}"
# Temperature graph colors
theme[temp_start]="#${config.colorScheme.palette.base0D}"
theme[temp_start]="#${config.colorScheme.colors.base0D}"
theme[temp_mid]=""
theme[temp_end]="#${config.colorScheme.palette.base0F}"
theme[temp_end]="#${config.colorScheme.colors.base0F}"
# CPU graph colors
theme[cpu_start]="#${config.colorScheme.palette.base0C}"
theme[cpu_start]="#${config.colorScheme.colors.base0C}"
theme[cpu_mid]=""
theme[cpu_end]="#${config.colorScheme.palette.base0C}"
theme[cpu_end]="#${config.colorScheme.colors.base0C}"
# Mem/Disk free meter
theme[free_start]="#${config.colorScheme.palette.base0A}"
theme[free_start]="#${config.colorScheme.colors.base0A}"
theme[free_mid]=""
theme[free_end]="#${config.colorScheme.palette.base0A}"
theme[free_end]="#${config.colorScheme.colors.base0A}"
# Mem/Disk cached meter
theme[cached_start]="#${config.colorScheme.palette.base09}"
theme[cached_start]="#${config.colorScheme.colors.base09}"
theme[cached_mid]=""
theme[cached_end]="#${config.colorScheme.palette.base09}"
theme[cached_end]="#${config.colorScheme.colors.base09}"
# Mem/Disk available meter
theme[available_start]="#${config.colorScheme.palette.base0B}"
theme[available_start]="#${config.colorScheme.colors.base0B}"
theme[available_mid]=""
theme[available_end]="#${config.colorScheme.palette.base0B}"
theme[available_end]="#${config.colorScheme.colors.base0B}"
# Mem/Disk used meter
theme[used_start]="#${config.colorScheme.palette.base08}"
theme[used_start]="#${config.colorScheme.colors.base08}"
theme[used_mid]=""
theme[used_end]="#${config.colorScheme.palette.base08}"
theme[used_end]="#${config.colorScheme.colors.base08}"
# Download graph colors
theme[download_start]="#${config.colorScheme.palette.base02}"
theme[download_start]="#${config.colorScheme.colors.base02}"
theme[download_mid]=""
theme[download_end]="#${config.colorScheme.palette.base0D}"
theme[download_end]="#${config.colorScheme.colors.base0D}"
# Upload graph colors
theme[upload_start]="#${config.colorScheme.palette.base02}"
theme[upload_start]="#${config.colorScheme.colors.base02}"
theme[upload_mid]=""
theme[upload_end]="#${config.colorScheme.palette.base0E}"
theme[upload_end]="#${config.colorScheme.colors.base0E}"
'';
}

View File

@@ -1,4 +0,0 @@
{ ... }: {
imports =
[ ./btop ./git ./helix ./kitty ./neofetch ./other ./starship ./zsh ];
}

View File

@@ -2,10 +2,10 @@
programs.git = {
enable = true;
userEmail = "${config.usercfg.git.email}";
userName = "${config.usercfg.git.username}";
userEmail = "${config.homecfg.git.email}";
userName = "${config.homecfg.git.username}";
signing = {
key = "${config.usercfg.git.key}";
key = "${config.homecfg.git.key}";
signByDefault = true;
};
ignores = [ "*result*" ".direnv" "node_modules" ];

View File

@@ -2,53 +2,53 @@
programs.kitty = {
enable = true;
settings = {
foreground = "#${config.colorScheme.palette.base07}";
background = "#${config.colorScheme.palette.base00}";
selection_foreground = "#${config.colorScheme.palette.base07}";
selection_background = "#${config.colorScheme.palette.base03}";
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.palette.base05}";
cursor_text_color = "#${config.colorScheme.palette.base01}";
cursor = "#${config.colorScheme.colors.base05}";
cursor_text_color = "#${config.colorScheme.colors.base01}";
url_color = "#${config.colorScheme.palette.base05}";
url_color = "#${config.colorScheme.colors.base05}";
active_border_color = "#${config.colorScheme.palette.base05}";
inactive_border_color = "#${config.colorScheme.palette.base03}";
bell_border_color = "#${config.colorScheme.palette.base09}";
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.palette.base0C}";
active_tab_background = "#${config.colorScheme.palette.base01}";
inactive_tab_foreground = "#${config.colorScheme.palette.base06}";
inactive_tab_background = "#${config.colorScheme.palette.base00}";
tab_bar_background = "#${config.colorScheme.palette.base02}";
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.palette.base00}";
mark1_background = "#${config.colorScheme.palette.base0C}";
mark2_foreground = "#${config.colorScheme.palette.base00}";
mark2_background = "#${config.colorScheme.palette.base0E}";
mark3_foreground = "#${config.colorScheme.palette.base00}";
mark3_background = "#${config.colorScheme.palette.base0A}";
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.palette.base01}";
color1 = "#${config.colorScheme.palette.base0F}";
color2 = "#${config.colorScheme.palette.base0A}";
color3 = "#${config.colorScheme.palette.base09}";
color4 = "#${config.colorScheme.palette.base0C}";
color5 = "#${config.colorScheme.palette.base0D}";
color6 = "#${config.colorScheme.palette.base0B}";
color7 = "#${config.colorScheme.palette.base07}";
color8 = "#${config.colorScheme.palette.base01}";
color9 = "#${config.colorScheme.palette.base0F}";
color10 = "#${config.colorScheme.palette.base0A}";
color11 = "#${config.colorScheme.palette.base09}";
color12 = "#${config.colorScheme.palette.base0C}";
color13 = "#${config.colorScheme.palette.base0D}";
color14 = "#${config.colorScheme.palette.base0B}";
color15 = "#${config.colorScheme.palette.base07}";
color0 = "#${config.colorScheme.colors.base00}";
color1 = "#${config.colorScheme.colors.base01}";
color2 = "#${config.colorScheme.colors.base02}";
color3 = "#${config.colorScheme.colors.base03}";
color4 = "#${config.colorScheme.colors.base04}";
color5 = "#${config.colorScheme.colors.base05}";
color6 = "#${config.colorScheme.colors.base06}";
color7 = "#${config.colorScheme.colors.base07}";
color8 = "#${config.colorScheme.colors.base08}";
color9 = "#${config.colorScheme.colors.base09}";
color10 = "#${config.colorScheme.colors.base0A}";
color11 = "#${config.colorScheme.colors.base0B}";
color12 = "#${config.colorScheme.colors.base0C}";
color13 = "#${config.colorScheme.colors.base0D}";
color14 = "#${config.colorScheme.colors.base0E}";
color15 = "#${config.colorScheme.colors.base0F}";
font_size = 12;
window-padding-width = 15;

View File

@@ -1,13 +1,13 @@
print_info() {
info ""
info "├─ 󰜗 Distro " distro
info "├─ 󰌽 Kernel " kernel
info "├─ 󰏗 Pkgs " packages
info "├─ 󰍹 Compositor " de
info "├─ 󱛠 CPU " cpu
info "├─ 󰢮 GPU " gpu
info "├─ 󰞷 Term " term
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)󰝥"
@@ -76,7 +76,7 @@ song_shorthand="off"
mpc_args=()
##--------- Text Colors
colors=(0 0 0 4 7 7)
colors=(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)
##--------- Text Options
bold="on"

View File

@@ -12,7 +12,6 @@
cbonsai
pipes-rs
cmatrix
#cava
sl
cava
];
}

View File

@@ -10,51 +10,51 @@
enableZshIntegration = true;
settings = {
format = lib.concatStrings [
"[](#${config.colorScheme.palette.base06})"
"[](#${config.colorScheme.colors.base06})"
"$username"
"$hostname"
"[](bg:#${config.colorScheme.palette.base05} fg:#${config.colorScheme.palette.base06})"
"[](bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base06})"
"$directory"
"[](bg:#${config.colorScheme.palette.base04} fg:#${config.colorScheme.palette.base05})"
"[ ](bg:#${config.colorScheme.palette.base04})"
"[](bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base05})"
"[ ](bg:#${config.colorScheme.colors.base04})"
"$env_var"
"[](bg:#${config.colorScheme.palette.base00} fg:#${config.colorScheme.palette.base04})"
"[](bg:#${config.colorScheme.colors.base00} fg:#${config.colorScheme.colors.base04})"
" "
];
username = {
show_always = true;
style_user =
"bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}";
"bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
style_root =
"bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}";
"bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
format = "[ $user]($style)";
};
hostname = {
ssh_symbol = "";
style =
"bg:#${config.colorScheme.palette.base06} fg:#${config.colorScheme.palette.base00}";
"bg:#${config.colorScheme.colors.base06} fg:#${config.colorScheme.colors.base00}";
format = "[@$hostname]($style)";
ssh_only = false;
disabled = false;
};
directory = {
style =
"bg:#${config.colorScheme.palette.base05} fg:#${config.colorScheme.palette.base00}";
"bg:#${config.colorScheme.colors.base05} fg:#${config.colorScheme.colors.base00}";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
};
directory.substitutions = {
"documents" = "󰮜 ";
"downloads" = "󱃩 ";
"files" = "󱧷 ";
"media" = "󱍚 ";
"documents" = " ";
"downloads" = " ";
"music" = " ";
"pictures" = " ";
};
env_var = {
variable = "SHELLENVTYPE";
variable = "DEVSH";
default = "";
style =
"bg:#${config.colorScheme.palette.base04} fg:#${config.colorScheme.palette.base00}";
"bg:#${config.colorScheme.colors.base04} fg:#${config.colorScheme.colors.base00}";
format = "[$env_value]($style)";
};
};

View File

@@ -1,5 +1,5 @@
{ pkgs, ... }:
let
let
nixflake_dir = "$HOME/files/nixconfig";
nixflake_url = "git+https://git.helcel.net/sora/nixconfig";
in {
@@ -14,9 +14,5 @@ in {
"ssh" = "TERM=xterm-256color ${pkgs.openssh}/bin/ssh";
"top" = "btop";
};
initContent = ''
sopsu() {nix-shell -p sops --run "sops updatekeys $1";}
sopsn() {nix-shell -p sops --run "sops $1";}
'';
};
}

View File

@@ -1 +0,0 @@
{ ... }: { imports = [ ./base ./cli ./gui ./wayland ./xdg ./xorg ]; }

View File

@@ -1,3 +0,0 @@
{ ... }: {
imports = [ ./develop ./firefox ./images ./mpv ./pipewire ./zathura ];
}

View File

@@ -1,7 +0,0 @@
{ lib, config, pkgs, ... }: {
imports = [ ./vscodium ];
config = lib.mkIf (config.syscfg.make.develop) {
home.packages = with pkgs; [ blender godot_4 openscad-unstable bambu-studio ];
};
}

View File

@@ -1,19 +0,0 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.syscfg.make.develop) {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
#profiles.default = {
profiles.default.extensions = with pkgs.vscode-extensions; [
bbenoist.nix
esbenp.prettier-vscode
golang.go
ms-python.vscode-pylance
ms-vscode.cpptools
dbaeumer.vscode-eslint
];
#};
};
};
}

View File

@@ -1,5 +1,5 @@
{ lib, config, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
programs.firefox = {
enable = true;
profiles = {

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
programs.imv.enable = true;
programs.obs-studio.enable = true;

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
programs.mpv = {
enable = true;
scripts = with pkgs; [ mpvScripts.mpris ];

View File

@@ -1,6 +1,6 @@
{ lib, config, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
xdg.configFile."pipewire/pipewire-pulse.conf.d/desktop.conf".text = ''
context.modules = [
{ name = libpipewire-module-loopback

View File

@@ -1,60 +1,65 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
home.packages = with pkgs; [
custom.vosk.base
jq
(python3.withPackages (ps: with ps; [ translatepy ]))
];
config = lib.mkIf (config.homecfg.make.gui) {
# home.packages = with pkgs; [
# custom.vosk
# custom.vosk.cli
# custom.vosk.lang.en
# custom.vosk.lang.ja
# custom.vosk.lang.de
# custom.vosk.lang.ru
# jq
# (python3.withPackages (ps: with ps; [ translatepy ]))
# ];
xdg.configFile."script/transcript-translate.py".text = ''
#!/bin/python
# xdg.configFile."script/transcript-translate.py".text = ''
# #!/bin/python
import sys;
from translatepy.translators.google import GoogleTranslate;
# 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")
'';
# 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
# 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"
)
# MODELS=(
# "English:${pkgs.custom.vosklang.en-us}/usr/share/vosk-models/en-us"
# "German:${pkgs.custom.vosklang.de}/usr/share/vosk-models/de"
# "Russian:${pkgs.custom.vosklang.ru}/usr/share/vosk-models/ru"
# "Japanese:${pkgs.custom.vosklang.ja}/usr/share/vosk-models/ja"
# )
MODEL_OPTS=""
for pair in "''${MODELS[@]}"; do
MODEL_OPTS+="$pair\n"
done
# MODEL_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}')
# 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:")
# 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")
${pkgs.custom.vosk.cli}/bin/voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' 2>/dev/null
;;
"None-prog")
${pkgs.custom.vosk.cli}/bin/voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty, .partial // empty | select(length > 0)' 2>/dev/null
;;
*)
${pkgs.custom.vosk.cli}/bin/voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' | python ~/.config/script/transcript-translate.py $TRANS
;;
esac
'';
# export VOSK_MODEL=$MODEL
# case $TRANS in
# "None")
# voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' 2>/dev/null
# ;;
# "None-prog")
# voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty, .partial // empty | select(length > 0)' 2>/dev/null
# ;;
# *)
# voskcli 2>/dev/null | jq --unbuffered -r '.alternatives[0].text // empty | select(length > 0)' | python ~/.config/script/transcript-translate.py $TRANS
# ;;
# esac
# '';
};
}

View File

@@ -0,0 +1,17 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.homecfg.make.gui) {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
bbenoist.nix
esbenp.prettier-vscode
golang.go
ms-python.vscode-pylance
ms-vscode.cpptools
dbaeumer.vscode-eslint
];
};
};
}

View File

@@ -1,46 +1,46 @@
{ lib, config, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
programs.zathura = {
enable = true;
extraConfig = ''
set default-fg "#${config.colorScheme.palette.base06}"
set default-bg "#${config.colorScheme.palette.base00}"
set default-fg "#${config.colorScheme.colors.base06}"
set default-bg "#${config.colorScheme.colors.base00}"
set completion-bg "#${config.colorScheme.palette.base02}"
set completion-fg "#${config.colorScheme.palette.base06}"
set completion-highlight-bg "#${config.colorScheme.palette.base03}"
set completion-highlight-fg "#${config.colorScheme.palette.base06}"
set completion-group-bg "#${config.colorScheme.palette.base01}"
set completion-group-fg "#${config.colorScheme.palette.base0C}"
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.palette.base06}"
set statusbar-bg "#${config.colorScheme.palette.base01}"
set statusbar-fg "#${config.colorScheme.colors.base06}"
set statusbar-bg "#${config.colorScheme.colors.base01}"
set notification-bg "#${config.colorScheme.palette.base01}"
set notification-fg "#${config.colorScheme.palette.base06}"
set notification-error-bg "#${config.colorScheme.palette.base01}"
set notification-error-fg "#${config.colorScheme.palette.base0F}"
set notification-warning-bg "#${config.colorScheme.palette.base01}"
set notification-warning-fg "#${config.colorScheme.palette.base09}"
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.palette.base06}"
set inputbar-bg "#${config.colorScheme.palette.base01}"
set inputbar-fg "#${config.colorScheme.colors.base06}"
set inputbar-bg "#${config.colorScheme.colors.base01}"
set recolor-lightcolor "#${config.colorScheme.palette.base00}"
set recolor-darkcolor "#${config.colorScheme.palette.base06}"
set recolor-lightcolor "#${config.colorScheme.colors.base00}"
set recolor-darkcolor "#${config.colorScheme.colors.base06}"
set index-fg "#${config.colorScheme.palette.base06}"
set index-bg "#${config.colorScheme.palette.base00}"
set index-active-fg "#${config.colorScheme.palette.base06}"
set index-active-bg "#${config.colorScheme.palette.base01}"
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.palette.base00}"
set render-loading-fg "#${config.colorScheme.palette.base06}"
set render-loading-bg "#${config.colorScheme.colors.base00}"
set render-loading-fg "#${config.colorScheme.colors.base06}"
set highlight-color "#${config.colorScheme.palette.base04}"
set highlight-fg "#${config.colorScheme.palette.base0E}"
set highlight-active-color "#${config.colorScheme.palette.base0E}"
set highlight-color "#${config.colorScheme.colors.base04}"
set highlight-fg "#${config.colorScheme.colors.base0E}"
set highlight-active-color "#${config.colorScheme.colors.base0E}"
'';
};

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
services.nextcloud-client.enable = true;
home.packages = with pkgs; [
@@ -10,13 +10,9 @@
xfce.tumbler
telegram-desktop
discord-canary
pavucontrol
keepassxc
nextcloud-client
gramps
sweethome3d.application
];
};
}

View File

@@ -1 +0,0 @@
{ ... }: { imports = [ ./apps ./base ./games ./theme ]; }

View File

@@ -1,10 +1,11 @@
{ inputs, lib, config, pkgs, ... }: {
{ lib, config, pkgs, ... }: {
imports = [ ./openttd.nix ./wow.nix ];
imports = [ ./openttd.nix ];
config = lib.mkIf (config.syscfg.make.game) {
config = lib.mkIf (config.homecfg.make.game) {
home.packages = with pkgs; [
custom.simc
#games
steam
@@ -14,9 +15,6 @@
prismlauncher
openttd-jgrpp
bottles
lutris
unstable.umu-launcher
wine
];
};

View File

@@ -1,6 +1,6 @@
{ lib, config, ... }: {
config = lib.mkIf (config.syscfg.make.game) {
config = lib.mkIf (config.homecfg.make.game) {
xdg.configFile."openttd/openttd.cfg".text = ''
[misc]
display_opt = SHOW_TOWN_NAMES|SHOW_STATION_NAMES|SHOW_SIGNS|FULL_ANIMATION|FULL_DETAIL|WAYPOINTS|SHOW_COMPETITOR_SIGNS

View File

@@ -1,81 +0,0 @@
{ pkgs, lib, config, sops, ... }: {
config = lib.mkIf (config.syscfg.make.game) {
home.packages = with pkgs;
[
# custom.simc
];
# templates buggy currently
#xdg.configFile."instawow/config.json" = ''${config.sops.templates."instawow_config.json".path}'';
sops.templates."instawow_config.json".content = ''
{
"auto_update_check": true,
"access_tokens": {
"cfcore": "${config.sops.placeholder.curse_forge_key}",
"github": "${config.sops.placeholder.github_user_key}",
"wago_addons": null
}
}'';
# curse:master-plan
# curse:raretrackercore-rt
# curse:raretrackerdragonflight-rtd
# curse:raretrackermaw-rtmw
# curse:raretrackermechagon-rtm
# curse:raretrackerthewarwithin-rtww
# curse:raretrackertimelessisle-rtti
# curse:raretrackeruldum-rtu
# curse:raretrackervale-rtv
# curse:raretrackerworldbosses-rtwb
# curse:raretrackerzerethmortis-rtz
# curse:venture-plan
# curse:war-plan
# github:nevcairiel/bartender4
# github:cidan/betterbags
# github:bigwigsmods/bigwigs
# github:bigwigsmods/bigwigs_battleforazeroth
# github:bigwigsmods/bigwigs_burningcrusade
# github:bigwigsmods/bigwigs_cataclysm
# github:bigwigsmods/bigwigs_classic
# github:bigwigsmods/bigwigs_dragonflight
# github:bigwigsmods/bigwigs_legion
# github:bigwigsmods/bigwigs_mistsofpandaria
# github:bigwigsmods/bigwigs_shadowlands
# github:bigwigsmods/bigwigs_warlordsofdraenor
# github:bigwigsmods/bigwigs_wrathofthelichking
# github:nezroy/demodal
# github:curseforge-mirror/details
# github:edusperoni/details_elitism
# github:curseforge-mirror/elitismhelper
# github:michaelnpsp/grid2
# github:jods-gh/groupfinderrio
# github:nevcairiel/handynotes
# github:hekili/hekili
# github:thekrowi/krowi_achievementfilter
# github:bigwigsmods/littlewigs
# github:nnoggie/mythicdungeontools
# github:tullamods/omnicc
# github:tercioo/plater-nameplates
# github:curseforge-mirror/quest_completist
# github:raiderio/raiderio-addon
# github:wowrarity/rarity
# github:nevcairiel/shadowedunitframes
# github:simulationcraft/simc-addon
# github:curseforge-mirror/tomcats
# github:weakauras/weakauras2
# github:kemayo/wow-handynotes-battleforazerothtreasures
# github:kemayo/wow-handynotes-dragonflight
# github:kemayo/wow-handynotes-legiontreasures
# github:kemayo/wow-handynotes-longforgottenhippogryph
# github:kemayo/wow-handynotes-lostandfound
# github:kemayo/wow-handynotes-secretfish
# github:kemayo/wow-handynotes-shadowlandstreasures
# github:kemayo/wow-handynotes-stygia
# github:kemayo/wow-handynotes-treasurehunter
# github:kemayo/wow-handynotes-warwithin
# wowi:7032-tomtom
};
}

View File

@@ -5,7 +5,7 @@ let
wallpaperGen = import ./wallpaper-gen.nix { inherit pkgs config; };
in {
config = lib.mkIf (config.syscfg.make.gui) {
config = lib.mkIf (config.homecfg.make.gui) {
home.pointerCursor = {
package = pkgs.bibata-cursors;
name = "Bibata-Modern-Classic";
@@ -17,7 +17,7 @@ in {
gtk = {
enable = true;
theme = {
name = "${config.colorscheme.slug}-Dark";
name = "${config.colorscheme.slug}";
package = gtkThemeFromScheme;
};
iconTheme = {
@@ -28,7 +28,7 @@ in {
qt = {
enable = true;
platformTheme.name = "gtk";
platformTheme = "gtk";
};
home.packages = [ wallpaperGen pkgs.swww ];

View File

@@ -9,89 +9,60 @@ let
in pkgs.stdenv.mkDerivation rec {
name = "generated-gtk-theme-${scheme.slug}";
src = pkgs.fetchFromGitHub {
owner = "vinceliuice";
repo = "Orchis-theme";
rev = "5b73376721cf307101e22d7031c1f4b1344d1f63";
sha256 = "sha256-+2/CsgJ+rdDpCp+r5B/zys3PtFgtnu+ohTEUOtJNd1Y=";
owner = "nana-4";
repo = "materia-theme";
rev = "6e5850388a25f424b8193fe4523504d1dc364175";
sha256 = "sha256-I6hpH0VTmftU4+/pRbztuTQcBKcOFBFbNZXJL/2bcgU=";
};
nativeBuildInputs = with pkgs; [ gtk3 sassc ];
buildInputs = with pkgs; [ gnome-themes-extra ];
propagatedUserEnvPkgs = with pkgs; [ gtk-engine-murrine ];
preInstall = ''
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
cat > src/_sass/_color-palette-${scheme.slug}.scss << 'EOF'
$red-light: #${scheme.palette.low0F};
$red-dark: #${scheme.palette.high0F};
mkdir bin
sed -e 's/handle-horz-.*//' -e 's/handle-vert-.*//' -i ./src/gtk-2.0/assets.txt
$pink-light: #${scheme.palette.low0E};
$pink-dark: #${scheme.palette.high0E};
$purple-light: #${scheme.palette.low0D};
$purple-dark: #${scheme.palette.high0D};
$blue-light: #${scheme.palette.low0C};
$blue-dark: #${scheme.palette.high0C};
$teal-light: #${scheme.palette.low0B};
$teal-dark: #${scheme.palette.high0B};
$green-light: #${scheme.palette.low0A};
$green-dark: #${scheme.palette.high0A};
$sea-light: #${scheme.palette.alt_low0B};
$sea-dark: #${scheme.palette.alt_high0B};
$yellow-light: #${scheme.palette.low09};
$yellow-dark: #${scheme.palette.low09};
$orange-light: #${scheme.palette.low08};
$orange-dark: #${scheme.palette.high08};
$grey-050: #${scheme.palette.base07};
$grey-100: #${scheme.palette.base07};
$grey-150: #${scheme.palette.base06};
$grey-200: #${scheme.palette.base06};
$grey-250: #${scheme.palette.base05};
$grey-300: #${scheme.palette.base05};
$grey-350: #${scheme.palette.base04};
$grey-400: #${scheme.palette.base04};
$grey-450: #${scheme.palette.base03};
$grey-500: #${scheme.palette.base03};
$grey-550: #${scheme.palette.base02};
$grey-600: #${scheme.palette.base02};
$grey-650: #${scheme.palette.base02};
$grey-700: #${scheme.palette.base01};
$grey-750: #${scheme.palette.base01};
$grey-800: #${scheme.palette.base01};
$grey-850: #${scheme.palette.base00};
$grey-900: #${scheme.palette.base00};
$grey-950: #${scheme.palette.base00};
$white: #${scheme.palette.base07};
$black: #${scheme.palette.base00};
$button-close: #${scheme.palette.base0F};
$button-max: #${scheme.palette.base0A};
$button-min: #${scheme.palette.base08};
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
sed -i "/\@import/s/color-palette-default/color-palette-${scheme.slug}/" src/_sass/_tweaks.scss
sed -i "/\$colorscheme:/s/default/${scheme.slug}/" src/_sass/_tweaks.scss
echo "Changing colours:"
./change_color.sh -o ${scheme.slug} /build/gtk-colors -i False -t "$out/share/themes"
chmod 555 -R .
'';
installPhase = ''
runHook preInstall
bash install.sh -d $out/share/themes \
-t default \
-n ${scheme.slug} \
-c ${scheme.variant} \
-s standard \
--tweaks primary \
--round ${scheme.palette.border-radius}px
runHook postInstall
'';
}

View File

@@ -2,7 +2,7 @@
let
scheme = config.colorScheme;
colors = scheme.palette;
colors = scheme.colors;
dither =
"atkinson"; # none | floyd-steinberg | atkinson | jjn | burkes | sierra | sierra-lite
in pkgs.stdenv.mkDerivation rec {

View File

@@ -0,0 +1,39 @@
{ inputs, lib, config, ... }:
with lib; {
options.homecfg = {
username = mkOption { type = types.str; };
wm = mkOption {
type = types.enum [ "Wayland" "X11" ];
default = "Wayland";
};
make = {
cli = mkOption {
type = types.bool;
default = true;
};
gui = mkOption {
type = types.bool;
default = false;
};
game = mkOption {
type = types.bool;
default = false;
};
power = mkOption {
type = types.bool;
default = false;
};
};
git = {
username = mkOption { type = types.str; };
email = mkOption { type = types.str; };
key = mkOption { type = types.str; };
};
};
imports = with inputs; [
nix-colors.homeManagerModules.default
../../shared/colors
];
}

View File

@@ -1 +0,0 @@
{ ... }: { imports = [ ./dunst ./eww ./kanshi ./waylock ./wofi ]; }

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [ libnotify ];
services.dunst = {
enable = true;
@@ -9,27 +9,24 @@
global = {
follow = "mouse";
height = "200";
width = "350";
width = "400";
scale = "0";
origin = "top-right";
offset = "${
toString ((lib.strings.toInt config.colorScheme.palette.gaps-bar)
+ (lib.strings.toInt config.colorScheme.palette.gaps-screen))
}x${config.colorScheme.palette.gaps-screen}";
offset = "4x40";
notification_limit = "0";
progress_bar = "true";
progress_bar_height = "10";
progress_bar_frame_width = "1";
progress_bar_min_width = "150";
progress_bar_max_width = "350";
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 = "${config.colorScheme.palette.border-width}";
frame_color = "#${config.colorScheme.palette.base04}";
frame_width = "2";
frame_color = "#${config.colorScheme.colors.base03}";
separator_color = "auto";
sort = "yes";
font = "IBM Plex Mono 14";
@@ -47,8 +44,8 @@
max_icon_size = 64;
icon_path =
"${pkgs.tela-circle-icon-theme}/share/icons/Tela-circle-dark/32/status:${pkgs.tela-circle-icon-theme}/share/icons/Tela-circle-dark/32/device ";
icon_theme = "Tela-circle-dark";
"/usr/share/icons/gnome/128x128/status/:/usr/share/icons/gnome/128x128/devices/";
icon_theme = "Papirus, Adwaita";
enable_recursive_icon_lookup = "true";
sticky_history = "yes";
@@ -59,7 +56,7 @@
always_run_script = "true";
title = "Dunst";
class = "Dunst";
corner_radius = "${config.colorScheme.palette.border-radius}";
corner_radius = "10";
ignore_dbusclose = "false";
layer = "top";
force_xwayland = "true";
@@ -71,25 +68,25 @@
};
urgency_low = {
background = "#${config.colorScheme.palette.base01}";
foreground = "#${config.colorScheme.palette.base07}";
frame_color = "#${config.colorScheme.palette.base03}";
background = "#${config.colorScheme.colors.base00}";
foreground = "#${config.colorScheme.colors.base07}";
frame_color = "#${config.colorScheme.colors.base03}";
timeout = "3";
highlight = "#${config.colorScheme.palette.base0B}";
highlight = "#${config.colorScheme.colors.base0B}";
};
urgency_normal = {
background = "#${config.colorScheme.palette.base01}";
foreground = "#${config.colorScheme.palette.base07}";
frame_color = "#${config.colorScheme.palette.base04}";
background = "#${config.colorScheme.colors.base00}";
foreground = "#${config.colorScheme.colors.base07}";
frame_color = "#${config.colorScheme.colors.base03}";
timeout = "5";
highlight = "#${config.colorScheme.palette.base0C}";
highlight = "#${config.colorScheme.colors.base0C}";
};
urgency_critical = {
background = "#${config.colorScheme.palette.base01}";
foreground = "#${config.colorScheme.palette.base0F}";
frame_color = "#${config.colorScheme.palette.base0F}";
background = "#${config.colorScheme.colors.base00}";
foreground = "#${config.colorScheme.colors.base0F}";
frame_color = "#${config.colorScheme.colors.base03}";
timeout = "10";
highlight = "#${config.colorScheme.palette.base0E}";
highlight = "#${config.colorScheme.colors.base0E}";
};
};
};

View File

@@ -1,48 +0,0 @@
.calendar-win {
}
calendar {
padding: 5pt;
:selected {
color: $base0C;
}
.header {
color: $base05;
}
.highlight {
color: $base0C;
font-weight: bold;
}
label {
font-size: 20pt;
color: $base0C;
}
:indeterminate {
color: $base03;
}
}
.hour, .month {
font-weight: bolder;
}
.minute, .month {
margin-top: -4pt;
}
.date {
color: $base0C;
background-color: $base01;
border-radius: $border-radius;
}
.datetime {
padding: $gaps-window;
}

View File

@@ -1,8 +0,0 @@
.net {
color: $base07;
}
.blt {
color: $base0C;
}

View File

@@ -1,26 +0,0 @@
.powermenu-box {
padding-left: 2.5rem;
padding-right: 2.5rem;
padding-top: 3rem;
padding-bottom: 3rem;
margin:0 0 0 0;
}
.powermenu-entry {
margin: 0 0.5rem;
}
.powermenu-button {
background-color: $base02;
border-radius: 1rem;
transition: 0.3s;
padding: 3.25rem 4rem;
}
.powermenu-button:hover {
background-color:$base03;
}
.powermenu-icon {
font-size: 4rem;
}

View File

@@ -1,75 +0,0 @@
.radio-win {
//margin: $gaps-screen;
//padding: .5em;
}
.album_art {
background-repeat: no-repeat;
background-size: 240px;
min-height: 240px;
min-width: 240px;
margin: $gaps-screen;
border-radius: $border-radius;
}
.song {
color: $base0C;
font-size: 24px;
font-weight: bold;
margin: 20px 0px 0px 0px;
}
.artist {
color: $base0E;
font-size: 16px;
font-weight: normal;
margin: 0px 0px $gaps-screen 0px;
}
.btn_bar {
color: $base05;
font-size: 20px;
font-weight: bold;
margin: $gaps-screen 0px;
}
.btn_play {
font-size: 48px;
font-weight: bold;
margin: 0 12px;
}
.btn_play:hover {
color: $base07;
}
.station_list {
border-right-color: $base03;
border-right-style: solid;
border-right-width: $border-width;
margin-right: $gaps-screen;
}
.station_art {
background-repeat: no-repeat;
background-size: 50px;
min-height: 50px;
min-width: 50px;
margin: $gaps-window;
margin-right: $gaps-screen;
background-color: $base00;
border-radius: $border-radius;
border-color: $base00;
border-style: solid;
border-width: $border-width;
}
.station_art:hover {
border-color: $base04;
}
.station_sel {
border-color: $base03;
}

View File

@@ -1,69 +0,0 @@
.cpubar {
color: $base0C;
}
.gpubar {
color: $base0E;
}
.membar {
color: $base08;
}
.batbar {
color: $base0B;
}
.cpubar,
.gpubar,
.membar,
.batbar {
background-color: $bg0;
margin: $gaps-window 0;
}
.cpu-core-usage, .gpu-core-usage, .memory-usage {
background-color: $bg0;
border-radius: $border-radius;
padding: 2pt;
margin: 1pt;
}
.cpu-core-usage trough * {
background-color: $base0C;
border-radius: $border-radius;
padding: 2pt;
}
.gpu-core-usage trough * {
background-color: $base0E;
border-radius: $border-radius;
padding: 2pt;
}
.memory-usage trough * {
background-color: $base08;
border-radius: $border-radius;
padding: 2pt;
}
.spacer {
color: $bg1;
padding: $gaps-window;
margin:0;
}
.sys-win {
// @include window;
// background-color: $bg1;
// color: $fg;
// margin: $gaps-win;
padding: 5pt;
}
.sys-label {
font-weight: bolder;
color: $base04;
}

View File

@@ -1,35 +0,0 @@
.tray * {
padding: $border-width 0px;
}
.tray menu {
background-color: $base01;
color: $base07;
@include border-radius;
@include border-active;
padding: 10px 0px;
>menuitem {
margin: 2px $border-width;
padding: 0px 10px;
&:disabled label {
color: $base04;
}
&:hover {
background-color: $base0C;
}
}
separator {
background-color: $base03;
padding-top: 1px;
margin:10px 0px;
&:last-child {
padding: unset;
}
}
}

View File

@@ -1,130 +0,0 @@
@import 'css/colors';
/* MIXIN */
@mixin border-radius {
border-radius: $border-radius;
}
@mixin border-inactive {
border-width: $border-width;
border-style: solid;
border-color: $base03;
}
@mixin border-active {
border-width: $border-width;
border-style: solid;
border-color: $base04;
}
@mixin test {
}
/* GENERAL */
* {
all: unset;
font-family: "IBM Plex Mono";
transition: 200ms ease;
}
tooltip {
background: $base01;
border: $border-width solid $base04;
border-radius: $border-radius;
label {
font-size: 1rem;
}
}
.icon,
.icon label { font-family: Material Design Icons; }
.icon-text {
padding: 4pt;
font-size: 6pt;
font-weight: 900;
}
.grey {
color: $base02;
}
.red {
color: $base0F;
}
.orange {
color: $base08;
}
.green {
color: $base0B;
}
.blue {
color: $base0C;
}
/* WINDOW WRAPPER CSS */
.winevent {
background-color: $base01;
color: $base07;
@include border-radius;
@include border-inactive;
}
.winevent:hover {
@include border-active;
}
.wininner {
padding: $gaps-window;
}
.winouter {
margin: $gaps-screen;
}
/* MODULE WRAPPER CSS */
.modevent {
background-color: $base01;
color: $base07;
@include border-radius;
@include border-inactive;
border-right-style: none;
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.modevent:hover {
@include border-active;
border-right-style: none;
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.modinner {
padding: $gaps-screen 0 $gaps-screen $gaps-window;
}
.modouter {
margin: $gaps-screen 0;
}
/* IMPORTS EXTERNAL */
@import 'css/sys';
@import 'css/net';
@import 'css/clock';
@import 'css/radio';
@import 'css/powermenu';
@import 'css/systray';
/* BAR */
.bar label {
font-size: 1.2rem;
}

View File

@@ -1,87 +0,0 @@
(include "modules/workspaces.yuck")
(include "modules/sys.yuck")
(include "modules/net.yuck")
(include "modules/systray.yuck")
(include "modules/clock.yuck")
(include "windows/calendar.yuck")
(include "windows/sys.yuck")
(include "windows/radio.yuck")
(include "windows/powermenu.yuck")
(defwidget left []
(box
:space-evenly false
:orientation "v"
:halign "end"
:valign "start"
(workspace-mod)))
(defwidget right []
(box
:space-evenly false
:orientation "v"
:halign "end"
:valign "end"
(sys-mod)
(net-mod)
(systray-mod)
(clock-mod)))
(defwidget center []
(box
:space-evenly false
:orientation "v"
:halign "end"
:valign "center"
(radio-mod)))
(defwidget bar-box []
(centerbox
:orientation "v"
:class "bar"
(left)
(center)
(right)))
(defwindow bar
:monitor 0
:geometry (geometry
:x "0%"
:y "0%"
:width "20px"
:height "100%"
:anchor "right center")
:stacking "fg"
:exclusive true
(bar-box))
(defwidget window []
(box
:class "winouter"
(eventbox
:class "winevent"
(box
:class "wininner"
(children)
)
)
)
)
(defwidget module []
(box
:class "modouter"
(eventbox
:class "modevent"
(box
:class "modinner"
(children)
)
)
)
)

View File

@@ -1,42 +0,0 @@
(defvar date_rev false)
(defwidget clock-mod []
(module
(eventbox
:onhover "${EWW_CMD} update date_rev=true"
:onhoverlost "${EWW_CMD} update date_rev=false"
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle calendar)"
:onrightclick "(sleep 0.1 && ${EWW_CMD} open --toggle powermenu)"
(box
:class "datetime"
(overlay
(box
:orientation "v"
(label :show-truncated false
:class "hour"
:text {hour})
(label :show-truncated false
:class "minute"
:text {minute}))
(revealer
:reveal date_rev
(box
:class "date"
:orientation "v"
(label :show-truncated "false"
:class "day"
:text {day})
(label :show-truncated "false"
:class "month"
:text {month}))
)
)
)
)
)
)
(defpoll hour :interval "15s" "date '+%H'")
(defpoll minute :interval "15s" "date '+%M'")
(defpoll day :interval "15s" "date '+%d'")
(defpoll month :interval "15s" "date '+%m'")

View File

@@ -1,17 +0,0 @@
(deflisten net :initial '{"name":"","icon":""}'"scripts/net/net")
(defwidget net-mod []
(module
(box
:orientation "v"
(button
:class "net"
:tooltip {net.name}
{net.icon})
(button
:class "blt"
(label :class "icon-text" :text "B"))
)
)
)

View File

@@ -1,42 +0,0 @@
(deflisten cpu :initial '{}' "scripts/sys/cpu")
(deflisten gpu :initial '{"devices":[{"GRBM2":{}}]}' "scripts/sys/gpu")
(deflisten memory :initial '{"human":{"used":"0G","total":"0G"},"used":0.0,"total":1.0}' "scripts/sys/memory")
(deflisten battery :initial '{"visible":false,"percentage":0.0,"color":"#FFFFFF"}' "scripts/sys/battery")
(defwidget sys-mod []
(module
(eventbox
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle sys)"
(box
:orientation "v"
(circular-progress
:value {EWW_CPU.avg}
:class "cpubar"
:thickness 6
(label :class "icon-text" :text "C"))
(circular-progress
:value {gpu.devices[0].GRBM2?.CommandProcessor-Graphics?.value?:0}
:class "gpubar"
:thickness 6
(label :class "icon-text" :text "G"))
(circular-progress
:value {100*memory.used/memory.total}
:class "membar"
:thickness 6
:tooltip "${memory.human.used} / ${memory.human.total}"
(label :class "icon-text" :text "M"))
(circular-progress
:value {battery.percentage}
:class "batbar"
:visible {battery.visible}
:style "color: ${battery.color};"
:thickness 6
:tooltip "${battery.status} @ ${battery.wattage}"
(label :class "icon-text" :text "B"))
)
)
)
)

View File

@@ -1,15 +0,0 @@
(defwidget systray-mod []
(module
(box
:orientation "v"
(systray
:class "tray"
:space-evenly "true"
:orientation "v"
:icon-size 20
:prepend-new "false"
)
)
)
)

View File

@@ -1,23 +0,0 @@
(deflisten workspace :initial '[]' "scripts/workspaces")
(defwidget workspace-mod []
(module
(eventbox
:onscroll "echo {} | sed -e \"s/up/-1/g\" -e \"s/down/+1/g\" | xargs hyprctl dispatch workspace"
(box
:class "module workspaces"
:orientation "v"
(for ws in workspace
(button
:onclick "hyprctl dispatch workspace ${ws.number}"
(label
:show-truncated false
:class "icon-text ${ws.color}"
:text `${ws.focused ? "󰜗" : "󰝥"}`
)
)
)
)
)
)
)

View File

@@ -1,108 +0,0 @@
#!/usr/bin/env bash
get_time_ms() {
date -u +%s%3N
}
URL_BASE="https://www.radiorecord.ru/api"
MPV_PID_FILE="/tmp/mpv_radio_pid"
RADIO_ID_FILE="/tmp/radio_id"
STATIONS="[]"
PID=$( [ -e "$MPV_PID_FILE" ] && cat "$MPV_PID_FILE" || echo 0 )
RADIO_ID=$( [ -e "$RADIO_ID_FILE" ] && cat "$RADIO_ID_FILE" || echo 0 )
RADIO_URL=""
INFO='{"id":null,"artist":null,"song":null,"image600":null}'
PAUSED=$(( $PID == 0 || $RADIO_ID == 0 ? 1 : 0 ))
STATUS="{}"
get_radio() {
echo "$STATIONS" | jq -r --argjson sel_id "$RADIO_ID" 'map(select(.id == $sel_id)).[0]'
}
get_song() {
echo $(curl -s "$URL_BASE/station/history/?id=$RADIO_ID" | jq '.result.history[0] | ({id, artist, song, image600})')
}
update() {
PID=$( [ -e "$MPV_PID_FILE" ] && cat "$MPV_PID_FILE" || echo 0 )
RADIO_ID=$( [ -e "$RADIO_ID_FILE" ] && cat "$RADIO_ID_FILE" || echo 0 )
PAUSED=$(( $PID == 0 && $RADIO_ID > 0 ? 1 : 0 ))
}
start() {
STATIONS=$(curl -s "$URL_BASE/stations/" | jq --argjson ids '[507,522,523,536,537,42532,42602]' '.result.stations | map(select(.id | IN($ids[]))) | map({id, title, stream_hls, icon_fill_white})')
RADIO_URL=$(get_radio | jq -r '.stream_hls')
if [ "$PAUSED" = 0 ]; then
kill -9 $PID
fi
mpv "$RADIO_URL" & echo $! > "$MPV_PID_FILE"
echo $RADIO_ID > "$RADIO_ID_FILE"
}
toggle() {
if [ "$PAUSED" = 1 ]; then
echo $RADIO_ID $PID
start
else
kill -9 "$PID"
rm -f $MPV_PID_FILE
fi
}
status() {
echo $(jq -cnr --argjson pid "$PID" --argjson stations "$STATIONS" --argjson radio_id "$RADIO_ID" --argjson is_paused "$PAUSED" --argjson info "$INFO" '{"is_paused": $is_paused, "song": $info, "radio": $radio_id, "stations": $stations}')
}
status_loop() {
STATUS=$(status)
echo $STATUS
STATIONS=$(curl -s "$URL_BASE/stations/" | jq --argjson ids '[507,522,523,536,537,42532,42602]' '.result.stations | map(select(.id | IN($ids[]))) | map({id, title, stream_hls, icon_fill_white})')
last_time_info=0
last_time=0
while true; do
current_time=$(get_time_ms)
delta=$((current_time - last_time))
delta_i=$((current_time - last_time_info))
if [[ $delta -gt 1000 ]]; then
PID=$( [ -e "$MPV_PID_FILE" ] && cat "$MPV_PID_FILE" || echo 0 )
RADIO_ID=$( [ -e "$RADIO_ID_FILE" ] && cat "$RADIO_ID_FILE" || echo 0 )
PAUSED=$(( $PID == 0 && $RADIO_ID > 0 ? 1 : 0 ))
NEW_STATUS=$(status)
if [[ "$NEW_STATUS" != "$STATUS" ]]; then
STATUS=$NEW_STATUS
echo $STATUS
fi
last_time=$current_time
fi
if [[ $delta_i -gt 15000 ]]; then
if [ "$PAUSED" = 1 ]; then
INFO="{\"id\":null,\"artist\":null,\"song\":null,\"image600\": \"$(get_radio | jq -r '.icon_fill_white')\"}"
else
INFO=$(echo "$INFO" "$(get_song)" | jq -s ' reduce .[] as $item ( {}; . + (
reduce ($item | to_entries[]) as $entry ( {}; if $entry.value != null then .[$entry.key] = $entry.value else . end
)) )')
fi
last_time_info=$current_time
fi
done
}
# Main script
case "$1" in
"start")
RADIO_ID=$2
start
;;
"toggle")
toggle
;;
*)
status_loop
;;
esac

View File

@@ -1 +0,0 @@
#!/usr/bin/env zsh

View File

@@ -1,3 +0,0 @@
#!/usr/bin/env zsh
amdgpu_top -J -s 5000 | sed 's/ //g'

View File

@@ -1,9 +0,0 @@
(defwindow calendar
:monitor 0
:geometry (geometry
:x "0%"
:y "0%"
:anchor "bottom right"
:width "0px"
:height "0px")
(window (calendar)))

View File

@@ -1,45 +0,0 @@
(defwidget powermenu_entry [label icon onclick]
(box :orientation "v" :space-evenly false :class "powermenu-entry"
(button :class "powermenu-button" :onclick {onclick}
:tooltip "${label}"
(label :class "powermenu-icon" :text {icon})
)
)
)
(defwidget powermenu []
(box :orientation "h" :space-evenly true :valign "center" :halign "center" :class "powermenu-box"
(powermenu_entry :label "Power off"
:icon "󰐥"
:onclick "systemctl poweroff")
(powermenu_entry :label "Reboot"
:icon "󰜉"
:onclick "systemctl reboot")
(powermenu_entry :label "Lock"
:icon "󰍁"
:onclick "sleep 0.1 && gtklock & eww close powermenu &")
(powermenu_entry :label "Suspend"
:icon "󰤄"
:onclick "sleep 0.1 && gtklock & systemctl suspend & eww close powermenu &")
(powermenu_entry :label "Sign out"
:icon "󰗼"
:onclick "hyprctl dispatch exit 0")
(powermenu_entry :label "Cancel"
:icon "󰅖"
:onclick "eww close powermenu")
)
)
(defwindow powermenu
:monitor 0
:stacking "overlay"
:geometry (geometry
:anchor "center"
:width "120%"
:height "120%")
:namespace "eww-blur"
(powermenu)
)

View File

@@ -1,111 +0,0 @@
(deflisten radio :initial '{"is_paused":1,"song":{"artist":"","song":"","image600":"https://www.radiorecord.ru/upload/stations_images/record_image600_white_fill.png"},"stations":[]}' "scripts/radio")
(defvar radio_rev false)
(defwindow radio
:monitor 0
:geometry (geometry
:x "0%"
:y "0%"
:anchor "bottom right"
:width "0px"
:height "0px")
(window (radio-win)))
(defwidget radio-win []
(box
:space-evenly false
:orientation "h"
(revealer
:visible radio_rev
:reveal radio_rev
:transition "slideleft"
(radio-selector))
(box
:space-evenly false
:orientation "v"
(box
:class "album_art"
:style "background-size:cover; background-image: url('${radio.song.image600?:'https://www.radiorecord.ru/upload/stations_images/record_image600_white_fill.png'}');")
(box
:space-evenly false
:orientation "v"
(label
:halign "center"
:class "song"
:wrap "true"
:limit-width 18
:text "${radio.song.song?:'...'}")
(label
:halign "center"
:class "artist"
:wrap "true"
:limit-width 22
:text "${radio.song.artist?:'...'}")
(box
:space-evenly true
:orientation "h"
:halign "center"
:class "btn_bar"
(button
:class "btn_left"
:onclick "${EWW_CMD} update radio_rev=${!radio_rev}"
(box "󰷐"))
(button
:class "btn_play"
:timeout "2s"
:onclick "scripts/radio toggle"
"${radio.is_paused==1 ? "󰐌" : "󰏥"}")
(button
:class "btn_right"
:onclick ""
(box :visible false "󰔶"))
)
)
)
)
)
(defwidget radio-selector []
(scroll
:active true
:vscroll true
:hscroll false
(box
:class "station_list"
:space-evenly false
:orientation "v"
(for station in {radio.stations}
(button
:class "station_art ${(radio.radio == station.id)?'station_sel':''}"
:timeout "2s"
:onclick "scripts/radio start ${station.id}"
:tooltip "${station.title}"
:style "background-size:cover; background-image: url('${station.icon_fill_white}');"
)
)
)
)
)
(defwidget radio-mod []
(module
(box
:orientation "v"
(button
:onclick "(sleep 0.1 && ${EWW_CMD} open --toggle --no-daemonize radio)"
(label
:show-truncated false
:class "icon-text"
:text "󰝚")
)
)
)
)

View File

@@ -1,140 +0,0 @@
(defwidget cpu-sys-win []
(box
:orientation "v"
:space-evenly false
(box :class "sys-label" "CPU")
(box
:orientation "v"
(for core in {EWW_CPU.cores}
(box
:space-evenly false
:class "cpu-core ${core.core}"
(progress
:value {core.usage}
:orientation "h"
:flipped true
:class "cpu-core-usage"
:tooltip "${core.core} @ ${core.freq}Mhz"
)
)
)
)
)
)
(defwidget gpu-sys-win []
(box
:orientation "v"
:space-evenly false
(box :class "sys-label" "GPU")
(progress
:value {gpu.devices[0].GRBM2?.CommandProcessor-Compute?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "Compute"
)
(progress
:value {gpu.devices[0].GRBM2?.CommandProcessor-Fetcher?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "Fetcher"
)
(progress
:value {gpu.devices[0].GRBM2?.CommandProcessor-Graphics?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "Graphics"
)
(box :class "spacer")
(progress
:value {gpu.devices[0]?.gpu_activity?.GFX?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "GFX"
)
(progress
:value {gpu.devices[0]?.gpu_activity?.Memory?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "Memory"
)
(progress
:value {gpu.devices[0]?.gpu_activity?.MediaEngine?.value?:0.0}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "Media"
)
(box :class "spacer")
(progress
:value {100*(gpu.devices[0]?.VRAM?.TotalVRAMUsage?.value?:0.0)/(gpu.devices[0]?.VRAM?.TotalVRAM?.value?:1.0)}
:orientation "h"
:flipped true
:class "gpu-core-usage"
:tooltip "VRAM"
)
)
)
(defwidget ram-sys-win []
(box
:orientation "v"
:space-evenly false
(box :class "sys-label" "RAM")
(progress
:value {100*memory.used/memory.total}
:orientation "h"
:flipped true
:class "memory-usage"
:tooltip "RAM"
)
)
)
(defwidget sys-win []
(box
:class "sys-win"
:space-evenly false
:orientation "h"
(box
:space-evenly false
:orientation "v"
(cpu-sys-win)
(box :class "spacer")
(box :class "spacer")
(gpu-sys-win)
(box :class "spacer")
(box :class "spacer")
(ram-sys-win)
)
(box
:visible {battery.visible}
:height 200
(graph
:height 200
:value {battery.percentage}
:time-range "30min"
:min "0.0"
:max "100.0"
:dynamic true
)
)
)
)
(defwindow sys
:monitor 0
:stacking "overlay"
:geometry (geometry
:x "0%"
:y "0%"
:anchor "bottom right"
:width "0px"
:height "0px")
(window (sys-win)))

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

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

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

View File

@@ -1,14 +1,14 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = with pkgs; [ eww jq jaq custom.amdgpu_top ];
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [ eww-wayland jaq ];
xdg.configFile."eww" = {
source = lib.cleanSourceWith {
filter = name: _type:
let baseName = baseNameOf (toString name);
in !(lib.hasSuffix ".nix" baseName) && (baseName != "_colors.scss");
src = lib.cleanSource ./bar/.;
src = lib.cleanSource ./.;
};
recursive = true;
@@ -16,35 +16,28 @@
# colors file
xdg.configFile."eww/css/_colors.scss".text = ''
$base00: #${config.colorScheme.palette.base00};
$base01: #${config.colorScheme.palette.base01};
$base02: #${config.colorScheme.palette.base02};
$base03: #${config.colorScheme.palette.base03};
$base04: #${config.colorScheme.palette.base04};
$base05: #${config.colorScheme.palette.base05};
$base06: #${config.colorScheme.palette.base06};
$base07: #${config.colorScheme.palette.base07};
$base08: #${config.colorScheme.palette.base08};
$base09: #${config.colorScheme.palette.base09};
$base0A: #${config.colorScheme.palette.base0A};
$base0B: #${config.colorScheme.palette.base0B};
$base0C: #${config.colorScheme.palette.base0C};
$base0D: #${config.colorScheme.palette.base0D};
$base0E: #${config.colorScheme.palette.base0E};
$base0F: #${config.colorScheme.palette.base0F};
$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;
$bg0: $base00;
$bg: $base00;
$bg1: $base01;
$border-color: $base03;
$border-color-focus: $base04;
$border-radius: ${config.colorScheme.palette.border-radius}px;
$border-width: ${config.colorScheme.palette.border-width}px;
$gaps-screen: ${config.colorScheme.palette.gaps-screen}px;
$gaps-window: ${config.colorScheme.palette.gaps-window}px;
$border: $base03;
'';
};
}

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

View 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))

View 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})))))

View File

@@ -0,0 +1,7 @@
(defwidget net []
(button
:class "module icon"
:onclick "gnome-control-center &"
:tooltip {net.name}
:style "color: ${net.color};"
{net.icon}))

View 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 "")))))

View 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")

View 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))))))

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env zsh
#!/usr/bin/env bash
icons=("󰂎" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹")
num_icons=$(awk -v n="${#icons[@]}" 'BEGIN{print 100 / n}')
@@ -11,7 +11,7 @@ geticon() {
status() {
if [ "$STATE" = "Charging" ]; then
echo -n "Charging"
echo -n "charging"
if [ "$RATE" -gt 0 ]; then
echo ", $(gettime) left"
@@ -21,7 +21,7 @@ status() {
elif [ "$STATE" = "Discharging" ]; then
echo "$(gettime)h left"
else
echo "Fully Charged"
echo "fully charged"
fi
}
@@ -39,9 +39,9 @@ gettime() {
if [ "$RATE" -gt 0 ]; then
if [ "$STATE" = "Discharging" ]; then
EX=$(( ($NOW*1.0) / $RATE))
EX="$NOW / $RATE"
else
EX=$(( (($FULL - $NOW)*1.0) / $RATE))
EX="($FULL - $NOW) / $RATE"
fi
date -u -d@"$(awk -v ex="$EX" 'BEGIN{print ex * 3600}')" +%H:%M
fi
@@ -53,9 +53,9 @@ if [ -d "$BATTERY" ]; then
CAPACITY=$(cat $BATTERY/capacity)
STATE=$(cat $BATTERY/status)
echo '{ "visible": true, "icon": "'$(geticon)'", "percentage": '$CAPACITY', "wattage": "'$(wattage)'", "status": "'$(status)'", "color": "'$(color)'" }'
sleep 15
echo '{ "icon": "'$(geticon)'", "percentage": '$CAPACITY', "wattage": "'$(wattage)'", "status": "'$(status)'", "color": "'$(color)'" }'
sleep 5
done
else
echo '{ "visible": false, "icon": "", "percentage": 0, "wattage": "", "status": "", "color": "#a6e3a1" }'
echo '{ "icon": "", "percentage": 0, "wattage": "", "status": "", "color": "#a6e3a1" }'
fi

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env zsh
#!/usr/bin/env bash
total="$(free --si | rg Mem | awk '{print $2}')"
@@ -8,5 +8,7 @@ human() {
free --si -s 3 | rg --line-buffered Mem | while read -r line; do
used=$(echo "$line" | awk '{print $3}')
echo '{"human": { "total": "'$(human "$total")'", "used": "'$(human "$used")'"}, "total": "'$total'" , "used": "'$used'"}'
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

View File

@@ -1,4 +1,4 @@
#!/usr/bin/env zsh
#!/usr/bin/env bash
function get_time_ms {
date -u +%s%3N
@@ -24,16 +24,15 @@ function gen_wifi() {
fi
icon=${icons[$level]}
ip="-"
color="#cba6f7"
class="net-connected"
name_raw=$(wpa_cli status | grep \^ssid= | sed 's/ssid=//g')
name=$(printf "%s" $name_raw)
name=$(wpa_cli status | grep \^ssid= | sed 's/ssid=//g')
}
function gen_ethernet() {
icon="󰈀"
class="net-connected"
ip=""
color="#cba6f7"
name=Wired
}
@@ -49,12 +48,12 @@ function make_content() {
gen_wifi
else
icon="󰤮"
ip="-"
color="#988ba2"
class="net-disconnected"
name="Disconnected"
fi
echo '{"icon": "'$icon'", "name": "'$name'", "ip": "'$ip'", "class": "'$class'"}'
echo '{"icon": "'$icon'", "name": "'$name'", "color": "'$color'", "class": "'$class'"}'
}
if [ "$1" = "toggle" ]; then

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
colors=("blue" "blue" "green" "red")
colors=("blue" "orange" "green" "red")
empty="grey"
# get initial focused workspace
@@ -64,7 +64,7 @@ done
generate
# main loop
socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/"$HYPRLAND_INSTANCE_SIGNATURE"/.socket2.sock - | rg --line-buffered "workspace|mon(itor)?" | while read -r line; do
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#*>>}

View 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))

View 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))

View File

@@ -1,101 +0,0 @@
{ config, lib, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
services.kanshi = {
enable = true;
systemdTarget = "graphical-session.target";
settings = [
{
profile.name = "tower_0";
profile.outputs = [{
criteria = "CEX CX133 0x00000001";
mode = "1920x1200@59.972";
position = "0,0";
scale = 1.0;
status = "enable";
}];
}
{
profile.name = "tower_1";
profile.outputs = [{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
position = "0,0";
status = "enable";
scale = 1.0;
adaptiveSync = true;
}];
}
{
profile.name = "tower_2";
profile.outputs = [
{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
position = "0,0";
status = "enable";
scale = 1.0;
adaptiveSync = true;
}
{
criteria = "CEX CX133 0x00000001";
mode = "1920x1200@59.972";
position = "0,1080";
scale = 1.0;
status = "enable";
}
];
}
{
profile.name = "laptop_0";
profile.outputs = [{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "0,0";
scale = 1.0;
status = "enable";
}];
}
{
profile.name = "laptop_1";
profile.outputs = [
{
criteria = "CEX CX133 0x00000001";
mode = "2560x1600@59.972";
position = "0,0";
scale = 1.0;
status = "enable";
}
{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "2560,0";
scale = 1.0;
status = "enable";
}
];
}
{
profile.name = "laptop_2";
profile.outputs = [
{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
position = "0,0";
status = "enable";
scale = 1.0;
adaptiveSync = true;
}
{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
position = "1920,0";
scale = 1.0;
status = "enable";
}
];
}
];
};
};
}

View File

@@ -1,245 +0,0 @@
{ lib, config, pkgs, ... }:
let
jsonOutput = name:
{ pre ? "", text ? "", tooltip ? "", alt ? "", class ? "", percentage ? ""
}:
"${
pkgs.writeShellScriptBin "waybar-${name}" ''
set -euo pipefail
${pre}
${pkgs.jq}/bin/jq -cn \
--arg text "${text}" \
--arg tooltip "${tooltip}" \
--arg alt "${alt}" \
--arg class "${class}" \
--arg percentage "${percentage}" \
'{text:$text,tooltip:$tooltip,alt:$alt,class:$class,percentage:$percentage}'
''
}/bin/waybar-${name}";
in {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
home.packages = [ pkgs.custom.amdgpu_top pkgs.jq ];
programs.waybar = {
enable = true;
package = pkgs.waybar;
systemd.enable = false;
style = ''
* {
border: none;
border-radius: ${config.colorScheme.palette.border-radius}pt;
font-family:'Monospace','Material Design Icons','Openmoji';
font-size: 13pt;
color: #${config.colorScheme.palette.base07};
}
window#waybar {
background: transparent;
padding-top: ${config.colorScheme.palette.gaps-screen}pt;
padding-bottom: ${config.colorScheme.palette.gaps-screen}pt;
}
tooltip {
background: #${config.colorScheme.palette.base01};
border-radius: ${config.colorScheme.palette.border-radius}pt;
border-color: #${config.colorScheme.palette.base03};
border-width: ${config.colorScheme.palette.border-width}pt;
border-style: solid;
font-size: 13pt;
}
tooltip label {
padding: 8px;
}
#workspaces {
font-size: 64pt;
}
#workspaces button {
padding: 2pt;
padding-left: 4pt;
}
#workspaces button.focused {
color: #${config.colorScheme.palette.base0C};
}
#workspaces button.active {
color: #${config.colorScheme.palette.base0C};
}
#workspaces button.urgent {
color: #${config.colorScheme.palette.base08};
}
#workspaces button:hover icon {
color: #${config.colorScheme.palette.base04};
}
#workspaces,
#network,
#pulseaudio,
#backlight, #battery,
#cpu, #memory, #custom-gpu,
#tray,
#custom-powermenu,
#clock, #clock.date, #clock.time
{
background: #${config.colorScheme.palette.base01};
margin-bottom: ${config.colorScheme.palette.gaps-window}pt;
padding-top: 2px;
padding-left: 2px;
padding-bottom: 2px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
border-top: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03};
border-left: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03};
border-bottom: ${config.colorScheme.palette.border-width}px solid #${config.colorScheme.palette.base03};
}
#custom-powermenu {
margin-bottom: 0pt;
border-bottom-left-radius: 0px;
border-bottom: none;
padding-bottom: 0px;
}
'';
settings = [{
"layer" = "top";
"position" = "right";
modules-left = [ "hyprland/workspaces" ];
modules-center = [ ];
modules-right = [
"pulseaudio"
"backlight"
"cpu"
"custom/gpu"
"memory"
"network"
"battery"
"tray"
"clock"
"custom/powermenu"
];
"hyprland/workspaces" = {
"format" = "{icon}";
"on-click" = "activate";
"active-only" = "false";
"format-icons" = {
"default" = "󰝦";
"active" = "󰝥";
"urgent" = "󰺕";
"focused" = "󰪥";
};
"persistent-workspaces" = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
"7" = [ ];
"8" = [ ];
"9" = [ ];
"10" = [ ];
};
"on-scroll-up" = "hyprctl dispatch workspace r-1";
"on-scroll-down" = "hyprctl dispatch workspace r+1";
};
"backlight" = {
"device" = "amd_backlight";
"on-scroll-up" = "light -A 5";
"on-scroll-down" = "light -U 5";
"format" = "{icon}";
"format-icons" = [ "󱩎" "󱩑" "󱩔" "󰛨" ];
};
"pulseaudio" = {
"scroll-step" = 5;
"format" = "{icon}";
"format-muted" = "󰝟";
"format-icons" = { "default" = [ "󰕿" "󰖀" "󰕾" ]; };
"on-click" = "amixer -D pulse sset Master toggle -q";
};
"battery" = {
"interval" = 30;
"states" = {
"warning" = 20;
"critical" = 10;
};
"format" = "{icon}";
"format-icons" = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
"format-full" = "{icon}";
"format-charging" = "{icon}󱐋";
};
"clock" = {
"interval" = 30;
"format" = ''
{:<b>%H</b>
%M}'';
"tooltip-format" = ''
<big><b>{:%d/%m/%Y}</b></big>
<tt><small>{calendar}</small></tt>'';
"calendar" = { "months" = ""; };
};
"memory" = {
"interval" = 5;
"format" = ''
󰍛
{icon}'';
"format-icons" = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"states" = { "warning" = 85; };
};
"cpu" = {
"interval" = 1;
"format-icons" = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"format" = ''
󱛠
{icon}'';
};
"custom/gpu" = {
"exec" = jsonOutput "gpu" {
tooltip = "...";
percentage = ''
$(amdgpu_top -J -n 1 | jq -r '.devices[0].GRBM2."Command Processor - Graphics".value')'';
};
"return-type" = "json";
"interval" = 5;
"format-icons" = [ "󰝦" "󰪞" "󰪟" "󰪠" "󰪡" "󰪢" "󰪣" "󰪤" "󰪥" ];
"format" = ''
󰇞
{icon}'';
};
"network" = {
"format-disconnected" = "󰯡";
"format-ethernet" = "󰀂";
"format-linked" = "󰖪";
"format-wifi" = "󰖩";
"interval" = 1;
"tooltip-format-disconnected" = "Disconnected";
"tooltip-format-ethernet" = "{ifname} @ {ipaddr}";
"tooltip-format-linked" = "{essid}: {ifname} @ -";
"tooltip-format-wifi" = "{essid}: {ifname} @ {ipaddr}";
};
"temperature" = {
# "hwmon-path"= "${env:HWMON_PATH}";
#"critical-threshold"= 80;
"format" = "󰔏 {temperatureC}°C";
};
"custom/powermenu" = {
"format" = "{icon}";
"format-icons" = [ "󰐥" ];
"on-click" = "eww open powermenu";
"tooltip" = false;
};
"tray" = {
"icon-size" = 15;
"spacing" = 5;
};
}];
};
};
}

View File

@@ -1,12 +1,10 @@
{ lib, pkgs, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [ swayidle swaylock-effects ];
home.packages = with pkgs; [ swayidle swaylock-effects wlogout ];
xdg.configFile."swaylock/config".text = ''
screenshots
grace-no-mouse
grace-no-touch
grace=5
effect-pixelate=5
fade-in=0.2
@@ -14,43 +12,92 @@
ignore-empty-password
font=IBM Plex Mono
color=${config.colorScheme.palette.base00}00
color=${config.colorscheme.colors.base00}00
indicator-radius=100
indicator-thickness=30
separator-color=${config.colorScheme.palette.base00}00
separator-color=${config.colorscheme.colors.base00}00
inside-color=${config.colorScheme.palette.base0C}00
inside-clear-color=${config.colorScheme.palette.base08}FF
inside-caps-lock-color=${config.colorScheme.palette.base09}00
inside-ver-color=${config.colorScheme.palette.base0C}FF
inside-wrong-color=${config.colorScheme.palette.base0F}FF
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.palette.base00}00
ring-clear-color=${config.colorScheme.palette.base00}00
ring-caps-lock-color=${config.colorScheme.palette.base00}00
ring-ver-color=${config.colorScheme.palette.base00}00
ring-wrong-color=${config.colorScheme.palette.base00}00
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.palette.base00}00
line-clear-color=${config.colorScheme.palette.base00}00
line-caps-lock-color=${config.colorScheme.palette.base00}00
line-ver-color=${config.colorScheme.palette.base00}00
line-wrong-color=${config.colorScheme.palette.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.palette.base00}00
text-clear-color=${config.colorScheme.palette.base00}00
text-caps-lock-color=${config.colorScheme.palette.base00}00
text-ver-color=${config.colorScheme.palette.base00}00
text-wrong-color=${config.colorScheme.palette.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.palette.base0C}FF
bs-hl-color=${config.colorScheme.palette.base08}FF
caps-lock-key-hl-color=${config.colorScheme.palette.base09}FF
caps-lock-bs-hl-color=${config.colorScheme.palette.base09}FF
key-hl-color=${config.colorscheme.colors.base0C}FF
bs-hl-color=${config.colorscheme.colors.base08}FF
caps-lock-key-hl-color=${config.colorscheme.colors.base09}FF
caps-lock-bs-hl-color=${config.colorscheme.colors.base09}FF
'';
xdg.configFile."wlogout/style.css".text = ''
window {
font-family: Material Design Icons;
font-size: 64pt;
color: #${config.colorscheme.colors.base07};
background-color: alpha(#${config.colorscheme.colors.base00},0.6);
}
button {
border-radius:7px;
border: 2px solid #${config.colorscheme.colors.base03};
color: #${config.colorscheme.colors.base07};
padding: 20px;
background-color: alpha(#${config.colorscheme.colors.base00},0.8);
transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out;
}
button:hover {
background-color: alpha(#${config.colorscheme.colors.base02},0.8);
}
button:focus {
background-color: alpha(#${config.colorscheme.colors.base02},1.0);
border: 2px solid #${config.colorscheme.colors.base05};
}
'';
xdg.configFile."wlogout/layout".text = ''
{
"label" : "lock",
"action" : "swaylock",
"text" : "󰌾",
"keybind" : "l"
}
{
"label" : "reboot",
"action" : "systemctl reboot",
"text" : "󰜉",
"keybind" : "r"
}
{
"label" : "shutdown",
"action" : "systemctl poweroff",
"text" : "󰐥",
"keybind" : "s"
}
'';
};
}

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [ wofi ];
xdg.configFile."wofi/config".text = ''
width=280
@@ -23,8 +23,8 @@
xdg.configFile."wofi/style.css".text = ''
window {
margin: 0px;
border-radius: ${config.colorScheme.palette.border-radius}px;
background-color: #${config.colorScheme.palette.base00};
border-radius:7px;
background-color: #${config.colorscheme.colors.base00};
}
#input {
@@ -33,14 +33,14 @@
padding: 4px 10px;
margin: 4px;
border: none;
color: #${config.colorScheme.palette.base07};
color: #${config.colorscheme.colors.base07};
font-weight: bold;
background-color: #${config.colorScheme.palette.base01};
outline: #${config.colorScheme.palette.base04};
background-color: #${config.colorscheme.colors.base01};
outline: #${config.colorscheme.colors.base04};
}
#input:selected {
color: #${config.colorScheme.palette.base0C};
color: #${config.colorscheme.colors.base0C};
}
#inner-box {
@@ -51,19 +51,17 @@
#outer-box {
margin: 0px;
padding: 3px;
border-radius: ${config.colorScheme.palette.border-radius}px;
border-width: ${config.colorScheme.palette.border-width}px;
border-color: #${config.colorScheme.palette.base04};
border-style: solid;
border-radius: 7px;
border: 2px solid #${config.colorscheme.colors.base03};
}
#text:selected {
color: #${config.colorScheme.palette.base00};
color: #${config.colorscheme.colors.base00};
background-color: transparent;
}
#entry:selected {
background-color: #${config.colorScheme.palette.base07};
background-color: #${config.colorscheme.colors.base07};
}
'';
};

View File

@@ -11,7 +11,7 @@ let
'';
};
in {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [
dbus-hyprland-environment
@@ -29,7 +29,7 @@ in {
glib
brightnessctl
brillo
swww
];
@@ -42,8 +42,6 @@ in {
[ "discord-402572971681644545.desktop" ];
"x-scheme-handler/discord-696343075731144724" =
[ "discord-696343075731144724.desktop" ];
"x-scheme-handler/tg" = [ "org.telegram.desktop.desktop" ];
"x-scheme-handler/tonsite" = [ "org.telegram.desktop.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
"x-scheme-handler/chrome" = [ "firefox.desktop" ];

View File

@@ -1 +0,0 @@
{ ... }: { imports = [ ./apps ./base ./hyprland ]; }

View File

@@ -1,21 +1,25 @@
{ lib, config, pkgs, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
home.packages = with pkgs; [ hyprland ];
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
extraConfig = ''
monitor=,preferred,auto,auto
env=bitdepth,10
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
sensitivity = 0 # -0.5 # -1.0 - 1.0, 0 means no modification.
force_no_accel = true
touchpad {
natural_scroll=no
disable_while_typing=true
@@ -24,78 +28,69 @@
tap-to-click=0
}
}
misc {
disable_hyprland_logo=true
animate_mouse_windowdragging=false
animate_manual_resizes=false
vrr=1
}
general {
gaps_in = ${config.colorScheme.palette.gaps-window}
gaps_out = ${config.colorScheme.palette.gaps-screen}
border_size = ${config.colorScheme.palette.border-width}
col.active_border = rgb(${config.colorScheme.palette.base04})
col.inactive_border = rgb(${config.colorScheme.palette.base03})
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 = ${config.colorScheme.palette.border-radius}
rounding = 7
blur {
enabled = true
size = 2
passes = 1
new_optimizations = true
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)
drop_shadow = no
shadow_range = 60
shadow_offset = 0 5
shadow_render_power = 4
col.shadow = rgba(00000099)
}
animations {
enabled = true
bezier = customcurve, 0.0, 0.9, 0.1, 1.0
animation = windows, 1, 4, customcurve
animation = windowsOut, 1, 4, customcurve, popin 50%
animation = border, 1, 10, customcurve
animation = borderangle, 0, 1, customcurve
animation = fade, 1, 4, customcurve
animation = workspaces, 1, 4, customcurve
animations {
enabled = false
}
dwindle {
pseudotile = yes
# force_split = 0
preserve_split = yes
}
master {
new_status = master
new_is_master = true
}
gestures {
workspace_swipe = off
}
exec-once = eww open bar
#exec-once = waybar
exec-once = dunst
exec-once = eww open bar & dunst
exec-once = swww init
@@ -109,15 +104,17 @@
#windowrules
windowrule = noshadow, floating:0
windowrulev2 = noshadow, floating:0
windowrule = float, title:^(flying_kitty)$
windowrule = size 1100 600, title:^(flying_kitty)$
windowrule = move center, title:^(flying_kitty)$
windowrule = animation slide, title:^(flying_kitty)$
windowrule = float, title:^(Volume Control)$
windowrule = float, title:^(Picture-in-Picture)$
windowrule = float, title:^(Steam)$
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)$
@@ -138,22 +135,17 @@
windowrulev2 = float,title:^(File Operation Progress)$
windowrulev2 = float,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = pin,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = float,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = suppressevent fullscreen,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = nofullscreenrequest,class:^(firefox)$,title:^(Firefox Sharing Indicator)$
windowrulev2 = float,class:^(firefox)$,title:^(Extension:.* Mozilla Firefox)$
windowrulev2 = suppressevent fullscreen,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)$
#SPECIAL NO SLEEP
windowrulev2 = idleinhibit fullscreen, class:^(.*)
windowrulev2 = idleinhibit focus, class:^(steam_app_.*)$
windowrulev2 = idleinhibit focus, class:^(mpv)$
layerrule = blur,^(eww-blur)
#binds
$mainMod = SUPER
bind = SUPER, RETURN, exec, kitty
bind = SUPER_SHIFT, RETURN,togglespecialworkspace,
@@ -170,6 +162,12 @@
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
@@ -208,8 +206,8 @@
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, brightnessctl s 5%+
bind = , XF86MonBrightnessDown, exec, brightnessctl s 5%-
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
@@ -226,8 +224,7 @@
sleep 2
nextcloud &
#telegram-desktop&
#discord&
telegram-desktop&
'';
};
}

View File

@@ -1,6 +1,6 @@
{ lib, config, pkgs, ... }: {
imports = [ ./config.nix ];
config = lib.mkIf (config.usercfg.wm == "Wayland") {
config = lib.mkIf (config.homecfg.wm == "Wayland") {
wayland.windowManager.hyprland = { enable = true; };
};
}

View File

@@ -1,4 +0,0 @@
{ ... }:
{
}

View File

@@ -1,5 +1,5 @@
{ lib, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "X11") {
config = lib.mkIf (config.homecfg.wm == "X11") {
xsession.windowManager.bspwm.extraConfig = ''
#! /bin/bash

View File

@@ -2,7 +2,7 @@
imports = [ ./config.nix ./script.nix ./xressources.nix ];
config = lib.mkIf (config.usercfg.wm == "X11") {
config = lib.mkIf (config.homecfg.wm == "X11") {
xsession.windowManager.bspwm = { enable = true; };
services.sxhkd = { enable = true; };
home.packages = with pkgs; [ xrandr arandr flameshot xtrlock i3lock ];

View File

@@ -1,5 +1,5 @@
{ lib, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "X11") {
config = lib.mkIf (config.homecfg.wm == "X11") {
xdg.configFile."script/lock.sh".text = ''
#!/bin/bash
TMPBG=/tmp/screen.png

View File

@@ -1,29 +1,29 @@
{ lib, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "X11") {
config = lib.mkIf (config.homecfg.wm == "X11") {
xresources.extraConfig = ''
#define white #ffffff
#define black #000000
#define cFG #${config.colorScheme.palette.base07}
#define cBG #${config.colorScheme.palette.base00}
#define cP #${config.colorScheme.palette.base07}
#define cH #${config.colorScheme.palette.base0C}
#define c0 #${config.colorScheme.palette.base00}
#define c1 #${config.colorScheme.palette.base01}
#define c2 #${config.colorScheme.palette.base02}
#define c3 #${config.colorScheme.palette.base03}
#define c4 #${config.colorScheme.palette.base04}
#define c5 #${config.colorScheme.palette.base05}
#define c6 #${config.colorScheme.palette.base06}
#define c7 #${config.colorScheme.palette.base07}
#define c8 #${config.colorScheme.palette.base08}
#define c9 #${config.colorScheme.palette.base09}
#define cA #${config.colorScheme.palette.base0A}
#define cB #${config.colorScheme.palette.base0B}
#define cC #${config.colorScheme.palette.base0C}
#define cD #${config.colorScheme.palette.base0D}
#define cE #${config.colorScheme.palette.base0E}
#define cF #${config.colorScheme.palette.base0F}
#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

View File

@@ -1 +0,0 @@
{ ... }: { imports = [ ./apps ./bspwm ]; }

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