Compare commits

..

3 Commits

Author SHA1 Message Date
3d349550c7 big balls 2026-01-20 17:05:00 +00:00
69e6a5a1a5 fibe fixed my dude 2026-01-15 18:31:30 +00:00
c5774e4231 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/2d000c1052e50c6a1c36db91d998bc6fa4b1ba59?narHash=sha256-Crf752Mpg956GHHUphH%2BWJn6yXfRCr9HY4jeNMSQSXE%3D' (2026-01-15)
• Updated input 'caelestia/caelestia-cli':
    'github:caelestia-dots/cli/337c711371e070fa28c2e55fffc5b0115a7cf40b?narHash=sha256-HXi1ED3ub/7yn3SEUw8641dLMFuxRlcMs/RgIbU91I8%3D' (2026-01-02)
  → 'github:caelestia-dots/cli/70a8624eacfc1b90fe248aef722ae708e775a927?narHash=sha256-CmEy/t3CCDnUvn594sXtv0vRxt1JQaqj0nGdtQFU3mA%3D' (2026-01-10)
• Updated input 'caelestia/nixpkgs':
    'github:nixos/nixpkgs/fb7944c166a3b630f177938e478f0378e64ce108?narHash=sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf%2BOkucw%3D' (2026-01-02)
  → 'github:nixos/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
• 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=bcc3d4265e8b3ed2b17b801923905b60a3927823' (2026-01-10)
• Updated input 'caelestia-cli':
    'github:caelestia-dots/cli/55d75a117540e37263ac450ed7c40cc2212b5e3c?narHash=sha256-9aevqBizkmywn0buASzLCNOwY/Wm6tq9FpaPrRgZ/KQ%3D' (2026-01-07)
  → 'github:caelestia-dots/cli/08dc3e0e8786b41847e85b6d66658225fa3eb837?narHash=sha256-925yu4N54YhZQrOoyxBdDfuG%2BIGld5RJZh3Ea7nSk1M%3D' (2026-01-14)
• Updated input 'caelestia-cli/caelestia-shell':
    'github:caelestia-dots/shell/1b4b90a3ad9532f7002ef2593d8efb68443f21f3?narHash=sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM%3D' (2026-01-04)
  → 'github:caelestia-dots/shell/3bb58e6da8f9bf465e6cd5517c46c4a0667c0e07?narHash=sha256-hu8b8JW28QGvH3lkVmIPltr5S8U6/hkRoJDlWA9kdcE%3D' (2026-01-12)
• 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=bcc3d4265e8b3ed2b17b801923905b60a3927823' (2026-01-10)
• Updated input 'caelestia-cli/nixpkgs':
    'github:nixos/nixpkgs/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5?narHash=sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i%2BbwD6XxMb8A%3D' (2026-01-05)
  → 'github:nixos/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
• Updated input 'dgop':
    'github:AvengeMedia/dgop/0ff697a4e3418966caa714c838fc73f1ef6ba59b?narHash=sha256-A3a2ZfvjirX8VIdIPI%2BnAyukWs6vx4vet3fU0mpr7lU%3D' (2025-12-15)
  → 'github:AvengeMedia/dgop/5a72c65d7df350271f93db6209a51ac5e5b8af69?narHash=sha256-qWyEzqoBnRQVPbWpVWdlIrt7tHPZZo2bsdZ80juqK7w%3D' (2026-01-13)
• Updated input 'dms':
    'github:AvengeMedia/DankMaterialShell/3dd21382bad5d43604850e257cfd1b8d35e16fb9?narHash=sha256-4tLYqLiLZqI7xmhNBi5zyGkaAXZJNUtGuxWzA7NJf8A%3D' (2026-01-07)
  → 'github:AvengeMedia/DankMaterialShell/623eec3689b803489b66abf47918ea7af022b737?narHash=sha256-78SpEUmnxSdD7ImN8gkFf0YOUMzFc90Gi1HR37kBZP8%3D' (2026-01-15)
• Updated input 'home-manager':
    'github:nix-community/home-manager/c068188a8e5c277f7bc8671557a7568864b57515?narHash=sha256-QICeGwbXfqtaOZmgh6BrSBB72drPuHO3pjuyh%2Bx8eIY%3D' (2026-01-07)
  → 'github:nix-community/home-manager/b4d88c9ac42ae1a745283f6547701da43b6e9f9b?narHash=sha256-cJbFn17oyg6qAraLr%2BNVeNJrXsrzJdrudkzI4H2iTcg%3D' (2026-01-14)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/918e2bb9be0e1d233f9394f1d569137788c43c01?narHash=sha256-BHBiQhlNl%2BLxvp/bBOOTWhxbXYMoVG4xiyv9DE/nuZ4%3D' (2026-01-07)
  → 'github:hyprwm/Hyprland/ac9df44788492fd1d12da8ec0fbbf691386c45a4?narHash=sha256-ZrCazve%2BKUM47OK5rey/3wp54n/M3f4pZ9dUEbOrNdI%3D' (2026-01-15)
• Updated input 'jovian':
    'github:Jovian-Experiments/Jovian-NixOS/a81fad3f4a70fdaa779e74b7da2063fa2e358028?narHash=sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64%3D' (2026-01-07)
  → 'github:Jovian-Experiments/Jovian-NixOS/544a1396c5a75fe832ae7a2a097bb760701ccd50?narHash=sha256-ky0ful39n74F2xGELY56RrV20OSmtFOmViQmxy1Zh58%3D' (2026-01-14)
• Updated input 'nix-alien':
    'github:thiagokokada/nix-alien/0eb86c42d1e33e8dbcf771cb67446319517a0a57?narHash=sha256-AUT31hDJliW0fK9G7tfTEDD2me4rIXbBXPu1lf0mVHs%3D' (2025-12-16)
  → 'github:thiagokokada/nix-alien/a579610c67dc946f39c2a64656699eb29eb2ffb5?narHash=sha256-185VOlWF4K9gzwr7M56ArjqDt6beN/5TxCYLEyVPOcs%3D' (2026-01-15)
• 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/f381c8e4469072862997d6f66019ebbdf8145963?narHash=sha256-VpvXfybTpdIIvxyxcqvs9ywJmNM9v0r5PN4BPqPTfs8%3D' (2026-01-15)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
  → 'github:nixos/nixpkgs/1412caf7bf9e660f2f962917c14b1ea1c3bc695e?narHash=sha256-AIdl6WAn9aymeaH/NvBj0H9qM%2BXuAuYbGMZaP0zcXAQ%3D' (2026-01-13)
• 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=783b97152a25739340845c479d539bdd2a7c4d9c' (2026-01-14)
• Updated input 'stylix':
    'github:nix-community/stylix/a4406d9799d002c41296c72378a1094a8fc9aa1b?narHash=sha256-zsgfockkvK0JrSvzVAb8JeUq3SDdITu6ViUf7yeIpi4%3D' (2026-01-05)
  → 'github:nix-community/stylix/5287bc719dbb6efb26f48c1677a221c966a4a4d9?narHash=sha256-aHos307HyVtOriYZppyUjrkcEKQzyp9F5WzxpMjPFH8%3D' (2026-01-15)
• 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/c61d4fbd9553d4dc5231251dc20e96f9b8972a49?narHash=sha256-n1Knq5NgOm0cJ60JsvGHy2sayng7EDc6sZYCjw%2B/lac%3D' (2026-01-15)
• Updated input 'zen-browser':
    'github:0xc000022070/zen-browser-flake/8b2302d8c10369c9135552cc892da75cff5ddb03?narHash=sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs%3D' (2026-01-07)
  → 'github:0xc000022070/zen-browser-flake/06f61b4e4f4f6ba8027c96a5611c63dc0db12b90?narHash=sha256-z94S29l5V86h11LZbPIMbHTJyksDG63aqISsZkTTuJY%3D' (2026-01-14)
2026-01-15 18:23:55 +00:00
30 changed files with 584 additions and 832 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,
pkgs,
lib,
pkgs,
inputs,
window_manager,
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 = [
./hardware-configuration.nix
@@ -24,9 +48,7 @@
#inputs.niri.nixosModules.niri
];
##############################################################################
# Nix settings
##############################################################################
# ─── Nix settings ───────────────────────────────────────────────────────────
nix.settings = {
experimental-features = [
"nix-command"
@@ -36,9 +58,7 @@
auto-optimise-store = true;
};
##############################################################################
# Users
##############################################################################
# ─── Users ──────────────────────────────────────────────────────────────────
programs.zsh.enable = true;
users = {
users = {
@@ -56,17 +76,7 @@
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
extraGroups = defaultUserGroups;
packages = with pkgs; [ ];
};
@@ -74,34 +84,17 @@
isNormalUser = true;
shell = pkgs.zsh;
createHome = true;
extraGroups = [
"wheel"
"networkmanager"
"video"
"render"
"docker"
"libvirt"
"input"
"seat"
"dialout"
];
extraGroups = defaultUserGroups;
packages = with pkgs; [ ];
};
game = {
isNormalUser = true;
description = "Dedicated gaming user (auto-login in Steam specialisation)";
shell = pkgs.bash;
createHome = true;
password = ""; # no password
extraGroups = [
"wheel"
"video"
"render"
"input"
"seat"
"networkmanager"
"dialout"
];
hashedPassword = ""; # no password - removed wheel group for security
extraGroups = gameUserGroups;
home = "/home/game";
};
};
@@ -111,9 +104,7 @@
];
};
##############################################################################
# Home-Manager
##############################################################################
# ─── Home-Manager ───────────────────────────────────────────────────────────
home-manager = {
extraSpecialArgs = { inherit inputs window_manager systemName; };
users = {
@@ -123,9 +114,7 @@
};
};
##############################################################################
# Environment
##############################################################################
# ─── Environment ────────────────────────────────────────────────────────────
environment = {
sessionVariables = {
ZDOTDIR = "$HOME/.config/zsh";
@@ -150,17 +139,13 @@
];
};
##############################################################################
# Nixpkgs policy
##############################################################################
# ─── Nixpkgs policy ─────────────────────────────────────────────────────────
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [ ];
};
##############################################################################
# decky
##############################################################################
# ─── Decky ──────────────────────────────────────────────────────────────────
nixpkgs.overlays = [
inputs.jovian.overlays.default
];
@@ -173,9 +158,7 @@
# extraPythonPackages = ps: with ps; [ some-python-package ];
};
##############################################################################
# State version
##############################################################################
# ─── State version ──────────────────────────────────────────────────────────
system.stateVersion = "24.11"; # Did you read the comment?
specialisation = {
@@ -190,9 +173,7 @@
"00-main-system" = {
configuration = {
#boot.loader.systemd-boot.sortKey = lib.mkDefault "00000000000-main";
##############################################################################
# Imports
##############################################################################
# ─── Imports ─────────────────────────────────────────────────────────────────
imports = [
./system/services.nix
./system/nixOSPkgs.nix

View File

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

View File

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

View File

@@ -8,6 +8,9 @@
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
hypr-package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
hypr-portal =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
@@ -35,9 +38,7 @@ in
];
settings = {
##########################################################################
# Monitors
##########################################################################
# ─── Monitors ────────────────────────────────────────────────────────────────
source = [
"./dms/outputs.conf"
#"./dms/cursor.conf"
@@ -86,9 +87,7 @@ in
# transform = 0;
# };
##########################################################################
# Autostart
##########################################################################
# ─── Autostart ───────────────────────────────────────────────────────────────
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
@@ -113,9 +112,7 @@ in
# ++ lib.optional (systemName == "pc")
# "swaybg -o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}";
##########################################################################
# Plugins
##########################################################################
# ─── Plugins ─────────────────────────────────────────────────────────────────
plugin = {
split-monitor-workspaces = {
@@ -129,18 +126,14 @@ in
};
};
##########################################################################
# Environment
##########################################################################
# ─── Environment ─────────────────────────────────────────────────────────────
env = [
"XCURSOR_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/#general
@@ -218,9 +211,7 @@ in
];
};
##########################################################################
# Layouts
##########################################################################
# ─── Layouts ─────────────────────────────────────────────────────────────────
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle = {
@@ -236,9 +227,7 @@ in
new_on_top = true;
};
##########################################################################
# Misc / Input / Gestures / Devices
##########################################################################
# ─── Misc / Input / Gestures / Devices ───────────────────────────────────────
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc = {
@@ -251,8 +240,8 @@ in
# https://wiki.hyprland.org/Configuring/Variables/#input
input = {
kb_layout = lib.mkMerge [
(lib.mkIf (systemName == "laptop") "ie")
(lib.mkIf (systemName == "pc") "us")
(lib.mkIf isLaptop "ie")
(lib.mkIf isPc "us")
];
repeat_rate = 40;
repeat_delay = 500;
@@ -281,9 +270,7 @@ in
sensitivity = -0.5;
};
##########################################################################
# Binds
##########################################################################
# ─── Binds ───────────────────────────────────────────────────────────────────
bind = [
# Launcher / apps
@@ -394,9 +381,7 @@ in
binds = [ ];
##########################################################################
# Rules (windows / workspaces)
##########################################################################
# ─── Rules (windows / workspaces) ────────────────────────────────────────────
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# 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 = {
hypridle = {
@@ -24,19 +28,19 @@
on-timeout = "loginctl lock-session";
}
]
++ lib.optional (systemName == "laptop") {
++ lib.optional isLaptop {
timeout = 700;
on-timeout = "hyprctl dispatch dpms off"; # Turns off all displays
on-resume = "hyprctl dispatch dpms on"; # Turns displays back on
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
++ lib.optional (systemName == "laptop") {
++ lib.optional isLaptop {
timeout = 800;
on-timeout = "systemctl suspend-then-hibernate";
}
++ lib.optional (systemName == "pc") {
timeout = 700; # Adjust timeout as needed (in seconds)
on-timeout = "hyprctl dispatch dpms off"; # Turns off all displays
on-resume = "hyprctl dispatch dpms on"; # Turns displays back on
++ lib.optional isPc {
timeout = 700;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
};
};
};

View File

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

View File

@@ -1,11 +1,16 @@
{
pkgs,
lib,
config,
lib,
pkgs,
window_manager,
systemName,
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{
wayland.windowManager.river = {
enable = window_manager == "river" || window_manager == "all";
@@ -27,20 +32,18 @@
riverctl input "pointer-2362-8197-ASUP1204:00_093A:2005_Touchpad" tap enabled
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 'systemctl --user restart xdg-desktop-portal'
riverctl spawn 'dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP'
riverctl spawn 'swaybg ${
# Handle laptop case
lib.optionalString (systemName == "laptop") "-o eDP-1 -i ${../assets/Wallpapers/138.png}"
lib.optionalString isLaptop "-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 (
systemName == "pc"
) "-o HDMI-A-1 -i ${../assets/Wallpapers/138.png} -o DP-1 -i ${../assets/Wallpapers/138.png}"
lib.optionalString isPc "-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 'waybar &'
@@ -57,12 +60,9 @@
riverctl set-cursor-warp on-focus-change
#riverctl xcursor-theme oreo_spark_pink_cursors
riverctl spawn '${
# Handle laptop case
lib.optionalString (systemName == "laptop") "wlr-randr --output eDP-1 --mode 1920x1080@60"
lib.optionalString isLaptop "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 (systemName == "pc")
"wlr-randr --output DP-1 --mode 2560x1440@144 --pos 1920,0 --output HDMI-A-1 --mode 1920x1080@60 --pos 0,0"
lib.optionalString isPc "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.

View File

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

View File

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

214
flake.lock generated
View File

@@ -124,11 +124,11 @@
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1767490542,
"narHash": "sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM=",
"lastModified": 1768490533,
"narHash": "sha256-Crf752Mpg956GHHUphH+WJn6yXfRCr9HY4jeNMSQSXE=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "1b4b90a3ad9532f7002ef2593d8efb68443f21f3",
"rev": "2d000c1052e50c6a1c36db91d998bc6fa4b1ba59",
"type": "github"
},
"original": {
@@ -148,11 +148,11 @@
]
},
"locked": {
"lastModified": 1767320190,
"narHash": "sha256-HXi1ED3ub/7yn3SEUw8641dLMFuxRlcMs/RgIbU91I8=",
"lastModified": 1768010798,
"narHash": "sha256-CmEy/t3CCDnUvn594sXtv0vRxt1JQaqj0nGdtQFU3mA=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "337c711371e070fa28c2e55fffc5b0115a7cf40b",
"rev": "70a8624eacfc1b90fe248aef722ae708e775a927",
"type": "github"
},
"original": {
@@ -167,11 +167,11 @@
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1767751792,
"narHash": "sha256-9aevqBizkmywn0buASzLCNOwY/Wm6tq9FpaPrRgZ/KQ=",
"lastModified": 1768378939,
"narHash": "sha256-925yu4N54YhZQrOoyxBdDfuG+IGld5RJZh3Ea7nSk1M=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "55d75a117540e37263ac450ed7c40cc2212b5e3c",
"rev": "08dc3e0e8786b41847e85b6d66658225fa3eb837",
"type": "github"
},
"original": {
@@ -192,11 +192,11 @@
"quickshell": "quickshell_2"
},
"locked": {
"lastModified": 1767490542,
"narHash": "sha256-NkwDCzDC5soGuAE4k8YuvdzYOi7ugrBjUxavKwmFoUM=",
"lastModified": 1768218535,
"narHash": "sha256-hu8b8JW28QGvH3lkVmIPltr5S8U6/hkRoJDlWA9kdcE=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "1b4b90a3ad9532f7002ef2593d8efb68443f21f3",
"rev": "3bb58e6da8f9bf465e6cd5517c46c4a0667c0e07",
"type": "github"
},
"original": {
@@ -212,11 +212,11 @@
]
},
"locked": {
"lastModified": 1765838956,
"narHash": "sha256-A3a2ZfvjirX8VIdIPI+nAyukWs6vx4vet3fU0mpr7lU=",
"lastModified": 1768276716,
"narHash": "sha256-qWyEzqoBnRQVPbWpVWdlIrt7tHPZZo2bsdZ80juqK7w=",
"owner": "AvengeMedia",
"repo": "dgop",
"rev": "0ff697a4e3418966caa714c838fc73f1ef6ba59b",
"rev": "5a72c65d7df350271f93db6209a51ac5e5b8af69",
"type": "github"
},
"original": {
@@ -233,11 +233,11 @@
"quickshell": "quickshell_3"
},
"locked": {
"lastModified": 1767813183,
"narHash": "sha256-4tLYqLiLZqI7xmhNBi5zyGkaAXZJNUtGuxWzA7NJf8A=",
"lastModified": 1768456521,
"narHash": "sha256-78SpEUmnxSdD7ImN8gkFf0YOUMzFc90Gi1HR37kBZP8=",
"owner": "AvengeMedia",
"repo": "DankMaterialShell",
"rev": "3dd21382bad5d43604850e257cfd1b8d35e16fb9",
"rev": "623eec3689b803489b66abf47918ea7af022b737",
"type": "github"
},
"original": {
@@ -249,11 +249,11 @@
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"lastModified": 1764873433,
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
"type": "github"
},
"original": {
@@ -280,11 +280,11 @@
},
"flake-compat_2": {
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
@@ -333,11 +333,11 @@
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"lastModified": 1767609335,
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
"type": "github"
},
"original": {
@@ -388,11 +388,11 @@
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"lastModified": 1767737596,
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
"type": "gitlab"
},
"original": {
@@ -410,11 +410,11 @@
]
},
"locked": {
"lastModified": 1767811801,
"narHash": "sha256-QICeGwbXfqtaOZmgh6BrSBB72drPuHO3pjuyh+x8eIY=",
"lastModified": 1768434960,
"narHash": "sha256-cJbFn17oyg6qAraLr+NVeNJrXsrzJdrudkzI4H2iTcg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "c068188a8e5c277f7bc8671557a7568864b57515",
"rev": "b4d88c9ac42ae1a745283f6547701da43b6e9f9b",
"type": "github"
},
"original": {
@@ -500,11 +500,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1767812022,
"narHash": "sha256-BHBiQhlNl+Lxvp/bBOOTWhxbXYMoVG4xiyv9DE/nuZ4=",
"lastModified": 1768492847,
"narHash": "sha256-ZrCazve+KUM47OK5rey/3wp54n/M3f4pZ9dUEbOrNdI=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "918e2bb9be0e1d233f9394f1d569137788c43c01",
"rev": "ac9df44788492fd1d12da8ec0fbbf691386c45a4",
"type": "github"
},
"original": {
@@ -803,11 +803,11 @@
]
},
"locked": {
"lastModified": 1767777502,
"narHash": "sha256-jXb2kBU6lO6Q6S9zoR/bhVLMjg2hM9EW8gWIwsmkj64=",
"lastModified": 1768403827,
"narHash": "sha256-ky0ful39n74F2xGELY56RrV20OSmtFOmViQmxy1Zh58=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "a81fad3f4a70fdaa779e74b7da2063fa2e358028",
"rev": "544a1396c5a75fe832ae7a2a097bb760701ccd50",
"type": "github"
},
"original": {
@@ -825,11 +825,11 @@
]
},
"locked": {
"lastModified": 1765855559,
"narHash": "sha256-AUT31hDJliW0fK9G7tfTEDD2me4rIXbBXPu1lf0mVHs=",
"lastModified": 1768475717,
"narHash": "sha256-185VOlWF4K9gzwr7M56ArjqDt6beN/5TxCYLEyVPOcs=",
"owner": "thiagokokada",
"repo": "nix-alien",
"rev": "0eb86c42d1e33e8dbcf771cb67446319517a0a57",
"rev": "a579610c67dc946f39c2a64656699eb29eb2ffb5",
"type": "github"
},
"original": {
@@ -902,11 +902,11 @@
]
},
"locked": {
"lastModified": 1762660502,
"narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=",
"lastModified": 1765267181,
"narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "15c5451c63f4c612874a43846bfe3fa828b03eee",
"rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f",
"type": "github"
},
"original": {
@@ -944,11 +944,11 @@
]
},
"locked": {
"lastModified": 1767772998,
"narHash": "sha256-uW5BgnDOn41rlKn1JxdN7CU4bbOgZf+axEw8pBVP6RU=",
"lastModified": 1768464937,
"narHash": "sha256-VpvXfybTpdIIvxyxcqvs9ywJmNM9v0r5PN4BPqPTfs8=",
"owner": "kaylorben",
"repo": "nixcord",
"rev": "d9f83906a12678900b2b36c3bdf7329e8efaa0c0",
"rev": "f381c8e4469072862997d6f66019ebbdf8145963",
"type": "github"
},
"original": {
@@ -959,11 +959,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1767379071,
"narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=",
"lastModified": 1767892417,
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "fb7944c166a3b630f177938e478f0378e64ce108",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "github"
},
"original": {
@@ -1005,11 +1005,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1767640445,
"narHash": "sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i+bwD6XxMb8A=",
"lastModified": 1768127708,
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5",
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
"type": "github"
},
"original": {
@@ -1021,11 +1021,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"lastModified": 1768305791,
"narHash": "sha256-AIdl6WAn9aymeaH/NvBj0H9qM+XuAuYbGMZaP0zcXAQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"rev": "1412caf7bf9e660f2f962917c14b1ea1c3bc695e",
"type": "github"
},
"original": {
@@ -1037,27 +1037,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1766651565,
"narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=",
"lastModified": 1767767207,
"narHash": "sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"rev": "5912c1772a44e31bf1c63c0390b90501e5026886",
"type": "github"
},
"original": {
@@ -1079,11 +1063,11 @@
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"lastModified": 1767810917,
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
"type": "github"
},
"original": {
@@ -1122,11 +1106,11 @@
]
},
"locked": {
"lastModified": 1730724501,
"narHash": "sha256-zvNdomPM86fUf0iAwJV1RQC8yAqDCKbCDJKIs4iIPy0=",
"lastModified": 1767942797,
"narHash": "sha256-ypny6yOP3Buh7UBmETW3R/el3nHdzYNOCMhVnCdm9U4=",
"ref": "refs/heads/master",
"rev": "8f897ffb4a1575252c536c63db8be72f22b6a494",
"revCount": 1,
"rev": "8bdd6351a130f8ed8fe13c9ec87ed965c4d9912b",
"revCount": 2,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/nix-qml-support"
},
@@ -1143,11 +1127,11 @@
]
},
"locked": {
"lastModified": 1766725085,
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=",
"lastModified": 1768080170,
"narHash": "sha256-HYKRNShQe5YnnxLazQajB9JkAPGpVcUt9jQ3KwilITQ=",
"ref": "refs/heads/master",
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff",
"revCount": 715,
"rev": "bcc3d4265e8b3ed2b17b801923905b60a3927823",
"revCount": 722,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@@ -1165,11 +1149,11 @@
]
},
"locked": {
"lastModified": 1766725085,
"narHash": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=",
"lastModified": 1768080170,
"narHash": "sha256-HYKRNShQe5YnnxLazQajB9JkAPGpVcUt9jQ3KwilITQ=",
"ref": "refs/heads/master",
"rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff",
"revCount": 715,
"rev": "bcc3d4265e8b3ed2b17b801923905b60a3927823",
"revCount": 722,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@@ -1207,11 +1191,11 @@
]
},
"locked": {
"lastModified": 1767693058,
"narHash": "sha256-rnLX8IA4yMbKHjYmJPcYCcWrqJ50B8WApQW62l+V9LE=",
"lastModified": 1768375255,
"narHash": "sha256-4iRJS88M77nfMJfnszNs8FgNHpt4ldybiToMEto+qHE=",
"ref": "refs/heads/master",
"rev": "6742148cf4a8415a9c51fdeb11d8c3ea716c2e14",
"revCount": 717,
"rev": "783b97152a25739340845c479d539bdd2a7c4d9c",
"revCount": 726,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
@@ -1262,11 +1246,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1767652667,
"narHash": "sha256-zsgfockkvK0JrSvzVAb8JeUq3SDdITu6ViUf7yeIpi4=",
"lastModified": 1768492720,
"narHash": "sha256-aHos307HyVtOriYZppyUjrkcEKQzyp9F5WzxpMjPFH8=",
"owner": "nix-community",
"repo": "stylix",
"rev": "a4406d9799d002c41296c72378a1094a8fc9aa1b",
"rev": "5287bc719dbb6efb26f48c1677a221c966a4a4d9",
"type": "github"
},
"original": {
@@ -1356,11 +1340,11 @@
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"lastModified": 1767710407,
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
"type": "github"
},
"original": {
@@ -1372,11 +1356,11 @@
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"lastModified": 1767489635,
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
"type": "github"
},
"original": {
@@ -1388,11 +1372,11 @@
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"lastModified": 1767488740,
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
"type": "github"
},
"original": {
@@ -1403,15 +1387,17 @@
},
"vicinae": {
"inputs": {
"nixpkgs": "nixpkgs_5",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_3"
},
"locked": {
"lastModified": 1767815010,
"narHash": "sha256-OPBgcM2ZzbVEUS6lwRpJo2JBfiRK8TmYVSmZImEW2gA=",
"lastModified": 1768480078,
"narHash": "sha256-n1Knq5NgOm0cJ60JsvGHy2sayng7EDc6sZYCjw+/lac=",
"owner": "vicinaehq",
"repo": "vicinae",
"rev": "aab965dcf29529c5fab67b9c2fb5f8168f76fa1b",
"rev": "c61d4fbd9553d4dc5231251dc20e96f9b8972a49",
"type": "github"
},
"original": {
@@ -1471,11 +1457,11 @@
]
},
"locked": {
"lastModified": 1767763594,
"narHash": "sha256-5ysv8EuVAgDoYmNuXEUNf7vBzdeRaFxeIlIndv5HMvs=",
"lastModified": 1768379550,
"narHash": "sha256-z94S29l5V86h11LZbPIMbHTJyksDG63aqISsZkTTuJY=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "8b2302d8c10369c9135552cc892da75cff5ddb03",
"rev": "06f61b4e4f4f6ba8027c96a5611c63dc0db12b90",
"type": "github"
},
"original": {

View File

@@ -61,9 +61,8 @@
};
vicinae = {
url = "github:vicinaehq/vicinae";
#inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
# ... your existing inputs ...
jovian = {
url = "github:Jovian-Experiments/Jovian-NixOS";
inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -10,33 +10,40 @@
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules =
[ ]
++ (lib.optionals (systemName == "pc") [
assertions = [{
assertion = builtins.elem systemName [ "laptop" "pc" ];
message = "systemName must be either 'laptop' or 'pc', got: ${systemName}";
}];
boot.initrd.availableKernelModules = [ ]
++ lib.optionals isPc [
"xhci_pci"
"ahci"
"nvme"
"usb_storage"
"usbhid"
"sd_mod"
])
++ (lib.optionals (systemName == "laptop") [
]
++ lib.optionals isLaptop [
"vmd"
"xhci_pci"
"nvme"
"usb_storage"
"sd_mod"
]);
];
boot.initrd.kernelModules = [ ];
boot.kernelModules =
[ ]
++ (lib.optionals (systemName == "pc") [ "kvm-amd" "btusb"])
++ (lib.optionals (systemName == "laptop") [ "kvm-intel" ]);
boot.kernelModules = [ ]
++ lib.optionals isPc [ "kvm-amd" "btusb" ]
++ lib.optionals isLaptop [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.kernelParams = [
# Most common working combination in 2024/2025
@@ -45,22 +52,22 @@
];
fileSystems."/" = lib.mkMerge [
(lib.mkIf (systemName == "pc") {
(lib.mkIf isPc {
device = "/dev/disk/by-uuid/fdcbb840-4b35-4023-a048-599b0c5161d6";
fsType = "btrfs";
})
(lib.mkIf (systemName == "laptop") {
(lib.mkIf isLaptop {
device = "/dev/disk/by-uuid/6aa7c67d-a0a5-4928-b16b-9c7991fee7ab";
fsType = "ext4";
})
];
fileSystems."/boot" = lib.mkMerge [
(lib.mkIf (systemName == "pc") {
(lib.mkIf isPc {
device = "/dev/disk/by-uuid/E1B6-9089";
fsType = "vfat";
})
(lib.mkIf (systemName == "laptop") {
(lib.mkIf isLaptop {
device = "/dev/disk/by-uuid/FF4B-819D";
fsType = "vfat";
options = [
@@ -71,20 +78,21 @@
];
fileSystems."/home" = lib.mkMerge [
(lib.mkIf (systemName == "pc") {
(lib.mkIf isPc {
device = "/dev/disk/by-uuid/d226a8ed-10eb-452e-9284-1ff994a7f179";
fsType = "btrfs";
})
];
fileSystems."/home/game/Games" = lib.mkMerge [
(lib.mkIf (systemName == "pc") {
(lib.mkIf isPc {
device = "/dev/disk/by-uuid/54188f21-d525-4681-a9d4-b798363eef17";
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
# fsType = "cifs";
# options = let
@@ -107,18 +115,13 @@
# ];
#};
swapDevices =
[ ]
++ (lib.optionals (systemName == "pc") [
{
device = "/dev/disk/by-uuid/ccf41b96-c45f-47e0-8541-cd865f5d2ec6";
}
])
++ (lib.optionals (systemName == "laptop") [
{
device = "/dev/disk/by-uuid/b416c3bd-861b-4b0c-aa84-6962b2e6a47d";
}
]);
swapDevices = [ ]
++ lib.optionals isPc [
{ device = "/dev/disk/by-uuid/ccf41b96-c45f-47e0-8541-cd865f5d2ec6"; }
]
++ lib.optionals isLaptop [
{ device = "/dev/disk/by-uuid/b416c3bd-861b-4b0c-aa84-6962b2e6a47d"; }
];
# 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
@@ -130,10 +133,10 @@
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware = lib.mkMerge [
(lib.mkIf (systemName == "pc") {
(lib.mkIf isPc {
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
})
(lib.mkIf (systemName == "laptop") {
(lib.mkIf isLaptop {
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,
lib,
pkgs,
inputs,
lib,
window_manager,
...
}:
let
in
{
imports = [
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
imports = [ ./common.nix ];
# Local modules
./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
# User-specific color scheme
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
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.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

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

View File

@@ -1,120 +1,27 @@
{
config,
lib,
pkgs,
inputs,
lib,
window_manager,
...
}:
let
in
{
imports = [
# Core theming & integrations
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
imports = [ ./common.nix ];
# Local modules
./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
# User-specific color scheme
colorScheme = inputs.nix-colors.colorSchemes.hardcore;
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.homeDirectory = "/home/mrfluffy";
# 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;
gtk3 = {
# User-specific GTK theme
gtk.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,
...
}:
let
#quickshellPackage = inputs.caelestia.packages.${pkgs.stdenv.hostPlatform.system}.caelestia-shell;
in
{
#systemd.user.services.quickshell = lib.mkIf (window_manager == "hyprland") {
# 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" ];
# };
#};
# User services can be added here
}

View File

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

View File

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

View File

@@ -1,114 +1,19 @@
{
config,
lib,
pkgs,
inputs,
lib,
window_manager,
...
}:
let
in
{
imports = [
# Core theming & apps
inputs.nix-colors.homeManagerModules.default
inputs.stylix.homeModules.stylix
inputs.nixcord.homeModules.nixcord
# inputs.niri.homeModules.niri
imports = [ ./common.nix ];
# Local modules
./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
# User-specific color scheme (different from mrfluffy)
colorScheme = inputs.nix-colors.colorSchemes.blueish;
stylix.base16Scheme.base00 = "0F1417";
# Home Manager user information
# User identity
home.username = "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,7 +25,7 @@ in
loader = {
systemd-boot = {
enable = true;
extraInstallCommands = ''
extraInstallCommands = ''
${lib.getExe pkgs.gnused} -i 's/default .*/default *-specialisation-00-main-system.conf/' /boot/loader/loader.conf
'';
#sortKey = "z-normal";

View File

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

View File

@@ -1,17 +1,34 @@
{ config, lib, pkgs, systemName, ... }:
{
config,
lib,
pkgs,
systemName,
...
}:
let
isLaptop = systemName == "laptop";
isPc = systemName == "pc";
in
{
# 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
i18n.defaultLocale =
if systemName == "laptop"
if isLaptop
then "en_IE.UTF-8"
else "en_US.UTF-8";
i18n.extraLocaleSettings = let
locale = if systemName == "laptop" then "en_IE.UTF-8" else "en_US.UTF-8";
i18n.extraLocaleSettings =
let
locale =
if isLaptop
then "en_IE.UTF-8"
else "en_US.UTF-8";
in {
LC_ADDRESS = locale;
LC_IDENTIFICATION = locale;

View File

@@ -1,8 +1,8 @@
{
config,
lib,
inputs,
pkgs,
inputs,
pkgs-stable,
...
}:

View File

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

View File

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

View File

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