mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-04-02 11:12:09 +02:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60fe3769e8 | ||
|
|
641bf821d4 | ||
|
|
25aa619445 | ||
|
|
5a0d476de3 | ||
|
|
00db8d0ae6 | ||
|
|
ef66b6f848 | ||
|
|
59caed5e69 | ||
|
|
dad0865d06 | ||
|
|
c106c76cbc | ||
|
|
4181544de8 | ||
|
|
30c8414749 | ||
|
|
6bb9386773 | ||
|
|
ae82cbcf67 | ||
|
|
518ac107c6 | ||
|
|
58f5f421e8 | ||
|
|
999950afc9 | ||
|
|
13a6249227 | ||
|
|
c68df370cc | ||
|
|
c08d551932 | ||
|
|
fa63cf950a |
46
README.md
46
README.md
@@ -1,8 +1,8 @@
|
||||
[//]: # (Title: Nixy)
|
||||
[//]: # (Description: Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
|
||||
[//]: # (Author: Hadi)
|
||||
[//]: # (Date: 08/28/24)
|
||||
[//]: # (Version: v2.2.0)
|
||||
[//]: # (Date: 09/04/24)
|
||||
[//]: # (Version: v2.3.0)
|
||||
|
||||
<div align="center">
|
||||
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
|
||||
@@ -15,7 +15,7 @@
|
||||
<br>
|
||||
<div align="center">
|
||||
<a href="https://github.com/anotherhadi/nixy">
|
||||
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.2.0&colorA=181825&colorB=89b4fa&logo=githubactions&logoColor=89b4fa"/>
|
||||
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.3.0&colorA=181825&colorB=89b4fa&logo=githubactions&logoColor=89b4fa"/>
|
||||
</a>
|
||||
<a href="https://github.com/anotherhadi/nixy/stargazers">
|
||||
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=starship&logoColor=89b4fa">
|
||||
@@ -40,27 +40,41 @@ It's a simple way to manage your system configuration and dotfiles.
|
||||
- [Table of Content](#table-of-content)
|
||||
- [Gallery](#gallery)
|
||||
- [Architecture](#architecture)
|
||||
- [🏠 `home`](#-home)
|
||||
- [💻 `hosts`](#-hosts)
|
||||
- [Installation](#installation)
|
||||
- [Documentation](#documentation)
|
||||
|
||||
## Gallery
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Architecture
|
||||
|
||||
- 🏠 `home` are the dotfiles and configuration files for the users
|
||||
- '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
|
||||
- 'wallpapers' are... wallpapers
|
||||
- 💻 `hosts` are the system configuration files
|
||||
- 'laptop' is my configuration for my laptop with Nvidia that you can copy
|
||||
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
|
||||
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
|
||||
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
|
||||
### 🏠 `home`
|
||||
|
||||
Those are the dotfiles and configuration files for user-level configuration
|
||||
|
||||
**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
|
||||
- `wallpapers` are... wallpapers
|
||||
|
||||
### 💻 `hosts`
|
||||
|
||||
Those are the host-specific configurations
|
||||
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
|
||||
|
||||
**Subfolders:**
|
||||
|
||||
- 🎨 `themes` are the themes available *(see [THEMES.md](docs/THEMES.md))*
|
||||
- 📦 `modules` are the nix modules that you can import
|
||||
- `laptop` is my configuration for my laptop with Nvidia that you can copy
|
||||
- `server` is for my homeserver (w/nextcloud, nginx, vaultwarden, ...)
|
||||
|
||||
## Installation
|
||||
|
||||
|
||||
21
docs/APPS.md
21
docs/APPS.md
@@ -15,7 +15,7 @@ The configurations files can be found in the `hosts/laptop` directory.
|
||||
| | hypridle |
|
||||
| | hyprcursor |
|
||||
| | wlogout |
|
||||
| Bar | waybar |
|
||||
| Bar | hyprpanel |
|
||||
| Terminal | kitty |
|
||||
| Shell | zsh |
|
||||
| | tmux |
|
||||
@@ -25,32 +25,17 @@ The configurations files can be found in the `hosts/laptop` directory.
|
||||
| | zoxide |
|
||||
| | fzf |
|
||||
| Editor | neovim(nixvim) |
|
||||
| File manager | lf |
|
||||
| | thunar |
|
||||
| File manager | thunar |
|
||||
| Browser | qutebrowser |
|
||||
| Music | spicetify |
|
||||
| Notifications | dunst |
|
||||
| Launcher | wofi |
|
||||
| DM | tuigreet |
|
||||
| Secrets | sops-nix |
|
||||
| Misc | lazygit |
|
||||
| | neofetch |
|
||||
| | cava |
|
||||
| See [hosts/laptop](../hosts/laptop/)... | |
|
||||
|
||||
## Server
|
||||
|
||||
The server configuration is used by a home server running NixOS.
|
||||
The configurations files can be found in the `hosts/server` directory.
|
||||
I mainly use it for self-hosting websites and services such as Nextcloud, Vaultwarden, ...
|
||||
I mainly use it for self-hosting websites and services such as Nextcloud, Vaultwarden, jellyfin, ...
|
||||
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
|
||||
|
||||
### Apps
|
||||
|
||||
- Nextcloud
|
||||
- Vaultwarden
|
||||
- Adguard Home
|
||||
- Uptime Kuma
|
||||
- "Jackflix"
|
||||
- Jellyfin, Transmission, *arr
|
||||
- See [hosts/server](../hosts/server/)...
|
||||
|
||||
@@ -2,39 +2,41 @@
|
||||
|
||||
The list of the keybindings working on Hyprland:
|
||||
|
||||
| Description | Keybinding |
|
||||
|-----------------------------|--------------------------|
|
||||
| Switch Workspace | SUPER + {Number} |
|
||||
| Move app to Workspace | SHIFT + SUPER + {Number} |
|
||||
| Kitty | SUPER + RETURN |
|
||||
| Thunar | SUPER + E |
|
||||
| Qutebrowser | SUPER + B |
|
||||
| Bitwarden | SUPER + K |
|
||||
| Peaclock | SUPER + C |
|
||||
| Lock | SUPER + L |
|
||||
| Powermenu | SUPER + X |
|
||||
| Launcher | 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 |
|
||||
| Add to master | SHIFT + SUPER + left |
|
||||
| Remove from master | SHIFT + SUPER + right |
|
||||
| Screenshot window | SUPER + PRINT |
|
||||
| Screenshot monitor | PRINT |
|
||||
| Screenshot region | SHIFT + SUPER + PRINT |
|
||||
| Screenshot region then edit | ALT PRINT |
|
||||
| Turn off night shift | SUPER + F2 |
|
||||
| Turn on night shift | SUPER + F3 |
|
||||
| Choose sound output | SUPER + F5 |
|
||||
| Move Window (mouse) | SUPER + mouse:272 |
|
||||
| Resize Window (mouse) | SUPER + R |
|
||||
| Toggle Mute | XF86AudioMute |
|
||||
| Lock when closing Lid | switch:Lid Switch |
|
||||
| Sound Up | XF86AudioRaiseVolume |
|
||||
| Sound Down | XF86AudioLowerVolume |
|
||||
| Brightness Up | XF86MonBrightnessUp |
|
||||
| Brightness Down | XF86MonBrightnessDown |
|
||||
| Description | Keybinding |
|
||||
|--------------------------------------------|--------------------------|
|
||||
| Switch Workspace | SUPER + {Number} |
|
||||
| Move app to Workspace | SHIFT + SUPER + {Number} |
|
||||
| Kitty | SUPER + RETURN |
|
||||
| Thunar | SUPER + E |
|
||||
| Qutebrowser | SUPER + B |
|
||||
| Bitwarden | SUPER + K |
|
||||
| Lock | SUPER + L |
|
||||
| Powermenu | SUPER + X |
|
||||
| Launcher | SUPER + SPACE |
|
||||
| "\$shiftMod, SPACE, hyprexpo:expo, toggle" | |
|
||||
| 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 |
|
||||
| Add to master | SHIFT + SUPER + left |
|
||||
| Remove from master | SHIFT + SUPER + right |
|
||||
| Screenshot window | SUPER + PRINT |
|
||||
| Screenshot monitor | PRINT |
|
||||
| Screenshot region | SHIFT + SUPER + PRINT |
|
||||
| Screenshot region then edit | ALT PRINT |
|
||||
| Search on internet with wofi | SHIFT + SUPER + S |
|
||||
| Clipboard picker with wofi | SHIFT + SUPER + C |
|
||||
| Emoji picker with wofi | SHIFT + SUPER + E |
|
||||
| Turn off night shift | SUPER + F2 |
|
||||
| Turn on night shift | SUPER + F3 |
|
||||
| Move Window (mouse) | SUPER + mouse:272 |
|
||||
| Resize Window (mouse) | SUPER + R |
|
||||
| Toggle Mute | XF86AudioMute |
|
||||
| Lock when closing Lid | switch:Lid Switch |
|
||||
| Sound Up | XF86AudioRaiseVolume |
|
||||
| Sound Down | XF86AudioLowerVolume |
|
||||
| Brightness Up | XF86MonBrightnessUp |
|
||||
| Brightness Down | XF86MonBrightnessDown |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Scripts
|
||||
|
||||
Scripts are located in the `home/scripts` folder. Home-manager add those in the path.
|
||||
Scripts are located in the `home/scripts` folder. Home-manager add those in the user's path.
|
||||
|
||||
## Nix/NixOs shortcuts
|
||||
|
||||
@@ -18,14 +18,15 @@ Scripts are located in the `home/scripts` folder. Home-manager add those in the
|
||||
|
||||
- `brightness-up`
|
||||
- `brightness-down`
|
||||
- `brightness-change <up/down> <increment>`
|
||||
- `brightness-set [value]`
|
||||
- `brightness-change [up/down] <increment>`
|
||||
|
||||
## Sound control
|
||||
|
||||
- `sound-up`
|
||||
- `sound-down`
|
||||
- `sound-toggle`
|
||||
- `sound-output`
|
||||
- `sound-set [value]`
|
||||
- `sound-change [up/down/mute] <increment>`
|
||||
|
||||
## Caffeine
|
||||
@@ -33,14 +34,16 @@ Scripts are located in the `home/scripts` folder. Home-manager add those in the
|
||||
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
|
||||
|
||||
- `caffeine` # Toggle caffeine
|
||||
- `caffeine-status` # Return active/inactive
|
||||
- `caffeine-status` # Return 1/0
|
||||
- `caffeine-status-icon` # Return /
|
||||
|
||||
## Night-Shift
|
||||
|
||||
Blue light filter, using wlsunset
|
||||
|
||||
- `night-shift` # Toggle night shift
|
||||
- `night-shift-status` # Return active/inactive
|
||||
- `night-shift-status` # Return 1/0
|
||||
- `night-shift-status-icon` # Return /
|
||||
- `night-shift-on`
|
||||
- `night-shift-off`
|
||||
|
||||
@@ -50,10 +53,3 @@ Nerdfont fzf is a quick way to search for nerdfont icons locally.
|
||||
It will copy the selected icon to the clipboard.
|
||||
|
||||
- `nerdfont-fzf`
|
||||
|
||||
## Compress/Extract
|
||||
|
||||
Some shortcuts to compress and extract files.
|
||||
|
||||
- `compress` ...
|
||||
- `extract` ...
|
||||
|
||||
@@ -18,15 +18,3 @@ Wallpapers are loaded from the `home/wallpapers` folder.
|
||||

|
||||

|
||||

|
||||
|
||||
### Catppuccin
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
### Windows
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
21
docs/TODO.md
21
docs/TODO.md
@@ -2,28 +2,26 @@
|
||||
|
||||
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
|
||||
|
||||
- [ ] Nixy
|
||||
- [ ] Themes
|
||||
- [ ] Wofi config
|
||||
- Calculator
|
||||
|
||||
- [ ] Clipse: clipboard manager
|
||||
- [ ] Walker launcher implementation
|
||||
- [ ] Swaync implementation
|
||||
- [ ] Test hyprshade (replacement for gammastep)
|
||||
|
||||
- [ ] Qutebrowser
|
||||
- [ ] !!! Bitwarden integration (I need this.)
|
||||
|
||||
- [ ] Hyprland
|
||||
- [ ] Implement Hyprcursor
|
||||
- [ ] wofi: popin
|
||||
- [ ] wlogout: fade in
|
||||
- [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?)
|
||||
- [ ] Hyprlock themes (repo hyprlock-styles on github)
|
||||
- [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?) and add in the scripts doc
|
||||
|
||||
- [ ] Nixvim
|
||||
- [ ] Keymaps:
|
||||
- Trouble
|
||||
- Tagbar (actually not working)
|
||||
- [ ] Disable background color for headlines.nvim for titles
|
||||
|
||||
- [ ] Change my keyboard backlight
|
||||
- Issue on nixos-hardware ig
|
||||
|
||||
- [ ] Update docs
|
||||
|
||||
## Server
|
||||
|
||||
@@ -32,3 +30,4 @@ feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
|
||||
- Take a look into buildarr or build a custom solution with *arr apis
|
||||
- [ ] Bitcoin-git: broken
|
||||
- [ ] Secrets mode 0444: not secure
|
||||
- [ ] Adguard config
|
||||
|
||||
@@ -8,22 +8,34 @@ It's a simple way to manage your system configuration and dotfiles.
|
||||
|
||||
## Gallery
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Architecture
|
||||
|
||||
- 🏠 `home` are the dotfiles and configuration files for the users
|
||||
- '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
|
||||
- 'wallpapers' are... wallpapers
|
||||
- 💻 `hosts` are the system configuration files
|
||||
- 'laptop' is my configuration for my laptop with Nvidia that you can copy
|
||||
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
|
||||
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
|
||||
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
|
||||
### 🏠 `home`
|
||||
|
||||
Those are the dotfiles and configuration files for user-level configuration
|
||||
|
||||
**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
|
||||
- `wallpapers` are... wallpapers
|
||||
|
||||
### 💻 `hosts`
|
||||
|
||||
Those are the host-specific configurations
|
||||
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
|
||||
|
||||
**Subfolders:**
|
||||
|
||||
- 🎨 `themes` are the themes available *(see [THEMES.md](docs/THEMES.md))*
|
||||
- 📦 `modules` are the nix modules that you can import
|
||||
- `laptop` is my configuration for my laptop with Nvidia that you can copy
|
||||
- `server` is for my homeserver (w/nextcloud, nginx, vaultwarden, ...)
|
||||
|
||||
## Installation
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 103 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 225 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 617 KiB |
@@ -1 +0,0 @@
|
||||
62b52ad02a886c19a8cfe1ea17e8aaad50f23632
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 411 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 990 KiB |
152
flake.lock
generated
152
flake.lock
generated
@@ -1,5 +1,24 @@
|
||||
{
|
||||
"nodes": {
|
||||
"ags": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"systems": "systems_3"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721306136,
|
||||
"narHash": "sha256-VKPsIGf3/a+RONBipx4lEE4LXG2sdMNkWQu22LNQItg=",
|
||||
"owner": "Aylur",
|
||||
"repo": "ags",
|
||||
"rev": "344ea72cd3b8d4911f362fec34bce7d8fb37028c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Aylur",
|
||||
"repo": "ags",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"apple-fonts": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
@@ -44,11 +63,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724273991,
|
||||
"narHash": "sha256-+aUSOXKGpS5CRm1oTitgNAr05ThQNbKIXalZHl3nC6Y=",
|
||||
"lastModified": 1725016199,
|
||||
"narHash": "sha256-2TMk7F2a27ZtOUW/bftkDyZKp3OQ71E5XnfKSUT8HZQ=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "aquamarine",
|
||||
"rev": "9a3161ad4c78dc420d1cbb3aae638222608c7de4",
|
||||
"rev": "cff00196f0fcf734a2bf164eb0dfdb6e58c5c906",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -149,7 +168,7 @@
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"inputs": {
|
||||
"systems": "systems_3"
|
||||
"systems": "systems_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1710146030,
|
||||
@@ -182,11 +201,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724440431,
|
||||
"narHash": "sha256-9etXEOUtzeMgqg1u0wp+EdwG7RpmrAZ2yX516bMj2aE=",
|
||||
"lastModified": 1724857454,
|
||||
"narHash": "sha256-Qyl9Q4QMTLZnnBb/8OuQ9LSkzWjBU1T5l5zIzTxkkhk=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "c8a54057aae480c56e28ef3e14e4960628ac495b",
|
||||
"rev": "4509ca64f1084e73bc7a721b20c669a8d4c5ebe6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -299,11 +318,11 @@
|
||||
"xdph": "xdph"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724784150,
|
||||
"narHash": "sha256-XlmFLoLppuKxSh2eGPXy27+tNIQ+w+cXoh8Ln3vBJew=",
|
||||
"lastModified": 1725019943,
|
||||
"narHash": "sha256-tAGs6TpIYkRUWjU0WYAavzHCPy4XLLMn63caFF7OCNc=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "17ed4fc04cedbaad365bdebf6bfe0160c527f3fe",
|
||||
"revCount": 5147,
|
||||
"rev": "25e72949a1cc2368425ed81712a394cb277f514f",
|
||||
"revCount": 5160,
|
||||
"submodules": true,
|
||||
"type": "git",
|
||||
"url": "https://github.com/hyprwm/Hyprland"
|
||||
@@ -400,6 +419,25 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprpanel": {
|
||||
"inputs": {
|
||||
"ags": "ags",
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1725006826,
|
||||
"narHash": "sha256-DO9Sxg+HP7Iy/TguZtjwXRjlH35liWXEuG17ilcJejI=",
|
||||
"owner": "Jas-SinghFSU",
|
||||
"repo": "HyprPanel",
|
||||
"rev": "4bd5c3ed30ae643ac1dee152f8b9332d0c5c3eb9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Jas-SinghFSU",
|
||||
"repo": "HyprPanel",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hyprutils": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -412,11 +450,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1722869141,
|
||||
"narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=",
|
||||
"lastModified": 1724966483,
|
||||
"narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=",
|
||||
"owner": "hyprwm",
|
||||
"repo": "hyprutils",
|
||||
"rev": "0252fd13e78e60fb0da512a212e56007515a49f7",
|
||||
"rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -473,11 +511,11 @@
|
||||
},
|
||||
"nixos-hardware": {
|
||||
"locked": {
|
||||
"lastModified": 1724575805,
|
||||
"narHash": "sha256-OB/kEL3GAhUZmUfkbPfsPhKs0pRqJKs0EEBiLfyKZw8=",
|
||||
"lastModified": 1724878143,
|
||||
"narHash": "sha256-UjpKo92iZ25M05kgSOw/Ti6VZwpgdlOa73zHj8OcaDk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixos-hardware",
|
||||
"rev": "9fc19be21f0807d6be092d70bf0b1de0c00ac895",
|
||||
"rev": "95c3dfe6ef2e96ddc1ccdd7194e3cda02ca9a8ef",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -521,11 +559,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1724224976,
|
||||
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
|
||||
"lastModified": 1724819573,
|
||||
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
|
||||
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -537,11 +575,43 @@
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1724479785,
|
||||
"narHash": "sha256-pP3Azj5d6M5nmG68Fu4JqZmdGt4S4vqI5f8te+E/FTw=",
|
||||
"lastModified": 1718714799,
|
||||
"narHash": "sha256-FUZpz9rg3gL8NVPKbqU8ei1VkPLsTIfAJ2fdAf5qjak=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c00d587b1a1afbf200b1d8f0b0e4ba9deb1c7f0e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1722185531,
|
||||
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d0e1602ddde669d5beb01aec49d71a51937ed7be",
|
||||
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1724819573,
|
||||
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -566,11 +636,11 @@
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724820329,
|
||||
"narHash": "sha256-jXaDebjRjcUgZcMNXkvA99s/tTUvZfLLJxLwf1e/qwE=",
|
||||
"lastModified": 1724968633,
|
||||
"narHash": "sha256-eb2NCdLwfXL1MuTAkoDncSl2lCJwyylV5/NM1Ws2P/U=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixvim",
|
||||
"rev": "70e9532ec290769e4d671747b0f65b1c29a3c14e",
|
||||
"rev": "2704133fe3ca616b22ed6685cc67180456eb4160",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -619,8 +689,9 @@
|
||||
"home-manager": "home-manager",
|
||||
"hyprland": "hyprland",
|
||||
"hyprland-plugins": "hyprland-plugins",
|
||||
"hyprpanel": "hyprpanel",
|
||||
"nixos-hardware": "nixos-hardware",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs": "nixpkgs_5",
|
||||
"nixvim": "nixvim",
|
||||
"sops-nix": "sops-nix",
|
||||
"spicetify-nix": "spicetify-nix"
|
||||
@@ -703,11 +774,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724818600,
|
||||
"narHash": "sha256-7i8zqLTds2bXs6n/2ucSJdmKTzhajCktQ2WWFOVW3x0=",
|
||||
"lastModified": 1724991403,
|
||||
"narHash": "sha256-n0os3uymBUoGlikG87Yp7oisYGrkEwsm3nptS9FhdAk=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "c8050c21e2e61efe0ac2d423eac9062c62bb6633",
|
||||
"rev": "0965e58aa38245b2105fec2949a9463fe34e3f05",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -747,6 +818,21 @@
|
||||
}
|
||||
},
|
||||
"systems_3": {
|
||||
"locked": {
|
||||
"lastModified": 1689347949,
|
||||
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default-linux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"systems_4": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
@@ -769,11 +855,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724338379,
|
||||
"narHash": "sha256-kKJtaiU5Ou+e/0Qs7SICXF22DLx4V/WhG1P6+k4yeOE=",
|
||||
"lastModified": 1724833132,
|
||||
"narHash": "sha256-F4djBvyNRAXGusJiNYInqR6zIMI3rvlp6WiKwsRISos=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "070f834771efa715f3e74cd8ab93ecc96fabc951",
|
||||
"rev": "3ffd842a5f50f435d3e603312eefa4790db46af5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -30,15 +30,18 @@
|
||||
inputs.hyprland.follows = "hyprland";
|
||||
};
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
|
||||
};
|
||||
|
||||
outputs = inputs@{ nixpkgs, ... }: {
|
||||
nixosConfigurations = {
|
||||
|
||||
nixy = nixpkgs.lib.nixosSystem { # CHANGEME
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ _module.args = { inherit inputs; }; }
|
||||
{
|
||||
nixpkgs.overlays = [ inputs.hyprpanel.overlay ];
|
||||
_module.args = { inherit inputs; };
|
||||
}
|
||||
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
./hosts/laptop/configuration.nix # CHANGEME
|
||||
|
||||
@@ -1,174 +0,0 @@
|
||||
# vim:ft=dircolors
|
||||
# (This is not a dircolors file but it helps to highlight colors and comments)
|
||||
|
||||
# default values from dircolors
|
||||
# (entries with a leading # are not implemented in lf)
|
||||
# #no 00 # NORMAL
|
||||
# fi 00 # FILE
|
||||
# #rs 0 # RESET
|
||||
# di 01;34 # DIR
|
||||
# ln 01;36 # LINK
|
||||
# #mh 00 # MULTIHARDLINK
|
||||
# pi 40;33 # FIFO
|
||||
# so 01;35 # SOCK
|
||||
# #do 01;35 # DOOR
|
||||
# bd 40;33;01 # BLK
|
||||
# cd 40;33;01 # CHR
|
||||
# or 40;31;01 # ORPHAN
|
||||
# #mi 00 # MISSING
|
||||
# su 37;41 # SETUID
|
||||
# sg 30;43 # SETGID
|
||||
# #ca 30;41 # CAPABILITY
|
||||
# tw 30;42 # STICKY_OTHER_WRITABLE
|
||||
# ow 34;42 # OTHER_WRITABLE
|
||||
# st 37;44 # STICKY
|
||||
# ex 01;32 # EXEC
|
||||
|
||||
# default values from lf (with matching order)
|
||||
# ln 01;36 # LINK
|
||||
# or 31;01 # ORPHAN
|
||||
# tw 01;34 # STICKY_OTHER_WRITABLE
|
||||
# ow 01;34 # OTHER_WRITABLE
|
||||
# st 01;34 # STICKY
|
||||
# di 01;34 # DIR
|
||||
# pi 33 # FIFO
|
||||
# so 01;35 # SOCK
|
||||
# bd 33;01 # BLK
|
||||
# cd 33;01 # CHR
|
||||
# su 01;32 # SETUID
|
||||
# sg 01;32 # SETGID
|
||||
# ex 01;32 # EXEC
|
||||
# fi 00 # FILE
|
||||
|
||||
# file types (with matching order)
|
||||
ln 01;36 # LINK
|
||||
or 31;01 # ORPHAN
|
||||
tw 34 # STICKY_OTHER_WRITABLE
|
||||
ow 34 # OTHER_WRITABLE
|
||||
st 01;34 # STICKY
|
||||
di 01;34 # DIR
|
||||
pi 33 # FIFO
|
||||
so 01;35 # SOCK
|
||||
bd 33;01 # BLK
|
||||
cd 33;01 # CHR
|
||||
su 01;32 # SETUID
|
||||
sg 01;32 # SETGID
|
||||
ex 01;32 # EXEC
|
||||
fi 00 # FILE
|
||||
|
||||
# archives or compressed (dircolors defaults)
|
||||
*.tar 01;31
|
||||
*.tgz 01;31
|
||||
*.arc 01;31
|
||||
*.arj 01;31
|
||||
*.taz 01;31
|
||||
*.lha 01;31
|
||||
*.lz4 01;31
|
||||
*.lzh 01;31
|
||||
*.lzma 01;31
|
||||
*.tlz 01;31
|
||||
*.txz 01;31
|
||||
*.tzo 01;31
|
||||
*.t7z 01;31
|
||||
*.zip 01;31
|
||||
*.z 01;31
|
||||
*.dz 01;31
|
||||
*.gz 01;31
|
||||
*.lrz 01;31
|
||||
*.lz 01;31
|
||||
*.lzo 01;31
|
||||
*.xz 01;31
|
||||
*.zst 01;31
|
||||
*.tzst 01;31
|
||||
*.bz2 01;31
|
||||
*.bz 01;31
|
||||
*.tbz 01;31
|
||||
*.tbz2 01;31
|
||||
*.tz 01;31
|
||||
*.deb 01;31
|
||||
*.rpm 01;31
|
||||
*.jar 01;31
|
||||
*.war 01;31
|
||||
*.ear 01;31
|
||||
*.sar 01;31
|
||||
*.rar 01;31
|
||||
*.alz 01;31
|
||||
*.ace 01;31
|
||||
*.zoo 01;31
|
||||
*.cpio 01;31
|
||||
*.7z 01;31
|
||||
*.rz 01;31
|
||||
*.cab 01;31
|
||||
*.wim 01;31
|
||||
*.swm 01;31
|
||||
*.dwm 01;31
|
||||
*.esd 01;31
|
||||
|
||||
# image formats (dircolors defaults)
|
||||
*.jpg 01;35
|
||||
*.jpeg 01;35
|
||||
*.mjpg 01;35
|
||||
*.mjpeg 01;35
|
||||
*.gif 01;35
|
||||
*.bmp 01;35
|
||||
*.pbm 01;35
|
||||
*.pgm 01;35
|
||||
*.ppm 01;35
|
||||
*.tga 01;35
|
||||
*.xbm 01;35
|
||||
*.xpm 01;35
|
||||
*.tif 01;35
|
||||
*.tiff 01;35
|
||||
*.png 01;35
|
||||
*.svg 01;35
|
||||
*.svgz 01;35
|
||||
*.mng 01;35
|
||||
*.pcx 01;35
|
||||
*.mov 01;35
|
||||
*.mpg 01;35
|
||||
*.mpeg 01;35
|
||||
*.m2v 01;35
|
||||
*.mkv 01;35
|
||||
*.webm 01;35
|
||||
*.ogm 01;35
|
||||
*.mp4 01;35
|
||||
*.m4v 01;35
|
||||
*.mp4v 01;35
|
||||
*.vob 01;35
|
||||
*.qt 01;35
|
||||
*.nuv 01;35
|
||||
*.wmv 01;35
|
||||
*.asf 01;35
|
||||
*.rm 01;35
|
||||
*.rmvb 01;35
|
||||
*.flc 01;35
|
||||
*.avi 01;35
|
||||
*.fli 01;35
|
||||
*.flv 01;35
|
||||
*.gl 01;35
|
||||
*.dl 01;35
|
||||
*.xcf 01;35
|
||||
*.xwd 01;35
|
||||
*.yuv 01;35
|
||||
*.cgm 01;35
|
||||
*.emf 01;35
|
||||
*.ogv 01;35
|
||||
*.ogx 01;35
|
||||
|
||||
# audio formats (dircolors defaults)
|
||||
*.aac 00;36
|
||||
*.au 00;36
|
||||
*.flac 00;36
|
||||
*.m4a 00;36
|
||||
*.mid 00;36
|
||||
*.midi 00;36
|
||||
*.mka 00;36
|
||||
*.mp3 00;36
|
||||
*.mpc 00;36
|
||||
*.ogg 00;36
|
||||
*.ra 00;36
|
||||
*.wav 00;36
|
||||
*.oga 00;36
|
||||
*.opus 00;36
|
||||
*.spx 00;36
|
||||
*.xspf 00;36
|
||||
@@ -1,361 +0,0 @@
|
||||
# vim:ft=conf
|
||||
|
||||
# These examples require Nerd Fonts or a compatible font to be used.
|
||||
# See https://www.nerdfonts.com for more information.
|
||||
|
||||
# default values from lf (with matching order)
|
||||
# ln l # LINK
|
||||
# or l # ORPHAN
|
||||
# tw t # STICKY_OTHER_WRITABLE
|
||||
# ow d # OTHER_WRITABLE
|
||||
# st t # STICKY
|
||||
# di d # DIR
|
||||
# pi p # FIFO
|
||||
# so s # SOCK
|
||||
# bd b # BLK
|
||||
# cd c # CHR
|
||||
# su u # SETUID
|
||||
# sg g # SETGID
|
||||
# ex x # EXEC
|
||||
# fi - # FILE
|
||||
|
||||
# file types (with matching order)
|
||||
ln # LINK
|
||||
or # ORPHAN
|
||||
tw t # STICKY_OTHER_WRITABLE
|
||||
ow # OTHER_WRITABLE
|
||||
st t # STICKY
|
||||
di # DIR
|
||||
pi p # FIFO
|
||||
so s # SOCK
|
||||
bd b # BLK
|
||||
cd c # CHR
|
||||
su u # SETUID
|
||||
sg g # SETGID
|
||||
ex # EXEC
|
||||
fi # FILE
|
||||
|
||||
# file extensions (vim-devicons)
|
||||
*.styl
|
||||
*.sass
|
||||
*.scss
|
||||
*.htm
|
||||
*.html
|
||||
*.slim
|
||||
*.haml
|
||||
*.ejs
|
||||
*.css
|
||||
*.less
|
||||
*.md
|
||||
*.mdx
|
||||
*.markdown
|
||||
*.rmd
|
||||
*.json
|
||||
*.webmanifest
|
||||
*.js
|
||||
*.mjs
|
||||
*.jsx
|
||||
*.rb
|
||||
*.gemspec
|
||||
*.rake
|
||||
*.php
|
||||
*.py
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.coffee
|
||||
*.mustache
|
||||
*.hbs
|
||||
*.conf
|
||||
*.ini
|
||||
*.yml
|
||||
*.yaml
|
||||
*.toml
|
||||
*.bat
|
||||
*.mk
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.bmp
|
||||
*.png
|
||||
*.webp
|
||||
*.gif
|
||||
*.ico
|
||||
*.twig
|
||||
*.cpp
|
||||
*.c++
|
||||
*.cxx
|
||||
*.cc
|
||||
*.cp
|
||||
*.c
|
||||
*.cs
|
||||
*.h
|
||||
*.hh
|
||||
*.hpp
|
||||
*.hxx
|
||||
*.hs
|
||||
*.lhs
|
||||
*.nix
|
||||
*.lua
|
||||
*.java
|
||||
*.sh
|
||||
*.fish
|
||||
*.bash
|
||||
*.zsh
|
||||
*.ksh
|
||||
*.csh
|
||||
*.awk
|
||||
*.ps1
|
||||
*.ml λ
|
||||
*.mli λ
|
||||
*.diff
|
||||
*.db
|
||||
*.sql
|
||||
*.dump
|
||||
*.clj
|
||||
*.cljc
|
||||
*.cljs
|
||||
*.edn
|
||||
*.scala
|
||||
*.go
|
||||
*.dart
|
||||
*.xul
|
||||
*.sln
|
||||
*.suo
|
||||
*.pl
|
||||
*.pm
|
||||
*.t
|
||||
*.rss
|
||||
'*.f#'
|
||||
*.fsscript
|
||||
*.fsx
|
||||
*.fs
|
||||
*.fsi
|
||||
*.rs
|
||||
*.rlib
|
||||
*.d
|
||||
*.erl
|
||||
*.hrl
|
||||
*.ex
|
||||
*.exs
|
||||
*.eex
|
||||
*.leex
|
||||
*.heex
|
||||
*.vim
|
||||
*.ai
|
||||
*.psd
|
||||
*.psb
|
||||
*.ts
|
||||
*.tsx
|
||||
*.jl
|
||||
*.pp
|
||||
*.vue
|
||||
*.elm
|
||||
*.swift
|
||||
*.xcplayground
|
||||
*.tex
|
||||
*.r
|
||||
*.rproj
|
||||
*.sol
|
||||
*.pem
|
||||
|
||||
# file names (vim-devicons) (case-insensitive not supported in lf)
|
||||
*gruntfile.coffee
|
||||
*gruntfile.js
|
||||
*gruntfile.ls
|
||||
*gulpfile.coffee
|
||||
*gulpfile.js
|
||||
*gulpfile.ls
|
||||
*mix.lock
|
||||
*dropbox
|
||||
*.ds_store
|
||||
*.gitconfig
|
||||
*.gitignore
|
||||
*.gitattributes
|
||||
*.gitlab-ci.yml
|
||||
*.bashrc
|
||||
*.zshrc
|
||||
*.zshenv
|
||||
*.zprofile
|
||||
*.vimrc
|
||||
*.gvimrc
|
||||
*_vimrc
|
||||
*_gvimrc
|
||||
*.bashprofile
|
||||
*favicon.ico
|
||||
*license
|
||||
*node_modules
|
||||
*react.jsx
|
||||
*procfile
|
||||
*dockerfile
|
||||
*docker-compose.yml
|
||||
*docker-compose.yaml
|
||||
*compose.yml
|
||||
*compose.yaml
|
||||
*rakefile
|
||||
*config.ru
|
||||
*gemfile
|
||||
*makefile
|
||||
*cmakelists.txt
|
||||
*robots.txt
|
||||
|
||||
# file names (case-sensitive adaptations)
|
||||
*Gruntfile.coffee
|
||||
*Gruntfile.js
|
||||
*Gruntfile.ls
|
||||
*Gulpfile.coffee
|
||||
*Gulpfile.js
|
||||
*Gulpfile.ls
|
||||
*Dropbox
|
||||
*.DS_Store
|
||||
*LICENSE
|
||||
*React.jsx
|
||||
*Procfile
|
||||
*Dockerfile
|
||||
*Docker-compose.yml
|
||||
*Docker-compose.yaml
|
||||
*Rakefile
|
||||
*Gemfile
|
||||
*Makefile
|
||||
*CMakeLists.txt
|
||||
|
||||
# file patterns (vim-devicons) (patterns not supported in lf)
|
||||
# .*jquery.*\.js$
|
||||
# .*angular.*\.js$
|
||||
# .*backbone.*\.js$
|
||||
# .*require.*\.js$
|
||||
# .*materialize.*\.js$
|
||||
# .*materialize.*\.css$
|
||||
# .*mootools.*\.js$
|
||||
# .*vimrc.*
|
||||
# Vagrantfile$
|
||||
|
||||
# file patterns (file name adaptations)
|
||||
*jquery.min.js
|
||||
*angular.min.js
|
||||
*backbone.min.js
|
||||
*require.min.js
|
||||
*materialize.min.js
|
||||
*materialize.min.css
|
||||
*mootools.min.js
|
||||
*vimrc
|
||||
Vagrantfile
|
||||
|
||||
# archives or compressed (extensions from dircolors defaults)
|
||||
*.tar
|
||||
*.tgz
|
||||
*.arc
|
||||
*.arj
|
||||
*.taz
|
||||
*.lha
|
||||
*.lz4
|
||||
*.lzh
|
||||
*.lzma
|
||||
*.tlz
|
||||
*.txz
|
||||
*.tzo
|
||||
*.t7z
|
||||
*.zip
|
||||
*.z
|
||||
*.dz
|
||||
*.gz
|
||||
*.lrz
|
||||
*.lz
|
||||
*.lzo
|
||||
*.xz
|
||||
*.zst
|
||||
*.tzst
|
||||
*.bz2
|
||||
*.bz
|
||||
*.tbz
|
||||
*.tbz2
|
||||
*.tz
|
||||
*.deb
|
||||
*.rpm
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.sar
|
||||
*.rar
|
||||
*.alz
|
||||
*.ace
|
||||
*.zoo
|
||||
*.cpio
|
||||
*.7z
|
||||
*.rz
|
||||
*.cab
|
||||
*.wim
|
||||
*.swm
|
||||
*.dwm
|
||||
*.esd
|
||||
|
||||
# image formats (extensions from dircolors defaults)
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.mjpg
|
||||
*.mjpeg
|
||||
*.gif
|
||||
*.bmp
|
||||
*.pbm
|
||||
*.pgm
|
||||
*.ppm
|
||||
*.tga
|
||||
*.xbm
|
||||
*.xpm
|
||||
*.tif
|
||||
*.tiff
|
||||
*.png
|
||||
*.svg
|
||||
*.svgz
|
||||
*.mng
|
||||
*.pcx
|
||||
*.mov
|
||||
*.mpg
|
||||
*.mpeg
|
||||
*.m2v
|
||||
*.mkv
|
||||
*.webm
|
||||
*.ogm
|
||||
*.mp4
|
||||
*.m4v
|
||||
*.mp4v
|
||||
*.vob
|
||||
*.qt
|
||||
*.nuv
|
||||
*.wmv
|
||||
*.asf
|
||||
*.rm
|
||||
*.rmvb
|
||||
*.flc
|
||||
*.avi
|
||||
*.fli
|
||||
*.flv
|
||||
*.gl
|
||||
*.dl
|
||||
*.xcf
|
||||
*.xwd
|
||||
*.yuv
|
||||
*.cgm
|
||||
*.emf
|
||||
*.ogv
|
||||
*.ogx
|
||||
|
||||
# audio formats (extensions from dircolors defaults)
|
||||
*.aac
|
||||
*.au
|
||||
*.flac
|
||||
*.m4a
|
||||
*.mid
|
||||
*.midi
|
||||
*.mka
|
||||
*.mp3
|
||||
*.mpc
|
||||
*.ogg
|
||||
*.ra
|
||||
*.wav
|
||||
*.oga
|
||||
*.opus
|
||||
*.spx
|
||||
*.xspf
|
||||
|
||||
# other formats
|
||||
*.pdf
|
||||
@@ -1,80 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [ pistol ];
|
||||
|
||||
programs.lf = {
|
||||
enable = true;
|
||||
|
||||
commands = {
|
||||
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
|
||||
editor-open = "$$EDITOR $f";
|
||||
mkdir = ''
|
||||
''${{
|
||||
printf "Directory Name: "
|
||||
read DIR
|
||||
mkdir $DIR
|
||||
}}
|
||||
'';
|
||||
};
|
||||
|
||||
keybindings = {
|
||||
d = "delete";
|
||||
x = "cut";
|
||||
"<enter>" = "open";
|
||||
"<c-g>" = "quit";
|
||||
"<esc>" = "quit";
|
||||
"H" = "set hidden!";
|
||||
"\\\"" = "";
|
||||
o = "";
|
||||
c = "mkdir";
|
||||
"." = "set hidden!";
|
||||
"`" = "mark-load";
|
||||
"\\'" = "mark-load";
|
||||
"g~" = "cd";
|
||||
do = "dragon-out";
|
||||
gh = "cd";
|
||||
"g/" = "/";
|
||||
ee = "editor-open";
|
||||
V = ''$''${pkgs.bat}/bin/bat --paging=always "$f"'';
|
||||
};
|
||||
|
||||
settings = {
|
||||
ratios = [ 1 1 2 ];
|
||||
preview = true;
|
||||
hidden = true;
|
||||
drawbox = true;
|
||||
icons = true;
|
||||
ignorecase = true;
|
||||
incsearch = true;
|
||||
};
|
||||
|
||||
previewer.source = "${pkgs.pistol}/bin/pistol";
|
||||
|
||||
extraConfig = let
|
||||
previewer = pkgs.writeShellScriptBin "pv.sh" ''
|
||||
file=$1
|
||||
w=$2
|
||||
h=$3
|
||||
x=$4
|
||||
y=$5
|
||||
|
||||
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
|
||||
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${pkgs.pistol}/bin/pistol "$file"
|
||||
'';
|
||||
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
|
||||
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
|
||||
'';
|
||||
in ''
|
||||
set cleaner ${cleaner}/bin/clean.sh
|
||||
set previewer ${previewer}/bin/pv.sh
|
||||
'';
|
||||
};
|
||||
|
||||
xdg.configFile."lf" = {
|
||||
recursive = true;
|
||||
source = ./config;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,13 @@
|
||||
{ pkgs, ... }: {
|
||||
{ pkgs, config, ... }: {
|
||||
home.packages = with pkgs; [ ctags ];
|
||||
|
||||
programs.nixvim = {
|
||||
highlight = {
|
||||
Headline.bg = "#${config.var.theme.colors.bgalt}";
|
||||
Headline.bold = true;
|
||||
Headline1.bg = "#${config.var.theme.colors.c0}";
|
||||
Headline1.bold = true;
|
||||
};
|
||||
plugins = {
|
||||
lualine.enable = true;
|
||||
noice.enable = true;
|
||||
@@ -10,17 +17,22 @@
|
||||
};
|
||||
bufferline.enable = true;
|
||||
trouble.enable = true;
|
||||
indent-blankline.enable = true;
|
||||
which-key.enable = true;
|
||||
headlines = {
|
||||
enable = true;
|
||||
settings = {
|
||||
markdown = {
|
||||
codeblock_highlight = false;
|
||||
headline_highlights = [ "Headline1" "Headline" ];
|
||||
fat_headlines = false;
|
||||
bullets = [ "" "◉" "○" "✸" ];
|
||||
dash_string = "";
|
||||
codeblock_highlight = "Headline";
|
||||
};
|
||||
};
|
||||
};
|
||||
nvim-colorizer.enable = true;
|
||||
# tagbar.enable = true;
|
||||
tagbar.enable = true; # FIXME: Tagbar is not working
|
||||
};
|
||||
keymaps = [{
|
||||
key = "<leader>t";
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
|
||||
while true;do
|
||||
battery-plugged &
|
||||
battery-level &
|
||||
sleep 60
|
||||
done
|
||||
'';
|
||||
|
||||
battery-plugged = pkgs.writeShellScriptBin "battery-plugged" ''
|
||||
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
|
||||
OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown")
|
||||
if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then
|
||||
if [[ $BATTERY_STATUS == "Discharging" ]]; then
|
||||
notif "battery" " Battery is unplugged"
|
||||
else
|
||||
notif "battery" " Battery is plugged in"
|
||||
fi
|
||||
fi
|
||||
echo $BATTERY_STATUS > /tmp/old_battery_status
|
||||
'';
|
||||
|
||||
battery-level = pkgs.writeShellScriptBin "battery-level" ''
|
||||
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1)
|
||||
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
|
||||
if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
|
||||
notif "battery" " Low battery" "Battery level is $BATTERY_LEVEL%"
|
||||
elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
|
||||
notif "battery" " Very low battery" "Battery level is $BATTERY_LEVEL%"
|
||||
# elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then
|
||||
# notif "battery" " Fully charged"
|
||||
fi
|
||||
'';
|
||||
|
||||
in { home.packages = [ battery-watch battery-plugged battery-level ]; }
|
||||
@@ -4,16 +4,12 @@ let
|
||||
increments = "5";
|
||||
|
||||
brightness-change = pkgs.writeShellScriptBin "brightness-change" ''
|
||||
sleep 0.05
|
||||
[[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+
|
||||
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%-
|
||||
'';
|
||||
|
||||
[[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%+
|
||||
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%-
|
||||
|
||||
brightness_level=$(${pkgs.brightnessctl}/bin/brightnessctl get)
|
||||
|
||||
message=" Brightness: $brightness_level%"
|
||||
|
||||
notif "brightness" "$message" "extraargs=-h int:value:$brightness_level"
|
||||
brightness-set = pkgs.writeShellScriptBin "brightness-set" ''
|
||||
${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}%
|
||||
'';
|
||||
|
||||
brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
|
||||
@@ -24,4 +20,12 @@ let
|
||||
brightness-change down ${increments}
|
||||
'';
|
||||
|
||||
in { home.packages = [ brightness-change brightness-up brightness-down ]; }
|
||||
in {
|
||||
home.packages = [
|
||||
pkgs.brightnessctl
|
||||
brightness-change
|
||||
brightness-up
|
||||
brightness-down
|
||||
brightness-set
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,29 +1,25 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
|
||||
[[ -f /tmp/caffeine ]] && echo "1" || echo "0"
|
||||
'';
|
||||
|
||||
caffeine = pkgs.writeShellScriptBin "caffeine" ''
|
||||
if [[ -f /tmp/caffeine ]]; then
|
||||
rm /tmp/caffeine
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch exec ${pkgs.hypridle}/bin/hypridle
|
||||
message=" Caffeine Deactivated"
|
||||
else
|
||||
touch /tmp/caffeine
|
||||
pkill hypridle
|
||||
message=" Caffeine Activated"
|
||||
fi
|
||||
notif "caffeine" "$message"
|
||||
[[ $(pidof "hypridle") ]] && echo "0" || echo "1"
|
||||
'';
|
||||
|
||||
caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
|
||||
status=$(caffeine-status)
|
||||
if [[ $status == "1" ]]; then
|
||||
echo ""
|
||||
[[ $(pidof "hypridle") ]] && echo "" || echo ""
|
||||
'';
|
||||
|
||||
caffeine = pkgs.writeShellScriptBin "caffeine" ''
|
||||
if [[ $(pidof "hypridle") ]]; then
|
||||
pkill hypridle
|
||||
title=" Caffeine Activated"
|
||||
description="Caffeine is now active! Your screen will not turn off automatically."
|
||||
else
|
||||
echo ""
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch exec ${pkgs.hypridle}/bin/hypridle
|
||||
title=" Caffeine Deactivated"
|
||||
description="Caffeine is now deactivated! Your screen will turn off automatically."
|
||||
fi
|
||||
|
||||
notif "caffeine" "$title" "$description"
|
||||
'';
|
||||
|
||||
in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; }
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# From https://github.com/Frost-Phoenix/nixos-config
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
compress = pkgs.writeShellScriptBin "compress" ''
|
||||
if (( $# == 1 )) then
|
||||
# echo -ne "Archive name: "
|
||||
# read name
|
||||
# tar -cvzf "$name.tar.gz" $1
|
||||
tar -cvzf "$1.tar.gz" $1
|
||||
else
|
||||
echo "Wrong number of arguments..."
|
||||
fi
|
||||
'';
|
||||
|
||||
extract = pkgs.writeShellScriptBin "extract" ''
|
||||
for i in "$@" ; do
|
||||
tar -xvzf $i
|
||||
break
|
||||
done
|
||||
'';
|
||||
|
||||
in { home.packages = [ compress extract ]; }
|
||||
@@ -6,11 +6,8 @@
|
||||
./caffeine
|
||||
./night-shift
|
||||
./screenshot
|
||||
./startup
|
||||
./nerdfont_fzf
|
||||
./notification
|
||||
./battery
|
||||
./compress
|
||||
./misc
|
||||
./system
|
||||
];
|
||||
}
|
||||
|
||||
@@ -12,21 +12,15 @@ let
|
||||
fi
|
||||
|
||||
echo "Copied to clipboard: $fzf_result"
|
||||
echo "Paste it to close the window"
|
||||
${pkgs.wl-clipboard}/bin/wl-copy -o "$fzf_result" # wait for paste before exiting.. not cool
|
||||
${pkgs.wl-clipboard}/bin/wl-copy "$fzf_result" # wait for paste before exiting.. not cool
|
||||
'';
|
||||
|
||||
nerdfont-fzf-fetch = pkgs.writeShellScriptBin "nerdfont-fzf-fetch" ''
|
||||
wget "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/glyphnames.json" -O "glyphnames.json" || exit 1
|
||||
jq 'del(.METADATA)' "glyphnames.json"
|
||||
'';
|
||||
|
||||
nerdfont-popup = pkgs.writeShellScriptBin "nerdfont-popup" ''
|
||||
${pkgs.kitty}/bin/kitty --class floating -o font_size=18 zsh -c nerdfont-fzf 2>/dev/null
|
||||
'';
|
||||
|
||||
in {
|
||||
home.packages = [ nerdfont-fzf nerdfont-fzf-fetch nerdfont-popup ];
|
||||
home.packages = [ nerdfont-fzf nerdfont-fzf-fetch ];
|
||||
|
||||
xdg.configFile."nerdfont_glyphnames.json" = {
|
||||
source = ./nerdfont_glyphnames.json;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -4,19 +4,23 @@ let
|
||||
default = "4000";
|
||||
|
||||
night-shift-on = pkgs.writeShellScriptBin "night-shift-on" ''
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.wlsunset}/bin/wlsunset -t ${default}"
|
||||
message=" Night-Shift Activated"
|
||||
notif "night-shift" "$message"
|
||||
${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.gammastep}/bin/gammastep -O ${default}"
|
||||
title=" Night-Shift Activated"
|
||||
description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes."
|
||||
|
||||
notif "night-shift" "$title" "$description"
|
||||
'';
|
||||
|
||||
night-shift-off = pkgs.writeShellScriptBin "night-shift-off" ''
|
||||
pkill wlsunset
|
||||
message=" Night-Shift Deactivated"
|
||||
notif "night-shift" "$message"
|
||||
pkill gammastep
|
||||
title=" Night-Shift Deactivated"
|
||||
description="Night-Shift is now deactivated! Your screen will return to normal."
|
||||
|
||||
notif "night-shift" "$title" "$description"
|
||||
'';
|
||||
|
||||
night-shift = pkgs.writeShellScriptBin "night-shift" ''
|
||||
if pgrep wlsunset; then
|
||||
if pgrep gammastep; then
|
||||
night-shift-off
|
||||
else
|
||||
night-shift-on
|
||||
@@ -24,7 +28,7 @@ let
|
||||
'';
|
||||
|
||||
night-shift-status = pkgs.writeShellScriptBin "night-shift-status" ''
|
||||
if [[ $(pgrep wlsunset) ]]; then
|
||||
if [[ $(pgrep gammastep) ]]; then
|
||||
echo "1"
|
||||
else
|
||||
echo "0"
|
||||
@@ -33,7 +37,7 @@ let
|
||||
|
||||
night-shift-status-icon =
|
||||
pkgs.writeShellScriptBin "night-shift-status-icon" ''
|
||||
if [[ $(pgrep wlsunset) ]]; then
|
||||
if [[ $(pgrep gammastep) ]]; then
|
||||
echo ""
|
||||
else
|
||||
echo ""
|
||||
@@ -41,6 +45,7 @@ let
|
||||
'';
|
||||
in {
|
||||
home.packages = [
|
||||
pkgs.gammastep
|
||||
night-shift-on
|
||||
night-shift-off
|
||||
night-shift
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
let
|
||||
|
||||
nixy = pkgs.writeShellScriptBin "nixy" ''
|
||||
function exec() {
|
||||
$@
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
notif = pkgs.writeShellScriptBin "notif" ''
|
||||
# Shell script to send custom notifications
|
||||
NOTIF_FOLDER="/tmp/notif"
|
||||
sender_id=$1 # To overwrite existing notifications
|
||||
message=$2
|
||||
extraargs=""
|
||||
description=""
|
||||
if [[ $3 == "extraargs="* ]]; then
|
||||
extraargs=$(echo "$3" | sed 's/extraargs=//g')
|
||||
else
|
||||
description="$3"
|
||||
extraargs="$4"
|
||||
fi
|
||||
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"
|
||||
[[ -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")
|
||||
old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id")
|
||||
[[ -z "$old_notification_id" ]] && old_notification_id=0
|
||||
|
||||
${pkgs.libnotify}/bin/notify-send "$message" \
|
||||
$extraargs \
|
||||
--replace-id="$old_notification_id" --print-id > "$NOTIF_FOLDER/$sender_id"
|
||||
'';
|
||||
${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 = [ notif ]; }
|
||||
in { home.packages = [ pkgs.libnotify notif ]; }
|
||||
|
||||
@@ -1,38 +1,23 @@
|
||||
{ pkgs, config, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
homedir = config.home.homeDirectory;
|
||||
increments = "5";
|
||||
|
||||
sound-change = pkgs.writeShellScriptBin "sound-change" ''
|
||||
sleep 0.05
|
||||
|
||||
[[ $1 == "mute" ]] && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
[[ $1 == "up" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%+"
|
||||
[[ $1 == "down" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%-"
|
||||
|
||||
sink_info=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
|
||||
|
||||
volume=$(echo "$(echo "$sink_info" | awk '{print $2}' | sed 's/%//')*100" | bc -l | xargs printf "%.0f")
|
||||
muted=false
|
||||
if [[ $sink_info == *"MUTED"* ]]; then
|
||||
muted=true
|
||||
fi
|
||||
|
||||
message=""
|
||||
if [ $muted = true ]; then
|
||||
message=" Muted"
|
||||
else
|
||||
message=" Volume: $volume%"
|
||||
fi
|
||||
|
||||
notif "sound" "$message" "extraargs=-h int:value:$volume"
|
||||
[[ $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}
|
||||
'';
|
||||
@@ -40,47 +25,6 @@ let
|
||||
sound-toggle = pkgs.writeShellScriptBin "sound-toggle" ''
|
||||
sound-change mute
|
||||
'';
|
||||
|
||||
sound-output = pkgs.writeShellScriptBin "sound-output" ''
|
||||
function parse_sinks(){
|
||||
output=$(wpctl status)
|
||||
sinks=($(echo "$output" | sed 's/ │ //' | awk '/Sinks:/ {flag=1; next} /^$/ {flag=0} flag' | sed 's/ /-/g'))
|
||||
|
||||
for sink in "''${sinks[@]}"; do
|
||||
|
||||
id=""
|
||||
default=false
|
||||
sink=$(echo "$sink" | sed 's/-/ /g')
|
||||
sink_name=$(echo "$sink" | sed 's/\[vol:.*$//')
|
||||
|
||||
if [[ $sink_name == "*"* ]]; then
|
||||
sink_name=$(echo "$sink_name" | sed 's/*//')
|
||||
default=true
|
||||
fi
|
||||
|
||||
id=$(echo "$sink_name" | cut -d'.' -f1)
|
||||
sink_name=$(echo "$sink_name" | sed 's/^[ ]*//;s/[ ]*$//' )
|
||||
sink_name=$(echo "$sink_name" | cut -d'.' -f2 )
|
||||
|
||||
if [[ $default == true ]];then
|
||||
printf "*%s (%d)" "$sink_name" "$id"
|
||||
else
|
||||
printf " %s (%d)" "$sink_name" "$id"
|
||||
fi
|
||||
printf "\n"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
choosed_sink=$(echo "$(parse_sinks)" | ${pkgs.fzf}/bin/fzf \
|
||||
--border-label "Choose sound output" ) || exit 1
|
||||
|
||||
choosed_sink_id=$(echo "$choosed_sink" | sed 's/.*(\(.*\))/\1/')
|
||||
|
||||
wpctl set-default $choosed_sink_id
|
||||
'';
|
||||
|
||||
in {
|
||||
home.packages =
|
||||
[ sound-output sound-change sound-up sound-down sound-toggle ];
|
||||
home.packages = [ sound-change sound-up sound-down sound-toggle sound-set ];
|
||||
}
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# File runned at startup by Hyprland
|
||||
{ pkgs, config, ... }:
|
||||
let
|
||||
startup = pkgs.writeShellScriptBin "startup" ''
|
||||
# Startup is a script called by Hyprland on startup
|
||||
# Because HM enabling services suck.
|
||||
|
||||
[[ ${toString config.var.sops} == "1" ]] && systemctl --user start sops-nix
|
||||
|
||||
battery-watch &
|
||||
${pkgs.waybar}/bin/waybar &
|
||||
|
||||
|
||||
wlr-randr --output "Unknown-1" --off # FIX: REMOVE WEIRD GHOST MONITOR
|
||||
'';
|
||||
|
||||
in { home.packages = [ startup ]; }
|
||||
6
home/system/batsignal/default.nix
Normal file
6
home/system/batsignal/default.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
services.batsignal = {
|
||||
enable = true;
|
||||
extraArgs = [ "-c 10" "-w 30" "-f 97" ];
|
||||
};
|
||||
}
|
||||
18
home/system/clipman/default.nix
Normal file
18
home/system/clipman/default.nix
Normal file
@@ -0,0 +1,18 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
|
||||
clipboard-clear = pkgs.writeShellScriptBin "clipboard-clear" ''
|
||||
clipman clear --all
|
||||
'';
|
||||
|
||||
clipboard = pkgs.writeShellScriptBin "clipboard" ''
|
||||
clipman pick --tool=wofi
|
||||
'';
|
||||
|
||||
in {
|
||||
wayland.windowManager.hyprland.settings.exec-once =
|
||||
[ "${clipboard-clear}" "wl-paste -t text --watch clipman store" ];
|
||||
home.packages = with pkgs; [ clipman clipboard clipboard-clear ];
|
||||
services.clipman.enable = true;
|
||||
|
||||
}
|
||||
@@ -1,83 +0,0 @@
|
||||
{ config, pkgs, ... }: {
|
||||
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Moka";
|
||||
package = pkgs.moka-icon-theme;
|
||||
};
|
||||
settings = {
|
||||
global = {
|
||||
rounded = "yes";
|
||||
origin = "top-center";
|
||||
monitor = "0";
|
||||
alignment = "center";
|
||||
vertical_alignment = "center";
|
||||
width = "400";
|
||||
height = "400";
|
||||
scale = 0;
|
||||
gap_size = 0;
|
||||
progress_bar = true;
|
||||
transparency = 0;
|
||||
text_icon_padding = 0;
|
||||
separator_color = "frame";
|
||||
sort = "yes";
|
||||
idle_threshold = 120;
|
||||
line_height = 0;
|
||||
markup = "full";
|
||||
show_age_threshold = 60;
|
||||
ellipsize = "middle";
|
||||
ignore_newline = "no";
|
||||
stack_duplicates = true;
|
||||
sticky_history = "yes";
|
||||
history_length = 20;
|
||||
always_run_script = true;
|
||||
corner_radius = config.var.theme.rounding;
|
||||
follow = "mouse";
|
||||
font = config.var.theme.font;
|
||||
format = "<b>%s</b>\\n%b";
|
||||
progress_bar_corner_radius = config.var.theme.rounding - 10;
|
||||
#format = ''
|
||||
# <span foreground='#${config.var.theme.colors.accent}'><b>%s %p</b></span>
|
||||
# %b'';
|
||||
frame_color = "#" + config.var.theme.colors.bg;
|
||||
highlight = "#" + config.var.theme.colors.accent;
|
||||
foreground = "#" + config.var.theme.colors.fg;
|
||||
frame_width = 1;
|
||||
offset = "0x10";
|
||||
horizontal_padding = 10;
|
||||
icon_position = "left";
|
||||
indicate_hidden = "yes";
|
||||
min_icon_size = 0;
|
||||
max_icon_size = 64;
|
||||
mouse_left_click = "do_action, close_current";
|
||||
mouse_middle_click = "close_current";
|
||||
mouse_right_click = "close_all";
|
||||
padding = 10;
|
||||
plain_text = "no";
|
||||
separator_height = 2;
|
||||
show_indicators = "yes";
|
||||
shrink = "no";
|
||||
word_wrap = "yes";
|
||||
browser = "${pkgs.qutebrowser}/bin/qutebrowser";
|
||||
};
|
||||
|
||||
fullscreen_delay_everything = { fullscreen = "delay"; };
|
||||
|
||||
urgency_critical = {
|
||||
background = "#" + config.var.theme.colors.c1;
|
||||
foreground = "#" + config.var.theme.colors.c0;
|
||||
};
|
||||
urgency_low = {
|
||||
background = "#" + config.var.theme.colors.bgalt;
|
||||
foreground = "#" + config.var.theme.colors.fgalt;
|
||||
};
|
||||
urgency_normal = {
|
||||
background = "#" + config.var.theme.colors.bgalt;
|
||||
foreground = "#" + config.var.theme.colors.fgalt;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,12 @@
|
||||
{ pkgs, config, inputs, ... }: {
|
||||
|
||||
imports =
|
||||
[ ./hyprlock/macos.nix ./hypridle.nix ./hyprpaper.nix ./hyprcursor.nix ];
|
||||
imports = [
|
||||
./hyprlock.nix
|
||||
./hypridle.nix
|
||||
./hyprpaper.nix
|
||||
./hyprcursor.nix
|
||||
./hyprpanel.nix
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
hyprshot
|
||||
@@ -9,14 +14,10 @@
|
||||
swappy
|
||||
imv
|
||||
wf-recorder
|
||||
xdg-desktop-portal-hyprland
|
||||
wlr-randr
|
||||
wl-clipboard
|
||||
brightnessctl
|
||||
gnome-themes-extra
|
||||
wlsunset
|
||||
xwayland
|
||||
xdg-desktop-portal-gtk
|
||||
qt5ct
|
||||
libva
|
||||
dconf
|
||||
@@ -29,30 +30,45 @@
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages."${pkgs.system}".hyprland;
|
||||
# plugins = [ inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo ]; # TODO: Fix, stack overflow
|
||||
# plugins = [ inputs.hyprland-plugins.packages.${pkgs.system}.hyprexpo ]; TODO: broken
|
||||
|
||||
settings = {
|
||||
"$mod" = "SUPER";
|
||||
"$shiftMod" = "SUPER_SHIFT";
|
||||
|
||||
exec-once = [
|
||||
"startup"
|
||||
"${pkgs.hypridle}/bin/hypridle"
|
||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
||||
"${pkgs.bitwarden}/bin/bitwarden"
|
||||
"[[ ${
|
||||
toString config.var.sops
|
||||
} == 1 ]] && systemctl --user start sops-nix"
|
||||
];
|
||||
|
||||
monitor = [ "eDP-2,highres,0x0,1" ",prefered,auto,1" ];
|
||||
|
||||
# plugin = {
|
||||
# hyprexpo = {
|
||||
# columns = 2;
|
||||
# gap_size = 5;
|
||||
# bg_col = "rgb(111111)";
|
||||
# workspace_method =
|
||||
# "center current"; # [center/first] [workspace] e.g. first 1 or center m+1
|
||||
#
|
||||
# enable_gesture = true; # laptop touchpad
|
||||
# gesture_fingers = 3; # 3 or 4
|
||||
# gesture_distance = 300; # how far is the "max"
|
||||
# gesture_positive = true; # positive = swipe down. Negative = swipe up.
|
||||
# };
|
||||
# };
|
||||
|
||||
bind = [
|
||||
"$mod, RETURN, exec, ${pkgs.kitty}/bin/kitty" # Kitty
|
||||
"$mod, E, exec, ${pkgs.xfce.thunar}/bin/thunar" # Thunar
|
||||
"$mod, B, exec, ${pkgs.qutebrowser}/bin/qutebrowser" # Qutebrowser
|
||||
"$mod, K, exec, ${pkgs.bitwarden}/bin/bitwarden" # Bitwarden
|
||||
"$mod, C, exec, ${pkgs.kitty}/bin/kitty --class peaclock peaclock" # Peaclock
|
||||
"$mod, L, exec, ${pkgs.hyprlock}/bin/hyprlock" # Lock
|
||||
"$mod, X, exec, powermenu" # Powermenu
|
||||
"$mod, SPACE, exec, menu" # Launcher
|
||||
# "$shiftMod, SPACE, hyprexpo:expo, toggle" # HyprExpo
|
||||
|
||||
"$mod, Q, killactive," # Close window
|
||||
"$mod, T, togglefloating," # Toggle Floating
|
||||
@@ -69,10 +85,11 @@
|
||||
"$shiftMod, PRINT, exec, screenshot region" # Screenshot region
|
||||
"ALT, PRINT, exec, screenshot region swappy" # Screenshot region then edit
|
||||
|
||||
"$shiftMod, S, exec, ${pkgs.qutebrowser}/bin/qutebrowser :open $(wofi --show dmenu -L 1 -p ' Search on internet')" # Search on internet with wofi
|
||||
"$shiftMod, C, exec, clipboard" # Clipboard picker with wofi
|
||||
"$shiftMod, E, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji" # Emoji picker with wofi
|
||||
"$mod, F2, exec, night-shift-off" # Turn off night shift
|
||||
"$mod, F3, exec, night-shift-on" # Turn on night shift
|
||||
|
||||
"$mod, F5, exec, ${pkgs.kitty}/bin/kitty --class floating zsh -c sound-output" # Choose sound output
|
||||
] ++ (builtins.concatLists (builtins.genList (i:
|
||||
let ws = i + 1;
|
||||
in [
|
||||
@@ -131,12 +148,14 @@
|
||||
};
|
||||
|
||||
decoration = {
|
||||
active_opacity = config.var.theme.active-opacity;
|
||||
inactive_opacity = config.var.theme.inactive-opacity;
|
||||
rounding = config.var.theme.rounding;
|
||||
drop_shadow = true;
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 3;
|
||||
"col.shadow" = "rgba(00000055)";
|
||||
blur = { enabled = false; };
|
||||
blur = { enabled = if config.var.theme.blur then "true" else "false"; };
|
||||
};
|
||||
|
||||
master = {
|
||||
@@ -176,13 +195,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
windowrule = [ "animation popin,^(wlogout)$" ];
|
||||
|
||||
windowrulev2 = [
|
||||
"float, class:peaclock"
|
||||
"move 2% 78%, class:peaclock"
|
||||
"size 30% 20%, class:peaclock"
|
||||
|
||||
"float, class:floating"
|
||||
"size 40% 40%, class:floating"
|
||||
"move 30% 30%, class:floating"
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
{ pkgs, ... }: {
|
||||
# wayland.windowManager.hyprland.settings.exec-once =
|
||||
# [ "${pkgs.hypridle}/bin/hypridle" ];
|
||||
|
||||
services.hypridle = {
|
||||
enable = true;
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
{ config, ... }: {
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
disable_loading_bar = true;
|
||||
grace = 5;
|
||||
no_fade_in = true;
|
||||
no_fade_out = true;
|
||||
};
|
||||
|
||||
background = {
|
||||
monitor = "";
|
||||
path = "$HOME/wallpapers/${config.var.theme.wallpaper}";
|
||||
color = "rgb(${config.var.theme.colors.bg})";
|
||||
|
||||
blur_size = 4;
|
||||
blur_passes = 3;
|
||||
noise = 1.17e-2;
|
||||
contrast = 1.3;
|
||||
brightness = 0.8;
|
||||
vibrancy = 0.21;
|
||||
vibrancy_darkness = 0.0;
|
||||
};
|
||||
|
||||
input-field = [{
|
||||
monitor = "";
|
||||
size = "250, 50";
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.2; # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.64; # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true;
|
||||
outer_color = "rgb(${config.var.theme.colors.accent})";
|
||||
inner_color = "rgb(${config.var.theme.colors.bg})";
|
||||
font_color = "rgb(${config.var.theme.colors.fg})";
|
||||
fade_on_empty = true;
|
||||
placeholder_text =
|
||||
"Password..."; # Text rendered in the input box when it's empty.
|
||||
position = "0, 80";
|
||||
halign = "center";
|
||||
valign = "bottom";
|
||||
}];
|
||||
|
||||
label = [
|
||||
# Current time
|
||||
{
|
||||
monitor = "";
|
||||
text =
|
||||
''cmd[update:1000] echo "<b><big> $(date +"%H:%M:%S") </big></b>"'';
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = 64;
|
||||
font_family = config.var.theme.font;
|
||||
position = "0, 16";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
# User label
|
||||
{
|
||||
monitor = "";
|
||||
text = ''
|
||||
Hey <span text_transform="capitalize" size="larger">$USER</span>'';
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = config.var.theme.font-size;
|
||||
font_family = config.var.theme.font;
|
||||
position = "0, 0";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
# Type to unlock
|
||||
{
|
||||
monitor = "";
|
||||
text = "Type to unlock!";
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = config.var.theme.font-size;
|
||||
font_family = config.var.theme.font;
|
||||
position = "0, 30";
|
||||
halign = "center";
|
||||
valign = "bottom";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
{ config, ... }: {
|
||||
|
||||
programs.hyprlock = {
|
||||
enable = true;
|
||||
settings = {
|
||||
general = {
|
||||
disable_loading_bar = true;
|
||||
grace = 5;
|
||||
no_fade_in = true;
|
||||
no_fade_out = true;
|
||||
};
|
||||
|
||||
background = {
|
||||
monitor = "";
|
||||
color = "rgb(${config.var.theme.colors.bg})";
|
||||
};
|
||||
|
||||
input-field = [{
|
||||
monitor = "";
|
||||
size = "250, 50";
|
||||
outline_thickness = 3;
|
||||
dots_size = 0.2;
|
||||
dots_spacing = 0.64;
|
||||
dots_center = false;
|
||||
outer_color = "rgb(${config.var.theme.colors.bg})";
|
||||
inner_color = "rgb(${config.var.theme.colors.bg})";
|
||||
font_color = "rgb(${config.var.theme.colors.fg})";
|
||||
fade_on_empty = false;
|
||||
placeholder_text = "";
|
||||
position = "1190, -50";
|
||||
halign = "left";
|
||||
valign = "center";
|
||||
}];
|
||||
|
||||
shape = [{
|
||||
monitor = "";
|
||||
size = "520, 200";
|
||||
color = "rgb(${config.var.theme.colors.bg})";
|
||||
rounding = "0";
|
||||
border_size = "3";
|
||||
border_color = "rgba(255, 255, 255, 1.0)";
|
||||
rotate = "0";
|
||||
xray = "false";
|
||||
position = "0, 0";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}];
|
||||
|
||||
label = [
|
||||
# Current time
|
||||
{
|
||||
monitor = "";
|
||||
text = ''cmd[update:900] echo "time: $(date +"%H:%M:%S")"'';
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = config.var.theme.font-size;
|
||||
font_family = config.var.theme.font-mono;
|
||||
position = "1100, 50";
|
||||
halign = "left";
|
||||
valign = "center";
|
||||
}
|
||||
# Username
|
||||
{
|
||||
monitor = "";
|
||||
text = "username: ${config.var.username}";
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = config.var.theme.font-size;
|
||||
font_family = config.var.theme.font-mono;
|
||||
position = "1100, 0";
|
||||
halign = "left";
|
||||
valign = "center";
|
||||
}
|
||||
# Password
|
||||
{
|
||||
monitor = "";
|
||||
text = "password: ";
|
||||
color = "rgb(${config.var.theme.colors.fg})";
|
||||
font_size = config.var.theme.font-size;
|
||||
font_family = config.var.theme.font-mono;
|
||||
position = "1100, -50";
|
||||
halign = "left";
|
||||
valign = "center";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
230
home/system/hyprland/hyprpanel.nix
Normal file
230
home/system/hyprland/hyprpanel.nix
Normal file
@@ -0,0 +1,230 @@
|
||||
{ pkgs, config, ... }: {
|
||||
wayland.windowManager.hyprland.settings.exec-once =
|
||||
[ "${pkgs.hyprpanel}/bin/hyprpanel" ];
|
||||
|
||||
home.packages = with pkgs; [ hyprpanel libnotify ];
|
||||
|
||||
home.file.".cache/ags/hyprpanel/options.json" = {
|
||||
text = # json
|
||||
''
|
||||
{
|
||||
"bar.layouts": {
|
||||
"0": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"systray",
|
||||
"network",
|
||||
"volume",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
"clock",
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"1": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"systray",
|
||||
"network",
|
||||
"volume",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
"clock",
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"systray",
|
||||
"network",
|
||||
"volume",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
"clock",
|
||||
"notifications"
|
||||
]
|
||||
}
|
||||
},
|
||||
"theme.font.name": "${config.var.theme.font}",
|
||||
"theme.font.size": "${toString config.var.theme.bar.font-size}px",
|
||||
"theme.bar.outer_spacing": "${
|
||||
if config.var.theme.bar.floating
|
||||
&& config.var.theme.bar.transparent then
|
||||
"0"
|
||||
else
|
||||
"8"
|
||||
}px",
|
||||
"theme.bar.buttons.y_margins": "${
|
||||
if config.var.theme.bar.floating
|
||||
&& config.var.theme.bar.transparent then
|
||||
"0"
|
||||
else
|
||||
"8"
|
||||
}px",
|
||||
"theme.bar.buttons.spacing": "0.3em",
|
||||
"theme.bar.buttons.radius": "${
|
||||
if config.var.theme.bar.transparent then
|
||||
toString config.var.theme.rounding
|
||||
else
|
||||
toString (config.var.theme.rounding - 8)
|
||||
}px",
|
||||
"theme.bar.floating": ${
|
||||
if config.var.theme.bar.floating then "true" else "false"
|
||||
},
|
||||
"theme.bar.buttons.padding_x": "0.8rem",
|
||||
"theme.bar.buttons.padding_y": "0.4rem",
|
||||
|
||||
"theme.bar.buttons.workspaces.hover": "#${config.var.theme.colors.accentalt}",
|
||||
"theme.bar.buttons.workspaces.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.buttons.workspaces.available": "#${config.var.theme.colors.bg}",
|
||||
|
||||
"theme.bar.margin_top": "1.0em",
|
||||
"theme.bar.margin_sides": "${toString config.var.theme.gaps-out}px",
|
||||
"theme.bar.margin_bottom": "0px",
|
||||
"theme.bar.border_radius": "${toString config.var.theme.rounding}px",
|
||||
|
||||
"bar.launcher.icon": "",
|
||||
"theme.bar.transparent": ${
|
||||
if config.var.theme.bar.transparent then "true" else "false"
|
||||
},
|
||||
"bar.workspaces.show_numbered": false,
|
||||
"bar.workspaces.workspaces": 5,
|
||||
"bar.workspaces.monitorSpecific": true,
|
||||
"bar.workspaces.hideUnoccupied": false,
|
||||
"bar.windowtitle.label": true,
|
||||
"bar.volume.label": false,
|
||||
"bar.network.truncation_size": 7,
|
||||
"bar.bluetooth.label": false,
|
||||
"bar.clock.format": "%a %b %d %I:%M %p",
|
||||
"bar.notifications.show_total": true,
|
||||
"theme.notification.border_radius": "${
|
||||
toString config.var.theme.rounding
|
||||
}px",
|
||||
"theme.osd.enable": true,
|
||||
"theme.osd.orientation": "vertical",
|
||||
"theme.osd.location": "left",
|
||||
"theme.osd.radius": "${toString config.var.theme.rounding}px",
|
||||
"theme.osd.margins": "0px 0px 0px 10px",
|
||||
"theme.osd.muted_zero": true,
|
||||
"menus.clock.weather.location": "${config.var.location}",
|
||||
"menus.clock.weather.key": "myapikey",
|
||||
"menus.clock.weather.unit": "metric",
|
||||
"menus.dashboard.powermenu.avatar.image": "${config.var.homeDirectory}/.profile_picture.png",
|
||||
"menus.dashboard.powermenu.confirmation": false,
|
||||
|
||||
"menus.dashboard.shortcuts.left.shortcut1.icon": "",
|
||||
"menus.dashboard.shortcuts.left.shortcut1.command": "qutebrowser",
|
||||
"menus.dashboard.shortcuts.left.shortcut1.tooltip": "Qutebrowser",
|
||||
"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": " Downloads",
|
||||
"menus.dashboard.directories.left.directory1.command": "bash -c \"thunar $HOME/Downloads/\"",
|
||||
"menus.dashboard.directories.left.directory2.label": " Pictures",
|
||||
"menus.dashboard.directories.left.directory2.command": "bash -c \"thunar $HOME/Pictures/\"",
|
||||
"menus.dashboard.directories.left.directory3.label": " Documents",
|
||||
"menus.dashboard.directories.left.directory3.command": "bash -c \"thunar $HOME/Documents/\"",
|
||||
"menus.dashboard.directories.right.directory1.label": " Home",
|
||||
"menus.dashboard.directories.right.directory1.command": "bash -c \"thunar $HOME/\"",
|
||||
"menus.dashboard.directories.right.directory2.label": " Projects",
|
||||
"menus.dashboard.directories.right.directory2.command": "bash -c \"thunar $HOME/dev/\"",
|
||||
"menus.dashboard.directories.right.directory3.label": " Config",
|
||||
"menus.dashboard.directories.right.directory3.command": "bash -c \"thunar $HOME/.config/\"",
|
||||
|
||||
"theme.bar.menus.monochrome": true,
|
||||
"wallpaper.enable": false,
|
||||
"theme.bar.menus.background": "#${config.var.theme.colors.bg}",
|
||||
"theme.bar.menus.cards": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.card_radius": "${
|
||||
toString config.var.theme.rounding
|
||||
}px",
|
||||
"theme.bar.menus.label": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.menus.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.menus.border.size": "${
|
||||
toString config.var.theme.border-size
|
||||
}px",
|
||||
"theme.bar.menus.border.color": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.border.radius": "${
|
||||
toString config.var.theme.rounding
|
||||
}px",
|
||||
"theme.bar.menus.popover.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.menus.popover.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.listitems.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.icons.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.switch.enabled": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.check_radio_button.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.buttons.default": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.buttons.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.iconbuttons.active": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.progressbar.foreground": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.slider.primary": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.menus.tooltip.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.tooltip.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.menus.dropdownmenu.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.dropdownmenu.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.background": "#${config.var.theme.colors.bg}",
|
||||
"theme.bar.buttons.style": "default",
|
||||
"theme.bar.buttons.monochrome": true,
|
||||
"theme.bar.buttons.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.bar.buttons.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.buttons.icon": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.buttons.notifications.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.buttons.hover": "#${config.var.theme.colors.bg}",
|
||||
"theme.bar.buttons.notifications.hover": "#${config.var.theme.colors.bg}",
|
||||
"theme.bar.buttons.notifications.total": "#${config.var.theme.colors.accent}",
|
||||
"theme.bar.buttons.notifications.icon": "#${config.var.theme.colors.accent}",
|
||||
"theme.notification.background": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.notification.actions.background": "#${config.var.theme.colors.accent}",
|
||||
"theme.notification.actions.text": "#${config.var.theme.colors.fg}",
|
||||
"theme.notification.label": "#${config.var.theme.colors.accent}",
|
||||
"theme.notification.border": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.notification.text": "#${config.var.theme.colors.fgalt}",
|
||||
"theme.notification.labelicon": "#${config.var.theme.colors.accent}",
|
||||
"theme.osd.bar_color": "#${config.var.theme.colors.accent}",
|
||||
"theme.osd.bar_overflow_color": "#${config.var.theme.colors.accentalt}",
|
||||
"theme.osd.icon": "#${config.var.theme.colors.bg}",
|
||||
"theme.osd.icon_container": "#${config.var.theme.colors.accent}",
|
||||
"theme.osd.label": "#${config.var.theme.colors.accent}",
|
||||
"theme.osd.bar_container": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.menu.media.background.color": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.menu.media.card.color": "#${config.var.theme.colors.bgalt}",
|
||||
"theme.bar.menus.menu.media.card.tint": 90
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,7 @@
|
||||
{ config, ... }: {
|
||||
{ pkgs, config, ... }: {
|
||||
# wayland.windowManager.hyprland.settings.exec-once =
|
||||
# [ "${pkgs.hyprpaper}/bin/hyprpaper" ];
|
||||
|
||||
services.hyprpaper = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
||||
@@ -1,125 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
|
||||
imports = [ ./style.nix ];
|
||||
|
||||
home.packages = with pkgs; [ libnotify ];
|
||||
|
||||
services.swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
positionX = "right";
|
||||
positionY = "top";
|
||||
|
||||
control-center-margin-top = 15;
|
||||
control-center-margin-bottom = 15;
|
||||
control-center-margin-right = 15;
|
||||
control-center-margin-left = 15;
|
||||
|
||||
notification-icon-size = 32;
|
||||
notification-body-image-height = 50;
|
||||
notification-body-image-width = 50;
|
||||
|
||||
timeout-low = 5;
|
||||
timeout = 10;
|
||||
timeout-critical = 0;
|
||||
|
||||
fit-to-screen = true;
|
||||
control-center-width = 500;
|
||||
notification-window-width = 400;
|
||||
|
||||
keyboard-shortcuts = true;
|
||||
image-visibility = "when-available";
|
||||
|
||||
transition-time = 200;
|
||||
hide-on-clear = false;
|
||||
hide-on-action = true;
|
||||
script-fail-notify = true;
|
||||
|
||||
widgets = [
|
||||
"menubar"
|
||||
"title"
|
||||
"buttons-grid"
|
||||
"mpris"
|
||||
"volume"
|
||||
"backlight"
|
||||
"dnd"
|
||||
"notifications"
|
||||
];
|
||||
|
||||
widget-config = {
|
||||
title = {
|
||||
text = "Notification Center";
|
||||
clear-all-button = true;
|
||||
button-text = " Clear All";
|
||||
};
|
||||
dnd = { text = "Do Not Disturb"; };
|
||||
mpris = {
|
||||
image-size = 96;
|
||||
image-radius = 7;
|
||||
};
|
||||
volume = { label = ""; };
|
||||
backlight = {
|
||||
label = "";
|
||||
subsystem = "backlight";
|
||||
device = "nvidia_0";
|
||||
};
|
||||
menubar = {
|
||||
"menu#power-buttons" = {
|
||||
label = "";
|
||||
position = "right";
|
||||
actions = [
|
||||
{
|
||||
label = "";
|
||||
command = "systemctl poweroff";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "systemctl reboot";
|
||||
}
|
||||
{
|
||||
label = "";
|
||||
command = "systemctl suspend";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" = "${pkgs.hyprlock}/bin/hyprlock";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" = "${pkgs.hyprland}/bin/hyprctl dispatch exit";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
"buttons-grid" = {
|
||||
"actions" = [
|
||||
{
|
||||
"label" = "";
|
||||
"command" =
|
||||
"${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" =
|
||||
"${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" = "${pkgs.blueman}/bin/blueman-manager";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" =
|
||||
"${pkgs.grimblast}/bin/grimblast --notify --freeze --wait 1 copysave area ~/Pictures/$(date +%Y-%m-%dT%H%M%S).png";
|
||||
}
|
||||
{
|
||||
"label" = "";
|
||||
"command" = "${pkgs.kooha}/bin/kooha";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
@@ -1,315 +0,0 @@
|
||||
{ config, ... }: {
|
||||
|
||||
xdg.configFile."swaync/style.css" = {
|
||||
text = ''
|
||||
@define-color notif-bg #${config.var.theme.colors.bgalt};
|
||||
@define-color notif-fg #${config.var.theme.colors.fgalt};
|
||||
@define-color cc-bg #${config.var.theme.colors.bg};
|
||||
@define-color cc-fg #${config.var.theme.colors.fg};
|
||||
@define-color red #${config.var.theme.colors.c1};
|
||||
|
||||
* {
|
||||
font-family: "${config.var.theme.font}";
|
||||
color: #${config.var.theme.colors.fg};
|
||||
}
|
||||
|
||||
.notification-row {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.notification-row:focus,
|
||||
.notification-row:hover {
|
||||
background: @notif-bg;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.notification {
|
||||
border-radius: ${toString config.var.theme.rounding}px;
|
||||
margin: 6px 12px;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7),
|
||||
0 2px 6px 2px rgba(0, 0, 0, 0.3);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.notification-content {
|
||||
background: transparent;
|
||||
padding: 6px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
background: @cc-bg;
|
||||
color: @cc-fg;
|
||||
text-shadow: none;
|
||||
padding: 0;
|
||||
border-radius: 100%;
|
||||
margin-top: 10px;
|
||||
margin-right: 16px;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
box-shadow: none;
|
||||
background: @red;
|
||||
transition: all 0.15s ease-in-out;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.notification-default-action,
|
||||
.notification-action {
|
||||
padding: 4px;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
background: @cc-bg;
|
||||
color: @cc-fg;
|
||||
}
|
||||
|
||||
.notification-default-action:hover,
|
||||
.notification-action:hover {
|
||||
-gtk-icon-effect: none;
|
||||
background: @noti-bg-hover;
|
||||
}
|
||||
|
||||
.notification-default-action {
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/* When alternative actions are visible */
|
||||
.notification-default-action:not(:only-child) {
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
|
||||
.notification-action {
|
||||
border-radius: 0px;
|
||||
border-top: none;
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
/* add bottom border radius to eliminate clipping */
|
||||
.notification-action:first-child {
|
||||
border-bottom-left-radius: 10px;
|
||||
}
|
||||
|
||||
.notification-action:last-child {
|
||||
border-bottom-right-radius: 10px;
|
||||
border-right: 1px solid @noti-border-color;
|
||||
}
|
||||
|
||||
.image {}
|
||||
|
||||
.body-image {
|
||||
margin-top: 6px;
|
||||
background-color: white;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.summary {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
margin-right: 18px;
|
||||
}
|
||||
|
||||
.body {
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
background: transparent;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
/* The "Notifications" and "Do Not Disturb" text widget */
|
||||
.top-action-title {
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.control-center {
|
||||
background-color: @cc-bg;
|
||||
}
|
||||
|
||||
.control-center-list {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.floating-notifications {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* Window behind control center and on all other monitors */
|
||||
.blank-window {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/*** Widgets ***/
|
||||
|
||||
/* Title widget */
|
||||
.widget-title {
|
||||
margin: 8px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.widget-title>button {
|
||||
font-size: initial;
|
||||
color: white;
|
||||
text-shadow: none;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
box-shadow: none;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.widget-title>button:hover {
|
||||
background: @noti-bg-hover;
|
||||
}
|
||||
|
||||
/* DND widget */
|
||||
.widget-dnd {
|
||||
margin: 8px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd>switch {
|
||||
font-size: initial;
|
||||
border-radius: 12px;
|
||||
background: @noti-bg;
|
||||
border: 1px solid @noti-border-color;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.widget-dnd>switch:checked {
|
||||
background: @bg-selected;
|
||||
}
|
||||
|
||||
.widget-dnd>switch slider {
|
||||
background: @noti-bg-hover;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
/* Label widget */
|
||||
.widget-label {
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.widget-label>label {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* Mpris widget */
|
||||
.widget-mpris {
|
||||
/* The parent to all players */
|
||||
}
|
||||
|
||||
.widget-mpris-player {
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
}
|
||||
|
||||
.widget-mpris-title {
|
||||
font-weight: bold;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.widget-mpris-subtitle {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* Volume and Brightness Widget*/
|
||||
|
||||
.widget-volume {
|
||||
background-color: @noti-bg;
|
||||
padding: 4px 8px 8px 8px;
|
||||
margin: 0px 8px 8px 8px;
|
||||
border-bottom-left-radius: 12px;
|
||||
border-bottom-right-radius: 12px;
|
||||
}
|
||||
|
||||
.widget-backlight {
|
||||
background-color: @noti-bg;
|
||||
padding: 8px 8px 4px 8px;
|
||||
margin: 8px 8px 0px 8px;
|
||||
border-top-left-radius: 12px;
|
||||
border-top-right-radius: 12px;
|
||||
}
|
||||
|
||||
.KB {
|
||||
padding: 4px 8px 4px 8px;
|
||||
margin: 0px 8px 0px 8px;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.power-buttons{
|
||||
background-color: @noti-bg;
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
|
||||
.power-buttons>button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.power-buttons>button:hover {
|
||||
background: @noti-bg-hover;
|
||||
}
|
||||
|
||||
.widget-menubar>box>.menu-button-bar>button{
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.topbar-buttons>button{
|
||||
border: none;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.widget-buttons-grid{
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
background-color: @noti-bg;
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button{
|
||||
background: @noti-bg;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.widget-buttons-grid>flowbox>flowboxchild>button:hover {
|
||||
background: @noti-bg-hover;
|
||||
}
|
||||
|
||||
.powermode-buttons{
|
||||
background-color: @noti-bg;
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.powermode-buttons>button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.powermode-buttons>button:hover {
|
||||
background: @noti-bg-hover;
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,337 +0,0 @@
|
||||
{ config, ... }: {
|
||||
services = {
|
||||
blueman-applet.enable = true;
|
||||
network-manager-applet.enable = true;
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = config.var.theme.waybar.position;
|
||||
position = config.var.theme.waybar.position;
|
||||
spacing = 0;
|
||||
"margin-top" = if config.var.theme.waybar.float
|
||||
&& config.var.theme.waybar.position == "top" then
|
||||
config.var.theme.gaps-out
|
||||
else
|
||||
0;
|
||||
"margin-bottom" = if config.var.theme.waybar.float
|
||||
&& config.var.theme.waybar.position == "bottom" then
|
||||
config.var.theme.gaps-out
|
||||
else
|
||||
0;
|
||||
"margin-left" = if config.var.theme.waybar.float then
|
||||
config.var.theme.gaps-out
|
||||
else
|
||||
0;
|
||||
"margin-right" = if config.var.theme.waybar.float then
|
||||
config.var.theme.gaps-out
|
||||
else
|
||||
0;
|
||||
height = 44;
|
||||
modules-left = [ "custom/logo" "hyprland/window" ];
|
||||
modules-center = [ "hyprland/workspaces" ];
|
||||
modules-right = [
|
||||
"tray"
|
||||
# "backlight"
|
||||
# "pulseaudio"
|
||||
"custom/caffeine"
|
||||
"custom/night-shift"
|
||||
"battery"
|
||||
"clock"
|
||||
"custom/notification"
|
||||
"custom/power"
|
||||
];
|
||||
|
||||
"wlr/taskbar" = {
|
||||
format = "{icon}";
|
||||
"on-click" = "activate";
|
||||
"on-click-right" = "fullscreen";
|
||||
|
||||
"icon-size" = 25;
|
||||
"tooltip-format" = "{title}";
|
||||
};
|
||||
"hyprland/window" = {
|
||||
"format" = "{title:30}";
|
||||
"max-length" = 30;
|
||||
"separate-outputs" = true;
|
||||
rewrite = {
|
||||
"\\s*(.*)\\s+" = "$1"; # Remove trailing whitespace
|
||||
# "\\s*" = # TODO FIXME
|
||||
# "\${USER}@\${HOST}"; # Replace empty string with your username
|
||||
".* - LibreWolf" = "LibreWolf";
|
||||
};
|
||||
};
|
||||
|
||||
"hyprland/workspaces" = {
|
||||
"on-click" = "activate";
|
||||
format = "{icon}";
|
||||
"format-icons" = {
|
||||
"default" = "";
|
||||
"1" = "1";
|
||||
"2" = "2";
|
||||
"3" = "3";
|
||||
"4" = "4";
|
||||
"5" = "5";
|
||||
"6" = "6";
|
||||
"7" = "7";
|
||||
"8" = "8";
|
||||
"9" = "9";
|
||||
"active" = "";
|
||||
"urgent" = "";
|
||||
};
|
||||
"persistent-workspaces" = {
|
||||
"1" = [ ];
|
||||
"2" = [ ];
|
||||
"3" = [ ];
|
||||
"4" = [ ];
|
||||
"5" = [ ];
|
||||
};
|
||||
};
|
||||
|
||||
tray = { spacing = 16; };
|
||||
|
||||
clock = {
|
||||
"tooltip-format" = "<tt>{calendar}</tt>";
|
||||
"format-alt" = " {:%a, %d %b %Y}";
|
||||
format = " {:%I:%M %p}";
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon}";
|
||||
"format-bluetooth" = "";
|
||||
nospacing = 1;
|
||||
"tooltip-format" = "Volume : {volume}%";
|
||||
"format-muted" = "";
|
||||
"format-icons" = {
|
||||
"headphone" = "";
|
||||
"default" = [ "" "" "" ];
|
||||
};
|
||||
"on-click" = "sound-toggle";
|
||||
"scroll-step" = 1;
|
||||
};
|
||||
|
||||
"custom/logo" = {
|
||||
format = " ";
|
||||
tooltip = false;
|
||||
on-click = "menu";
|
||||
};
|
||||
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{} {icon}";
|
||||
"format-icons" = {
|
||||
notification = "";
|
||||
none = "";
|
||||
"dnd-notification" = " ";
|
||||
"dnd-none" = "";
|
||||
"inhibited-notification" = " ";
|
||||
"inhibited-none" = "";
|
||||
"dnd-inhibited-notification" = " ";
|
||||
"dnd-inhibited-none" = " ";
|
||||
};
|
||||
"return-type" = "json";
|
||||
"exec-if" = "which swaync-client";
|
||||
exec = "swaync-client -swb";
|
||||
"on-click" = "sleep 0.1 && swaync-client -t -sw";
|
||||
"on-click-right" = "sleep 0.1 && swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
|
||||
battery = {
|
||||
format = "{capacity}% {icon}";
|
||||
"format-icons" = {
|
||||
"charging" = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||
"default" = [ "" "" "" "" "" "" "" "" "" "" ];
|
||||
};
|
||||
"format-full" = " ";
|
||||
interval = 10;
|
||||
states = {
|
||||
warning = 20;
|
||||
critical = 10;
|
||||
};
|
||||
tooltip = false;
|
||||
};
|
||||
|
||||
"custom/power" = {
|
||||
format = "";
|
||||
tooltip = false;
|
||||
on-click = "powermenu";
|
||||
};
|
||||
"custom/caffeine" = {
|
||||
format = "{}";
|
||||
max-length = 5;
|
||||
interval = 10;
|
||||
exec = "caffeine-status-icon";
|
||||
"on-click" = "caffeine";
|
||||
# exec-if = "pgrep spotify";
|
||||
# return-type = "";
|
||||
};
|
||||
"custom/night-shift" = {
|
||||
format = "{}";
|
||||
max-length = 5;
|
||||
interval = 10;
|
||||
exec = "night-shift-status-icon";
|
||||
"on-click" = "night-shift";
|
||||
};
|
||||
backlight = {
|
||||
device = "nvidia_0";
|
||||
format = "{icon}";
|
||||
"format-icons" = [ " " " " "" "" "" "" "" "" "" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
min-height: 0;
|
||||
font-family: "${config.var.theme.font}";
|
||||
color: #${config.var.theme.colors.fg};
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: ${
|
||||
if config.var.theme.waybar.transparent then
|
||||
"rgba(0, 0, 0, 0)"
|
||||
else
|
||||
"#${config.var.theme.colors.bg}"
|
||||
};
|
||||
transition-property: background-color;
|
||||
transition-duration: 0.5s;
|
||||
border-radius: ${
|
||||
if config.var.theme.waybar.float then
|
||||
toString config.var.theme.rounding
|
||||
else
|
||||
"0"
|
||||
}px;
|
||||
font-size: ${toString config.var.theme.waybar.font-size}px;
|
||||
}
|
||||
|
||||
.modules-left, .modules-center, .modules-right {
|
||||
border-radius: ${
|
||||
if config.var.theme.waybar.float then
|
||||
toString config.var.theme.rounding
|
||||
else
|
||||
"0"
|
||||
}px;
|
||||
background-color: #${config.var.theme.colors.bg};
|
||||
padding: 2px 6px;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
all: initial; /* Remove GTK theme values (waybar #1351) */
|
||||
min-width: 0; /* Fix weird spacing in materia (waybar #450) */
|
||||
box-shadow: inset 0 -3px transparent; /* Use box-shadow instead of border so the text isn't offset */
|
||||
padding: 6px 18px;
|
||||
margin: 6px 3px;
|
||||
border-radius: 4px;
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
color: #${config.var.theme.colors.accentFg};
|
||||
background-color: #${config.var.theme.colors.accent};
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
box-shadow: inherit;
|
||||
text-shadow: inherit;
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #${config.var.theme.colors.c1};
|
||||
}
|
||||
|
||||
#window > * {
|
||||
font-family: "${config.var.theme.font-mono}";
|
||||
}
|
||||
|
||||
#memory,
|
||||
#custom-power,
|
||||
#custom-notification,
|
||||
#custom-caffeine,
|
||||
#custom-night-shift,
|
||||
#battery,
|
||||
#backlight,
|
||||
#pulseaudio,
|
||||
#network,
|
||||
#clock,
|
||||
#tray,
|
||||
#backlight{
|
||||
border-radius: 9px;
|
||||
margin: 6px 3px;
|
||||
padding: 6px 12px;
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
}
|
||||
|
||||
#tray menu {
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
}
|
||||
|
||||
#custom-logo {
|
||||
padding-right: 7px;
|
||||
font-size: ${toString config.var.theme.waybar.font-size}px;
|
||||
color: #${config.var.theme.colors.accent};
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #f38ba8;
|
||||
color: #181825;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.warning,
|
||||
#battery.critical,
|
||||
#battery.urgent {
|
||||
background-color: #ff0048;
|
||||
color: #181825;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
animation: none;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
background-color: #${config.var.theme.colors.accent};
|
||||
color: #${config.var.theme.colors.accentFg};
|
||||
}
|
||||
|
||||
|
||||
tooltip {
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
padding: 5px;
|
||||
background-color: #${config.var.theme.colors.bgalt};
|
||||
color: #${config.var.theme.colors.fgalt};
|
||||
}
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
{ config, ... }: {
|
||||
{ config, pkgs, ... }: {
|
||||
|
||||
home.packages = with pkgs; [ wofi-emoji ];
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
|
||||
@@ -9,9 +9,6 @@
|
||||
statusbar-basename = true;
|
||||
render-loading = false;
|
||||
scroll-step = 120;
|
||||
|
||||
# highlight-color = ");
|
||||
# highlight-active-color = mkForce (rgba "base0D");
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@
|
||||
../modules/nix.nix
|
||||
../modules/network-manager.nix
|
||||
../modules/home-manager.nix
|
||||
../modules/power-profiles.nix
|
||||
../modules/utils.nix
|
||||
../modules/gvfs.nix
|
||||
|
||||
./hardware-configuration.nix
|
||||
./variables.nix
|
||||
|
||||
@@ -4,33 +4,30 @@
|
||||
./variables.nix
|
||||
|
||||
# Programs
|
||||
../../home/programs/btop
|
||||
../../home/programs/cava
|
||||
../../home/programs/kitty
|
||||
../../home/programs/nextcloud
|
||||
../../home/programs/nvim
|
||||
../../home/programs/qutebrowser
|
||||
../../home/programs/spicetify
|
||||
../../home/programs/shell
|
||||
../../home/programs/fetch
|
||||
../../home/programs/lf
|
||||
../../home/programs/git
|
||||
../../home/programs/yazi
|
||||
# ../../home/programs/spicetify TODO: broken
|
||||
../../home/programs/btop
|
||||
../../home/programs/cava
|
||||
../../home/programs/nextcloud
|
||||
|
||||
# Scripts
|
||||
../../home/scripts # All scripts
|
||||
|
||||
# System (Desktop environment like stuff)
|
||||
# ../../home/system/dunst
|
||||
../../home/system/gtk
|
||||
../../home/system/zathura
|
||||
../../home/system/hyprland
|
||||
../../home/system/waybar
|
||||
../../home/system/gtk
|
||||
../../home/system/wlogout
|
||||
../../home/system/wofi
|
||||
../../home/system/batsignal
|
||||
../../home/system/zathura
|
||||
../../home/system/mime
|
||||
../../home/system/udiskie
|
||||
../../home/system/swaync
|
||||
../../home/system/clipman
|
||||
|
||||
./secrets # You should probably remove this line
|
||||
];
|
||||
@@ -40,19 +37,14 @@
|
||||
inherit (config.var) homeDirectory;
|
||||
|
||||
packages = with pkgs; [
|
||||
# Apps
|
||||
discord
|
||||
xfce.thunar
|
||||
bitwarden
|
||||
vlc
|
||||
nextcloud-client
|
||||
tailscale
|
||||
wireguard-tools
|
||||
|
||||
# Dev
|
||||
wails
|
||||
pkg-config
|
||||
go
|
||||
cargo
|
||||
nodejs
|
||||
python3
|
||||
jq
|
||||
@@ -67,6 +59,7 @@
|
||||
optipng
|
||||
pfetch
|
||||
pandoc
|
||||
tailscale
|
||||
|
||||
# Just cool
|
||||
peaclock
|
||||
@@ -78,7 +71,6 @@
|
||||
vscode
|
||||
firefox
|
||||
neovide
|
||||
brave
|
||||
];
|
||||
|
||||
# Import wallpapers into $HOME/wallpapers
|
||||
@@ -87,6 +79,9 @@
|
||||
source = ../../home/wallpapers;
|
||||
};
|
||||
|
||||
# Import my profile picture, used by the hyprpanel dashboard
|
||||
file.".profile_picture.png" = { source = ./profile_picture.png; };
|
||||
|
||||
# Don't touch this
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
|
||||
BIN
hosts/laptop/profile_picture.png
Normal file
BIN
hosts/laptop/profile_picture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
@@ -9,6 +9,7 @@
|
||||
|
||||
keyboardLayout = "fr";
|
||||
|
||||
location = "Paris";
|
||||
timeZone = "Europe/Paris";
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocale = "fr_FR.UTF-8";
|
||||
|
||||
1
hosts/modules/gvfs.nix
Normal file
1
hosts/modules/gvfs.nix
Normal file
@@ -0,0 +1 @@
|
||||
{ services.gvfs.enable = true; }
|
||||
@@ -1,6 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
networking.networkmanager.enable = true;
|
||||
systemd.services.NetworkManager-wait-online.enable = false;
|
||||
|
||||
environment.systemPackages = with pkgs; [ networkmanagerapplet ];
|
||||
}
|
||||
|
||||
1
hosts/modules/power-profiles.nix
Normal file
1
hosts/modules/power-profiles.nix
Normal file
@@ -0,0 +1 @@
|
||||
{ services.power-profiles-daemon.enable = true; }
|
||||
@@ -15,7 +15,7 @@
|
||||
# internal
|
||||
./modules/internal/security.nix
|
||||
./modules/internal/openssh.nix
|
||||
# ./modules/internal/adguard.nix # TODO
|
||||
# ./modules/internal/adguard.nix
|
||||
# ./modules/internal/cockpit.nix
|
||||
|
||||
# exposed
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
wallpaper = "nix.png";
|
||||
|
||||
font = "SFProDisplay Nerd Font";
|
||||
font-mono = "FiraCode Nerd Font Mono";
|
||||
font-size = 13;
|
||||
|
||||
rounding = 11;
|
||||
gaps-in = 15;
|
||||
gaps-out = 15 * 2;
|
||||
border-size = 5;
|
||||
animation-speed = "medium"; # "fast" | "medium" | "slow"
|
||||
fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
|
||||
|
||||
waybar = {
|
||||
transparent = true;
|
||||
float = true;
|
||||
position = "top";
|
||||
font-size = 15;
|
||||
};
|
||||
|
||||
colors = {
|
||||
c0 = "1e1e2e"; # black
|
||||
c1 = "f38ba8"; # red
|
||||
c2 = "a6e3a1"; # green
|
||||
c3 = "fab387"; # yellow
|
||||
c4 = "89b4fa"; # blue
|
||||
c5 = "cba6f7"; # magenta
|
||||
c6 = "74c7ec"; # cyan
|
||||
c7 = "cdd6f4"; # white
|
||||
c8 = "313244"; # bright black
|
||||
c9 = "eba0ac"; # bright red
|
||||
c10 = "94e2d5"; # bright green
|
||||
c11 = "f9e2af"; # bright yellow
|
||||
c12 = "b4befe"; # bright blue
|
||||
c13 = "f5c2e7"; # bright magenta
|
||||
c14 = "94e2d5"; # bright cyan
|
||||
c15 = "bac2de"; # bright white
|
||||
|
||||
bg = "01010b";
|
||||
fg = "cdd6f4";
|
||||
bgalt = "181825";
|
||||
fgalt = "bac2de";
|
||||
|
||||
accent = "89b4fa";
|
||||
accentFg = "1e1e2e";
|
||||
|
||||
# Should make those automtic
|
||||
accentName = "blue";
|
||||
accentNumber = "4";
|
||||
};
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
{
|
||||
wallpaper = "magma.png";
|
||||
|
||||
font = "SFProDisplay Nerd Font";
|
||||
font-mono = "FiraCode Nerd Font Mono";
|
||||
font-size = 14;
|
||||
|
||||
rounding = 8;
|
||||
gaps-in = 8;
|
||||
gaps-out = 8 * 2;
|
||||
border-size = 2;
|
||||
animation-speed = "slow"; # "fast" | "medium" | "slow"
|
||||
fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
|
||||
|
||||
waybar = {
|
||||
transparent = false;
|
||||
float = false;
|
||||
position = "bottom";
|
||||
font-size = 16;
|
||||
};
|
||||
|
||||
colors = {
|
||||
c0 = "1e1e2e"; # black
|
||||
c1 = "f38ba8"; # red
|
||||
c2 = "a6e3a1"; # green
|
||||
c3 = "fab387"; # yellow
|
||||
c4 = "89b4fa"; # blue
|
||||
c5 = "cba6f7"; # magenta
|
||||
c6 = "74c7ec"; # cyan
|
||||
c7 = "cdd6f4"; # white
|
||||
c8 = "313244"; # bright black
|
||||
c9 = "eba0ac"; # bright red
|
||||
c10 = "94e2d5"; # bright green
|
||||
c11 = "f9e2af"; # bright yellow
|
||||
c12 = "b4befe"; # bright blue
|
||||
c13 = "f5c2e7"; # bright magenta
|
||||
c14 = "94e2d5"; # bright cyan
|
||||
c15 = "bac2de"; # bright white
|
||||
|
||||
bg = "01010b";
|
||||
fg = "cdd6f4";
|
||||
bgalt = "181825";
|
||||
fgalt = "bac2de";
|
||||
|
||||
accent = "f38ba8";
|
||||
accentFg = "1e1e2e";
|
||||
|
||||
# Should make those automtic
|
||||
accentName = "red";
|
||||
accentNumber = "1";
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
wallpaper = "dark_cloud.png";
|
||||
wallpaper = "nix.png";
|
||||
|
||||
font = "SFProDisplay Nerd Font";
|
||||
font-mono = "FiraCode Nerd Font Mono";
|
||||
@@ -8,15 +8,17 @@
|
||||
rounding = 15;
|
||||
gaps-in = 10;
|
||||
gaps-out = 10 * 2;
|
||||
active-opacity = 0.95;
|
||||
inactive-opacity = 0.9;
|
||||
blur = true;
|
||||
border-size = 3;
|
||||
animation-speed = "fast"; # "fast" | "medium" | "slow"
|
||||
fetch = "nerdfetch"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
|
||||
|
||||
waybar = {
|
||||
bar = {
|
||||
transparent = true;
|
||||
float = true;
|
||||
position = "top";
|
||||
font-size = 15;
|
||||
floating = true;
|
||||
font-size = 16;
|
||||
};
|
||||
|
||||
colors = {
|
||||
@@ -44,6 +46,7 @@
|
||||
|
||||
accent = "A594FD";
|
||||
accentFg = "0B0B0B";
|
||||
accentalt = "917FF0";
|
||||
|
||||
# Should make those automtic
|
||||
accentName = "magenta";
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
{
|
||||
wallpaper = "windows.png";
|
||||
wallpaper = "moutains_black.png";
|
||||
|
||||
font = "SFProDisplay Nerd Font";
|
||||
font-mono = "FiraCode Nerd Font Mono";
|
||||
font-size = 14;
|
||||
|
||||
rounding = 8;
|
||||
gaps-in = 8;
|
||||
gaps-out = 8 * 2;
|
||||
border-size = 2;
|
||||
animation-speed = "slow"; # "fast" | "medium" | "slow"
|
||||
rounding = 10;
|
||||
gaps-in = 6;
|
||||
gaps-out = 6 * 2;
|
||||
active-opacity = 0.95;
|
||||
inactive-opacity = 0.9;
|
||||
blur = true;
|
||||
border-size = 1;
|
||||
animation-speed = "medium"; # "fast" | "medium" | "slow"
|
||||
fetch = "none"; # "nerdfetch" | "neofetch" | "pfetch" | "none"
|
||||
|
||||
waybar = {
|
||||
bar = {
|
||||
transparent = false;
|
||||
float = false;
|
||||
position = "bottom";
|
||||
floating = false;
|
||||
font-size = 16;
|
||||
};
|
||||
|
||||
@@ -25,7 +27,7 @@
|
||||
c2 = "a6e3a1"; # green
|
||||
c3 = "fab387"; # yellow
|
||||
c4 = "89b4fa"; # blue
|
||||
c5 = "cba6f7"; # magenta
|
||||
c5 = "A594FD"; # magenta
|
||||
c6 = "74c7ec"; # cyan
|
||||
c7 = "cdd6f4"; # white
|
||||
c8 = "313244"; # bright black
|
||||
@@ -37,16 +39,17 @@
|
||||
c14 = "94e2d5"; # bright cyan
|
||||
c15 = "bac2de"; # bright white
|
||||
|
||||
bg = "01010b";
|
||||
fg = "cdd6f4";
|
||||
bgalt = "181825";
|
||||
fgalt = "bac2de";
|
||||
bg = "0B0B1B";
|
||||
fg = "EAF0F5";
|
||||
bgalt = "121222";
|
||||
fgalt = "EAF0F5";
|
||||
|
||||
accent = "89b4fa";
|
||||
accentFg = "1e1e2e";
|
||||
accent = "74c7ec";
|
||||
accentFg = "1E1E2E";
|
||||
accentalt = "94e2d5";
|
||||
|
||||
# Should make those automtic
|
||||
accentName = "blue";
|
||||
accentNumber = "4";
|
||||
accentName = "cyan";
|
||||
accentNumber = "6";
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user