diff --git a/.github/workflows/build-nix.yml b/.github/workflows/build-nix.yml
deleted file mode 100644
index e60310d..0000000
--- a/.github/workflows/build-nix.yml
+++ /dev/null
@@ -1,42 +0,0 @@
-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
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
deleted file mode 100644
index f57e1cd..0000000
--- a/.github/workflows/lock.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-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
diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml
deleted file mode 100644
index 70793b9..0000000
--- a/.github/workflows/merge.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-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 }}
diff --git a/README.md b/README.md
index 0b8cf8b..791d9bd 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,9 @@
# KaitoianOS
-> Fully customizable container-based operating system based on ```NixOS``` running Hyprland && Hyprscroller.
+> Fully customizable container-based operating system based on ```NixOS``` running SwayDE.
## 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.
-
-
-## 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.
-
+## 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.
## What Basic Utilites do you have on here?
- Firefox Developer Edition
- Spotify (Spicetify)
@@ -30,7 +27,7 @@ ROG (ASUS) Flow X13 2022
> 16 GB LPDDR4
-> 256 GB Kioxia
+> 1TB Crucial (Allocated 128 for NixOS)
## How to Install or Clone
@@ -55,6 +52,6 @@ cp /etc/nixos/hardware-configuration.nix ~/KaitoianOS/hosts/shiroko/hardware-con
5. Recompile your os by
```sh
-sudo nixos-rebuild switch --flake .#shiroko #or kuroko
+sudo nixos-rebuild switch --flake .\#shiroko #or kuroko
```
6. Enjoy!
diff --git a/flake.lock b/flake.lock
index 8522081..d96e054 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,15 +1,32 @@
{
"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": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
- "lastModified": 1746562888,
- "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
+ "lastModified": 1732200724,
+ "narHash": "sha256-+R1BH5wHhfnycySb7Sy5KbYEaTJZWm1h+LW1OtyhiTs=",
"owner": "SenchoPens",
"repo": "base16.nix",
- "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
+ "rev": "153d52373b0fb2d343592871009a286ec8837aec",
"type": "github"
},
"original": {
@@ -37,11 +54,11 @@
"base16-helix": {
"flake": false,
"locked": {
- "lastModified": 1748408240,
- "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
+ "lastModified": 1736852337,
+ "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
"owner": "tinted-theming",
"repo": "base16-helix",
- "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
+ "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
"type": "github"
},
"original": {
@@ -53,60 +70,44 @@
"base16-vim": {
"flake": false,
"locked": {
- "lastModified": 1732806396,
- "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
+ "lastModified": 1735953590,
+ "narHash": "sha256-YbQwaApLFJobn/0lbpMKcJ8N5axKlW2QIGkDS5+xoSU=",
"owner": "tinted-theming",
"repo": "base16-vim",
- "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+ "rev": "c2a1232aa2c0ed27dcbf005779bcfe0e0ab5e85d",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
- "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"cpu-microcodes": {
"flake": false,
"locked": {
- "lastModified": 1747081695,
- "narHash": "sha256-nnim3432n3+iwD2alY1cigQE7GKnI8BkyZDJTzood+E=",
+ "lastModified": 1737223256,
+ "narHash": "sha256-aETUoryCkJSRWlxbgL8im40+2FfOm0u4X9aP5aZueME=",
"owner": "platomav",
"repo": "CPUMicrocodes",
- "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
+ "rev": "984b766433e99c7e945b5cc17519bb088084b3fd",
"type": "github"
},
"original": {
"owner": "platomav",
"repo": "CPUMicrocodes",
- "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",
+ "rev": "984b766433e99c7e945b5cc17519bb088084b3fd",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
- "lastModified": 1748383148,
- "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
+ "lastModified": 1736899990,
+ "narHash": "sha256-S79Hqn2EtSxU4kp99t8tRschSifWD4p/51++0xNWUxw=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
- "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
+ "rev": "91ca1f82d717b02ceb03a3f423cbe8082ebbb26d",
"type": "github"
},
"original": {
@@ -118,11 +119,11 @@
"flake-compat": {
"flake": false,
"locked": {
- "lastModified": 1696426674,
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@@ -132,12 +133,13 @@
}
},
"flake-compat_2": {
+ "flake": false,
"locked": {
- "lastModified": 1747046372,
- "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
+ "lastModified": 1733328505,
+ "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@@ -146,51 +148,12 @@
"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": {
"inputs": {
- "systems": "systems"
+ "systems": [
+ "stylix",
+ "systems"
+ ]
},
"locked": {
"lastModified": 1731533236,
@@ -228,18 +191,18 @@
"stylix",
"flake-compat"
],
- "gitignore": "gitignore_2",
+ "gitignore": "gitignore",
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1747372754,
- "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
+ "lastModified": 1735882644,
+ "narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
+ "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"type": "github"
},
"original": {
@@ -249,28 +212,6 @@
}
},
"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": {
"nixpkgs": [
"stylix",
@@ -295,16 +236,16 @@
"gnome-shell": {
"flake": false,
"locked": {
- "lastModified": 1744584021,
- "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
+ "lastModified": 1732369855,
+ "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
"owner": "GNOME",
"repo": "gnome-shell",
- "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
+ "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
"type": "github"
},
"original": {
"owner": "GNOME",
- "ref": "48.1",
+ "ref": "47.2",
"repo": "gnome-shell",
"type": "github"
}
@@ -316,11 +257,11 @@
]
},
"locked": {
- "lastModified": 1749400020,
- "narHash": "sha256-0nTmHO8AYgRYk5v6zw5oZ3x9nh+feb+Isn7WNe318M0=",
+ "lastModified": 1737188535,
+ "narHash": "sha256-O2ttwW1/dUc/Y+Rf48Njtr4tZpRJhy8FhafikekIjMY=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "2835e8ba0ad99ba86d4a5e497a962ec9fa35e48f",
+ "rev": "1e36429705f9af2d00a517ba46a4f21ef8a8194f",
"type": "github"
},
"original": {
@@ -337,11 +278,11 @@
]
},
"locked": {
- "lastModified": 1748737919,
- "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
+ "lastModified": 1736785676,
+ "narHash": "sha256-TY0jUwR3EW0fnS0X5wXMAVy6h4Z7Y6a3m+Yq++C9AyE=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "5675a9686851d9626560052a032c4e14e533c1fa",
+ "rev": "fc52a210b60f2f52c74eac41a8647c1573d2071d",
"type": "github"
},
"original": {
@@ -350,91 +291,13 @@
"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": {
"locked": {
- "lastModified": 1741608660,
- "narHash": "sha256-qikkAmt+z7fN2Zq6lU54x5nZ1KlE97wVAwaJk+/1PkI=",
+ "lastModified": 1735318798,
+ "narHash": "sha256-x1hq2uimNBQtYtkaJ4KODKQmdbAYvnd1hoxRyyPekWE=",
"owner": "BirdeeHub",
"repo": "nixCats-nvim",
- "rev": "ad8d22d086cfb7a1cb0e9fda1fb871bbe370c942",
+ "rev": "58a8782879f926192b06b95f75538618456062ae",
"type": "github"
},
"original": {
@@ -445,59 +308,11 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1736320768,
- "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=",
+ "lastModified": 1737062831,
+ "narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
+ "rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
"type": "github"
},
"original": {
@@ -507,35 +322,21 @@
"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": {
"inputs": {
"nixCats": "nixCats",
- "nixpkgs": "nixpkgs_4",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
"plugins-blink-ripgrep": "plugins-blink-ripgrep",
"plugins-pomo-nvim": "plugins-pomo-nvim"
},
"locked": {
- "lastModified": 1741660851,
- "narHash": "sha256-kFlDqMvo0gNu3xJ9PDXhF21vPv18/NiuhjHr+yoxJp4=",
+ "lastModified": 1737164379,
+ "narHash": "sha256-/lERZhJCq+eXPUENu0a8MwVbO8CMMn2ooej3l3+jc1U=",
"owner": "kaitotlex",
"repo": "vix1",
- "rev": "879bcb9e209dfac74e5e86e1a0066c952edee140",
+ "rev": "30506bcd245c0d44d8cfcda446ff7abb2b12ae1f",
"type": "github"
},
"original": {
@@ -544,40 +345,14 @@
"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": {
"flake": false,
"locked": {
- "lastModified": 1741415505,
- "narHash": "sha256-lEt5AUSyezmlthSj3KUHJ9cX4pQnB2/31j8bklIp5Mk=",
+ "lastModified": 1735411615,
+ "narHash": "sha256-V3Tf8bPpO7KjP/AwcgYjMZdTejydvBx/t33H3+wsNLo=",
"owner": "mikavilpas",
"repo": "blink-ripgrep.nvim",
- "rev": "91aee73557237b0cc1313e4ed2b32f10de6cc65e",
+ "rev": "f4d9460a3552c735c7835a545ce32125610c1ce5",
"type": "github"
},
"original": {
@@ -602,41 +377,11 @@
"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": {
"inputs": {
+ "aq": "aq",
"home-manager": "home-manager",
- "hyprscroller-src": "hyprscroller-src",
- "iamb": "iamb",
- "jkernel": "jkernel",
- "lanzaboote": "lanzaboote",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs",
"nixvim": "nixvim",
"spicetify": "spicetify",
"stylix": "stylix",
@@ -645,58 +390,19 @@
"zen": "zen"
}
},
- "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": {
+ "spicetify": {
"inputs": {
+ "flake-compat": "flake-compat",
"nixpkgs": [
- "lanzaboote",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1731897198,
- "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=",
+ "lastModified": 1737173687,
+ "narHash": "sha256-+WxaXc30KhTuCa9U8Nv2mJApIBq85CfA5fbcVsvdfxo=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "03783416f7416715c52166d4e8ba0492a7149397",
+ "rev": "c68c2ac0814ab386d2cbd3b9178e729b4fc805f0",
"type": "github"
},
"original": {
@@ -713,27 +419,25 @@
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat_2",
- "flake-parts": "flake-parts_2",
+ "flake-utils": "flake-utils",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
"nixpkgs": [
"nixpkgs"
],
- "nur": "nur",
- "systems": "systems_3",
+ "systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
- "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1749398498,
- "narHash": "sha256-Usx6sGnT/D8ZnWiZg+J1OY3dp4ZssMQiN1XeXcsL/cs=",
+ "lastModified": 1737207873,
+ "narHash": "sha256-XTCuMv753lpm8DvdVf9q2mH3rhlfsKrCUYbaADPC/bA=",
"owner": "danth",
"repo": "stylix",
- "rev": "5869510e48e64d916dc6905dc664a02b0f85f1bd",
+ "rev": "51ad2cec11e773a949bdbec88bed2524f098f49a",
"type": "github"
},
"original": {
@@ -757,36 +461,6 @@
"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": {
"flake": false,
"locked": {
@@ -807,43 +481,28 @@
"tinted-kitty": {
"flake": false,
"locked": {
- "lastModified": 1735730497,
- "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
+ "lastModified": 1716423189,
+ "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
- "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
+ "rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
- "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",
+ "rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
- "lastModified": 1748740859,
- "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
+ "lastModified": 1735737224,
+ "narHash": "sha256-FO2hRBkZsjlIRqzNHCPc/52yxg11kHGA8MEtSun9RwE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
- "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
+ "rev": "aead506a9930c717ebf81cc83a2126e9ca08fa64",
"type": "github"
},
"original": {
@@ -868,38 +527,16 @@
"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": {
"inputs": {
"cpu-microcodes": "cpu-microcodes"
},
"locked": {
- "lastModified": 1747656938,
- "narHash": "sha256-LE5jjWIN3xzL24ph8U2CwzTPrCxS+uGzXCpSh6b+UPk=",
+ "lastModified": 1737386190,
+ "narHash": "sha256-r9UOn9nMqDjY+ohnNCKs8SgN55UXTPI+RWhka2RcsXY=",
"owner": "e-tho",
"repo": "ucodenix",
- "rev": "86d47e4b5790cc68b3af14ec9969ef8128524d43",
+ "rev": "4c7931fcf713c4ddf730d275f07d916c5f4c4e7a",
"type": "github"
},
"original": {
@@ -911,11 +548,11 @@
"wallpapers": {
"flake": false,
"locked": {
- "lastModified": 1749185371,
- "narHash": "sha256-M6QK9qLgyvFaM6gF9qH1d6su254cWfw/+1aO3nxeBmQ=",
+ "lastModified": 1737220047,
+ "narHash": "sha256-eLf45K7NvBas7bC5hO5KfpFdy3pzCoQEaW+DNZIFQhs=",
"owner": "kaitotlex",
"repo": "wallpaper",
- "rev": "f1d9cf6f2d16b25ca57e684e1d20124e75413f7c",
+ "rev": "101647127869f5e91a569281fd181172b692b365",
"type": "github"
},
"original": {
@@ -931,11 +568,11 @@
]
},
"locked": {
- "lastModified": 1748971473,
- "narHash": "sha256-0Xh6sZI86Ops6u7wyDQlVvV+MvRRXIDb1r3sMnLNk9M=",
+ "lastModified": 1737173095,
+ "narHash": "sha256-32xX3cAIQovRNtW5cHirLvSC87uoOfLcaYGUOrTyhx4=",
"owner": "youwen5",
"repo": "zen-browser-flake",
- "rev": "5cc269976ca876674d8ccc7f40debb61e05583ab",
+ "rev": "e91b2aa537c1492efd1c5f35f1f204c685e461ab",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index a13279a..29d2ab1 100644
--- a/flake.nix
+++ b/flake.nix
@@ -13,6 +13,7 @@
};
nixvim = {
url = "github:kaitotlex/vix1";
+ inputs.nixpkgs.follows = "nixpkgs";
};
stylix = {
url = "github:danth/stylix";
@@ -24,33 +25,22 @@
};
ucodenix = {
url = "github:e-tho/ucodenix";
+ inputs.nixpkgs.follows = "nixpkgs";
};
wallpapers = {
url = "github:kaitotlex/wallpaper";
flake = false;
};
- lanzaboote = {
- url = "github:nix-community/lanzaboote/v0.4.2";
- };
- hyprscroller-src = {
- url = "github:cpiber/hyprscroller";
+ aq = {
+ url = "github:quantum9innovation/aquamarine/patch-125";
flake = false;
};
- jkernel = {
- url = "github:tweag/jupyenv";
- flake = false;
- };
- iamb = {
- url = "github:ulyssa/iamb";
- inputs.nixpkgs.follows = "nixpkgs";
- };
};
outputs =
{
nixpkgs,
home-manager,
- lanzaboote,
...
}@inputs:
{
@@ -62,29 +52,6 @@
system = "x86_64-linux";
modules = [
./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 = {
@@ -95,20 +62,7 @@
inherit inputs;
};
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";
- };
- }
- ];
+ imports = [ ./users/kaitotlex ];
};
};
}
@@ -121,29 +75,7 @@
system = "x86_64-linux";
modules = [
./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 = {
@@ -154,19 +86,7 @@
inherit inputs;
};
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";
- };
- }
- ];
+ imports = [ ./users/kaitotlex ];
};
};
}
diff --git a/hosts/kuroko/configuration.nix b/hosts/kuroko/configuration.nix
index c09f380..8cdaa62 100644
--- a/hosts/kuroko/configuration.nix
+++ b/hosts/kuroko/configuration.nix
@@ -18,17 +18,16 @@
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
- #boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ];
virtualisation.waydroid.enable = true;
- boot.kernelPackages = pkgs.linuxPackages_latest;
+ #boot.kernelPackages = pkgs.linuxPackages_5_15;
#systemdefaults
networking.hostName = "kuroko"; # Define your hostname.
services.ratbagd.enable = true;
hardware.pulseaudio.support32Bit = true;
- boot.kernelParams = [
- "mem_sleep_default=deep"
- ];
+ # boot.kernelParams = [
+ # "mem_sleep_default=deep"
+ # ];
# systemd.sleep.extraConfig = ''
# AllowSuspend=yes
# AllowHibernation=yes
@@ -38,14 +37,12 @@
#Nvidia Hardware begins
services.xserver.videoDrivers = [
- "amdgpu"
"nvidia"
+ "amdgpu"
];
hardware.graphics.enable = true;
hardware.graphics.enable32Bit = true;
- hardware.graphics.extraPackages = with pkgs; [
- amdvlk
- ];
+
hardware.nvidia = {
# custom option defined in graphics/default.nix
#usePatchedAquamarine = true;
@@ -61,7 +58,7 @@
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
- powerManagement.finegrained = lib.mkForce true;
+ powerManagement.finegrained = lib.mkForce false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
@@ -70,7 +67,7 @@
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
- open = lib.mkForce false;
+ open = lib.mkForce true;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
@@ -80,11 +77,14 @@
package = config.boot.kernelPackages.nvidiaPackages.beta;
#Power Saving Features
prime = {
- offload.enable = lib.mkForce true;
+ offload = {
+ enable = true;
+ enableOffloadCmd = true;
+ };
# Make sure to use the correct Bus ID values for your system!
#intelBusId = "PCI:";
- nvidiaBusId = "PCI:1:0:0";
- amdgpuBusId = "PCI:8:0:0";
+ nvidiaBusId = "PCI:01:00:0";
+ amdgpuBusId = "PCI:08:00:0";
};
};
@@ -110,9 +110,7 @@
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
- nixpkgs.config.permittedInsecurePackages = [
- "olm-3.2.16"
- ];
+
services.keyd = {
enable = true;
keyboards.default = {
@@ -150,20 +148,13 @@
};
};
- #Asus Specific Packages
- services.asusd.enable = true;
- programs.rog-control-center.enable = true;
-
#System specific packages to install
environment.systemPackages = with pkgs; [
- # nvtop
+ nvtop
osu-lazer
davinci-resolve
wacomtablet
obs-studio
- asusctl
- supergfxctl
- thinkfan
];
# List services that you want to enable:
diff --git a/hosts/kuroko/default.nix b/hosts/kuroko/default.nix
index 928917f..a3cfae5 100644
--- a/hosts/kuroko/default.nix
+++ b/hosts/kuroko/default.nix
@@ -7,6 +7,5 @@
../../modules/audio
../../modules/stylix
../../modules/electrical
- ../../modules/desktop-environment
];
}
diff --git a/hosts/kuroko/hardware-configuration.nix b/hosts/kuroko/hardware-configuration.nix
index c970984..1120d78 100644
--- a/hosts/kuroko/hardware-configuration.nix
+++ b/hosts/kuroko/hardware-configuration.nix
@@ -8,20 +8,20 @@
[ (modulesPath + "/installer/scan/not-detected.nix")
];
- boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ];
+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
- { device = "/dev/disk/by-uuid/def95f35-9630-4015-9e21-97d9518a014d";
+ { device = "/dev/disk/by-uuid/50c34d14-4b3a-483c-874e-b6412a474cfe";
fsType = "ext4";
};
- boot.initrd.luks.devices."luks-c69579ed-9b9c-4435-b329-e5c95c945823".device = "/dev/disk/by-uuid/c69579ed-9b9c-4435-b329-e5c95c945823";
+ boot.initrd.luks.devices."luks-efb1b312-b89c-493e-952a-f70fc2ab0fbf".device = "/dev/disk/by-uuid/efb1b312-b89c-493e-952a-f70fc2ab0fbf";
fileSystems."/boot" =
- { device = "/dev/disk/by-uuid/02A5-BCDF";
+ { device = "/dev/disk/by-uuid/1826-F6B8";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
diff --git a/hosts/kurokoNightly/configuration.nix b/hosts/kurokoNightly/configuration.nix
index 9b58dcc..bc40d07 100644
--- a/hosts/kurokoNightly/configuration.nix
+++ b/hosts/kurokoNightly/configuration.nix
@@ -161,16 +161,16 @@
events = [ "key" ];
command = "pamixer -d 5";
}
- # {
- # keys = [ 237 ];
- # events = [ "key" ];
- # command = "${pkgs.brightnessctl} -d asus::kbd_backlight set 1-";
- # }
- # {
- # keys = [ 238 ];
- # events = [ "key" ];
- # command = "${pkgs.brightnessctl} -d asus::kbd_backlight set +1";
- # }
+ {
+ keys = [ 237 ];
+ events = [ "key" ];
+ command = "brightnessctl -d asus::kbd_backlight set 1-";
+ }
+ {
+ keys = [ 238 ];
+ events = [ "key" ];
+ command = "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%"; }
diff --git a/hosts/shiroko/configuration.nix b/hosts/shiroko/configuration.nix
index 2e9728a..328aab5 100644
--- a/hosts/shiroko/configuration.nix
+++ b/hosts/shiroko/configuration.nix
@@ -13,32 +13,13 @@
];
services.fprintd.enable = 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 = {
+ graphics.enable32Bit = true;
pulseaudio.support32Bit = true;
openrazer.enable = true;
};
- virtualisation.podman = {
- enable = true;
- dockerCompat = true;
- };
- nixpkgs.config.permittedInsecurePackages = [
- "olm-3.2.16"
- ];
+
boot = {
# Bootloader.
loader.systemd-boot.enable = true;
@@ -114,9 +95,9 @@
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance";
- CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
+ CPU_SCALING_GOVERNOR_ON_BAT = "performance";
- CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
+ CPU_ENERGY_PERF_POLICY_ON_BAT = "performance";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
@@ -132,7 +113,6 @@
};
environment.systemPackages = with pkgs; [
openrazer-daemon
- distrobox
];
# Set your time zone.
time.timeZone = "America/Los_Angeles"; # Asia/Taipei lib.mkDefault
@@ -155,46 +135,6 @@
};
};
# 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.extraLocaleSettings = {
diff --git a/hosts/shiroko/default.nix b/hosts/shiroko/default.nix
index 928917f..a3cfae5 100644
--- a/hosts/shiroko/default.nix
+++ b/hosts/shiroko/default.nix
@@ -7,6 +7,5 @@
../../modules/audio
../../modules/stylix
../../modules/electrical
- ../../modules/desktop-environment
];
}
diff --git a/modules/core/default.nix b/modules/core/default.nix
index 7298a94..908bea6 100644
--- a/modules/core/default.nix
+++ b/modules/core/default.nix
@@ -4,6 +4,9 @@
...
}:
{
+ imports = [
+ ../graphics
+ ];
# Enable the X11 windowing system.
# You can disable this if you're only using the Wayland session.
services.xserver.enable = false;
diff --git a/modules/desktop-environment/default.nix b/modules/desktop-environment/default.nix
deleted file mode 100644
index 653b2b3..0000000
--- a/modules/desktop-environment/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- 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 = "";
- };
- };
-}
diff --git a/modules/graphics/default.nix b/modules/graphics/default.nix
new file mode 100644
index 0000000..094830e
--- /dev/null
+++ b/modules/graphics/default.nix
@@ -0,0 +1,23 @@
+{
+ 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;
+ };
+ })
+ ];
+ };
+}
diff --git a/modules/stylix/default.nix b/modules/stylix/default.nix
index 83eb960..4c5fa61 100644
--- a/modules/stylix/default.nix
+++ b/modules/stylix/default.nix
@@ -6,9 +6,9 @@
stylix = {
enable = true;
- image = "${inputs.wallpapers}/anime/N25/mafuAura.png";
+ image = "${inputs.wallpapers}/vtubers/nordMachi-resized.png";
polarity = "dark";
- base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine.yaml";
fonts = {
serif = {
diff --git a/modules/wm/default.nix b/modules/wm/default.nix
index 6ab06fb..3a3b4a2 100644
--- a/modules/wm/default.nix
+++ b/modules/wm/default.nix
@@ -4,10 +4,7 @@
enable = true;
settings = {
default_session = {
- 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'
+ command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway --remember --greeting 'Access is restricted to authorized personnel only.'";
user = "greeter";
};
};
diff --git a/pkgs/hyprland/hyprscroller.nix b/pkgs/hyprland/hyprscroller.nix
deleted file mode 100644
index 4d5351d..0000000
--- a/pkgs/hyprland/hyprscroller.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- 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;
- };
-}
diff --git a/users/kaitotlex/de/default.nix b/users/kaitotlex/de/default.nix
new file mode 100644
index 0000000..d021f05
--- /dev/null
+++ b/users/kaitotlex/de/default.nix
@@ -0,0 +1,7 @@
+{
+ imports = [
+ ./sway
+ ./waybar
+ #./rofi
+ ];
+}
diff --git a/users/kaitotlex/de/sway/default.nix b/users/kaitotlex/de/sway/default.nix
new file mode 100644
index 0000000..6fcf452
--- /dev/null
+++ b/users/kaitotlex/de/sway/default.nix
@@ -0,0 +1,89 @@
+{
+ 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
+ '';
+ };
+
+}
diff --git a/users/kaitotlex/de/waybar/default.nix b/users/kaitotlex/de/waybar/default.nix
new file mode 100644
index 0000000..0d7fb89
--- /dev/null
+++ b/users/kaitotlex/de/waybar/default.nix
@@ -0,0 +1,172 @@
+{ 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";
+ "^$" = "👾";
+ };
+ };
+ };
+ };
+ };
+}
diff --git a/users/kaitotlex/de/waybar/nord.css b/users/kaitotlex/de/waybar/nord.css
new file mode 100644
index 0000000..7ae564f
--- /dev/null
+++ b/users/kaitotlex/de/waybar/nord.css
@@ -0,0 +1,27 @@
+@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;
diff --git a/users/kaitotlex/de/waybar/rose-pine-dawn.css b/users/kaitotlex/de/waybar/rose-pine-dawn.css
new file mode 100644
index 0000000..a85bab2
--- /dev/null
+++ b/users/kaitotlex/de/waybar/rose-pine-dawn.css
@@ -0,0 +1,23 @@
+/*
+* 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;
diff --git a/users/kaitotlex/de/waybar/style.css b/users/kaitotlex/de/waybar/style.css
new file mode 100644
index 0000000..b87b208
--- /dev/null
+++ b/users/kaitotlex/de/waybar/style.css
@@ -0,0 +1,75 @@
+@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;
+}
diff --git a/users/kaitotlex/de/waybar/style.css.bak b/users/kaitotlex/de/waybar/style.css.bak
new file mode 100644
index 0000000..9fbd8ff
--- /dev/null
+++ b/users/kaitotlex/de/waybar/style.css.bak
@@ -0,0 +1,76 @@
+@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;
+}
+
diff --git a/users/kaitotlex/default.nix b/users/kaitotlex/default.nix
index 42f8144..51cda52 100644
--- a/users/kaitotlex/default.nix
+++ b/users/kaitotlex/default.nix
@@ -2,10 +2,7 @@
imports = [
./home.nix
./spicetify.nix
+ ./de
./stylix
- ./desktop-environment
];
-
- liminalOS.formFactor = "laptop";
- liminalOS.powersave = false;
}
diff --git a/users/kaitotlex/desktop-environment/default.nix b/users/kaitotlex/desktop-environment/default.nix
deleted file mode 100644
index 18ac71f..0000000
--- a/users/kaitotlex/desktop-environment/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- 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.
- '';
- };
- };
-}
diff --git a/users/kaitotlex/desktop-environment/hyprland/binds.nix b/users/kaitotlex/desktop-environment/hyprland/binds.nix
deleted file mode 100644
index 6886fe4..0000000
--- a/users/kaitotlex/desktop-environment/hyprland/binds.nix
+++ /dev/null
@@ -1,99 +0,0 @@
-{
- 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"
- ];
- };
-}
diff --git a/users/kaitotlex/desktop-environment/hyprland/default.nix b/users/kaitotlex/desktop-environment/hyprland/default.nix
deleted file mode 100644
index ddd9dde..0000000
--- a/users/kaitotlex/desktop-environment/hyprland/default.nix
+++ /dev/null
@@ -1,248 +0,0 @@
-{
- 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).";
- }
- ];
- };
-}
diff --git a/users/kaitotlex/desktop-environment/hyprland/utilities.nix b/users/kaitotlex/desktop-environment/hyprland/utilities.nix
deleted file mode 100644
index 40b3fff..0000000
--- a/users/kaitotlex/desktop-environment/hyprland/utilities.nix
+++ /dev/null
@@ -1,183 +0,0 @@
-{
- 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 = "Input Password...";
- hide_input = false;
- rounding = -1;
- check_color = "rgb(204, 136, 34)";
- fail_color = "rgb(204, 34, 34)";
- fail_text = "$FAIL ($ATTEMPTS)";
- 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";
- }
- ];
- };
- };
- };
-}
diff --git a/users/kaitotlex/desktop-environment/hyprland/windowrules.nix b/users/kaitotlex/desktop-environment/hyprland/windowrules.nix
deleted file mode 100644
index 017128d..0000000
--- a/users/kaitotlex/desktop-environment/hyprland/windowrules.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{ 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
- ];
-}
diff --git a/users/kaitotlex/desktop-environment/swaync.nix b/users/kaitotlex/desktop-environment/swaync.nix
deleted file mode 100644
index 73b1b3e..0000000
--- a/users/kaitotlex/desktop-environment/swaync.nix
+++ /dev/null
@@ -1,325 +0,0 @@
-{ 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}
- }
- '';
- };
-}
diff --git a/users/kaitotlex/desktop-environment/waybar/default.nix b/users/kaitotlex/desktop-environment/waybar/default.nix
deleted file mode 100644
index e8b9def..0000000
--- a/users/kaitotlex/desktop-environment/waybar/default.nix
+++ /dev/null
@@ -1,424 +0,0 @@
-{
- 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 = "{:%Y %B}\n{calendar}";
- 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 = [
- "▁"
- "▂"
- "▃"
- "▄"
- "▅"
- "▆"
- "▇"
- "█"
- ];
- };
- "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 = [
- "▁"
- "▂"
- "▃"
- "▄"
- "▅"
- "▆"
- "▇"
- "█"
- ];
- };
- "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 = " ";
- Paused = " ";
- Stopped = " ";
- };
- };
- "custom/playerctl#foward" = {
- format = " ";
- on-click = "playerctl next";
- on-scroll-up = "playerctl volume .05+";
- on-scroll-down = "playerctl volume .05-";
- };
- "custom/playerlabel" = {
- format = " {} ";
- 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;
- }
- '');
- };
- };
-}
diff --git a/users/kaitotlex/home.nix b/users/kaitotlex/home.nix
index d50bd1f..e13837c 100644
--- a/users/kaitotlex/home.nix
+++ b/users/kaitotlex/home.nix
@@ -22,25 +22,6 @@
home.packages = with pkgs; [
# here is some command line tools I use frequently
# 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
android-tools
wacomtablet
@@ -52,6 +33,7 @@
arduino-language-server
geoclue2
lua
+ tetrio-desktop
prismlauncher
asciiquarium-transparent
fortune
@@ -98,6 +80,7 @@
sl
piper
nwg-displays
+ dolphin
xfce.thunar
tailwindcss
@@ -162,7 +145,7 @@
# productivity
glow # markdown previewer in terminal
obsidian # markdown previewer
- #thunderbird-unwrapped # Full Feature Email Client
+ thunderbird-unwrapped # Full Feature Email Client
#sway Modules
swaybg
@@ -183,6 +166,7 @@
texlivePackages.csquotes
texlivePackages.csquotes-de
texlivePackages.collection-latexextra
+ texpresso
btop # replacement of htop/nmon
iotop # io monitoring
@@ -208,6 +192,7 @@
git-credential-oauth
# messaging apps
+ vesktop
signal-desktop
gh
@@ -215,7 +200,7 @@
netcat
nmap
metasploit
- #john
+ john
lynis
hydra-cli
#ghidra
@@ -230,12 +215,24 @@
extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
};
- programs.vesktop.enable = true;
+ programs.rofi = {
+ enable = true;
+ cycle = true;
+ location = "center";
+ package = pkgs.rofi-wayland;
+ };
+
+ services.dunst.enable = true;
programs.git = {
enable = true;
userName = "KaitoTLex";
- userEmail = "renl@kaitotlex.systems";
+ userEmail = "wlin@kaitotlex.systems";
+ signing = {
+ signByDefault = true;
+ key = "2AE6771F14386F9B85E48685A9209668BFA39C0E";
+ };
+
};
programs.neovim.defaultEditor = true;
@@ -247,38 +244,7 @@
enableBashIntegration = 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 = {
enable = true;
settings = {
@@ -299,10 +265,10 @@
};
};
- # programs.firefox = {
- # enable = true;
- # package = pkgs.firefox-devedition;
- # };
+ programs.firefox = {
+ enable = true;
+ package = pkgs.firefox-devedition;
+ };
programs.ripgrep.enable = true;
programs.oh-my-posh = {
diff --git a/users/kaitotlex/stylix/default.nix b/users/kaitotlex/stylix/default.nix
index 035671e..5ad9af1 100644
--- a/users/kaitotlex/stylix/default.nix
+++ b/users/kaitotlex/stylix/default.nix
@@ -3,9 +3,7 @@
waybar.enable = false;
kitty.variant256Colors = true;
neovim.enable = false;
- hyprland.enable = false;
- hyprlock.enable = false;
- rofi.enable = false;
- swaync.enable = false;
+ sway.enable = true;
+ swaylock.enable = true;
};
}