Compare commits

...
Sign in to create a new pull request.

47 commits

Author SHA1 Message Date
ef37f0ba68
final commit from git shiroko 2025-07-01 20:55:29 -07:00
681a8b6b9c
Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-05 15:47:52 -07:00
502e05276e
plasable 2025-06-05 15:46:25 -07:00
0f18837c91
nein 2025-06-05 14:59:06 -07:00
f551bc4d76
Merge remote-tracking branch 'refs/remotes/origin/main' 2025-06-05 01:53:08 -07:00
4d1ea33d9e
idk: adding stuff 2025-06-05 01:52:14 -07:00
5a60740f9f
added iamb 2025-06-05 01:25:46 -07:00
97f8a07157
Merge branch 'main' of github.com:KaitoTLex/KaitoianOS 2025-06-04 18:08:30 -07:00
40b3c9c4ab
update 2025-06-04 15:51:52 -07:00
8ded4506da
fixed X-server conflict 2025-06-03 21:50:23 -07:00
511afa919a
Completed Massive Update: Kernel6.12 -> 6.14; NixOS Victuna -> NixOS Xantusia; Msc. Package Upgrade; Nvidia Works on Kuroko; etc. 2025-05-27 21:55:15 -07:00
6b5ebd18c5
Greetd Fix 2025-05-27 21:36:11 -07:00
KaitoTLex
7cef671cb1
recollection 2025-05-27 21:10:17 -07:00
KaitoTLex
448f8c7c06
update: README.md 2025-05-27 17:04:53 -07:00
KaitoTLex
3c79e7df14
Merge remote-tracking branch 'refs/remotes/origin/main' 2025-05-27 17:02:40 -07:00
KaitoTLex
2d1517e710
imma cry 2025-05-27 16:59:44 -07:00
KaitoTLex
2cf30bc675
moved pkg up 2025-05-27 15:12:18 -07:00
KaitoTLex
371e40cc40
update 2025-05-27 14:08:38 -07:00
KaitoTLex
34055eb96b
added hyprscroller.nix 2025-05-27 11:44:46 -07:00
KaitoTLex
10f377c490
Possible fix for the Nvidia Driver 2025-05-27 09:20:48 -07:00
e892f7c2cb
Create merge.yml 2025-05-27 09:06:22 -07:00
94fa5c18a4
Create build-nix.yml 2025-05-27 09:05:49 -07:00
5e9c4cefa8
Create lock.yml 2025-05-27 09:04:30 -07:00
b411001d76
add: bambu lab 2025-05-18 18:32:37 -07:00
818abe789b
feat: overhaul of the Kuroko, Secureboot and per-device Signing 2025-05-18 17:42:52 -07:00
a717f9c14f
added secureboot to shiroko 2025-05-18 16:01:01 -07:00
8991709cf3
no 2025-05-14 16:57:07 -07:00
5bfd4e0cd6
Merge branch 'main' of github.com:KaitoTLex/KaitoianOS 2025-05-14 16:45:27 -07:00
a8bd9b223a
update:greetd command 2025-05-14 16:45:15 -07:00
Kaito T Lex
f8e5c16d50 fix: build 2025-05-14 00:31:26 -07:00
59d3fa9ebd
update: README.md 2025-05-13 21:15:22 -07:00
3e9bea14ca
update: README.md 2025-05-13 21:14:24 -07:00
4d461cc8ad
feat: Hyprland on Kuroko 2025-05-13 21:05:34 -07:00
KaitoTLex
2267c4314c
Merge branch 'main' of github.com:KaitoTLex/KaitoianOS 2025-05-13 21:00:06 -07:00
KaitoTLex
944cebb04d
Bi-Weekly Update: Added Packages, modified TUIGreet, etc 2025-05-13 20:59:43 -07:00
d9ccf5035f
Merge pull request #3 from KaitoTLex/small-changes 2025-04-27 22:03:19 -07:00
28597f22fc
chore: disable dunst because swaync is also enabled 2025-04-27 21:40:02 -07:00
a86000d488
refactor: use programs.vesktop.enable so stylix works again 2025-04-27 21:39:50 -07:00
Kaito T Lex
80b1de75a8 Revert "fix?"
This reverts commit d8f2b934b3.
2025-04-27 16:22:44 -07:00
Kaito T Lex
6c99d57492 feat(shiroko): display scaling 2025-04-27 16:22:13 -07:00
Kaito T Lex
47a285b72b feat: sensitivity 0 2025-04-27 16:22:13 -07:00
KaitoTLex
e4f4e6ed85
rice fix 2025-04-27 16:14:17 -07:00
KaitoTLex
d8f2b934b3
fix? 2025-04-27 11:57:59 -07:00
Kaito T Lex
f1bf204d3c feat: install hyprland from liminalOS 2025-04-27 02:36:35 -07:00
Kaito T Lex
02701608a5 flake.lock: Update
Flake lock file updates:

• Updated input 'home-manager':
    'github:nix-community/home-manager/7fb8678716c158642ac42f9ff7a18c0800fea551?narHash=sha256-2aYfV44h18alHXopyfL4D9GsnpE5XlSVkp4MGe586VU%3D' (2025-03-10)
  → 'github:nix-community/home-manager/2f5819a962489e037a57835f63ed6ff8dbc2d5fb?narHash=sha256-KgaGPlmjJItZ%2BXf8mSoRmrsso%2Bsf3K54n9oIP9Q17LY%3D' (2025-04-26)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/e3e32b642a31e6714ec1b712de8c91a3352ce7e1?narHash=sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk%3D' (2025-03-09)
  → 'github:nixos/nixpkgs/f771eb401a46846c1aebd20552521b233dd7e18b?narHash=sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA%3D' (2025-04-24)
• Updated input 'spicetify':
    'github:Gerg-L/spicetify-nix/a06e502c884307c33dbdf2017fd50ab3592ad868?narHash=sha256-1M2mf5pZTlhZXkSI8wKs9GfNb1hllND58zQUYSAe8EA%3D' (2025-03-09)
  → 'github:Gerg-L/spicetify-nix/9e5c7a2e7f1ab3118ec9b7179eb28667a3575f0e?narHash=sha256-YW/V93WgJur6a3BVa1jynlKr2pyZlEpiXXjQjpSHc5s%3D' (2025-04-27)
• Updated input 'stylix':
    'github:danth/stylix/6b5afdbb3e9e06de68d7c44dfe78a1359d422a45?narHash=sha256-wuYjYWjePERWKmr/8TZ7rRnYPjOTVMRouiT6gOxH8WM%3D' (2025-03-10)
  → 'github:danth/stylix/11ceb2fde1901dc227421bbbef2d0800339f5126?narHash=sha256-WGKSI0%2BCY3Ep2YnRASmBRU8oMIvTW4ngFyjA0dVcKgQ%3D' (2025-04-25)
• Updated input 'stylix/base16':
    'github:SenchoPens/base16.nix/153d52373b0fb2d343592871009a286ec8837aec?narHash=sha256-%2BR1BH5wHhfnycySb7Sy5KbYEaTJZWm1h%2BLW1OtyhiTs%3D' (2024-11-21)
  → 'github:SenchoPens/base16.nix/58bfe2553d937d8af0564f79d5b950afbef69717?narHash=sha256-EAYWV%2BkXbwsH%2B8G/8UtmcunDeKwLwSOyfcmzZUkWE/c%3D' (2025-04-24)
• Updated input 'stylix/firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/a89108e6272426f4eddd93ba17d0ea101c34fb21?narHash=sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz%2Be/655w%3D' (2025-02-10)
  → 'github:rafaelmardojai/firefox-gnome-theme/59e3de00f01e5adb851d824cf7911bd90c31083a?narHash=sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4%3D' (2025-04-14)
• Updated input 'stylix/git-hooks':
    'github:cachix/git-hooks.nix/9364dc02281ce2d37a1f55b6e51f7c0f65a75f17?narHash=sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg%3D' (2025-01-21)
  → 'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
• Updated input 'stylix/home-manager':
    'github:nix-community/home-manager/12e26a74e5eb1a31e13daaa08858689e25ebd449?narHash=sha256-st5q9egkPGz8TUcVVlIQX7y6G3AzHob%2B6M963bwVq74%3D' (2025-02-23)
  → 'github:nix-community/home-manager/d31710fb2cd536b1966fee2af74e99a0816a61a8?narHash=sha256-TwbdiH28QK7Da2JQTqFHdb%2BUCJq6QbF2mtf%2BRxHVzEA%3D' (2025-04-23)
• Updated input 'stylix/nur':
    'github:nix-community/NUR/496a4a11162bdffb9a7b258942de138873f019f7?narHash=sha256-2xECnhgF3MU9YjmvOkrRp8wRFo2OjjewgCtlfckhL5s%3D' (2025-02-24)
  → 'github:nix-community/NUR/dbc4ba3233b2bf951521177bf0ee0a7679959035?narHash=sha256-bWqgohVf/py9EW3bLS/dYbenD2p9N2/Qsw1%2BCJk1S04%3D' (2025-04-24)
• Updated input 'stylix/tinted-schemes':
    'github:tinted-theming/schemes/a1bc2bd89e693e7e3f5764cfe8114e2ae150e184?narHash=sha256-Hdk850xgAd3DL8KX0AbyU7tC834d3Lej1jOo3duWiOA%3D' (2025-02-23)
  → 'github:tinted-theming/schemes/28c26a621123ad4ebd5bbfb34ab39421c0144bdd?narHash=sha256-Fg%2BrdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY%3D' (2025-04-18)
• Updated input 'stylix/tinted-tmux':
    'github:tinted-theming/tinted-tmux/b6c7f46c8718cc484f2db8b485b06e2a98304cd0?narHash=sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ%3D' (2025-02-23)
  → 'github:tinted-theming/tinted-tmux/e009f18a01182b63559fb28f1c786eb027c3dee9?narHash=sha256-udV%2BnHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w%3D' (2025-04-20)
• Updated input 'ucodenix':
    'github:e-tho/ucodenix/84d7cf2437026e0623a3040a276731871a6af03f?narHash=sha256-QzNd/La5KSgP%2BGtjlzRZDGGbs7kkzzz%2BDapqXcPMyvk%3D' (2025-03-10)
  → 'github:e-tho/ucodenix/b26e195f4272306f6bd30445bb73657449a1f574?narHash=sha256-xRbcLC6AVjB8etaw1T9MEywqjuRWeZZu5Ee8RU3q4R0%3D' (2025-04-14)
• Updated input 'ucodenix/cpu-microcodes':
    'github:platomav/CPUMicrocodes/6f9895d708ee55588cfed9ec66f470eb3c05fb7c?narHash=sha256-bZfqV9kzuMnzpgQfiXRRtYy/rgtSmaRzGG/v42Tzczc%3D' (2025-03-09)
  → 'github:platomav/CPUMicrocodes/58897a4b77be3ebb17ee41c12002cd986d3da6ed?narHash=sha256-0WgBGViIPozInkjUZSUKyndN9ldZGtCKlUiiw8VAK3o%3D' (2025-04-13)
• Updated input 'wallpapers':
    'github:kaitotlex/wallpaper/101647127869f5e91a569281fd181172b692b365?narHash=sha256-eLf45K7NvBas7bC5hO5KfpFdy3pzCoQEaW%2BDNZIFQhs%3D' (2025-01-18)
  → 'github:kaitotlex/wallpaper/f49c027edde33735beae02580b4a2a9b88cc7b04?narHash=sha256-3OEwa3lw5QIgu3tyiTGTkqacsMZ6Ae6zmg8qg3rsc1Y%3D' (2025-03-17)
• Updated input 'zen':
    'github:youwen5/zen-browser-flake/117945c4162d78f2cc7ad578cf44edbbf1ee33fb?narHash=sha256-jShBVqU8K5rN8xtsq2JDgq%2BKInRw3pDbp8SViMIz5pE%3D' (2025-03-09)
  → 'github:youwen5/zen-browser-flake/02084a38e9dbc4fa17f3474c3e9d43bb7db55799?narHash=sha256-8X9JuDfxAEQlBhB0ARgFj9fbDOlCvPx6AbQ1h2T47/g%3D' (2025-04-20)
2025-04-27 00:27:08 -07:00
KaitoTLex
8869880874
added configs 2025-04-26 22:13:25 -07:00
KaitoTLex
60d3c9041f
hotfix: intel CPU Hardware decoding 2025-03-07 12:18:43 -08:00
35 changed files with 2342 additions and 672 deletions

42
.github/workflows/build-nix.yml vendored Normal file
View file

@ -0,0 +1,42 @@
name: Build system configurations
on:
pull_request:
jobs:
build-x86_64-demeter:
runs-on: ubuntu-24.04
permissions:
contents: read
id-token: write
steps:
- name: Free Disk Space (Ubuntu)
uses: Jayllyz/free-disk-space@perf/use-rmz
- uses: actions/checkout@v4
- name: Check Nix flake Nixpkgs inputs
uses: DeterminateSystems/flake-checker-action@main
- uses: DeterminateSystems/nix-installer-action@main
with:
github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
- name: Build demeter
run: |
# nix flake check --all-systems
nix build .#nixosConfigurations.demeter.config.system.build.toplevel
build-aarch64-callisto:
runs-on: ubuntu-24.04-arm
permissions:
contents: read
id-token: write
steps:
- name: Free Disk Space (Ubuntu)
uses: Jayllyz/free-disk-space@perf/use-rmz
- uses: actions/checkout@v4
- name: Check Nix flake Nixpkgs inputs
uses: DeterminateSystems/flake-checker-action@main
- uses: DeterminateSystems/nix-installer-action@main
with:
github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
- name: Build callisto
run: |
# nix flake check --all-systems
nix build .#nixosConfigurations.callisto.config.system.build.toplevel

24
.github/workflows/lock.yml vendored Normal file
View file

@ -0,0 +1,24 @@
name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
schedule:
# Runs weekly at 00:00 UTC on Sunday
- cron: "0 0 * * 0"
jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
with:
github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@main
with:
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
pr-title: "deps(flake.lock): update"
pr-labels: |
dependencies,auto-merge
pr-assignees: youwen5

16
.github/workflows/merge.yml vendored Normal file
View file

@ -0,0 +1,16 @@
name: auto-merge-labeled
on:
pull_request:
jobs:
auto-merge-labeled:
runs-on: ubuntu-latest
steps:
- id: auto-merge-labeled
name: Auto merge labeled
uses: isolomak/auto-merge-labeled@v1.0.1
with:
label: 'lock'
commit-title: 'build(lock): update'
merge_method: 'squash'
env:
GITHUB_TOKEN: ${{ secrets.TOKEN }}

View file

@ -1,9 +1,12 @@
# KaitoianOS # KaitoianOS
> Fully customizable container-based operating system based on ```NixOS``` running SwayDE. > Fully customizable container-based operating system based on ```NixOS``` running Hyprland && Hyprscroller.
## What even is this Config? ## What even is this Config?
So I believe I have no life, so I migrated from a super unstable and limited OS (DOS) to FreeBSD, however FreeBSD had limited packages being maintained on **Fresh Ports** so I figured might as well become a Linux user. After distro hopping for 3 months I was introduced to NixOS by [Youwen](https://youwen.dev) claiming that it would solve my problems of having to configure everything on seperate directories, common on most distros such as Arch or Debian. So I believe I have no life, so I migrated from a super unstable and limited OS (DOS) to FreeBSD, however FreeBSD had limited packages being maintained on **Fresh Ports** so I figured might as well become a Linux user. After distro hopping for 3 months I was introduced to NixOS by [Youwen](https://youwen.dev) claiming that it would solve my problems of having to configure everything on seperate directories, common on most distros such as Arch or Debian.
## Why Sway and Wayland <!--## Why Sway and Wayland-->
Wayland provides a more stable graphical enviornment due to the simplicity of the code and it's security; moreover, it peforms significantly better on intergrated and discrete graphics cards for most of my systems. Why Sway and not Hyprland? Sway is a simple port of the popular x11 DE known as i3. Hyprland has too much eyecandy for a DE, too much bells and whistles such as dynamic colors and rounded edges. Also removing eyecandy on my config makes my input smoother and crispier. <!--Wayland provides a more stable graphical enviornment due to the simplicity of the code and it's security; moreover, it peforms significantly better on intergrated and discrete graphics cards for most of my systems. Why Sway and not Hyprland? Sway is a simple port of the popular x11 DE known as i3. Hyprland has too much eyecandy for a DE, too much bells and whistles such as dynamic colors and rounded edges. Also removing eyecandy on my config makes my input smoother and crispier. -->
## Why switch to Hyprland
Although Sway is a reliable and well developed window manager, it doesn't offer the same versatility as Hyprland in Wayland. Hyprland, although has too much eyecandy, it does offer a more polished and complete operating system especially to display beautiful color scheme. I adopted youwen's Hyprland configuration because it is preconfigured and it has all that I need in terms of productivity in this operating system.
## What Basic Utilites do you have on here? ## What Basic Utilites do you have on here?
- Firefox Developer Edition - Firefox Developer Edition
- Spotify (Spicetify) - Spotify (Spicetify)
@ -27,7 +30,7 @@ ROG (ASUS) Flow X13 2022
> 16 GB LPDDR4 > 16 GB LPDDR4
> 1TB Crucial (Allocated 128 for NixOS) > 256 GB Kioxia
## How to Install or Clone ## How to Install or Clone
@ -52,6 +55,6 @@ cp /etc/nixos/hardware-configuration.nix ~/KaitoianOS/hosts/shiroko/hardware-con
5. Recompile your os by 5. Recompile your os by
```sh ```sh
sudo nixos-rebuild switch --flake .\#shiroko #or kuroko sudo nixos-rebuild switch --flake .#shiroko #or kuroko
``` ```
6. Enjoy! 6. Enjoy!

565
flake.lock generated
View file

@ -1,32 +1,15 @@
{ {
"nodes": { "nodes": {
"aq": {
"flake": false,
"locked": {
"lastModified": 1736050555,
"narHash": "sha256-TUoKhJ2QMK2AYTRvBCRpYFmaSihiF/OgB+HDZjamZtI=",
"owner": "quantum9innovation",
"repo": "aquamarine",
"rev": "546ce7963d18cbd30b32bf8d464f9ab3f6d54f74",
"type": "github"
},
"original": {
"owner": "quantum9innovation",
"ref": "patch-125",
"repo": "aquamarine",
"type": "github"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1732200724, "lastModified": 1746562888,
"narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=", "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "153d52373b0fb2d343592871009a286ec8837aec", "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -54,11 +37,11 @@
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736852337, "lastModified": 1748408240,
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=", "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5", "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -70,44 +53,60 @@
"base16-vim": { "base16-vim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735953590, "lastModified": 1732806396,
"narHash": "sha256-YbQwaApLFJobn/0lbpMKcJ8N5axKlW2QIGkDS5+xoSU=", "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "c2a1232aa2c0ed27dcbf005779bcfe0e0ab5e85d", "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github" "type": "github"
} }
}, },
"cpu-microcodes": { "cpu-microcodes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737223256, "lastModified": 1747081695,
"narHash": "sha256-aETUoryCkJSRWlxbgL8im40+2FfOm0u4X9aP5aZueME=", "narHash": "sha256-nnim3432n3+iwD2alY1cigQE7GKnI8BkyZDJTzood+E=",
"owner": "platomav", "owner": "platomav",
"repo": "CPUMicrocodes", "repo": "CPUMicrocodes",
"rev": "984b766433e99c7e945b5cc17519bb088084b3fd", "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "platomav", "owner": "platomav",
"repo": "CPUMicrocodes", "repo": "CPUMicrocodes",
"rev": "984b766433e99c7e945b5cc17519bb088084b3fd", "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
"type": "github"
}
},
"crane": {
"locked": {
"lastModified": 1731098351,
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
"owner": "ipetkov",
"repo": "crane",
"rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github" "type": "github"
} }
}, },
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1736899990, "lastModified": 1748383148,
"narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=", "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d", "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -119,11 +118,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1696426674,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -133,13 +132,12 @@
} }
}, },
"flake-compat_2": { "flake-compat_2": {
"flake": false,
"locked": { "locked": {
"lastModified": 1733328505, "lastModified": 1747046372,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -148,12 +146,51 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"lanzaboote",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1743550720,
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": [ "systems": "systems"
"stylix",
"systems"
]
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1731533236,
@ -191,18 +228,18 @@
"stylix", "stylix",
"flake-compat" "flake-compat"
], ],
"gitignore": "gitignore", "gitignore": "gitignore_2",
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1735882644, "lastModified": 1747372754,
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=", "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656", "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -212,6 +249,28 @@
} }
}, },
"gitignore": { "gitignore": {
"inputs": {
"nixpkgs": [
"lanzaboote",
"pre-commit-hooks-nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"stylix", "stylix",
@ -236,16 +295,16 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1732369855, "lastModified": 1744584021,
"narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=", "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "dadd58f630eeea41d645ee225a63f719390829dc", "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "GNOME", "owner": "GNOME",
"ref": "47.2", "ref": "48.1",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "github" "type": "github"
} }
@ -257,11 +316,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737188535, "lastModified": 1749400020,
"narHash": "sha256-O2ttwW1/dUc/Y+Rf48Njtr4tZpRJhy8FhafikekIjMY=", "narHash": "sha256-0nTmHO8AYgRYk5v6zw5oZ3x9nh+feb+Isn7WNe318M0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "1e36429705f9af2d00a517ba46a4f21ef8a8194f", "rev": "2835e8ba0ad99ba86d4a5e497a962ec9fa35e48f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -278,11 +337,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736785676, "lastModified": 1748737919,
"narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=", "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d", "rev": "5675a9686851d9626560052a032c4e14e533c1fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -291,13 +350,91 @@
"type": "github" "type": "github"
} }
}, },
"hyprscroller-src": {
"flake": false,
"locked": {
"lastModified": 1749141212,
"narHash": "sha256-YC9WEi74d9L1rjVnjNXqWCUPhHgCj6npQWZ0KT6l2nA=",
"owner": "cpiber",
"repo": "hyprscroller",
"rev": "80f9a9c6ec9423cfd3f17e801e92934ffc5d52d2",
"type": "github"
},
"original": {
"owner": "cpiber",
"repo": "hyprscroller",
"type": "github"
}
},
"iamb": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1749177992,
"narHash": "sha256-B72RIr6pbf9kW0JhcbsgUhLSw22BxxODoKIdPd2YWFY=",
"owner": "ulyssa",
"repo": "iamb",
"rev": "33d3407694c9dece0f3e59aa577eda98c9384ea1",
"type": "github"
},
"original": {
"owner": "ulyssa",
"repo": "iamb",
"type": "github"
}
},
"jkernel": {
"flake": false,
"locked": {
"lastModified": 1733188630,
"narHash": "sha256-TlUFZOqFsTXh97vRpNeyoJJ+WNOwxgvu7u3JcLGN7iU=",
"owner": "tweag",
"repo": "jupyenv",
"rev": "55e42c3dea87d3c1e3e9dfde28df637e88d6bd39",
"type": "github"
},
"original": {
"owner": "tweag",
"repo": "jupyenv",
"type": "github"
}
},
"lanzaboote": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay_2"
},
"locked": {
"lastModified": 1737639419,
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
"owner": "nix-community",
"repo": "lanzaboote",
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "v0.4.2",
"repo": "lanzaboote",
"type": "github"
}
},
"nixCats": { "nixCats": {
"locked": { "locked": {
"lastModified": 1735318798, "lastModified": 1741608660,
"narHash": "sha256-x1hq2uimNBQtYtkaJ4KODKQmdbAYvnd1hoxRyyPekWE=", "narHash": "sha256-qikkAmt+z7fN2Zq6lU54x5nZ1KlE97wVAwaJk+/1PkI=",
"owner": "BirdeeHub", "owner": "BirdeeHub",
"repo": "nixCats-nvim", "repo": "nixCats-nvim",
"rev": "58a8782879f926192b06b95f75538618456062ae", "rev": "ad8d22d086cfb7a1cb0e9fda1fb871bbe370c942",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -308,11 +445,59 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1737062831, "lastModified": 1736320768,
"narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=", "narHash": "sha256-nIYdTAiKIGnFNugbomgBJR+Xv5F1ZQU+HfaBqJKroC0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4bc9c909d9ac828a039f288cf872d16d38185db8",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1731919951,
"narHash": "sha256-vOM6ETpl1yu9KLi/icTmLJIPbbdJCdAVYUXZceO/Ce4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "04386ac325a813047fc314d4b4d838a5b1e3c7fe",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable-small",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1749285348,
"narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c", "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -322,21 +507,35 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1741462378,
"narHash": "sha256-ZF3YOjq+vTcH51S+qWa1oGA9FgmdJ67nTNPG2OIlXDc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2d9e4457f8e83120c9fdf6f1707ed0bc603e5ac9",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"nixCats": "nixCats", "nixCats": "nixCats",
"nixpkgs": [ "nixpkgs": "nixpkgs_4",
"nixpkgs"
],
"plugins-blink-ripgrep": "plugins-blink-ripgrep", "plugins-blink-ripgrep": "plugins-blink-ripgrep",
"plugins-pomo-nvim": "plugins-pomo-nvim" "plugins-pomo-nvim": "plugins-pomo-nvim"
}, },
"locked": { "locked": {
"lastModified": 1737164379, "lastModified": 1741660851,
"narHash": "sha256-/lERZhJCq+eXPUENu0a8MwVbO8CMMn2ooej3l3+jc1U=", "narHash": "sha256-kFlDqMvo0gNu3xJ9PDXhF21vPv18/NiuhjHr+yoxJp4=",
"owner": "kaitotlex", "owner": "kaitotlex",
"repo": "vix1", "repo": "vix1",
"rev": "30506bcd245c0d44d8cfcda446ff7abb2b12ae1f", "rev": "879bcb9e209dfac74e5e86e1a0066c952edee140",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -345,14 +544,40 @@
"type": "github" "type": "github"
} }
}, },
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1748730660,
"narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"plugins-blink-ripgrep": { "plugins-blink-ripgrep": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735411615, "lastModified": 1741415505,
"narHash": "sha256-V3Tf8bPpO7KjP/AwcgYjMZdTejydvBx/t33H3+wsNLo=", "narHash": "sha256-lEt5AUSyezmlthSj3KUHJ9cX4pQnB2/31j8bklIp5Mk=",
"owner": "mikavilpas", "owner": "mikavilpas",
"repo": "blink-ripgrep.nvim", "repo": "blink-ripgrep.nvim",
"rev": "f4d9460a3552c735c7835a545ce32125610c1ce5", "rev": "91aee73557237b0cc1313e4ed2b32f10de6cc65e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -377,11 +602,41 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks-nix": {
"inputs": {
"flake-compat": [
"lanzaboote",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"lanzaboote",
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"aq": "aq",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "hyprscroller-src": "hyprscroller-src",
"iamb": "iamb",
"jkernel": "jkernel",
"lanzaboote": "lanzaboote",
"nixpkgs": "nixpkgs_3",
"nixvim": "nixvim", "nixvim": "nixvim",
"spicetify": "spicetify", "spicetify": "spicetify",
"stylix": "stylix", "stylix": "stylix",
@ -390,19 +645,58 @@
"zen": "zen" "zen": "zen"
} }
}, },
"spicetify": { "rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1736994333,
"narHash": "sha256-v4Jrok5yXsZ6dwj2+2uo5cSyUi9fBTurHqHvNHLT1XA=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "848db855cb9e88785996e961951659570fc58814",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [ "nixpkgs": [
"lanzaboote",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1737173687, "lastModified": 1731897198,
"narHash": "sha256-+WxaXc30KhTuCa9U8Nv2mJApIBq85CfA5fbcVsvdfxo=", "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "0be641045af6d8666c11c2c40e45ffc9667839b5",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"spicetify": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1749357231,
"narHash": "sha256-AbrPgGFVYR45TlYLHYTppayG0xzOG9XXhi+1j3Klbw8=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "c68c2ac0814ab386d2cbd3b9178e729b4fc805f0", "rev": "03783416f7416715c52166d4e8ba0492a7149397",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -419,25 +713,27 @@
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils", "flake-parts": "flake-parts_2",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"systems": "systems", "nur": "nur",
"systems": "systems_3",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux", "tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1737207873, "lastModified": 1749398498,
"narHash": "sha256-XTCuMv753lpm8DvdVf9q2mH3rhlfsKrCUYbaADPC/bA=", "narHash": "sha256-Usx6sGnT/D8ZnWiZg+J1OY3dp4ZssMQiN1XeXcsL/cs=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "51ad2cec11e773a949bdbec88bed2524f098f49a", "rev": "5869510e48e64d916dc6905dc664a02b0f85f1bd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -461,6 +757,36 @@
"type": "github" "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"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -481,28 +807,43 @@
"tinted-kitty": { "tinted-kitty": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1716423189, "lastModified": 1735730497,
"narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=", "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-kitty", "repo": "tinted-kitty",
"rev": "eb39e141db14baef052893285df9f266df041ff8", "type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1748180480,
"narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github" "type": "github"
} }
}, },
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1735737224, "lastModified": 1748740859,
"narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=", "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64", "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -527,16 +868,38 @@
"type": "github" "type": "github"
} }
}, },
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"stylix",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"ucodenix": { "ucodenix": {
"inputs": { "inputs": {
"cpu-microcodes": "cpu-microcodes" "cpu-microcodes": "cpu-microcodes"
}, },
"locked": { "locked": {
"lastModified": 1737386190, "lastModified": 1747656938,
"narHash": "sha256-r9UOn9nMqDjY+ohnNCKs8SgN55UXTPI+RWhka2RcsXY=", "narHash": "sha256-LE5jjWIN3xzL24ph8U2CwzTPrCxS+uGzXCpSh6b+UPk=",
"owner": "e-tho", "owner": "e-tho",
"repo": "ucodenix", "repo": "ucodenix",
"rev": "4c7931fcf713c4ddf730d275f07d916c5f4c4e7a", "rev": "86d47e4b5790cc68b3af14ec9969ef8128524d43",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -548,11 +911,11 @@
"wallpapers": { "wallpapers": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1737220047, "lastModified": 1749185371,
"narHash": "sha256-eLf45K7NvBas7bC5hO5KfpFdy3pzCoQEaW+DNZIFQhs=", "narHash": "sha256-M6QK9qLgyvFaM6gF9qH1d6su254cWfw/+1aO3nxeBmQ=",
"owner": "kaitotlex", "owner": "kaitotlex",
"repo": "wallpaper", "repo": "wallpaper",
"rev": "101647127869f5e91a569281fd181172b692b365", "rev": "f1d9cf6f2d16b25ca57e684e1d20124e75413f7c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -568,11 +931,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737173095, "lastModified": 1748971473,
"narHash": "sha256-32xX3cAIQovRNtW5cHirLvSC87uoOfLcaYGUOrTyhx4=", "narHash": "sha256-0Xh6sZI86Ops6u7wyDQlVvV+MvRRXIDb1r3sMnLNk9M=",
"owner": "youwen5", "owner": "youwen5",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "e91b2aa537c1492efd1c5f35f1f204c685e461ab", "rev": "5cc269976ca876674d8ccc7f40debb61e05583ab",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -13,7 +13,6 @@
}; };
nixvim = { nixvim = {
url = "github:kaitotlex/vix1"; url = "github:kaitotlex/vix1";
inputs.nixpkgs.follows = "nixpkgs";
}; };
stylix = { stylix = {
url = "github:danth/stylix"; url = "github:danth/stylix";
@ -25,22 +24,33 @@
}; };
ucodenix = { ucodenix = {
url = "github:e-tho/ucodenix"; url = "github:e-tho/ucodenix";
inputs.nixpkgs.follows = "nixpkgs";
}; };
wallpapers = { wallpapers = {
url = "github:kaitotlex/wallpaper"; url = "github:kaitotlex/wallpaper";
flake = false; flake = false;
}; };
aq = { lanzaboote = {
url = "github:quantum9innovation/aquamarine/patch-125"; url = "github:nix-community/lanzaboote/v0.4.2";
};
hyprscroller-src = {
url = "github:cpiber/hyprscroller";
flake = false; flake = false;
}; };
jkernel = {
url = "github:tweag/jupyenv";
flake = false;
};
iamb = {
url = "github:ulyssa/iamb";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = outputs =
{ {
nixpkgs, nixpkgs,
home-manager, home-manager,
lanzaboote,
... ...
}@inputs: }@inputs:
{ {
@ -52,6 +62,29 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/kuroko ./hosts/kuroko
lanzaboote.nixosModules.lanzaboote
(
{ pkgs, lib, ... }:
{
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
}
)
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager = { home-manager = {
@ -62,7 +95,20 @@
inherit inputs; inherit inputs;
}; };
users.kaitotlex = { users.kaitotlex = {
imports = [ ./users/kaitotlex ]; imports = [
./users/kaitotlex
{
wayland.windowManager.hyprland.settings.monitor = [
"eDP-1,1920x1200@120,0x0,1"
"DP-1, 1920x1080@75.03,3840x0,1,transform, 1"
"HDMI-A-1,1920x1080@165,1920x0,1"
];
programs.git.signing = {
signByDefault = true;
key = "42F52D76F1B15B8D997E2AEE8AB934746F475D0B";
};
}
];
}; };
}; };
} }
@ -75,7 +121,29 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
./hosts/shiroko ./hosts/shiroko
lanzaboote.nixosModules.lanzaboote
(
{ pkgs, lib, ... }:
{
environment.systemPackages = [
# For debugging and troubleshooting Secure Boot.
pkgs.sbctl
];
# Lanzaboote currently replaces the systemd-boot module.
# This setting is usually set to true in configuration.nix
# generated at installation time. So we force it to false
# for now.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.lanzaboote = {
enable = true;
pkiBundle = "/var/lib/sbctl";
};
}
)
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
{ {
home-manager = { home-manager = {
@ -86,7 +154,19 @@
inherit inputs; inherit inputs;
}; };
users.kaitotlex = { users.kaitotlex = {
imports = [ ./users/kaitotlex ]; imports = [
./users/kaitotlex
{
wayland.windowManager.hyprland.settings.monitor = [
"eDP-1,1920x1200@120,0x0,1"
"DP-1, 1920x1080@144.04,1920x0,1"
];
programs.git.signing = {
signByDefault = true;
key = "BC04C0C14AEDA705B8FBACE8C5F52A3C0F3B4A77";
};
}
];
}; };
}; };
} }

View file

@ -18,16 +18,17 @@
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
#boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
virtualisation.waydroid.enable = true; virtualisation.waydroid.enable = true;
#boot.kernelPackages = pkgs.linuxPackages_5_15; boot.kernelPackages = pkgs.linuxPackages_latest;
#systemdefaults #systemdefaults
networking.hostName = "kuroko"; # Define your hostname. networking.hostName = "kuroko"; # Define your hostname.
services.ratbagd.enable = true; services.ratbagd.enable = true;
hardware.pulseaudio.support32Bit = true; hardware.pulseaudio.support32Bit = true;
# boot.kernelParams = [ boot.kernelParams = [
# "mem_sleep_default=deep" "mem_sleep_default=deep"
# ]; ];
# systemd.sleep.extraConfig = '' # systemd.sleep.extraConfig = ''
# AllowSuspend=yes # AllowSuspend=yes
# AllowHibernation=yes # AllowHibernation=yes
@ -37,12 +38,14 @@
#Nvidia Hardware begins #Nvidia Hardware begins
services.xserver.videoDrivers = [ services.xserver.videoDrivers = [
"nvidia"
"amdgpu" "amdgpu"
"nvidia"
]; ];
hardware.graphics.enable = true; hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true; hardware.graphics.enable32Bit = true;
hardware.graphics.extraPackages = with pkgs; [
amdvlk
];
hardware.nvidia = { hardware.nvidia = {
# custom option defined in graphics/default.nix # custom option defined in graphics/default.nix
#usePatchedAquamarine = true; #usePatchedAquamarine = true;
@ -58,7 +61,7 @@
# Fine-grained power management. Turns off GPU when not in use. # Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer). # Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = lib.mkForce false; powerManagement.finegrained = lib.mkForce true;
# Use the NVidia open source kernel module (not to be confused with the # Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver). # independent third-party "nouveau" open source driver).
@ -67,7 +70,7 @@
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+ # Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting. # Currently alpha-quality/buggy, so false is currently the recommended setting.
open = lib.mkForce true; open = lib.mkForce false;
# Enable the Nvidia settings menu, # Enable the Nvidia settings menu,
# accessible via `nvidia-settings`. # accessible via `nvidia-settings`.
@ -77,14 +80,11 @@
package = config.boot.kernelPackages.nvidiaPackages.beta; package = config.boot.kernelPackages.nvidiaPackages.beta;
#Power Saving Features #Power Saving Features
prime = { prime = {
offload = { offload.enable = lib.mkForce true;
enable = true;
enableOffloadCmd = true;
};
# Make sure to use the correct Bus ID values for your system! # Make sure to use the correct Bus ID values for your system!
#intelBusId = "PCI:"; #intelBusId = "PCI:";
nvidiaBusId = "PCI:01:00:0"; nvidiaBusId = "PCI:1:0:0";
amdgpuBusId = "PCI:08:00:0"; amdgpuBusId = "PCI:8:0:0";
}; };
}; };
@ -110,7 +110,9 @@
LC_TELEPHONE = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
nixpkgs.config.permittedInsecurePackages = [
"olm-3.2.16"
];
services.keyd = { services.keyd = {
enable = true; enable = true;
keyboards.default = { keyboards.default = {
@ -148,13 +150,20 @@
}; };
}; };
#Asus Specific Packages
services.asusd.enable = true;
programs.rog-control-center.enable = true;
#System specific packages to install #System specific packages to install
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
nvtop # nvtop
osu-lazer osu-lazer
davinci-resolve davinci-resolve
wacomtablet wacomtablet
obs-studio obs-studio
asusctl
supergfxctl
thinkfan
]; ];
# List services that you want to enable: # List services that you want to enable:

View file

@ -7,5 +7,6 @@
../../modules/audio ../../modules/audio
../../modules/stylix ../../modules/stylix
../../modules/electrical ../../modules/electrical
../../modules/desktop-environment
]; ];
} }

View file

@ -8,20 +8,20 @@
[ (modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/50c34d14-4b3a-483c-874e-b6412a474cfe"; { device = "/dev/disk/by-uuid/def95f35-9630-4015-9e21-97d9518a014d";
fsType = "ext4"; fsType = "ext4";
}; };
boot.initrd.luks.devices."luks-efb1b312-b89c-493e-952a-f70fc2ab0fbf".device = "/dev/disk/by-uuid/efb1b312-b89c-493e-952a-f70fc2ab0fbf"; boot.initrd.luks.devices."luks-c69579ed-9b9c-4435-b329-e5c95c945823".device = "/dev/disk/by-uuid/c69579ed-9b9c-4435-b329-e5c95c945823";
fileSystems."/boot" = fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/1826-F6B8"; { device = "/dev/disk/by-uuid/02A5-BCDF";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ]; options = [ "fmask=0077" "dmask=0077" ];
}; };

View file

@ -161,16 +161,16 @@
events = [ "key" ]; events = [ "key" ];
command = "pamixer -d 5"; command = "pamixer -d 5";
} }
{ # {
keys = [ 237 ]; # keys = [ 237 ];
events = [ "key" ]; # events = [ "key" ];
command = "brightnessctl -d asus::kbd_backlight set 1-"; # command = "${pkgs.brightnessctl} -d asus::kbd_backlight set 1-";
} # }
{ # {
keys = [ 238 ]; # keys = [ 238 ];
events = [ "key" ]; # events = [ "key" ];
command = "brightnessctl -d asus::kbd_backlight set +1"; # command = "${pkgs.brightnessctl} -d asus::kbd_backlight set +1";
} # }
#{ keys = [ ]; events = [ "key" ]; command = "brightnessctl -d amdgpu_bl2 set +10%"; } #{ keys = [ ]; events = [ "key" ]; command = "brightnessctl -d amdgpu_bl2 set +10%"; }
#{ keys = [ ]; events = [ "key" ]; command = "brightnessctl -d amdgpu_bl2 set +10%"; } #{ keys = [ ]; events = [ "key" ]; command = "brightnessctl -d amdgpu_bl2 set +10%"; }

View file

@ -13,13 +13,32 @@
]; ];
services.fprintd.enable = true; services.fprintd.enable = true;
security.pam.services.login.fprintAuth = true; security.pam.services.login.fprintAuth = true;
hardware.graphics.extraPackages = with pkgs; [
vaapiIntel
intel-media-driver
];
hardware.graphics.enable32Bit = true;
hardware.opengl = {
enable = true;
extraPackages = with pkgs; [
# your Open GL, Vulkan and VAAPI drivers
vpl-gpu-rt # for newer GPUs on NixOS >24.05 or unstable
# onevpl-intel-gpu # for newer GPUs on NixOS <= 24.05
# intel-media-sdk # for older GPUs
];
};
hardware = { hardware = {
graphics.enable32Bit = true;
pulseaudio.support32Bit = true; pulseaudio.support32Bit = true;
openrazer.enable = true; openrazer.enable = true;
}; };
virtualisation.podman = {
enable = true;
dockerCompat = true;
};
nixpkgs.config.permittedInsecurePackages = [
"olm-3.2.16"
];
boot = { boot = {
# Bootloader. # Bootloader.
loader.systemd-boot.enable = true; loader.systemd-boot.enable = true;
@ -95,9 +114,9 @@
enable = true; enable = true;
settings = { settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance"; CPU_SCALING_GOVERNOR_ON_AC = "performance";
CPU_SCALING_GOVERNOR_ON_BAT = "performance"; CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
CPU_ENERGY_PERF_POLICY_ON_BAT = "performance"; CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance"; CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0; CPU_MIN_PERF_ON_AC = 0;
@ -113,6 +132,7 @@
}; };
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
openrazer-daemon openrazer-daemon
distrobox
]; ];
# Set your time zone. # Set your time zone.
time.timeZone = "America/Los_Angeles"; # Asia/Taipei lib.mkDefault time.timeZone = "America/Los_Angeles"; # Asia/Taipei lib.mkDefault
@ -135,6 +155,46 @@
}; };
}; };
# Select internationalisation properties. # Select internationalisation properties.
networking.firewall = {
allowedUDPPorts = [ 51820 ]; # Clients and peers can use the same port, see listenport
};
# Enable WireGuard
# networking.wireguard.interfaces = {
# # "wg0" is the network interface name. You can name the interface arbitrarily.
# wg0 = {
# # Determines the IP address and subnet of the client's end of the tunnel interface.
# ips = [ "10.100.0.2/24" ];
# listenPort = 51820; # to match firewall allowedUDPPorts (without this wg uses random port numbers)
#
# # Path to the private key file.
# #
# # Note: The private key can also be included inline via the privateKey option,
# # but this makes the private key world-readable; thus, using privateKeyFile is
# # recommended.
# privateKeyFile = "path to private key file";
#
# peers = [
# # For a client configuration, one peer entry for the server will suffice.
#
# {
# # Public key of the server (not a file path).
# publicKey = "{server public key}";
#
# # Forward all the traffic via VPN.
# allowedIPs = [ "0.0.0.0/0" ];
# # Or forward only particular subnets
# #allowedIPs = [ "10.100.0.1" "91.108.12.0/22" ];
#
# # Set this to the server IP and port.
# endpoint = "{server ip}:51820"; # ToDo: route to endpoint not automatically configured https://wiki.archlinux.org/index.php/WireGuard#Loop_routing https://discourse.nixos.org/t/solved-minimal-firewall-setup-for-wireguard-client/7577
#
# # Send keepalives every 25 seconds. Important to keep NAT tables alive.
# persistentKeepalive = 25;
# }
# ];
# };
# };
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = { i18n.extraLocaleSettings = {

View file

@ -7,5 +7,6 @@
../../modules/audio ../../modules/audio
../../modules/stylix ../../modules/stylix
../../modules/electrical ../../modules/electrical
../../modules/desktop-environment
]; ];
} }

View file

@ -4,9 +4,6 @@
... ...
}: }:
{ {
imports = [
../graphics
];
# Enable the X11 windowing system. # Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session. # You can disable this if you're only using the Wayland session.
services.xserver.enable = false; services.xserver.enable = false;

View file

@ -0,0 +1,68 @@
{
pkgs,
lib,
config,
...
}:
let
cfg = config.liminalOS.desktop;
in
{
options.liminalOS.desktop = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable the liminalOS desktop environment.
'';
};
hyprland.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to enable Hyprland. Sets up a default configuration at the system and user level, and installs xdg-desktop-portal-gtk.
'';
};
};
options.liminalOS.formFactor = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"laptop"
"desktop"
]
);
default = "desktop";
description = ''
Form factor of the machine. Adjusts some UI settings.
'';
};
options.liminalOS.powersave = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to set some options to reduce power consumption (mostly Hyprland).
'';
};
config = lib.mkIf cfg.enable {
xdg.portal = lib.mkIf cfg.hyprland.enable {
enable = true;
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
programs.hyprland.enable = cfg.hyprland.enable;
# programs.niri.enable = cfg.niri.enable;
# programs.xwayland.enable = lib.mkIf cfg.niri.enable (lib.mkForce true);
services.xserver.enable = false;
services.xserver = {
xkb.layout = "us";
xkb.variant = "";
};
};
}

View file

@ -1,23 +0,0 @@
{
config,
lib,
inputs,
...
}:
let
cfg = config.hardware.nvidia;
in
{
options.hardware.nvidia.usePatchedAquamarine = lib.mkEnableOption "q9i's patched aquamarine with working sleep on Nvidia";
config = lib.mkIf cfg.usePatchedAquamarine {
nixpkgs.overlays = [
(final: prev: {
aquamarine = prev.aquamarine.overrideAttrs {
src = inputs.aq;
version = inputs.aq.rev;
};
})
];
};
}

View file

@ -6,9 +6,9 @@
stylix = { stylix = {
enable = true; enable = true;
image = "${inputs.wallpapers}/vtubers/nordMachi-resized.png"; image = "${inputs.wallpapers}/anime/N25/mafuAura.png";
polarity = "dark"; polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
fonts = { fonts = {
serif = { serif = {

View file

@ -4,7 +4,10 @@
enable = true; enable = true;
settings = { settings = {
default_session = { default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway --remember --greeting 'Access is restricted to authorized personnel only.'"; command = ''
${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland --remember --asterisks --greeting "Welcome, generation $(readlink /nix/var/nix/profiles/system | grep -o '[0-9]*'). Access is restricted to authorized personnel only."
'';
# --remember tuigreet --time --cmd Hyprland --remember --asterisks --greeting 'Access granted for those who don't touch grass'
user = "greeter"; user = "greeter";
}; };
}; };

View file

@ -0,0 +1,60 @@
{
lib,
fetchFromGitHub,
hyprland,
pkg-config,
cmake,
unstableGitUpdater,
...
}:
let
mkHyprlandPlugin =
hyprland:
args@{ pluginName, ... }:
hyprland.stdenv.mkDerivation (
args
// {
pname = "${pluginName}";
nativeBuildInputs = [ pkg-config ] ++ args.nativeBuildInputs or [ ];
buildInputs = [ hyprland ] ++ hyprland.buildInputs ++ (args.buildInputs or [ ]);
meta = args.meta // {
description = args.meta.description or "";
longDescription =
(args.meta.longDescription or "")
+ "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options.";
};
}
);
in
mkHyprlandPlugin hyprland {
pluginName = "hyprscroller";
version = "0-unstable-2025-05-16";
src = fetchFromGitHub {
owner = "cpiber";
repo = "hyprscroller";
rev = "de97924b6d1086d84939b6f6688637f7b21d8d80";
hash = "sha256-m9689UH+w8Z/qP/DKYtzQfIGfiE4jgBAfO+uH34cfNs=";
};
nativeBuildInputs = [ cmake ];
installPhase = ''
runHook preInstall
mkdir -p $out/lib
mv hyprscroller.so $out/lib/libhyprscroller.so
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
homepage = "https://github.com/cpiber/hyprscroller";
description = "Hyprland layout plugin providing a scrolling layout like PaperWM";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ youwen5 ];
platforms = lib.platforms.linux;
};
}

View file

@ -1,7 +0,0 @@
{
imports = [
./sway
./waybar
#./rofi
];
}

View file

@ -1,89 +0,0 @@
{
wayland.windowManager.sway = {
enable = true;
config = rec {
terminal = "kitty";
modifier = "Mod4";
menu = "rofi -show combi";
#lock = "swaylock";
bars = [
{
command = "waybar";
}
];
gaps = {
inner = 12;
};
# colors = {
# focused = {
# background = "#191724";
# border = "#6e6a86";
# childBorder = "#6e6a86";
# indicator = "#26233a";
# text = "#e0def4";
# };
# focusedInactive = {
# background = "#797593";
# border = "#393552";
# childBorder = "#393552";
# indicator = "#ea9d34";
# text = "#e0def4";
# };
# placeholder = {
# background = "#1f1d2e";
# border = "#000000";
# childBorder = "#9893a5";
# indicator = "#000000";
# text = "#e0def4";
# };
# unfocused = {
# background = "#1f1d2e";
# border = "#1f1d2e";
# childBorder = "#1f1d2e";
# indicator = "#797593";
# text = "#e0def4";
# };
# urgent = {
# background = "#2a273f";
# border = "#ea9a97";
# childBorder = "#ea9a97";
# indicator = "#1f1d2e";
# text = "#e0def4";
# };
# };
window = {
border = 3;
titlebar = false;
};
# startup = [
# {
# always = true;
# command = "swaybg -i /home/kaitotlex/Pictures/eff.png";
# }
# ];
};
xwayland = true;
extraConfig = ''
bindsym XF86AudioRaiseVolume exec pamixer -i 5
bindsym XF86AudioLowerVolume exec pamixer -d 5
bindsym XF86AudioMute exec pamixer -t
bindsym XF86MonBrightnessUp exec brightnessctl s 5%+
bindsym XF86MonBrightnessDown exec brightnessctl s 5%-
bindsym XF86AudioMicMute exec spotify
input "type:touchpad" {
natural_scroll enabled
tap enabled # enables click-on-tap
tap_button_map lrm # tap with 1 finger = left click, 2 fingers = right click, 3 fingers = middle click
#dwt enabled # disable (touchpad) while typing
}
bindsym XF86KbdBrightnessDown exec brightnessctl -d asus::kbd_backlight s 1-
bindsym XF86KbdBrightnessUp exec brightnessctl -d asus::kbd_backlight s +1
bindsym XF86Tools exec brightnessctl s 0
bindsym XF86WebCam exec systemctl sleep
bindsym Prior exec playerctl previous
bindsym Next exec playerctl next
bindsym XF86RotateWindows exec playerctl play-pause
'';
};
}

View file

@ -1,172 +0,0 @@
{ pkgs, ... }:
{
programs.waybar = {
enable = true;
style = ./style.css;
settings = {
mainBar = {
name = "bar0";
layer = "top";
position = "top";
height = 28;
# "width" = 1920;
"margin" = "5px 10px 0px 10px";
"spacing" = 10;
"mode" = "top";
# "exclusive" = true;
# "output" = "eDP-1";
reload_style_on_change = true;
modules-left = [
"sway/workspaces"
"sway/window"
];
modules-right = [
"tray"
"idle_inhibitor"
"backlight"
"wireplumber"
"network"
"battery"
"disk"
"memory"
"cpu"
"temperature"
"clock"
];
idle_inhibitor = {
format = "{icon}";
format-icons = {
activated = "󰛊 ";
deactivated = "󰾫 ";
};
};
network = {
format = "{ifname}";
format-wifi = "{icon}{essid}";
format-ethernet = " {essid}";
format-disconnected = "󰤯 Disconnected";
format-icons = [
"󰤟 "
"󰤢 "
"󰤨 "
];
tooltip-format = " {bandwidthUpBits} | {bandwidthDownBits}";
tooltip-format-wifi = " {bandwidthUpBits} | {bandwidthDownBits} | 󱄙 {signalStrength}";
};
backlight = {
interval = 2;
format = "󰖨 {percent}%";
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl -d amdgpu_bl2 set 10%";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl -d amdgpu_bl2 set 10%-";
};
wireplumber = {
format = "{icon} {volume}%";
format-muted = "󰝟 ";
on-click = "pamixer -t";
on-scroll-up = "${pkgs.pamixer}/bin/pamixer set 5%+";
on-scroll-down = "${pkgs.pamixer}/bin/pamixer set 5%-";
format-icons = [
""
""
""
""
""
];
};
battery = {
interval = 10;
format = "{icon} {capacity}%";
format-icons = [
"󰂎"
"󰁺"
"󰁻"
"󰁼"
"󰁽"
"󰁾"
"󰁿"
"󰂀"
"󰂁"
"󰂂"
"󰁹"
];
tooltip = true;
tooltip-format = "{timeTo}";
};
disk = {
intervel = 30;
format = "󰋊 {percentage_used}%";
tooltip-format = "{used} used out of {total} on \"{path}\" ({percentage_used}%)";
};
memory = {
interval = 10;
format = " {used}";
tooltip-format = "{used}GiB used of {total}GiB ({percentage}%)";
};
cpu = {
interval = 10;
format = " {usage}%";
};
temperature = {
interval = 10;
};
clock = {
interval = 1;
format = "{:%H:%M:%S}";
};
"hyprland/workspaces" = {
show-special = true;
persistent-workspaces = {
"*" = [
1
2
3
4
5
6
7
8
9
10
];
};
format = "{icon}";
format-icons = {
active = "";
empty = "";
default = "";
urgent = "";
special = "󰠱";
};
};
"hyprland/window" = {
icon = true;
icon-size = 20;
max-length = 50;
rewrite = {
"(.*) firefox" = "$1";
"(.*) chromium" = "$1";
"^$" = "👾";
};
};
};
};
};
}

View file

@ -1,27 +0,0 @@
@define-color bg #2E3440;
/*@define-color bg #353C4A;*/
@define-color light #D8DEE9;
/*@define-color dark @nord_dark_font;*/
@define-color warning #ebcb8b;
@define-color critical #BF616A;
@define-color mode #434C5E;
/*@define-color workspaces @bg;*/
/*@define-color workspaces @nord_dark_font;*/
/*@define-color workspacesfocused #434C5E;*/
@define-color workspacesfocused #4C566A;
@define-color tray @workspacesfocused;
@define-color sound #EBCB8B;
@define-color network #5D7096;
@define-color memory #546484;
@define-color cpu #596A8D;
@define-color temp #4D5C78;
@define-color layout #5e81ac;
@define-color battery #88c0d0;
@define-color date #434C5E;
@define-color time #434C5E;
@define-color backlight #434C5E;
@define-color nord_bg #434C5E;
@define-color nord_bg_blue #546484;
@define-color nord_light #D8DEE9;
@define-color nord_light_font #D8DEE9;
@define-color nord_dark_font #434C5E;

View file

@ -1,23 +0,0 @@
/*
* Variant: Rosé Pine Dawn
* Maintainer: DankChoir
*/
@define-color base #faf4ed;
@define-color surface #fffaf3;
@define-color overlay #f2e9e1;
@define-color muted #9893a5;
@define-color subtle #797593;
@define-color text #575279;
@define-color love #b4637a;
@define-color gold #ea9d34;
@define-color rose #d7827e;
@define-color pine #286983;
@define-color foam #56949f;
@define-color iris #907aa9;
@define-color highlightLow #f4ede8;
@define-color highlightMed #dfdad9;
@define-color highlightHigh #cecacd;

View file

@ -1,75 +0,0 @@
@import "./nord.css";
window#waybar {
font-family: "CaskaydiaCove Nerd Font";
background-color: @bg;
font-size: 0.8rem;
border-radius: 0.5rem;
}
.modules-left {
opacity: 1;
background-color: #95a3bb;
border-radius: 0.5rem;
padding: 2px;
}
.modules-center {
opacity: 0;
}
.modules-right {
opacity: 1;
background-color: #95a3bb;
border-radius: 0.5rem;
padding: 2px 2px 2px 10px
}
/* label.module {
margin-left: -1px;
} */
#workspaces {
background-color: #6e7581;
border-radius: 0.5rem;
padding: 0 2px;
}
#workspaces button {
font-size: 0.6rem;
padding: 0 0.3rem 0 0;
}
#window {
background-color: #95a3bb;
border-radius: 0.5rem;
padding: 2px 5px;
}
#clock {
border-radius: 0.5rem;
padding: 0 3px 0 0;
}
#battery {
color: @date;
}
#memory {
color: @memory;
}
#disk {
color: @date;
}
#cpu {
color: @cpu;
}
#temperature {
color: @temp;
}
#network {
color: @network;
}

View file

@ -1,76 +0,0 @@
@import "./rose-pine-dawn.css";
window#waybar {
font-family: "CaskaydiaCove Nerd Font";
background-color: @base;
font-size: 0.8rem;
border-radius: 0.5rem;
}
.modules-left {
opacity: 1;
background: linear-gradient(45deg, @muted, @subtle);
border-radius: 0.5rem;
padding: 2px;
}
.modules-center {
opacity: 0;
}
.modules-right {
opacity: 1;
background-color: @subtle;
border-radius: 0.5rem;
padding: 2px 2px 2px 10px
}
/* label.module {
margin-left: -1px;
} */
#workspaces {
background-color: @rose;
border-radius: 0.5rem;
padding: 0 2px;
}
#workspaces button {
font-size: 0.6rem;
padding: 0 0.3rem 0 0;
}
#window {
background-color: @iris;
border-radius: 0.5rem;
padding: 2px 5px;
}
#clock {
border-radius: 0.5rem;
padding: 0 3px 0 0;
}
#battery {
color: @foam;
}
#memory {
color: @iris;
}
#disk {
color: @gold;
}
#cpu {
color: @rose;
}
#temperature {
color: @foam;
}
#network {
color: @rose;
}

View file

@ -2,7 +2,10 @@
imports = [ imports = [
./home.nix ./home.nix
./spicetify.nix ./spicetify.nix
./de
./stylix ./stylix
./desktop-environment
]; ];
liminalOS.formFactor = "laptop";
liminalOS.powersave = false;
} }

View file

@ -0,0 +1,22 @@
{
osConfig,
lib,
...
}:
{
imports = [
./hyprland
./waybar
./swaync.nix
];
options.liminalOS.desktop = {
enable = lib.mkOption {
type = lib.types.bool;
default = osConfig.liminalOS.desktop.enable;
description = ''
Whether to enable the default configuration for the userland portions of the liminalOS desktop environment.
'';
};
};
}

View file

@ -0,0 +1,99 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.liminalOS.desktop.hyprland;
hyprnome = "${pkgs.hyprnome}/bin/hyprnome";
in
{
wayland.windowManager.hyprland.settings = lib.mkIf cfg.enable {
bind = [
"$mod+Shift, $Left, scroller:movewindow, l"
"$mod+Shift, $Right, scroller:movewindow, r"
"$mod+Shift, $Up, scroller:movewindow, u"
"$mod+Shift, $Down, scroller:movewindow, d"
# Move around
"$mod, $Left, scroller:movefocus, l"
"$mod, $Right, scroller:movefocus, r"
"$mod, $Up, scroller:movefocus, u"
"$mod, $Down, scroller:movefocus, d"
"$mod, comma, scroller:admitwindow"
"$mod, period, scroller:expelwindow"
"$mod, F, scroller:fitsize, active"
"$mod, Y, scroller:fitsize, all"
"$mod, semicolon, scroller:cyclesize, next"
"$mod, apostrophe, scroller:cyclesize, previous"
"$mod+Shift, U, exec, ${hyprnome} --move"
"$mod+Shift, I, exec, ${hyprnome} --previous --move"
"$mod, U, exec, ${hyprnome}"
"$mod, I, exec, ${hyprnome} --previous"
"$mod, C, scroller:setmode, c"
"$mod, V, scroller:setmode, r"
"$mod, G, scroller:jump"
"$mod+Ctrl, G, scroller:toggleoverview"
# Window actions
"$mod, Q, killactive"
"$mod, W, togglefloating"
"$mod, Return, fullscreen"
# Utilities
"$mod, Space, exec, pkill -x rofi || rofi -show drun" # Run rofi application launcher
"$mod, X, exec, pkill -x rofi || rofi -show window" # Run rofi window switcher
"$mod, Backspace, exec, pkill -x wlogout || wlogout" # show logout menu
"$mod, Z, exec, loginctl lock-session"
# Media controls
",XF86AudioMute, exec, ${pkgs.pamixer}/bin/pamixer -t"
",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox play-pause"
",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox next"
",XF86AudioRewind, exec, ${pkgs.playerctl}/bin/playerctl --player=%any,firefox previous"
"$mod, S, togglespecialworkspace"
"$mod+Alt, S, movetoworkspacesilent, special"
"$mod, Tab, workspace, previous"
''$mod+Shift, P, exec, ${pkgs.grim}/bin/grim - | ${pkgs.swappy}/bin/swappy -f -'' # Screenshot full screen
''$mod, P, exec, ${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" - | ${pkgs.swappy}/bin/swappy -f -'' # Screenshot
"$mod, B, exec, zen"
"$mod, N, exec, sleep 0.1 && ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"
# Application Keybinds
"$mod, R, exec, ${pkgs.pavucontrol}/bin/pavucontrol -t 3" # open pavucontrol on 'outputs' tab
"$mod, T, exec, ${pkgs.kitty}/bin/kitty"
"$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar"
"$mod, M, exec, ${pkgs.thunderbird}/bin/thunderbird"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86MonBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%-"
",XF86MonBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl set 5%+"
",XF86KbdBrightnessDown, exec, ${pkgs.brightnessctl}/bin/brightnessctl -d asus::kbd_backlight set 1-"
",XF86KbdBrightnessUp, exec, ${pkgs.brightnessctl}/bin/brightnessctl -d asus::kbd_backlight set 1-"
",XF86Launch1, exec, ${pkgs.supergfxctl}/bin/supergfxctl --mode Hybrid"
",XF86Launch4, exec, ${pkgs.supergfxctl}/bin/supergfxctl --mode Integrated"
",XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 5"
",XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 5"
];
binde = [
# Resize windows
"$mod+Alt, $Right, resizeactive, 30 0"
"$mod+Alt, $Left, resizeactive, -30 0"
"$mod+Alt, $Up, resizeactive, 0 -30"
"$mod+Alt, $Down, resizeactive, 0 30"
];
};
}

View file

@ -0,0 +1,248 @@
{
pkgs,
config,
lib,
osConfig,
inputs,
...
}:
let
cfg = config.liminalOS.desktop.hyprland;
in
{
imports = [
./binds.nix
./utilities.nix
./windowrules.nix
];
options.liminalOS.formFactor = lib.mkOption {
type = lib.types.nullOr (
lib.types.enum [
"laptop"
"desktop"
]
);
default = osConfig.liminalOS.formFactor;
description = ''
Form factor of the machine. Adjusts some UI settings.
'';
};
options.liminalOS.powersave = lib.mkOption {
type = lib.types.bool;
default = osConfig.liminalOS.powersave;
description = ''
Whether to set some options to reduce power consumption (mostly Hyprland).
'';
};
options.liminalOS.desktop.hyprland = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable and rice Hyprland as well as some basic desktop utilities.
'';
};
gtkUseOpenGL = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to set GSK_RENDERER environment variable to stop GTK apps from crashing.
'';
};
idleDaemon.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable;
description = ''
Whether to setup and enable Hypridle with some defaults to automatically lock the screen and suspend after idling.
'';
};
screenlocker.enable = lib.mkOption {
type = lib.types.bool;
default = cfg.enable && cfg.idleDaemon.enable;
description = ''
Whether to set up Hyprlock for screen locking.
'';
};
screenlocker.useCrashFix = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Whether to use a workaround for Hyprlock background blur not working on some machines. Before locking, a screenshot will be taken and placed at `/tmp/__hyprlock-monitor-screenshot.png`.
'';
};
screenlocker.monitor = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
description = ''
Monitor to use for screen locker. Use `hyprctl monitors` to determine.
'';
};
bluelight.enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to enable `hyprsunset` as a daemon.
'';
};
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
wl-clipboard
libsForQt5.qtstyleplugin-kvantum
libsForQt5.qt5ct
papirus-icon-theme
libsForQt5.qt5ct
hyprland-qtutils
];
wayland.windowManager.hyprland =
let
hyprscroller = pkgs.callPackage ../../../../pkgs/hyprland/hyprscroller.nix {
src = inputs.hyprscroller-src;
version = inputs.hyprscroller-src.lastModified;
};
in
{
enable = true;
plugins = [ hyprscroller ];
settings = {
input.touchpad = lib.mkIf (config.liminalOS.formFactor == "laptop") {
natural_scroll = true;
disable_while_typing = true;
clickfinger_behavior = true;
tap-to-click = true;
scroll_factor = 0.15;
};
exec-once = [
"hyprctl dispatch workspace 100000"
];
"$mod" = "SUPER";
"$Left" = "H";
"$Right" = "L";
"$Up" = "K";
"$Down" = "J";
env = (
lib.optionals cfg.gtkUseOpenGL [
"GSK_RENDERER,ngl"
]
);
layerrule = [
"blur,rofi"
"ignorezero,rofi"
"animation slide bottom 0.2 0.2 wind,rofi"
"blur,notifications"
"ignorezero,notifications"
"blur,swaync-notification-window"
"animation slide right 0.5 0.5,swaync-control-center"
"animation slide right 0.5 0.5,notifications"
"animation slide right 0.5 0.5,swaync-notification-window"
"ignorezero,swaync-notification-window"
"blur,swaync-control-center"
"ignorezero,swaync-control-center"
"blur,logout_dialog"
];
dwindle = {
pseudotile = "yes";
preserve_split = "yes";
};
animations = {
enabled = "yes";
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
"winIn, 0.1, 1.1, 0.1, 1.1"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
"windup, 0.05, 0.9, 0.1, 1.05"
];
animation =
[
"windows, 1, 6, wind, slide"
"windowsIn, 1, 6, winIn, slide"
"windowsOut, 1, 5, winOut, slide"
"windowsMove, 1, 5, wind, slide"
"fade, 1, 10, default"
# "layers, 1, 8, default, slide"
"workspaces, 1, 5, wind, slidefadevert"
]
++ (lib.optionals (!osConfig.liminalOS.powersave) [
"border, 1, 1, liner"
"borderangle, 1, 30, liner, loop"
]);
};
general =
let
inherit (config.lib.stylix) colors;
in
{
gaps_in = "3";
gaps_out = "8";
border_size = "2";
# "col.active_border" = pkgs.lib.mkForce "rgba(ca9ee6ff) rgba(f2d5cfff) 45deg";
# "col.inactive_border" = pkgs.lib.mkForce "rgba(b4befecc) rgba(6c7086cc) 45deg";
"col.active_border" = "rgba(${colors.base0A}ff) rgba(${colors.base09}ff) 45deg";
"col.inactive_border" = "rgba(${colors.base01}cc) rgba(${colors.base02}cc) 45deg";
layout = "scroller";
resize_on_border = "true";
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
cursor = {
hide_on_key_press = true;
};
decoration = {
rounding = "10";
dim_special = "0.3";
blur = {
enabled = "yes";
size = "6";
passes = "3";
new_optimizations = "on";
ignore_opacity = "on";
xray = "false";
special = true;
};
shadow = {
enabled = false;
};
};
input = {
sensitivity = "-0.25";
};
plugin.scroller = {
column_widths = "onethird onehalf twothirds one";
column_heights = "onethird onehalf twothirds one";
};
experimental.xx_color_management_v4 = true;
};
};
# wayland.windowManager.hyprland.settings.input.touchpad =
# lib.mkIf (config.liminalOS.formFactor == "laptop")
# {
# natural_scroll = true;
# disable_while_typing = true;
# clickfinger_behavior = true;
# tap-to-click = false;
# scroll_factor = 0.15;
# };
#
assertions = [
{
assertion =
!cfg.screenlocker.useCrashFix || (cfg.screenlocker.useCrashFix && cfg.screenlocker.monitor != null);
message = "To use the Nvidia crash fix, you must set screenlocker.monitor to the monitor you want to use as the lock screen that blurs! Use `hyprctl monitors` to determine the monitor codes (should be something like DP-1, HDMI-A-1, etc).";
}
];
};
}

View file

@ -0,0 +1,183 @@
{
pkgs,
lib,
config,
...
}:
let
cfg = config.liminalOS.desktop.hyprland;
in
{
config = lib.mkIf cfg.enable {
systemd.user.services = lib.mkIf cfg.bluelight.enable {
hyprsunset = {
Unit = {
Description = "Start the hyprsunset daemon";
PartOf = "hyprland-session.target";
After = "hyprland-session.target";
};
Service = {
Type = "simple";
ExecStart = "${pkgs.hyprsunset}/bin/hyprsunset";
Restart = "on-failure";
RestartSec = 3;
};
Install = {
WantedBy = [ "hyprland-session.target" ];
};
};
};
services.hyprpaper.enable = true;
programs.wlogout.enable = true;
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
terminal = "${pkgs.kitty}/bin/kitty";
theme =
let
inherit (config.lib.formats.rasi) mkLiteral;
mkRgba =
opacity: color:
let
c = config.lib.stylix.colors;
r = c."${color}-rgb-r";
g = c."${color}-rgb-g";
b = c."${color}-rgb-b";
in
mkLiteral "rgba ( ${r}, ${g}, ${b}, ${opacity} % )";
mkRgb = mkRgba "100";
rofiOpacity = builtins.toString (builtins.ceil (config.stylix.opacity.popups * 100));
in
{
"*" = {
font = "${config.stylix.fonts.monospace.name} ${toString config.stylix.fonts.sizes.popups}";
text-color = mkRgb "base05";
background-color = mkRgba rofiOpacity "base00";
};
"window" = {
height = mkLiteral "20em";
width = mkLiteral "30em";
border-radius = mkLiteral "8px";
border-width = mkLiteral "2px";
padding = mkLiteral "1.5em";
};
"mainbox" = {
background-color = mkRgba rofiOpacity "base01";
};
"inputbar" = {
margin = mkLiteral "0 0 1em 0";
};
"prompt" = {
enabled = false;
};
"entry" = {
placeholder = "Search...";
padding = mkLiteral "1em 1em";
text-color = mkRgb "base05";
background-color = mkRgba rofiOpacity "base00";
border-radius = mkLiteral "8px";
};
"element-text" = {
padding = mkLiteral "0.5em 1em";
margin = mkLiteral "0 0.5em";
};
"element-icon" = {
size = mkLiteral "3ch";
};
"element-text selected" = {
background-color = mkRgba rofiOpacity "base0A";
text-color = mkRgb "base01";
border-radius = mkLiteral "8px";
};
};
};
services.swayosd.enable = true;
programs.hyprlock = lib.mkIf cfg.screenlocker.enable {
enable = true;
settings = {
general = {
hide_cursor = true;
grace = 0;
};
background = {
monitor = cfg.screenlocker.monitor;
path =
if cfg.screenlocker.useCrashFix then "/tmp/__hyprlock-monitor-screenshot.png" else "screenshot";
blur_passes = 3;
blur_size = 7;
noise = 0.0117;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
};
input-field = {
monitor = "";
size = "200, 50";
outline_thickness = 3;
dots_size = 0.33;
dots_spacing = 0.15;
dots_center = false;
dots_rounding = -1;
outer_color = "rgb(151515)";
inner_color = "rgb(200, 200, 200)";
font_color = "rgb(10, 10, 10)";
fade_on_empty = true;
fade_timeout = 1000;
placeholder_text = "<i>Input Password...</i>";
hide_input = false;
rounding = -1;
check_color = "rgb(204, 136, 34)";
fail_color = "rgb(204, 34, 34)";
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
fail_timeout = 2000;
fail_transition = 300;
capslock_color = -1;
numlock_color = -1;
bothlock_color = -1;
invert_numlock = false;
swap_font_color = false;
position = "0, -20";
halign = "center";
valign = "center";
};
};
};
services.hypridle = lib.mkIf cfg.idleDaemon.enable {
enable = true;
settings = {
general = {
lock_cmd =
if cfg.screenlocker.useCrashFix then
"pidof hyprlock || ${pkgs.grim}/bin/grim -o ${config.programs.hyprlock.settings.background.monitor} /tmp/__hyprlock-monitor-screenshot.png && ${pkgs.hyprlock}/bin/hyprlock"
else
"pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session"; # lock before suspend.
after_sleep_cmd = "hyprctl dispatch dpms on"; # to avoid having to press a key twice to turn on the display.
};
listener = [
{
timeout = 1500;
on-timeout = "loginctl lock-session";
}
{
timeout = 330; # 5.5min
on-timeout = "hyprctl dispatch dpms off"; # screen off when timeout has passed
on-resume = "hyprctl dispatch dpms on"; # screen on when activity is detected after timeout has fired.
}
{
timeout = 1800;
on-timeout = "systemctl suspend";
}
];
};
};
};
}

View file

@ -0,0 +1,95 @@
{ config, lib, ... }:
{
config.wayland.windowManager.hyprland.settings.windowrulev2 =
lib.mkIf config.liminalOS.desktop.hyprland.enable
[
"opacity 0.90 0.90,class:^(librewolf)$"
"opacity 0.90 0.90,class:^(floorp)$"
"opacity 0.90 0.90,class:^(zen-alpha)$"
"opacity 0.90 0.90,class:^(zen-beta)$"
"opacity 0.90 0.90,class:^(zen)$"
"opacity 0.90 0.90,class:^(Brave-browser)$"
"opacity 0.80 0.80,class:^(Steam)$"
"opacity 0.80 0.80,class:^(steam)$"
"opacity 0.80 0.80,class:^(steamwebhelper)$"
"opacity 0.80 0.80,class:^(Spotify)$"
"opacity 0.80 0.80,initialTitle:^(Spotify Premium)$"
"opacity 0.80 0.80,initialTitle:^(Spotify Free)$"
"opacity 0.80 0.80,class:^(code-oss)$"
"opacity 0.80 0.80,class:^(Code)$"
"opacity 0.80 0.80,class:^(code-url-handler)$"
"opacity 0.80 0.80,class:^(code-insiders-url-handler)$"
"opacity 0.80 0.80,class:^(kitty)$"
"opacity 0.80 0.80,class:^(neovide)$"
"opacity 0.80 0.80,class:^(org.kde.dolphin)$"
"opacity 0.80 0.80,class:^(thunar)$"
"opacity 0.80 0.80,class:^(org.kde.ark)$"
"opacity 0.80 0.80,class:^(nwg-look)$"
"opacity 0.80 0.80,class:^(qt5ct)$"
"opacity 0.80 0.80,class:^(qt6ct)$"
"opacity 0.80 0.80,class:^(kvantummanager)$"
"opacity 0.80 0.80,class:^(waypaper)$"
"opacity 0.80 0.80,class:^(org.pulseaudio.pavucontrol)$"
"opacity 0.80 0.80,class:^(com.github.wwmm.easyeffects)$"
"opacity 0.80 0.80,class:^(thunderbird)$"
"opacity 0.90 0.90,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
"opacity 0.80 0.80,class:^(com.github.tchx84.Flatseal)$ # Flatseal-Gtk"
"opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ # Cartridges-Gtk"
"opacity 0.80 0.80,class:^(com.obsproject.Studio)$ # Obs-Qt"
"opacity 0.80 0.80,class:^(gnome-boxes)$ # Boxes-Gtk"
"opacity 0.80 0.80,class:^(discord)$ # Discord-Electron"
"opacity 0.80 0.80,class:^(vesktop)$ # Vesktop-Electron"
"opacity 0.80 0.80,class:^(ArmCord)$ # ArmCord-Electron"
"opacity 0.80 0.80,class:^(app.drey.Warp)$ # Warp-Gtk"
"opacity 0.80 0.80,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
"opacity 0.80 0.80,class:^(yad)$ # Protontricks-Gtk"
"opacity 0.80 0.80,class:^(signal)$ # Signal-Gtk"
"opacity 0.80 0.80,class:^(io.github.alainm23.planify)$ # planify-Gtk"
"opacity 0.80 0.80,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
"opacity 0.80 0.80,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gtk"
"opacity 0.80 0.80,class:^(lutris)$ # Lutris game launcher"
"opacity 0.80 0.70,class:^(pavucontrol)$"
"opacity 0.80 0.70,class:^(blueman-manager)$"
"opacity 0.80 0.70,class:^(nm-applet)$"
"opacity 0.80 0.70,class:^(nm-connection-editor)$"
"opacity 0.80 0.70,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"float,class:^(org.kde.dolphin)$,title:^(Progress Dialog Dolphin)$"
"float,class:^(org.kde.dolphin)$,title:^(Copying Dolphin)$"
"float,title:^(Picture-in-Picture)$"
"float,class:^(librewolf)$,title:^(Library)$"
"float,class:^(floorp)$,title:^(Library)$"
"float,class:^(zen-alpha)$,title:^(Library)$"
"float,class:^(zen-beta)$,title:^(Library)$"
"float,class:^(zen)$,title:^(Library)$"
''float,class:^(zen)$,title:^(.*Extension: \(Bitwarden Password Manager\).*)$''
"float,class:^(vlc)$"
"float,class:^(kvantummanager)$"
"float,class:^(qt5ct)$"
"float,class:^(qt6ct)$"
"float,class:^(nwg-look)$"
"float,class:^(org.kde.ark)$"
"float,class:^(org.pulseaudio.pavucontrol)$"
"float,class:^(com.github.rafostar.Clapper)$ # Clapper-Gtk"
"float,class:^(app.drey.Warp)$ # Warp-Gtk"
"float,class:^(net.davidotek.pupgui2)$ # ProtonUp-Qt"
"float,class:^(yad)$ # Protontricks-Gtk"
"float,class:^(eog)$ # Imageviewer-Gtk"
"float,class:^(io.github.alainm23.planify)$ # planify-Gtk"
"float,class:^(io.gitlab.theevilskeleton.Upscaler)$ # Upscaler-Gtk"
"float,class:^(com.github.unrud.VideoDownloader)$ # VideoDownloader-Gkk"
"float,class:^(blueman-manager)$"
"float,class:^(nm-applet)$"
"float,class:^(nm-connection-editor)$"
"float,class:^(org.kde.polkit-kde-authentication-agent-1)$"
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.gtk)$"
"opacity 0.80 0.80,class:^(org.freedesktop.impl.portal.desktop.hyprland)$"
''size 70% 70%,class:^(zen)$,title:^(.*Extension: \(Bitwarden Password Manager\).*)$''
"size 50% 50%,class:^(org.pulseaudio.pavucontrol)"
"stayfocused, class:^(pinentry-)" # fix pinentry losing focus
];
}

View file

@ -0,0 +1,325 @@
{ config, lib, ... }:
let
cfg = config.liminalOS.desktop.swaync;
in
{
options.liminalOS.desktop.swaync = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable the swaync notification center and daemon.
'';
};
};
config = lib.mkIf cfg.enable {
services.swaync.enable = true;
services.swaync.settings = {
positionX = "right";
positionY = "top";
control-center-margin-top = 10;
control-center-margin-bottom = 10;
control-center-margin-right = 10;
control-center-margin-left = 10;
notification-icon-size = 64;
notification-body-image-height = 100;
notification-body-image-width = 200;
timeout = 10;
timeout-low = 5;
timeout-critical = 0;
fit-to-screen = false;
control-center-width = 500;
control-center-height = 800;
notification-window-width = 500;
keyboard-shortcuts = true;
image-visibility = "when-available";
transition-time = 200;
hide-on-clear = false;
hide-on-action = true;
script-fail-notify = true;
widgets = [
"title"
"mpris"
"volume"
"backlight"
"dnd"
"notifications"
];
widget-config = {
title = {
text = "Mission Control";
clear-all-button = "true";
button-text = " All Systems Go";
};
dnd = {
text = "Do Not Disturb";
};
label = {
max-lines = 1;
text = "Mission Control";
};
mpris = {
image-size = 96;
image-radius = 7;
};
volume = {
label = "󰕾";
};
backlight = {
label = "󰃟";
};
};
};
home.file.".config/swaync/style.css".text = ''
* {
font-family: ${config.stylix.fonts.monospace.name};
}
.control-center .notification-row:focus,
.control-center .notification-row:hover {
background: #${config.lib.stylix.colors.base00}
}
.notification-row {
outline: none;
margin: 10px;
padding: 0;
}
.notification {
background: transparent;
padding: 0;
margin: 0px;
opacity: 0.75;
}
.notification-content {
background: #${config.lib.stylix.colors.base00};
padding: 10px;
border-radius: 5px;
border: 2px solid #${config.lib.stylix.colors.base05};
margin: 0;
}
.notification-default-action {
margin: 0;
padding: 0;
border-radius: 5px;
}
.close-button {
background: #${config.lib.stylix.colors.base08};
color: #${config.lib.stylix.colors.base00};
text-shadow: none;
padding: 0;
border-radius: 5px;
margin-top: 5px;
margin-right: 5px;
}
.close-button:hover {
box-shadow: none;
background: #${config.lib.stylix.colors.base0D};
transition: all .15s ease-in-out;
border: none
}
.notification-action {
border: 2px solid #${config.lib.stylix.colors.base0D};
border-top: none;
border-radius: 5px;
}
.notification-default-action:hover,
.notification-action:hover {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base0B}
}
.notification-default-action {
border-radius: 5px;
margin: 0px;
}
.notification-default-action:not(:only-child) {
border-bottom-left-radius: 7px;
border-bottom-right-radius: 7px
}
.notification-action:first-child {
border-bottom-left-radius: 10px;
background: #${config.lib.stylix.colors.base00}
}
.notification-action:last-child {
border-bottom-right-radius: 10px;
background: #${config.lib.stylix.colors.base00}
}
.inline-reply {
margin-top: 8px
}
.inline-reply-entry {
background: #${config.lib.stylix.colors.base00};
color: #${config.lib.stylix.colors.base05};
caret-color: #${config.lib.stylix.colors.base05};
border: 1px solid #${config.lib.stylix.colors.base09};
border-radius: 5px
}
.inline-reply-button {
margin-left: 4px;
background: #${config.lib.stylix.colors.base00};
border: 1px solid #${config.lib.stylix.colors.base09};
border-radius: 5px;
color: #${config.lib.stylix.colors.base05}
}
.inline-reply-button:disabled {
background: initial;
color: #${config.lib.stylix.colors.base03};
border: 1px solid transparent
}
.inline-reply-button:hover {
background: #${config.lib.stylix.colors.base00}
}
.body-image {
margin-top: 6px;
background-color: #${config.lib.stylix.colors.base05};
border-radius: 5px
}
.summary {
font-size: 16px;
font-weight: 700;
background: transparent;
color: rgba(158, 206, 106, 1);
text-shadow: none
}
.time {
font-size: 16px;
font-weight: 700;
background: transparent;
color: #${config.lib.stylix.colors.base05};
text-shadow: none;
margin-right: 18px
}
.body {
font-size: 15px;
font-weight: 400;
background: transparent;
color: #${config.lib.stylix.colors.base05};
text-shadow: none
}
.control-center {
background: #${config.lib.stylix.colors.base00};
border: 2px solid #${config.lib.stylix.colors.base0C};
border-radius: 5px;
opacity: 0.85;
}
.control-center-list {
background: transparent
}
.control-center-list-placeholder {
opacity: .5
}
.floating-notifications {
background: transparent
}
.blank-window {
background: alpha(black, 0)
}
.widget-title {
color: #${config.lib.stylix.colors.base0B};
background: #${config.lib.stylix.colors.base00};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
font-size: 1.5rem;
border-radius: 5px;
}
.widget-title>button {
font-size: 1rem;
color: #${config.lib.stylix.colors.base05};
text-shadow: none;
background: #${config.lib.stylix.colors.base00};
box-shadow: none;
border-radius: 5px;
}
.widget-title>button:hover {
background: #${config.lib.stylix.colors.base08};
color: #${config.lib.stylix.colors.base00};
}
.widget-dnd {
background: #${config.lib.stylix.colors.base00};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: large;
color: #${config.lib.stylix.colors.base0B};
}
.widget-dnd>switch {
border-radius: 5px;
/* border: 1px solid #${config.lib.stylix.colors.base0B}; */
background: #${config.lib.stylix.colors.base0B};
}
.widget-dnd>switch:checked {
background: #${config.lib.stylix.colors.base08};
border: 1px solid #${config.lib.stylix.colors.base08};
}
.widget-dnd>switch slider {
background: #${config.lib.stylix.colors.base00};
border-radius: 5px
}
.widget-dnd>switch:checked slider {
background: #${config.lib.stylix.colors.base00};
border-radius: 5px
}
.widget-label {
margin: 10px 10px 5px 10px;
}
.widget-label>label {
font-size: 1rem;
color: #${config.lib.stylix.colors.base05};
}
.widget-mpris {
color: #${config.lib.stylix.colors.base05};
padding: 5px 10px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
}
.widget-mpris > box > button {
border-radius: 5px;
}
.widget-mpris-player {
padding: 5px 10px;
margin: 10px
}
.widget-mpris-title {
font-weight: 700;
font-size: 1.25rem
}
.widget-mpris-subtitle {
font-size: 1.1rem
}
.widget-menubar>box>.menu-button-bar>button {
border: none;
background: transparent
}
.topbar-buttons>button {
border: none;
background: transparent
}
.widget-volume {
background: #${config.lib.stylix.colors.base01};
padding: 5px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: x-large;
color: #${config.lib.stylix.colors.base05};
}
.widget-volume>box>button {
background: #${config.lib.stylix.colors.base0B};
border: none
}
.per-app-volume {
background-color: #${config.lib.stylix.colors.base00};
padding: 4px 8px 8px;
margin: 0 8px 8px;
border-radius: 5px;
}
.widget-backlight {
background: #${config.lib.stylix.colors.base01};
padding: 5px;
margin: 10px 10px 5px 10px;
border-radius: 5px;
font-size: x-large;
color: #${config.lib.stylix.colors.base05}
}
'';
};
}

View file

@ -0,0 +1,424 @@
{
pkgs,
config,
lib,
osConfig,
...
}:
let
cfg = config.liminalOS.desktop.waybar;
theme = config.lib.stylix;
palette = theme.colors;
in
{
options.liminalOS.desktop.waybar = {
enable = lib.mkOption {
type = lib.types.bool;
default = config.liminalOS.desktop.enable;
description = ''
Whether to enable Waybar and the liminalOS rice.
'';
};
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ playerctl ];
programs.waybar =
let
isDesktop = osConfig.liminalOS.formFactor == "desktop";
isLaptop = osConfig.liminalOS.formFactor == "laptop";
in
{
enable = true;
systemd.enable = true;
systemd.target = lib.mkIf config.liminalOS.desktop.hyprland.enable "hyprland-session.target";
settings.mainBar = {
name = "bar0";
reload_style_on_change = true;
position = "top";
layer = "top";
height = 37;
margin-top = 0;
margin-bottom = 0;
margin-left = 0;
margin-right = 0;
modules-left =
[
"custom/launcher"
]
++ (lib.optionals isDesktop [
"custom/playerctl#backward"
"custom/playerctl#play"
"custom/playerctl#foward"
])
++ [
"custom/playerlabel"
]
++ (lib.optionals isLaptop [
"hyprland/workspaces"
]);
modules-center = lib.mkIf isDesktop [
"cava#left"
"hyprland/workspaces"
"cava#right"
];
modules-right = [
"tray"
"battery"
"pulseaudio"
"network"
"clock"
];
clock = {
format = " {:%a, %D, %T}";
tooltip = "true";
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%d/%m}";
};
"hyprland/workspaces" = {
disable-scroll = false;
on-scroll-down = "${pkgs.hyprnome}/bin/hyprnome";
on-scroll-up = "${pkgs.hyprnome}/bin/hyprnome --previous";
format = "{icon}";
on-click = "activate";
format-icons = {
active = "";
default = "";
urgent = "";
special = "󰠱";
};
sort-by-number = true;
};
"cava#left" = {
framerate = 60;
autosens = 1;
bars = 18;
lower_cutoff_freq = 50;
higher_cutoff_freq = 10000;
method = "pipewire";
source = "auto";
stereo = true;
reverse = false;
bar_delimiter = 0;
monstercat = false;
waves = false;
input_delay = 2;
format-icons = [
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
];
};
"cava#right" = {
framerate = 60;
autosens = 1;
bars = 18;
lower_cutoff_freq = 50;
higher_cutoff_freq = 10000;
method = "pipewire";
source = "auto";
stereo = true;
reverse = false;
bar_delimiter = 0;
monstercat = false;
waves = false;
input_delay = 2;
format-icons = [
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base08}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
"<span foreground='#${palette.base0A}'></span>"
];
};
"custom/playerctl#backward" = {
format = "󰙣 ";
on-click = "playerctl previous";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
};
"custom/playerctl#play" = {
format = "{icon}";
return-type = "json";
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
on-click = "playerctl play-pause";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
format-icons = {
Playing = "<span>󰏥 </span>";
Paused = "<span> </span>";
Stopped = "<span> </span>";
};
};
"custom/playerctl#foward" = {
format = "󰙡 ";
on-click = "playerctl next";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
};
"custom/playerlabel" = {
format = "<span>󰎈 {} 󰎈</span>";
return-type = "json";
max-length = 40;
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
on-click = "";
};
battery = {
states = {
good = 95;
warning = 30;
critical = 15;
};
format = "{icon} {capacity}%";
format-charging = " {capacity}%";
format-plugged = " {capacity}% ";
format-alt = "{icon} {time}";
format-icons = [
""
""
""
""
""
];
};
memory = {
format = "󰍛 {}%";
format-alt = "󰍛 {used}/{total} GiB";
interval = 5;
};
cpu = {
format = "󰻠 {usage}%";
format-alt = "󰻠 {avg_frequency} GHz";
interval = 5;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰈀 100% ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 0% ";
};
tray = {
icon-size = 20;
spacing = 8;
};
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "󰝟";
format-icons = {
default = [
"󰕿"
"󰖀"
"󰕾"
];
};
scroll-step = 5;
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
};
"custom/launcher" =
let
toggle-colorscheme = pkgs.writeShellScriptBin "toggle-colorscheme.sh" ''
POLARITY_FILE="/etc/polarity"
if [[ ! -f "$POLARITY_FILE" ]]; then
exit 0
elif [[ ! -r "$POLARITY_FILE" ]]; then
echo "Error: Cannot read $POLARITY_FILE. Check permissions." >&2
exit 1
fi
current_scheme=$(cat "$POLARITY_FILE")
if [[ $? -ne 0 ]]; then
echo "Error: Failed to read content from $POLARITY_FILE." >&2
exit 1
fi
current_scheme=$(echo "$current_scheme" | xargs)
target_service=""
case "$current_scheme" in
dawn)
target_service="colorscheme-dusk.service"
;;
dusk)
target_service="colorscheme-dawn.service"
;;
*)
echo "Error: Invalid content '$current_scheme' found in $POLARITY_FILE. Expected 'dawn' or 'dusk'." >&2
exit 1
;;
esac
echo "Current scheme: '$current_scheme'. Attempting to start '$target_service'..."
systemctl start "$target_service"
if [[ $? -ne 0 ]]; then
echo "Error: Failed to execute 'systemctl start $target_service'. Check systemctl logs or permissions." >&2
exit 1
else
echo "Command 'systemctl start $target_service' executed successfully."
fi
exit 0
'';
in
{
format = "";
on-click = "pkill -9 rofi || rofi -show drun";
on-click-right = "${toggle-colorscheme}/bin/toggle-colorscheme.sh";
tooltip = "false";
};
};
style =
''
* {
border: none;
border-radius: 0px;
font-family: GeistMono Nerd Font;
font-size: 13px;
min-height: 0;
}
window#waybar {
background: #${palette.base01};
}
#cava.left, #cava.right {
background: #${palette.base00};
margin: 4px;
padding: 6px 16px;
color: #${palette.base00};
}
#cava.left {
border-radius: 24px 10px 24px 10px;
}
#cava.right {
border-radius: 10px 24px 10px 24px;
}
#workspaces {
background: #${palette.base00};
color: #${palette.base00}
}
#workspaces button {
padding: 0px 5px;
margin: 0px 3px;
border-radius: 16px;
color: transparent;
background: #${palette.base01};
transition: all 0.3s ease-in-out;
}
#workspaces button.active {
background-color: #${palette.base0A};
color: #${palette.base01};
border-radius: 16px;
min-width: 50px;
background-size: 400% 400%;
transition: all 0.3s ease-in-out;
}
#workspaces button:hover {
background-color: #${palette.base05};
color: #${palette.base01};
border-radius: 16px;
min-width: 50px;
background-size: 400% 400%;
}
#tray, #pulseaudio, #network, #battery,
#custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward{
background: #${palette.base00};
font-weight: bold;
margin: 4px 0px;
}
#tray, #pulseaudio, #network, #battery{
color: #${palette.base05};
border-radius: 10px 24px 10px 24px;
padding: 0 20px;
margin-left: 7px;
}
#clock {
color: #${palette.base05};
background: #${palette.base00};
border-radius: 0px 0px 0px 40px;
padding: 8px 10px 8px 25px;
margin-left: 7px;
font-weight: bold;
font-size: 14px;
}
#custom-launcher {
color: #${palette.base0A};
background: #${palette.base00};
border-radius: 0px 0px 40px 0px;
margin: 0px;
padding: 0px 35px 0px 15px;
font-size: 24px;
}
#custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.foward {
background: #${palette.base00};
font-size: 20px;
}
#custom-playerctl.backward:hover, #custom-playerctl.play:hover, #custom-playerctl.foward:hover{
color: #${palette.base05};
}
#custom-playerctl.backward {
color: #${palette.base08};
border-radius: 24px 0px 0px 10px;
padding-left: 16px;
margin-left: 7px;
}
#custom-playerctl.play {
color: #${palette.base0A};
padding: 0 5px;
}
#custom-playerctl.foward {
color: #${palette.base08};
border-radius: 0px 10px 24px 0px;
padding-right: 12px;
margin-right: 7px
}
#custom-playerlabel {
background: #${palette.base00};
color: #${palette.base05};
padding: 0 20px;
border-radius: 24px 10px 24px 10px;
margin: 4px 0;
font-weight: bold;
}
#window{
background: #${palette.base00};
padding-left: 15px;
padding-right: 15px;
border-radius: 16px;
margin-top: 4px;
margin-bottom: 4px;
font-weight: normal;
font-style: normal;
}
''
+ (lib.optionalString isLaptop ''
#workspaces {
margin: 4px;
padding: 6px 16px;
border-radius: 24px 10px 24px 10px;
}
'')
+ (lib.optionalString isDesktop ''
#workspaces {
margin: 4px 5px;
padding: 6px 5px;
border-radius: 16px;
}
'');
};
};
}

View file

@ -22,6 +22,25 @@
home.packages = with pkgs; [ home.packages = with pkgs; [
# here is some command line tools I use frequently # here is some command line tools I use frequently
# feel free to add your own or remove some of them # feel free to add your own or remove some of them
#gfortran1
gqrx
urh
rtl_433
rng-tools
nheko
openvpn
tor-browser
bambu-studio
gimp3
openssl
cmake
obs-studio
python312Packages.pip
pipx
rpcs3
dolphin-emu
affine-bin
elmPackages.elm
kicad kicad
android-tools android-tools
wacomtablet wacomtablet
@ -33,7 +52,6 @@
arduino-language-server arduino-language-server
geoclue2 geoclue2
lua lua
tetrio-desktop
prismlauncher prismlauncher
asciiquarium-transparent asciiquarium-transparent
fortune fortune
@ -80,7 +98,6 @@
sl sl
piper piper
nwg-displays nwg-displays
dolphin
xfce.thunar xfce.thunar
tailwindcss tailwindcss
@ -145,7 +162,7 @@
# productivity # productivity
glow # markdown previewer in terminal glow # markdown previewer in terminal
obsidian # markdown previewer obsidian # markdown previewer
thunderbird-unwrapped # Full Feature Email Client #thunderbird-unwrapped # Full Feature Email Client
#sway Modules #sway Modules
swaybg swaybg
@ -166,7 +183,6 @@
texlivePackages.csquotes texlivePackages.csquotes
texlivePackages.csquotes-de texlivePackages.csquotes-de
texlivePackages.collection-latexextra texlivePackages.collection-latexextra
texpresso
btop # replacement of htop/nmon btop # replacement of htop/nmon
iotop # io monitoring iotop # io monitoring
@ -192,7 +208,6 @@
git-credential-oauth git-credential-oauth
# messaging apps # messaging apps
vesktop
signal-desktop signal-desktop
gh gh
@ -200,7 +215,7 @@
netcat netcat
nmap nmap
metasploit metasploit
john #john
lynis lynis
hydra-cli hydra-cli
#ghidra #ghidra
@ -215,24 +230,12 @@
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
}; };
programs.rofi = { programs.vesktop.enable = true;
enable = true;
cycle = true;
location = "center";
package = pkgs.rofi-wayland;
};
services.dunst.enable = true;
programs.git = { programs.git = {
enable = true; enable = true;
userName = "KaitoTLex"; userName = "KaitoTLex";
userEmail = "wlin@kaitotlex.systems"; userEmail = "renl@kaitotlex.systems";
signing = {
signByDefault = true;
key = "2AE6771F14386F9B85E48685A9209668BFA39C0E";
};
}; };
programs.neovim.defaultEditor = true; programs.neovim.defaultEditor = true;
@ -244,7 +247,38 @@
enableBashIntegration = true; enableBashIntegration = true;
enableFishIntegration = true; enableFishIntegration = true;
}; };
programs.iamb = {
enable = true;
package = inputs.iamb.packages.${pkgs.stdenv.targetPlatform.system}.default;
settings = {
profiles."matrix.org".user_id = "@kaitotlex:matrix.org";
settings = {
image_preview = { };
notifications = {
enabled = true;
show_message = true;
};
};
};
};
# programs.iamb = {
# enable = true;
# packages = inputs.iamb.packages.${pkgs.stdenv.targetPlatform.system}.default;
# settings = {
# profiles."matrix.org" = {
# user_id = "@kaitotlex:matrix.org";
# style = "restore";
# };
# settings = {
# image_preview = { };
# image_preview.protocol.type = "kitty";
# notifications = {
# enabled = true;
# show_message = true;
# };
# };
# };
# };
programs.kitty = { programs.kitty = {
enable = true; enable = true;
settings = { settings = {
@ -265,10 +299,10 @@
}; };
}; };
programs.firefox = { # programs.firefox = {
enable = true; # enable = true;
package = pkgs.firefox-devedition; # package = pkgs.firefox-devedition;
}; # };
programs.ripgrep.enable = true; programs.ripgrep.enable = true;
programs.oh-my-posh = { programs.oh-my-posh = {

View file

@ -3,7 +3,9 @@
waybar.enable = false; waybar.enable = false;
kitty.variant256Colors = true; kitty.variant256Colors = true;
neovim.enable = false; neovim.enable = false;
sway.enable = true; hyprland.enable = false;
swaylock.enable = true; hyprlock.enable = false;
rofi.enable = false;
swaync.enable = false;
}; };
} }