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 = {