diff --git a/.github/assets/README_template.md b/.github/assets/README_template.md
index 3f6775f..fe63346 100644
--- a/.github/assets/README_template.md
+++ b/.github/assets/README_template.md
@@ -1,130 +1,124 @@
-
-

-
-
-
-
-# Nixy
-
-
-
-
-
-**Nixy simplifies and unifies** the Hyprland ecosystem with a modular, easily
-customizable setup. It provides a structured way to manage your system
-configuration and dotfiles with minimal effort. It includes _home-manager_,
-_secrets_, and _custom theming_ all in one place.
-
-**Features:**
-
-- 💻 Hyprland-centric: Preconfigured Hyprland ecosystem (Hyprlock, Hyprpanel,
- etc.)
-- 🎨 Consistent Theming: Base16 & Stylix-powered themes
-- ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
-
-## Table of Content
-
-{md_table_of_content}
-
-## Gallery
-
-
-
-
-
-
-## Architecture
-
-### 🏠 /home (User-level configuration)
-
-Contains **dotfiles and settings** that apply to your user environment.
-
-**Subfolders:**
-
-- `programs` is a collection of apps configured with home-manager
-- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
-- `system` is some "desktop environment" configuration
-
-### 🐧 /nixos
-
-Those are the system-level configurations. (audio, bluetooth, gpu, bootloader,
-...)
-
-### 🎨 /themes
-
-This folder contains all system themes. Mainly
-[stylix](https://stylix.danth.me/) configurations. Check out the available
-themes and learn how to create your own in [THEMES.md](docs/THEMES.md)
-
-### 💻 /hosts
-
-This directory contains host-specific configurations. Each host includes:
-
-- `configuration.nix` for system-wide settings
-- `home.nix` for user-level configuration
-- `variables.nix` for global variables
-- `secrets/` for sensitive data
-
-### 🖥️ /server-modules
-
-This folder contains server-related nixos modules. (bitwarden, nextcloud, ...)
-
-## Installation
-
-1. [Fork](https://github.com/anotherhadi/nixy/fork) this repo and clone it to
- your system:
-
-```sh
-git clone https://github.com/anotherhadi/nixy ~/.config/nixos
-```
-
-2. Copy the `hosts/laptop` folder, rename it to match your system’s hostname,
- and update `variables.nix` with your machine’s settings.
-3. Copy your `hardware-configuration.nix` into your new host's folder to ensure
- proper hardware support.
-4. Register your new host in `flake.nix` by adding it under nixosConfigurations.
-
+
+

+
+
+
+
+# Nixy
+
+
+
+
+
+**Nixy simplifies and unifies** the Hyprland ecosystem with a modular, easily
+customizable setup. It provides a structured way to manage your system
+configuration and dotfiles with minimal effort. It includes _home-manager_,
+_secrets_, and _custom theming_ all in one place.
+
+**Features:**
+
+- 💻 Hyprland & Caelestia: Preconfigured Hyprland ecosystem with Caelestia-shell (Ty to both projects!)
+- 🎨 Consistent Theming: Base16 & Stylix-powered themes
+- ⌨️ Vim-like Everywhere: Unified keybindings (Hyprland, nvim, vimium, etc.)
+
+## Table of Content
+
+{md_table_of_content}
+
+## Screenshots
+
+
+
+
+
+## Architecture
+
+### 🏠 /home (User-level configuration)
+
+Contains **dotfiles and settings** that apply to your user environment.
+
+**Subfolders:**
+
+- `programs` is a collection of apps configured with home-manager
+- `system` is some "desktop environment" configuration
+
+### 🐧 /nixos
+
+Those are the system-level configurations. (audio, bluetooth, gpu, bootloader,
+...)
+
+### 🎨 /themes
+
+This folder contains all system themes. Mainly
+[stylix](https://stylix.danth.me/) configurations. Check out the available
+themes and learn how to create your own in [THEMES.md](docs/THEMES.md)
+
+### 💻 /hosts
+
+This directory contains host-specific configurations. Each host includes:
+
+- `configuration.nix` for system-wide settings
+- `home.nix` for user-level configuration
+- `variables.nix` for global variables
+- `secrets/` for sensitive data
+
+### 🖥️ /server-modules
+
+This folder contains server-related nixos modules. (bitwarden, nextcloud, ...)
+
+## Installation
+
+1. [Fork](https://github.com/anotherhadi/nixy/fork) this repo and clone it to
+ your system:
+
+```sh
+git clone https://github.com/anotherhadi/nixy ~/.config/nixos
+```
+
+2. Copy the `hosts/laptop` folder, rename it to match your system’s hostname,
+ and update `variables.nix` with your machine’s settings.
+3. Copy your `hardware-configuration.nix` into your new host's folder to ensure
+ proper hardware support.
+4. Register your new host in `flake.nix` by adding it under nixosConfigurations.
+
> [!IMPORTANT]
-> `# CHANGEME` comments are placed throughout the config to
-> indicate necessary modifications. Use the following command to quickly locate
-> them:
->
-> ```sh
-> rg "CHANGEME" ~/.config/nixos
-> ```
-
-> [!TIP]
-> When you add new files, don't forget to run `git add .` to add them to the git
-> repository
-
-5. Build the system
-
-```sh
-sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
-```
-
-## Documentation
-
-- [SERVER](docs/SERVER.md): Check out the server documentation
-- [THEMES](docs/THEMES.md): How themes work and how to create your own
-- [SCRIPTS](docs/SCRIPTS.md): A list of available scripts and their usage
-- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in
- Hyprland
-- [WALLPAPERS](https://github.com/anotherhadi/awesome-wallpapers): An awesome
- collection of wallpapers
-
-- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
-- [LICENSE](LICENSE): MIT License
+> `# CHANGEME` comments are placed throughout the config to
+> indicate necessary modifications. Use the following command to quickly locate
+> them:
+>
+> ```sh
+> rg "CHANGEME" ~/.config/nixos
+> ```
+
+> [!TIP]
+> When you add new files, don't forget to run `git add .` to add them to the git
+> repository
+
+5. Build the system
+
+```sh
+sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
+```
+
+## Documentation
+
+- [SERVER](docs/SERVER.md): Check out the server documentation
+- [THEMES](docs/THEMES.md): How themes work and how to create your own
+- [WALLPAPERS](https://github.com/anotherhadi/awesome-wallpapers): An awesome
+ collection of wallpapers
+
+- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
+- [LICENSE](LICENSE): MIT License
diff --git a/.github/assets/large.png b/.github/assets/large.png
index 49e19ee..ab911ac 100644
Binary files a/.github/assets/large.png and b/.github/assets/large.png differ
diff --git a/.github/assets/logo.png b/.github/assets/logo.png
index d0c1d91..e7d19b3 100644
Binary files a/.github/assets/logo.png and b/.github/assets/logo.png differ
diff --git a/.github/assets/nixy/1.png b/.github/assets/nixy/1.png
deleted file mode 100644
index a3da949..0000000
Binary files a/.github/assets/nixy/1.png and /dev/null differ
diff --git a/.github/assets/nixy/2.png b/.github/assets/nixy/2.png
deleted file mode 100644
index bd87b15..0000000
Binary files a/.github/assets/nixy/2.png and /dev/null differ
diff --git a/.github/assets/nixy/3.png b/.github/assets/nixy/3.png
deleted file mode 100644
index 6fa3932..0000000
Binary files a/.github/assets/nixy/3.png and /dev/null differ
diff --git a/.github/assets/nixy/4.png b/.github/assets/nixy/4.png
deleted file mode 100644
index ff65324..0000000
Binary files a/.github/assets/nixy/4.png and /dev/null differ
diff --git a/.github/assets/rose-pine/browser-and-notifications.png b/.github/assets/rose-pine/browser-and-notifications.png
new file mode 100644
index 0000000..a4232dc
Binary files /dev/null and b/.github/assets/rose-pine/browser-and-notifications.png differ
diff --git a/.github/assets/rose-pine/flake-spotify.png b/.github/assets/rose-pine/flake-spotify.png
new file mode 100644
index 0000000..960c1c1
Binary files /dev/null and b/.github/assets/rose-pine/flake-spotify.png differ
diff --git a/.github/assets/rose-pine/home.png b/.github/assets/rose-pine/home.png
new file mode 100644
index 0000000..c801aae
Binary files /dev/null and b/.github/assets/rose-pine/home.png differ
diff --git a/.github/scripts/create_readme.sh b/.github/scripts/create_readme.sh
index 1c5638c..e4dd247 100755
--- a/.github/scripts/create_readme.sh
+++ b/.github/scripts/create_readme.sh
@@ -10,7 +10,7 @@ table_of_content=$(markdown-table-of-contents --start-by 2 ./.github/assets/READ
readme_content=$(cat "./.github/assets/README_template.md")
# Replace variables
-readme_content=${readme_content//\{primarycolor\}/A594FD}
+readme_content=${readme_content//\{primarycolor\}/A89AD1}
readme_content=${readme_content//\{backgroundcolor\}/0b0b0b}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
diff --git a/.github/scripts/create_scripts_docs.sh b/.github/scripts/create_scripts_docs.sh
deleted file mode 100755
index 10353d2..0000000
--- a/.github/scripts/create_scripts_docs.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/usr/bin/env bash
-
-[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
-
-DOCS_FILE="./docs/SCRIPTS.md"
-SCRIPTS_FOLDER="./home/scripts"
-
-# search for every directory in the scripts folder:
-# The docs for each scripts are in the beginning of the file prefixed by "#-" or "# -" for the title
-# Inside the folders, the scripts are stored in default.nix files
-echo "[//]: # (This file is autogenerated)" >"$DOCS_FILE"
-echo "# Scripts" >>"$DOCS_FILE"
-echo "" >>"$DOCS_FILE"
-echo "Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path." >>"$DOCS_FILE"
-echo "" >>"$DOCS_FILE"
-
-for folder in "$SCRIPTS_FOLDER"/*; do
- script="$folder/default.nix"
- [[ -f "$script" ]] || continue
-
- content=$(cat "$script")
- content=$(echo "$content" | grep -E "^#-|^# -" | sed 's/^#- //;s/^# - //;s/#-//')
-
- echo "$content" >>"$DOCS_FILE"
- echo "" >>"$DOCS_FILE"
-done
diff --git a/.github/scripts/keybindings_to_markdown.sh b/.github/scripts/keybindings_to_markdown.sh
deleted file mode 100755
index f1facfb..0000000
--- a/.github/scripts/keybindings_to_markdown.sh
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env bash
-
-# A script to parse the Hyprland configuration to store keybindings in a table
-
-[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
-
-KEYBINDINGS_FILE="./docs/KEYBINDINGS-HYPRLAND.md"
-
-function getList() {
- content=$1
- name=$2
- list_start=$(echo "$content" | sed "/$name = \[/!d;=;Q")
- list=$(echo "$content" | tail +"$list_start")
- list_end=$(echo "$list" | sed '/\]/!d;=;Q')
- list=$(echo "$list" | head -n"$list_end")
-
- echo "$list"
-}
-
-[[ -f "./home/system/hyprland/bindings.nix" ]] || (echo "File ./home/system/hyprland/bindings.nix not found" && exit 1)
-
-config=$(cat "./home/system/hyprland/bindings.nix")
-
-# Bind
-bind=$(getList "$config" "bind")
-# Bindm (mouse)
-bindm=$(getList "$config" "bindm")
-# Bindl (lock)
-bindl=$(getList "$config" "bindl")
-# Bindle (lock, repetition)
-bindle=$(getList "$config" "bindle")
-
-# Join the lists:
-keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"')
-
-echo "[//]: # (This file is autogenerated)" >"$KEYBINDINGS_FILE"
-echo "# Keybindings for Hyprland" >>"$KEYBINDINGS_FILE"
-echo "" >>"$KEYBINDINGS_FILE"
-echo "> [!NOTE]" >>"$KEYBINDINGS_FILE"
-echo "> SUPER is the windows key by default" >>"$KEYBINDINGS_FILE"
-echo "" >>"$KEYBINDINGS_FILE"
-
-echo "| Description | Keybinding |" >>"$KEYBINDINGS_FILE"
-echo "| -- | -- |" >>"$KEYBINDINGS_FILE"
-echo "| Switch Workspace | SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
-echo "| Move app to Workspace | SHIFT + SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
-echo "$keybindings" | while read -r line; do
- comment=$(echo "$line" | cut -d\# -f2)
- line=$(echo "$line" | cut -d\# -f1)
- line=${line:1:${#line}-3}
- mod=$(echo "$line" | cut -d, -f1)
- key=$(echo "$line" | cut -d, -f2)
- # dispatcher=$(echo "$line" | cut -d, -f3)
- # params=$(echo "$line" | cut -d, -f4)
-
- [[ $mod == '$mod' ]] && mod="SUPER + "
- [[ $mod == '$shiftMod' ]] && mod="SHIFT + SUPER + "
-
- echo "| ${comment:1} | $mod$key |" >>"$KEYBINDINGS_FILE"
-done
diff --git a/.github/workflows/update-hyprland-keybindings.yml b/.github/workflows/update-hyprland-keybindings.yml
deleted file mode 100644
index afd1c5e..0000000
--- a/.github/workflows/update-hyprland-keybindings.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-on:
- push:
- paths:
- - 'home/system/hyprland/bindings.nix'
-permissions:
- contents: write
-jobs:
- update-readme:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: ./
- steps:
- - name: Check out the repository to the runner
- uses: actions/checkout@v4
- - name: Run a script
- run: |
- chmod +x ./.github/scripts/keybindings_to_markdown.sh
- ./.github/scripts/keybindings_to_markdown.sh
- git config user.name github-actions
- git config user.email github-actions@github.com
- git add .
- git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)" && git push
- exit 0
diff --git a/.github/workflows/update-scripts-docs.yml b/.github/workflows/update-scripts-docs.yml
deleted file mode 100644
index dac3ffa..0000000
--- a/.github/workflows/update-scripts-docs.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-on:
- push:
- paths:
- - 'home/scripts/**'
-permissions:
- contents: write
-jobs:
- update-readme:
- runs-on: ubuntu-latest
- defaults:
- run:
- working-directory: ./
- steps:
- - name: Check out the repository to the runner
- uses: actions/checkout@v4
- - name: Run a script
- run: |
- chmod +x ./.github/scripts/create_scripts_docs.sh
- ./.github/scripts/create_scripts_docs.sh
- git config user.name github-actions
- git config user.email github-actions@github.com
- git add .
- git commit -m "Update SCRIPTS.md (auto)" && git push
- exit 0
diff --git a/docs/KEYBINDINGS-HYPRLAND.md b/docs/KEYBINDINGS-HYPRLAND.md
deleted file mode 100644
index 127d7f0..0000000
--- a/docs/KEYBINDINGS-HYPRLAND.md
+++ /dev/null
@@ -1,46 +0,0 @@
-[//]: # (This file is autogenerated)
-# Keybindings for Hyprland
-
-> [!NOTE]
-> SUPER is the windows key by default
-
-| Description | Keybinding |
-| -- | -- |
-| Switch Workspace | SUPER + {Number} |
-| Move app to Workspace | SHIFT + SUPER + {Number} |
-| Proton VPN | SUPER + V |
-| Proton Authenticator | SUPER + A |
-| Lock | SUPER + L |
-| Launcher | SUPER + SPACE |
-| "$mod,SPACE, exec, menu" | |
-| Powermenu | SUPER + X |
-| Toggle HyprFocus | SHIFT + SUPER + SPACE |
-| Close window | SUPER + Q |
-| Toggle Floating | SUPER + T |
-| Toggle Fullscreen | SUPER + F |
-| Move focus left | SUPER + left |
-| Move focus Right | SUPER + right |
-| Move focus Up | SUPER + up |
-| Move focus Down | SUPER + down |
-| Focus previous monitor | SHIFT + SUPER + up |
-| Focus next monitor | SHIFT + SUPER + down |
-| Add to master | SHIFT + SUPER + left |
-| Remove from master | SHIFT + SUPER + right |
-| Screenshot region | SUPER + PRINT |
-| Screenshot monitor | PRINT |
-| Screenshot window | SHIFT + SUPER + PRINT |
-| Screenshot region then edit | ALTPRINT |
-| Toggle hyprpanel | SHIFT + SUPER + T |
-| Toggle night shift | SHIFT + SUPER + F2 |
-| Toggle night shift | SHIFT + SUPER + F3 |
-| Move Window (mouse) | SUPER + mouse:272 |
-| Resize Window (mouse) | SUPER + R |
-| Toggle Mute | XF86AudioMute |
-| Play/Pause Song | XF86AudioPlay |
-| Next Song | XF86AudioNext |
-| Previous Song | XF86AudioPrev |
-| Lock when closing Lid | switch:Lid Switch |
-| Sound Up | XF86AudioRaiseVolume |
-| Sound Down | XF86AudioLowerVolume |
-| Brightness Up | XF86MonBrightnessUp |
-| Brightness Down | XF86MonBrightnessDown |
diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md
deleted file mode 100644
index 2f5bb13..0000000
--- a/docs/SCRIPTS.md
+++ /dev/null
@@ -1,92 +0,0 @@
-[//]: # (This file is autogenerated)
-# Scripts
-
-Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path.
-
-## Brightness
-
-This module provides a set of scripts to control the brightness of the screen.
-
-- `brightness-up` increases the brightness by 5%.
-- `brightness-down` decreases the brightness by 5%.
-- `brightness-set [value]` sets the brightness to the given value.
-- `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
-
-## Caffeine
-
-Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
-
-- `caffeine-status` - Check if hypridle is running. (0/1)
-- `caffeine-status-icon` - Check if hypridle is running. (icon)
-- `caffeine` - Toggle hypridle.
-
-## Hyprfocus
-
-A simple script to toggle focus on few windows in Hyprland.
-(disable gaps, border, shadow, opacity, etc.)
-
-- `hyprfocus-on` - Enable hyprfocus.
-- `hyprfocus-off` - Disable hyprfocus.
-- `hyprfocus-toggle` - Toggle hyprfocus.
-
-## Hyprpanel
-
-Quick scripts to toggle, reload, hide & show hyprpanel.
-
-- `hyprpanel-toggle` - Toggle hyprpanel (hide/show).
-- `hyprpanel-show` - Show hyprpanel.
-- `hyprpanel-hide` - Hide hyprpanel.
-- `hyprpanel-reload` - Reload hyprpanel.
-
-## Nerdfont FZF
-
-This module provides a script to search for Nerd Fonts icons using fzf.
-
-- `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
-
-## Night-Shift
-
-Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
-It use hyprsunset to control the screen temperature.
-
-- `night-shift-on` activates Night-Shift.
-- `night-shift-off` deactivates Night-Shift.
-- `night-shift` toggles Night-Shift.
-- `night-shift-status` checks if Night-Shift is active. (0/1)
-- `night-shift-status-icon` checks if Night-Shift is active. (icon)
-
-## Nixy
-
-Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, test, update, collect garbage, clean boot menu, etc.
-
-- `nixy` - UI wizard to manage the system.
-- `nixy rebuild` - Rebuild the system.
-- `nixy ...` - ... see the script for more commands.
-
-## Notif
-
-
-- `notif {id} {title} {description}` - Sends a notification
-
-## Screenshot
-
-This module provides a script to take screenshots using `grimblast` and `swappy`.
-
-- `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
-
-## Sound
-
-This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
-
-- `sound-up` increases the volume by 5%.
-- `sound-down` decreases the volume by 5%.
-- `sound-set [value]` sets the volume to the given value.
-- `sound-toggle` toggles the mute state of the default audio sink.
-
-## System
-
-Usefull quick scripts
-
-- `lock` - Lock the screen. (hyprlock)
-- `powermode-toggle` - Toggle between performance and balanced power mode. (powerprofilesctl)
-
diff --git a/docs/SERVER.md b/docs/SERVER.md
index 370cbbb..ba3a567 100644
--- a/docs/SERVER.md
+++ b/docs/SERVER.md
@@ -1,62 +1,53 @@
# SERVER
-## Overview
+> Update in comming. Early 2026
+
+## Overview
This document describes the architecture and setup of the self-hosted **NixOS server**, which is securely accessible via **Tailscale**. The server is designed for private, secure, and easily manageable self-hosting of various services.

-## **Why This Setup?**
+## **Why This Setup?**
-- **Private & Secure**: Services are only accessible through Tailscale, preventing exposure to the public internet.
-- **Domain-based Access**: A custom domain (`example.org`) maps to the server's Tailscale IP, making service access simple and consistent.
-- **Automatic SSL Certificates**: Using DNS-01 challenges, valid SSL certificates are generated even though the services are not publicly exposed.
-- **Modular & Declarative**: Everything is managed through NixOS modules, ensuring reproducibility and easy configuration.
+- **Private & Secure**: Services are only accessible through Tailscale, preventing exposure to the public internet.
+- **Domain-based Access**: A custom domain (`example.org`) maps to the server's Tailscale IP, making service access simple and consistent.
+- **Automatic SSL Certificates**: Using DNS-01 challenges, valid SSL certificates are generated even though the services are not publicly exposed.
+- **Modular & Declarative**: Everything is managed through NixOS modules, ensuring reproducibility and easy configuration.
-## **Self-Hosted Services**
+## **Self-Hosted Services**
-The server hosts several key applications:
+The server hosts several key applications:
-### **Core Infrastructure**
+### **Core Infrastructure**
-- **NGINX**: Reverse proxy for routing traffic to services via `example.org`.
-- **Bitwarden**: A self-hosted password manager for secure credential storage.
-- **Nextcloud**: A private cloud solution for file synchronization and collaboration.
+- **NGINX**: Reverse proxy for routing traffic to services via `example.org`.
-### **Networking & Security**
+### **Networking & Security**
-- **AdGuard Home**: A self-hosted DNS ad blocker for network-wide ad and tracker filtering.
+- **AdGuard Home**: A self-hosted DNS ad blocker for network-wide ad and tracker filtering.
-### **Monitoring & Storage**
+### **Monitoring & Storage**
- **Glance**: An awesome dashboard! (See the screenshot above)
-- **Hoarder**: A self-hostable bookmark-everything app (links, notes and images)
-### **Media & Content Management**
+### **Media & Content Management**
- **Arr Stack (Radarr, Sonarr, etc.)**: Automated media management tools for handling movies and TV shows. (legaly ofc)
-## **How It Works**
+## **How It Works**
-1. **Domain Configuration**
+1. **Domain Configuration**
- `example.org` is pointed to the Tailscale IP of the server. (cloudflare A record, not proxied)
- - This allows for easy access without exposing services to the internet.
+ - This allows for easy access without exposing services to the internet.
-2. **SSL Certificate Generation**
+2. **SSL Certificate Generation**
- Certificates are obtained using a **DNS-01 challenge**, verifying domain ownership without requiring public access.
-3. **NGINX Reverse Proxy**
- - Routes incoming requests from `*.example.org` to the correct internal service.
- - Ensures SSL termination and secure connections.
+3. **NGINX Reverse Proxy**
+ - Routes incoming requests from `*.example.org` to the correct internal service.
+ - Ensures SSL termination and secure connections.
-4. **Access Control**
- - Only devices within the Tailscale network can reach the services.
+4. **Access Control**
+ - Only devices within the Tailscale network can reach the services.
- Firewall rules restrict access further based on necessity.
-
-## What's Next?
-
-I want to self-host:
-
-- **A great todolist app**: One that is compatible with markdown & IOS
-- **Cyberchef**
-- **Maybe**: An app to manage finances
diff --git a/docs/THEMES.md b/docs/THEMES.md
index c6415fd..651ccda 100644
--- a/docs/THEMES.md
+++ b/docs/THEMES.md
@@ -3,19 +3,15 @@
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.
-> [!TIP]
-> To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`
-
## Create your theme
Create a copy of one of the existing themes and change the variables.
-Wallpapers are loaded from the [nixy-wallpapers](https://github.com/anotherhadi/nixy-wallpapers) repo.
+Wallpapers are loaded from the [hadi's awesome-wallpapers](https://github.com/anotherhadi/awesome-wallpapers) repo.
## Gallery
-### Nixy
+### Rose-pine
-
-
-
-
+
+
+
diff --git a/flake.lock b/flake.lock
index c032838..95e1456 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,31 +1,5 @@
{
"nodes": {
- "apple-fonts": {
- "inputs": {
- "nixpkgs": "nixpkgs",
- "ny": "ny",
- "sf-arabic": "sf-arabic",
- "sf-armenian": "sf-armenian",
- "sf-compact": "sf-compact",
- "sf-georgian": "sf-georgian",
- "sf-hebrew": "sf-hebrew",
- "sf-mono": "sf-mono",
- "sf-pro": "sf-pro"
- },
- "locked": {
- "lastModified": 1758228441,
- "narHash": "sha256-3mA9oFuhJ1EHyhPd17g/EuJi4jDYPGhyxkEitdh3Kmc=",
- "owner": "Lyndeno",
- "repo": "apple-fonts.nix",
- "rev": "aba9944f6606a69ebedf7bfb723316139eec3f72",
- "type": "github"
- },
- "original": {
- "owner": "Lyndeno",
- "repo": "apple-fonts.nix",
- "type": "github"
- }
- },
"aquamarine": {
"inputs": {
"hyprutils": [
@@ -46,11 +20,11 @@
]
},
"locked": {
- "lastModified": 1764714051,
- "narHash": "sha256-AjcMlM3UoavFoLzr0YrcvsIxALShjyvwe+o7ikibpCM=",
+ "lastModified": 1765900596,
+ "narHash": "sha256-+hn8v9jkkLP9m+o0Nm5SiEq10W0iWDSotH2XfjU45fA=",
"owner": "hyprwm",
"repo": "aquamarine",
- "rev": "a43bedcceced5c21ad36578ed823e6099af78214",
+ "rev": "d83c97f8f5c0aae553c1489c7d9eff3eadcadace",
"type": "github"
},
"original": {
@@ -80,17 +54,17 @@
"base16-fish": {
"flake": false,
"locked": {
- "lastModified": 1754405784,
- "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
+ "lastModified": 1765809053,
+ "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun",
"repo": "base16-fish",
- "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+ "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
- "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
+ "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github"
}
},
@@ -127,9 +101,101 @@
"type": "github"
}
},
+ "caelestia-cli": {
+ "inputs": {
+ "caelestia-shell": "caelestia-shell",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1766455626,
+ "narHash": "sha256-Czz+ngYowAR/4MA3Vob+D1NV5h3U6wnnpeYPT771MFI=",
+ "owner": "caelestia-dots",
+ "repo": "cli",
+ "rev": "78e0b9d795dc38fb63cfc5a59cb7fa6038a757ed",
+ "type": "github"
+ },
+ "original": {
+ "owner": "caelestia-dots",
+ "repo": "cli",
+ "type": "github"
+ }
+ },
+ "caelestia-cli_2": {
+ "inputs": {
+ "caelestia-shell": [
+ "caelestia-shell"
+ ],
+ "nixpkgs": [
+ "caelestia-shell",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1766195958,
+ "narHash": "sha256-YGawjW7RDzzOEiovrRGyRoXfjISbgLz4BVN9ZMb8LEc=",
+ "owner": "caelestia-dots",
+ "repo": "cli",
+ "rev": "8c83ae1e6a60de7d496d346bf3623f789a9f53e3",
+ "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": 1766280311,
+ "narHash": "sha256-Ty4GT6EaQFaL9E/dKcJB1Q30ByGkxXV6U1eu8+PS5Dc=",
+ "owner": "caelestia-dots",
+ "repo": "shell",
+ "rev": "66e509ae488b2c0468f2c803fd34c2625ca725dc",
+ "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": 1766280311,
+ "narHash": "sha256-Ty4GT6EaQFaL9E/dKcJB1Q30ByGkxXV6U1eu8+PS5Dc=",
+ "owner": "caelestia-dots",
+ "repo": "shell",
+ "rev": "66e509ae488b2c0468f2c803fd34c2625ca725dc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "caelestia-dots",
+ "repo": "shell",
+ "type": "github"
+ }
+ },
"eleakxir": {
"inputs": {
- "nixpkgs": "nixpkgs_2",
+ "nixpkgs": "nixpkgs",
"systems": "systems"
},
"locked": {
@@ -213,11 +279,11 @@
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
- "lastModified": 1754091436,
- "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
+ "lastModified": 1763759067,
+ "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
- "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
+ "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
@@ -268,24 +334,6 @@
"type": "github"
}
},
- "flake-utils": {
- "inputs": {
- "systems": "systems_3"
- },
- "locked": {
- "lastModified": 1731533236,
- "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
- "owner": "numtide",
- "repo": "flake-utils",
- "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
- "type": "github"
- },
- "original": {
- "owner": "numtide",
- "repo": "flake-utils",
- "type": "github"
- }
- },
"fromYaml": {
"flake": false,
"locked": {
@@ -350,32 +398,11 @@
]
},
"locked": {
- "lastModified": 1765217760,
- "narHash": "sha256-BVVyAodLcAD8KOtR3yCStBHSE0WAH/xQWH9f0qsxbmk=",
+ "lastModified": 1766387499,
+ "narHash": "sha256-AjK3/UKDzeXFeYNLVBaJ3+HLE9he1g5UrlNd4/BM3eA=",
"owner": "nix-community",
"repo": "home-manager",
- "rev": "e5b1f87841810fc24772bf4389f9793702000c9b",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "home-manager_2": {
- "inputs": {
- "nixpkgs": [
- "hyprpanel",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1750798083,
- "narHash": "sha256-DTCCcp6WCFaYXWKFRA6fiI2zlvOLCf5Vwx8+/0R8Wc4=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "ff31a4677c1a8ae506aa7e003a3dba08cb203f82",
+ "rev": "527ad07e6625302b648ed3b28c34b62a79bd103e",
"type": "github"
},
"original": {
@@ -453,17 +480,17 @@
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
- "nixpkgs": "nixpkgs_3",
+ "nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems_2",
"xdph": "xdph"
},
"locked": {
- "lastModified": 1765284242,
- "narHash": "sha256-m4YNFGyuGwsG7bf2YyUoqjTjJvRGJ6YY6bpzg4NDB5U=",
+ "lastModified": 1766498696,
+ "narHash": "sha256-74qO6ynwUav+QqNhBVn/4yoBCpU6r3/eCkX/V11uL+E=",
"ref": "refs/heads/main",
- "rev": "6712fb954f2e4f701878b97f19b7185a2cd0e192",
- "revCount": 6701,
+ "rev": "f7f357f15f83612078eb0919ca08b71cac01c25e",
+ "revCount": 6741,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@@ -507,11 +534,11 @@
]
},
"locked": {
- "lastModified": 1764812575,
- "narHash": "sha256-1bK1yGgaR82vajUrt6z+BSljQvFn91D74WJ/vJsydtE=",
+ "lastModified": 1765643131,
+ "narHash": "sha256-CCGohW5EBIRy4B7vTyBMqPgsNcaNenVad/wszfddET0=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
- "rev": "fd321368a40c782cfa299991e5584ca338e36ebe",
+ "rev": "e50ae912813bdfa8372d62daf454f48d6df02297",
"type": "github"
},
"original": {
@@ -532,11 +559,11 @@
]
},
"locked": {
- "lastModified": 1759610243,
- "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
+ "lastModified": 1765214753,
+ "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
- "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
+ "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab",
"type": "github"
},
"original": {
@@ -574,26 +601,6 @@
"type": "github"
}
},
- "hyprpanel": {
- "inputs": {
- "flake-utils": "flake-utils",
- "home-manager": "home-manager_2",
- "nixpkgs": "nixpkgs_4"
- },
- "locked": {
- "lastModified": 1762493267,
- "narHash": "sha256-W/eYgKKVqCh7SJLHk6Asc4LvU3YXvGtlL29yBMGymz4=",
- "owner": "Jas-SinghFSU",
- "repo": "HyprPanel",
- "rev": "f9a04192e8fb90a48e1756989f582dc0baec2351",
- "type": "github"
- },
- "original": {
- "owner": "Jas-SinghFSU",
- "repo": "HyprPanel",
- "type": "github"
- }
- },
"hyprtoolkit": {
"inputs": {
"aquamarine": [
@@ -658,11 +665,11 @@
]
},
"locked": {
- "lastModified": 1764962281,
- "narHash": "sha256-rGbEMhTTyTzw4iyz45lch5kXseqnqcEpmrHdy+zHsfo=",
+ "lastModified": 1766160771,
+ "narHash": "sha256-roINUGikWRqqgKrD4iotKbGj3ZKJl3hjMz5l/SyKrHw=",
"owner": "hyprwm",
"repo": "hyprutils",
- "rev": "fe686486ac867a1a24f99c753bb40ffed338e4b0",
+ "rev": "5ac060bfcf2f12b3a6381156ebbc13826a05b09f",
"type": "github"
},
"original": {
@@ -712,11 +719,11 @@
]
},
"locked": {
- "lastModified": 1764872015,
- "narHash": "sha256-INI9AVrQG5nJZFvGPSiUZ9FEUZJLfGdsqjF1QSak7Gc=",
+ "lastModified": 1766253200,
+ "narHash": "sha256-26qPwrd3od+xoYVywSB7hC2cz9ivN46VPLlrsXyGxvE=",
"owner": "hyprwm",
"repo": "hyprwire",
- "rev": "7997451dcaab7b9d9d442f18985d514ec5891608",
+ "rev": "1079777525b30a947c8d657fac158e00ae85de9d",
"type": "github"
},
"original": {
@@ -740,18 +747,36 @@
"type": "github"
}
},
+ "ndg": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_6"
+ },
+ "locked": {
+ "lastModified": 1765720983,
+ "narHash": "sha256-tWtukpABmux6EC/FuCJEgA1kmRjcRPtED44N+GGPq+4=",
+ "owner": "feel-co",
+ "repo": "ndg",
+ "rev": "f399ace8bb8e1f705dd8942b24d207aa4d75c936",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "repo": "ndg",
+ "type": "github"
+ }
+ },
"nixarr": {
"inputs": {
- "nixpkgs": "nixpkgs_5",
+ "nixpkgs": "nixpkgs_3",
"vpnconfinement": "vpnconfinement",
"website-builder": "website-builder"
},
"locked": {
- "lastModified": 1764669475,
- "narHash": "sha256-lTIxxGTYyc9pQeLvwypRVWyVnabVQg0TE/wjAC+sjFY=",
+ "lastModified": 1765731404,
+ "narHash": "sha256-eIEh60iK0L4X7UHj7dOZWZEkmWRA1H7ovjVJsfrPavQ=",
"owner": "rasmus-kirk",
"repo": "nixarr",
- "rev": "ac11a6d765bc321b514d518f0d6c1abab3fb797a",
+ "rev": "204da9209ad4e921c3562a6bca5ac8ad5b6ed9bc",
"type": "github"
},
"original": {
@@ -764,14 +789,14 @@
"inputs": {
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
- "nixpkgs": "nixpkgs_6"
+ "nixpkgs": "nixpkgs_4"
},
"locked": {
- "lastModified": 1765267850,
- "narHash": "sha256-jOLV+FOm4rKRqJOc9yAFi6pn3ocZ0vW5tSJkfxQ/BN4=",
+ "lastModified": 1766476984,
+ "narHash": "sha256-m5V4MhvDet+Pb5RTTo6I7GH2sAVh+H1fWFxZXF0GAUA=",
"owner": "kaylorben",
"repo": "nixcord",
- "rev": "7809866ea4cb0d9b49e9263dab6504020b91ff7e",
+ "rev": "2677f85e7f66ae2e182ca35d26eb44939908ece3",
"type": "github"
},
"original": {
@@ -797,85 +822,6 @@
}
},
"nixpkgs": {
- "locked": {
- "lastModified": 1757745802,
- "narHash": "sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "c23193b943c6c689d70ee98ce3128239ed9e32d1",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs-lib": {
- "locked": {
- "lastModified": 1753579242,
- "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=",
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "nixpkgs.lib",
- "type": "github"
- }
- },
- "nixpkgs-stable": {
- "locked": {
- "lastModified": 1764939437,
- "narHash": "sha256-4TLFHUwXraw9Df5mXC/vCrJgb50CRr3CzUzF0Mn3CII=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "00d2457e2f608b4be6fe8b470b0a36816324b0ae",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-25.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_10": {
- "locked": {
- "lastModified": 1764517877,
- "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_11": {
- "locked": {
- "lastModified": 1762111121,
- "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_2": {
"locked": {
"lastModified": 1757487488,
"narHash": "sha256-zwE/e7CuPJUWKdvvTCB7iunV4E/+G0lKfv4kk/5Izdg=",
@@ -891,13 +837,44 @@
"type": "github"
}
},
- "nixpkgs_3": {
+ "nixpkgs-lib": {
"locked": {
- "lastModified": 1764950072,
- "narHash": "sha256-BmPWzogsG2GsXZtlT+MTcAWeDK5hkbGRZTeZNW42fwA=",
+ "lastModified": 1761765539,
+ "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=",
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nixpkgs.lib",
+ "type": "github"
+ }
+ },
+ "nixpkgs-stable": {
+ "locked": {
+ "lastModified": 1766399428,
+ "narHash": "sha256-vS6LSOMDOB3s+L6tqw9IGujxnmUAZQnEG+Vi640LayI=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "a6c3a6141ec1b367c58ead3f7f846c772a25f4e5",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-25.05",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1766070988,
+ "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "f61125a668a320878494449750330ca58b78c557",
+ "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
"type": "github"
},
"original": {
@@ -907,61 +884,45 @@
"type": "github"
}
},
+ "nixpkgs_3": {
+ "locked": {
+ "lastModified": 1765608474,
+ "narHash": "sha256-9Wx53UK0z8Di5iesJID0tS1dRKwGxI4i7tsSanOHhF0=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "28bb483c11a1214a73f9fd2d9928a6e2ea86ec71",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixos-25.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs_4": {
"locked": {
- "lastModified": 1750776420,
- "narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
- "owner": "nixos",
+ "lastModified": 1766201043,
+ "narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
+ "owner": "NixOS",
"repo": "nixpkgs",
- "rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
+ "rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
"type": "github"
},
"original": {
- "owner": "nixos",
- "ref": "nixos-unstable",
+ "owner": "NixOS",
+ "ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
- "lastModified": 1761016216,
- "narHash": "sha256-G/iC4t/9j/52i/nm+0/4ybBmAF4hzR8CNHC75qEhjHo=",
+ "lastModified": 1766309749,
+ "narHash": "sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC+2IVK0NoVEzDoOh4DA4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "481cf557888e05d3128a76f14c76397b7d7cc869",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixos-25.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_6": {
- "locked": {
- "lastModified": 1754028485,
- "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "59e69648d345d6e8fef86158c555730fa12af9de",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-25.05",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_7": {
- "locked": {
- "lastModified": 1765186076,
- "narHash": "sha256-hM20uyap1a0M9d344I692r+ik4gTMyj60cQWO+hAYP8=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "addf7cf5f383a3101ecfba091b98d0a1263dc9b8",
+ "rev": "a6531044f6d0bef691ea18d4d4ce44d0daa6e816",
"type": "github"
},
"original": {
@@ -971,13 +932,29 @@
"type": "github"
}
},
- "nixpkgs_8": {
+ "nixpkgs_6": {
"locked": {
- "lastModified": 1761880412,
- "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=",
+ "lastModified": 1764242076,
+ "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs_7": {
+ "locked": {
+ "lastModified": 1764081664,
+ "narHash": "sha256-sUoHmPr/EwXzRMpv1u/kH+dXuvJEyyF2Q7muE+t0EU4=",
"owner": "nixos",
"repo": "nixpkgs",
- "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386",
+ "rev": "dc205f7b4fdb04c8b7877b43edb7b73be7730081",
"type": "github"
},
"original": {
@@ -987,18 +964,34 @@
"type": "github"
}
},
+ "nixpkgs_8": {
+ "locked": {
+ "lastModified": 1766125104,
+ "narHash": "sha256-l/YGrEpLromL4viUo5GmFH3K5M1j0Mb9O+LiaeCPWEM=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "7d853e518814cca2a657b72eeba67ae20ebf7059",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"nixpkgs_9": {
"locked": {
- "lastModified": 1764947035,
- "narHash": "sha256-EYHSjVM4Ox4lvCXUMiKKs2vETUSL5mx+J2FfutM7T9w=",
+ "lastModified": 1764517877,
+ "narHash": "sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4=",
"owner": "NixOS",
"repo": "nixpkgs",
- "rev": "a672be65651c80d3f592a89b3945466584a22069",
+ "rev": "2d293cbfa5a793b4c50d17c05ef9e385b90edf6c",
"type": "github"
},
"original": {
"owner": "NixOS",
- "ref": "nixpkgs-unstable",
+ "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
@@ -1033,15 +1026,16 @@
"flake-compat": "flake-compat_3",
"flake-parts": "flake-parts_2",
"mnw": "mnw",
- "nixpkgs": "nixpkgs_8",
- "systems": "systems_4"
+ "ndg": "ndg",
+ "nixpkgs": "nixpkgs_7",
+ "systems": "systems_3"
},
"locked": {
- "lastModified": 1765119282,
- "narHash": "sha256-iI0fuBBYJMnOprGD2L+rum2P8lHMcZ5n35hzdlpwayI=",
+ "lastModified": 1766412920,
+ "narHash": "sha256-EyR4W1ToExI0eqOi3g/w48WNVyocMFt4yxibQT0K5JM=",
"owner": "notashelf",
"repo": "nvf",
- "rev": "26c4a7e3c33e739d474ddaf52aa4c5f3d11922ba",
+ "rev": "45553196b35874521d667ee488ba1547ffc59734",
"type": "github"
},
"original": {
@@ -1050,18 +1044,6 @@
"type": "github"
}
},
- "ny": {
- "flake": false,
- "locked": {
- "narHash": "sha256-3257NAH4qlan2YHVLpNRy7x8IJqR2pal3OzFo/ykqXs=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg"
- }
- },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
@@ -1072,11 +1054,11 @@
]
},
"locked": {
- "lastModified": 1765016596,
- "narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
+ "lastModified": 1765911976,
+ "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
"owner": "cachix",
"repo": "git-hooks.nix",
- "rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
+ "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
"type": "github"
},
"original": {
@@ -1085,119 +1067,77 @@
"type": "github"
}
},
+ "quickshell": {
+ "inputs": {
+ "nixpkgs": [
+ "caelestia-cli",
+ "caelestia-shell",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1764663772,
+ "narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
+ "ref": "refs/heads/master",
+ "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
+ "revCount": 713,
+ "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": 1764663772,
+ "narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=",
+ "ref": "refs/heads/master",
+ "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460",
+ "revCount": 713,
+ "type": "git",
+ "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.outfoxxed.me/outfoxxed/quickshell"
+ }
+ },
"root": {
"inputs": {
- "apple-fonts": "apple-fonts",
+ "caelestia-cli": "caelestia-cli",
+ "caelestia-shell": "caelestia-shell_2",
"eleakxir": "eleakxir",
"home-manager": "home-manager",
"hyprland": "hyprland",
- "hyprpanel": "hyprpanel",
"nixarr": "nixarr",
"nixcord": "nixcord",
"nixos-hardware": "nixos-hardware",
- "nixpkgs": "nixpkgs_7",
+ "nixpkgs": "nixpkgs_5",
"nixpkgs-stable": "nixpkgs-stable",
"nvf": "nvf",
"sops-nix": "sops-nix",
"spicetify-nix": "spicetify-nix",
- "stylix": "stylix",
- "vicinae": "vicinae"
- }
- },
- "sf-arabic": {
- "flake": false,
- "locked": {
- "narHash": "sha256-/0gjRimqvZyE60xYxxPdlU+7Q2LJnnvtbmwOP0YmS9U=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Arabic.dmg"
- }
- },
- "sf-armenian": {
- "flake": false,
- "locked": {
- "narHash": "sha256-rRoDkbNMYkzOHZmQm96Zv80TZvRlAeoxkv4pMHP5nUg=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Armenian.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Armenian.dmg"
- }
- },
- "sf-compact": {
- "flake": false,
- "locked": {
- "narHash": "sha256-WeqT80cdK/XzTLSaJs5DHodzxoeAzwL/xTgdq0YwQbM=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg"
- }
- },
- "sf-georgian": {
- "flake": false,
- "locked": {
- "narHash": "sha256-IevVNOC28IiR45YfI3PsZzXLMRxuB5u7UiE53Zn6tRU=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Georgian.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Georgian.dmg"
- }
- },
- "sf-hebrew": {
- "flake": false,
- "locked": {
- "narHash": "sha256-Dw84kYwMpCtKKKqm8cZcQ9TZ7GayU5MO7W0LJw0Rcwk=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Hebrew.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Hebrew.dmg"
- }
- },
- "sf-mono": {
- "flake": false,
- "locked": {
- "narHash": "sha256-ICdHRFdNL7PM/fXJUzS7LgZxZiqcyIuCMHLze4En4vg=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Mono.dmg"
- }
- },
- "sf-pro": {
- "flake": false,
- "locked": {
- "narHash": "sha256-vprahHpCUf9O8RualBrEuLEfuLfzI/2d8AQmwlCGPPk=",
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
- },
- "original": {
- "type": "file",
- "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg"
+ "stylix": "stylix"
}
},
"sops-nix": {
"inputs": {
- "nixpkgs": "nixpkgs_9"
+ "nixpkgs": "nixpkgs_8"
},
"locked": {
- "lastModified": 1765231718,
- "narHash": "sha256-qdBzo6puTgG4G2RHG0PkADg22ZnQo1JmSVFRxrD4QM4=",
+ "lastModified": 1766289575,
+ "narHash": "sha256-BOKCwOQQIP4p9z8DasT5r+qjri3x7sPCOq+FTjY8Z+o=",
"owner": "Mic92",
"repo": "sops-nix",
- "rev": "7fd1416aba1865eddcdec5bb11339b7222c2363e",
+ "rev": "9836912e37aef546029e48c8749834735a6b9dad",
"type": "github"
},
"original": {
@@ -1211,14 +1151,14 @@
"nixpkgs": [
"nixpkgs"
],
- "systems": "systems_5"
+ "systems": "systems_4"
},
"locked": {
- "lastModified": 1765082296,
- "narHash": "sha256-EcefoixU9ht+P6QB/TfjLY9E3MdJVfeSec6G8Ges0pA=",
+ "lastModified": 1766292025,
+ "narHash": "sha256-dZ9SSqRXfb+WU9MLl5c/ktdRWYZ42uxBPB7rQYuDaJs=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
- "rev": "ac4927ea1ec7e7ea3635a1d8b933106a596c4356",
+ "rev": "73031a3c9359c6c0ab82098793573d0c0951e372",
"type": "github"
},
"original": {
@@ -1236,9 +1176,9 @@
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts_3",
"gnome-shell": "gnome-shell",
- "nixpkgs": "nixpkgs_10",
+ "nixpkgs": "nixpkgs_9",
"nur": "nur",
- "systems": "systems_6",
+ "systems": "systems_5",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@@ -1246,11 +1186,11 @@
"tinted-zed": "tinted-zed"
},
"locked": {
- "lastModified": 1765047449,
- "narHash": "sha256-VQcqjJ2g0kT9TW4ENwA2HBQJzfbCUd5s1Wm3K+R2QZY=",
+ "lastModified": 1766440186,
+ "narHash": "sha256-7B/dntEDan+pMB8B/sG6599f3mQaySAJL+c9NhdMP7k=",
"owner": "danth",
"repo": "stylix",
- "rev": "bd00e01aab676aee88e6cc5c9238b4a5a7d6639a",
+ "rev": "844294a58ef0badb3067c4f2fe063030537eb624",
"type": "github"
},
"original": {
@@ -1334,36 +1274,6 @@
"type": "github"
}
},
- "systems_6": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
- "systems_7": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
"tinted-foot": {
"flake": false,
"locked": {
@@ -1445,32 +1355,13 @@
"type": "github"
}
},
- "vicinae": {
- "inputs": {
- "nixpkgs": "nixpkgs_11",
- "systems": "systems_7"
- },
- "locked": {
- "lastModified": 1765272078,
- "narHash": "sha256-etv2HJA9OWvTkjnrjaNSqvebu9gWLIGPYb9PWr4qkfM=",
- "owner": "vicinaehq",
- "repo": "vicinae",
- "rev": "32cf6b1f82e007cddba9c9ae037eff670219cd55",
- "type": "github"
- },
- "original": {
- "owner": "vicinaehq",
- "repo": "vicinae",
- "type": "github"
- }
- },
"vpnconfinement": {
"locked": {
- "lastModified": 1759956062,
- "narHash": "sha256-NUZu0Rb0fwUjfdp51zMm0xM3lcK8Kw4c97LLog7+JjA=",
+ "lastModified": 1765634578,
+ "narHash": "sha256-Fujb9sn1cj+u/bzfo2RbQkcAvJ7Ch1pimJzFie4ptb4=",
"owner": "Maroka-chan",
"repo": "VPN-Confinement",
- "rev": "fabe7247b720b5eb4c3c053e24a2b3b70e64c52b",
+ "rev": "f2989e1e3cb06c7185939e9ddc368f88b998616a",
"type": "github"
},
"original": {
diff --git a/flake.nix b/flake.nix
index 640dd69..64c90c4 100644
--- a/flake.nix
+++ b/flake.nix
@@ -10,23 +10,29 @@
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
- hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
stylix.url = "github:danth/stylix";
- apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
nixcord.url = "github:kaylorben/nixcord";
sops-nix.url = "github:Mic92/sops-nix";
- nixarr.url = "github:rasmus-kirk/nixarr";
nvf.url = "github:notashelf/nvf";
- vicinae.url = "github:vicinaehq/vicinae";
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
+ caelestia-shell = {
+ url = "github:caelestia-dots/shell";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ caelestia-cli = {
+ url = "github:caelestia-dots/cli";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
+ # Server
eleakxir.url = "github:anotherhadi/eleakxir";
+ nixarr.url = "github:rasmus-kirk/nixarr";
};
outputs = inputs @ {nixpkgs, ...}: {
diff --git a/home/programs/alacritty/default.nix b/home/programs/alacritty/default.nix
deleted file mode 100644
index 4f02ad8..0000000
--- a/home/programs/alacritty/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# Alacritty is a fast, cross-platform, OpenGL terminal emulator.
-{
- programs.alacritty = {
- enable = true;
- settings = {
- window.padding = {
- x = 10;
- y = 10;
- };
- };
- };
-}
diff --git a/home/programs/lazygit/default.nix b/home/programs/git/lazygit.nix
similarity index 100%
rename from home/programs/lazygit/default.nix
rename to home/programs/git/lazygit.nix
diff --git a/home/programs/git/signing.nix b/home/programs/git/signing.nix
index 95d6e0b..ab73767 100644
--- a/home/programs/git/signing.nix
+++ b/home/programs/git/signing.nix
@@ -1,6 +1,6 @@
# This file is used to sign git commits using an SSH key.
{
- # Obviously, change this to your own SSH key.
+ # CHANGEME: change this to your own SSH key.
home.file.".ssh/allowed_signers".text = "* ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIINhWby7lUUXQNKbRu9/UOrGjWDf3fvoAwGHomWv/+lL";
programs.git.settings = {
diff --git a/home/programs/group/cybersecurity.nix b/home/programs/group/cybersecurity.nix
new file mode 100644
index 0000000..b863848
--- /dev/null
+++ b/home/programs/group/cybersecurity.nix
@@ -0,0 +1,15 @@
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ home.packages = with pkgs; [
+ wireshark
+ nmap
+ john
+ hashcat
+ inputs.eleakxir.packages.${stdenv.hostPlatform.system}.leak-utils
+ caido
+ nuclei
+ ];
+}
diff --git a/home/programs/kitty/default.nix b/home/programs/kitty/default.nix
deleted file mode 100644
index 7b39b91..0000000
--- a/home/programs/kitty/default.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-# Kitty is a fast, featureful, GPU based terminal emulator
-{
- programs.kitty = {
- enable = true;
- keybindings = {
- "ctrl+shift+tab" = "new_tab_with_cwd";
- "ctrl+shift+enter" = "new_window_with_cwd";
- "ctrl+j" = ''kitten pass_keys.py bottom ctrl+j'';
- "ctrl+k" = ''kitten pass_keys.py top ctrl+k'';
- "ctrl+h" = ''kitten pass_keys.py left ctrl+h'';
- "ctrl+l" = ''kitten pass_keys.py right ctrl+l'';
- };
- settings = {
- scrollback_lines = 10000;
- initial_window_width = 1200;
- initial_window_height = 600;
- update_check_interval = 0;
- enable_audio_bell = false;
- confirm_os_window_close = "0";
- remember_window_size = "no";
- disable_ligatures = "never";
- url_style = "curly";
- copy_on_select = "clipboard";
- cursor_shape = "Underline";
- cursor_underline_thickness = 3;
- cursor_trail = 3;
- cursor_trail_decay = "0.1 0.4";
- window_padding_width = 10;
- open_url_with = "default";
- allow_remote_control = "yes";
- listen_on = "unix:/tmp/mykitty";
- };
- };
-
- xdg.configFile = {
- "kitty/pass_keys.py".text = ''
- import re
-
- from kittens.tui.handler import result_handler
- from kitty.key_encoding import KeyEvent, parse_shortcut
-
-
- def is_window_vim(window, vim_id):
- fp = window.child.foreground_processes
- return any(re.search(vim_id, p['cmdline'][0] if len(p['cmdline']) else "", re.I) for p in fp)
-
-
- def encode_key_mapping(window, key_mapping):
- mods, key = parse_shortcut(key_mapping)
- event = KeyEvent(
- mods=mods,
- key=key,
- shift=bool(mods & 1),
- alt=bool(mods & 2),
- ctrl=bool(mods & 4),
- super=bool(mods & 8),
- hyper=bool(mods & 16),
- meta=bool(mods & 32),
- ).as_window_system_event()
-
- return window.encoded_key(event)
-
-
- def main():
- pass
-
-
- @result_handler(no_ui=True)
- def handle_result(args, result, target_window_id, boss):
- direction = args[1]
- key_mapping = args[2]
- vim_id = args[3] if len(args) > 3 else "n?vim"
-
- window = boss.window_id_map.get(target_window_id)
-
- if window is None:
- return
- if is_window_vim(window, vim_id):
- for keymap in key_mapping.split(">"):
- encoded = encode_key_mapping(window, keymap)
- window.write_to_child(encoded)
- else:
- boss.active_tab.neighboring_window(direction)
- '';
- "kitty/neighboring_window.py".text = ''
- def main():
- pass
-
-
- def handle_result(args, result, target_window_id, boss):
- return boss.active_tab.current_layout.name
-
-
- handle_result.no_ui = True
- '';
- };
-}
diff --git a/home/programs/nightshift/default.nix b/home/programs/nightshift/default.nix
new file mode 100644
index 0000000..749adc3
--- /dev/null
+++ b/home/programs/nightshift/default.nix
@@ -0,0 +1,19 @@
+{pkgs, ...}: let
+ nightshift-toggle =
+ pkgs.writeShellScriptBin "nightshift-toggle"
+ # bash
+ ''
+ if pidof "hyprsunset"; then
+ pkill hyprsunset
+ ${pkgs.libnotify}/bin/notify-send "Night Shift Disabled" "Returning to full spectrum light. Filter disabled."
+ else
+ ${pkgs.hyprsunset}/bin/hyprsunset -t 4500 &
+ ${pkgs.libnotify}/bin/notify-send "Night Shift Activated" "Welcome to the warm side. Blue light filtering is now active."
+ fi
+ '';
+in {
+ home.packages = with pkgs; [
+ hyprsunset
+ nightshift-toggle
+ ];
+}
diff --git a/home/scripts/nixy/default.nix b/home/programs/nixy/default.nix
similarity index 100%
rename from home/scripts/nixy/default.nix
rename to home/programs/nixy/default.nix
diff --git a/home/programs/nvf/languages.nix b/home/programs/nvf/languages.nix
index ce65bb1..0fed863 100644
--- a/home/programs/nvf/languages.nix
+++ b/home/programs/nvf/languages.nix
@@ -91,7 +91,7 @@
go.enable = true;
markdown = {
enable = true;
- format.type = "prettierd";
+ format.type = ["prettierd"];
extensions = {
markview-nvim = {
enable = true;
diff --git a/home/programs/proton/default.nix b/home/programs/proton/default.nix
new file mode 100644
index 0000000..f2d5ae4
--- /dev/null
+++ b/home/programs/proton/default.nix
@@ -0,0 +1,19 @@
+{pkgs, ...}: {
+ home.packages = with pkgs; [
+ protonvpn-gui
+ proton-pass
+ proton-authenticator
+ ];
+
+ # Fix Proton Authenticator desktop entry
+ xdg.desktopEntries = {
+ "Proton Authenticator" = {
+ name = "Proton Authenticator";
+ exec = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator";
+ icon = "proton-authenticator";
+ type = "Application";
+ categories = ["Utility"];
+ terminal = false;
+ };
+ };
+}
diff --git a/home/programs/tailscale/default.nix b/home/programs/tailscale/default.nix
deleted file mode 100644
index e2c1471..0000000
--- a/home/programs/tailscale/default.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-# Tailscale is a VPN service that works on top of WireGuard.
-# It allows me to access my servers and devices from anywhere.
-{inputs, ...}: {
- home.packages = with inputs.nixpkgs-stable.legacyPackages.x86_64-linux; [tailscale tailscale-systray];
-
- # wayland.windowManager.hyprland.settings.exec-once = ["${pkgs.tailscale-systray}/bin/tailscale-systray"];
-}
diff --git a/home/programs/thunar/default.nix b/home/programs/thunar/default.nix
index 8e2a8f8..3ee0acd 100644
--- a/home/programs/thunar/default.nix
+++ b/home/programs/thunar/default.nix
@@ -73,26 +73,25 @@ in {
'';
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = ''
-
+
-
+
-
-
-
-
+
+
+
+
-
@@ -103,35 +102,60 @@ in {
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
'';
xdg.configFile."Thunar/uca.xml".text = ''
-
- utilities-terminal
- Open Terminal Here
- 1700000000000001
- kitty -d %f
- Opens Kitty terminal in the selected folder
- *
-
-
-
-
-
- Extract here
+
+ utilities-terminal
+ Open Terminal Here
+ 1700000000000001
+ kitty -d %f
+ Opens Kitty terminal in the selected folder
+ *
+
+
+
+
+
+ Extract here
+
+ 1689618425925956-3
+ xarchiver -x . %f
+ Extracts the archive into the directory it is located in.
+ *
+ *.tar.bz2;*.tar.gz;*.tar.xz;*.tar.Z;*.tar;*.taz;*.tb2;*.tbz;*.tbz2;*.tgz;*.txz;*.zip;*.bz2;*.docx;*.apk;*.gz;*.odt;
+
+
+
+ package-x-generic
+ Compress here (tar.gz)
- 1689618425925956-3
- xarchiver -x . %f
- Extracts the archive into the directory it is located in.
+ 1700000000000003
+ tar -czvf %n.tar.gz %N
+ Creates a compressed archive (.tar.gz) of selected files/folders.
*
- *.tar.bz2;*.tar.gz;*.tar.xz;*.tar.Z;*.tar;*.taz;*.tb2;*.tbz;*.tbz2;*.tgz;*.txz;*.zip;*.bz2;*.docx;*.apk;*.gz;*.odt;
+ *
+
-
+
'';
}
diff --git a/home/programs/vivaldi/default.nix b/home/programs/vivaldi/default.nix
new file mode 100644
index 0000000..b344c8b
--- /dev/null
+++ b/home/programs/vivaldi/default.nix
@@ -0,0 +1,12 @@
+{pkgs, ...}: {
+ programs.vivaldi = {
+ enable = true;
+ commandLineArgs = [
+ "--no-default-browser-check"
+ ];
+ };
+
+ home.sessionVariables = {
+ DEFAULT_BROWSER = "${pkgs.vivaldi}/bin/vivaldi";
+ };
+}
diff --git a/home/system/zathura/default.nix b/home/programs/zathura/default.nix
similarity index 84%
rename from home/system/zathura/default.nix
rename to home/programs/zathura/default.nix
index 8cb738a..510e3de 100644
--- a/home/system/zathura/default.nix
+++ b/home/programs/zathura/default.nix
@@ -1,3 +1,4 @@
+# TODO: Misc section with VLC, Zathura etc
# Zathura is a PDF viewer
{
programs.zathura = {
diff --git a/home/scripts/brightness/default.nix b/home/scripts/brightness/default.nix
deleted file mode 100644
index 10d6ee6..0000000
--- a/home/scripts/brightness/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-# - ## Brightness
-#-
-#- This module provides a set of scripts to control the brightness of the screen.
-#-
-#- - `brightness-up` increases the brightness by 5%.
-#- - `brightness-down` decreases the brightness by 5%.
-#- - `brightness-set [value]` sets the brightness to the given value.
-#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
-{pkgs, ...}: let
- increments = "5";
-
- brightness-change = pkgs.writeShellScriptBin "brightness-change" ''
- [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+
- [[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%-
- '';
-
- brightness-set = pkgs.writeShellScriptBin "brightness-set" ''
- ${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}%
- '';
-
- brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
- brightness-change up ${increments}
- '';
-
- brightness-down = pkgs.writeShellScriptBin "brightness-down" ''
- brightness-change down ${increments}
- '';
-in {
- home.packages = [
- pkgs.brightnessctl
- brightness-change
- brightness-up
- brightness-down
- brightness-set
- ];
-}
diff --git a/home/scripts/caffeine/default.nix b/home/scripts/caffeine/default.nix
deleted file mode 100644
index 8941223..0000000
--- a/home/scripts/caffeine/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-# - ## Caffeine
-#-
-#- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
-#-
-#- - `caffeine-status` - Check if hypridle is running. (0/1)
-#- - `caffeine-status-icon` - Check if hypridle is running. (icon)
-#- - `caffeine` - Toggle hypridle.
-{pkgs, ...}: let
- caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
- [[ $(pidof "hypridle") ]] && echo "0" || echo "1"
- '';
-
- caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
- [[ $(pidof "hypridle") ]] && echo "" || echo ""
- '';
-
- caffeine = pkgs.writeShellScriptBin "caffeine" ''
- if [[ $(pidof "hypridle") ]]; then
- systemctl --user stop hypridle.service
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Caffeine On" --custom-icon="emblem-default"
- else
- systemctl --user start hypridle.service
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Caffeine Off" --custom-icon="emblem-default"
- fi
- '';
-in {home.packages = [caffeine-status caffeine caffeine-status-icon];}
diff --git a/home/scripts/default.nix b/home/scripts/default.nix
deleted file mode 100644
index f8b36f7..0000000
--- a/home/scripts/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- imports = [
- ./nixy
- ./sounds
- ./brightness
- ./caffeine
- ./hyprpanel
- ./hyprfocus
- ./night-shift
- ./screenshot
- ./nerdfont-fzf
- ./notification
- ./system
- ];
-}
diff --git a/home/scripts/hyprfocus/default.nix b/home/scripts/hyprfocus/default.nix
deleted file mode 100644
index 3dfb55b..0000000
--- a/home/scripts/hyprfocus/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-# - ## Hyprfocus
-#-
-#- A simple script to toggle focus on few windows in Hyprland.
-#- (disable gaps, border, shadow, opacity, etc.)
-#-
-#- - `hyprfocus-on` - Enable hyprfocus.
-#- - `hyprfocus-off` - Disable hyprfocus.
-#- - `hyprfocus-toggle` - Toggle hyprfocus.
-{pkgs, ...}: let
- hyprfocus-on =
- pkgs.writeShellScriptBin "hyprfocus-on"
- # bash
- ''
- hyprpanel-hide
-
- hyprctl --batch "\
- keyword animations:enabled 0;\
- keyword decoration:shadow:enabled 0;\
- keyword decoration:blur:enabled 0;\
- keyword general:gaps_in 0;\
- keyword general:gaps_out 0;\
- keyword general:border_size 1;\
- keyword decoration:rounding 0;\
- keyword decoration:inactive_opacity 1;\
- keyword decoration:active_opacity 1"
-
- echo "1" > /tmp/hyprfocus
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Hyprfocus On" --custom-icon="emblem-default"
- '';
-
- hyprfocus-off =
- pkgs.writeShellScriptBin "hyprfocus-off"
- # bash
- ''
- hyprctl reload
- hyprpanel-show
- rm /tmp/hyprfocus
-
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Hyprfocus Off" --custom-icon="emblem-default"
- '';
-
- hyprfocus-toggle =
- pkgs.writeShellScriptBin "hyprfocus-toggle"
- # bash
- ''
- if [ -f /tmp/hyprfocus ]; then
- hyprfocus-off
- else
- hyprfocus-on
- fi
- '';
-in {home.packages = [hyprfocus-on hyprfocus-off hyprfocus-toggle];}
diff --git a/home/scripts/hyprpanel/default.nix b/home/scripts/hyprpanel/default.nix
deleted file mode 100644
index ecd443f..0000000
--- a/home/scripts/hyprpanel/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-# - ## Hyprpanel
-#-
-#- Quick scripts to toggle, reload, hide & show hyprpanel.
-#-
-#- - `hyprpanel-toggle` - Toggle hyprpanel (hide/show).
-#- - `hyprpanel-show` - Show hyprpanel.
-#- - `hyprpanel-hide` - Hide hyprpanel.
-#- - `hyprpanel-reload` - Reload hyprpanel.
-{pkgs, ...}: let
- hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" ''
- hyprpanel toggleWindow bar-0
- hyprpanel toggleWindow bar-1
- hyprpanel toggleWindow bar-2
- hyprpanel toggleWindow bar-3
- '';
-
- hyprpanel-hide = pkgs.writeShellScriptBin "hyprpanel-hide" ''
- status=$(hyprpanel isWindowVisible bar-0)
- if [[ $status == "true" ]]; then
- hyprpanel toggleWindow bar-0
- fi
- status=$(hyprpanel isWindowVisible bar-1)
- if [[ $status == "true" ]]; then
- hyprpanel toggleWindow bar-1
- fi
- '';
-
- hyprpanel-show = pkgs.writeShellScriptBin "hyprpanel-show" ''
- status=$(hyprpanel isWindowVisible bar-0)
- if [[ $status == "false" ]]; then
- hyprpanel toggleWindow bar-0
- fi
- status=$(hyprpanel isWindowVisible bar-1)
- if [[ $status == "false" ]]; then
- hyprpanel toggleWindow bar-1
- fi
- '';
-
- hyprpanel-reload = pkgs.writeShellScriptBin "hyprpanel-reload" ''
- [ $(pgrep "hyprpanel") ] && pkill hyprpanel
- hyprctl dispatch exec hyprpanel
- '';
-in {
- home.packages = [hyprpanel-toggle hyprpanel-reload hyprpanel-hide hyprpanel-show];
-}
diff --git a/home/scripts/nerdfont-fzf/default.nix b/home/scripts/nerdfont-fzf/default.nix
deleted file mode 100644
index 6066ece..0000000
--- a/home/scripts/nerdfont-fzf/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-# - ## Nerdfont FZF
-#-
-#- This module provides a script to search for Nerd Fonts icons using fzf.
-#-
-#- - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
-{
- pkgs,
- config,
- ...
-}: let
- nerdfont-fzf = pkgs.writeShellScriptBin "nerdfont-fzf" ''
- icons=$(${pkgs.jq}/bin/jq -r 'to_entries[] | "\(.key):\(.value.char)"' "/home/${config.var.username}/.config/nerdfont_glyphnames.json" | awk -F: '{print "\033[95m "$2" \033[0m "$1}')
- fzf_result=$(echo "$icons" | ${pkgs.fzf}/bin/fzf --ansi --border none | awk '{print $1}')
- if [ -z "$fzf_result" ]; then
- echo "No icon selected"
- exit 1
- fi
-
- echo "Copied to clipboard: $fzf_result"
- ${pkgs.wl-clipboard}/bin/wl-copy "$fzf_result"
- '';
-in {
- home.packages = [nerdfont-fzf];
-
- xdg.configFile."nerdfont_glyphnames.json" = {
- source = pkgs.fetchurl {
- url = "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/384b1825ea0037b0314f7f9c660a80c1ecdb219a/glyphnames.json";
- hash = "sha256-Ps0dyFcMs51RMTthBOVSOf/lafPV/53JxuNSKlmZ7cc=";
- };
- };
-}
diff --git a/home/scripts/night-shift/default.nix b/home/scripts/night-shift/default.nix
deleted file mode 100644
index 1c6ca82..0000000
--- a/home/scripts/night-shift/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-# - ## Night-Shift
-#-
-#- Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
-#- It use hyprsunset to control the screen temperature.
-#-
-#- - `night-shift-on` activates Night-Shift.
-#- - `night-shift-off` deactivates Night-Shift.
-#- - `night-shift` toggles Night-Shift.
-#- - `night-shift-status` checks if Night-Shift is active. (0/1)
-#- - `night-shift-status-icon` checks if Night-Shift is active. (icon)
-{pkgs, ...}: let
- value = "4500"; # Default value for night-shift temperature
-
- night-shift-on =
- pkgs.writeShellScriptBin "night-shift-on"
- # bash
- ''
- ${pkgs.hyprsunset}/bin/hyprsunset -t ${value} &
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Night-Shift On" --custom-icon="emblem-default"
- '';
-
- night-shift-off =
- pkgs.writeShellScriptBin "night-shift-off"
- # bash
- ''
- pkill hyprsunset
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Night-Shift Off" --custom-icon="emblem-default"
- '';
-
- night-shift =
- pkgs.writeShellScriptBin "night-shift"
- # bash
- ''
- if pidof "hyprsunset"; then
- night-shift-off
- else
- night-shift-on
- fi
- '';
-
- night-shift-status =
- pkgs.writeShellScriptBin "night-shift-status"
- # bash
- ''
- if pidof "hyprsunset"; then
- echo "1"
- else
- echo "0"
- fi
- '';
-
- night-shift-status-icon =
- pkgs.writeShellScriptBin "night-shift-status-icon"
- # bash
- ''
- if pidof "hyprsunset"; then
- echo ""
- else
- echo ""
- fi
- '';
-in {
- home.packages = [
- pkgs.hyprsunset
- night-shift-on
- night-shift-off
- night-shift
- night-shift-status
- night-shift-status-icon
- ];
-}
diff --git a/home/scripts/notification/default.nix b/home/scripts/notification/default.nix
deleted file mode 100644
index 9b813ac..0000000
--- a/home/scripts/notification/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-# - ## Notif
-#-
-# This file provides a script to send custom notifications using `notify-send`.
-#-
-#- - `notif {id} {title} {description}` - Sends a notification
-{pkgs, ...}: let
- notif =
- pkgs.writeShellScriptBin "notif" # bash
-
- ''
- # Shell script to send custom notifications
- # Usage: notif "sender_id" "message" ["description"]
- NOTIF_FOLDER="/tmp/notif"
- sender_id=$1 # To overwrite existing notifications
- title=$2
- description=$3
-
- [[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER
- [[ -f "$NOTIF_FOLDER/$sender_id" ]] || (echo "0" > "$NOTIF_FOLDER/$sender_id")
-
- old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id")
- [[ -z "$old_notification_id" ]] && old_notification_id=0
-
- ${pkgs.libnotify}/bin/notify-send \
- --replace-id="$old_notification_id" --print-id \
- --app-name="$sender_id" \
- "$title" \
- "$description" \
- > "$NOTIF_FOLDER/$sender_id"
- '';
-in {home.packages = [pkgs.libnotify notif];}
diff --git a/home/scripts/screenshot/default.nix b/home/scripts/screenshot/default.nix
deleted file mode 100644
index 78ebb11..0000000
--- a/home/scripts/screenshot/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-# - ## Screenshot
-#-
-#- This module provides a script to take screenshots using `grimblast` and `swappy`.
-#-
-#- - `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
-{pkgs, ...}: let
- screenshot = pkgs.writeShellScriptBin "screenshot" ''
- if [[ $2 == "swappy" ]];then
- folder="/tmp"
- else
- folder="$HOME/Pictures"
- fi
- filename="$(date +%Y-%m-%d_%H:%M:%S).png"
-
- if [[ $1 == "window" ]];then
- mode="active"
- elif [[ $1 == "region" ]];then
- mode="area"
- elif [[ $1 == "monitor" ]];then
- mode="output"
- fi
-
- ${pkgs.grimblast}/bin/grimblast --notify --freeze copysave $mode "$folder/$filename" || exit 1
-
- if [[ $2 == "swappy" ]];then
- ${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/$filename"
- exit 0
- fi
- '';
-in {
- home.packages = [ screenshot pkgs.grim pkgs.grimblast ];
-}
diff --git a/home/scripts/sounds/default.nix b/home/scripts/sounds/default.nix
deleted file mode 100644
index 3d8ef1c..0000000
--- a/home/scripts/sounds/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-# - ## Sound
-#-
-#- This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
-#-
-#- - `sound-up` increases the volume by 5%.
-#- - `sound-down` decreases the volume by 5%.
-#- - `sound-set [value]` sets the volume to the given value.
-#- - `sound-toggle` toggles the mute state of the default audio sink.
-{pkgs, ...}: let
- increments = "5";
-
- sound-change = pkgs.writeShellScriptBin "sound-change" ''
- [[ $1 == "mute" ]] && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
- [[ $1 == "up" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-${increments}}%+
- [[ $1 == "down" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-${increments}}%-
- [[ $1 == "set" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-100}%
- '';
-
- sound-up = pkgs.writeShellScriptBin "sound-up" ''
- sound-change up ${increments}
- '';
-
- sound-set = pkgs.writeShellScriptBin "sound-set" ''
- sound-change set ''${1-100}
- '';
-
- sound-down = pkgs.writeShellScriptBin "sound-down" ''
- sound-change down ${increments}
- '';
-
- sound-toggle = pkgs.writeShellScriptBin "sound-toggle" ''
- sound-change mute
- '';
-in {
- home.packages = [sound-change sound-up sound-down sound-toggle sound-set];
-}
diff --git a/home/scripts/system/default.nix b/home/scripts/system/default.nix
deleted file mode 100644
index b37dcf4..0000000
--- a/home/scripts/system/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-# - ## System
-#-
-#- Usefull quick scripts
-#-
-#- - `lock` - Lock the screen. (hyprlock)
-#- - `powermode-toggle` - Toggle between performance and balanced power mode. (powerprofilesctl)
-{pkgs, ...}: let
- menu =
- pkgs.writeShellScriptBin "menu"
- # bash
- ''
- if pgrep wofi; then
- pkill wofi
- else
- wofi -p "Apps" --show drun
- fi
- '';
- powermenu =
- pkgs.writeShellScriptBin "powermenu"
- # bash
- ''
- if pgrep wofi >/dev/null; then
- pkill wofi
- exit 0
- fi
-
- declare -A actions=(
- [" Lock"]="hyprlock"
- [" Logout"]="hyprctl dispatch exit"
- [" Suspend"]="systemctl suspend"
- [" Reboot"]="systemctl reboot"
- [" Shutdown"]="systemctl poweroff"
- )
-
- selected_option=$(
- printf '%s\n' "''${!actions[@]}" | wofi -p "Powermenu" --dmenu
- )
-
- if [[ -n "$selected_option" ]]; then
-
- action_command=''${actions["''$selected_option"]}
-
- if [[ -n "$action_command" ]]; then
- eval "$action_command"
- fi
- fi
- '';
-
- lock =
- pkgs.writeShellScriptBin "lock"
- # bash
- ''
- ${pkgs.hyprlock}/bin/hyprlock
- '';
-
- powermode-toggle =
- pkgs.writeShellScriptBin "powermode-toggle"
- # bash
- ''
- current_profile=$(powerprofilesctl get)
- if [ "$current_profile" = "performance" ]; then
- powerprofilesctl set balanced
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Powermode set to balanced" --custom-icon="emblem-default"
- else
- powerprofilesctl set performance
- ${pkgs.swayosd}/bin/swayosd-client --custom-message="Powermode set to performance" --custom-icon="emblem-default"
- fi
- '';
-in {home.packages = [lock powermode-toggle menu powermenu];}
diff --git a/home/system/caelestia-shell/appearance.nix b/home/system/caelestia-shell/appearance.nix
new file mode 100644
index 0000000..6951199
--- /dev/null
+++ b/home/system/caelestia-shell/appearance.nix
@@ -0,0 +1,49 @@
+{
+ pkgs,
+ config,
+ ...
+}: let
+ rounding = config.theme.rounding + config.theme.gaps-out;
+ inherit (config.stylix) fonts;
+in {
+ home.packages = with pkgs; [
+ papirus-icon-theme
+ ];
+
+ programs.caelestia.settings = {
+ paths.sessionGif = ./session-gif-hacker-cat.gif;
+ background.enabled = false;
+ appearance = {
+ transparency = {
+ enable = true;
+ base = 0.85;
+ layers = 0.4;
+ };
+ font.family = {
+ material = "Material Symbols Rounded";
+ mono = fonts.monospace.name;
+ sans = fonts.sansSerif.name;
+ };
+ };
+ utilities = {
+ enabled = true;
+ maxToasts = 4;
+ toasts = {
+ audioInputChanged = true;
+ audioOutputChanged = true;
+ capsLockChanged = false;
+ chargingChanged = true;
+ configLoaded = false;
+ dndChanged = true;
+ gameModeChanged = true;
+ numLockChanged = false;
+ nowPlaying = false;
+ kbLayoutChanged = false;
+ };
+ };
+ border = {
+ inherit rounding;
+ thickness = 8;
+ };
+ };
+}
diff --git a/home/system/caelestia-shell/bar.nix b/home/system/caelestia-shell/bar.nix
new file mode 100644
index 0000000..b85de87
--- /dev/null
+++ b/home/system/caelestia-shell/bar.nix
@@ -0,0 +1,69 @@
+{
+ programs.caelestia.settings.bar = {
+ clock.showIcon = false;
+ popouts.activeWindow = false;
+ persistent = true;
+ status = {
+ showBattery = true;
+ showMicrophone = false;
+ showLockStatus = false;
+ showBluetooth = true;
+ showAudio = true;
+ showKbLayout = false;
+ showNetwork = true;
+ };
+ workspaces = {
+ activeIndicator = true;
+ activeLabel = " ";
+ activeTrail = false;
+ label = " ";
+ occupiedBg = true;
+ occupiedLabel = " ";
+ rounded = true;
+ showWindows = false;
+ shown = 5;
+ };
+ entries = [
+ {
+ id = "logo";
+ enabled = true;
+ }
+ {
+ id = "workspaces";
+ enabled = true;
+ }
+ {
+ id = "spacer";
+ enabled = true;
+ }
+ {
+ id = "activeWindow";
+ enabled = true;
+ }
+ {
+ id = "spacer";
+ enabled = true;
+ }
+ {
+ id = "tray";
+ enabled = true;
+ }
+ {
+ id = "clock";
+ enabled = true;
+ }
+ {
+ id = "statusIcons";
+ enabled = true;
+ }
+ {
+ id = "power";
+ enabled = true;
+ }
+ ];
+ tray = {
+ background = false;
+ recolour = false;
+ };
+ };
+}
diff --git a/home/system/caelestia-shell/bindings.nix b/home/system/caelestia-shell/bindings.nix
new file mode 100644
index 0000000..82665fc
--- /dev/null
+++ b/home/system/caelestia-shell/bindings.nix
@@ -0,0 +1,58 @@
+{
+ wayland.windowManager.hyprland.settings = {
+ 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"
+ ];
+ bind = [
+ # Launcher
+ "$mod, SPACE, global, caelestia:launcher"
+ "$mod, X, global, caelestia:session" # Powermenu
+
+ # Misc
+ "$mod, L, global, caelestia:lock"
+ "$mod, N, exec, caelestia shell drawers toggle sidebar"
+
+ # Utilities
+ "$mod+Shift, SPACE, exec, caelestia shell gameMode toggle" # Toggle Focus/Game mode
+ "$mod+Shift, S, global, caelestia:screenshotFreeze" # Capture region (freeze)
+ "$mod+Shift+Alt, S, global, caelestia:screenshot" # Capture region
+ "$mod+Alt, R, exec, caelestia record -s" # Record screen with sound
+ "Ctrl+Alt, R, exec, caelestia record" # Record screen
+ "$mod+Shift+Alt, R, exec, caelestia record -r" # Record region
+
+ "$mod+Shift, E, exec, pkill fuzzel || caelestia emoji -p"
+ ];
+ bindl = [
+ # Brightness
+ ", XF86MonBrightnessUp, global, caelestia:brightnessUp"
+ ", XF86MonBrightnessDown, global, caelestia:brightnessDown"
+ "$mod, F2, exec, nightshift-toggle"
+ "$mod, F3, exec, nightshift-toggle"
+
+ # Media
+ ", XF86AudioPlay, global, caelestia:mediaToggle"
+ ", XF86AudioPause, global, caelestia:mediaToggle"
+ ", XF86AudioNext, global, caelestia:mediaNext"
+ ", XF86AudioPrev, global, caelestia:mediaPrev"
+ ", XF86AudioStop, global, caelestia:mediaStop"
+
+ # Sound
+ ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+
+ # Utilities
+ ", Print, exec, caelestia screenshot" # Full screen capture > clipboard
+ ];
+ bindle = [
+ ", 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%-"
+ ];
+ };
+}
diff --git a/home/system/caelestia-shell/default.nix b/home/system/caelestia-shell/default.nix
new file mode 100644
index 0000000..9be94da
--- /dev/null
+++ b/home/system/caelestia-shell/default.nix
@@ -0,0 +1,62 @@
+# Caelestia Shell Home Manager Configuration
+# See https://github.com/caelestia-dots/shell
+{
+ pkgs,
+ inputs,
+ ...
+}: {
+ imports = [
+ inputs.caelestia-shell.homeManagerModules.default
+ ./bindings.nix
+ ./bar.nix
+ ./launcher.nix
+ ./appearance.nix
+ ./scheme.nix
+ ];
+
+ programs.caelestia = {
+ enable = true;
+ systemd.enable = false;
+ settings = {
+ services.weatherLocation = "Paris";
+ general = {
+ apps = {
+ terminal = ["ghostty"];
+ audio = ["pavucontrol"];
+ explorer = ["thunar"];
+ };
+ idle = {
+ timeouts = [];
+ };
+ };
+ };
+ cli = {
+ enable = true;
+ settings.theme = {
+ enableTerm = false;
+ enableDiscord = false;
+ enableSpicetify = false;
+ enableBtop = false;
+ enableCava = false;
+ enableHypr = false;
+ enableGtk = false;
+ enableQt = false;
+ };
+ };
+ };
+
+ home.packages = with pkgs; [
+ gpu-screen-recorder
+ ];
+
+ wayland.windowManager.hyprland.settings.exec-once = [
+ "uwsm app -- caelestia resizer -d"
+ "uwsm app -- caelestia shell -d"
+ "caelestia scheme set -n custom"
+ ];
+
+ services.cliphist = {
+ enable = true;
+ allowImages = true;
+ };
+}
diff --git a/home/system/caelestia-shell/launcher.nix b/home/system/caelestia-shell/launcher.nix
new file mode 100644
index 0000000..149f59a
--- /dev/null
+++ b/home/system/caelestia-shell/launcher.nix
@@ -0,0 +1,124 @@
+{
+ programs.caelestia.settings = {
+ session.commands = {
+ logout = ["loginctl" "terminate-user" ""];
+ shutdown = ["systemctl" "poweroff"];
+ hibernate = ["systemctl" "hibernate"];
+ reboot = ["systemctl" "reboot"];
+ };
+ launcher = {
+ actionPrefix = "/";
+ actions = [
+ {
+ name = "Calculator";
+ icon = "calculate";
+ description = "Do simple math equations (powered by Qalc)";
+ command = ["autocomplete" "calc"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Shutdown";
+ icon = "power_settings_new";
+ description = "Shutdown the system";
+ command = ["systemctl" "poweroff"];
+ enabled = true;
+ dangerous = true;
+ }
+ {
+ name = "Reboot";
+ icon = "cached";
+ description = "Reboot the system";
+ command = ["systemctl" "reboot"];
+ enabled = true;
+ dangerous = true;
+ }
+ {
+ name = "Logout";
+ icon = "exit_to_app";
+ description = "Log out of the current session";
+ command = ["loginctl" "terminate-user" ""];
+ enabled = true;
+ dangerous = true;
+ }
+ {
+ name = "Lock";
+ icon = "lock";
+ description = "Lock the current session";
+ command = ["loginctl" "lock-session"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Sleep";
+ icon = "bedtime";
+ description = "Suspend then hibernate";
+ command = ["systemctl" "suspend-then-hibernate"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Restart caelestia";
+ icon = "cached";
+ description = "Restart caelestia";
+ command = ["hyprctl" "dispatch" "exec" "caelestia-shell kill | sleep 1 | caelestia-shell"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Emoji Picker";
+ icon = "mood";
+ description = "Toggle the emoji picker";
+ command = ["caelestia" "emoji" "-p"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Clipboard History";
+ icon = "content_paste";
+ description = "Toggle the clipboard history";
+ command = ["caelestia" "clipboard"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Delete from Clipboard History";
+ icon = "content_paste_off";
+ description = "Delete a line from the clipboard history";
+ command = ["caelestia" "clipboard"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Night Shift";
+ icon = "moon_stars";
+ description = "Toggle Night Shift, the blue light filter";
+ command = ["nightshift-toggle"];
+ enabled = true;
+ dangerous = false;
+ }
+ {
+ name = "Hyprpicker";
+ icon = "colorize";
+ description = "Pick an hex color";
+ command = ["hyprpicker" "-a"];
+ enabled = true;
+ dangerous = false;
+ }
+ ];
+ dragThreshold = 50;
+ enableDangerousActions = false;
+ maxShown = 7;
+ specialPrefix = "@";
+ useFuzzy = {
+ apps = false;
+ actions = false;
+ schemes = false;
+ variants = false;
+ wallpapers = false;
+ };
+ showOnHover = false;
+ hiddenApps = [];
+ };
+ };
+}
diff --git a/home/system/caelestia-shell/scheme.nix b/home/system/caelestia-shell/scheme.nix
new file mode 100644
index 0000000..eb1f0df
--- /dev/null
+++ b/home/system/caelestia-shell/scheme.nix
@@ -0,0 +1,132 @@
+# This Nix module customizes the color scheme of the Caelestia CLI application using the Stylix base16 color palette.
+{
+ pkgs,
+ inputs,
+ config,
+ ...
+}: let
+ colors = config.lib.stylix.colors;
+
+ customSchemeFile = pkgs.writeText "custom-dark.txt" ''
+ primary_paletteKeyColor ${colors.base0D}
+ secondary_paletteKeyColor ${colors.base04}
+ tertiary_paletteKeyColor ${colors.base08}
+ neutral_paletteKeyColor ${colors.base03}
+ neutral_variant_paletteKeyColor ${colors.base03}
+ background ${colors.base00}
+ onBackground ${colors.base05}
+ surface ${colors.base00}
+ surfaceDim ${colors.base00}
+ surfaceBright ${colors.base02}
+ surfaceContainerLowest ${colors.base01}
+ surfaceContainerLow ${colors.base01}
+ surfaceContainer ${colors.base01}
+ surfaceContainerHigh ${colors.base02}
+ surfaceContainerHighest ${colors.base02}
+ onSurface ${colors.base05}
+ surfaceVariant ${colors.base02}
+ onSurfaceVariant ${colors.base04}
+ inverseSurface ${colors.base05}
+ inverseOnSurface ${colors.base00}
+ outline ${colors.base03}
+ outlineVariant ${colors.base02}
+ shadow ${colors.base00}
+ scrim ${colors.base00}
+ surfaceTint ${colors.base0D}
+ primary ${colors.base0D}
+ onPrimary ${colors.base00}
+ primaryContainer ${colors.base0D}
+ onPrimaryContainer ${colors.base05}
+ inversePrimary ${colors.base0D}
+ secondary ${colors.base0C}
+ onSecondary ${colors.base00}
+ secondaryContainer ${colors.base02}
+ onSecondaryContainer ${colors.base0C}
+ tertiary ${colors.base08}
+ onTertiary ${colors.base00}
+ tertiaryContainer ${colors.base08}
+ onTertiaryContainer ${colors.base00}
+ error ${colors.base08}
+ onError ${colors.base00}
+ errorContainer ${colors.base08}
+ onErrorContainer ${colors.base05}
+ primaryFixed ${colors.base0D}
+ primaryFixedDim ${colors.base0D}
+ onPrimaryFixed ${colors.base00}
+ onPrimaryFixedVariant ${colors.base00}
+ secondaryFixed ${colors.base0C}
+ secondaryFixedDim ${colors.base0C}
+ onSecondaryFixed ${colors.base00}
+ onSecondaryFixedVariant ${colors.base02}
+ tertiaryFixed ${colors.base08}
+ tertiaryFixedDim ${colors.base08}
+ onTertiaryFixed ${colors.base00}
+ onTertiaryFixedVariant ${colors.base00}
+ term0 ${colors.base00}
+ term1 ${colors.base08}
+ term2 ${colors.base0B}
+ term3 ${colors.base0A}
+ term4 ${colors.base0D}
+ term5 ${colors.base0E}
+ term6 ${colors.base0C}
+ term7 ${colors.base05}
+ term8 ${colors.base03}
+ term9 ${colors.base08}
+ term10 ${colors.base0B}
+ term11 ${colors.base0A}
+ term12 ${colors.base0D}
+ term13 ${colors.base0E}
+ term14 ${colors.base0C}
+ term15 ${colors.base07}
+ rosewater ${colors.base06}
+ flamingo ${colors.base0F}
+ pink ${colors.base0E}
+ mauve ${colors.base0D}
+ red ${colors.base08}
+ maroon ${colors.base08}
+ peach ${colors.base09}
+ yellow ${colors.base0A}
+ green ${colors.base0B}
+ teal ${colors.base0C}
+ sky ${colors.base0C}
+ sapphire ${colors.base0C}
+ blue ${colors.base0D}
+ lavender ${colors.base0D}
+ klink ${colors.base0D}
+ klinkSelection ${colors.base0D}
+ kvisited ${colors.base0E}
+ kvisitedSelection ${colors.base0E}
+ knegative ${colors.base08}
+ knegativeSelection ${colors.base08}
+ kneutral ${colors.base0A}
+ kneutralSelection ${colors.base0A}
+ kpositive ${colors.base0B}
+ kpositiveSelection ${colors.base0B}
+ text ${colors.base05}
+ subtext1 ${colors.base04}
+ subtext0 ${colors.base03}
+ overlay2 ${colors.base03}
+ overlay1 ${colors.base03}
+ overlay0 ${colors.base02}
+ surface2 ${colors.base02}
+ surface1 ${colors.base01}
+ surface0 ${colors.base01}
+ base ${colors.base00}
+ mantle ${colors.base00}
+ crust ${colors.base00}
+ success ${colors.base0B}
+ onSuccess ${colors.base00}
+ successContainer ${colors.base0B}
+ onSuccessContainer ${colors.base05}
+ '';
+
+ customCli = inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs (oldAttrs: {
+ postUnpack = ''
+ mkdir -p $sourceRoot/src/caelestia/data/schemes/custom/main
+ cp ${customSchemeFile} $sourceRoot/src/caelestia/data/schemes/custom/main/dark.txt
+ echo "Custom scheme added to source"
+ '';
+ });
+in {
+ programs.caelestia.cli.package = customCli;
+}
diff --git a/home/system/caelestia-shell/session-gif-hacker-cat.gif b/home/system/caelestia-shell/session-gif-hacker-cat.gif
new file mode 100644
index 0000000..4cc58d5
Binary files /dev/null and b/home/system/caelestia-shell/session-gif-hacker-cat.gif differ
diff --git a/home/system/hypridle/default.nix b/home/system/hypridle/default.nix
deleted file mode 100644
index 63089b3..0000000
--- a/home/system/hypridle/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-# Hypridle is a daemon that listens for user activity and runs commands when the user is idle.
-{
- pkgs,
- lib,
- ...
-}: {
- services.hypridle = {
- enable = true;
- settings = {
- general = {
- ignore_dbus_inhibit = false;
- lock_cmd = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
- before_sleep_cmd = "loginctl lock-session";
- after_sleep_cmd = "hyprctl dispatch dpms on";
- };
-
- listener = [
- {
- timeout = 600;
- on-timeout = "pidof hyprlock || ${pkgs.hyprlock}/bin/hyprlock";
- }
-
- {
- timeout = 660;
- on-timeout = "systemctl suspend";
- }
- ];
- };
- };
- systemd.user.services.hypridle.Unit.After =
- lib.mkForce "graphical-session.target";
-}
diff --git a/home/system/hyprland/bindings.nix b/home/system/hyprland/bindings.nix
index 7d0b796..65cdd4c 100644
--- a/home/system/hyprland/bindings.nix
+++ b/home/system/hyprland/bindings.nix
@@ -1,20 +1,19 @@
{pkgs, ...}: {
wayland.windowManager.hyprland.settings = {
+ "$mod" = "SUPER";
+ "$shiftMod" = "SUPER_SHIFT";
+
bind =
[
"$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal)
"$mod,E, exec, uwsm app -- ${pkgs.xfce.thunar}/bin/thunar" # Thunar
- "$mod,B, exec, uwsm app -- ${pkgs.brave}/bin/brave" # Brave Browser
+ "$mod,B, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi" # Browser (Vivaldi)
"$mod,K, exec, uwsm app -- ${pkgs.proton-pass}/bin/proton-pass" # Proton Pass
- "$mod,M, exec, uwsm app -- ${pkgs.protonmail-desktop}/bin/proton-mail" # Proton Mail
"$mod,V, exec, uwsm app -- ${pkgs.protonvpn-gui}/bin/protonvpn-app" # Proton VPN
- "$mod,A, exec, uwsm app -- ${pkgs.proton-authenticator}/bin/proton-authenticator" # Proton Authenticator
- "$mod,L, exec, uwsm app -- ${pkgs.hyprlock}/bin/hyprlock" # Lock
- "$mod,SPACE, exec, vicinae toggle" # Launcher
- # "$mod,SPACE, exec, menu" # Launcher
- "$mod,X, exec, powermenu" # Powermenu
-
- "$shiftMod,SPACE, exec, hyprfocus-toggle" # Toggle HyprFocus
+ "$mod,A, exec, uwsm app -- env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator" # Proton Auth
+ "$mod,M, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=jnpecgipniidlgicjocehkhajgdnjekh" # Proton Mail (PWA)
+ "$mod,C, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=ojibjkjikcpjonjjngfkegflhmffeemk" # Proton Calendar (PWA)
+ "$mod,I, exec, uwsm app -- ${pkgs.vivaldi}/bin/vivaldi --profile-directory=Default --app-id=lcfjlhjhpmdjimnbkdfjnkojodddgfmd" # Proton Lumo (PWA)
"$mod,Q, killactive," # Close window
"$mod,T, togglefloating," # Toggle Floating
@@ -27,15 +26,6 @@
"$shiftMod,down, focusmonitor, 1" # Focus next monitor
"$shiftMod,left, layoutmsg, addmaster" # Add to master
"$shiftMod,right, layoutmsg, removemaster" # Remove from master
-
- "$mod,PRINT, exec, screenshot region" # Screenshot region
- ",PRINT, exec, screenshot monitor" # Screenshot monitor
- "$shiftMod,PRINT, exec, screenshot window" # Screenshot window
- "ALT,PRINT, exec, screenshot region swappy" # Screenshot region then edit
-
- "$shiftMod,T, exec, hyprpanel-toggle" # Toggle hyprpanel
- "$shiftMod,F2, exec, night-shift" # Toggle night shift
- "$shiftMod,F3, exec, night-shift" # Toggle night shift
]
++ (builtins.concatLists (builtins.genList (i: let
ws = i + 1;
@@ -49,20 +39,5 @@
"$mod,mouse:272, movewindow" # Move Window (mouse)
"$mod,R, resizewindow" # Resize Window (mouse)
];
-
- bindl = [
- ",XF86AudioMute, exec, sound-toggle" # Toggle Mute
- ",XF86AudioPlay, exec, ${pkgs.playerctl}/bin/playerctl play-pause" # Play/Pause Song
- ",XF86AudioNext, exec, ${pkgs.playerctl}/bin/playerctl next" # Next Song
- ",XF86AudioPrev, exec, ${pkgs.playerctl}/bin/playerctl previous" # Previous Song
- ",switch:Lid Switch, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock when closing Lid
- ];
-
- bindle = [
- ",XF86AudioRaiseVolume, exec, sound-up" # Sound Up
- ",XF86AudioLowerVolume, exec, sound-down" # Sound Down
- ",XF86MonBrightnessUp, exec, brightness-up" # Brightness Up
- ",XF86MonBrightnessDown, exec, brightness-down" # Brightness Down
- ];
};
}
diff --git a/home/system/hyprland/default.nix b/home/system/hyprland/default.nix
index e48d59c..f2e427d 100644
--- a/home/system/hyprland/default.nix
+++ b/home/system/hyprland/default.nix
@@ -13,7 +13,7 @@
rounding = config.theme.rounding;
blur = config.theme.blur;
keyboardLayout = config.var.keyboardLayout;
- background = "rgb(" + config.lib.stylix.colors.base00 + ")";
+ background = "rgba(" + config.lib.stylix.colors.base00 + "77)";
in {
imports = [
./animations.nix
@@ -27,13 +27,14 @@ in {
qt6.qtwayland
libsForQt5.qt5ct
qt6Packages.qt6ct
+ hyprland-qtutils
+ adw-gtk3
hyprshot
hyprpicker
swappy
imv
wf-recorder
wlr-randr
- wl-clipboard
brightnessctl
gnome-themes-extra
libva
@@ -58,12 +59,8 @@ in {
portalPackage = null;
settings = {
- "$mod" = "SUPER";
- "$shiftMod" = "SUPER_SHIFT";
-
exec-once = [
"dbus-update-activation-environment --systemd --all &"
- "systemctl --user enable --now hyprpaper.service &"
];
monitor = [
@@ -138,6 +135,16 @@ in {
gesture = "3, horizontal, workspace";
+ windowrule = [
+ "match:class proton-authenticator, float on"
+ "match:class proton-authenticator, suppress_event maximize"
+ "match:class proton-authenticator, center on"
+ "match:class proton-authenticator, size 500 400"
+ "match:class protonvpn-app, float on"
+ "match:class protonvpn-app, center on"
+ "match:class protonvpn-app, size 500 400"
+ ];
+
misc = {
vfr = true;
disable_hyprland_logo = true;
diff --git a/home/system/hyprland/keyboard-backlight.nix b/home/system/hyprland/keyboard-backlight.nix
index 0143cc7..719c02b 100644
--- a/home/system/hyprland/keyboard-backlight.nix
+++ b/home/system/hyprland/keyboard-backlight.nix
@@ -5,6 +5,7 @@
config,
...
}: let
+ alert-when-low-battery = false;
keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" ''
function set_keyboard_backlight {
local color=$1
@@ -15,6 +16,9 @@
}
state="white"
set_keyboard_backlight ${config.lib.stylix.colors.base0D}
+ if [ "${toString alert-when-low-battery}" = "false" ]; then
+ exit 0
+ fi
while true; do
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity)
IS_CHARGING=$(cat /sys/class/power_supply/BAT*/status)
diff --git a/home/system/hyprlock/default.nix b/home/system/hyprlock/default.nix
deleted file mode 100644
index e6313e7..0000000
--- a/home/system/hyprlock/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-# Hyprlock is a lockscreen for Hyprland
-{ config, lib, ... }:
-let
- foreground = "rgba(${config.theme.textColorOnWallpaper}ee)";
- font = config.stylix.fonts.serif.name;
-in {
- programs.hyprlock = {
- enable = true;
- settings = {
- general = {
- ignore_empty_input = true;
- hide_cursor = true;
- };
-
- background = { brightness = 0.7172; };
-
- label = [
- {
- # Day-Month-Date
- monitor = "";
- text = ''cmd[update:1000] echo -e "$(date +"%A, %B %d")"'';
- color = foreground;
- font_size = 28;
- font_family = font + " Bold";
- position = "0, 490";
- halign = "center";
- valign = "center";
- }
- # Time
- {
- monitor = "";
- text = ''cmd[update:1000] echo "$(date +"%I:%M")"'';
- color = foreground;
- font_size = 160;
- font_family = "steelfish outline regular";
- position = "0, 370";
- halign = "center";
- valign = "center";
- }
- # USER
- {
- monitor = "";
- text = " $USER";
- color = foreground;
- font_size = 18;
- font_family = font + " Bold";
- position = "0, -180";
- halign = "center";
- valign = "center";
- }
- ];
-
- # INPUT FIELD
- input-field = lib.mkForce {
- size = "300, 60";
- outline_thickness = 2;
- dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
- dots_spacing = 0.2; # Scale of dots' absolute size, 0.0 - 1.0
- dots_center = true;
- outer_color = "rgba(25, 25, 25, 0)";
- inner_color = "rgba(25, 25, 25, 0.1)";
- font_color = foreground;
- fade_on_empty = false;
- font_family = font + " Bold";
- placeholder_text = "🔒 Enter Password";
- position = "0, -250";
- halign = "center";
- valign = "center";
- };
- };
- };
-}
diff --git a/home/system/hyprpanel/default.nix b/home/system/hyprpanel/default.nix
deleted file mode 100644
index 96c59ba..0000000
--- a/home/system/hyprpanel/default.nix
+++ /dev/null
@@ -1,267 +0,0 @@
-# Hyprpanel is the bar on top of the screen
-# Display information like workspaces, battery, wifi, ...
-{config, ...}: let
- transparentButtons = config.theme.bar.transparentButtons;
-
- accent = "#${config.lib.stylix.colors.base0D}";
- accent-alt = "#${config.lib.stylix.colors.base03}";
- background = "#${config.lib.stylix.colors.base00}";
- background-alt = "#${config.lib.stylix.colors.base01}";
- foreground = "#${config.lib.stylix.colors.base05}";
- foregroundOnWallpaper = "#${config.theme.textColorOnWallpaper}";
- font = "${config.stylix.fonts.serif.name}";
- fontSizeForHyprpanel = "${toString config.stylix.fonts.sizes.desktop}px";
-
- rounding = config.theme.rounding;
- border-size = config.theme.border-size;
-
- gaps-out = config.theme.gaps-out;
- gaps-in = config.theme.gaps-in;
-
- floating = config.theme.bar.floating;
- transparent = config.theme.bar.transparent;
- position = config.theme.bar.position; # "top" ou "bottom"
-
- notificationOpacity = 90;
-
- location = config.var.location;
-
- homeDir = "/home/${config.var.username}";
-in {
- wayland.windowManager.hyprland.settings.exec-once = ["hyprpanel"];
-
- programs.hyprpanel = {
- enable = true;
-
- settings = {
- bar.layouts = {
- "*" = {
- left = ["dashboard" "workspaces" "windowtitle"];
- middle = ["media" "cava"];
- right = [
- "systray"
- "volume"
- "bluetooth"
- "battery"
- "network"
- "clock"
- "notifications"
- ];
- };
- };
-
- theme.font.name = font;
- theme.font.size = fontSizeForHyprpanel;
-
- theme.bar.outer_spacing =
- if floating && transparent
- then "0px"
- else "8px";
- theme.bar.buttons.y_margins =
- if floating && transparent
- then "0px"
- else "8px";
- theme.bar.buttons.spacing = "0.3em";
- theme.bar.buttons.radius =
- (
- if transparent
- then toString rounding
- else toString (rounding - 8)
- )
- + "px";
- theme.bar.floating = floating;
- theme.bar.buttons.padding_x = "0.8rem";
- theme.bar.buttons.padding_y = "0.4rem";
-
- theme.bar.margin_top =
- (
- if position == "top"
- then toString (gaps-in * 2)
- else "0"
- )
- + "px";
- theme.bar.margin_bottom =
- (
- if position == "top"
- then "0"
- else toString (gaps-in * 2)
- )
- + "px";
- theme.bar.margin_sides = toString gaps-out + "px";
- theme.bar.border_radius = toString rounding + "px";
- theme.bar.transparent = transparent;
- theme.bar.location = position;
- theme.bar.dropdownGap = "4.5em";
- theme.bar.menus.shadow =
- if transparent
- then "0 0 0 0"
- else "0px 0px 3px 1px #16161e";
- theme.bar.buttons.style = "default";
- theme.bar.buttons.monochrome = true;
- theme.bar.menus.monochrome = true;
- theme.bar.menus.card_radius = toString rounding + "px";
- theme.bar.menus.border.size = toString border-size + "px";
- theme.bar.menus.border.radius = toString rounding + "px";
- theme.bar.menus.menu.media.card.tint = 90;
-
- bar.launcher.icon = "";
- bar.workspaces.show_numbered = false;
- bar.workspaces.workspaces = 5;
- bar.workspaces.numbered_active_indicator = "color";
- bar.workspaces.monitorSpecific = false;
- bar.workspaces.applicationIconEmptyWorkspace = "";
- bar.workspaces.showApplicationIcons = true;
- bar.workspaces.showWsIcons = true;
-
- bar.windowtitle.label = true;
- bar.volume.label = false;
- bar.network.truncation_size = 12;
- bar.bluetooth.label = false;
- bar.clock.format = "%a %b %d %I:%M %p";
- bar.notifications.show_total = true;
- bar.media.show_active_only = true;
-
- bar.customModules.updates.pollingInterval = 1440000;
- bar.customModules.cava.showIcon = false;
- bar.customModules.cava.stereo = true;
- bar.customModules.cava.showActiveOnly = true;
-
- notifications.position = "top right";
- notifications.showActionsOnHover = true;
- theme.notification.opacity = notificationOpacity;
- theme.notification.enableShadow = true;
- theme.notification.border_radius = toString rounding + "px";
-
- theme.osd.enable = true;
- theme.osd.orientation = "vertical";
- theme.osd.location = "left";
- theme.osd.radius = toString rounding + "px";
- theme.osd.margins = "0px 0px 0px 10px";
- theme.osd.muted_zero = true;
-
- menus.clock.weather.location = location;
- menus.clock.weather.unit = "metric";
- menus.dashboard.powermenu.confirmation = false;
- menus.dashboard.powermenu.avatar.image = "~/.face.icon";
-
- menus.dashboard.shortcuts.left.shortcut1.icon = "";
- menus.dashboard.shortcuts.left.shortcut1.command = "zen";
- menus.dashboard.shortcuts.left.shortcut1.tooltip = "Zen";
- menus.dashboard.shortcuts.left.shortcut2.icon = "";
- menus.dashboard.shortcuts.left.shortcut2.command = "caffeine";
- menus.dashboard.shortcuts.left.shortcut2.tooltip = "Caffeine";
- menus.dashboard.shortcuts.left.shortcut3.icon = "";
- menus.dashboard.shortcuts.left.shortcut3.command = "night-shift";
- menus.dashboard.shortcuts.left.shortcut3.tooltip = "Night-shift";
- menus.dashboard.shortcuts.left.shortcut4.icon = "";
- menus.dashboard.shortcuts.left.shortcut4.command = "menu";
- menus.dashboard.shortcuts.left.shortcut4.tooltip = "Search Apps";
-
- menus.dashboard.shortcuts.right.shortcut1.icon = "";
- menus.dashboard.shortcuts.right.shortcut1.command = "hyprpicker -a";
- menus.dashboard.shortcuts.right.shortcut1.tooltip = "Color Picker";
-
- menus.dashboard.shortcuts.right.shortcut3.icon = "";
- menus.dashboard.shortcuts.right.shortcut3.command = "screenshot region swappy";
- menus.dashboard.shortcuts.right.shortcut3.tooltip = "Screenshot";
-
- menus.dashboard.directories.left.directory1.label = " Home";
- menus.dashboard.directories.left.directory1.command = "xdg-open ${homeDir}";
-
- menus.dashboard.directories.left.directory2.label = " Documents";
- menus.dashboard.directories.left.directory2.command = "xdg-open ${homeDir}/Documents";
-
- menus.dashboard.directories.left.directory3.label = " Downloads";
- menus.dashboard.directories.left.directory3.command = "xdg-open ${homeDir}/Downloads";
-
- menus.dashboard.directories.right.directory1.label = " Desktop";
- menus.dashboard.directories.right.directory1.command = "xdg-open ${homeDir}/Desktop";
-
- menus.dashboard.directories.right.directory2.label = " Videos";
- menus.dashboard.directories.right.directory2.command = "xdg-open ${homeDir}/Videos";
-
- menus.dashboard.directories.right.directory3.label = " Pictures";
- menus.dashboard.directories.right.directory3.command = "xdg-open ${homeDir}/Pictures";
-
- menus.power.lowBatteryNotification = true;
-
- wallpaper.enable = false;
-
- # theme.bar.buttons.workspaces.hover = accent-alt;
- # theme.bar.buttons.workspaces.active = accent;
- # theme.bar.buttons.workspaces.available = accent-alt;
- # theme.bar.buttons.workspaces.occupied = accent-alt;
- #
- # theme.bar.menus.background = background;
- # theme.bar.menus.cards = background-alt;
- # theme.bar.menus.label = foreground;
- # theme.bar.menus.text = foreground;
- # theme.bar.menus.border.color = accent;
- # theme.bar.menus.popover.text = foreground;
- # theme.bar.menus.popover.background = background-alt;
- # theme.bar.menus.listitems.active = accent;
- # theme.bar.menus.icons.active = accent;
- # theme.bar.menus.switch.enabled = accent;
- # theme.bar.menus.check_radio_button.active = accent;
- # theme.bar.menus.buttons.default = accent;
- # theme.bar.menus.buttons.active = accent;
- # theme.bar.menus.iconbuttons.active = accent;
- # theme.bar.menus.progressbar.foreground = accent;
- # theme.bar.menus.slider.primary = accent;
- # theme.bar.menus.tooltip.background = background-alt;
- # theme.bar.menus.tooltip.text = foreground;
- # theme.bar.menus.dropdownmenu.background = background-alt;
- # theme.bar.menus.dropdownmenu.text = foreground;
-
- # theme.bar.background =
- # background
- # + (
- # if transparentButtons && transparent
- # then "00"
- # else ""
- # );
- # theme.bar.buttons.text =
- # if transparent && transparentButtons
- # then foregroundOnWallpaper
- # else foreground;
- # theme.bar.buttons.background =
- # (
- # if transparent
- # then background
- # else background-alt
- # )
- # + (
- # if transparentButtons
- # then "00"
- # else ""
- # );
- # theme.bar.buttons.icon = accent;
- #
- # theme.bar.buttons.notifications.background = background-alt;
- # theme.bar.buttons.hover = background;
- # theme.bar.buttons.notifications.hover = background;
- # theme.bar.buttons.notifications.total = accent;
- # theme.bar.buttons.notifications.icon = accent;
- #
- # theme.osd.bar_color = accent;
- # theme.osd.bar_overflow_color = accent-alt;
- # theme.osd.icon = background;
- # theme.osd.icon_container = accent;
- # theme.osd.label = accent;
- # theme.osd.bar_container = background-alt;
- #
- # theme.bar.menus.menu.media.background.color = background-alt;
- # theme.bar.menus.menu.media.card.color = background-alt;
- #
- # theme.notification.background = background-alt;
- # theme.notification.actions.background = accent;
- # theme.notification.actions.text = foreground;
- # theme.notification.label = accent;
- # theme.notification.border = background-alt;
- # theme.notification.text = foreground;
- # theme.notification.labelicon = accent;
- # theme.notification.close_button.background = background-alt;
- # theme.notification.close_button.label = "#f38ba8";
- };
- };
-}
diff --git a/home/system/hyprpaper/default.nix b/home/system/hyprpaper/default.nix
index decc13b..0fe9e01 100644
--- a/home/system/hyprpaper/default.nix
+++ b/home/system/hyprpaper/default.nix
@@ -11,4 +11,8 @@
};
systemd.user.services.hyprpaper.Unit.After =
lib.mkForce "graphical-session.target";
+
+ wayland.windowManager.hyprland.settings.exec-once = [
+ "systemctl --user enable --now hyprpaper.service"
+ ];
}
diff --git a/home/system/mime/default.nix b/home/system/mime/default.nix
index 3b224bd..531ea29 100644
--- a/home/system/mime/default.nix
+++ b/home/system/mime/default.nix
@@ -3,7 +3,7 @@
with lib; let
defaultApps = {
# check desktop files here: `ls $(echo $XDG_DATA_DIRS| sed "s/:/ /g")`
- browser = ["brave-browser.desktop"];
+ browser = ["vivaldi-stable.desktop"];
text = ["org.gnome.TextEditor.desktop"];
image = ["imv-dir.desktop"];
audio = ["mpv.desktop"];
diff --git a/home/system/vicinae/default.nix b/home/system/vicinae/default.nix
deleted file mode 100644
index 3cc5997..0000000
--- a/home/system/vicinae/default.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{inputs, ...}: {
- imports = [inputs.vicinae.homeManagerModules.default];
-
- services.vicinae = {
- enable = true;
- autoStart = true;
- };
-
- wayland.windowManager.hyprland.settings.exec-once = ["systemctl enable --now --user vicinae.service"];
-}
diff --git a/home/system/wofi/default.nix b/home/system/wofi/default.nix
deleted file mode 100644
index 2adf81a..0000000
--- a/home/system/wofi/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-# Wofi is a launcher for Wayland, inspired by rofi.
-{
- config,
- pkgs,
- lib,
- ...
-}: let
- accent = "#${config.lib.stylix.colors.base0D}";
- background = "#${config.lib.stylix.colors.base00}";
- background-alt = "#${config.lib.stylix.colors.base01}";
- foreground = "#${config.lib.stylix.colors.base05}";
- font = config.stylix.fonts.serif.name;
- rounding = config.theme.rounding;
- font-size = config.stylix.fonts.sizes.popups;
-in {
- home.packages = with pkgs; [wofi-emoji];
-
- programs.wofi = {
- enable = true;
-
- settings = {
- allow_markup = true;
- width = 450;
- show = "drun";
- prompt = "Apps";
- normal_window = true;
- height = 305;
- allow_images = true;
- image_size = 24;
- insensitive = true;
- hide_scroll = true;
- no_actions = true;
- gtk_dark = true;
- };
-
- style =
- lib.mkForce
- # css
- ''
- * {
- font-family: "${font}";
- font-weight: 500;
- font-size: ${toString font-size}px;
- }
-
- #window {
- background-color: ${background};
- color: ${foreground};
- border-radius: ${toString rounding}px;
- }
-
- #outer-box {
- padding: 20px;
- }
-
- #input {
- background-color: ${background-alt};
- border: 0px solid ${accent};
- color: ${foreground};
- padding: 8px 12px;
- }
-
- #scroll {
- margin-top: 20px;
- }
-
- #inner-box {}
-
- #img {
- padding-right: 8px;
- }
-
- #text {
- color: ${foreground};
- }
-
- #text:selected {
- color: ${foreground};
- }
-
- #entry {
- padding: 6px;
- }
-
- #entry:selected {
- background-color: ${accent};
- color: ${foreground};
- }
-
- #unselected {}
-
- #selected {}
-
- #input,
- #entry:selected {
- border-radius: ${toString rounding}px;
- }
- '';
- };
-}
diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix
index 7adcbda..86102df 100644
--- a/hosts/laptop/configuration.nix
+++ b/hosts/laptop/configuration.nix
@@ -15,7 +15,7 @@
../../nixos/hyprland.nix
../../nixos/docker.nix
- ../../nixos/omen.nix # For my laptop only
+ ../../nixos/omen.nix # CHANGEME: For my laptop only, remove this (OMEN 16)
# You should let those lines as is
./hardware-configuration.nix
diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix
index 3c3fe71..4471b6c 100644
--- a/hosts/laptop/home.nix
+++ b/hosts/laptop/home.nix
@@ -1,72 +1,54 @@
{
pkgs,
config,
- inputs,
...
}: {
imports = [
- # Mostly user-specific configuration
- ./variables.nix
-
# Programs
- ../../home/programs/kitty
- # ../../home/programs/alacritty
+ ../../home/programs/vivaldi
+ ../../home/programs/proton
../../home/programs/ghostty
../../home/programs/nvf
../../home/programs/shell
../../home/programs/fetch
../../home/programs/git
- ../../home/programs/git/signing.nix
+ ../../home/programs/git/lazygit.nix
+ ../../home/programs/git/signing.nix # Change the key or remove this file
../../home/programs/spicetify
../../home/programs/thunar
- ../../home/programs/lazygit
../../home/programs/discord
- ../../home/programs/tailscale
-
- # Scripts
- ../../home/scripts # All scripts
+ ../../home/programs/nixy
+ ../../home/programs/zathura
+ ../../home/programs/nightshift
+ ../../home/programs/group/cybersecurity.nix
# System (Desktop environment like stuff)
../../home/system/hyprland
- ../../home/system/hyprlock
- ../../home/system/hyprpanel
+ ../../home/system/caelestia-shell
../../home/system/hyprpaper
- ../../home/system/zathura
../../home/system/mime
../../home/system/udiskie
- ../../home/system/vicinae
- ../../home/system/wofi
- # ../../home/system/hypridle
+ ./variables.nix # Mostly user-specific configuration
./secrets # CHANGEME: You should probably remove this line, this is where I store my secrets
];
home = {
- inherit (config.var) username;
- homeDirectory = "/home/" + config.var.username;
-
packages = with pkgs; [
# Apps
- bitwarden-desktop # Password manager
vlc # Video player
blanket # White-noise app
obsidian # Note taking app
- planify # Todolists
textpieces # Manipulate texts
- curtail # Compress images
resources # Ressource monitor
gnome-clocks # Clocks app
gnome-text-editor # Basic graphic text editor
mpv # Video player
- brave # Web browser
-
- # Privacy
+ ticktick # Todo app
session-desktop # Session app, private messages
signal-desktop # Signal app, private messages
- protonvpn-gui
- proton-pass
- proton-authenticator
- ticktick # Privacy friendly todo app
+ stirling-pdf # TODO: Server version
+ calibre
# Dev
go
@@ -79,32 +61,24 @@
pnpm
air
duckdb
- inputs.eleakxir.packages.${stdenv.hostPlatform.system}.leak-utils
- caido
- wireshark
- nuclei
-
- # Utils
- zip
- unzip
- optipng
- jpegoptim
- pfetch
- btop
- fastfetch
# Just cool
peaclock
cbonsai
pipes
cmatrix
+ fastfetch
# Backup
vscode
+ brave
];
- # Import my profile picture, used by the hyprpanel dashboard
- file.".face.icon" = {source = ./profile_picture.png;};
+ inherit (config.var) username;
+ homeDirectory = "/home/" + config.var.username;
+
+ # Import a profile picture, used by the caelestia dashboard
+ file.".face" = {source = ./profile_picture.png;};
# Don't touch this
stateVersion = "24.05";
diff --git a/hosts/laptop/secrets/default.nix b/hosts/laptop/secrets/default.nix
index ba5746a..f6f8d8a 100644
--- a/hosts/laptop/secrets/default.nix
+++ b/hosts/laptop/secrets/default.nix
@@ -13,11 +13,9 @@
secrets = {
sshconfig = {path = "/home/hadi/.ssh/config";};
github-key = {path = "/home/hadi/.ssh/github";};
- gitlab-key = {path = "/home/hadi/.ssh/gitlab";};
jack-key = {path = "/home/hadi/.ssh/jack";};
signing-key = {path = "/home/hadi/.ssh/key";};
signing-pub-key = {path = "/home/hadi/.ssh/key.pub";};
- pia = {path = "/home/hadi/.config/pia/pia.ovpn";};
};
};
diff --git a/hosts/laptop/variables.nix b/hosts/laptop/variables.nix
index 19217cd..200ab02 100644
--- a/hosts/laptop/variables.nix
+++ b/hosts/laptop/variables.nix
@@ -5,7 +5,7 @@
}: {
imports = [
# Choose your theme here:
- ../../themes/nixy.nix
+ ../../themes/rose-pine.nix
];
config.var = {
@@ -32,7 +32,7 @@
autoGarbageCollector = true;
};
- # Let this here
+ # DON'T TOUCH THIS
options = {
var = lib.mkOption {
type = lib.types.attrs;
diff --git a/nixos/tailscale.nix b/nixos/tailscale.nix
index 7b3d8b9..149b5a5 100644
--- a/nixos/tailscale.nix
+++ b/nixos/tailscale.nix
@@ -23,6 +23,10 @@ in {
}
];
+ environment.systemPackages = with inputs.nixpkgs-stable.legacyPackages.x86_64-linux; [
+ tailscale
+ ];
+
services.tailscale = {
enable = true;
package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.tailscale;
diff --git a/nixos/tuigreet.nix b/nixos/tuigreet.nix
deleted file mode 100644
index 2c3c9e3..0000000
--- a/nixos/tuigreet.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# TUIGreet is a display manager.
-# Legacy, I'm now using SDDM
-{pkgs, ...}: {
- services.greetd = {
- enable = true;
- settings = {
- default_session = {
- command = "${pkgs.greetd.tuigreet}/bin/tuigreet --remember --asterisks --container-padding 2 --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland";
- user = "greeter";
- };
- };
- };
-
- environment.systemPackages = with pkgs; [greetd.tuigreet];
-
- # this is a life saver.
- # literally no documentation about this anywhere.
- # might be good to write about this...
- # https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/
- systemd.services.greetd.serviceConfig = {
- Type = "idle";
- StandardInput = "tty";
- StandardOutput = "tty";
- StandardError = "journal"; # Without this errors will spam on screen
- # Without these bootlogs will spam on screen
- TTYReset = true;
- TTYVHangup = true;
- TTYVTDisallocate = true;
- };
-}
diff --git a/nixos/utils.nix b/nixos/utils.nix
index 285ed83..20a8678 100644
--- a/nixos/utils.nix
+++ b/nixos/utils.nix
@@ -90,7 +90,6 @@ in {
};
environment.systemPackages = with pkgs; [
- hyprland-qtutils
fd
bc
gcc
@@ -99,9 +98,17 @@ in {
xdg-utils
wget
curl
+ gnupg
+ openssl
vim
go
comma
+ zip
+ unzip
+ optipng
+ jpegoptim
+ pfetch
+ btop
];
xdg.portal = {
diff --git a/themes/catppuccin.nix b/themes/catppuccin.nix
deleted file mode 100644
index 9b0889e..0000000
--- a/themes/catppuccin.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- lib,
- pkgs,
- config,
- ...
-}: {
- options.theme = lib.mkOption {
- type = lib.types.attrs;
- default = {
- rounding = 17;
- gaps-in = 8;
- gaps-out = 8 * 2;
- active-opacity = 0.97;
- inactive-opacity = 0.94;
- blur = true;
- border-size = 3;
- animation-speed = "fast"; # "fast" | "medium" | "slow"
- fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
- textColorOnWallpaper =
- config.lib.stylix.colors.base01; # Color of the text displayed on the wallpaper (Lockscreen, display manager, ...)
-
- bar = {
- # Hyprpanel
- position = "top"; # "top" | "bottom"
- transparent = true;
- transparentButtons = false;
- floating = true;
- };
- };
- description = "Theme configuration options";
- };
-
- config.stylix = {
- enable = true;
-
- # Mocha
- # See https://tinted-theming.github.io/tinted-gallery/ for more schemes
- base16Scheme = {
- base00 = "0F0F15"; # Default Background
- base01 = "15151A"; # Lighter Background (Used for status bars, line number and folding marks)
- base02 = "313244"; # Selection Background
- base03 = "45475a"; # Comments, Invisibles, Line Highlighting
- base04 = "585b70"; # Dark Foreground (Used for status bars)
- base05 = "cdd6f4"; # Default Foreground, Caret, Delimiters, Operators
- base06 = "f5e0dc"; # Light Foreground (Not often used)
- base07 = "b4befe"; # Light Background (Not often used)
- base08 = "f38ba8"; # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
- base09 = "fab387"; # Integers, Boolean, Constants, XML Attributes, Markup Link Url
- base0A = "f9e2af"; # Classes, Markup Bold, Search Text Background
- base0B = "a6e3a1"; # Strings, Inherited Class, Markup Code, Diff Inserted
- base0C = "94e2d5"; # Support, Regular Expressions, Escape Characters, Markup Quotes
- base0D = "89b4fa"; # Functions, Methods, Attribute IDs, Headings, Accent color
- base0E = "cba6f7"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
- base0F = "f2cdcd"; # Deprecated, Opening/Closing Embedded Language Tags, e.g.
- };
-
- cursor = {
- name = "phinger-cursors-light";
- package = pkgs.phinger-cursors;
- size = 20;
- };
-
- fonts = {
- monospace = {
- package = pkgs.nerd-fonts.jetbrains-mono;
- name = "JetBrains Mono Nerd Font";
- };
- sansSerif = {
- package = pkgs.source-sans-pro;
- name = "Source Sans Pro";
- };
- serif = config.stylix.fonts.sansSerif;
- emoji = {
- package = pkgs.noto-fonts-color-emoji;
- name = "Noto Color Emoji";
- };
- sizes = {
- applications = 13;
- desktop = 13;
- popups = 13;
- terminal = 13;
- };
- };
-
- polarity = "dark";
- image = pkgs.fetchurl {
- url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/japan-houses.png";
- sha256 = "sha256-BeTFz+WeulDt5ixg5ni09J439PxMnofWnJz5PGEUgf8=";
- };
- };
-}
diff --git a/themes/nixy.nix b/themes/nixy.nix
deleted file mode 100644
index 3b3cd52..0000000
--- a/themes/nixy.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- lib,
- pkgs,
- config,
- ...
-}: {
- options.theme = lib.mkOption {
- type = lib.types.attrs;
- default = {
- rounding = 20;
- gaps-in = 10;
- gaps-out = 10 * 2;
- active-opacity = 0.96;
- inactive-opacity = 0.92;
- blur = true;
- border-size = 3;
- animation-speed = "fast"; # "fast" | "medium" | "slow"
- fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
- textColorOnWallpaper =
- config.lib.stylix.colors.base05; # Color of the text displayed on the wallpaper (Lockscreen, display manager, ...)
-
- bar = {
- # Hyprpanel
- position = "top"; # "top" | "bottom"
- transparent = false;
- transparentButtons = false;
- floating = false;
- };
- };
- description = "Theme configuration options";
- };
-
- config.stylix = {
- enable = true;
-
- # See https://tinted-theming.github.io/tinted-gallery/ for more schemes
- base16Scheme = {
- base00 = "09090B"; # Default Background
- base01 = "1c1e1f"; # Lighter Background (Used for status bars, line number and folding marks)
- base02 = "313244"; # Selection Background
- base03 = "45475a"; # Comments, Invisibles, Line Highlighting
- base04 = "585b70"; # Dark Foreground (Used for status bars)
- base05 = "cdd6f4"; # Default Foreground, Caret, Delimiters, Operators
- base06 = "f5e0dc"; # Light Foreground (Not often used)
- base07 = "b4befe"; # Light Background (Not often used)
- base08 = "f38ba8"; # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
- base09 = "fab387"; # Integers, Boolean, Constants, XML Attributes, Markup Link Url
- base0A = "f9e2af"; # Classes, Markup Bold, Search Text Background
- base0B = "a6e3a1"; # Strings, Inherited Class, Markup Code, Diff Inserted
- base0C = "94e2d5"; # Support, Regular Expressions, Escape Characters, Markup Quotes
- base0D = "8771DA"; # Functions, Methods, Attribute IDs, Headings, Accent color
- base0E = "cba6f7"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
- base0F = "f2cdcd"; # Deprecated, Opening/Closing Embedded Language Tags, e.g.
- };
-
- cursor = {
- name = "phinger-cursors-light";
- package = pkgs.phinger-cursors;
- size = 20;
- };
-
- fonts = {
- monospace = {
- package = pkgs.nerd-fonts.jetbrains-mono;
- name = "JetBrains Mono Nerd Font";
- };
- sansSerif = {
- package = pkgs.source-sans-pro;
- name = "Source Sans Pro";
- };
- serif = config.stylix.fonts.sansSerif;
- emoji = {
- package = pkgs.noto-fonts-color-emoji;
- name = "Noto Color Emoji";
- };
- sizes = {
- applications = 13;
- desktop = 13;
- popups = 13;
- terminal = 13;
- };
- };
-
- polarity = "dark";
- image = pkgs.fetchurl {
- url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/cat-watching-the-star_pixelart_purple_static.png";
- sha256 = "sha256-P8gCiCC9CZPJyGL4kpvAaOqlNor010s/BUA0muBVfK0=";
- };
- };
-}
diff --git a/themes/rose-pine.nix b/themes/rose-pine.nix
new file mode 100644
index 0000000..b6b7eff
--- /dev/null
+++ b/themes/rose-pine.nix
@@ -0,0 +1,82 @@
+{
+ lib,
+ pkgs,
+ config,
+ ...
+}: {
+ options.theme = lib.mkOption {
+ type = lib.types.attrs;
+ default = {
+ rounding = 30;
+ gaps-in = 12;
+ gaps-out = 12 * 2;
+ active-opacity = 0.96;
+ inactive-opacity = 0.94;
+ blur = true;
+ border-size = 4;
+ animation-speed = "fast"; # "fast" | "medium" | "slow"
+ fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
+ textColorOnWallpaper =
+ config.lib.stylix.colors.base00; # Color of the text displayed on the wallpaper (Lockscreen, display manager, ...)
+ };
+ description = "Theme configuration options";
+ };
+
+ config.stylix = {
+ enable = true;
+
+ # See https://tinted-theming.github.io/tinted-gallery/ for more schemes
+ base16Scheme = {
+ base00 = "151320"; # Default Background
+ base01 = "1f1d2e"; # Lighter Background (Used for status bars, line number and folding marks)
+ base02 = "26233a"; # Selection Background
+ base03 = "6e6a86"; # Comments, Invisibles, Line Highlighting
+ base04 = "908caa"; # Dark Foreground (Used for status bars)
+ base05 = "e0def4"; # Default Foreground, Caret, Delimiters, Operators
+ base06 = "e0def4"; # Light Foreground (Not often used)
+ base07 = "524f67"; # Light Background (Not often used)
+ base08 = "eb6f92"; # Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted
+ base09 = "f6c177"; # Integers, Boolean, Constants, XML Attributes, Markup Link Url
+ base0A = "ebbcba"; # Classes, Markup Bold, Search Text Background
+ base0B = "31748f"; # Strings, Inherited Class, Markup Code, Diff Inserted
+ base0C = "9ccfd8"; # Support, Regular Expressions, Escape Characters, Markup Quotes
+ base0D = "c4a7e7"; # Functions, Methods, Attribute IDs, Headings, Accent color
+ base0E = "f6c177"; # Keywords, Storage, Selector, Markup Italic, Diff Changed
+ base0F = "524f67"; # Deprecated, Opening/Closing Embedded Language Tags, e.g.
+ };
+
+ cursor = {
+ name = "BreezeX-RosePine-Linux";
+ package = pkgs.rose-pine-cursor;
+ size = 20;
+ };
+
+ fonts = {
+ monospace = {
+ package = pkgs.nerd-fonts.jetbrains-mono;
+ name = "JetBrains Mono Nerd Font";
+ };
+ sansSerif = {
+ package = pkgs.source-sans-pro;
+ name = "Source Sans Pro";
+ };
+ serif = config.stylix.fonts.sansSerif;
+ emoji = {
+ package = pkgs.noto-fonts-color-emoji;
+ name = "Noto Color Emoji";
+ };
+ sizes = {
+ applications = 13;
+ desktop = 13;
+ popups = 13;
+ terminal = 13;
+ };
+ };
+
+ polarity = "dark";
+ image = pkgs.fetchurl {
+ url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/pink-clouds.png";
+ sha256 = "sha256-IvINf62mg9rKjml4sh8hl/j7UHrQQlbm6QnZTaI+TRk=";
+ };
+ };
+}