Compare commits

...

24 Commits

Author SHA1 Message Date
linusemr618 c6a0a5196a Merge pull request 'Fix Zen' (#5) from linusemr618/nixy:main into main
Reviewed-on: #5
2026-07-22 12:04:24 +00:00
linusemr618 41e2814bc0 merge upstream 2026-07-22 12:03:38 +00:00
Linus Emmerich c00b1353d1 maybe fix zen idk
brauchte doch ein NUR overlay wegen proprietary extensions
2026-07-22 12:54:57 +02:00
linusemr618 1234d20495 Merge pull request 'add zen du pic' (#4) from linusemr618/nixy:main into main
Reviewed-on: #4
2026-07-21 21:49:04 +00:00
Linus Emmerich b8be0e0c27 add zen du pic
eat my feet
2026-07-21 23:46:59 +02:00
kptltd00m 59e6f4015a feat(tor): add tor service files 2026-07-19 20:14:58 +02:00
kptltd00m ffe610e64f add tor browser and cwtch 2026-07-17 15:34:56 +02:00
kptltd00m 1c6d700768 enables dynamic linking and added extraGroups to user 2026-07-12 23:27:36 +02:00
kptltd00m 8a4c1e7f1d feat(dev): add Claude Code package to development environment 2026-07-10 16:50:35 +02:00
kptltd00m 93bf7545cc chore(dev): replace VS Code with VSCodium in dev-packages
Switched the development environment to use the open‑source VSCodium build instead of Microsoft VS Code
2026-07-10 16:43:58 +02:00
kptltd00m d3e18dfc53 add keepass, fix docker 2026-07-09 16:52:34 +02:00
kptltd00m b173c4d44f feat: music apps, vscode, kodi and keepass 2026-07-09 16:52:00 +02:00
kptltd00m 5e25ed4d5e feat(music): added guitarix to music-apps.nix 2026-07-03 22:11:05 +02:00
kptltd00m e540227a19 feat(gaming): fix hyprland mouse acceleration & mnt hdd on home-pc setup 2026-06-28 19:25:53 +02:00
KptltD00M 7321b840b7 Merge pull request 'feat/gaming' (#3) from feat/gaming into main
Reviewed-on: #3
2026-06-28 15:00:07 +00:00
kptltd00m 7a7917b361 feat(star-citizen): enabled star citizen on pc and created documentation
for install
2026-06-28 16:59:06 +02:00
kptltd00m bcfe305813 Add Hyprlock and refactor Hyprland bindings
- Add hyprlock module and package plus hyprlock.conf XDG config
- Rework bindings: introduce mkMenu, gui/term helpers and grouped
  menus (apps, dev, gaming, utility, system) and wire them into the
  main popup; change session lock to hyprlock
- Simplify gaming-apps.nix: use pkgs, reorder packages and add
  wineWow64Packages.staging, steam-run and appimage-run
2026-06-28 15:36:40 +02:00
KptltD00M 51d333d289 Merge pull request 'feat/waybar' (#2) from feat/waybar into feat/gaming
Reviewed-on: #2
2026-06-28 12:48:30 +00:00
kptltd00m 1bb36771dd chore(home): add elephant service and improve waybar configuration
- Add elephant backend service with systemd user service
- Update walker service to depend on elephant service
- Improve waybar configuration with new modules (tray, bluetooth, battery)
- Add click handlers for network, pulseaudio, and bluetooth
- Update colors and styling for better visibility
- Include gaming-apps in laptop home configuration
2026-06-28 14:42:33 +02:00
kptltd00m beda752703 Polish Waybar and add Bluetooth and walker service
Refactor Waybar config and CSS: add rgb/radius helpers and tweak
sizes, spacing, colors, tooltips, icons and transitions

Enable gtk-layer-shell and reload-on-change. Move exec-once into
settings and adjust modules and workspaces formatting

Add blueman and bluez to basic apps for Bluetooth support

Add elephant to home packages and add a systemd user service for
walker; change Hyprland exec-once to enable and start elephant.service
2026-06-28 13:58:14 +02:00
kptltd00m 849b0f0cfd Replace caelestia shell with Waybar and Walker
Remove caelestia-shell/cli inputs and prune corresponding flake.lock
entries. Update Hyprland keybindings to use walker, grimblast and
Waybar, use loginctl for locking and pkill/waybar for restart. Add
new home/system modules for waybar and walker and enable them in
host configs. Delete obsolete INSTALL-laptop.md.
2026-06-28 12:48:00 +02:00
admin c2e5500051 feat: integrate nix-citizen and star-citizen support in NixOS configuration 2026-06-28 12:10:01 +02:00
admin 1b44016dab feat: add gaming applications configuration for NixOS 2026-06-28 11:09:20 +02:00
kptltd00m a95d1fbd35 chore: update browser, theme, and locale configurations
- Replace Librewolf with Firefox as the backup browser
- Update default and extra locales to en_US.UTF-8 and de_DE.UTF-8 respectively
- Change theme fetch setting from 'none' to 'fastfetch' and update wallpaper
- Minor formatting cleanup in THEMES.md
2026-06-26 22:58:09 +02:00
34 changed files with 1476 additions and 709 deletions
-223
View File
@@ -1,223 +0,0 @@
# ThinkPad NixOS Installation Guide
This guide provides step-by-step instructions for installing the NixOS configuration on your ThinkPad laptop.
## Prerequisites
- **ThinkPad laptop** (tested models: T480, T490, X1 Carbon)
- **USB flash drive** (8GB+ recommended)
- **Backup your data** - this will erase everything on the target device
- **NixOS ISO** - Download from [nixos.org](https://nixos.org/download.html)
- **Internet connection** (wired recommended for initial setup)
## Preparation
### 1. Create NixOS Installation Media
```bash
# On another Linux machine or macOS:
sudo dd if=nixos-minimal-*.iso of=/dev/sdX bs=4M status=progress oflag=sync
# Replace /dev/sdX with your USB device (e.g., /dev/sdb)
# WARNING: This will erase the target device completely
```
### 2. Boot from USB
1. Insert USB drive into ThinkPad
2. Power on and press **F12** to enter boot menu
3. Select the USB drive
4. At GRUB menu, select "NixOS"
## Installation Steps
### 3. Prepare Disks
```bash
# Identify your disk (likely /dev/nvme0n1 for NVMe SSDs)
lsblk
# Partition the disk (adjust for your needs)
sudo gdisk /dev/nvme0n1
# Use: o (create new GPT), n (new partition), accept defaults for EFI (512M), then Linux filesystem (rest)
# Set type for EFI to EF00, Linux filesystem to 8300
# Write changes with w
```
### 4. Format Partitions
```bash
# Format EFI partition
sudo mkfs.fat -F32 /dev/nvme0n1p1
# Format root partition
sudo mkfs.ext4 /dev/nvme0n1p2
# Mount partitions
sudo mount /dev/nvme0n1p2 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
```
### 5. Generate NixOS Configuration
```bash
# Generate initial configuration
sudo nixos-generate-config --root /mnt
# This creates /mnt/etc/nixos/configuration.nix and hardware-configuration.nix
```
### 6. Clone Your Nixy Configuration
```bash
# Clone your nixy repository
sudo nix-shell -p git
git clone https://gitea.doomlabs.de/KptltD00M/nixy.git /mnt/etc/nixos/nixy
cd /mnt/etc/nixos/nixy
# Copy hardware configuration
sudo cp /mnt/etc/nixos/hardware-configuration.nix hosts/laptop/hardware-configuration.nix
```
### 7. Install NixOS
```bash
# Switch to your laptop configuration
sudo nixos-install --flake /mnt/etc/nixos/nixy#laptop
# When prompted, set a root password
```
### 8. Post-Installation
```bash
# After reboot, log in as root
# Clone your configuration to your user
git clone https://gitea.doomlabs.de/KptltD00M/nixy.git ~/nixy
cd ~/nixy
# Switch to your user configuration
nix run nixpkgs#home-manager -- switch --flake .#andi@laptop
# Reboot
reboot
```
## ThinkPad-Specific Configuration
### 1. Trackpad Configuration
The configuration includes touchpad settings optimized for ThinkPad hardware. If you need to adjust:
```nix
# Edit hosts/laptop/home.nix
programs.hyprland = {
touchpad = {
naturalScroll = true;
tap-to-click = true;
disableWhileTyping = false;
};
};
```
### 2. Keyboard Backlight
```bash
# Enable keyboard backlight control
sudo nix-env -iA nixos.hid-tools
sudo systemctl enable --now thinkpad-keyboard-backlight.service
```
### 3. Power Management
```bash
# Install TLP for better power management
sudo nix-env -iA nixos.tlp
sudo systemctl enable --now tlp
```
## Troubleshooting
### Common Issues
**1. WiFi not working:**
```bash
# Install firmware for your WiFi card
sudo nix-env -iA nixos.firmware
```
**2. Suspend/resume issues:**
```bash
# Edit hardware-configuration.nix
boot.kernelPackages = pkgs.linuxPackages_latest;
```
**3. Screen tearing:**
```bash
# Enable TearFree in hosts/laptop/configuration.nix
services.xserver.videoDrivers = [ "modesetting" ];
```
### Debugging Commands
```bash
# Check hardware detection
sudo dmesg | grep -i thinkpad
# Check battery status
upower -i /org/freedesktop/UPower/devices/battery_BAT0
# Check display configuration
hyprctl monitors
```
## Maintenance
### Updating Your System
```bash
# Update flake inputs
nix flake update
# Rebuild system
sudo nixos-rebuild switch --flake ~/nixy#laptop
# Rebuild home configuration
nix run nixpkgs#home-manager -- switch --flake ~/nixy#andi@laptop
```
### Backup Configuration
```bash
# Backup your hardware configuration
cp /etc/nixos/hardware-configuration.nix ~/nixy/hosts/laptop/
# Commit changes
cd ~/nixy
git add .
git commit -m "Update hardware config for ThinkPad"
git push
```
## Additional Resources
- [NixOS Manual](https://nixos.org/manual/nixos/stable/)
- [ThinkPad Wiki](https://www.thinkwiki.org/)
- [NixOS Discourse](https://discourse.nixos.org/)
## Notes
- **ThinkPad T480/X1 Carbon specific:** These models have excellent Linux support. The configuration includes:
- Trackpoint acceleration settings
- Keyboard backlight control
- Power management profiles
- Display brightness controls
- Suspend/resume fixes
- **Encryption:** If you enabled encryption during install, use:
```bash
sudo cryptsetup luksOpen /dev/nvme0n1p2 cryptroot
sudo mount /dev/mapper/cryptroot /mnt
```
- **Multi-boot:** If dual-booting with Windows, ensure Secure Boot is disabled in BIOS.
+16 -16
View File
@@ -1,16 +1,16 @@
# Contributing to Nixy # Contributing to Nixy
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues! Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
The process is straight-forward. The process is straight-forward.
- Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1) - Read [How to get faster PR reviews](https://github.com/kubernetes/community/blob/master/contributors/guide/pull-requests.md#best-practices-for-faster-reviews) by Kubernetes (but skip step 0 and 1)
- Fork Nixy [git repository](https://github.com/anotherhadi/nixy). - Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
- Write your changes (new theme, bug fixes, issues fix, ...). - Write your changes (new theme, bug fixes, issues fix, ...).
- Create a Pull Request against the main branch of Nixy. - Create a Pull Request against the main branch of Nixy.
> [!TIP] > [!TIP]
> To update the README, change the `./.github/assets/README_template.md` > To update the README, change the `./.github/assets/README_template.md`
> [!IMPORTANT] > [!IMPORTANT]
> Don't push your host's folder > Don't push your host's folder
+17 -17
View File
@@ -1,17 +1,17 @@
# Themes # Themes
Themes are defined in `themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed. Themes are defined in `themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed.
You can change the selected theme by changing the import statement of your host's variables.nix file. You can change the selected theme by changing the import statement of your host's variables.nix file.
## Create your theme ## Create your theme
Create a copy of one of the existing themes and change the variables. Create a copy of one of the existing themes and change the variables.
Wallpapers are loaded from the [hadi's awesome-wallpapers](https://github.com/anotherhadi/awesome-wallpapers) repo. Wallpapers are loaded from the [hadi's awesome-wallpapers](https://github.com/anotherhadi/awesome-wallpapers) repo.
## Gallery ## Gallery
### Rose-pine ### Rose-pine
![Home](../.github/assets/rose-pine/home.png) ![Home](../.github/assets/rose-pine/home.png)
![Flake & Spotify](../.github/assets/rose-pine/flake-spotify.png) ![Flake & Spotify](../.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](../.github/assets/rose-pine/browser-and-notifications.png) ![Browser and notification center](../.github/assets/rose-pine/browser-and-notifications.png)
Generated
+258 -183
View File
@@ -213,98 +213,6 @@
"type": "github" "type": "github"
} }
}, },
"caelestia-cli": {
"inputs": {
"caelestia-shell": "caelestia-shell",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780375472,
"narHash": "sha256-Q8RAJoYlakA6B2I5DVcuxzNbhCNU1nnIjqQZYP1KGrM=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "d1c8c8fc09738d1b40576e97c274b4a11a2e0ac7",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "cli",
"type": "github"
}
},
"caelestia-cli_2": {
"inputs": {
"caelestia-shell": [
"caelestia-shell"
],
"nixpkgs": [
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1779768519,
"narHash": "sha256-2n/447oNfAZrl1yncafLPgXMx5tuTF6T2B+zI/zFYkI=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "64a5507e74f6c7d0c29f9131964412f8f8c4dd89",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "cli",
"type": "github"
}
},
"caelestia-shell": {
"inputs": {
"caelestia-cli": [
"caelestia-cli"
],
"nixpkgs": [
"caelestia-cli",
"nixpkgs"
],
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1780196414,
"narHash": "sha256-iXmyWULTZuRd68xRL79e9GyYL9FZ6gfh6zl1PPlWX2A=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "63bb82762bb29ac9b7fcd5b97839abae721ce860",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "shell",
"type": "github"
}
},
"caelestia-shell_2": {
"inputs": {
"caelestia-cli": "caelestia-cli_2",
"nixpkgs": [
"nixpkgs"
],
"quickshell": "quickshell_2"
},
"locked": {
"lastModified": 1780196414,
"narHash": "sha256-iXmyWULTZuRd68xRL79e9GyYL9FZ6gfh6zl1PPlWX2A=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "63bb82762bb29ac9b7fcd5b97839abae721ce860",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "shell",
"type": "github"
}
},
"crane": { "crane": {
"locked": { "locked": {
"lastModified": 1779130139, "lastModified": 1779130139,
@@ -372,6 +280,38 @@
} }
}, },
"flake-compat_2": { "flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_4": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1777699697, "lastModified": 1777699697,
@@ -442,6 +382,24 @@
} }
}, },
"flake-parts_4": { "flake-parts_4": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib_4"
},
"locked": {
"lastModified": 1778716662,
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_5": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"nvf", "nvf",
@@ -462,7 +420,7 @@
"type": "github" "type": "github"
} }
}, },
"flake-parts_5": { "flake-parts_6": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
"stylix", "stylix",
@@ -499,6 +457,32 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": [
"nix-gaming",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"nix-gaming",
"nixpkgs"
]
},
"locked": {
"lastModified": 1781733627,
"narHash": "sha256-U3yTuGBnmXvXoQI3qkpfEDsn9RovQPAjN7ndRco+3u0=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3bbec39bc90eadfa031e6f3b77272f3f60803e39",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -521,6 +505,28 @@
"type": "github" "type": "github"
} }
}, },
"gitignore_2": {
"inputs": {
"nixpkgs": [
"nix-gaming",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
@@ -999,6 +1005,50 @@
"type": "github" "type": "github"
} }
}, },
"nix-citizen": {
"inputs": {
"flake-compat": "flake-compat_2",
"nix-gaming": [
"nix-gaming"
],
"nixpkgs": "nixpkgs_7",
"treefmt-nix": "treefmt-nix_4"
},
"locked": {
"lastModified": 1782345817,
"narHash": "sha256-HfMMa51hKi6KPrGGerg6vrdKdJcSEmhEbCM1hCCQNX8=",
"owner": "LovingMelody",
"repo": "nix-citizen",
"rev": "9d93df2ace0c1c2f83b7d03bfee81441d63ec5e0",
"type": "github"
},
"original": {
"owner": "LovingMelody",
"repo": "nix-citizen",
"type": "github"
}
},
"nix-gaming": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_4",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs_8"
},
"locked": {
"lastModified": 1782619847,
"narHash": "sha256-13XsPDHTG3vkNjagqQvFRG0zZK0yrDwfcU5ou/KtIFM=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "55d03bdd91952ff6fd0b0779efe79da67323b6c5",
"type": "github"
},
"original": {
"owner": "fufexan",
"repo": "nix-gaming",
"type": "github"
}
},
"nix-index-database": { "nix-index-database": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -1021,8 +1071,8 @@
}, },
"nixarr": { "nixarr": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_9",
"treefmt-nix": "treefmt-nix_4", "treefmt-nix": "treefmt-nix_5",
"vpnconfinement": "vpnconfinement", "vpnconfinement": "vpnconfinement",
"website-builder": "website-builder" "website-builder": "website-builder"
}, },
@@ -1042,7 +1092,7 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_10"
}, },
"locked": { "locked": {
"lastModified": 1780310866, "lastModified": 1780310866,
@@ -1120,6 +1170,21 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs-lib_4": {
"locked": {
"lastModified": 1777168982,
"narHash": "sha256-GOkGPcboWE9BmGCRMLX3worL4EMnsnG8MyKmXNeYuhQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "f5901329dade4a6ea039af1433fb087bd9c1fe14",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1779796641, "lastModified": 1779796641,
@@ -1137,6 +1202,35 @@
} }
}, },
"nixpkgs_10": { "nixpkgs_10": {
"locked": {
"lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_11": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_12": {
"locked": { "locked": {
"lastModified": 1778869304, "lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
@@ -1152,7 +1246,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_11": { "nixpkgs_13": {
"locked": { "locked": {
"lastModified": 1780749050, "lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
@@ -1168,7 +1262,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_12": { "nixpkgs_14": {
"locked": { "locked": {
"lastModified": 1778869304, "lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
@@ -1184,7 +1278,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_13": { "nixpkgs_15": {
"locked": { "locked": {
"lastModified": 1775888245, "lastModified": 1775888245,
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
@@ -1200,7 +1294,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_14": { "nixpkgs_16": {
"locked": { "locked": {
"lastModified": 1780243769, "lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
@@ -1297,6 +1391,38 @@
} }
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": {
"lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": {
"locked": {
"lastModified": 1782175435,
"narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "89570f24e97e614aa34aa9ab1c927b6578a43775",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1775595990, "lastModified": 1775595990,
"narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=",
@@ -1312,39 +1438,10 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": {
"locked": {
"lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"notashelf-tuigreet": { "notashelf-tuigreet": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_12",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
@@ -1388,7 +1485,7 @@
}, },
"nur-anotherhadi": { "nur-anotherhadi": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_11" "nixpkgs": "nixpkgs_13"
}, },
"locked": { "locked": {
"lastModified": 1781028989, "lastModified": 1781028989,
@@ -1427,11 +1524,11 @@
}, },
"nvf": { "nvf": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_4",
"flake-parts": "flake-parts_4", "flake-parts": "flake-parts_5",
"mnw": "mnw", "mnw": "mnw",
"ndg": "ndg", "ndg": "ndg",
"nixpkgs": "nixpkgs_12", "nixpkgs": "nixpkgs_14",
"systems": "systems_5" "systems": "systems_5"
}, },
"locked": { "locked": {
@@ -1471,64 +1568,21 @@
"type": "github" "type": "github"
} }
}, },
"quickshell": {
"inputs": {
"nixpkgs": [
"caelestia-cli",
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1779430452,
"narHash": "sha256-zTslhsxLqUlRTML506iougTGzyR38Fzhzn7t4KDEuuE=",
"ref": "refs/heads/master",
"rev": "4b4fca3224ab977dc515ac0bb78d00b3dfa71e00",
"revCount": 819,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"quickshell_2": {
"inputs": {
"nixpkgs": [
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1779430452,
"narHash": "sha256-zTslhsxLqUlRTML506iougTGzyR38Fzhzn7t4KDEuuE=",
"ref": "refs/heads/master",
"rev": "4b4fca3224ab977dc515ac0bb78d00b3dfa71e00",
"revCount": 819,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": { "root": {
"inputs": { "inputs": {
"awesome-wallpapers": "awesome-wallpapers", "awesome-wallpapers": "awesome-wallpapers",
"blog": "blog", "blog": "blog",
"caelestia-cli": "caelestia-cli",
"caelestia-shell": "caelestia-shell_2",
"default-creds": "default-creds", "default-creds": "default-creds",
"helium-browser": "helium-browser", "helium-browser": "helium-browser",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "hyprland": "hyprland",
"iknowyou": "iknowyou", "iknowyou": "iknowyou",
"nix-citizen": "nix-citizen",
"nix-gaming": "nix-gaming",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixarr": "nixarr", "nixarr": "nixarr",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_11",
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"notashelf-tuigreet": "notashelf-tuigreet", "notashelf-tuigreet": "notashelf-tuigreet",
"nur-anotherhadi": "nur-anotherhadi", "nur-anotherhadi": "nur-anotherhadi",
@@ -1560,7 +1614,7 @@
}, },
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_13" "nixpkgs": "nixpkgs_15"
}, },
"locked": { "locked": {
"lastModified": 1780547341, "lastModified": 1780547341,
@@ -1583,9 +1637,9 @@
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_5", "flake-parts": "flake-parts_6",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_14", "nixpkgs": "nixpkgs_16",
"nur": "nur", "nur": "nur",
"systems": "systems_6", "systems": "systems_6",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
@@ -1828,6 +1882,27 @@
} }
}, },
"treefmt-nix_4": { "treefmt-nix_4": {
"inputs": {
"nixpkgs": [
"nix-citizen",
"nixpkgs"
]
},
"locked": {
"lastModified": 1780220602,
"narHash": "sha256-eynAfOmbmxJnkp7YewvCEbShNnnYJ9gLLqkzsYtBPeM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "db947814a175b7ca6ded66e21383d938df01c227",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
},
"treefmt-nix_5": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"nixarr", "nixarr",
+12 -5
View File
@@ -16,6 +16,9 @@
notashelf-tuigreet.url = "github:NotAShelf/tuigreet"; notashelf-tuigreet.url = "github:NotAShelf/tuigreet";
helium-browser.url = "github:oxcl/nix-flake-helium-browser"; helium-browser.url = "github:oxcl/nix-flake-helium-browser";
nur-anotherhadi.url = "github:anotherhadi/nur-packages"; nur-anotherhadi.url = "github:anotherhadi/nur-packages";
nix-citizen.url = "github:LovingMelody/nix-citizen";
nix-gaming.url = "github:fufexan/nix-gaming";
nix-citizen.inputs.nix-gaming.follows = "nix-gaming";
nix-index-database = { nix-index-database = {
url = "github:nix-community/nix-index-database"; url = "github:nix-community/nix-index-database";
@@ -25,15 +28,19 @@
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
caelestia-shell = { nur = {
url = "github:caelestia-dots/shell"; url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
caelestia-cli = { zen-browser = {
url = "github:caelestia-dots/cli"; url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs"; inputs = {
home-manager.follows = "home-manager";
nixpkgs.follows = "nixpkgs";
};
}; };
# Server # Server
nixarr.url = "github:rasmus-kirk/nixarr"; nixarr.url = "github:rasmus-kirk/nixarr";
default-creds.url = "github:anotherhadi/default-creds"; default-creds.url = "github:anotherhadi/default-creds";
+10 -21
View File
@@ -6,12 +6,16 @@
}: { }: {
home.packages = (with pkgs-stable; [ home.packages = (with pkgs-stable; [
kodi # Kodi
keepassxc # Passwords
vlc # Video player vlc # Video player
obsidian # Note taking app obsidian # Note taking app
cwtch-ui # messager
ticktick # Todo app ticktick # Todo app
onlyoffice-desktopeditors # Office suite onlyoffice-desktopeditors # Office suite
librewolf # Backup browser firefox # Backup browser
tor-browser # Tor browser
# I love TUIs # I love TUIs
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT) caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
@@ -26,6 +30,9 @@
pkgs.wifitui # TUI for managing wifi pkgs.wifitui # TUI for managing wifi
pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules
blueman # Bluetooth manager (blueman-manager, blueman-adapters, blueman-sendto)
bluez # Bluetooth stack tools (bluetoothctl)
# I love CLIs # I love CLIs
httpie # Command-line HTTP client, a user-friendly cURL replacement httpie # Command-line HTTP client, a user-friendly cURL replacement
@@ -33,28 +40,10 @@
imagemagick # Image manipulation tool imagemagick # Image manipulation tool
chafa # Image to ANSI/Unicode converter and more. chafa # Image to ANSI/Unicode converter and more.
/*
Disabled
resources # Ressource monitor
textpieces # Manipulate texts
gnome-clocks # Clocks app
gnome-text-editor # Basic graphic text editor
pinta # Image editor
switcheroo # Convert images between different formats
signal-desktop # Messaging app
blanket # Listen to different sounds
gh # GitHub
gh-dash # A terminal dashboard for GitHub
figlet # Transform text into ASCII art
pkgs-nur-hadi.sheets # Terminal based spreadsheet tool
slides # A terminal-based presentation tool that allows you to create and deliver presentations directly from the command line
*/
]) ])
++ (with pkgs; [ ++ (with pkgs; [
vencord # Vencord Discord Mod vesktop # Vencord Discord Mod
tor # tor network service
]); ]);
} }
+3 -1
View File
@@ -6,8 +6,10 @@
go go
zig zig
claude-code # Claude Code
zed-editor #Zed zed-editor #Zed
vscodium # VS Code vscodium # VS Code
]) ])
++ (with pkgs-stable; [ ++ (with pkgs-stable; [
bun bun
+45
View File
@@ -0,0 +1,45 @@
{
pkgs,
...
}: {
home.packages = (with pkgs; [
# ─────────────────────────────────────────────────────────────
# Game launchers
# ─────────────────────────────────────────────────────────────
lutris # Universal launcher for Wine, emulators, and native games
#prismlauncher # Minecraft launcher with Fabric/Forge/Quilt support
# ─────────────────────────────────────────────────────────────
# Performance & overlays
# ─────────────────────────────────────────────────────────────
mangohud # FPS and hardware monitoring overlay
goverlay # GUI for MangoHud and vkBasalt
gamescope # Micro-compositor for better fullscreen, scaling and frame limiting
gamemode # Requests performance optimizations while gaming
# ─────────────────────────────────────────────────────────────
# Proton & Wine
# ─────────────────────────────────────────────────────────────
protonup-qt # Install and update GE-Proton, Wine-GE, Luxtorpeda, etc.
winetricks # Install Windows runtimes into Wine prefixes
protontricks # Winetricks for Steam Proton prefixes
wineWow64Packages.staging # Wine (32/64-bit) with staging patches
# ─────────────────────────────────────────────────────────────
# Vulkan layers
# ─────────────────────────────────────────────────────────────
vkbasalt # Vulkan post-processing (CAS sharpening, FXAA, etc.)
# ─────────────────────────────────────────────────────────────
# Runner layers
# ─────────────────────────────────────────────────────────────
steam-run # Run generic Linux binaries inside Steam's runtime
appimage-run # Execute AppImages on NixOS
]);
}
+11
View File
@@ -0,0 +1,11 @@
{
pkgs,
...
}: {
home.packages = (with pkgs; [
ardour # DAW
guitarix # Digital AMP
carla # Hosting of VSTs
hydrogen# Drums
]);
}
+110
View File
@@ -0,0 +1,110 @@
# Star Citizen on Nixy
This repo already includes Star Citizen support through `nix-citizen`.
Relevant files:
- `flake.nix` — declares the `nix-citizen` and `nix-gaming` inputs
- `home/programs/star-citizen/default.nix` — Home Manager module that installs the chosen Star Citizen package
- `home/programs/steam/system.nix` — Steam / gamescope / gamemode setup
- `home/programs/group/gaming-apps.nix` — extra gaming tools such as `lutris`, `mangohud`, `protonup-qt`, and `wine`
## Recommended package
For most setups, start with:
- `rsi-launcher-umu`
If you want the game package instead of just the launcher, try:
- `star-citizen-umu`
The `*-umu` variants are usually the safest choice on Nix-based gaming setups because they are designed around UMU/Proton style runtime handling.
## How to enable it
Your laptop and home-pc profiles already import the module:
- `hosts/laptop/home.nix`
- `hosts/home-pc/home.nix`
So you only need to turn it on in the relevant Home Manager config.
Add or update:
```nix
programs.star-citizen = {
enable = true;
package = "rsi-launcher-umu";
};
```
If you want the packaged game instead of the launcher, use:
```nix
programs.star-citizen = {
enable = true;
package = "star-citizen-umu";
};
```
## Rebuild
This flake exposes NixOS host outputs, so apply the change with your normal host rebuild command from the repo root:
```bash
sudo nixos-rebuild switch --flake .#thinkpad
```
or:
```bash
sudo nixos-rebuild switch --flake .#home-pc
```
If youre building from one of the host directories directly, use the host-specific `nixos-rebuild` flow you already use in this repo.
## First launch checklist
Before launching the game, make sure:
- `Steam` module is enabled
- `gamescope` and `gamemode` are available
- `protonup-qt` is installed so you can manage `GE-Proton` / `Wine-GE`
- you have enough disk space for the launcher and game files
- your GPU drivers are set up properly
Useful tools already included in this repo:
- `lutris`
- `mangohud`
- `goverlay`
- `gamescope`
- `gamemode`
- `protonup-qt`
- `winetricks`
- `protontricks`
## Notes
- Star Citizen is a Windows game, so the launcher/game still downloads its own data after installation.
- If the launcher starts but the game fails to launch, try switching the package to another `nix-citizen` option from `home/programs/star-citizen/default.nix`.
- If you want overlay/performance debugging, launch the game with `MANGOHUD=1` or use the included `mangohud` / `goverlay` tools.
## Troubleshooting
### Launcher doesnt appear
- Rebuild the Home Manager profile
- Check that `programs.star-citizen.enable = true;`
- Confirm the module is imported in the host profile you are using
### Launcher opens but game fails
- Try `rsi-launcher-umu` or `star-citizen-umu`
- Verify `protonup-qt` has a current `GE-Proton`
- Make sure `gamescope` / `gamemode` are enabled in your gaming setup
### Need a clean reset
If you want to switch package variants, change `programs.star-citizen.package` and rebuild again. The package selection is the only thing the module installs.
+35
View File
@@ -0,0 +1,35 @@
{
config,
inputs,
lib,
pkgs,
...
}:
let
cfg = config.programs.star-citizen;
system = pkgs.stdenv.hostPlatform.system;
in {
options.programs.star-citizen = {
enable = lib.mkEnableOption "Star Citizen via nix-citizen";
package = lib.mkOption {
type = lib.types.enum [
"rsi-launcher"
"rsi-launcher-git"
"rsi-launcher-umu"
"star-citizen"
"star-citizen-git"
"star-citizen-umu"
"lug-helper"
];
default = "rsi-launcher";
description = "Package from nix-citizen to install when Star Citizen is enabled.";
};
};
config = lib.mkIf cfg.enable {
home.packages = [
inputs.nix-citizen.packages.${system}.${cfg.package}
];
};
}
+1 -20
View File
@@ -1,27 +1,8 @@
{ {
pkgs,
... ...
}: { }: {
home.packages = with pkgs; [
steam
protonup-ng
];
xdg.desktopEntries = {
Steam = {
name = "Steam";
exec = "${pkgs.steam}/bin/steam";
icon = "steam";
type = "Application";
categories = [
"Game"
"Network"
];
terminal = false;
};
};
home.sessionVariables = { home.sessionVariables = {
# Better Steam scaling on HiDPI displays
STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
}; };
} }
+24 -10
View File
@@ -1,13 +1,27 @@
{ ... }: { {
# Steam runtime tweaks (user-session level, not NixOS system config) pkgs,
...
}: {
home.sessionVariables = { hardware.graphics = {
# Improves scaling consistency on HiDPI / Wayland setups enable = true;
STEAM_FORCE_DESKTOPUI_SCALING = "1.25"; enable32Bit = true;
# Optional Proton-related behavior toggles (safe defaults)
PROTON_ENABLE_NVAPI = "1";
PROTON_NO_ESYNC = "0";
PROTON_NO_FSYNC = "0";
}; };
programs.steam = {
enable = true;
gamescopeSession.enable = true;
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
};
programs.gamescope.enable = true;
programs.gamemode.enable = true;
hardware.steam-hardware.enable = true;
} }
+82 -46
View File
@@ -1,62 +1,98 @@
{ {
inputs,
pkgs, pkgs,
lib,
config,
... ...
}: }: {
{ imports = [inputs.zen-browser.homeModules.beta];
programs.zen-browser = { programs.zen-browser = {
enable = true; enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DontCheckDefaultBrowser = true;
DNSOverHTTPS = {
Enabled = true;
ProviderURL = "https://dns.quad9.net/dns-query";
Locked = true;
};
};
profiles.default = { profiles.default = {
extensions = {
packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
video-downloadhelper
multi-account-containers
noscript
];
};
search = { search = {
force = true; force = true;
default = "Startpage"; default = "startpage";
}; engines = {
nixos-options = {
name = "NixOS Options";
urls = [{template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";}];
definedAliases = ["@no"];
};
nixos-packages = {
name = "NixOS Packages";
urls = [{template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";}];
definedAliases = ["@np"];
};
nixos-wiki = {
name = "NixOS Wiki";
urls = [{template = "https://wiki.nixos.org/w/index.php?search={searchTerms}";}];
definedAliases = ["@nw"];
};
startpage = {
name = "Startpage";
urls = [
{
method = "POST";
template = "https://www.startpage.com/sp/search";
params = [
{
name = "query";
value = "{searchTerms}";
}
{
name = "prfe";
value = "26b77e0ef13273610e32813c3233d92429c5426b277dcad41b2f2d38f94a44e839aa1abc7cf4223afd5872a185d5c9976949b9b1f0f83bbde3f9d4ac610d8fffa03947db6336c7a249ef62c2824adfd1";
}
];
}
{
type = "application/x-suggestions+json";
template = "https://www.startpage.com/osuggestions?query={searchTerms}";
}
];
definedAliases = ["@sp"];
};
};
};
settings = { settings = {
"browser.startup.homepage" = "https://duckduckgo.com"; "browser.download.useDownloadDir" = false;
"browser.ml.linkPreview.enabled" = true;
"browser.ml.linkPreview.optin" = true;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = true;
"browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = true;
"browser.search.suggest.enabled" = true;
"browser.search.suggest.enabled.private" = true;
"browser.translations.neverTranslateLanguages" = "de";
"dom.security.https_only_mode" = true;
"network.trr.mode" = 3;
"network.trr.uri" = "https://mozilla.cloudflare-dns.com/dns-query";
"privacy.history.custom" = false;
"privacy.trackingprotection.allow_list.convenience.enabled" = true;
"zen.tabs.select-recently-used-on-close" = false;
"zen.tabs.show-newtab-vertical" = false;
"zen.view.show-newtab-button-top" = false;
"zen.workspaces.continue-where-left-off" = true;
"browser.newtabpage.enabled" = false; "browser.contentblocking.category" = "strict";
"network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation" = true;
"privacy.resistFingerprinting" = true; "network.lna.blocking" = true;
"privacy.annotate_channels.strict_list.enabled" = true;
"privacy.bounceTrackingProtection.mode" = 1;
"privacy.fingerprintingProtection" = true;
"privacy.query_stripping.enabled" = true;
"privacy.query_stripping.enabled.pbmode" = true;
"privacy.trackingprotection.consentmanager.skip.pbmode.enabled" = false;
"privacy.trackingprotection.emailtracking.enabled" = true;
"privacy.trackingprotection.enabled" = true; "privacy.trackingprotection.enabled" = true;
"privacy.trackingprotection.socialtracking.enabled" = true;
"geo.enabled" = false;
"dom.webnotifications.enabled" = false;
"signon.rememberSignons" = false;
"toolkit.telemetry.enabled" = false;
}; };
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
firefox-multi-account-containers
noscript
];
}; };
}; };
home.sessionVariables.BROWSER = "zen";
} }
+62
View File
@@ -0,0 +1,62 @@
{
pkgs,
lib,
config,
...
}:
{
programs.zen-browser = {
enable = true;
policies = {
DisableTelemetry = true;
DisableFirefoxStudies = true;
DisablePocket = true;
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
AutofillAddressEnabled = false;
AutofillCreditCardEnabled = false;
DontCheckDefaultBrowser = true;
DNSOverHTTPS = {
Enabled = true;
ProviderURL = "https://dns.quad9.net/dns-query";
Locked = true;
};
};
profiles.default = {
search = {
force = true;
default = "Startpage";
};
settings = {
"browser.startup.homepage" = "https://duckduckgo.com";
"browser.newtabpage.enabled" = false;
"privacy.resistFingerprinting" = true;
"privacy.trackingprotection.enabled" = true;
"geo.enabled" = false;
"dom.webnotifications.enabled" = false;
"signon.rememberSignons" = false;
"toolkit.telemetry.enabled" = false;
};
extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
firefox-multi-account-containers
noscript
];
};
};
home.sessionVariables.BROWSER = "zen";
}
+243 -86
View File
@@ -2,29 +2,226 @@
pkgs, pkgs,
lib, lib,
config, config,
pkgs-nur-hadi,
... ...
}: let }:
let
colors = config.lib.stylix.colors; colors = config.lib.stylix.colors;
mkMenu = menu: let mkMenu = menu:
configFile = pkgs.writeText "config.yaml" ( let
lib.generators.toYAML {} { configFile = pkgs.writeText "config.yaml" (
anchor = "bottom-right"; lib.generators.toYAML { } {
border = "#${colors.base0D}80"; anchor = "bottom-right";
background = "#${colors.base01}EE"; border = "#${colors.base0D}80";
color = "#${colors.base05}"; background = "#${colors.base01}EE";
margin_right = 15; color = "#${colors.base05}";
margin_bottom = 15; margin_right = 15;
rows_per_column = 5; margin_bottom = 15;
rows_per_column = 5;
inherit menu; inherit menu;
} }
); );
in in
pkgs.writeShellScriptBin "menu" '' pkgs.writeShellScriptBin "menu" ''
exec ${lib.getExe pkgs.wlr-which-key} ${configFile} exec ${lib.getExe pkgs.wlr-which-key} ${configFile}
''; '';
in {
gui = exe: "uwsm app -- ${exe}";
term = exe: "uwsm app -- ${pkgs.ghostty}/bin/ghostty -e ${exe}";
appsMenu = mkMenu [
{
key = "f";
desc = "Firefox";
cmd = gui "${pkgs.firefox}/bin/firefox";
}
{
key = "o";
desc = "Obsidian";
cmd = gui "${pkgs.obsidian}/bin/obsidian";
}
{
key = "t";
desc = "TickTick";
cmd = gui "${pkgs.ticktick}/bin/ticktick";
}
{
key = "n";
desc = "OnlyOffice";
cmd = gui "${pkgs.onlyoffice-desktopeditors}/bin/onlyoffice-desktopeditors";
}
{
key = "v";
desc = "Vesktop";
cmd = gui "${pkgs.vesktop}/bin/vesktop";
}
{
key = "l";
desc = "VLC";
cmd = gui "${pkgs.vlc}/bin/vlc";
}
];
devMenu = mkMenu [
{
key = "z";
desc = "Zed";
cmd = gui "${pkgs.zed-editor}/bin/zed";
}
{
key = "c";
desc = "VSCodium";
cmd = gui "${pkgs.vscodium}/bin/codium";
}
{
key = "g";
desc = "Ghostty";
cmd = gui "${pkgs.ghostty}/bin/ghostty";
}
{
key = "f";
desc = "Fastfetch";
cmd = term "${pkgs.fastfetch}/bin/fastfetch";
}
{
key = "d";
desc = "Dysk";
cmd = term "${pkgs.dysk}/bin/dysk";
}
{
key = "w";
desc = "Wikiman";
cmd = term "${pkgs.wikiman}/bin/wikiman";
}
{
key = "s";
desc = "STTR";
cmd = term "${pkgs.sttr}/bin/sttr";
}
];
gamingMenu = mkMenu [
{
key = "l";
desc = "Lutris";
cmd = gui "${pkgs.lutris}/bin/lutris";
}
{
key = "p";
desc = "ProtonUp-Qt";
cmd = gui "${pkgs.protonup-qt}/bin/protonup-qt";
}
{
key = "g";
desc = "GOverlay";
cmd = gui "${pkgs.goverlay}/bin/goverlay";
}
];
utilityMenu = mkMenu [
{
key = "B";
desc = "Blueman";
cmd = gui "${pkgs.blueman}/bin/blueman-manager";
}
{
key = "x";
desc = "Bluetoothctl";
cmd = term "${pkgs.bluez}/bin/bluetoothctl";
}
{
key = "w";
desc = "WiFi TUI";
cmd = term "${pkgs.wifitui}/bin/wifitui";
}
{
key = "m";
desc = "Wiremix";
cmd = term "${pkgs.wiremix}/bin/wiremix";
}
{
key = "u";
desc = "USBGuard TUI";
cmd = term "${pkgs-nur-hadi.usbguard-tui}/bin/usbguard-tui";
}
{
key = "c";
desc = "Caligula";
cmd = term "${pkgs.caligula}/bin/caligula";
}
{
key = "h";
desc = "Browsh";
cmd = term "${pkgs.browsh}/bin/browsh";
}
{
key = "p";
desc = "Peaclock";
cmd = term "${pkgs.peaclock}/bin/peaclock";
}
{
key = "o";
desc = "Cbonsai";
cmd = term "${pkgs.cbonsai}/bin/cbonsai";
}
{
key = "i";
desc = "Pipes";
cmd = term "${pkgs.pipes}/bin/pipes";
}
{
key = "t";
desc = "Tealdeer";
cmd = term "${pkgs.tealdeer}/bin/tldr";
}
{
key = "s";
desc = "Hyprlock";
cmd = gui "${pkgs.hyprlock}/bin/hyprlock";
}
];
systemMenu = mkMenu [
{
key = "l";
desc = "Lock";
cmd = "hyprlock";
}
{
key = "w";
desc = "Restart Waybar";
cmd = "pkill -x waybar; waybar";
}
{
key = "r";
desc = "Restart Walker";
cmd = "systemctl --user restart walker.service";
}
{
key = "e";
desc = "Restart Elephant";
cmd = "systemctl --user restart elephant.service";
}
{
key = "s";
desc = "Suspend";
cmd = "systemctl suspend";
}
{
key = "p";
desc = "Power Off";
cmd = "systemctl poweroff";
}
{
key = "b";
desc = "Reboot";
cmd = "systemctl reboot";
}
];
in
{
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
"$mod" = "SUPER"; "$mod" = "SUPER";
"$shiftMod" = "SUPER_SHIFT"; "$shiftMod" = "SUPER_SHIFT";
@@ -37,53 +234,28 @@ in {
+ lib.getExe (mkMenu [ + lib.getExe (mkMenu [
{ {
key = "a"; key = "a";
desc = "Proton Authenticator"; desc = "Apps";
cmd = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator"; cmd = lib.getExe appsMenu;
} }
{ {
key = "p"; key = "d";
desc = "Proton Pass"; desc = "Dev";
cmd = "${pkgs.proton-pass}/bin/proton-pass"; cmd = lib.getExe devMenu;
} }
{ {
key = "v"; key = "g";
desc = "Proton VPN"; desc = "Gaming";
cmd = "${pkgs.proton-vpn}/bin/protonvpn-app"; cmd = lib.getExe gamingMenu;
} }
{ {
key = "c"; key = "u";
desc = "Proton Calendar"; desc = "Utilities";
cmd = "${config.programs.librewolf.package}/bin/helium 'https://calendar.proton.me/'"; cmd = lib.getExe utilityMenu;
}
{
key = "m";
desc = "Proton Mail";
cmd = "${config.programs.librewolf.package}/bin/helium 'https://mail.proton.me/'";
}
{
key = "o";
desc = "Obsidian";
cmd = "${pkgs.obsidian}/bin/obsidian";
} }
{ {
key = "s"; key = "s";
desc = "Signal"; desc = "System";
cmd = "${pkgs.signal-desktop}/bin/signal-desktop"; cmd = lib.getExe systemMenu;
}
{
key = "t";
desc = "TickTick";
cmd = "${pkgs.ticktick}/bin/ticktick";
}
{
key = "b";
desc = "Helium";
cmd = "${config.programs.librewolf.package}/bin/helium";
}
{
key = "i";
desc = "Helium (Incognito)";
cmd = "${config.programs.librewolf.package}/bin/helium --incognito";
} }
]) ])
) )
@@ -91,14 +263,13 @@ in {
"$mod,B, exec, uwsm app -- ${config.programs.librewolf.package}/bin/helium" # Browser "$mod,B, exec, uwsm app -- ${config.programs.librewolf.package}/bin/helium" # Browser
# Power # Power
"$mod, X, global, caelestia:session" # Powermenu
( (
"$shiftMod, X, exec, " "$mod, X, exec, "
+ lib.getExe (mkMenu [ + lib.getExe (mkMenu [
{ {
key = "l"; key = "l";
desc = "Lock"; desc = "Lock";
cmd = "hyprctl dispatch global caelestia:lock"; cmd = "hyprlock";
} }
{ {
key = "s"; key = "s";
@@ -122,8 +293,8 @@ in {
} }
{ {
key = "c"; key = "c";
desc = "Restart caelestia"; desc = "Restart Waybar";
cmd = "hyprctl dispatch exec 'caelestia-shell kill | sleep 1 | caelestia-shell'"; cmd = "pkill -x waybar; waybar";
} }
]) ])
) )
@@ -131,10 +302,9 @@ in {
# Quick launch # Quick launch
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal) "$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
"$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar "$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar
"$shiftMod, E, exec, pkill fuzzel || caelestia emoji -p" # Emoji picker "$mod, SPACE, exec, walker" # Launcher
"$mod, SPACE, global, caelestia:launcher" # Launcher "$mod, N, exec, ${lib.getExe pkgs.grimblast} save area" # Save screenshot
"$mod, N, exec, caelestia shell drawers toggle sidebar" # Sidebar (Notifications, quick actions) "$mod, D, exec, ${lib.getExe pkgs.grimblast} copy area" # Copy screenshot
"$mod, D, exec, caelestia shell drawers toggle dashboard" # Dashboard
# Windows # Windows
"$mod,Q, killactive," # Close window "$mod,Q, killactive," # Close window
@@ -152,10 +322,9 @@ in {
"$shiftMod,L, focusmonitor, 1" # Focus next monitor "$shiftMod,L, focusmonitor, 1" # Focus next monitor
# Utilities # Utilities
"$shiftMod, SPACE, exec, caelestia shell gameMode toggle" # Toggle Focus/Game mode "$shiftMod, S, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region
"$shiftMod, S, global, caelestia:screenshotFreeze" # Capture region (freeze) ", Print, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region
", Print, global, caelestia:screenshotFreeze" # Capture region (freeze) "$shiftMod+Alt, S, exec, ${lib.getExe pkgs.grimblast} save area" # Capture region
"$shiftMod+Alt, S, global, caelestia:screenshot" # Capture region
] ]
++ (builtins.concatLists ( ++ (builtins.concatLists (
builtins.genList ( builtins.genList (
@@ -176,32 +345,20 @@ in {
bindl = [ bindl = [
# Brightness # Brightness
", XF86MonBrightnessUp, global, caelestia:brightnessUp" ", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set 5%+"
", XF86MonBrightnessDown, global, caelestia:brightnessDown" ", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%-"
# Media # Media
", XF86AudioPlay, global, caelestia:mediaToggle" ", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioPause, global, caelestia:mediaToggle" ", XF86AudioPause, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioNext, global, caelestia:mediaNext" ", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
", XF86AudioPrev, global, caelestia:mediaPrev" ", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
", XF86AudioStop, global, caelestia:mediaStop" ", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop"
# Sound # Sound
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" ", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" ", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
]; ];
bindin = [
# Launcher
"$mod, mouse:272, global, caelestia:launcherInterrupt"
"$mod, mouse:273, global, caelestia:launcherInterrupt"
"$mod, mouse:274, global, caelestia:launcherInterrupt"
"$mod, mouse:275, global, caelestia:launcherInterrupt"
"$mod, mouse:276, global, caelestia:launcherInterrupt"
"$mod, mouse:277, global, caelestia:launcherInterrupt"
"$mod, mouse_up, global, caelestia:launcherInterrupt"
"$mod, mouse_down, global, caelestia:launcherInterrupt"
];
}; };
} }
+5 -1
View File
@@ -19,6 +19,7 @@ in {
./animations.nix ./animations.nix
./bindings.nix ./bindings.nix
./polkitagent.nix ./polkitagent.nix
./hyprlock.nix
./keyboard-backlight.nix # CHANGEME: This is for omen laptop only ./keyboard-backlight.nix # CHANGEME: This is for omen laptop only
]; ];
@@ -31,6 +32,7 @@ in {
libxcb libxcb
hyprland-qtutils hyprland-qtutils
adw-gtk3 adw-gtk3
hyprlock
hyprshot hyprshot
hyprpicker hyprpicker
swappy swappy
@@ -152,7 +154,9 @@ in {
kb_options = "caps:escape"; kb_options = "caps:escape";
follow_mouse = 1; follow_mouse = 1;
sensitivity = 0.5; sensitivity = 0.0; # or whatever speed you prefer
accel_profile = "flat";
repeat_delay = 300; repeat_delay = 300;
repeat_rate = 50; repeat_rate = 50;
numlock_by_default = true; numlock_by_default = true;
+58
View File
@@ -0,0 +1,58 @@
{config, ...}: let
c = config.lib.stylix.colors;
fontSans = config.stylix.fonts.sansSerif.name;
in {
xdg.configFile."hypr/hyprlock.conf".text = ''
general {
hide_cursor = true
grace = 0
}
background {
monitor =
color = rgba(${c."base00-rgb-r"}, ${c."base00-rgb-g"}, ${c."base00-rgb-b"}, 0.90)
blur_passes = 2
blur_size = 8
noise = 0.01
}
label {
monitor =
text = cmd[update:1000] date +"%A, %d %B %Y"
color = rgba(${c."base05-rgb-r"}, ${c."base05-rgb-g"}, ${c."base05-rgb-b"}, 1.0)
font_size = 30
font_family = "${fontSans}"
position = 0, 140
halign = center
valign = center
}
label {
monitor =
text = cmd[update:1000] date +"%H:%M"
color = rgba(${c."base0D-rgb-r"}, ${c."base0D-rgb-g"}, ${c."base0D-rgb-b"}, 1.0)
font_size = 54
font_family = "${fontSans}"
position = 0, 60
halign = center
valign = center
}
input-field {
monitor =
size = 320, 52
outline_thickness = 2
outer_color = rgba(${c."base03-rgb-r"}, ${c."base03-rgb-g"}, ${c."base03-rgb-b"}, 0.60)
inner_color = rgba(${c."base01-rgb-r"}, ${c."base01-rgb-g"}, ${c."base01-rgb-b"}, 0.92)
font_color = rgba(${c."base05-rgb-r"}, ${c."base05-rgb-g"}, ${c."base05-rgb-b"}, 1.0)
fail_color = rgba(${c."base08-rgb-r"}, ${c."base08-rgb-g"}, ${c."base08-rgb-b"}, 1.0)
check_color = rgba(${c."base0B-rgb-r"}, ${c."base0B-rgb-g"}, ${c."base0B-rgb-b"}, 1.0)
dots_spacing = 0.3
dots_center = true
hide_input = false
position = 0, -20
halign = center
valign = center
}
'';
}
+42
View File
@@ -0,0 +1,42 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
walker
elephant
];
systemd.user.services.elephant = {
Unit = {
Description = "Elephant backend service";
PartOf = [ "graphical-session.target" ];
After = [ "graphical-session.target" ];
};
Service = {
ExecStart = "${pkgs.elephant}/bin/elephant";
Restart = "on-failure";
RestartSec = 5;
};
};
systemd.user.services.walker = {
Unit = {
Description = "Walker application service";
PartOf = [ "graphical-session.target" ];
After = [ "elephant.service" "graphical-session.target" ];
Requires = [ "elephant.service" ];
};
Service = {
ExecStart = "${pkgs.walker}/bin/walker --gapplication-service";
Restart = "on-failure";
RestartSec = 5;
};
};
wayland.windowManager.hyprland.settings.exec-once = [
"dbus-update-activation-environment --systemd --all"
"systemctl --user start elephant.service walker.service"
];
}
+277
View File
@@ -0,0 +1,277 @@
{ pkgs, config, lib, ... }:
let
colors = config.lib.stylix.colors;
rgb = base:
"${colors."${base}-rgb-r"}, ${colors."${base}-rgb-g"}, ${colors."${base}-rgb-b"}";
terminal = cmd: "uwsm app -- ${lib.getExe pkgs.ghostty} -e ${cmd}";
radius = toString config.theme.bar-rounding;
in
{
home.packages = with pkgs; [
waybar
];
xdg.configFile."waybar/config".text = builtins.toJSON {
layer = "top";
position = "top";
height = 38;
spacing = 10;
"margin-top" = 8;
"margin-left" = 8;
"margin-right" = 8;
"gtk-layer-shell" = true;
"reload_style_on_change" = true;
"modules-left" = [
"hyprland/workspaces"
"tray"
];
"modules-center" = [
"hyprland/window"
];
"modules-right" = [
"custom/bluetooth"
"network"
"battery"
"pulseaudio"
"clock"
];
"hyprland/workspaces" = {
format = "{name}";
"disable-scroll" = true;
"all-outputs" = true;
"on-click" = "activate";
"persistent-workspaces" = {
"*" = 5;
};
};
"hyprland/window" = {
format = "{}";
"max-length" = 70;
"separate-outputs" = true;
};
tray = {
spacing = 8;
"icon-size" = 20;
};
network = {
interval = 2;
"format-wifi" = "󰖩 {signalStrength}%";
"format-ethernet" = "󰈀 {ifname}";
"format-linked" = "󰈀 {ifname}";
"format-disconnected" = "󰖪";
"tooltip-format" = "{essid}\n{ipaddr}";
"on-click" = terminal "wifitui";
};
battery = {
interval = 30;
states = {
warning = 30;
critical = 15;
};
format = "󰁹 {capacity}%";
"format-charging" = "󰂄 {capacity}%";
"format-plugged" = "󰂄 {capacity}%";
"format-full" = "󰁹 {capacity}%";
"tooltip-format" = "Battery {capacity}%\n{timeTo} remaining";
};
"custom/bluetooth" = {
exec = "echo 󰂯";
interval = 3600;
tooltip = false;
"on-click" = "uwsm app -- blueman-manager";
};
pulseaudio = {
"scroll-step" = 5;
format = "󰕾 {volume}%";
"format-muted" = "󰖁";
tooltip = true;
"on-click" = terminal "wiremix";
};
clock = {
interval = 1;
format = "󰥔 {:%H:%M}";
"tooltip-format" = "<big>{:%A, %d %B %Y}</big>";
};
};
xdg.configFile."waybar/style.css".text = ''
* {
border: none;
min-height: 0;
font-family:
"${config.stylix.fonts.sansSerif.name}",
"${config.stylix.fonts.monospace.name}",
sans-serif;
font-size: 13px;
}
window#waybar {
background: transparent;
color: #${colors.base05};
}
.modules-left,
.modules-center,
.modules-right {
margin: 6px 0;
}
#workspaces,
#window,
#tray,
#custom-bluetooth,
#network,
#battery,
#pulseaudio,
#clock {
background: rgba(${rgb "base01"}, 0.76);
border: 1px solid rgba(${rgb "base03"}, 0.45);
border-radius: ${radius}px;
padding: 0 14px;
margin: 6px 4px;
transition:
background-color 180ms ease,
border-color 180ms ease,
color 180ms ease;
}
#workspaces {
padding: 4px;
}
#workspaces button {
background: transparent;
color: #${colors.base04};
padding: 0 12px;
margin: 0 2px;
border-radius: ${radius}px;
transition: all 180ms ease;
}
#workspaces button:hover {
background: rgba(${rgb "base02"}, 0.70);
color: #${colors.base05};
}
#workspaces button.active {
background: #${colors.base0D};
color: #${colors.base00};
}
#workspaces button.urgent {
background: #${colors.base08};
color: #${colors.base00};
}
#window {
min-width: 260px;
padding-left: 18px;
padding-right: 18px;
color: #${colors.base05};
}
#window.empty {
background: transparent;
border: none;
}
#tray {
padding-left: 10px;
padding-right: 10px;
}
#custom-bluetooth {
color: #${colors.base0E};
}
#network {
color: #${colors.base0C};
}
#network.disconnected {
color: #${colors.base08};
}
#battery {
color: #${colors.base0A};
}
#battery.charging,
#battery.plugged {
color: #${colors.base0B};
}
#battery.warning {
color: #${colors.base0A};
}
#battery.critical {
color: #${colors.base08};
}
#pulseaudio {
color: #${colors.base0B};
}
#pulseaudio.muted {
color: #${colors.base08};
}
#clock {
color: #${colors.base0D};
font-weight: 600;
}
tooltip {
background: rgba(${rgb "base00"}, 0.90);
border: 1px solid rgba(${rgb "base03"}, 0.70);
border-radius: ${radius}px;
}
tooltip label {
color: #${colors.base05};
}
'';
wayland.windowManager.hyprland.settings = {
exec-once = [
"waybar"
];
};
}
+11 -1
View File
@@ -1,7 +1,10 @@
{config, ...}: { {config, ...}: {
imports = [ imports = [
# Mostly system related configuration # ─────────────────────────────────────────────────────────────
# System configuration
# ─────────────────────────────────────────────────────────────
../../nixos/audio.nix ../../nixos/audio.nix
../../nixos/docker.nix
../../nixos/bluetooth.nix ../../nixos/bluetooth.nix
../../nixos/fonts.nix ../../nixos/fonts.nix
../../nixos/home-manager.nix ../../nixos/home-manager.nix
@@ -13,8 +16,14 @@
../../nixos/utils.nix ../../nixos/utils.nix
../../nixos/hyprland.nix ../../nixos/hyprland.nix
# ─────────────────────────────────────────────────────────────
# Graphics Card
# ─────────────────────────────────────────────────────────────
../../nixos/amd-graphics.nix ../../nixos/amd-graphics.nix
# ─────────────────────────────────────────────────────────────
# System integration for Steam
# ─────────────────────────────────────────────────────────────
../../nixos/steam.nix ../../nixos/steam.nix
# You should let those lines as is # You should let those lines as is
@@ -22,6 +31,7 @@
./variables.nix ./variables.nix
]; ];
programs.nix-ld.enable = true; #Dynamic Linking
home-manager.users."${config.var.username}" = import ./home.nix; home-manager.users."${config.var.username}" = import ./home.nix;
services.flatpak.enable = true; services.flatpak.enable = true;
# Don't touch this # Don't touch this
+21 -2
View File
@@ -3,16 +3,35 @@
nixpkgs, nixpkgs,
... ...
}: }:
nixpkgs.lib.nixosSystem { nixpkgs.lib.nixosSystem {
modules = [ modules = [
{ {
nixpkgs.overlays = []; nixpkgs.overlays = [];
_module.args = {inherit inputs;}; _module.args = {
inherit inputs;
};
} }
({ config, pkgs, lib, ... }: {
# ─────────────────────────────────────────────────────────────
# AMD Microcode
# ─────────────────────────────────────────────────────────────
hardware.cpu.amd.updateMicrocode = true;
# ─────────────────────────────────────────────────────────────
# Hardware accelaration
# ─────────────────────────────────────────────────────────────
hardware.graphics = {
enable = true;
enable32Bit = true;
};
})
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.default inputs.nix-index-database.nixosModules.default
inputs.helium-browser.nixosModules.default
./configuration.nix ./configuration.nix
]; ];
} }
+37 -32
View File
@@ -1,45 +1,50 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
config, imports =
lib, [ (modulesPath + "/installer/scan/not-detected.nix")
pkgs, ];
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
"xhci_pci" boot.initrd.kernelModules = [ ];
"ahci" boot.kernelModules = [ "kvm-amd" ];
"nvme" boot.extraModulePackages = [ ];
"usb_storage"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/5dbf85d3-d236-4af8-b489-d6066bfe1eb7"; { device = "/dev/disk/by-uuid/4eb8dac5-6a57-4cfd-a5f7-e0a74e72d9db";
fsType = "btrfs";
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/4eb8dac5-6a57-4cfd-a5f7-e0a74e72d9db";
fsType = "btrfs";
options = [ "subvol=home" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/4eb8dac5-6a57-4cfd-a5f7-e0a74e72d9db";
fsType = "btrfs";
options = [ "subvol=nix" ];
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/E823-261A";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/mnt/hdd" = {
device = "/dev/disk/by-uuid/8b6e4527-2ea7-4f08-9f86-12a766e39313";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { swapDevices =
device = "/dev/disk/by-uuid/043E-1755"; [ { device = "/dev/disk/by-uuid/d0243bc0-10fb-4fa6-9933-945eb2965385"; }
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
]; ];
};
swapDevices = [];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
} }
+22 -4
View File
@@ -1,6 +1,8 @@
{config, ...}: { {config, ...}: {
imports = [ imports = [
# ─────────────────────────────────────────────────────────────
# Programs # Programs
# ─────────────────────────────────────────────────────────────
../../home/programs/ghostty ../../home/programs/ghostty
../../home/programs/nvf ../../home/programs/nvf
../../home/programs/shell ../../home/programs/shell
@@ -12,21 +14,33 @@
../../home/programs/nix-utils ../../home/programs/nix-utils
../../home/programs/spotatui ../../home/programs/spotatui
../../home/programs/yazi ../../home/programs/yazi
../../home/programs/steam
# ─────────────────────────────────────────────────────────────
# Gaming
# ─────────────────────────────────────────────────────────────
../../home/programs/steam
../../home/programs/star-citizen
# ─────────────────────────────────────────────────────────────
# Groups
# ─────────────────────────────────────────────────────────────
../../home/programs/group/basic-apps.nix ../../home/programs/group/basic-apps.nix
../../home/programs/group/dev.nix ../../home/programs/group/dev.nix
../../home/programs/group/misc.nix ../../home/programs/group/misc.nix
../../home/programs/group/gaming-apps.nix
../../home/programs/group/music-apps.nix
# System (Desktop environment like stuff) # ─────────────────────────────────────────────────────────────
# System
# ─────────────────────────────────────────────────────────────
../../home/system/hyprland ../../home/system/hyprland
../../home/system/caelestia-shell ../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper ../../home/system/hyprpaper
../../home/system/mime ../../home/system/mime
../../home/system/udiskie ../../home/system/udiskie
./variables.nix # Mostly user-specific configuration ./variables.nix # Mostly user-specific configuration
#./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
]; ];
home = { home = {
@@ -47,6 +61,10 @@
programs = { programs = {
home-manager.enable = true; home-manager.enable = true;
star-citizen = {
enable = true;
package = "rsi-launcher-umu";
};
nixy = { nixy = {
enable = true; enable = true;
configDirectory = config.var.configDirectory; configDirectory = config.var.configDirectory;
+2 -2
View File
@@ -16,8 +16,8 @@
keyboardLayout = "de"; keyboardLayout = "de";
timeZone = "Europe/Berlin"; timeZone = "Europe/Berlin";
defaultLocale = "de_DE.UTF-8"; defaultLocale = "en_US.UTF-8";
extraLocale = "en_EN.UTF-8"; extraLocale = "de_DE.UTF-8";
git = { git = {
username = "kptltd00m"; username = "kptltd00m";
+28 -24
View File
@@ -1,29 +1,33 @@
{ config, ... }: { config, ... }: {
imports = [
# ─────────────────────────────────────────────────────────────
# System configuration
# ─────────────────────────────────────────────────────────────
../../nixos/audio.nix
../../nixos/bluetooth.nix
../../nixos/fonts.nix
../../nixos/home-manager.nix
../../nixos/nix.nix
../../nixos/systemd-boot.nix
../../nixos/tuigreet.nix
../../nixos/users.nix
../../nixos/utils.nix
../../nixos/hyprland.nix
{ # ─────────────────────────────────────────────────────────────
imports = [ # System integration for Steam
# System configuration # ─────────────────────────────────────────────────────────────
../../nixos/audio.nix ../../nixos/steam.nix
../../nixos/bluetooth.nix
../../nixos/fonts.nix
../../nixos/home-manager.nix
../../nixos/nix.nix
../../nixos/systemd-boot.nix
../../nixos/tuigreet.nix
../../nixos/users.nix
../../nixos/utils.nix
../../nixos/hyprland.nix
../../nixos/steam.nix # You should let those lines as is
./hardware-configuration.nix
./variables.nix
# Machine-specific files ];
./hardware-configuration.nix
./variables.nix
]; programs.nix-ld.enable = true; #Dynamic Linking
home-manager.users."${config.var.username}" = import ./home.nix;
home-manager.users."${config.var.username}" = import ./home.nix; services.flatpak.enable = true;
services.flatpak.enable = true; # Don't touch this
system.stateVersion = "24.05";
system.stateVersion = "24.05";
} }
+12 -5
View File
@@ -14,21 +14,29 @@ nixpkgs.lib.nixosSystem {
} }
({ config, pkgs, lib, ... }: { ({ config, pkgs, lib, ... }: {
# Intel microcode # ─────────────────────────────────────────────────────────────
# Intel Microcode
# ─────────────────────────────────────────────────────────────
hardware.cpu.intel.updateMicrocode = true; hardware.cpu.intel.updateMicrocode = true;
# Graphics support # ─────────────────────────────────────────────────────────────
# Hardware accelaration
# ─────────────────────────────────────────────────────────────
hardware.graphics = { hardware.graphics = {
enable = true; enable = true;
enable32Bit = true; enable32Bit = true;
}; };
# Power management # ─────────────────────────────────────────────────────────────
# Power management
# ─────────────────────────────────────────────────────────────
powerManagement.cpuFreqGovernor = "powersave"; powerManagement.cpuFreqGovernor = "powersave";
services.tlp.enable = true; services.tlp.enable = true;
services.power-profiles-daemon.enable = false; services.power-profiles-daemon.enable = false;
# Kernel modules commonly needed on ThinkPads # ─────────────────────────────────────────────────────────────
# Kernel modules commonly needed on ThinkPads
# ─────────────────────────────────────────────────────────────
boot.kernelModules = [ boot.kernelModules = [
"i915" "i915"
"snd_hda_intel" "snd_hda_intel"
@@ -39,7 +47,6 @@ nixpkgs.lib.nixosSystem {
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.default inputs.nix-index-database.nixosModules.default
inputs.helium-browser.nixosModules.default
./configuration.nix ./configuration.nix
]; ];
+16 -2
View File
@@ -1,6 +1,8 @@
{config, ...}: { {config, ...}: {
imports = [ imports = [
# ─────────────────────────────────────────────────────────────
# Programs # Programs
# ─────────────────────────────────────────────────────────────
../../home/programs/ghostty ../../home/programs/ghostty
../../home/programs/nvf ../../home/programs/nvf
../../home/programs/shell ../../home/programs/shell
@@ -12,15 +14,27 @@
../../home/programs/nix-utils ../../home/programs/nix-utils
../../home/programs/spotatui ../../home/programs/spotatui
../../home/programs/yazi ../../home/programs/yazi
../../home/programs/zen
# ─────────────────────────────────────────────────────────────
# Gaming
# ─────────────────────────────────────────────────────────────
../../home/programs/steam ../../home/programs/steam
# ─────────────────────────────────────────────────────────────
# Groups
# ─────────────────────────────────────────────────────────────
../../home/programs/group/basic-apps.nix ../../home/programs/group/basic-apps.nix
../../home/programs/group/dev.nix ../../home/programs/group/dev.nix
../../home/programs/group/misc.nix ../../home/programs/group/misc.nix
../../home/programs/group/gaming-apps.nix
# System (Desktop environment like stuff) # ─────────────────────────────────────────────────────────────
# System
# ─────────────────────────────────────────────────────────────
../../home/system/hyprland ../../home/system/hyprland
../../home/system/caelestia-shell ../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper ../../home/system/hyprpaper
../../home/system/mime ../../home/system/mime
../../home/system/udiskie ../../home/system/udiskie
+2 -2
View File
@@ -16,8 +16,8 @@
keyboardLayout = "de"; keyboardLayout = "de";
timeZone = "Europe/Berlin"; timeZone = "Europe/Berlin";
defaultLocale = "de_DE.UTF-8"; defaultLocale = "en_US.UTF-8";
extraLocale = "en_US.UTF-8"; extraLocale = "de_DE.UTF-8";
git = { git = {
username = "kptltd00m"; username = "kptltd00m";
+2 -1
View File
@@ -22,7 +22,8 @@
# System (Desktop environment like stuff) # System (Desktop environment like stuff)
../../home/system/hyprland ../../home/system/hyprland
../../home/system/caelestia-shell ../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper ../../home/system/hyprpaper
../../home/system/mime ../../home/system/mime
../../home/system/udiskie ../../home/system/udiskie
+8 -3
View File
@@ -22,9 +22,12 @@ in {
]; ];
} }
]; ];
nixpkgs.config = { nixpkgs = {
allowUnfree = true; config = {
allowBroken = false; allowUnfree = true;
allowBroken = false;
};
overlays = [inputs.nur.overlays.default];
}; };
nix = { nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"]; nixPath = ["nixpkgs=${inputs.nixpkgs}"];
@@ -44,11 +47,13 @@ in {
"https://cache.nixos.org?priority=10" "https://cache.nixos.org?priority=10"
"https://hyprland.cachix.org" "https://hyprland.cachix.org"
"https://nix-citizen.cachix.org"
"https://nix-community.cachix.org" "https://nix-community.cachix.org"
"https://numtide.cachix.org" "https://numtide.cachix.org"
]; ];
trusted-public-keys = [ trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-citizen.cachix.org-1:lPMkWc2X8XD4/7YPEEwXKKBg+SVbYTVrAaLA2wQTKCo="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE=" "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
]; ];
+2
View File
@@ -16,6 +16,8 @@ in {
extraGroups = [ extraGroups = [
"networkmanager" "networkmanager"
"wheel" "wheel"
"video"
"render"
]; ];
}; };
}; };
+2 -2
View File
@@ -75,8 +75,8 @@
polarity = "dark"; polarity = "dark";
image = pkgs.fetchurl { image = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/black-moutains-and-a-city.png"; url = "https://upload.wikimedia.org/wikipedia/commons/1/12/Peter_Paul_Rubens_-_Fall_of_the_damned.jpg";
sha256 = "sha256-RTTA3Lf+hnPpo9hwS075kbnIouz12ul2GKO3EIgP6AU="; sha256 = "sha256-m8ii0Vo8FrUJRPrWfFvF3ojTSshGTVbIU1V8ptis4aQ=";
}; };
}; };
} }