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
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
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)
- Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
- Write your changes (new theme, bug fixes, issues fix, ...).
- Create a Pull Request against the main branch of Nixy.
> [!TIP]
> To update the README, change the `./.github/assets/README_template.md`
> [!IMPORTANT]
> Don't push your host's folder
# Contributing to Nixy
Everybody is invited and welcome to contribute to Nixy. There is a lot to do... Check the issues!
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)
- Fork Nixy [git repository](https://github.com/anotherhadi/nixy).
- Write your changes (new theme, bug fixes, issues fix, ...).
- Create a Pull Request against the main branch of Nixy.
> [!TIP]
> To update the README, change the `./.github/assets/README_template.md`
> [!IMPORTANT]
> Don't push your host's folder
+17 -17
View File
@@ -1,17 +1,17 @@
# Themes
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.
## Create your theme
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.
## Gallery
### Rose-pine
![Home](../.github/assets/rose-pine/home.png)
![Flake & Spotify](../.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](../.github/assets/rose-pine/browser-and-notifications.png)
# Themes
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.
## Create your theme
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.
## Gallery
### Rose-pine
![Home](../.github/assets/rose-pine/home.png)
![Flake & Spotify](../.github/assets/rose-pine/flake-spotify.png)
![Browser and notification center](../.github/assets/rose-pine/browser-and-notifications.png)
Generated
+258 -183
View File
@@ -213,98 +213,6 @@
"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": {
"locked": {
"lastModified": 1779130139,
@@ -372,6 +280,38 @@
}
},
"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,
"locked": {
"lastModified": 1777699697,
@@ -442,6 +382,24 @@
}
},
"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": {
"nixpkgs-lib": [
"nvf",
@@ -462,7 +420,7 @@
"type": "github"
}
},
"flake-parts_5": {
"flake-parts_6": {
"inputs": {
"nixpkgs-lib": [
"stylix",
@@ -499,6 +457,32 @@
"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": {
"inputs": {
"nixpkgs": [
@@ -521,6 +505,28 @@
"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": {
"flake": false,
"locked": {
@@ -999,6 +1005,50 @@
"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": {
"inputs": {
"nixpkgs": [
@@ -1021,8 +1071,8 @@
},
"nixarr": {
"inputs": {
"nixpkgs": "nixpkgs_7",
"treefmt-nix": "treefmt-nix_4",
"nixpkgs": "nixpkgs_9",
"treefmt-nix": "treefmt-nix_5",
"vpnconfinement": "vpnconfinement",
"website-builder": "website-builder"
},
@@ -1042,7 +1092,7 @@
},
"nixos-hardware": {
"inputs": {
"nixpkgs": "nixpkgs_8"
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1780310866,
@@ -1120,6 +1170,21 @@
"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": {
"locked": {
"lastModified": 1779796641,
@@ -1137,6 +1202,35 @@
}
},
"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": {
"lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
@@ -1152,7 +1246,7 @@
"type": "github"
}
},
"nixpkgs_11": {
"nixpkgs_13": {
"locked": {
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
@@ -1168,7 +1262,7 @@
"type": "github"
}
},
"nixpkgs_12": {
"nixpkgs_14": {
"locked": {
"lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
@@ -1184,7 +1278,7 @@
"type": "github"
}
},
"nixpkgs_13": {
"nixpkgs_15": {
"locked": {
"lastModified": 1775888245,
"narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=",
@@ -1200,7 +1294,7 @@
"type": "github"
}
},
"nixpkgs_14": {
"nixpkgs_16": {
"locked": {
"lastModified": 1780243769,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=",
@@ -1297,6 +1391,38 @@
}
},
"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": {
"lastModified": 1775595990,
"narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=",
@@ -1312,39 +1438,10 @@
"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": {
"inputs": {
"crane": "crane",
"nixpkgs": "nixpkgs_10",
"nixpkgs": "nixpkgs_12",
"rust-overlay": "rust-overlay"
},
"locked": {
@@ -1388,7 +1485,7 @@
},
"nur-anotherhadi": {
"inputs": {
"nixpkgs": "nixpkgs_11"
"nixpkgs": "nixpkgs_13"
},
"locked": {
"lastModified": 1781028989,
@@ -1427,11 +1524,11 @@
},
"nvf": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts_4",
"flake-compat": "flake-compat_4",
"flake-parts": "flake-parts_5",
"mnw": "mnw",
"ndg": "ndg",
"nixpkgs": "nixpkgs_12",
"nixpkgs": "nixpkgs_14",
"systems": "systems_5"
},
"locked": {
@@ -1471,64 +1568,21 @@
"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": {
"inputs": {
"awesome-wallpapers": "awesome-wallpapers",
"blog": "blog",
"caelestia-cli": "caelestia-cli",
"caelestia-shell": "caelestia-shell_2",
"default-creds": "default-creds",
"helium-browser": "helium-browser",
"home-manager": "home-manager",
"hyprland": "hyprland",
"iknowyou": "iknowyou",
"nix-citizen": "nix-citizen",
"nix-gaming": "nix-gaming",
"nix-index-database": "nix-index-database",
"nixarr": "nixarr",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_9",
"nixpkgs": "nixpkgs_11",
"nixpkgs-stable": "nixpkgs-stable",
"notashelf-tuigreet": "notashelf-tuigreet",
"nur-anotherhadi": "nur-anotherhadi",
@@ -1560,7 +1614,7 @@
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_13"
"nixpkgs": "nixpkgs_15"
},
"locked": {
"lastModified": 1780547341,
@@ -1583,9 +1637,9 @@
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_5",
"flake-parts": "flake-parts_6",
"gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_14",
"nixpkgs": "nixpkgs_16",
"nur": "nur",
"systems": "systems_6",
"tinted-kitty": "tinted-kitty",
@@ -1828,6 +1882,27 @@
}
},
"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": {
"nixpkgs": [
"nixarr",
+12 -5
View File
@@ -16,6 +16,9 @@
notashelf-tuigreet.url = "github:NotAShelf/tuigreet";
helium-browser.url = "github:oxcl/nix-flake-helium-browser";
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 = {
url = "github:nix-community/nix-index-database";
@@ -25,15 +28,19 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia-shell = {
url = "github:caelestia-dots/shell";
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia-cli = {
url = "github:caelestia-dots/cli";
inputs.nixpkgs.follows = "nixpkgs";
zen-browser = {
url = "github:0xc000022070/zen-browser-flake";
inputs = {
home-manager.follows = "home-manager";
nixpkgs.follows = "nixpkgs";
};
};
# Server
nixarr.url = "github:rasmus-kirk/nixarr";
default-creds.url = "github:anotherhadi/default-creds";
+10 -21
View File
@@ -6,12 +6,16 @@
}: {
home.packages = (with pkgs-stable; [
kodi # Kodi
keepassxc # Passwords
vlc # Video player
obsidian # Note taking app
cwtch-ui # messager
ticktick # Todo app
onlyoffice-desktopeditors # Office suite
librewolf # Backup browser
firefox # Backup browser
tor-browser # Tor browser
# I love TUIs
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
@@ -26,6 +30,9 @@
pkgs.wifitui # TUI for managing wifi
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
httpie # Command-line HTTP client, a user-friendly cURL replacement
@@ -33,28 +40,10 @@
imagemagick # Image manipulation tool
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; [
vencord # Vencord Discord Mod
vesktop # Vencord Discord Mod
tor # tor network service
]);
}
+3 -1
View File
@@ -6,8 +6,10 @@
go
zig
claude-code # Claude Code
zed-editor #Zed
vscodium # VS Code
vscodium # VS Code
])
++ (with pkgs-stable; [
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 = {
# Better Steam scaling on HiDPI displays
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 = {
# Improves scaling consistency on HiDPI / Wayland setups
STEAM_FORCE_DESKTOPUI_SCALING = "1.25";
# Optional Proton-related behavior toggles (safe defaults)
PROTON_ENABLE_NVAPI = "1";
PROTON_NO_ESYNC = "0";
PROTON_NO_FSYNC = "0";
hardware.graphics = {
enable = true;
enable32Bit = true;
};
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,
lib,
config,
...
}:
{
}: {
imports = [inputs.zen-browser.homeModules.beta];
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 = {
extensions = {
packages = with pkgs.nur.repos.rycee.firefox-addons; [
ublock-origin
video-downloadhelper
multi-account-containers
noscript
];
};
search = {
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 = {
"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;
"privacy.resistFingerprinting" = true;
"browser.contentblocking.category" = "strict";
"network.http.referer.disallowCrossSiteRelaxingDefault.top_navigation" = 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;
"geo.enabled" = false;
"dom.webnotifications.enabled" = false;
"signon.rememberSignons" = false;
"toolkit.telemetry.enabled" = false;
"privacy.trackingprotection.socialtracking.enabled" = true;
};
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,
lib,
config,
pkgs-nur-hadi,
...
}: let
}:
let
colors = config.lib.stylix.colors;
mkMenu = menu: let
configFile = pkgs.writeText "config.yaml" (
lib.generators.toYAML {} {
anchor = "bottom-right";
border = "#${colors.base0D}80";
background = "#${colors.base01}EE";
color = "#${colors.base05}";
margin_right = 15;
margin_bottom = 15;
rows_per_column = 5;
mkMenu = menu:
let
configFile = pkgs.writeText "config.yaml" (
lib.generators.toYAML { } {
anchor = "bottom-right";
border = "#${colors.base0D}80";
background = "#${colors.base01}EE";
color = "#${colors.base05}";
margin_right = 15;
margin_bottom = 15;
rows_per_column = 5;
inherit menu;
}
);
in
inherit menu;
}
);
in
pkgs.writeShellScriptBin "menu" ''
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 = {
"$mod" = "SUPER";
"$shiftMod" = "SUPER_SHIFT";
@@ -37,53 +234,28 @@ in {
+ lib.getExe (mkMenu [
{
key = "a";
desc = "Proton Authenticator";
cmd = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator";
desc = "Apps";
cmd = lib.getExe appsMenu;
}
{
key = "p";
desc = "Proton Pass";
cmd = "${pkgs.proton-pass}/bin/proton-pass";
key = "d";
desc = "Dev";
cmd = lib.getExe devMenu;
}
{
key = "v";
desc = "Proton VPN";
cmd = "${pkgs.proton-vpn}/bin/protonvpn-app";
key = "g";
desc = "Gaming";
cmd = lib.getExe gamingMenu;
}
{
key = "c";
desc = "Proton Calendar";
cmd = "${config.programs.librewolf.package}/bin/helium 'https://calendar.proton.me/'";
}
{
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 = "u";
desc = "Utilities";
cmd = lib.getExe utilityMenu;
}
{
key = "s";
desc = "Signal";
cmd = "${pkgs.signal-desktop}/bin/signal-desktop";
}
{
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";
desc = "System";
cmd = lib.getExe systemMenu;
}
])
)
@@ -91,14 +263,13 @@ in {
"$mod,B, exec, uwsm app -- ${config.programs.librewolf.package}/bin/helium" # Browser
# Power
"$mod, X, global, caelestia:session" # Powermenu
(
"$shiftMod, X, exec, "
"$mod, X, exec, "
+ lib.getExe (mkMenu [
{
key = "l";
desc = "Lock";
cmd = "hyprctl dispatch global caelestia:lock";
cmd = "hyprlock";
}
{
key = "s";
@@ -122,8 +293,8 @@ in {
}
{
key = "c";
desc = "Restart caelestia";
cmd = "hyprctl dispatch exec 'caelestia-shell kill | sleep 1 | caelestia-shell'";
desc = "Restart Waybar";
cmd = "pkill -x waybar; waybar";
}
])
)
@@ -131,10 +302,9 @@ in {
# Quick launch
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
"$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar
"$shiftMod, E, exec, pkill fuzzel || caelestia emoji -p" # Emoji picker
"$mod, SPACE, global, caelestia:launcher" # Launcher
"$mod, N, exec, caelestia shell drawers toggle sidebar" # Sidebar (Notifications, quick actions)
"$mod, D, exec, caelestia shell drawers toggle dashboard" # Dashboard
"$mod, SPACE, exec, walker" # Launcher
"$mod, N, exec, ${lib.getExe pkgs.grimblast} save area" # Save screenshot
"$mod, D, exec, ${lib.getExe pkgs.grimblast} copy area" # Copy screenshot
# Windows
"$mod,Q, killactive," # Close window
@@ -152,10 +322,9 @@ in {
"$shiftMod,L, focusmonitor, 1" # Focus next monitor
# Utilities
"$shiftMod, SPACE, exec, caelestia shell gameMode toggle" # Toggle Focus/Game mode
"$shiftMod, S, global, caelestia:screenshotFreeze" # Capture region (freeze)
", Print, global, caelestia:screenshotFreeze" # Capture region (freeze)
"$shiftMod+Alt, S, global, caelestia:screenshot" # Capture region
"$shiftMod, S, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region
", Print, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region
"$shiftMod+Alt, S, exec, ${lib.getExe pkgs.grimblast} save area" # Capture region
]
++ (builtins.concatLists (
builtins.genList (
@@ -176,32 +345,20 @@ in {
bindl = [
# Brightness
", XF86MonBrightnessUp, global, caelestia:brightnessUp"
", XF86MonBrightnessDown, global, caelestia:brightnessDown"
", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set 5%+"
", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%-"
# Media
", XF86AudioPlay, global, caelestia:mediaToggle"
", XF86AudioPause, global, caelestia:mediaToggle"
", XF86AudioNext, global, caelestia:mediaNext"
", XF86AudioPrev, global, caelestia:mediaPrev"
", XF86AudioStop, global, caelestia:mediaStop"
", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioPause, exec, ${lib.getExe pkgs.playerctl} play-pause"
", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next"
", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous"
", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop"
# Sound
", 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%+"
", 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
./bindings.nix
./polkitagent.nix
./hyprlock.nix
./keyboard-backlight.nix # CHANGEME: This is for omen laptop only
];
@@ -31,6 +32,7 @@ in {
libxcb
hyprland-qtutils
adw-gtk3
hyprlock
hyprshot
hyprpicker
swappy
@@ -152,7 +154,9 @@ in {
kb_options = "caps:escape";
follow_mouse = 1;
sensitivity = 0.5;
sensitivity = 0.0; # or whatever speed you prefer
accel_profile = "flat";
repeat_delay = 300;
repeat_rate = 50;
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, ...}: {
imports = [
# Mostly system related configuration
# ─────────────────────────────────────────────────────────────
# System configuration
# ─────────────────────────────────────────────────────────────
../../nixos/audio.nix
../../nixos/docker.nix
../../nixos/bluetooth.nix
../../nixos/fonts.nix
../../nixos/home-manager.nix
@@ -13,8 +16,14 @@
../../nixos/utils.nix
../../nixos/hyprland.nix
# ─────────────────────────────────────────────────────────────
# Graphics Card
# ─────────────────────────────────────────────────────────────
../../nixos/amd-graphics.nix
# ─────────────────────────────────────────────────────────────
# System integration for Steam
# ─────────────────────────────────────────────────────────────
../../nixos/steam.nix
# You should let those lines as is
@@ -22,6 +31,7 @@
./variables.nix
];
programs.nix-ld.enable = true; #Dynamic Linking
home-manager.users."${config.var.username}" = import ./home.nix;
services.flatpak.enable = true;
# Don't touch this
+21 -2
View File
@@ -3,16 +3,35 @@
nixpkgs,
...
}:
nixpkgs.lib.nixosSystem {
modules = [
{
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.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.default
inputs.helium-browser.nixosModules.default
./configuration.nix
];
}
+37 -32
View File
@@ -1,45 +1,50 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [
"xhci_pci"
"ahci"
"nvme"
"usb_storage"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" = {
device = "/dev/disk/by-uuid/5dbf85d3-d236-4af8-b489-d6066bfe1eb7";
fileSystems."/" =
{ 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";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/043E-1755";
fsType = "vfat";
options = [
"fmask=0077"
"dmask=0077"
swapDevices =
[ { device = "/dev/disk/by-uuid/d0243bc0-10fb-4fa6-9933-945eb2965385"; }
];
};
swapDevices = [];
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, ...}: {
imports = [
# ─────────────────────────────────────────────────────────────
# Programs
# ─────────────────────────────────────────────────────────────
../../home/programs/ghostty
../../home/programs/nvf
../../home/programs/shell
@@ -12,21 +14,33 @@
../../home/programs/nix-utils
../../home/programs/spotatui
../../home/programs/yazi
../../home/programs/steam
# ─────────────────────────────────────────────────────────────
# Gaming
# ─────────────────────────────────────────────────────────────
../../home/programs/steam
../../home/programs/star-citizen
# ─────────────────────────────────────────────────────────────
# Groups
# ─────────────────────────────────────────────────────────────
../../home/programs/group/basic-apps.nix
../../home/programs/group/dev.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/caelestia-shell
../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper
../../home/system/mime
../../home/system/udiskie
./variables.nix # Mostly user-specific configuration
#./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
];
home = {
@@ -47,6 +61,10 @@
programs = {
home-manager.enable = true;
star-citizen = {
enable = true;
package = "rsi-launcher-umu";
};
nixy = {
enable = true;
configDirectory = config.var.configDirectory;
+2 -2
View File
@@ -16,8 +16,8 @@
keyboardLayout = "de";
timeZone = "Europe/Berlin";
defaultLocale = "de_DE.UTF-8";
extraLocale = "en_EN.UTF-8";
defaultLocale = "en_US.UTF-8";
extraLocale = "de_DE.UTF-8";
git = {
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 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
# ─────────────────────────────────────────────────────────────
# System integration for Steam
# ─────────────────────────────────────────────────────────────
../../nixos/steam.nix
../../nixos/steam.nix
# You should let those lines as is
./hardware-configuration.nix
./variables.nix
# Machine-specific files
./hardware-configuration.nix
./variables.nix
];
];
home-manager.users."${config.var.username}" = import ./home.nix;
services.flatpak.enable = true;
system.stateVersion = "24.05";
programs.nix-ld.enable = true; #Dynamic Linking
home-manager.users."${config.var.username}" = import ./home.nix;
services.flatpak.enable = true;
# Don't touch this
system.stateVersion = "24.05";
}
+12 -5
View File
@@ -14,21 +14,29 @@ nixpkgs.lib.nixosSystem {
}
({ config, pkgs, lib, ... }: {
# Intel microcode
# ─────────────────────────────────────────────────────────────
# Intel Microcode
# ─────────────────────────────────────────────────────────────
hardware.cpu.intel.updateMicrocode = true;
# Graphics support
# ─────────────────────────────────────────────────────────────
# Hardware accelaration
# ─────────────────────────────────────────────────────────────
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# Power management
# ─────────────────────────────────────────────────────────────
# Power management
# ─────────────────────────────────────────────────────────────
powerManagement.cpuFreqGovernor = "powersave";
services.tlp.enable = true;
services.power-profiles-daemon.enable = false;
# Kernel modules commonly needed on ThinkPads
# ─────────────────────────────────────────────────────────────
# Kernel modules commonly needed on ThinkPads
# ─────────────────────────────────────────────────────────────
boot.kernelModules = [
"i915"
"snd_hda_intel"
@@ -39,7 +47,6 @@ nixpkgs.lib.nixosSystem {
inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.default
inputs.helium-browser.nixosModules.default
./configuration.nix
];
+16 -2
View File
@@ -1,6 +1,8 @@
{config, ...}: {
imports = [
# ─────────────────────────────────────────────────────────────
# Programs
# ─────────────────────────────────────────────────────────────
../../home/programs/ghostty
../../home/programs/nvf
../../home/programs/shell
@@ -12,15 +14,27 @@
../../home/programs/nix-utils
../../home/programs/spotatui
../../home/programs/yazi
../../home/programs/zen
# ─────────────────────────────────────────────────────────────
# Gaming
# ─────────────────────────────────────────────────────────────
../../home/programs/steam
# ─────────────────────────────────────────────────────────────
# Groups
# ─────────────────────────────────────────────────────────────
../../home/programs/group/basic-apps.nix
../../home/programs/group/dev.nix
../../home/programs/group/misc.nix
../../home/programs/group/gaming-apps.nix
# System (Desktop environment like stuff)
# ─────────────────────────────────────────────────────────────
# System
# ─────────────────────────────────────────────────────────────
../../home/system/hyprland
../../home/system/caelestia-shell
../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper
../../home/system/mime
../../home/system/udiskie
+2 -2
View File
@@ -16,8 +16,8 @@
keyboardLayout = "de";
timeZone = "Europe/Berlin";
defaultLocale = "de_DE.UTF-8";
extraLocale = "en_US.UTF-8";
defaultLocale = "en_US.UTF-8";
extraLocale = "de_DE.UTF-8";
git = {
username = "kptltd00m";
+2 -1
View File
@@ -22,7 +22,8 @@
# System (Desktop environment like stuff)
../../home/system/hyprland
../../home/system/caelestia-shell
../../home/system/waybar
../../home/system/walker
../../home/system/hyprpaper
../../home/system/mime
../../home/system/udiskie
+8 -3
View File
@@ -22,9 +22,12 @@ in {
];
}
];
nixpkgs.config = {
allowUnfree = true;
allowBroken = false;
nixpkgs = {
config = {
allowUnfree = true;
allowBroken = false;
};
overlays = [inputs.nur.overlays.default];
};
nix = {
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
@@ -44,11 +47,13 @@ in {
"https://cache.nixos.org?priority=10"
"https://hyprland.cachix.org"
"https://nix-citizen.cachix.org"
"https://nix-community.cachix.org"
"https://numtide.cachix.org"
];
trusted-public-keys = [
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
"nix-citizen.cachix.org-1:lPMkWc2X8XD4/7YPEEwXKKBg+SVbYTVrAaLA2wQTKCo="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE="
];
+2
View File
@@ -16,6 +16,8 @@ in {
extraGroups = [
"networkmanager"
"wheel"
"video"
"render"
];
};
};
+2 -2
View File
@@ -75,8 +75,8 @@
polarity = "dark";
image = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/black-moutains-and-a-city.png";
sha256 = "sha256-RTTA3Lf+hnPpo9hwS075kbnIouz12ul2GKO3EIgP6AU=";
url = "https://upload.wikimedia.org/wikipedia/commons/1/12/Peter_Paul_Rubens_-_Fall_of_the_damned.jpg";
sha256 = "sha256-m8ii0Vo8FrUJRPrWfFvF3ojTSshGTVbIU1V8ptis4aQ=";
};
};
}