Compare commits

...

4 Commits

Author SHA1 Message Date
08d9999722 hyprfix 2026-01-22 14:12:16 +00:00
d9d0b3fb70 flake.lock: Update
Flake lock file updates:

• Updated input 'caelestia':
    'github:caelestia-dots/shell/1b4b90a3ad9532f7002ef2593d8efb68443f21f3?narHash=sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM%3D' (2026-01-04)
  → 'github:caelestia-dots/shell/617f7a19f335be9e975dd001e262794636a6716f?narHash=sha256-vppHLOKWw3ygroSlQ2oZ/evNIeXrBDl7cOPOyXZAh90%3D' (2026-01-22)
• Updated input 'caelestia/caelestia-cli':
    'github:caelestia-dots/cli/337c711371e070fa28c2e55fffc5b0115a7cf40b?narHash=sha256-HXi1ED3ub/7yn3SEUw8641dLMFuxRlcMs/RgIbU91I8%3D' (2026-01-02)
  → 'github:caelestia-dots/cli/7de6c6063119a7cef27c6bd4c88f2c5ac4cbc064?narHash=sha256-iWnILPS2mP9ubbjRAhNv6Fqg1J/upxmD9OQTZQR4O2w%3D' (2026-01-17)
• Updated input 'caelestia/nixpkgs':
    'github:nixos/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
  → 'github:nixos/nixpkgs/e4bae1bd10c9c57b2cf517953ab70060a828ee6f?narHash=sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc%3D' (2026-01-16)
• Updated input 'caelestia/quickshell':
    'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=41828c4180fb921df7992a5405f5ff05d2ac2fff' (2025-12-26)
  → 'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=7a427ce1979ce7447e885c4f30129b40f3d466f5' (2026-01-17)
• Updated input 'caelestia-cli':
    'github:caelestia-dots/cli/55d75a117540e37263ac450ed7c40cc2212b5e3c?narHash=sha256-9aevqBizkmywn0buASzLCNOwY/Wm6tq9FpaPrRgZ/KQ%3D' (2026-01-07)
  → 'github:caelestia-dots/cli/74ddac98eb8a10b57ecbfe7e64bd7d4726cb192c?narHash=sha256-OVi/kMjh78azltCTXr9TonCN5sP6wF3tYii9AJ7nUoU%3D' (2026-01-22)
• Updated input 'caelestia-cli/caelestia-shell':
    'github:caelestia-dots/shell/1b4b90a3ad9532f7002ef2593d8efb68443f21f3?narHash=sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM%3D' (2026-01-04)
  → 'github:caelestia-dots/shell/2ddc367e4e12c13fc9499550fab62772408a6b47?narHash=sha256-HITJhpTIF9SiWvsb9XjeFMrkYZNdahe/HgY3puxYvcA%3D' (2026-01-20)
• Updated input 'caelestia-cli/caelestia-shell/quickshell':
    'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=41828c4180fb921df7992a5405f5ff05d2ac2fff' (2025-12-26)
  → 'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=7a427ce1979ce7447e885c4f30129b40f3d466f5' (2026-01-17)
• Updated input 'caelestia-cli/nixpkgs':
    'github:nixos/nixpkgs/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5?narHash=sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i%2BbwD6XxMb8A%3D' (2026-01-05)
  → 'github:nixos/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
• Updated input 'dgop':
    'github:AvengeMedia/dgop/0ff697a4e3418966caa714c838fc73f1ef6ba59b?narHash=sha256-A3a2ZfvjirX8VIdIPI%2BnAyukWs6vx4vet3fU0mpr7lU%3D' (2025-12-15)
  → 'github:AvengeMedia/dgop/0afebac7527826b8f565ed17343a7f11e00fa0dc?narHash=sha256-s6iEuz/6JGZoa9Txsxyjlq1tR2lHarmLGBX8ptrTliU%3D' (2026-01-19)
• Updated input 'dms':
    'github:AvengeMedia/DankMaterialShell/3dd21382bad5d43604850e257cfd1b8d35e16fb9?narHash=sha256-4tLYqLiLZqI7xmhNBi5zyGkaAXZJNUtGuxWzA7NJf8A%3D' (2026-01-07)
  → 'github:AvengeMedia/DankMaterialShell/6bf1438ef1580a18933e57ae645b9c2fd11b660e?narHash=sha256-l1FoLfkmAwDdzAFGrL2GUazTAXlh9lEAAdnhUAVe9PQ%3D' (2026-01-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c068188a8e5c277f7bc8671557a7568864b57515?narHash=sha256-QICeGwbXfqtaOZmgh6BrSBB72drPuHO3pjuyh%2Bx8eIY%3D' (2026-01-07)
  → 'github:nix-community/home-manager/ec0247a7a19f641595c24ac1ea4df6461d1cdb36?narHash=sha256-MlqzCJbckJsgwfkRs64H2xaX2Uxl4o6Z9XYfkYS1N/E%3D' (2026-01-21)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
  → 'github:NixOS/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
• Updated input 'jovian':
    'github:Jovian-Experiments/Jovian-NixOS/a81fad3f4a70fdaa779e74b7da2063fa2e358028?narHash=sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64%3D' (2026-01-07)
  → 'github:Jovian-Experiments/Jovian-NixOS/d75e3c96c9f935a6ccdd4a91209950289b2dc2fc?narHash=sha256-83npNk7w9yNJfSnpdZPNUjbhQwGVef3BWyBuIe6TJfk%3D' (2026-01-21)
• Updated input 'nix-alien':
    'github:thiagokokada/nix-alien/0eb86c42d1e33e8dbcf771cb67446319517a0a57?narHash=sha256-AUT31hDJliW0fK9G7tfTEDD2me4rIXbBXPu1lf0mVHs%3D' (2025-12-16)
  → 'github:thiagokokada/nix-alien/d95b25a4dd6da2a1dfeaaf66163d0a281a8270e9?narHash=sha256-TIG8J%2BOr8nOydy8TztvtIshnprlf1q6XDIJnopLtMlA%3D' (2026-01-20)
• Updated input 'nix-alien/flake-compat':
    'github:edolstra/flake-compat/f387cd2afec9419c8ee37694406ca490c3f34ee5?narHash=sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4%3D' (2025-10-27)
  → 'github:edolstra/flake-compat/5edf11c44bc78a0d334f6334cdaf7d60d732daab?narHash=sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns%3D' (2025-12-29)
• Updated input 'nix-alien/nix-index-database':
    'github:nix-community/nix-index-database/15c5451c63f4c612874a43846bfe3fa828b03eee?narHash=sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08%3D' (2025-11-09)
  → 'github:nix-community/nix-index-database/82befcf7dc77c909b0f2a09f5da910ec95c5b78f?narHash=sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws%3D' (2025-12-09)
• Updated input 'nixcord':
    'github:kaylorben/nixcord/d9f83906a12678900b2b36c3bdf7329e8efaa0c0?narHash=sha256-uW5BgnDOn41rlKn1JxdN7CU4bbOgZf%2BaxEw8pBVP6RU%3D' (2026-01-07)
  → 'github:kaylorben/nixcord/d07bf2fa3fa73d40429a57c3415ddc98b81750b0?narHash=sha256-Z5iGaFMtIlM9eC7LqQdkeqRtBBuYK4WlrPQ3Nc1KUus%3D' (2026-01-21)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
  → 'github:nixos/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
• Updated input 'qs-qml':
    'git+https://git.outfoxxed.me/outfoxxed/nix-qml-support?ref=refs/heads/master&rev=8f897ffb4a1575252c536c63db8be72f22b6a494' (2024-11-04)
  → 'git+https://git.outfoxxed.me/outfoxxed/nix-qml-support?ref=refs/heads/master&rev=8bdd6351a130f8ed8fe13c9ec87ed965c4d9912b' (2026-01-09)
• Updated input 'quickshell':
    'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=6742148cf4a8415a9c51fdeb11d8c3ea716c2e14' (2026-01-06)
  → 'git+https://git.outfoxxed.me/outfoxxed/quickshell?ref=refs/heads/master&rev=191085a8821b35680bba16ce5411fc9dbe912237' (2026-01-21)
• Updated input 'stylix':
    'github:nix-community/stylix/a4406d9799d002c41296c72378a1094a8fc9aa1b?narHash=sha256-zsgfockkvK0JrSvzVAb8JeUq3SDdITu6ViUf7yeIpi4%3D' (2026-01-05)
  → 'github:nix-community/stylix/06684f00cfbee14da96fd4307b966884de272d3a?narHash=sha256-3%2Bh7OxqfrPIB/tRsiZXWE9sCbTm7NQN5Ie428p%2BS6BA%3D' (2026-01-18)
• Updated input 'stylix/firefox-gnome-theme':
    'github:rafaelmardojai/firefox-gnome-theme/66b7c635763d8e6eb86bd766de5a1e1fbfcc1047?narHash=sha256-OkFLrD3pFR952TrjQi1%2BVdj604KLcMnkpa7lkW7XskI%3D' (2025-12-03)
  → 'github:rafaelmardojai/firefox-gnome-theme/f7ffd917ac0d253dbd6a3bf3da06888f57c69f92?narHash=sha256-1XPewtGMi%2B9wN9Ispoluxunw/RwozuTRVuuQOmxzt%2BA%3D' (2025-12-04)
• Updated input 'stylix/flake-parts':
    'github:hercules-ci/flake-parts/2cccadc7357c0ba201788ae99c4dfa90728ef5e0?narHash=sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q%3D' (2025-11-21)
  → 'github:hercules-ci/flake-parts/250481aafeb741edfe23d29195671c19b36b6dca?narHash=sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY%3D' (2026-01-05)
• Updated input 'stylix/gnome-shell':
    'gitlab:GNOME/gnome-shell/c0e1ad9f0f703fd0519033b8f46c3267aab51a22?host=gitlab.gnome.org&narHash=sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk%3D' (2025-11-30)
  → 'gitlab:GNOME/gnome-shell/ef02db02bf0ff342734d525b5767814770d85b49?host=gitlab.gnome.org&narHash=sha256-eFujfIUQDgWnSJBablOuG%2B32hCai192yRdrNHTv0a%2Bs%3D' (2026-01-06)
• Updated input 'stylix/nixpkgs':
    'github:NixOS/nixpkgs/3e2499d5539c16d0d173ba53552a4ff8547f4539?narHash=sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU%3D' (2025-12-25)
  → 'github:NixOS/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
• Updated input 'stylix/nur':
    'github:nix-community/NUR/1d9616689e98beded059ad0384b9951e967a17fa?narHash=sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU%3D' (2025-12-03)
  → 'github:nix-community/NUR/dead29c804adc928d3a69dfe7f9f12d0eec1f1a4?narHash=sha256-ZKqhk772%2Bv/bujjhla9VABwcvz%2BhB2IaRyeLT6CFnT0%3D' (2026-01-07)
• Updated input 'stylix/tinted-schemes':
    'github:tinted-theming/schemes/0f6be815d258e435c9b137befe5ef4ff24bea32c?narHash=sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw%3D' (2025-11-23)
  → 'github:tinted-theming/schemes/2800e2b8ac90f678d7e4acebe4fa253f602e05b2?narHash=sha256-%2BW1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI%2Bdes%3D' (2026-01-06)
• Updated input 'stylix/tinted-tmux':
    'github:tinted-theming/tinted-tmux/edf89a780e239263cc691a987721f786ddc4f6aa?narHash=sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE%3D' (2025-11-30)
  → 'github:tinted-theming/tinted-tmux/3c32729ccae99be44fe8a125d20be06f8d7d8184?narHash=sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU%3D' (2026-01-04)
• Updated input 'stylix/tinted-zed':
    'github:tinted-theming/base16-zed/907dbba5fb8cf69ebfd90b00813418a412d0a29a?narHash=sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg%3D' (2025-11-30)
  → 'github:tinted-theming/base16-zed/11abb0b282ad3786a2aae088d3a01c60916f2e40?narHash=sha256-wVOj0qyil8m%2BouSsVZcNjl5ZR%2B1GdOOAooAatQXHbuU%3D' (2026-01-04)
• Updated input 'vicinae':
    'github:vicinaehq/vicinae/aab965dcf29529c5fab67b9c2fb5f8168f76fa1b?narHash=sha256-OPBgcM2ZzbVEUS6lwRpJo2JBfiRK8TmYVSmZImEW2gA%3D' (2026-01-07)
  → 'github:vicinaehq/vicinae/15a5630d38ebdc0c29b5ebc66d5825fa1e0935a2?narHash=sha256-W71d7gmxSqD3HK%2BhEYAnMr%2B7P5La2XBf6KFp5B0fN7c%3D' (2026-01-22)
• Updated input 'zen-browser':
    'github:0xc000022070/zen-browser-flake/8b2302d8c10369c9135552cc892da75cff5ddb03?narHash=sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs%3D' (2026-01-07)
  → 'github:0xc000022070/zen-browser-flake/dc0483a6e3ff1ffb04ad77d26c1a4458f4cf82d6?narHash=sha256-u95Qe60mF3eoEqrd0tIej4A8TDWoc/N4ZjZ60npplgw%3D' (2026-01-22)
2026-01-22 13:40:38 +00:00
3b31822d39 big balls 2026-01-22 13:21:58 +00:00
b2504fde35 fibe fixed my dude 2026-01-22 13:21:58 +00:00
30 changed files with 599 additions and 829 deletions

80
CLAUDE.md Normal file
View File

@@ -0,0 +1,80 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Build Commands
```bash
# Rebuild and switch to main system (default specialization)
ns # alias for: nh os switch --specialisation 00-main-system
# Update flake inputs and commit lock file
nu # alias for: (cd ~/nixos-dots && nix flake update --commit-lock-file)
# Edit configuration in Emacs
ne # alias for: emacsclient -c ~/nixos-dots/configuration.nix
# Direct rebuild commands (if not using nh aliases)
sudo nixos-rebuild switch --flake .#mrfluffyPC
sudo nixos-rebuild switch --flake .#mrfluffyLaptop
```
## Architecture
### Multi-Host / Multi-User System
This is a NixOS flake configuration targeting two machines (`mrfluffyPC`, `mrfluffyLaptop`) with three users (`mrfluffy`, `work`, `game`). The `systemName` variable (`"pc"` or `"laptop"`) is passed through `specialArgs` to enable hardware-conditional configuration.
### Specializations
Two boot specializations exist in `configuration.nix`:
- **`00-main-system`**: Default desktop environment with Hyprland, full dev tooling
- **`01-steam`**: Gaming mode with Gamescope, Steam Big Picture, auto-login to `game` user
### Directory Structure
```
flake.nix # Flake inputs and nixosConfigurations
configuration.nix # Entry point: users, home-manager, specializations
hardware-configuration.nix
system/ # NixOS modules (boot, hardware, services, packages)
├── boot.nix # Bootloader, kernel config (laptop/pc conditional)
├── hardware.nix # GPU drivers (Intel for laptop, AMD for PC)
├── nixOSPkgs.nix # System packages (~2300 lines)
├── services.nix # System services (greetd, pipewire, etc.)
└── specialisation/ # Boot mode configs
home/ # Home Manager user configs
├── mrfluffy.nix # Main user (imports dots/, stylix, services)
├── work.nix # Work user
├── game.nix # Gaming user
├── homePkgs.nix # User packages
└── stylix.nix # Unified theming (base16, fonts, cursors)
dots/ # Application dotfiles as Nix modules
├── hyprland.nix # Primary window manager
├── waybar.nix # Status bar
├── foot.nix # Terminal
├── zsh.nix # Shell config with aliases
└── doom/ # Doom Emacs config (raw files)
assets/Wallpapers/ # Wallpaper images
```
### Window Manager Selection
Set in `flake.nix` via `window_manager` variable (options: `"hyprland"`, `"river"`, `"niri"`, `"all"`). Currently set to `"hyprland"`. This variable is passed to modules for conditional WM configuration.
### Theming
Stylix + nix-colors provide unified theming across all applications:
- Color scheme: `hardcore` (base00: `#141414`)
- Configured in `home/stylix.nix`
### Conditional Hardware Config
Use the `systemName` variable (`"laptop"` or `"pc"`) for hardware-specific code:
```nix
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
# ... use lib.mkIf for conditional values
```

View File

@@ -3,14 +3,38 @@
{ {
config, config,
pkgs,
lib, lib,
pkgs,
inputs, inputs,
window_manager, window_manager,
systemName, systemName,
... ...
}: }:
let
# Common groups for main users (mrfluffy, work)
defaultUserGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
# Groups for game user (no wheel for security - has empty password)
gameUserGroups = [
"video"
"render"
"input"
"seat"
"networkmanager"
"dialout"
];
in
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
@@ -24,9 +48,7 @@
#inputs.niri.nixosModules.niri #inputs.niri.nixosModules.niri
]; ];
############################################################################## # ─── Nix settings ───────────────────────────────────────────────────────────
# Nix settings
##############################################################################
nix.settings = { nix.settings = {
experimental-features = [ experimental-features = [
"nix-command" "nix-command"
@@ -34,11 +56,12 @@
]; ];
build-dir = "/nix/var/nix/builds"; build-dir = "/nix/var/nix/builds";
auto-optimise-store = true; auto-optimise-store = true;
substituters = ["https://hyprland.cachix.org"];
trusted-substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
}; };
############################################################################## # ─── Users ──────────────────────────────────────────────────────────────────
# Users
##############################################################################
programs.zsh.enable = true; programs.zsh.enable = true;
users = { users = {
users = { users = {
@@ -56,17 +79,7 @@
isNormalUser = true; isNormalUser = true;
shell = pkgs.zsh; shell = pkgs.zsh;
createHome = true; createHome = true;
extraGroups = [ extraGroups = defaultUserGroups;
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ]; packages = with pkgs; [ ];
}; };
@@ -74,34 +87,17 @@
isNormalUser = true; isNormalUser = true;
shell = pkgs.zsh; shell = pkgs.zsh;
createHome = true; createHome = true;
extraGroups = [ extraGroups = defaultUserGroups;
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
packages = with pkgs; [ ]; packages = with pkgs; [ ];
}; };
game = { game = {
isNormalUser = true; isNormalUser = true;
description = "Dedicated gaming user (auto-login in Steam specialisation)"; description = "Dedicated gaming user (auto-login in Steam specialisation)";
shell = pkgs.bash; shell = pkgs.bash;
createHome = true; createHome = true;
password = ""; # no password hashedPassword = ""; # no password - removed wheel group for security
extraGroups = [ extraGroups = gameUserGroups;
"wheel"
"video"
"render"
"input"
"seat"
"networkmanager"
"dialout"
];
home = "/home/game"; home = "/home/game";
}; };
}; };
@@ -111,9 +107,7 @@
]; ];
}; };
############################################################################## # ─── Home-Manager ───────────────────────────────────────────────────────────
# Home-Manager
##############################################################################
home-manager = { home-manager = {
extraSpecialArgs = { inherit inputs window_manager systemName; }; extraSpecialArgs = { inherit inputs window_manager systemName; };
users = { users = {
@@ -123,12 +117,11 @@
}; };
}; };
############################################################################## # ─── Environment ────────────────────────────────────────────────────────────
# Environment
##############################################################################
environment = { environment = {
sessionVariables = { sessionVariables = {
ZDOTDIR = "$HOME/.config/zsh"; ZDOTDIR = "$HOME/.config/zsh";
TZ = ":/etc/localtime";
}; };
pathsToLink = [ "/share/zsh" ]; pathsToLink = [ "/share/zsh" ];
variables = { variables = {
@@ -150,17 +143,13 @@
]; ];
}; };
############################################################################## # ─── Nixpkgs policy ─────────────────────────────────────────────────────────
# Nixpkgs policy
##############################################################################
nixpkgs.config = { nixpkgs.config = {
allowUnfree = true; allowUnfree = true;
permittedInsecurePackages = [ ]; permittedInsecurePackages = [ ];
}; };
############################################################################## # ─── Decky ──────────────────────────────────────────────────────────────────
# decky
##############################################################################
nixpkgs.overlays = [ nixpkgs.overlays = [
inputs.jovian.overlays.default inputs.jovian.overlays.default
]; ];
@@ -173,9 +162,7 @@
# extraPythonPackages = ps: with ps; [ some-python-package ]; # extraPythonPackages = ps: with ps; [ some-python-package ];
}; };
############################################################################## # ─── State version ──────────────────────────────────────────────────────────
# State version
##############################################################################
system.stateVersion = "24.11"; # Did you read the comment? system.stateVersion = "24.11"; # Did you read the comment?
specialisation = { specialisation = {
@@ -190,9 +177,7 @@
"00-main-system" = { "00-main-system" = {
configuration = { configuration = {
#boot.loader.systemd-boot.sortKey = lib.mkDefault "00000000000-main"; #boot.loader.systemd-boot.sortKey = lib.mkDefault "00000000000-main";
############################################################################## # ─── Imports ─────────────────────────────────────────────────────────────────
# Imports
##############################################################################
imports = [ imports = [
./system/services.nix ./system/services.nix
./system/nixOSPkgs.nix ./system/nixOSPkgs.nix

View File

@@ -1,4 +1,5 @@
{ config, {
config,
lib, lib,
pkgs, pkgs,
inputs, inputs,

View File

@@ -1,7 +1,7 @@
{ {
pkgs,
config, config,
lib, lib,
pkgs,
... ...
}: }:
{ {

View File

@@ -8,6 +8,9 @@
... ...
}: }:
let let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland; hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
hypr-portal = hypr-portal =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
@@ -35,9 +38,7 @@ in
]; ];
settings = { settings = {
########################################################################## # ─── Monitors ────────────────────────────────────────────────────────────────
# Monitors
##########################################################################
source = [ source = [
"./dms/outputs.conf" "./dms/outputs.conf"
#"./dms/cursor.conf" #"./dms/cursor.conf"
@@ -86,9 +87,7 @@ in
# transform = 0; # transform = 0;
# }; # };
########################################################################## # ─── Autostart ───────────────────────────────────────────────────────────────
# Autostart
##########################################################################
# Autostart necessary processes (like notifications daemons, status bars, etc.) # Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this: # Or execute your favorite apps at launch like this:
@@ -113,9 +112,7 @@ in
# ++ lib.optional (systemName == "pc") # ++ lib.optional (systemName == "pc")
# "swaybg -o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}"; # "swaybg -o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}";
########################################################################## # ─── Plugins ─────────────────────────────────────────────────────────────────
# Plugins
##########################################################################
plugin = { plugin = {
split-monitor-workspaces = { split-monitor-workspaces = {
@@ -129,18 +126,14 @@ in
}; };
}; };
########################################################################## # ─── Environment ─────────────────────────────────────────────────────────────
# Environment
##########################################################################
env = [ env = [
"XCURSOR_SIZE, 24" "XCURSOR_SIZE, 24"
"HYPRCURSOR_SIZE, 24" "HYPRCURSOR_SIZE, 24"
]; ];
########################################################################## # ─── General / Render / Decoration / Animations ─────────────────────────────
# General / Render / Decoration / Animations
##########################################################################
# https://wiki.hyprland.org/Configuring/Variables/ # https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general # https://wiki.hyprland.org/Configuring/Variables/#general
@@ -218,9 +211,7 @@ in
]; ];
}; };
########################################################################## # ─── Layouts ─────────────────────────────────────────────────────────────────
# Layouts
##########################################################################
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle = { dwindle = {
@@ -236,9 +227,7 @@ in
new_on_top = true; new_on_top = true;
}; };
########################################################################## # ─── Misc / Input / Gestures / Devices ───────────────────────────────────────
# Misc / Input / Gestures / Devices
##########################################################################
# https://wiki.hyprland.org/Configuring/Variables/#misc # https://wiki.hyprland.org/Configuring/Variables/#misc
misc = { misc = {
@@ -251,8 +240,8 @@ in
# https://wiki.hyprland.org/Configuring/Variables/#input # https://wiki.hyprland.org/Configuring/Variables/#input
input = { input = {
kb_layout = lib.mkMerge [ kb_layout = lib.mkMerge [
(lib.mkIf (systemName == "laptop") "ie") (lib.mkIf isLaptop "ie")
(lib.mkIf (systemName == "pc") "us") (lib.mkIf isPc "us")
]; ];
repeat_rate = 40; repeat_rate = 40;
repeat_delay = 500; repeat_delay = 500;
@@ -281,9 +270,7 @@ in
sensitivity = -0.5; sensitivity = -0.5;
}; };
########################################################################## # ─── Binds ───────────────────────────────────────────────────────────────────
# Binds
##########################################################################
bind = [ bind = [
# Launcher / apps # Launcher / apps
@@ -394,9 +381,7 @@ in
binds = [ ]; binds = [ ];
########################################################################## # ─── Rules (windows / workspaces) ────────────────────────────────────────────
# Rules (windows / workspaces)
##########################################################################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

View File

@@ -7,6 +7,10 @@
... ...
}: }:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{ {
services = { services = {
hypridle = { hypridle = {
@@ -24,19 +28,19 @@
on-timeout = "loginctl lock-session"; on-timeout = "loginctl lock-session";
} }
] ]
++ lib.optional (systemName == "laptop") { ++ lib.optional isLaptop {
timeout = 700; timeout = 700;
on-timeout = "hyprctl dispatch dpms off"; # Turns off all displays on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on"; # Turns displays back on on-resume = "hyprctl dispatch dpms on";
} }
++ lib.optional (systemName == "laptop") { ++ lib.optional isLaptop {
timeout = 800; timeout = 800;
on-timeout = "systemctl suspend-then-hibernate"; on-timeout = "systemctl suspend-then-hibernate";
} }
++ lib.optional (systemName == "pc") { ++ lib.optional isPc {
timeout = 700; # Adjust timeout as needed (in seconds) timeout = 700;
on-timeout = "hyprctl dispatch dpms off"; # Turns off all displays on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on"; # Turns displays back on on-resume = "hyprctl dispatch dpms on";
}; };
}; };
}; };

View File

@@ -162,7 +162,7 @@
# You can change how the focus ring looks. # You can change how the focus ring looks.
focus-ring = { focus-ring = {
#omment this line to disable the focus ring. # Uncomment this line to disable the focus ring.
# off # off
# How many logical pixels the ring extends out from the windows. # How many logical pixels the ring extends out from the windows.

View File

@@ -1,11 +1,16 @@
{ {
pkgs,
lib,
config, config,
lib,
pkgs,
window_manager, window_manager,
systemName, systemName,
... ...
}: }:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{ {
wayland.windowManager.river = { wayland.windowManager.river = {
enable = window_manager == "river" || window_manager == "all"; enable = window_manager == "river" || window_manager == "all";
@@ -26,21 +31,19 @@
editor="emacs" editor="emacs"
riverctl input "pointer-2362-8197-ASUP1204:00_093A:2005_Touchpad" tap enabled riverctl input "pointer-2362-8197-ASUP1204:00_093A:2005_Touchpad" tap enabled
riverctl keyboard-layout -options "grp:ctrl_space_toggle" ${ riverctl keyboard-layout -options "grp:ctrl_space_toggle" ${
if systemName == "laptop" then "ie,us" else "us" if isLaptop
then "ie,us"
else "us"
} }
#riverctl spawn 'export XDG_CURRENT_DESKTOP=river' #riverctl spawn 'export XDG_CURRENT_DESKTOP=river'
#riverctl spawn 'systemctl --user restart xdg-desktop-portal' #riverctl spawn 'systemctl --user restart xdg-desktop-portal'
riverctl spawn 'dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP' riverctl spawn 'dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP'
riverctl spawn 'swaybg ${ riverctl spawn 'swaybg ${
# Handle laptop case lib.optionalString isLaptop "-o eDP-1 -i ${../assets/Wallpapers/138.png}"
lib.optionalString (systemName == "laptop") "-o eDP-1 -i ${../assets/Wallpapers/138.png}"
}${ }${
# Handle PC case (appends to laptop case if needed, but conditions should be mutually exclusive) lib.optionalString isPc "-o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}"
lib.optionalString (
systemName == "pc"
) "-o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}"
}' }'
#riverctl spawn '/home/mrfluffy/.config/script/mic-gain-fix.sh' #riverctl spawn '/home/mrfluffy/.config/script/mic-gain-fix.sh'
riverctl spawn 'waybar &' riverctl spawn 'waybar &'
@@ -57,12 +60,9 @@
riverctl set-cursor-warp on-focus-change riverctl set-cursor-warp on-focus-change
#riverctl xcursor-theme oreo_spark_pink_cursors #riverctl xcursor-theme oreo_spark_pink_cursors
riverctl spawn '${ riverctl spawn '${
# Handle laptop case lib.optionalString isLaptop "wlr-randr --output eDP-1 --mode 1920x1080@60"
lib.optionalString (systemName == "laptop") "wlr-randr --output eDP-1 --mode 1920x1080@60"
}${ }${
# Handle PC case (appends to laptop case if needed, but conditions should be mutually exclusive) lib.optionalString isPc "wlr-randr --output DP-1 --mode 2560x1440@144 --pos 1920,0 --output HDMI-A-1 --mode 1920x1080@60 --pos 0,0"
lib.optionalString (systemName == "pc")
"wlr-randr --output DP-1 --mode 2560x1440@144 --pos 1920,0 --output HDMI-A-1 --mode 1920x1080@60 --pos 0,0"
}' }'
# This is the example configuration file for river. # This is the example configuration file for river.

View File

@@ -1,5 +1,6 @@
{ {
config, config,
lib,
pkgs, pkgs,
inputs, inputs,
window_manager, window_manager,
@@ -16,14 +17,12 @@
#tags button.occupied { #tags button.occupied {
color: inherit; color: inherit;
background-color: #6a548d background-color: #6a548d;
} }
#tags button.focused { #tags button.focused {
color: #f8f8f2; color: #f8f8f2;
background-color: #aa86e1 ; background-color: #aa86e1;
} }
#tags button.urgent { #tags button.urgent {
@@ -119,17 +118,16 @@
spacing = 4; # Gaps between modules (4px) spacing = 4; # Gaps between modules (4px)
# Choose the order of the modules # Choose the order of the modules
modules-left = modules-left =
if window_manager == "river" then if window_manager == "river"
[ then [
"river/tags" "river/tags"
"custom/media" "custom/media"
] ]
else if window_manager == "hyprland" then else if window_manager == "hyprland"
[ then [
"hyprland/workspaces" "hyprland/workspaces"
] ]
else else [ ];
[ ];
modules-center = [ modules-center = [
]; ];

View File

@@ -38,40 +38,40 @@
defaultApplications = defaultApplications =
let let
browser = [ "firefox.desktop" ]; browser = [ "firefox.desktop" ];
fileManager = [ "pcmanfm.desktop" ]; fileManager = [ "pcmanfm.desktop" ];
editor = [ "emacs.desktop" ]; editor = [ "emacs.desktop" ];
player = [ "mpv.desktop" ]; player = [ "mpv.desktop" ];
viewer = [ "imv-dir.desktop" ]; viewer = [ "imv-dir.desktop" ];
reader = [ "org.pwmt.zathura.desktop" ]; reader = [ "org.pwmt.zathura.desktop" ];
in { in {
# Documents # Documents
"application/pdf" = reader; "application/pdf" = reader;
"application/epub" = reader; "application/epub" = reader;
# Text / markup # Text / markup
"text/plain" = editor; "text/plain" = editor;
"application/x-wine-extension-ini" = editor; "application/x-wine-extension-ini" = editor;
"text/html" = browser; "text/html" = browser;
"text/xml" = browser; "text/xml" = browser;
# Web / XML-ish # Web / XML-ish
"application/json" = browser; "application/json" = browser;
"application/xml" = browser; "application/xml" = browser;
"application/xhtml+xml" = browser; "application/xhtml+xml" = browser;
"application/xhtml_xml" = browser; "application/xhtml_xml" = browser;
"application/rdf+xml" = browser; "application/rdf+xml" = browser;
"application/rss+xml" = browser; "application/rss+xml" = browser;
"application/x-extension-htm" = browser; "application/x-extension-htm" = browser;
"application/x-extension-html" = browser; "application/x-extension-html" = browser;
"application/x-extension-shtml" = browser; "application/x-extension-shtml" = browser;
"application/x-extension-xht" = browser; "application/x-extension-xht" = browser;
"application/x-extension-xhtml" = browser; "application/x-extension-xhtml" = browser;
# URL schemes # URL schemes
"x-scheme-handler/about" = browser; "x-scheme-handler/about" = browser;
"x-scheme-handler/ftp" = browser; "x-scheme-handler/ftp" = browser;
"x-scheme-handler/http" = browser; "x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser; "x-scheme-handler/https" = browser;
# Files / directories # Files / directories
@@ -80,20 +80,20 @@
# Audio # Audio
"audio/mpeg" = player; "audio/mpeg" = player;
"audio/aac" = player; "audio/aac" = player;
"audio/flac" = player; "audio/flac" = player;
"audio/wav" = player; "audio/wav" = player;
# Video # Video
"video/mp4" = player; "video/mp4" = player;
"video/vnd.mpegurl" = player; "video/vnd.mpegurl" = player;
"video/x-matroska" = player; "video/x-matroska" = player;
"application/x-mpegURL" = player; "application/x-mpegURL" = player;
# Images # Images
"image/gif" = viewer; "image/gif" = viewer;
"image/jpeg" = viewer; "image/jpeg" = viewer;
"image/png" = viewer; "image/png" = viewer;
"image/webp" = viewer; "image/webp" = viewer;
}; };
}; };
@@ -102,13 +102,13 @@
enable = true; enable = true;
createDirectories = true; createDirectories = true;
download = "${config.home.homeDirectory}/Downloads"; download = "${config.home.homeDirectory}/Downloads";
documents = "${config.home.homeDirectory}/Documents"; documents = "${config.home.homeDirectory}/Documents";
desktop = "${config.home.homeDirectory}/Desktop"; desktop = "${config.home.homeDirectory}/Desktop";
videos = "${config.home.homeDirectory}/Videos"; videos = "${config.home.homeDirectory}/Videos";
pictures = "${config.home.homeDirectory}/Pictures"; pictures = "${config.home.homeDirectory}/Pictures";
music = "${config.home.homeDirectory}/Music"; music = "${config.home.homeDirectory}/Music";
templates = "${config.home.homeDirectory}/.local/share/templates"; templates = "${config.home.homeDirectory}/.local/share/templates";
publicShare = "${config.home.homeDirectory}/.local/share/public"; publicShare = "${config.home.homeDirectory}/.local/share/public";
}; };

View File

@@ -1,13 +1,13 @@
{ {
pkgs,
lib,
config, config,
lib,
pkgs,
... ...
}: }:
{ {
programs.zsh = { programs.zsh = {
enable = true; enable = true;
dotDir = "${config.xdg.configHome}/zsh"; dotDir = "${config.xdg.configHome}/zsh";
plugins = [ plugins = [
# pkgs.zsh-autosuggestions # pkgs.zsh-autosuggestions
@@ -15,7 +15,7 @@
]; ];
autosuggestion = { autosuggestion = {
enable = true; enable = true;
highlight = "fg=#64677a,bold,underline"; highlight = "fg=#64677a,bold,underline";
}; };
@@ -24,51 +24,51 @@
}; };
sessionVariables = { sessionVariables = {
LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib"; LD_LIBRARY_PATH = "/run/current-system/sw/share/nix-ld/lib";
HISTSIZE = 3000; HISTSIZE = 3000;
SAVEHIST = 3000; SAVEHIST = 3000;
CARGO_HOME = "$XDG_DATA_HOME/cargo"; CARGO_HOME = "$XDG_DATA_HOME/cargo";
GNUPGHOME = "$XDG_DATA_HOME/gnupg"; GNUPGHOME = "$XDG_DATA_HOME/gnupg";
GOPATH = "$XDG_DATA_HOME/go"; GOPATH = "$XDG_DATA_HOME/go";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle"; GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
IPYTHONDIR = "$XDG_CONFIG_HOME/ipython"; IPYTHONDIR = "$XDG_CONFIG_HOME/ipython";
JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
LESSHISTFILE = "$XDG_CACHE_HOME/less/history"; LESSHISTFILE = "$XDG_CACHE_HOME/less/history";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages"; NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";
PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc"; PYTHONSTARTUP = "$XDG_CONFIG_HOME/python/pythonrc";
KERAS_HOME = "$XDG_STATE_HOME/keras"; KERAS_HOME = "$XDG_STATE_HOME/keras";
RUSTUP_HOME = "$XDG_DATA_HOME/rustup"; RUSTUP_HOME = "$XDG_DATA_HOME/rustup";
XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose"; XCOMPOSECACHE = "$XDG_CACHE_HOME/X11/xcompose";
SSB_HOME = "$XDG_DATA_HOME/zoom"; SSB_HOME = "$XDG_DATA_HOME/zoom";
HISTFILE = "$XDG_STATE_HOME/zsh/history"; HISTFILE = "$XDG_STATE_HOME/zsh/history";
}; };
shellAliases = { shellAliases = {
ns = "nh os switch --specialisation 00-main-system"; ns = "nh os switch --specialisation 00-main-system";
nu = "(cd ~/nixos-dots && nix flake update --commit-lock-file) && echo 'flake.lock updated'"; nu = "(cd ~/nixos-dots && nix flake update --commit-lock-file) && echo 'flake.lock updated'";
ne = "emacsclient -c ~/nixos-dots/configuration.nix"; ne = "emacsclient -c ~/nixos-dots/configuration.nix";
ls = "exa -lag --icons"; ls = "exa -lag --icons";
upload = "~/.config/script/upload.sh"; upload = "~/.config/script/upload.sh";
record = "~/.config/script/record.sh"; record = "~/.config/script/record.sh";
speak = "~/.config/script/wisper.sh"; speak = "~/.config/script/wisper.sh";
vim = "nvim"; vim = "nvim";
cat = "bat"; cat = "bat";
anime = "~/repos/ani-cli/ani-cli"; anime = "~/repos/ani-cli/ani-cli";
hentai = "~/repos/and-scripts/fap-cli"; hentai = "~/repos/and-scripts/fap-cli";
manga = "manga-cli"; manga = "manga-cli";
yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t"; yt = "~/repos/ytfzf/ytfzf --thumb-viewer='kitty' -t";
cd = "z"; cd = "z";
rm = "rip"; rm = "rip";
df = "duf"; df = "duf";
time = "hyperfine"; time = "hyperfine";
kami = "~/Documents/Rust/kami/target/release/kami"; kami = "~/Documents/Rust/kami/target/release/kami";
calc = "cpc"; calc = "cpc";
pdf = "mupdf"; pdf = "mupdf";
emacs = "emacs"; emacs = "emacs";
river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river"; river = "dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river && river";
cp = "xcp"; cp = "xcp";
wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts"; wget = "wget --hsts-file=$XDG_DATA_HOME/wget-hsts";
}; };
initContent = '' initContent = ''

220
flake.lock generated
View File

@@ -124,11 +124,11 @@
"quickshell": "quickshell" "quickshell": "quickshell"
}, },
"locked": { "locked": {
"lastModified": 1767490542, "lastModified": 1769073714,
"narHash": "sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM=", "narHash": "sha256-vppHLOKWw3ygroSlQ2oZ/evNIeXrBDl7cOPOyXZAh90=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "1b4b90a3ad9532f7002ef2593d8efb68443f21f3", "rev": "617f7a19f335be9e975dd001e262794636a6716f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -148,11 +148,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767320190, "lastModified": 1768655473,
"narHash": "sha256-HXi1ED3ub/7yn3SEUw8641dLMFuxRlcMs/RgIbU91I8=", "narHash": "sha256-iWnILPS2mP9ubbjRAhNv6Fqg1J/upxmD9OQTZQR4O2w=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "337c711371e070fa28c2e55fffc5b0115a7cf40b", "rev": "7de6c6063119a7cef27c6bd4c88f2c5ac4cbc064",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -167,11 +167,11 @@
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1767751792, "lastModified": 1769048466,
"narHash": "sha256-9aevqBizkmywn0buASzLCNOwY/Wm6tq9FpaPrRgZ/KQ=", "narHash": "sha256-OVi/kMjh78azltCTXr9TonCN5sP6wF3tYii9AJ7nUoU=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "cli", "repo": "cli",
"rev": "55d75a117540e37263ac450ed7c40cc2212b5e3c", "rev": "74ddac98eb8a10b57ecbfe7e64bd7d4726cb192c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -192,11 +192,11 @@
"quickshell": "quickshell_2" "quickshell": "quickshell_2"
}, },
"locked": { "locked": {
"lastModified": 1767490542, "lastModified": 1768914728,
"narHash": "sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM=", "narHash": "sha256-HITJhpTIF9SiWvsb9XjeFMrkYZNdahe/HgY3puxYvcA=",
"owner": "caelestia-dots", "owner": "caelestia-dots",
"repo": "shell", "repo": "shell",
"rev": "1b4b90a3ad9532f7002ef2593d8efb68443f21f3", "rev": "2ddc367e4e12c13fc9499550fab62772408a6b47",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -212,11 +212,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765838956, "lastModified": 1768856812,
"narHash": "sha256-A3a2ZfvjirX8VIdIPI+nAyukWs6vx4vet3fU0mpr7lU=", "narHash": "sha256-s6iEuz/6JGZoa9Txsxyjlq1tR2lHarmLGBX8ptrTliU=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "dgop", "repo": "dgop",
"rev": "0ff697a4e3418966caa714c838fc73f1ef6ba59b", "rev": "0afebac7527826b8f565ed17343a7f11e00fa0dc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -233,11 +233,11 @@
"quickshell": "quickshell_3" "quickshell": "quickshell_3"
}, },
"locked": { "locked": {
"lastModified": 1767813183, "lastModified": 1769053673,
"narHash": "sha256-4tLYqLiLZqI7xmhNBi5zyGkaAXZJNUtGuxWzA7NJf8A=", "narHash": "sha256-l1FoLfkmAwDdzAFGrL2GUazTAXlh9lEAAdnhUAVe9PQ=",
"owner": "AvengeMedia", "owner": "AvengeMedia",
"repo": "DankMaterialShell", "repo": "DankMaterialShell",
"rev": "3dd21382bad5d43604850e257cfd1b8d35e16fb9", "rev": "6bf1438ef1580a18933e57ae645b9c2fd11b660e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -249,11 +249,11 @@
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764724327, "lastModified": 1764873433,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai", "owner": "rafaelmardojai",
"repo": "firefox-gnome-theme", "repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -280,11 +280,11 @@
}, },
"flake-compat_2": { "flake-compat_2": {
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1767039857,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -333,11 +333,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763759067, "lastModified": 1767609335,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -388,11 +388,11 @@
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.gnome.org", "host": "gitlab.gnome.org",
"lastModified": 1764524476, "lastModified": 1767737596,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", "rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -410,11 +410,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767811801, "lastModified": 1769015285,
"narHash": "sha256-QICeGwbXfqtaOZmgh6BrSBB72drPuHO3pjuyh+x8eIY=", "narHash": "sha256-MlqzCJbckJsgwfkRs64H2xaX2Uxl4o6Z9XYfkYS1N/E=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c068188a8e5c277f7bc8671557a7568864b57515", "rev": "ec0247a7a19f641595c24ac1ea4df6461d1cdb36",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -492,19 +492,17 @@
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire", "hyprwire": "hyprwire",
"nixpkgs": [ "nixpkgs": "nixpkgs_3",
"nixpkgs"
],
"pre-commit-hooks": "pre-commit-hooks", "pre-commit-hooks": "pre-commit-hooks",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1767812022, "lastModified": 1769011011,
"narHash": "sha256-BHBiQhlNl+Lxvp/bBOOTWhxbXYMoVG4xiyv9DE/nuZ4=", "narHash": "sha256-lIF9wyXxf5QTv2D0HbI5n+l780S+WK6xxFgFZmoC7/M=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "918e2bb9be0e1d233f9394f1d569137788c43c01", "rev": "22fc8136a21676472b232f9462318e16b1d16745",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -803,11 +801,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767777502, "lastModified": 1768986040,
"narHash": "sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64=", "narHash": "sha256-83npNk7w9yNJfSnpdZPNUjbhQwGVef3BWyBuIe6TJfk=",
"owner": "Jovian-Experiments", "owner": "Jovian-Experiments",
"repo": "Jovian-NixOS", "repo": "Jovian-NixOS",
"rev": "a81fad3f4a70fdaa779e74b7da2063fa2e358028", "rev": "d75e3c96c9f935a6ccdd4a91209950289b2dc2fc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -825,11 +823,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765855559, "lastModified": 1768904356,
"narHash": "sha256-AUT31hDJliW0fK9G7tfTEDD2me4rIXbBXPu1lf0mVHs=", "narHash": "sha256-TIG8J+Or8nOydy8TztvtIshnprlf1q6XDIJnopLtMlA=",
"owner": "thiagokokada", "owner": "thiagokokada",
"repo": "nix-alien", "repo": "nix-alien",
"rev": "0eb86c42d1e33e8dbcf771cb67446319517a0a57", "rev": "d95b25a4dd6da2a1dfeaaf66163d0a281a8270e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -902,11 +900,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762660502, "lastModified": 1765267181,
"narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=", "narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "15c5451c63f4c612874a43846bfe3fa828b03eee", "rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -944,11 +942,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767772998, "lastModified": 1769012266,
"narHash": "sha256-uW5BgnDOn41rlKn1JxdN7CU4bbOgZf+axEw8pBVP6RU=", "narHash": "sha256-Z5iGaFMtIlM9eC7LqQdkeqRtBBuYK4WlrPQ3Nc1KUus=",
"owner": "kaylorben", "owner": "kaylorben",
"repo": "nixcord", "repo": "nixcord",
"rev": "d9f83906a12678900b2b36c3bdf7329e8efaa0c0", "rev": "d07bf2fa3fa73d40429a57c3415ddc98b81750b0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -959,11 +957,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1767379071, "lastModified": 1768564909,
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fb7944c166a3b630f177938e478f0378e64ce108", "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1005,11 +1003,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1767640445, "lastModified": 1768886240,
"narHash": "sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i+bwD6XxMb8A=", "narHash": "sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5", "rev": "80e4adbcf8992d3fd27ad4964fbb84907f9478b0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1021,15 +1019,15 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1767767207, "lastModified": 1767379071,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=", "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886", "rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@@ -1037,15 +1035,15 @@
}, },
"nixpkgs_4": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1766651565, "lastModified": 1768886240,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", "narHash": "sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", "rev": "80e4adbcf8992d3fd27ad4964fbb84907f9478b0",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
@@ -1053,11 +1051,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1762111121, "lastModified": 1767767207,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", "narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", "rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1079,11 +1077,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1764773531, "lastModified": 1767810917,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa", "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1122,11 +1120,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730724501, "lastModified": 1767942797,
"narHash": "sha256-zvNdomPM86fUf0iAwJV1RQC8yAqDCKbCDJKIs4iIPy0=", "narHash": "sha256-ypny6yOP3Buh7UBmETW3R/el3nHdzYNOCMhVnCdm9U4=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "8f897ffb4a1575252c536c63db8be72f22b6a494", "rev": "8bdd6351a130f8ed8fe13c9ec87ed965c4d9912b",
"revCount": 1, "revCount": 2,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/nix-qml-support" "url": "https://git.outfoxxed.me/outfoxxed/nix-qml-support"
}, },
@@ -1143,11 +1141,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766725085, "lastModified": 1768689040,
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", "narHash": "sha256-Tlnr5BulJcMers/cb+YvmBQW4nKHjdKo9loInJkyO2k=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", "rev": "7a427ce1979ce7447e885c4f30129b40f3d466f5",
"revCount": 715, "revCount": 729,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -1165,11 +1163,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1766725085, "lastModified": 1768689040,
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", "narHash": "sha256-Tlnr5BulJcMers/cb+YvmBQW4nKHjdKo9loInJkyO2k=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", "rev": "7a427ce1979ce7447e885c4f30129b40f3d466f5",
"revCount": 715, "revCount": 729,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -1207,11 +1205,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767693058, "lastModified": 1768985439,
"narHash": "sha256-rnLX8IA4yMbKHjYmJPcYCcWrqJ50B8WApQW62l+V9LE=", "narHash": "sha256-qkU4r+l+UPz4dutMMRZSin64HuVZkEv9iFpu9yMWVY0=",
"ref": "refs/heads/master", "ref": "refs/heads/master",
"rev": "6742148cf4a8415a9c51fdeb11d8c3ea716c2e14", "rev": "191085a8821b35680bba16ce5411fc9dbe912237",
"revCount": 717, "revCount": 731,
"type": "git", "type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell" "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}, },
@@ -1235,7 +1233,7 @@
"nix-colors": "nix-colors", "nix-colors": "nix-colors",
"nix-index-database": "nix-index-database_2", "nix-index-database": "nix-index-database_2",
"nixcord": "nixcord", "nixcord": "nixcord",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"qs-qml": "qs-qml", "qs-qml": "qs-qml",
"quickshell": "quickshell_4", "quickshell": "quickshell_4",
"stylix": "stylix", "stylix": "stylix",
@@ -1252,7 +1250,7 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems_2",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
@@ -1262,11 +1260,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1767652667, "lastModified": 1768744881,
"narHash": "sha256-zsgfockkvK0JrSvzVAb8JeUq3SDdITu6ViUf7yeIpi4=", "narHash": "sha256-3+h7OxqfrPIB/tRsiZXWE9sCbTm7NQN5Ie428p+S6BA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "stylix", "repo": "stylix",
"rev": "a4406d9799d002c41296c72378a1094a8fc9aa1b", "rev": "06684f00cfbee14da96fd4307b966884de272d3a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1356,11 +1354,11 @@
"tinted-schemes": { "tinted-schemes": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1763914658, "lastModified": 1767710407,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "schemes", "repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1372,11 +1370,11 @@
"tinted-tmux": { "tinted-tmux": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764465359, "lastModified": 1767489635,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "tinted-tmux", "repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa", "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1388,11 +1386,11 @@
"tinted-zed": { "tinted-zed": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764464512, "lastModified": 1767488740,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-zed", "repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1403,15 +1401,17 @@
}, },
"vicinae": { "vicinae": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5", "nixpkgs": [
"nixpkgs"
],
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1767815010, "lastModified": 1769083455,
"narHash": "sha256-OPBgcM2ZzbVEUS6lwRpJo2JBfiRK8TmYVSmZImEW2gA=", "narHash": "sha256-W71d7gmxSqD3HK+hEYAnMr+7P5La2XBf6KFp5B0fN7c=",
"owner": "vicinaehq", "owner": "vicinaehq",
"repo": "vicinae", "repo": "vicinae",
"rev": "aab965dcf29529c5fab67b9c2fb5f8168f76fa1b", "rev": "15a5630d38ebdc0c29b5ebc66d5825fa1e0935a2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1471,11 +1471,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1767763594, "lastModified": 1769059766,
"narHash": "sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs=", "narHash": "sha256-u95Qe60mF3eoEqrd0tIej4A8TDWoc/N4ZjZ60npplgw=",
"owner": "0xc000022070", "owner": "0xc000022070",
"repo": "zen-browser-flake", "repo": "zen-browser-flake",
"rev": "8b2302d8c10369c9135552cc892da75cff5ddb03", "rev": "dc0483a6e3ff1ffb04ad77d26c1a4458f4cf82d6",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -49,7 +49,6 @@
}; };
hyprland = { hyprland = {
url = "github:hyprwm/Hyprland"; url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland-plugins = { hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins"; url = "github:hyprwm/hyprland-plugins";
@@ -61,9 +60,8 @@
}; };
vicinae = { vicinae = {
url = "github:vicinaehq/vicinae"; url = "github:vicinaehq/vicinae";
#inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
# ... your existing inputs ...
jovian = { jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS"; url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -10,33 +10,40 @@
... ...
}: }:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{ {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = assertions = [{
[ ] assertion = builtins.elem systemName [ "laptop" "pc" ];
++ (lib.optionals (systemName == "pc") [ message = "systemName must be either 'laptop' or 'pc', got: ${systemName}";
}];
boot.initrd.availableKernelModules = [ ]
++ lib.optionals isPc [
"xhci_pci" "xhci_pci"
"ahci" "ahci"
"nvme" "nvme"
"usb_storage" "usb_storage"
"usbhid" "usbhid"
"sd_mod" "sd_mod"
]) ]
++ (lib.optionals (systemName == "laptop") [ ++ lib.optionals isLaptop [
"vmd" "vmd"
"xhci_pci" "xhci_pci"
"nvme" "nvme"
"usb_storage" "usb_storage"
"sd_mod" "sd_mod"
]); ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = boot.kernelModules = [ ]
[ ] ++ lib.optionals isPc [ "kvm-amd" "btusb" ]
++ (lib.optionals (systemName == "pc") [ "kvm-amd" "btusb"]) ++ lib.optionals isLaptop [ "kvm-intel" ];
++ (lib.optionals (systemName == "laptop") [ "kvm-intel" ]);
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
boot.kernelParams = [ boot.kernelParams = [
# Most common working combination in 2024/2025 # Most common working combination in 2024/2025
@@ -45,22 +52,22 @@
]; ];
fileSystems."/" = lib.mkMerge [ fileSystems."/" = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
device = "/dev/disk/by-uuid/fdcbb840-4b35-4023-a048-599b0c5161d6"; device = "/dev/disk/by-uuid/fdcbb840-4b35-4023-a048-599b0c5161d6";
fsType = "btrfs"; fsType = "btrfs";
}) })
(lib.mkIf (systemName == "laptop") { (lib.mkIf isLaptop {
device = "/dev/disk/by-uuid/6aa7c67d-a0a5-4928-b16b-9c7991fee7ab"; device = "/dev/disk/by-uuid/6aa7c67d-a0a5-4928-b16b-9c7991fee7ab";
fsType = "ext4"; fsType = "ext4";
}) })
]; ];
fileSystems."/boot" = lib.mkMerge [ fileSystems."/boot" = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
device = "/dev/disk/by-uuid/E1B6-9089"; device = "/dev/disk/by-uuid/E1B6-9089";
fsType = "vfat"; fsType = "vfat";
}) })
(lib.mkIf (systemName == "laptop") { (lib.mkIf isLaptop {
device = "/dev/disk/by-uuid/FF4B-819D"; device = "/dev/disk/by-uuid/FF4B-819D";
fsType = "vfat"; fsType = "vfat";
options = [ options = [
@@ -71,20 +78,21 @@
]; ];
fileSystems."/home" = lib.mkMerge [ fileSystems."/home" = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
device = "/dev/disk/by-uuid/d226a8ed-10eb-452e-9284-1ff994a7f179"; device = "/dev/disk/by-uuid/d226a8ed-10eb-452e-9284-1ff994a7f179";
fsType = "btrfs"; fsType = "btrfs";
}) })
]; ];
fileSystems."/home/game/Games" = lib.mkMerge [ fileSystems."/home/game/Games" = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
device = "/dev/disk/by-uuid/54188f21-d525-4681-a9d4-b798363eef17"; device = "/dev/disk/by-uuid/54188f21-d525-4681-a9d4-b798363eef17";
fsType = "ext4"; fsType = "ext4";
}) })
]; ];
#fileSystems."/server" = lib.mkIf (systemName == "pc") { # or remove the mkIf if you want it on both #fileSystems."/server" = lib.mkIf isPc { # or remove the mkIf if you want it on both
# device = "//192.168.1.8/mrfluffy"; # adjust the share name if its not the home share # device = "//192.168.1.8/mrfluffy"; # adjust the share name if its not the home share
# fsType = "cifs"; # fsType = "cifs";
# options = let # options = let
@@ -107,18 +115,13 @@
# ]; # ];
#}; #};
swapDevices = swapDevices = [ ]
[ ] ++ lib.optionals isPc [
++ (lib.optionals (systemName == "pc") [ { device = "/dev/disk/by-uuid/ccf41b96-c45f-47e0-8541-cd865f5d2ec6"; }
{ ]
device = "/dev/disk/by-uuid/ccf41b96-c45f-47e0-8541-cd865f5d2ec6"; ++ lib.optionals isLaptop [
} { device = "/dev/disk/by-uuid/b416c3bd-861b-4b0c-aa84-6962b2e6a47d"; }
]) ];
++ (lib.optionals (systemName == "laptop") [
{
device = "/dev/disk/by-uuid/b416c3bd-861b-4b0c-aa84-6962b2e6a47d";
}
]);
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -130,10 +133,10 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = lib.mkMerge [ hardware = lib.mkMerge [
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}) })
(lib.mkIf (systemName == "laptop") { (lib.mkIf isLaptop {
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}) })
]; ];

66
home/common.nix Normal file
View File

@@ -0,0 +1,66 @@
{
config,
lib,
pkgs,
inputs,
window_manager,
...
}:
{
imports = [
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# Local modules
./sessionVars.nix
./stylix.nix
./homePkgs.nix
./services.nix
# Dots
../dots/foot.nix
../dots/waybar.nix
../dots/zsh.nix
../dots/nixcord.nix
../dots/xdg.nix
../dots/river.nix
../dots/hyprland.nix
../dots/hyprpaper.nix
../dots/caelestia.nix
../dots/dankMeterialShell.nix
];
# Common state version
home.stateVersion = "23.11";
# Common GTK settings
gtk = {
enable = true;
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
};
};
# Common packages for all users
home.packages = with pkgs; [
lswt
swaybg
wlr-randr
];
# Common dotfiles
home.file = {
".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
".config/doom".source = ../dots/doom;
"Pictures/Wallpapers".source = ../assets/Wallpapers;
};
# Let Home Manager install and manage itself
programs.home-manager.enable = true;
}

View File

@@ -1,101 +1,19 @@
{ {
config, config,
lib,
pkgs, pkgs,
inputs, inputs,
lib,
window_manager,
... ...
}: }:
let
in
{ {
imports = [ imports = [ ./common.nix ];
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
# Local modules # User-specific color scheme
./sessionVars.nix
./stylix.nix
./homePkgs.nix
./services.nix
# Dots
../dots/foot.nix
../dots/zsh.nix
../dots/xdg.nix
../dots/hyprland.nix
../dots/caelestia.nix
];
# You can find color schemes at: https://github.com/tinted-theming/schemes
colorScheme = inputs.nix-colors.colorSchemes.hardcore; colorScheme = inputs.nix-colors.colorSchemes.hardcore;
stylix.base16Scheme.base00 = "141414"; stylix.base16Scheme.base00 = "141414";
# Home Manager needs a bit of information about you and the paths it should manage. # User identity
home.username = "game"; home.username = "game";
home.homeDirectory = "/home/game"; home.homeDirectory = "/home/game";
# This determines compatibility with a specific Home Manager release.
home.stateVersion = "23.11"; # Please read the comment before changing.
# Example GTK block (disabled)
gtk = {
enable = true;
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
};
};
home.packages = with pkgs; [
############################
# Wayland / Desktop tools
############################
lswt
swaybg
wlr-randr
############################
# Experimental (inputs)
############################
# inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# ##########################
# Examples (disabled)
# ##########################
# pkgs.hello
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Dotfiles & static files managed by Home Manager
home.file = {
".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
".config/doom".source = ../dots/doom;
# ".config/quickshell".source = ../dots/shell;
# ".config/kitty".source = ../../universal/dots/kitty;
# ".config/nvim".source = ../../universal/dots/nvim;
"Pictures/Wallpapers".source = ../assets/Wallpapers;
# ".screenrc".source = dotfiles/screenrc;
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# If you don't manage your shell with Home Manager, remember to source:
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
} }

View File

@@ -51,7 +51,7 @@ in
profiles.default = { profiles.default = {
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
platformio.platformio-vscode-ide platformio.platformio-vscode-ide
ms-vscode.cpptools ms-vscode.cpptools
]; ];
# Optional: keep Code from trying to self-update # Optional: keep Code from trying to self-update
@@ -125,20 +125,14 @@ in
services.kdeconnect.enable = true; services.kdeconnect.enable = true;
home.packages = with pkgs; [ home.packages = with pkgs; [
############################ # ─── Shells & Terminals ──────────────────────────────────────────────────────
# Shells & Terminals
############################
alacritty alacritty
zsh zsh
############################ # ─── CLI Shit ────────────────────────────────────────────────────────────────
# CLI Shit
############################
atuin atuin
############################ # ─── System Utilities ──────────────────────────────────────────────────────────
# System Utilities
############################
app2unit app2unit
brightnessctl brightnessctl
ddcutil ddcutil
@@ -150,15 +144,11 @@ in
xarchiver xarchiver
xdg-user-dirs xdg-user-dirs
############################ # ─── Monitoring & TUI Apps ───────────────────────────────────────────────────
# Monitoring & TUI Apps
############################
btop btop
cava cava
############################ # ─── Wayland / Desktop Tools ─────────────────────────────────────────────────
# Wayland / Desktop Tools
############################
grim grim
hyprpaper hyprpaper
hyprpicker hyprpicker
@@ -168,48 +158,35 @@ in
swappy swappy
wf-recorder wf-recorder
############################ # ─── Audio / Media Tools ─────────────────────────────────────────────────────
# Audio / Media Tools
############################
openai-whisper openai-whisper
pamixer pamixer
playerctl playerctl
alsa-utils alsa-utils
############################ # ─── Browsers & Web ────────────────────────────────────────────────────────────
# Browsers & Web
############################
brave brave
firefox firefox
ladybird ladybird
wgnord wgnord
############################ # ─── Communication & Sharing ─────────────────────────────────────────────────
# Communication & Sharing
############################
#element-desktop #element-desktop
localsend localsend
thunderbird thunderbird
############################ # ─── Documents & Viewers ─────────────────────────────────────────────────────
# Documents & Viewers
############################
libreoffice
libreoffice-fresh libreoffice-fresh
zathura zathura
############################ # ─── Media Players & Imaging ─────────────────────────────────────────────────
# Media Players & Imaging
############################
imv imv
mpv mpv
#upscaler #upscaler
pear-desktop pear-desktop
libsixel libsixel
############################ # ─── Development Toolchains ──────────────────────────────────────────────────
# Development Toolchains
############################
gdb gdb
nodejs_20 nodejs_20
platformio platformio
@@ -222,29 +199,21 @@ in
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode #inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.qml-ts-mode
#inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs #inputs.qs-qml.packages.${pkgs.stdenv.hostPlatform.system}.tree-sitter-qmljs
############################ # ─── Game Dev / Engines / Creative ──────────────────────────────────────────
# Game Dev / Engines / Creative
############################
blender blender
godot_4 godot_4
freecad freecad
############################ # ─── Emulation ────────────────────────────────────────────────────────────────
# Emulation
############################
fuse fuse
fuse-emulator fuse-emulator
fuse3 fuse3
############################ # ─── Android Tools ───────────────────────────────────────────────────────────
# Android Tools
############################
android-tools android-tools
scrcpy scrcpy
############################ # ─── Gaming & Launchers ──────────────────────────────────────────────────────
# Gaming & Launchers
############################
dualsensectl dualsensectl
gamemode gamemode
goverlay goverlay
@@ -260,9 +229,7 @@ in
abaddon abaddon
############################ # ─── KDE / File Management ───────────────────────────────────────────────────
# KDE / File Management
############################
kdePackages.qt6ct kdePackages.qt6ct
kdePackages.baloo # new kdePackages.baloo # new
kdePackages.baloo-widgets # new kdePackages.baloo-widgets # new
@@ -285,15 +252,11 @@ in
adw-gtk3 adw-gtk3
pywalfox-native pywalfox-native
############################ # ─── Experimental (inputs) ───────────────────────────────────────────────────
# Experimental (inputs)
############################
#inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird #inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
#inputs.hyprlauncher.packages.${pkgs.stdenv.hostPlatform.system}.default #inputs.hyprlauncher.packages.${pkgs.stdenv.hostPlatform.system}.default
############################ # ─── Blockchain (inputs) ─────────────────────────────────────────────────────
# Blockchain (inputs)
############################
#inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-cli #inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-cli
#inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell #inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell
]; ];

View File

@@ -1,120 +1,27 @@
{ {
config, config,
lib,
pkgs, pkgs,
inputs, inputs,
lib,
window_manager,
... ...
}: }:
let
in
{ {
imports = [ imports = [ ./common.nix ];
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
# Local modules # User-specific color scheme
./sessionVars.nix
./stylix.nix
./homePkgs.nix
./services.nix
# Dots
../dots/foot.nix
../dots/waybar.nix
../dots/zsh.nix
../dots/nixcord.nix
#../dots/hyprlock.nix
../dots/xdg.nix
../dots/river.nix
#../dots/niri.nix
../dots/hyprland.nix
../dots/hyprpaper.nix
../dots/caelestia.nix
../dots/dankMeterialShell.nix
];
# You can find color schemes at: https://github.com/tinted-theming/schemes
colorScheme = inputs.nix-colors.colorSchemes.hardcore; colorScheme = inputs.nix-colors.colorSchemes.hardcore;
stylix.base16Scheme.base00 = "141414"; stylix.base16Scheme.base00 = "141414";
# Home Manager needs a bit of information about you and the paths it should manage. # User identity
home.username = "mrfluffy"; home.username = "mrfluffy";
home.homeDirectory = "/home/mrfluffy"; home.homeDirectory = "/home/mrfluffy";
# This determines compatibility with a specific Home Manager release. # User-specific GTK theme
home.stateVersion = "23.11"; # Please read the comment before changing. gtk.gtk3 = {
theme = {
# Example GTK block (disabled) name = "adw-gtk3";
gtk = { package = pkgs.adw-gtk3;
enable = true;
gtk3 = {
theme = {
name = "adw-gtk3";
package = pkgs.adw-gtk3;
};
};
#gtk4 = {
# theme = {
# name = "adw-gtk3";
# package = pkgs.adw-gtk3;
# };
#};
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
}; };
}; };
home.packages = with pkgs; [
############################
# Wayland / Desktop tools
############################
lswt
swaybg
wlr-randr
############################
# Experimental (inputs)
############################
# inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# ##########################
# Examples (disabled)
# ##########################
# pkgs.hello
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Dotfiles & static files managed by Home Manager
home.file = {
".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
".config/doom".source = ../dots/doom;
# ".config/quickshell".source = ../dots/shell;
# ".config/kitty".source = ../../universal/dots/kitty;
# ".config/nvim".source = ../../universal/dots/nvim;
"Pictures/Wallpapers".source = ../assets/Wallpapers;
# ".screenrc".source = dotfiles/screenrc;
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# If you don't manage your shell with Home Manager, remember to source:
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
} }

View File

@@ -6,27 +6,7 @@
window_manager, window_manager,
... ...
}: }:
let
#quickshellPackage = inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell;
in
{ {
#systemd.user.services.quickshell = lib.mkIf (window_manager == "hyprland") { # User services can be added here
# Unit = {
# Description = "QuickShell Application";
# After = [ "graphical-session.target" ];
# Requires = [ "graphical-session.target" ];
# };
# Service = {
# Type = "simple";
# ExecStart = "${quickshellPackage}/bin/caelestia-shell";
# ExecStartPre = "/bin/sh -c 'test -n \"$WAYLAND_DISPLAY\"'";
# Restart = "always";
# RestartSec = "5s";
# };
# Install = {
# WantedBy = [ "graphical-session.target" ];
# };
#};
} }

View File

@@ -17,7 +17,7 @@
WLR_DRM_NO_ATOMIC = 1; WLR_DRM_NO_ATOMIC = 1;
VDPAU_DRIVER = "radeonsi"; VDPAU_DRIVER = "radeonsi";
LIBVA_DRIVER_NAME = "radeonsi"; LIBVA_DRIVER_NAME = "radeonsi";
OLLAMA_HOST = "0.0.0.0"; OLLAMA_HOST = "127.0.0.1";
PATH = "$HOME/.config/emacs/bin:$PATH"; PATH = "$HOME/.config/emacs/bin:$PATH";
FZF_DEFAULT_COMMAND = "${lib.getExe pkgs.ripgrep} ~ --files --hidden"; FZF_DEFAULT_COMMAND = "${lib.getExe pkgs.ripgrep} ~ --files --hidden";
FZF_DEFAULT_OPTS = "--height 30% --reverse"; FZF_DEFAULT_OPTS = "--height 30% --reverse";
@@ -29,7 +29,7 @@
GNUPGHOME = "$XDG_DATA_HOME/gnupg"; GNUPGHOME = "$XDG_DATA_HOME/gnupg";
GOPATH = "$XDG_DATA_HOME/go"; GOPATH = "$XDG_DATA_HOME/go";
GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle"; GRADLE_USER_HOME = "$XDG_DATA_HOME/gradle";
IPYTHONDIR = "$XDG_CONFIG_HOMEipython"; IPYTHONDIR = "$XDG_CONFIG_HOME/ipython";
JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter"; JUPYTER_CONFIG_DIR = "$XDG_CONFIG_HOME/jupyter";
LESSHISTFILE = "$XDG_CACHE_HOME/less/history"; LESSHISTFILE = "$XDG_CACHE_HOME/less/history";
NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages"; NUGET_PACKAGES = "$XDG_CACHE_HOME/NuGetPackages";

View File

@@ -1,7 +1,7 @@
{ {
pkgs,
lib,
config, config,
lib,
pkgs,
... ...
}: }:
let let
@@ -50,7 +50,7 @@ in
# enable = true; # enable = true;
# #package = lib.mkForce (pkgs.reversal-icon-theme.override { allColorVariants = true; }); # #package = lib.mkForce (pkgs.reversal-icon-theme.override { allColorVariants = true; });
# light = "Reversal-black"; # light = "Reversal-black";
# dark = "Reversal-black-dark"; # dark = "Reversal-black-dark";
#}; #};
polarity = "dark"; polarity = "dark";
@@ -80,9 +80,9 @@ in
}; };
sizes = { sizes = {
applications = 12; applications = 12;
desktop = 12; desktop = 12;
popups = 14; popups = 14;
terminal = 16; terminal = 16;
}; };
}; };

View File

@@ -1,114 +1,19 @@
{ {
config, config,
lib,
pkgs, pkgs,
inputs, inputs,
lib,
window_manager,
... ...
}: }:
let
in
{ {
imports = [ imports = [ ./common.nix ];
# Core theming & apps
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
# Local modules # User-specific color scheme (different from mrfluffy)
./sessionVars.nix
./stylix.nix
./homePkgs.nix
./services.nix
# Dots
../dots/foot.nix
../dots/waybar.nix
../dots/zsh.nix
../dots/nixcord.nix
#../dots/hyprlock.nix
../dots/xdg.nix
../dots/river.nix
#../dots/niri.nix
../dots/hyprland.nix
../dots/hyprpaper.nix
../dots/caelestia.nix
../dots/dankMeterialShell.nix
];
# You can find color schemes at: https://github.com/tinted-theming/schemes
colorScheme = inputs.nix-colors.colorSchemes.blueish; colorScheme = inputs.nix-colors.colorSchemes.blueish;
stylix.base16Scheme.base00 = "0F1417"; stylix.base16Scheme.base00 = "0F1417";
# Home Manager user information # User identity
home.username = "work"; home.username = "work";
home.homeDirectory = "/home/work"; home.homeDirectory = "/home/work";
# This determines compatibility with a specific Home Manager release.
home.stateVersion = "23.11"; # Please read the comment before changing.
# Example GTK block (disabled)
gtk = {
enable = true;
iconTheme = {
name = "Reversal-black-dark";
package = pkgs.reversal-icon-theme.override { allColorVariants = true; };
};
};
home.packages = with pkgs; [
############################
# Wayland / Desktop tools
############################
lswt
swaybg
wlr-randr
############################
# Browsers
############################
############################
# work stuff
############################
#awscli2
# swaynotificationcenter
# inputs.ladybird.packages."${pkgs.stdenv.hostPlatform.system}".ladybird
# pkgs.hello
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Dotfiles & static files managed by Home Manager
home.file = {
".config/nixpkgs/config.nix".text = ''
{ allowUnfree = true; }
'';
".config/doom".source = ../dots/doom;
# ".config/quickshell".source = ../dots/shell;
# ".config/kitty".source = ../../universal/dots/kitty;
# ".config/nvim".source = ../../universal/dots/nvim;
"Pictures/Wallpapers".source = ../assets/Wallpapers;
# ".screenrc".source = dotfiles/screenrc;
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
# If you don't manage your shell with Home Manager, remember to source:
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
# ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh
# /etc/profiles/per-user/mrfluffy/etc/profile.d/hm-session-vars.sh
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
} }

View File

@@ -25,9 +25,9 @@ in
loader = { loader = {
systemd-boot = { systemd-boot = {
enable = true; enable = true;
extraInstallCommands = '' extraInstallCommands = ''
${lib.getExe pkgs.gnused} -i 's/default .*/default *-specialisation-00-main-system.conf/' /boot/loader/loader.conf ${lib.getExe pkgs.gnused} -i 's/default .*/default *-specialisation-00-main-system.conf/' /boot/loader/loader.conf
''; '';
#sortKey = "z-normal"; #sortKey = "z-normal";
}; };
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;

View File

@@ -7,6 +7,9 @@
}: }:
let let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
# Shared VA-API / VDPAU bits across both machines # Shared VA-API / VDPAU bits across both machines
commonVA = with pkgs; [ commonVA = with pkgs; [
libva libva
@@ -18,7 +21,7 @@ in
# ── Graphics ───────────────────────────────────────────────────────────────── # ── Graphics ─────────────────────────────────────────────────────────────────
hardware.graphics = lib.mkMerge [ hardware.graphics = lib.mkMerge [
# Laptop: Intel stack # Laptop: Intel stack
(lib.mkIf (systemName == "laptop") { (lib.mkIf isLaptop {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [
@@ -29,7 +32,7 @@ in
}) })
# PC: AMD/ROCm stack # PC: AMD/ROCm stack
(lib.mkIf (systemName == "pc") { (lib.mkIf isPc {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
extraPackages = with pkgs; [ extraPackages = with pkgs; [

View File

@@ -1,18 +1,35 @@
{ config, lib, pkgs, systemName, ... }: {
config,
lib,
pkgs,
systemName,
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{ {
# Set console keymap based on systemName # Set console keymap based on systemName
console.keyMap = if systemName == "laptop" then "ie" else "us"; console.keyMap =
if isLaptop
then "ie"
else "us";
# Locale settings # Locale settings
i18n.defaultLocale = i18n.defaultLocale =
if systemName == "laptop" if isLaptop
then "en_IE.UTF-8" then "en_IE.UTF-8"
else "en_US.UTF-8"; else "en_US.UTF-8";
i18n.extraLocaleSettings = let i18n.extraLocaleSettings =
locale = if systemName == "laptop" then "en_IE.UTF-8" else "en_US.UTF-8"; let
in { locale =
if isLaptop
then "en_IE.UTF-8"
else "en_US.UTF-8";
in {
LC_ADDRESS = locale; LC_ADDRESS = locale;
LC_IDENTIFICATION = locale; LC_IDENTIFICATION = locale;
LC_MEASUREMENT = locale; LC_MEASUREMENT = locale;

View File

@@ -7,13 +7,13 @@
}: }:
let let
isLaptop = systemName == "laptop"; isLaptop = systemName == "laptop";
isPc = systemName == "pc"; isPc = systemName == "pc";
in in
{ {
networking = lib.mkMerge [ networking = lib.mkMerge [
# Hostname per system type # Hostname per system type
(lib.mkIf isLaptop { hostName = "mrfluffyLaptop"; }) (lib.mkIf isLaptop { hostName = "mrfluffyLaptop"; })
(lib.mkIf isPc { hostName = "mrfluffyPC"; }) (lib.mkIf isPc { hostName = "mrfluffyPC"; })
# Common networking config # Common networking config
{ {

View File

@@ -1,8 +1,8 @@
{ {
config, config,
lib, lib,
inputs,
pkgs, pkgs,
inputs,
pkgs-stable, pkgs-stable,
... ...
}: }:
@@ -29,8 +29,8 @@ let
-- HQ shader map -- HQ shader map
local shader_map = { local shader_map = {
[1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl", [1080] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
[720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl", [720] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Restore_CNN_Soft_VL.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl",
[480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl" [480] = "${anime4k}/Anime4K_Clamp_Highlights.glsl:${anime4k}/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:${anime4k}/Anime4K_AutoDownscalePre_x2.glsl:${anime4k}/Anime4K_AutoDownscalePre_x4.glsl:${anime4k}/Anime4K_Upscale_CNN_x2_M.glsl"
} }
local resolutions = { 1080, 720, 480 } local resolutions = { 1080, 720, 480 }
@@ -183,6 +183,7 @@ in
nil nil
nixfmt nixfmt
inputs.nix-alien.packages.${pkgs.stdenv.hostPlatform.system}.nix-alien inputs.nix-alien.packages.${pkgs.stdenv.hostPlatform.system}.nix-alien
cachix
# --- Wayland / Desktop --- # --- Wayland / Desktop ---
foot foot

View File

@@ -6,10 +6,12 @@
... ...
}: }:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{ {
############################################### # ─── Desktop & Input ───────────────────────────────────────────────────────
# Desktop & Input
###############################################
services.xserver.windowManager.fvwm2.gestures = true; services.xserver.windowManager.fvwm2.gestures = true;
# Enable touchpad support (enabled by default in most desktop managers). # Enable touchpad support (enabled by default in most desktop managers).
@@ -31,49 +33,26 @@
# services.xserver.displayManager.gdm.enable = true; # services.xserver.displayManager.gdm.enable = true;
# services.xserver.desktopManager.gnome.enable = true; # services.xserver.desktopManager.gnome.enable = true;
############################################### # ─── Audio / Bluetooth ──────────────────────────────────────────────────────
# Audio / Bluetooth services.pipewire = {
############################################### enable = true;
services.pipewire = lib.mkMerge [ alsa.enable = true;
(lib.mkIf (systemName == "laptop") { alsa.support32Bit = true;
enable = true; pulse.enable = true;
alsa.enable = true; jack.enable = true;
alsa.support32Bit = true; extraConfig.pipewire."92-low-latency"."context.properties" =
pulse.enable = true; if isLaptop
jack.enable = true; then {
extraConfig.pipewire = { "default.clock.rate" = 48000;
"92-low-latency" = { "default.clock.allowed-rates" = [ 48000 ];
"context.properties" = { }
"default.clock.rate" = 48000; else {
"default.clock.allowed-rates" = [ 48000 ]; "default.clock.rate" = 96000;
}; "default.clock.allowed-rates" = [ 44100 48000 96000 ];
};
}; };
}) };
(lib.mkIf (systemName == "pc") {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
extraConfig.pipewire = {
"92-low-latency" = {
"context.properties" = {
"default.clock.rate" = 96000;
"default.clock.allowed-rates" = [
44100
48000
96000
];
};
};
};
})
];
############################################### # ─── Nice Shit ──────────────────────────────────────────────────────────────
# nice shit
###############################################
services.ananicy = { services.ananicy = {
enable = true; enable = true;
package = pkgs.ananicy-cpp; package = pkgs.ananicy-cpp;
@@ -88,18 +67,14 @@
services.blueman.enable = true; services.blueman.enable = true;
############################################### # ─── Printing & Files ───────────────────────────────────────────────────────
# Printing & Files
###############################################
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
services.gvfs.enable = true; services.gvfs.enable = true;
services.tumbler.enable = true; services.tumbler.enable = true;
############################################### # ─── Time & Power ───────────────────────────────────────────────────────────
# Time & Power
###############################################
services.automatic-timezoned.enable = true; services.automatic-timezoned.enable = true;
# Power management # Power management
@@ -109,20 +84,18 @@
}; };
# Laptop-specific lid and sleep behavior # Laptop-specific lid and sleep behavior
services.logind.settings.Login = lib.mkIf (systemName == "laptop") { services.logind.settings.Login = lib.mkIf isLaptop {
HandleLidSwitch = "suspend-then-hibernate"; HandleLidSwitch = "suspend-then-hibernate";
HandleLidSwitchExternalPower = "suspend-then-hibernate"; HandleLidSwitchExternalPower = "suspend-then-hibernate";
HandleLidSwitchDocked = "suspend-then-hibernate"; HandleLidSwitchDocked = "suspend-then-hibernate";
}; };
systemd.sleep.extraConfig = lib.mkIf (systemName == "laptop") '' systemd.sleep.extraConfig = lib.mkIf isLaptop ''
HibernateDelaySec=120min HibernateDelaySec=120min
SuspendState=mem SuspendState=mem
''; '';
############################################### # ─── Developer Tools & Services ─────────────────────────────────────────────
# Developer Tools & Services
###############################################
# direnv speedup # direnv speedup
services.lorri.enable = true; services.lorri.enable = true;
@@ -132,10 +105,10 @@
package = pkgs.emacs-pgtk; package = pkgs.emacs-pgtk;
}; };
#services.flatpak.enable = true; services.flatpak.enable = true;
# Sunshine (only on PC) # Sunshine (only on PC)
services.sunshine = lib.mkIf (systemName == "pc") { services.sunshine = lib.mkIf isPc {
enable = false; enable = false;
settings = { settings = {
sunshine_name = "nixos"; sunshine_name = "nixos";
@@ -168,11 +141,11 @@
}; };
# Ollama (only on PC) # Ollama (only on PC)
services.ollama = lib.mkIf (systemName == "pc") { services.ollama = lib.mkIf isPc {
enable = true; enable = true;
package = pkgs.ollama-rocm; package = pkgs.ollama-rocm;
port = 11434; port = 11434;
host = "0.0.0.0"; host = "127.0.0.1"; # Bind to localhost only for security
rocmOverrideGfx = "11.0.0"; rocmOverrideGfx = "11.0.0";
environmentVariables = { environmentVariables = {
OLLAMA_DEBUG = "1"; OLLAMA_DEBUG = "1";
@@ -180,14 +153,11 @@
OLLAMA_NUM_CTX = "40000"; OLLAMA_NUM_CTX = "40000";
OLLAMA_NUM_GPU = "20"; OLLAMA_NUM_GPU = "20";
OLLAMA_FLASH_ATTENTION = "true"; OLLAMA_FLASH_ATTENTION = "true";
# HSA_OVERRIDE_GFX_VERSION = "11.0.0";
OLLAMA_KV_CACHE_TYPE = "f16"; OLLAMA_KV_CACHE_TYPE = "f16";
}; };
}; };
############################################### # ─── Systemd User Services ──────────────────────────────────────────────────
# Systemd User Services
###############################################
systemd.user.services.steam-run-url-service = { systemd.user.services.steam-run-url-service = {
description = "Service to launch Steam URLs via FIFO"; description = "Service to launch Steam URLs via FIFO";
wantedBy = [ "default.target" ]; wantedBy = [ "default.target" ];
@@ -217,9 +187,7 @@
path = [ pkgs.steam ]; path = [ pkgs.steam ];
}; };
############################################### # ─── Networking & Remote ────────────────────────────────────────────────────
# Networking & Remote
###############################################
# services.resolved = { # services.resolved = {
# enable = true; # enable = true;
# dnssec = "true"; # dnssec = "true";
@@ -231,14 +199,10 @@
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
services.openssh.enable = true; services.openssh.enable = true;
############################################### # ─── Virtualization ─────────────────────────────────────────────────────────
# Virtualization
###############################################
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
############################################### # ─── Udev Rules ─────────────────────────────────────────────────────────────
# Udev Rules
###############################################
services.udev.packages = [ services.udev.packages = [
pkgs.platformio-core pkgs.platformio-core
pkgs.platformio pkgs.platformio

View File

@@ -9,6 +9,9 @@
}: }:
let let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
oreo = pkgs.callPackage ./personalPKGS/oreo.nix { }; oreo = pkgs.callPackage ./personalPKGS/oreo.nix { };
# Window manager toggles # Window manager toggles
@@ -36,9 +39,7 @@ in
#}; #};
#services.displayManager.cosmic-greeter.enable = true; #services.displayManager.cosmic-greeter.enable = true;
############################################################################## # ─── Desktop / WM ───────────────────────────────────────────────────────────
# Desktop / WM
##############################################################################
programs.river-classic.enable = useRiver; programs.river-classic.enable = useRiver;
qt = { qt = {
@@ -89,9 +90,7 @@ in
# }; # };
}; };
############################################################################## # ─── Security / PolicyKit / PAM ─────────────────────────────────────────────
# Security / PolicyKit / PAM
##############################################################################
security = { security = {
rtkit.enable = true; rtkit.enable = true;
polkit.enable = true; polkit.enable = true;
@@ -102,13 +101,11 @@ in
}; };
}; };
############################################################################## # ─── Virtualisation ─────────────────────────────────────────────────────────
# Virtualisation
##############################################################################
virtualisation = { virtualisation = {
docker = { docker = {
enable = true; enable = true;
storageDriver = lib.mkIf (systemName == "pc") "btrfs"; storageDriver = lib.mkIf isPc "btrfs";
}; };
libvirtd.enable = true; libvirtd.enable = true;
}; };

View File

@@ -1,5 +0,0 @@
{ config, lib, pkgs, ... }:
{
}