diff --git a/.github/workflows/build-nix.yml b/.github/workflows/build-nix.yml
new file mode 100644
index 0000000..e60310d
--- /dev/null
+++ b/.github/workflows/build-nix.yml
@@ -0,0 +1,42 @@
+name: Build system configurations
+
+on:
+ pull_request:
+
+jobs:
+ build-x86_64-demeter:
+ runs-on: ubuntu-24.04
+ permissions:
+ contents: read
+ id-token: write
+ steps:
+ - name: Free Disk Space (Ubuntu)
+ uses: Jayllyz/free-disk-space@perf/use-rmz
+ - uses: actions/checkout@v4
+ - name: Check Nix flake Nixpkgs inputs
+ uses: DeterminateSystems/flake-checker-action@main
+ - uses: DeterminateSystems/nix-installer-action@main
+ with:
+ github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
+ - name: Build demeter
+ run: |
+ # nix flake check --all-systems
+ nix build .#nixosConfigurations.demeter.config.system.build.toplevel
+ build-aarch64-callisto:
+ runs-on: ubuntu-24.04-arm
+ permissions:
+ contents: read
+ id-token: write
+ steps:
+ - name: Free Disk Space (Ubuntu)
+ uses: Jayllyz/free-disk-space@perf/use-rmz
+ - uses: actions/checkout@v4
+ - name: Check Nix flake Nixpkgs inputs
+ uses: DeterminateSystems/flake-checker-action@main
+ - uses: DeterminateSystems/nix-installer-action@main
+ with:
+ github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
+ - name: Build callisto
+ run: |
+ # nix flake check --all-systems
+ nix build .#nixosConfigurations.callisto.config.system.build.toplevel
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
new file mode 100644
index 0000000..f57e1cd
--- /dev/null
+++ b/.github/workflows/lock.yml
@@ -0,0 +1,24 @@
+name: update-flake-lock
+on:
+ workflow_dispatch: # allows manual triggering
+ schedule:
+ # Runs weekly at 00:00 UTC on Sunday
+ - cron: "0 0 * * 0"
+jobs:
+ lockfile:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: Install Nix
+ uses: DeterminateSystems/nix-installer-action@main
+ with:
+ github-token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
+ - name: Update flake.lock
+ uses: DeterminateSystems/update-flake-lock@main
+ with:
+ token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
+ pr-title: "deps(flake.lock): update"
+ pr-labels: |
+ dependencies,auto-merge
+ pr-assignees: youwen5
diff --git a/.github/workflows/merge.yml b/.github/workflows/merge.yml
new file mode 100644
index 0000000..70793b9
--- /dev/null
+++ b/.github/workflows/merge.yml
@@ -0,0 +1,16 @@
+name: auto-merge-labeled
+on:
+ pull_request:
+jobs:
+ auto-merge-labeled:
+ runs-on: ubuntu-latest
+ steps:
+ - id: auto-merge-labeled
+ name: Auto merge labeled
+ uses: isolomak/auto-merge-labeled@v1.0.1
+ with:
+ label: 'lock'
+ commit-title: 'build(lock): update'
+ merge_method: 'squash'
+ env:
+ GITHUB_TOKEN: ${{ secrets.TOKEN }}
diff --git a/README.md b/README.md
index 791d9bd..0b8cf8b 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,12 @@
# KaitoianOS
-> Fully customizable container-based operating system based on ```NixOS``` running SwayDE.
+> Fully customizable container-based operating system based on ```NixOS``` running Hyprland && Hyprscroller.
## What even is this Config?
So I believe I have no life, so I migrated from a super unstable and limited OS (DOS) to FreeBSD, however FreeBSD had limited packages being maintained on **Fresh Ports** so I figured might as well become a Linux user. After distro hopping for 3 months I was introduced to NixOS by [Youwen](https://youwen.dev) claiming that it would solve my problems of having to configure everything on seperate directories, common on most distros such as Arch or Debian.
-## Why Sway and Wayland
-Wayland provides a more stable graphical enviornment due to the simplicity of the code and it's security; moreover, it peforms significantly better on intergrated and discrete graphics cards for most of my systems. Why Sway and not Hyprland? Sway is a simple port of the popular x11 DE known as i3. Hyprland has too much eyecandy for a DE, too much bells and whistles such as dynamic colors and rounded edges. Also removing eyecandy on my config makes my input smoother and crispier.
+
+
+## Why switch to Hyprland
+Although Sway is a reliable and well developed window manager, it doesn't offer the same versatility as Hyprland in Wayland. Hyprland, although has too much eyecandy, it does offer a more polished and complete operating system especially to display beautiful color scheme. I adopted youwen's Hyprland configuration because it is preconfigured and it has all that I need in terms of productivity in this operating system.
+
## What Basic Utilites do you have on here?
- Firefox Developer Edition
- Spotify (Spicetify)
@@ -27,7 +30,7 @@ ROG (ASUS) Flow X13 2022
> 16 GB LPDDR4
-> 1TB Crucial (Allocated 128 for NixOS)
+> 256 GB Kioxia
## How to Install or Clone
@@ -52,6 +55,6 @@ cp /etc/nixos/hardware-configuration.nix ~/KaitoianOS/hosts/shiroko/hardware-con
5. Recompile your os by
```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 f1d86b0..8522081 100644
--- a/flake.lock
+++ b/flake.lock
@@ -5,11 +5,11 @@
"fromYaml": "fromYaml"
},
"locked": {
- "lastModified": 1745523430,
- "narHash": "sha256-EAYWV+kXbwsH+8G/8UtmcunDeKwLwSOyfcmzZUkWE/c=",
+ "lastModified": 1746562888,
+ "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=",
"owner": "SenchoPens",
"repo": "base16.nix",
- "rev": "58bfe2553d937d8af0564f79d5b950afbef69717",
+ "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89",
"type": "github"
},
"original": {
@@ -37,11 +37,11 @@
"base16-helix": {
"flake": false,
"locked": {
- "lastModified": 1736852337,
- "narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
+ "lastModified": 1748408240,
+ "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=",
"owner": "tinted-theming",
"repo": "base16-helix",
- "rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
+ "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e",
"type": "github"
},
"original": {
@@ -70,28 +70,43 @@
"cpu-microcodes": {
"flake": false,
"locked": {
- "lastModified": 1744580596,
- "narHash": "sha256-0WgBGViIPozInkjUZSUKyndN9ldZGtCKlUiiw8VAK3o=",
+ "lastModified": 1747081695,
+ "narHash": "sha256-nnim3432n3+iwD2alY1cigQE7GKnI8BkyZDJTzood+E=",
"owner": "platomav",
"repo": "CPUMicrocodes",
- "rev": "58897a4b77be3ebb17ee41c12002cd986d3da6ed",
+ "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
"type": "github"
},
"original": {
"owner": "platomav",
"repo": "CPUMicrocodes",
- "rev": "58897a4b77be3ebb17ee41c12002cd986d3da6ed",
+ "rev": "2bcc2d8cb648c3397ea7381ca6887a9e3fdd6164",
+ "type": "github"
+ }
+ },
+ "crane": {
+ "locked": {
+ "lastModified": 1731098351,
+ "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
+ "owner": "ipetkov",
+ "repo": "crane",
+ "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ipetkov",
+ "repo": "crane",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
- "lastModified": 1744642301,
- "narHash": "sha256-5A6LL7T0lttn1vrKsNOKUk9V0ittdW0VEqh6AtefxJ4=",
+ "lastModified": 1748383148,
+ "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
- "rev": "59e3de00f01e5adb851d824cf7911bd90c31083a",
+ "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf",
"type": "github"
},
"original": {
@@ -101,12 +116,28 @@
}
},
"flake-compat": {
+ "flake": false,
"locked": {
- "lastModified": 1733328505,
- "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
+ "lastModified": 1696426674,
+ "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
- "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
+ "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
+ "flake-compat_2": {
+ "locked": {
+ "lastModified": 1747046372,
+ "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
@@ -118,17 +149,37 @@
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
- "stylix",
- "nur",
+ "lanzaboote",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1733312601,
- "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
+ "lastModified": 1730504689,
+ "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
+ "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": {
@@ -139,10 +190,7 @@
},
"flake-utils": {
"inputs": {
- "systems": [
- "stylix",
- "systems"
- ]
+ "systems": "systems"
},
"locked": {
"lastModified": 1731533236,
@@ -180,18 +228,18 @@
"stylix",
"flake-compat"
],
- "gitignore": "gitignore",
+ "gitignore": "gitignore_2",
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
- "lastModified": 1742649964,
- "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=",
+ "lastModified": 1747372754,
+ "narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82",
+ "rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
"type": "github"
},
"original": {
@@ -201,6 +249,28 @@
}
},
"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",
@@ -225,16 +295,16 @@
"gnome-shell": {
"flake": false,
"locked": {
- "lastModified": 1732369855,
- "narHash": "sha256-JhUWbcYPjHO3Xs3x9/Z9RuqXbcp5yhPluGjwsdE2GMg=",
+ "lastModified": 1744584021,
+ "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=",
"owner": "GNOME",
"repo": "gnome-shell",
- "rev": "dadd58f630eeea41d645ee225a63f719390829dc",
+ "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae",
"type": "github"
},
"original": {
"owner": "GNOME",
- "ref": "47.2",
+ "ref": "48.1",
"repo": "gnome-shell",
"type": "github"
}
@@ -246,11 +316,11 @@
]
},
"locked": {
- "lastModified": 1745703610,
- "narHash": "sha256-KgaGPlmjJItZ+Xf8mSoRmrsso+sf3K54n9oIP9Q17LY=",
+ "lastModified": 1749400020,
+ "narHash": "sha256-0nTmHO8AYgRYk5v6zw5oZ3x9nh+feb+Isn7WNe318M0=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "2f5819a962489e037a57835f63ed6ff8dbc2d5fb",
+ "rev": "2835e8ba0ad99ba86d4a5e497a962ec9fa35e48f",
"type": "github"
},
"original": {
@@ -267,11 +337,11 @@
]
},
"locked": {
- "lastModified": 1745439012,
- "narHash": "sha256-TwbdiH28QK7Da2JQTqFHdb+UCJq6QbF2mtf+RxHVzEA=",
+ "lastModified": 1748737919,
+ "narHash": "sha256-5kvBbLYdp+n7Ftanjcs6Nv+UO6sBhelp6MIGJ9nWmjQ=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "d31710fb2cd536b1966fee2af74e99a0816a61a8",
+ "rev": "5675a9686851d9626560052a032c4e14e533c1fa",
"type": "github"
},
"original": {
@@ -280,6 +350,84 @@
"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,
@@ -297,11 +445,59 @@
},
"nixpkgs": {
"locked": {
- "lastModified": 1745526057,
- "narHash": "sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA=",
+ "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=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "f771eb401a46846c1aebd20552521b233dd7e18b",
+ "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f",
"type": "github"
},
"original": {
@@ -311,13 +507,13 @@
"type": "github"
}
},
- "nixpkgs_2": {
+ "nixpkgs_4": {
"locked": {
- "lastModified": 1745377448,
- "narHash": "sha256-jhZDfXVKdD7TSEGgzFJQvEEZ2K65UMiqW5YJ2aIqxMA=",
+ "lastModified": 1741462378,
+ "narHash": "sha256-ZF3YOjq+vTcH51S+qWa1oGA9FgmdJ67nTNPG2OIlXDc=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "507b63021ada5fee621b6ca371c4fca9ca46f52c",
+ "rev": "2d9e4457f8e83120c9fdf6f1707ed0bc603e5ac9",
"type": "github"
},
"original": {
@@ -330,7 +526,7 @@
"nixvim": {
"inputs": {
"nixCats": "nixCats",
- "nixpkgs": "nixpkgs_2",
+ "nixpkgs": "nixpkgs_4",
"plugins-blink-ripgrep": "plugins-blink-ripgrep",
"plugins-pomo-nvim": "plugins-pomo-nvim"
},
@@ -350,7 +546,10 @@
},
"nur": {
"inputs": {
- "flake-parts": "flake-parts",
+ "flake-parts": [
+ "stylix",
+ "flake-parts"
+ ],
"nixpkgs": [
"stylix",
"nixpkgs"
@@ -358,11 +557,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
- "lastModified": 1745459908,
- "narHash": "sha256-bWqgohVf/py9EW3bLS/dYbenD2p9N2/Qsw1+CJk1S04=",
+ "lastModified": 1748730660,
+ "narHash": "sha256-5LKmRYKdPuhm8j5GFe3AfrJL8dd8o57BQ34AGjJl1R0=",
"owner": "nix-community",
"repo": "NUR",
- "rev": "dbc4ba3233b2bf951521177bf0ee0a7679959035",
+ "rev": "2c0bc52fe14681e9ef60e3553888c4f086e46ecb",
"type": "github"
},
"original": {
@@ -403,10 +602,41 @@
"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": {
"home-manager": "home-manager",
- "nixpkgs": "nixpkgs",
+ "hyprscroller-src": "hyprscroller-src",
+ "iamb": "iamb",
+ "jkernel": "jkernel",
+ "lanzaboote": "lanzaboote",
+ "nixpkgs": "nixpkgs_3",
"nixvim": "nixvim",
"spicetify": "spicetify",
"stylix": "stylix",
@@ -415,19 +645,58 @@
"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": {
+ "inputs": {
+ "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"
+ "systems": "systems_2"
},
"locked": {
- "lastModified": 1745727291,
- "narHash": "sha256-YW/V93WgJur6a3BVa1jynlKr2pyZlEpiXXjQjpSHc5s=",
+ "lastModified": 1749357231,
+ "narHash": "sha256-AbrPgGFVYR45TlYLHYTppayG0xzOG9XXhi+1j3Klbw8=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "9e5c7a2e7f1ab3118ec9b7179eb28667a3575f0e",
+ "rev": "03783416f7416715c52166d4e8ba0492a7149397",
"type": "github"
},
"original": {
@@ -443,8 +712,8 @@
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
- "flake-compat": "flake-compat",
- "flake-utils": "flake-utils",
+ "flake-compat": "flake-compat_2",
+ "flake-parts": "flake-parts_2",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_2",
@@ -452,7 +721,7 @@
"nixpkgs"
],
"nur": "nur",
- "systems": "systems_2",
+ "systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@@ -460,11 +729,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1745618823,
- "narHash": "sha256-WGKSI0+CY3Ep2YnRASmBRU8oMIvTW4ngFyjA0dVcKgQ=",
+ "lastModified": 1749398498,
+ "narHash": "sha256-Usx6sGnT/D8ZnWiZg+J1OY3dp4ZssMQiN1XeXcsL/cs=",
"owner": "danth",
"repo": "stylix",
- "rev": "11ceb2fde1901dc227421bbbef2d0800339f5126",
+ "rev": "5869510e48e64d916dc6905dc664a02b0f85f1bd",
"type": "github"
},
"original": {
@@ -503,6 +772,21 @@
"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": {
@@ -523,28 +807,27 @@
"tinted-kitty": {
"flake": false,
"locked": {
- "lastModified": 1716423189,
- "narHash": "sha256-2xF3sH7UIwegn+2gKzMpFi3pk5DlIlM18+vj17Uf82U=",
+ "lastModified": 1735730497,
+ "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
- "rev": "eb39e141db14baef052893285df9f266df041ff8",
+ "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
- "rev": "eb39e141db14baef052893285df9f266df041ff8",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
- "lastModified": 1744974599,
- "narHash": "sha256-Fg+rdGs5FAgfkYNCs74lnl8vkQmiZVdBsziyPhVqrlY=",
+ "lastModified": 1748180480,
+ "narHash": "sha256-7n0XiZiEHl2zRhDwZd/g+p38xwEoWtT0/aESwTMXWG4=",
"owner": "tinted-theming",
"repo": "schemes",
- "rev": "28c26a621123ad4ebd5bbfb34ab39421c0144bdd",
+ "rev": "87d652edd26f5c0c99deda5ae13dfb8ece2ffe31",
"type": "github"
},
"original": {
@@ -556,11 +839,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
- "lastModified": 1745111349,
- "narHash": "sha256-udV+nHdpqgkJI9D0mtvvAzbqubt9jdifS/KhTTbJ45w=",
+ "lastModified": 1748740859,
+ "narHash": "sha256-OEM12bg7F4N5WjZOcV7FHJbqRI6jtCqL6u8FtPrlZz4=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
- "rev": "e009f18a01182b63559fb28f1c786eb027c3dee9",
+ "rev": "57d5f9683ff9a3b590643beeaf0364da819aedda",
"type": "github"
},
"original": {
@@ -612,11 +895,11 @@
"cpu-microcodes": "cpu-microcodes"
},
"locked": {
- "lastModified": 1744630518,
- "narHash": "sha256-xRbcLC6AVjB8etaw1T9MEywqjuRWeZZu5Ee8RU3q4R0=",
+ "lastModified": 1747656938,
+ "narHash": "sha256-LE5jjWIN3xzL24ph8U2CwzTPrCxS+uGzXCpSh6b+UPk=",
"owner": "e-tho",
"repo": "ucodenix",
- "rev": "b26e195f4272306f6bd30445bb73657449a1f574",
+ "rev": "86d47e4b5790cc68b3af14ec9969ef8128524d43",
"type": "github"
},
"original": {
@@ -628,11 +911,11 @@
"wallpapers": {
"flake": false,
"locked": {
- "lastModified": 1742250162,
- "narHash": "sha256-3OEwa3lw5QIgu3tyiTGTkqacsMZ6Ae6zmg8qg3rsc1Y=",
+ "lastModified": 1749185371,
+ "narHash": "sha256-M6QK9qLgyvFaM6gF9qH1d6su254cWfw/+1aO3nxeBmQ=",
"owner": "kaitotlex",
"repo": "wallpaper",
- "rev": "f49c027edde33735beae02580b4a2a9b88cc7b04",
+ "rev": "f1d9cf6f2d16b25ca57e684e1d20124e75413f7c",
"type": "github"
},
"original": {
@@ -648,11 +931,11 @@
]
},
"locked": {
- "lastModified": 1745121923,
- "narHash": "sha256-8X9JuDfxAEQlBhB0ARgFj9fbDOlCvPx6AbQ1h2T47/g=",
+ "lastModified": 1748971473,
+ "narHash": "sha256-0Xh6sZI86Ops6u7wyDQlVvV+MvRRXIDb1r3sMnLNk9M=",
"owner": "youwen5",
"repo": "zen-browser-flake",
- "rev": "02084a38e9dbc4fa17f3474c3e9d43bb7db55799",
+ "rev": "5cc269976ca876674d8ccc7f40debb61e05583ab",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 6293fc0..a13279a 100644
--- a/flake.nix
+++ b/flake.nix
@@ -29,12 +29,28 @@
url = "github:kaitotlex/wallpaper";
flake = false;
};
+ lanzaboote = {
+ url = "github:nix-community/lanzaboote/v0.4.2";
+ };
+ hyprscroller-src = {
+ url = "github:cpiber/hyprscroller";
+ flake = false;
+ };
+ jkernel = {
+ url = "github:tweag/jupyenv";
+ flake = false;
+ };
+ iamb = {
+ url = "github:ulyssa/iamb";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs =
{
nixpkgs,
home-manager,
+ lanzaboote,
...
}@inputs:
{
@@ -46,30 +62,29 @@
system = "x86_64-linux";
modules = [
./hosts/kuroko
- home-manager.nixosModules.home-manager
- {
- home-manager = {
- useGlobalPkgs = true;
- useUserPackages = true;
- backupFileExtension = "backup";
- extraSpecialArgs = {
- inherit inputs;
- };
- users.kaitotlex = {
- imports = [ ./users/kaitotlex ];
- };
- };
- }
- ];
- };
- nixosConfigurations.shiroko = nixpkgs.lib.nixosSystem {
- specialArgs = {
- inherit inputs;
- };
- 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 = {
@@ -84,8 +99,72 @@
./users/kaitotlex
{
wayland.windowManager.hyprland.settings.monitor = [
- "eDP-1,1920x1200@120,0x0,1.25"
+ "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";
+ };
+ }
+ ];
+ };
+ };
+ }
+ ];
+ };
+ nixosConfigurations.shiroko = nixpkgs.lib.nixosSystem {
+ specialArgs = {
+ inherit inputs;
+ };
+ 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 = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ backupFileExtension = "backup";
+ extraSpecialArgs = {
+ 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";
+ };
}
];
};
diff --git a/hosts/kuroko/configuration.nix b/hosts/kuroko/configuration.nix
index 8cdaa62..c09f380 100644
--- a/hosts/kuroko/configuration.nix
+++ b/hosts/kuroko/configuration.nix
@@ -18,16 +18,17 @@
# 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_5_15;
+ boot.kernelPackages = pkgs.linuxPackages_latest;
#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
@@ -37,12 +38,14 @@
#Nvidia Hardware begins
services.xserver.videoDrivers = [
- "nvidia"
"amdgpu"
+ "nvidia"
];
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;
@@ -58,7 +61,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 false;
+ powerManagement.finegrained = lib.mkForce true;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
@@ -67,7 +70,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 true;
+ open = lib.mkForce false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
@@ -77,14 +80,11 @@
package = config.boot.kernelPackages.nvidiaPackages.beta;
#Power Saving Features
prime = {
- offload = {
- enable = true;
- enableOffloadCmd = true;
- };
+ offload.enable = lib.mkForce true;
# Make sure to use the correct Bus ID values for your system!
#intelBusId = "PCI:";
- nvidiaBusId = "PCI:01:00:0";
- amdgpuBusId = "PCI:08:00:0";
+ nvidiaBusId = "PCI:1:0:0";
+ amdgpuBusId = "PCI:8:0:0";
};
};
@@ -110,7 +110,9 @@
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 = {
@@ -148,13 +150,20 @@
};
};
+ #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 a3cfae5..928917f 100644
--- a/hosts/kuroko/default.nix
+++ b/hosts/kuroko/default.nix
@@ -7,5 +7,6 @@
../../modules/audio
../../modules/stylix
../../modules/electrical
+ ../../modules/desktop-environment
];
}
diff --git a/hosts/kuroko/hardware-configuration.nix b/hosts/kuroko/hardware-configuration.nix
index 1120d78..c970984 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" "usbhid" "usb_storage" "sd_mod" ];
+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
- { device = "/dev/disk/by-uuid/50c34d14-4b3a-483c-874e-b6412a474cfe";
+ { device = "/dev/disk/by-uuid/def95f35-9630-4015-9e21-97d9518a014d";
fsType = "ext4";
};
- boot.initrd.luks.devices."luks-efb1b312-b89c-493e-952a-f70fc2ab0fbf".device = "/dev/disk/by-uuid/efb1b312-b89c-493e-952a-f70fc2ab0fbf";
+ boot.initrd.luks.devices."luks-c69579ed-9b9c-4435-b329-e5c95c945823".device = "/dev/disk/by-uuid/c69579ed-9b9c-4435-b329-e5c95c945823";
fileSystems."/boot" =
- { device = "/dev/disk/by-uuid/1826-F6B8";
+ { device = "/dev/disk/by-uuid/02A5-BCDF";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
diff --git a/hosts/kurokoNightly/configuration.nix b/hosts/kurokoNightly/configuration.nix
index bc40d07..9b58dcc 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 = "brightnessctl -d asus::kbd_backlight set 1-";
- }
- {
- keys = [ 238 ];
- events = [ "key" ];
- command = "brightnessctl -d asus::kbd_backlight set +1";
- }
+ # {
+ # 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 = [ ]; 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 724f932..2e9728a 100644
--- a/hosts/shiroko/configuration.nix
+++ b/hosts/shiroko/configuration.nix
@@ -36,6 +36,9 @@
enable = true;
dockerCompat = true;
};
+ nixpkgs.config.permittedInsecurePackages = [
+ "olm-3.2.16"
+ ];
boot = {
# Bootloader.
loader.systemd-boot.enable = true;
@@ -111,9 +114,9 @@
enable = true;
settings = {
CPU_SCALING_GOVERNOR_ON_AC = "performance";
- CPU_SCALING_GOVERNOR_ON_BAT = "performance";
+ CPU_SCALING_GOVERNOR_ON_BAT = "powersave";
- CPU_ENERGY_PERF_POLICY_ON_BAT = "performance";
+ CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
CPU_ENERGY_PERF_POLICY_ON_AC = "performance";
CPU_MIN_PERF_ON_AC = 0;
diff --git a/modules/desktop-environment/default.nix b/modules/desktop-environment/default.nix
index 33981e5..653b2b3 100644
--- a/modules/desktop-environment/default.nix
+++ b/modules/desktop-environment/default.nix
@@ -54,6 +54,10 @@ in
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 = {
diff --git a/modules/stylix/default.nix b/modules/stylix/default.nix
index cf3f236..83eb960 100644
--- a/modules/stylix/default.nix
+++ b/modules/stylix/default.nix
@@ -6,7 +6,7 @@
stylix = {
enable = true;
- image = "${inputs.wallpapers}/math/fastInversNord.png";
+ image = "${inputs.wallpapers}/anime/N25/mafuAura.png";
polarity = "dark";
base16Scheme = "${pkgs.base16-schemes}/share/themes/heetch.yaml";
diff --git a/modules/wm/default.nix b/modules/wm/default.nix
index 3a3b4a2..6ab06fb 100644
--- a/modules/wm/default.nix
+++ b/modules/wm/default.nix
@@ -4,7 +4,10 @@
enable = true;
settings = {
default_session = {
- command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway --remember --greeting 'Access is restricted to authorized personnel only.'";
+ command = ''
+ ${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd Hyprland --remember --asterisks --greeting "Welcome, generation $(readlink /nix/var/nix/profiles/system | grep -o '[0-9]*'). Access is restricted to authorized personnel only."
+ '';
+ # --remember tuigreet --time --cmd Hyprland --remember --asterisks --greeting 'Access granted for those who don't touch grass'
user = "greeter";
};
};
diff --git a/pkgs/hyprland/hyprscroller.nix b/pkgs/hyprland/hyprscroller.nix
new file mode 100644
index 0000000..4d5351d
--- /dev/null
+++ b/pkgs/hyprland/hyprscroller.nix
@@ -0,0 +1,60 @@
+{
+ lib,
+ fetchFromGitHub,
+ hyprland,
+ pkg-config,
+ cmake,
+ unstableGitUpdater,
+ ...
+}:
+let
+ mkHyprlandPlugin =
+ hyprland:
+ args@{ pluginName, ... }:
+ hyprland.stdenv.mkDerivation (
+ args
+ // {
+ pname = "${pluginName}";
+ nativeBuildInputs = [ pkg-config ] ++ args.nativeBuildInputs or [ ];
+ buildInputs = [ hyprland ] ++ hyprland.buildInputs ++ (args.buildInputs or [ ]);
+ meta = args.meta // {
+ description = args.meta.description or "";
+ longDescription =
+ (args.meta.longDescription or "")
+ + "\n\nPlugins can be installed via a plugin entry in the Hyprland NixOS or Home Manager options.";
+ };
+ }
+ );
+in
+mkHyprlandPlugin hyprland {
+ pluginName = "hyprscroller";
+ version = "0-unstable-2025-05-16";
+
+ src = fetchFromGitHub {
+ owner = "cpiber";
+ repo = "hyprscroller";
+ rev = "de97924b6d1086d84939b6f6688637f7b21d8d80";
+ hash = "sha256-m9689UH+w8Z/qP/DKYtzQfIGfiE4jgBAfO+uH34cfNs=";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/lib
+ mv hyprscroller.so $out/lib/libhyprscroller.so
+
+ runHook postInstall
+ '';
+
+ passthru.updateScript = unstableGitUpdater { };
+
+ meta = {
+ homepage = "https://github.com/cpiber/hyprscroller";
+ description = "Hyprland layout plugin providing a scrolling layout like PaperWM";
+ license = lib.licenses.mit;
+ maintainers = with lib.maintainers; [ youwen5 ];
+ platforms = lib.platforms.linux;
+ };
+}
diff --git a/users/kaitotlex/default.nix b/users/kaitotlex/default.nix
index 1ff4145..42f8144 100644
--- a/users/kaitotlex/default.nix
+++ b/users/kaitotlex/default.nix
@@ -6,6 +6,6 @@
./desktop-environment
];
- liminalOS.formFactor = "desktop";
+ liminalOS.formFactor = "laptop";
liminalOS.powersave = false;
}
diff --git a/users/kaitotlex/desktop-environment/hyprland/binds.nix b/users/kaitotlex/desktop-environment/hyprland/binds.nix
index 2b40153..6886fe4 100644
--- a/users/kaitotlex/desktop-environment/hyprland/binds.nix
+++ b/users/kaitotlex/desktop-environment/hyprland/binds.nix
@@ -81,6 +81,10 @@ in
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"
];
diff --git a/users/kaitotlex/desktop-environment/hyprland/default.nix b/users/kaitotlex/desktop-environment/hyprland/default.nix
index 190de2b..ddd9dde 100644
--- a/users/kaitotlex/desktop-environment/hyprland/default.nix
+++ b/users/kaitotlex/desktop-environment/hyprland/default.nix
@@ -3,6 +3,7 @@
config,
lib,
osConfig,
+ inputs,
...
}:
let
@@ -98,139 +99,144 @@ in
hyprland-qtutils
];
- wayland.windowManager.hyprland = {
- enable = true;
- plugins = [
- (pkgs.hyprlandPlugins.hyprscroller.overrideAttrs {
- version = "0-unstable-2025-03-28";
- src = pkgs.fetchFromGitHub {
- owner = "dawsers";
- repo = "hyprscroller";
- rev = "3f86916f3e9a583154b1be0af4e8a1ef1f7435b2";
- hash = "sha256-mgYq3vc4JtIzVuAKTWdALOynImYyNZEXh7tiVPvMZg4=";
- };
- })
- ];
- settings = {
- 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";
+ wayland.windowManager.hyprland =
+ let
+ hyprscroller = pkgs.callPackage ../../../../pkgs/hyprland/hyprscroller.nix {
+ src = inputs.hyprscroller-src;
+ version = inputs.hyprscroller-src.lastModified;
};
- 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"
+ 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"
];
- 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"
+ "$mod" = "SUPER";
+ "$Left" = "H";
+ "$Right" = "L";
+ "$Up" = "K";
+ "$Down" = "J";
+ env = (
+ lib.optionals cfg.gtkUseOpenGL [
+ "GSK_RENDERER,ngl"
]
- ++ (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";
+ );
+ 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";
};
-
- misc = {
- disable_hyprland_logo = true;
- disable_splash_rendering = true;
- };
-
- cursor = {
- hide_on_key_press = true;
- };
-
- decoration = {
- rounding = "10";
- dim_special = "0.3";
- blur = {
+ animations = {
enabled = "yes";
- size = "6";
- passes = "3";
- new_optimizations = "on";
- ignore_opacity = "on";
- xray = "false";
- special = true;
+ 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"
+ ]);
};
- shadow = {
- enabled = false;
+
+ 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;
};
- input = {
- sensitivity = "0.0";
- };
- 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;
- };
+ # 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 =
diff --git a/users/kaitotlex/desktop-environment/waybar/default.nix b/users/kaitotlex/desktop-environment/waybar/default.nix
index 6c776a0..e8b9def 100644
--- a/users/kaitotlex/desktop-environment/waybar/default.nix
+++ b/users/kaitotlex/desktop-environment/waybar/default.nix
@@ -70,7 +70,7 @@ in
"clock"
];
clock = {
- format = " {:%a, %d %b, %I:%M %p}";
+ format = " {:%a, %D, %T}";
tooltip = "true";
tooltip-format = "{:%Y %B}\n{calendar}";
format-alt = " {:%d/%m}";
diff --git a/users/kaitotlex/home.nix b/users/kaitotlex/home.nix
index 32e12fb..d50bd1f 100644
--- a/users/kaitotlex/home.nix
+++ b/users/kaitotlex/home.nix
@@ -22,7 +22,19 @@
home.packages = with pkgs; [
# here is some command line tools I use frequently
# feel free to add your own or remove some of them
- #gfortran14
+ #gfortran1
+ gqrx
+ urh
+ rtl_433
+ rng-tools
+ nheko
+ openvpn
+ tor-browser
+ bambu-studio
+ gimp3
+ openssl
+ cmake
+ obs-studio
python312Packages.pip
pipx
rpcs3
@@ -40,7 +52,6 @@
arduino-language-server
geoclue2
lua
- tetrio-desktop
prismlauncher
asciiquarium-transparent
fortune
@@ -224,12 +235,7 @@
programs.git = {
enable = true;
userName = "KaitoTLex";
- userEmail = "wlin@kaitotlex.systems";
- signing = {
- signByDefault = true;
- key = "BC04C0C14AEDA705B8FBACE8C5F52A3C0F3B4A77";
- };
-
+ userEmail = "renl@kaitotlex.systems";
};
programs.neovim.defaultEditor = true;
@@ -241,7 +247,38 @@
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 = {