Initial commit (after fork)

This commit is contained in:
Pedro Rey Anca 2024-07-08 18:00:42 +02:00
parent 5ebba8a939
commit 5fe3f69a17
111 changed files with 1428 additions and 1611 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 824 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 749 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 658 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 KiB

265
README.md
View file

@ -1,7 +1,7 @@
<h1 align="center">
<img src="./.github/assets/logo/nixos-logo.png " width="100px" />
<img src="./.repo/assets/logo/nixos-logo.png " width="100px" />
<br>
Frost-Phoenix's Flakes
peprolinbot's Flakes
<br>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="600px" /> <br>
<div align="center">
@ -9,12 +9,6 @@
<div align="center">
<p></p>
<div align="center">
<a href="https://github.com/Frost-Phoenix/nixos-config/stargazers">
<img src="https://img.shields.io/github/stars/Frost-Phoenix/nixos-config?color=F5BDE6&labelColor=303446&style=for-the-badge&logo=starship&logoColor=F5BDE6">
</a>
<a href="https://github.com/Frost-Phoenix/nixos-config/">
<img src="https://img.shields.io/github/repo-size/Frost-Phoenix/nixos-config?color=C6A0F6&labelColor=303446&style=for-the-badge&logo=github&logoColor=C6A0F6">
</a>
<a = href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=303446&logo=NixOS&logoColor=white&color=91D7E3">
</a>
@ -32,36 +26,20 @@
### 🖼️ Gallery
<p align="center">
<img src="./.github/assets/screenshots/1.png" /> <br>
<img src="./.github/assets/screenshots/2.png" /> <br>
<img src="./.github/assets/screenshots/3.png" /> <br>
Screenshots last updated <b>2024-04-09</b>
<img src="./.repo/assets/screenshots/1.png" /> <br>
<img src="./.repo/assets/screenshots/2.png" /> <br>
Screenshots last updated <b>8th July 2024</b>
</p>
<details>
<summary>
OLD (EXPAND)
</summary>
<p align="center">
<img src="./.github/assets/screenshots/1.old.png" width="800px" /> <br>
<img src="./.github/assets/screenshots/2.old.png" width="800px" /> <br>
<img src="./.github/assets/screenshots/3.old.png" width="800px" /> <br>
</p>
</details>
# 🗃️ Overview
### 📚 Layout
- [flake.nix](flake.nix) base of the configuration
- [hosts](hosts) 🌳 per-host configurations that contain machine specific configurations
- [desktop](hosts/desktop/) 🖥️ Desktop specific configuration
- [laptop](hosts/laptop/) 💻 Laptop specific configuration
- [modules](modules) 🍱 modularized NixOS configurations
- [core](modules/core/) ⚙️ Core NixOS configuration
- [homes](modules/home/) 🏠 my [Home-Manager](https://github.com/nix-community/home-manager) config
- [pkgs](flake/pkgs) 📦 packages exported by my flake
- [wallpapers](wallpapers/) 🌄 wallpapers collection
### 📓 Components
| | NixOS + Hyprland |
@ -80,10 +58,10 @@ OLD (EXPAND)
| **Color Scheme** | [Catppuccin][Catppuccin] |
| **Cursor** | [Nordzy-cursors][Nordzy-cursors] |
| **Icons** | [catppuccin-papirus-folders][catppuccin-papirus-folders] |
| **Lockscreen** | [Swaylock-effects][Swaylock-effects] |
| **Lockscreen** | [Hyprlock][Swaylock-effects] |
| **Image Viewer** | [imv][imv] |
| **Media Player** | [mpv][mpv] |
| **Music Player** | [audacious][audacious] |
| **Music Player** | [audacious][spotify_player] |
| **Screenshot Software** | [grimblast][grimblast] |
| **Screen Recording** | [wf-recorder][wf-recorder] |
| **Clipboard** | [wl-clip-persist][wl-clip-persist] |
@ -192,26 +170,6 @@ toggle_oppacity.sh
**Usage:** ```toggle_oppacity```
</details>
<details>
<summary>
maxfetch.sh
</summary>
**Description:** This script is a modified version of the [jobcmax/maxfetch][maxfetch] script.
**Usage:** ```maxfetch```
</details>
<details>
<summary>
music.sh
</summary>
**Description:** This script is for managing Audacious (music player). If Audacious is currently running, it will be killed (stopping the music); otherwise, it will start Audacious in the 8th workspace and resume the music.
**Usage:** ```music```
</details>
<details>
<summary>
runbg.sh
@ -224,130 +182,7 @@ runbg.sh
### ⌨️ Keybinds
View all keybinds by pressing ```$mainMod F1``` and wallpaper picker by pressing ```$mainMod w```. By default ```$mainMod``` is the ```SUPER``` key.
<details>
<summary>
Keybindings
</summary>
- ```bind = $mainMod, Return, exec, kitty```
- ```bind = ALT, Return, exec, kitty --title float_kitty```
- ```bind = $mainMod SHIFT, Return, exec, kitty --start-as=fullscreen -o 'font_size=16'```
- ```bind = $mainMod, B, exec, firefox```
- ```bind = $mainMod, Q, killactive,```
- ```bind = $mainMod, F, fullscreen, 0```
- ```bind = $mainMod SHIFT, F, fullscreen, 1```
- ```bind = $mainMod, Space, togglefloating,```
- ```bind = $mainMod, D, exec, fuzzel```
- ```bind = $mainMod, Escape, exec, swaylock```
- ```bind = $mainMod SHIFT, Escape, exec, shutdown-script```
- ```bind = $mainMod, P, pseudo,```
- ```bind = $mainMod, J, togglesplit,```
- ```bind = $mainMod, E, exec, nemo```
- ```bind = $mainMod SHIFT, B, exec, pkill -SIGUSR1 .waybar-wrapped```
- ```bind = $mainMod, C ,exec, hyprpicker -a```
- ```bind = $mainMod, W,exec, wallpaper-picker```
</details>
<details>
<summary>
Screenshot
</summary>
- ```bind = $mainMod, Print, exec, grimblast --notify --cursor save area ~/Pictures/$(date +'%Y-%m-%d-At-%Ih%Mm%Ss').png```
- ```bind = ,Print, exec, grimblast --notify --cursor copy area```
</details>
<details>
<summary>
Switch window focus
</summary>
- ```bind = $mainMod, left, movefocus, l```
- ```bind = $mainMod, right, movefocus, r```
- ```bind = $mainMod, up, movefocus, u```
- ```bind = $mainMod, down, movefocus, d```
</details>
<details>
<summary>
Switch workspace
</summary>
- ```bind = $mainMod, 1, workspace, 1```
- ```bind = $mainMod, 2, workspace, 2```
- ```bind = $mainMod, 3, workspace, 3```
- ```bind = $mainMod, 4, workspace, 4```
- ```bind = $mainMod, 5, workspace, 5```
- ```bind = $mainMod, 6, workspace, 6```
- ```bind = $mainMod, 7, workspace, 7```
- ```bind = $mainMod, 8, workspace, 8```
- ```bind = $mainMod, 9, workspace, 9```
- ```bind = $mainMod, 0, workspace, 10```
</details>
<details>
<summary>
Switch window to workspace
</summary>
- ```bind = $mainMod SHIFT, 1, movetoworkspace, 1```
- ```bind = $mainMod SHIFT, 2, movetoworkspace, 2```
- ```bind = $mainMod SHIFT, 3, movetoworkspace, 3```
- ```bind = $mainMod SHIFT, 4, movetoworkspace, 4```
- ```bind = $mainMod SHIFT, 5, movetoworkspace, 5```
- ```bind = $mainMod SHIFT, 6, movetoworkspace, 6```
- ```bind = $mainMod SHIFT, 7, movetoworkspace, 7```
- ```bind = $mainMod SHIFT, 8, movetoworkspace, 8```
- ```bind = $mainMod SHIFT, 9, movetoworkspace, 9```
- ```bind = $mainMod SHIFT, 0, movetoworkspace, 10```
- ```bind = $mainMod CTRL, c, movetoworkspace, empty```
</details>
<details>
<summary>
Window control
</summary>
- ```bind = $mainMod SHIFT, left, movewindow, l```
- ```bind = $mainMod SHIFT, right, movewindow, r```
- ```bind = $mainMod SHIFT, up, movewindow, u```
- ```bind = $mainMod SHIFT, down, movewindow, d```
- ```bind = $mainMod CTRL, left, resizeactive, -80 0```
- ```bind = $mainMod CTRL, right, resizeactive, 80 0```
- ```bind = $mainMod CTRL, up, resizeactive, 0 -80```
- ```bind = $mainMod CTRL, down, resizeactive, 0 80```
- ```bind = $mainMod ALT, left, moveactive, -80 0```
- ```bind = $mainMod ALT, right, moveactive, 80 0```
- ```bind = $mainMod ALT, up, moveactive, 0 -80```
- ```bind = $mainMod ALT, down, moveactive, 0 80```
</details>
<details>
<summary>
Media and volume controls
</summary>
- ```bind = ,XF86AudioRaiseVolume,exec, pamixer -i 2```
- ```bind = ,XF86AudioLowerVolume,exec, pamixer -d 2```
- ```bind = ,XF86AudioMute,exec, pamixer -t```
- ```bind = ,XF86AudioPlay,exec, playerctl play-pause```
- ```bind = ,XF86AudioNext,exec, playerctl next```
- ```bind = ,XF86AudioPrev,exec, playerctl previous```
- ```bind = , XF86AudioStop, exec, playerctl stop```
- ```bind = $mainMod, mouse_down, workspace, e-1```
- ```bind = $mainMod, mouse_up, workspace, e+1```
</details>
<details>
<summary>
Mouse binding
</summary>
- ```bindm = $mainMod, mouse:272, movewindow```
- ```bindm = $mainMod, mouse:273, resizewindow```
</details>
View all keybinds by pressing ```$mainMod F1```. By default ```$mainMod``` is the ```SUPER``` key.
# 🚀 Installation
@ -355,7 +190,7 @@ Mouse binding
> Applying custom configurations, especially those related to your operating system, can have unexpected consequences and may interfere with your system's normal behavior. While I have tested these configurations on my own setup, there is no guarantee that they will work flawlessly on all systems. <br>
> **I am not responsible for any issues that may arise from using this configuration.**
> It is highly recommended to review the configuration contents and make necessary modifications to customize it to your needs before attempting the installation.
> It is highly recommended to review the configuration contents and make necessary modifications to customize it to your needs before attempting the installation. Especially if you consider that I only use this on my own systems and I make almost no efforts for this to be used by anyone other than me.
1. **Install NixOs**
@ -366,75 +201,24 @@ Mouse binding
```
nix-shell -p git
git clone https://github.com/Frost-Phoenix/nixos-config
git clone https://git.peprolinbot.com/peprolinbot/nixos-config
cd nixos-config
```
3. **Install script**
> First make sure to read the install script, it isn't long
Execute and follow the installation script :
```
./install.sh
```
> You will need to change the git account yourself in ./modules/home/git.nix
```
programs.git = {
...
userName = "Frost-Phoenix";
userEmail = "67cyril6767@gmail.com";
...
};
```
2. **Customize**
Read everything (as much as you can anyway) and edit what you consider neccesary.
3. **Install**
Run `sudo nixos-rebuild switch --flake .` and fix any errors that might arise
4. **Reboot**
After rebooting, you'll be greeted by swaylock prompting for your password, with the wallpaper in the background.
5. **Manual config**
Even though I use home manager, there is still a little bit of manual configuration to do:
- Set Aseprite theme (they are in the folder `./nixos-config/modules/home/aseprite/themes`).
- Enable Discord theme (in Discord settings under VENCORD > Themes).
- Configure the browser (for now, all browser configuration is done manually).
### Install script walkthrough
A brief walkthrough of what the install script does.
1. **Get username**
You will receive a prompt to enter your username, with a confirmation check.
2. **Set username**
The script will replace all occurancies of the default usename ```CURRENT_USERNAME``` by the given one stored in ```$username```
3. Create basic directories
The following directories will be created:
- ```~/Music```
- ```~/Documents```
- ```~/Pictures/wallpapers/others```
4. Copy the wallpapers
Then the wallpapers will be copied into ```~/Pictures/wallpapers/others``` which is the folder in which the ```wallpaper-picker.sh``` script will be looking for them.
5. Get the hardware configuration
It will also automatically copy the hardware configuration from ```/etc/nixos/hardware-configuration.nix``` to ```./hosts/nixos/hardware-configuration.nix``` so that the hardware configuration used is yours and not the default one.
6. Choose a host (desktop / laptop)
Now you will need to choose the host you want. It depend on whether you are using a desktop or laptop.
7. Build the system
Lastly, it will build the system, which includes both the flake config and home-manager config.
After rebooting, you'll be greeted by regreet prompting for your password.
# 👥 Credits
Other dotfiles that I learned / copy from:
Heavily based on [Frost-Phoenix's Flakes](https://github.com/Frost-Phoenix/nixos-config). And therefore, recursively, also:
- Nix Flakes
- [nomadics9/NixOS-Flake](https://github.com/nomadics9/NixOS-Flake): This is where I start my nixos / hyprland journey.
@ -449,12 +233,7 @@ Other dotfiles that I learned / copy from:
- [sioodmy/dotfiles](https://github.com/sioodmy/dotfiles)
- [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes)
<!-- # ✨ Stars History -->
<!-- <p align="center"><img src="https://api.star-history.com/svg?repos=frost-phoenix/nixos-config&type=Timeline&theme=dark" /></p> -->
<p align="center"><img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/footers/gray0_ctp_on_line.svg?sanitize=true" /></p>
Please open an issue if i forgot to credit you.
<!-- end of page, send back to the top -->
@ -473,8 +252,8 @@ Other dotfiles that I learned / copy from:
[yazi]: https://github.com/sxyazi/yazi
[zsh]: https://ohmyz.sh/
[oh-my-zsh]: https://ohmyz.sh/
[Swaylock-effects]: https://github.com/mortie/swaylock-effects
[audacious]: https://audacious-media-player.org/
[hyprlock]: https://github.com/hyprwm/hyprlock
[spotify_player]: https://github.com/aome510/spotify-player
[mpv]: https://github.com/mpv-player/mpv
[VSCodium]:https://vscodium.com/
[Neovim]: https://github.com/neovim/neovim

View file

@ -91,7 +91,67 @@
"type": "github"
}
},
"fjordlauncher": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"libnbtplusplus": "libnbtplusplus",
"nix-filter": "nix-filter",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks"
},
"locked": {
"lastModified": 1719962305,
"narHash": "sha256-LM+8y/cK4aLuWlqHGNhTaaVdIV6e9zCnc4ar3Ux/Q6U=",
"owner": "unmojang",
"repo": "FjordLauncher",
"rev": "a7cf31fd95a129d3246894747121a5e70a9bf431",
"type": "github"
},
"original": {
"owner": "unmojang",
"repo": "FjordLauncher",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"fjordlauncher",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719877454,
"narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "4e3583423212f9303aa1a6337f8dffb415920e4f",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
@ -125,6 +185,28 @@
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"fjordlauncher",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -132,11 +214,11 @@
]
},
"locked": {
"lastModified": 1719677234,
"narHash": "sha256-qO9WZsj/0E6zcK4Ht1y/iJ8XfwbBzq7xdqhBh44OP/M=",
"lastModified": 1720188602,
"narHash": "sha256-lC3byBmhVZFzWl/dCic8+cKUEEAXAswWOYjq4paFmbo=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "36317d4d38887f7629876b0e43c8d9593c5cc48d",
"rev": "e3582e5151498bc4d757e8361431ace8529e7bb7",
"type": "github"
},
"original": {
@ -147,7 +229,7 @@
},
"hypr-contrib": {
"inputs": {
"nixpkgs": "nixpkgs_2"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1718476555,
@ -198,16 +280,16 @@
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_4",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1719684307,
"narHash": "sha256-mpBw92WX8uqxRd4UWAHg4K6r33brYqDg8cpVXzr1NnQ=",
"lastModified": 1720213509,
"narHash": "sha256-aPYf8Jnu1fMgMYMgQnH433/Fcqfky1Z5ZuzCkNKcR1U=",
"ref": "refs/heads/main",
"rev": "718afe271ecebfe6711453b9cfee90fa49a7e761",
"revCount": 4897,
"rev": "cc98594c3aed0b542e03818371a4636f549f80e1",
"revCount": 4908,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
@ -276,14 +358,14 @@
},
"hyprpicker": {
"inputs": {
"nixpkgs": "nixpkgs_4"
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1718119103,
"narHash": "sha256-Ghtstc1LV2RkaQDwThGS2VfjHgYSvgk4+jsytDKYog0=",
"lastModified": 1719873934,
"narHash": "sha256-2UiP64OYyeeQJnrt3opInzv8IJKeor9nUAoxl87anng=",
"owner": "hyprwm",
"repo": "hyprpicker",
"rev": "67e0f34e2760a80d74ab5d8ec8d2acae692d307f",
"rev": "b0974381f996f92dc191e6b03adf7d581061619b",
"type": "github"
},
"original": {
@ -342,17 +424,48 @@
"type": "github"
}
},
"libnbtplusplus": {
"flake": false,
"locked": {
"lastModified": 1699286814,
"narHash": "sha256-yy0q+bky80LtK1GWzz7qpM+aAGrOqLuewbid8WT1ilk=",
"owner": "PrismLauncher",
"repo": "libnbtplusplus",
"rev": "23b955121b8217c1c348a9ed2483167a6f3ff4ad",
"type": "github"
},
"original": {
"owner": "PrismLauncher",
"repo": "libnbtplusplus",
"type": "github"
}
},
"nix-filter": {
"locked": {
"lastModified": 1710156097,
"narHash": "sha256-1Wvk8UP7PXdf8bCCaEoMnOT1qe5/Duqgj+rL8sRQsSM=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "3342559a24e85fc164b295c3444e8a139924675b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nix-gaming": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_5"
"flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1719710498,
"narHash": "sha256-+yqI1zvk1jNcNTWA3CGnp5N2jSXr/q/CggYZYvGsdNc=",
"lastModified": 1720185178,
"narHash": "sha256-9KJ7KXQYDhnAfPIAvYYAEFW+85Gk9gm5W1pMoE/VMFg=",
"owner": "fufexan",
"repo": "nix-gaming",
"rev": "774908e566a0b3b702219fdf90a5ed4551b3688d",
"rev": "6caa391790442baea22260296041429fb365e0ce",
"type": "github"
},
"original": {
@ -390,6 +503,22 @@
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1719826879,
"narHash": "sha256-xs7PlULe8O1SAcs/9e/HOjeUjBrU5FNtkAF/bSEcFto=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "b9014df496d5b68bf7c0145d0e9b0f529ce4f2a8",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
@ -405,7 +534,7 @@
"type": "github"
}
},
"nixpkgs_3": {
"nixpkgs_4": {
"locked": {
"lastModified": 1719075281,
"narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=",
@ -421,7 +550,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_5": {
"locked": {
"lastModified": 1683014792,
"narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=",
@ -437,7 +566,7 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_6": {
"locked": {
"lastModified": 1719468428,
"narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=",
@ -453,13 +582,13 @@
"type": "github"
}
},
"nixpkgs_6": {
"nixpkgs_7": {
"locked": {
"lastModified": 1719506693,
"narHash": "sha256-C8e9S7RzshSdHB7L+v9I51af1gDM5unhJ2xO1ywxNH8=",
"lastModified": 1720031269,
"narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b2852eb9365c6de48ffb0dc2c9562591f652242a",
"rev": "9f4128e00b0ae8ec65918efeba59db998750ead6",
"type": "github"
},
"original": {
@ -471,11 +600,11 @@
},
"nur": {
"locked": {
"lastModified": 1719733143,
"narHash": "sha256-Q3gdHnH1HCLymN1OdvJqXhwX2xD0LCPL0G66hXK7O5o=",
"lastModified": 1720262786,
"narHash": "sha256-lOw+DePpT6JEzudxzq/yhDqWW9fOga9vrojV2E1DgAs=",
"owner": "nix-community",
"repo": "NUR",
"rev": "cfef8e13dde1c1679d6d1781d942b4ab0203e0d2",
"rev": "7907d743f2a29c574db99f3297da264fe5fe7a6e",
"type": "github"
},
"original": {
@ -484,18 +613,49 @@
"type": "github"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": [
"fjordlauncher",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"fjordlauncher",
"nixpkgs"
],
"nixpkgs-stable": [
"fjordlauncher",
"nixpkgs"
]
},
"locked": {
"lastModified": 1719259945,
"narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=",
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "pre-commit-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"alejandra": "alejandra",
"catppuccin-bat": "catppuccin-bat",
"catppuccin-cava": "catppuccin-cava",
"catppuccin-starship": "catppuccin-starship",
"fjordlauncher": "fjordlauncher",
"home-manager": "home-manager",
"hypr-contrib": "hypr-contrib",
"hyprland": "hyprland",
"hyprpicker": "hyprpicker",
"nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs_6",
"nixpkgs": "nixpkgs_7",
"nur": "nur"
}
},

View file

@ -1,23 +1,25 @@
{
description = "FrostPhoenix's nixos configuration";
description = "peprolinbot's nixos configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
hypr-contrib.url = "github:hyprwm/contrib";
hyprpicker.url = "github:hyprwm/hyprpicker";
alejandra.url = "github:kamadorueda/alejandra/3.0.0";
nix-gaming.url = "github:fufexan/nix-gaming";
fjordlauncher.url = "github:unmojang/FjordLauncher";
hyprland = {
type = "git";
url = "https://github.com/hyprwm/Hyprland";
submodules = true;
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
@ -37,34 +39,43 @@
};
};
outputs = { nixpkgs, self, ...} @ inputs:
let
selfPkgs = import ./pkgs;
username = "frostphoenix";
outputs = {
nixpkgs,
self,
...
} @ inputs: let
username = "pedro";
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
lib = nixpkgs.lib;
in
{
overlays.default = selfPkgs.overlay;
in {
nixosConfigurations = {
desktop = nixpkgs.lib.nixosSystem {
frues-pc = nixpkgs.lib.nixosSystem {
inherit system;
modules = [ (import ./hosts/desktop) ];
specialArgs = { host="desktop"; inherit self inputs username ; };
modules = [(import ./hosts/frues-pc)];
specialArgs = {
host = "frues-pc";
inherit self inputs username;
};
};
laptop = nixpkgs.lib.nixosSystem {
frues-port = nixpkgs.lib.nixosSystem {
inherit system;
modules = [ (import ./hosts/laptop) ];
specialArgs = { host="laptop"; inherit self inputs username ; };
modules = [(import ./hosts/frues-port)];
specialArgs = {
host = "frues-port";
inherit self inputs username;
};
};
vm = nixpkgs.lib.nixosSystem {
frues-vm = nixpkgs.lib.nixosSystem {
inherit system;
modules = [ (import ./hosts/vm) ];
specialArgs = { host="vm"; inherit self inputs username ; };
modules = [(import ./hosts/frues-vm)];
specialArgs = {
host = "frues-vm";
inherit self inputs username;
};
};
};
};

View file

@ -1,9 +0,0 @@
{ pkgs, ... }:
{
imports = [
./hardware-configuration.nix
./../../modules/core
];
powerManagement.cpuFreqGovernor = "performance";
}

View file

@ -1,41 +0,0 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/6b518d54-a144-42fe-b500-b6651038bbcc";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/D1A5-9B92";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/2d69abc2-3d44-481b-ada8-b436c2b9c8c2"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
# networking.interfaces.enp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -0,0 +1,19 @@
{pkgs, ...}: {
imports = [
./hardware-configuration.nix
./../../modules/core
];
networking.hostName = "frues-pc";
powerManagement.cpuFreqGovernor = "performance";
hardware.ckb-next.enable = true;
boot.initrd.kernelModules = ["amdgpu"];
services.xserver.videoDrivers = ["amdgpu"];
hardware.graphics.extraPackages = with pkgs; [
rocmPackages.clr.icd
amdvlk
];
}

View file

@ -0,0 +1,57 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = ["dm-snapshot"];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/120da0bc-6419-42f0-b47f-11aa2e1a7058";
fsType = "ext4";
};
boot.initrd.luks.devices."sda6_crypt".device = "/dev/disk/by-uuid/5fd8e7a0-88be-4779-a52b-01b8888219a6";
fileSystems."/home" = {
device = "/dev/disk/by-uuid/7cf15f3c-bf94-470e-96a4-ef537ea934cd";
fsType = "ext4";
};
boot.initrd.luks.devices."sdb2_crypt".device = "/dev/disk/by-uuid/0deeb53b-3885-4a4f-be6d-28a48b6af052";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/9b01cae4-e5cd-4059-bf31-af746216fbef";
fsType = "ext4";
};
fileSystems."/boot/efi" = {
device = "/dev/disk/by-uuid/A606-4C72";
fsType = "vfat";
};
swapDevices = [
{device = "/dev/disk/by-uuid/98cf8cbb-8d39-45af-8143-326d24b65960";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -1,22 +1,27 @@
{ pkgs, config, ... }:
{
pkgs,
config,
...
}: {
imports = [
./hardware-configuration.nix
./../../modules/core
];
networking.hostName = "frues-port";
environment.systemPackages = with pkgs; [
acpi
brightnessctl
cpupower-gui
powertop
];
services = {
services = {
# thermald.enable = true;
# cpupower-gui.enable = true;
power-profiles-daemon.enable = true;
upower = {
enable = true;
percentageLow = 20;

View file

@ -1,31 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/761317bf-c727-4d12-b663-bc8eaa0227cc";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/761317bf-c727-4d12-b663-bc8eaa0227cc";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/A00C-17CE";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/A00C-17CE";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/f9c078c5-d71f-4373-8e11-c6240617e9c2"; }
];
swapDevices = [
{device = "/dev/disk/by-uuid/f9c078c5-d71f-4373-8e11-c6240617e9c2";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -0,0 +1,24 @@
{
pkgs,
config,
lib,
...
}: {
imports = [
./hardware-configuration.nix
./../../modules/core
];
networking.hostName = "frues-vm";
# allow local remote access to make it easier to toy around with the system
services.openssh = {
enable = true;
ports = [22];
settings = {
PasswordAuthentication = true;
AllowUsers = null;
PermitRootLogin = false;
};
};
}

View file

@ -1,24 +1,28 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/631775ef-6851-4fe7-997f-189372f87437";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/631775ef-6851-4fe7-997f-189372f87437";
fsType = "ext4";
};
swapDevices = [ ];
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,26 +0,0 @@
{ pkgs, config, lib, ... }:
{
imports = [
./hardware-configuration.nix
./../../modules/core
];
# kvm/qemu doesn't use UEFI firmware mode by default.
# so we force-override the setting here
# and configure GRUB instead.
boot.loader.systemd-boot.enable = lib.mkForce false;
boot.loader.grub.enable = true;
boot.loader.grub.device = "/dev/vda";
boot.loader.grub.useOSProber = false;
# allow local remote access to make it easier to toy around with the system
services.openssh = {
enable = true;
ports = [22];
settings = {
PasswordAuthentication = true;
AllowUsers = null;
PermitRootLogin = "yes";
};
};
}

View file

@ -1,134 +0,0 @@
#!/usr/bin/env bash
init() {
# Vars
CURRENT_USERNAME='frostphoenix'
# Colors
NORMAL=$(tput sgr0)
WHITE=$(tput setaf 7)
BLACK=$(tput setaf 0)
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
BRIGHT=$(tput bold)
UNDERLINE=$(tput smul)
}
confirm() {
echo -en "[${GREEN}y${NORMAL}/${RED}n${NORMAL}]: "
read -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
exit 0
fi
}
print_header() {
echo -E "$CYAN
_____ _ ____ _ _
| ___| __ ___ ___| |_| _ \| |__ ___ ___ _ __ (_)_ __
| |_ | '__/ _ \/ __| __| |_) | '_ \ / _ \ / _ \ '_ \| \ \/ /
| _|| | | (_) \__ \ |_| __/| | | | (_) | __/ | | | |> <
|_| |_| \___/|___/\__|_| |_| |_|\___/ \___|_| |_|_/_/\_\
_ _ _ ___ ___ _ _ _
| \ | (_)_ __/ _ \ ___ |_ _|_ __ ___| |_ __ _| | | ___ _ __
| \| | \ \/ / | | / __| | || '_ \/ __| __/ _' | | |/ _ \ '__|
| |\ | |> <| |_| \__ \ | || | | \__ \ || (_| | | | __/ |
|_| \_|_/_/\_\\\\___/|___/ |___|_| |_|___/\__\__,_|_|_|\___|_|
$BLUE https://github.com/Frost-Phoenix $RED
! To make sure everything runs correctly DONT run as root ! $GREEN
-> '"./install.sh"' $NORMAL
"
}
get_username() {
echo -en "Enter your$GREEN username$NORMAL : $YELLOW"
read username
echo -en "$NORMAL"
echo -en "Use$YELLOW "$username"$NORMAL as ${GREEN}username${NORMAL} ? "
confirm
}
set_username() {
sed -i -e "s/${CURRENT_USERNAME}/${username}/g" ./flake.nix
sed -i -e "s/${CURRENT_USERNAME}/${username}/g" ./modules/home/audacious/config
}
get_host() {
echo -en "Choose a ${GREEN}host${NORMAL} - [${YELLOW}D${NORMAL}]esktop, [${YELLOW}L${NORMAL}]aptop or [${YELLOW}V${NORMAL}]irtual machine: "
read -n 1 -r
echo
if [[ $REPLY =~ ^[Dd]$ ]]; then
HOST='desktop'
elif [[ $REPLY =~ ^[Ll]$ ]]; then
HOST='laptop'
elif [[ $REPLY =~ ^[Vv]$ ]]; then
HOST='vm'
else
echo "Invalid choice. Please select 'D' for desktop, 'L' for laptop or 'V' for virtual machine."
exit 1
fi
echo -en "$NORMAL"
echo -en "Use the$YELLOW "$HOST"$NORMAL ${GREEN}host${NORMAL} ? "
confirm
}
install() {
echo -e "\n${RED}START INSTALL PHASE${NORMAL}\n"
sleep 0.2
# Create basic directories
echo -e "Creating folders:"
echo -e " - ${MAGENTA}~/Music${NORMAL}"
echo -e " - ${MAGENTA}~/Documents${NORMAL}"
echo -e " - ${MAGENTA}~/Pictures/wallpapers/others${NORMAL}"
mkdir -p ~/Music
mkdir -p ~/Documents
mkdir -p ~/Pictures/wallpapers/others
sleep 0.2
# Copy the wallpapers
echo -e "Copying all ${MAGENTA}wallpapers${NORMAL}"
cp -r wallpapers/wallpaper.png ~/Pictures/wallpapers
cp -r wallpapers/otherWallpaper/catppuccin/* ~/Pictures/wallpapers/others/
cp -r wallpapers/otherWallpaper/nixos/* ~/Pictures/wallpapers/others/
cp -r wallpapers/otherWallpaper/others/* ~/Pictures/wallpapers/others/
sleep 0.2
# Get the hardware configuration
echo -e "Copying ${MAGENTA}/etc/nixos/hardware-configuration.nix${NORMAL} to ${MAGENTA}./hosts/${HOST}/${NORMAL}\n"
cp /etc/nixos/hardware-configuration.nix hosts/${HOST}/hardware-configuration.nix
sleep 0.2
# Last Confirmation
echo -en "You are about to start the system build, do you want to process ? "
confirm
# Build the system (flakes + home manager)
echo -e "\nBuilding the system...\n"
sudo nixos-rebuild switch --flake .#${HOST}
}
main() {
init
print_header
get_username
set_username
get_host
install
}
main && exit 0

View file

@ -1,7 +1,14 @@
{ pkgs, ... }:
{
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.configurationLimit = 10;
{pkgs, ...}: {
boot.loader = {
efi = {
canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi";
};
grub = {
efiSupport = true;
device = "nodev";
useOSProber = true;
};
};
boot.kernelPackages = pkgs.linuxPackages_latest;
}

View file

@ -1,16 +1,24 @@
{ inputs, nixpkgs, self, username, host, ...}:
{
inputs,
nixpkgs,
self,
username,
host,
...
}: {
imports =
[ (import ./bootloader.nix) ]
++ [ (import ./hardware.nix) ]
++ [ (import ./xserver.nix) ]
++ [ (import ./network.nix) ]
++ [ (import ./pipewire.nix) ]
++ [ (import ./program.nix) ]
++ [ (import ./security.nix) ]
++ [ (import ./services.nix) ]
++ [ (import ./system.nix) ]
++ [ (import ./user.nix) ]
++ [ (import ./wayland.nix) ]
++ [ (import ./virtualization.nix) ];
[(import ./bootloader.nix)]
++ [(import ./hardware.nix)]
++ [(import ./xserver.nix)]
++ [(import ./network.nix)]
++ [(import ./pipewire.nix)]
++ [(import ./programs.nix)]
++ [(import ./security.nix)]
++ [(import ./services.nix)]
++ [(import ./gaming.nix)]
++ [(import ./system.nix)]
++ [(import ./user.nix)]
++ [(import ./wayland.nix)]
++ [(import ./variables.nix)]
++ [(import ./virtualisation.nix)];
}

14
modules/core/gaming.nix Normal file
View file

@ -0,0 +1,14 @@
{
pkgs,
lib,
...
}: {
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
};
programs.gamemode.enable = true;
services.joycond.enable = true;
}

View file

@ -1,12 +1,14 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
hardware = {
graphics = {
enable = true;
extraPackages = with pkgs; [
];
};
};
hardware.enableRedistributableFirmware = true;
hardware.flipperzero.enable = true; # Installs and setups everything Flipper Zero
hardware.bluetooth.enable = true;
}

View file

@ -1,16 +1,14 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
networking = {
hostName = "nixos";
networkmanager.enable = true;
nameservers = [ "1.1.1.1" ];
nameservers = ["1.1.1.1"];
firewall = {
enable = true;
allowedTCPPorts = [ 22 80 443 59010 59011 ];
allowedUDPPorts = [ 59010 59011 ];
allowedTCPPorts = [22 80 443 59010 59011];
allowedUDPPorts = [59010 59011];
# allowedUDPPortRanges = [
# { from = 4000; to = 4007; }
# { from = 8000; to = 8010; }
# { from = 4000; to = 4007; }
# { from = 8000; to = 8010; }
# ];
};
};

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
sound.enable = true;
hardware.pulseaudio.enable = false;
services.pipewire = {

View file

@ -1,5 +1,8 @@
{ pkgs, lib, ... }:
{
pkgs,
lib,
...
}: {
programs.dconf.enable = true;
programs.zsh.enable = true;
programs.gnupg.agent = {
@ -9,4 +12,5 @@
};
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [];
programs.adb.enable = true;
}

View file

@ -1,7 +1,7 @@
{ ... }:
{
{pkgs, ...}: {
security.rtkit.enable = true;
security.sudo.enable = true;
security.sudo.package = pkgs.sudo.override {withInsults = true;}; # I'm spanish and I love cursing
# security.pam.services.swaylock = { };
security.pam.services.hyprlock = {};
}

View file

@ -1,10 +1,17 @@
{ ... }:
{
{...}: {
services = {
gvfs.enable = true;
gnome.gnome-keyring.enable = true;
dbus.enable = true;
fstrim.enable = true;
flatpak.enable = true;
printing.enable = true;
blueman.enable = true;
avahi = {
enable = true;
nssmdns4 = true;
openFirewall = true;
};
};
services.logind.extraConfig = ''
# dont shutdown when power button is short-pressed

View file

@ -1,12 +1,17 @@
{ self, pkgs, lib, inputs, ...}:
{
self,
pkgs,
lib,
inputs,
...
}: {
# imports = [ inputs.nix-gaming.nixosModules.default ];
nix = {
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
substituters = [ "https://nix-gaming.cachix.org" ];
trusted-public-keys = [ "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" ];
experimental-features = ["nix-command" "flakes"];
substituters = ["https://nix-gaming.cachix.org"];
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="];
};
gc = {
automatic = true;
@ -16,7 +21,6 @@
};
nixpkgs = {
overlays = [
self.overlays.default
inputs.nur.overlay
];
};
@ -24,9 +28,17 @@
environment.systemPackages = with pkgs; [
wget
git
ddcutil
];
time.timeZone = "Europe/Paris";
# For ddcutil brightness control
boot.kernelModules = ["i2c-dev"];
services.udev.extraRules = ''
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
'';
time.timeZone = "Europe/Madrid";
console.keyMap = "es";
i18n.defaultLocale = "en_US.UTF-8";
nixpkgs.config.allowUnfree = true;
system.stateVersion = "24.05";

View file

@ -1,15 +1,17 @@
{ pkgs, inputs, username, host, ...}:
{
imports = [ inputs.home-manager.nixosModules.home-manager ];
pkgs,
inputs,
username,
host,
...
}: {
imports = [inputs.home-manager.nixosModules.home-manager];
home-manager = {
useUserPackages = true;
useGlobalPkgs = true;
extraSpecialArgs = { inherit inputs username host; };
extraSpecialArgs = {inherit inputs username host;};
users.${username} = {
imports =
if (host == "desktop") then
[ ./../home/default.desktop.nix ]
else [ ./../home ];
imports = [./../home];
home.username = "${username}";
home.homeDirectory = "/home/${username}";
home.stateVersion = "24.05";
@ -20,8 +22,8 @@
users.users.${username} = {
isNormalUser = true;
description = "${username}";
extraGroups = [ "networkmanager" "wheel" ];
extraGroups = ["networkmanager" "wheel" "i2c" "libvirtd" "adbusers"];
shell = pkgs.zsh;
};
nix.settings.allowed-users = [ "${username}" ];
nix.settings.allowed-users = ["${username}"];
}

View file

@ -0,0 +1,4 @@
{...}: {
environment.sessionVariables.NIXOS_OZONE_WL = "1";
environment.sessionVariables.XKB_DEFAULT_LAYOUT = "es";
}

View file

@ -0,0 +1,47 @@
{
config,
pkgs,
username,
...
}: {
# Add user to libvirtd group
users.users.${username}.extraGroups = ["libvirtd"];
# Install necessary packages
environment.systemPackages = with pkgs; [
podman-compose
virt-manager
virt-viewer
spice
spice-gtk
spice-protocol
win-virtio
win-spice
adwaita-icon-theme
];
# Manage the virtualisation services
virtualisation = {
waydroid.enable = true;
podman = {
enable = true;
# Create a `docker` alias for podman, to use it as a drop-in replacement
dockerCompat = true;
# Required for containers under podman-compose to be able to talk to each other.
defaultNetwork.settings.dns_enabled = true;
};
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [pkgs.OVMFFull.fd];
};
};
spiceUSBRedirection.enable = true;
};
services.spice-vdagentd.enable = true;
}

View file

@ -1,30 +0,0 @@
{ config, pkgs, username, ... }:
{
# Add user to libvirtd group
users.users.${username}.extraGroups = [ "libvirtd" ];
# Install necessary packages
environment.systemPackages = with pkgs; [
virt-manager
virt-viewer
spice spice-gtk
spice-protocol
win-virtio
win-spice
gnome.adwaita-icon-theme
];
# Manage the virtualisation services
virtualisation = {
libvirtd = {
enable = true;
qemu = {
swtpm.enable = true;
ovmf.enable = true;
ovmf.packages = [ pkgs.OVMFFull.fd ];
};
};
spiceUSBRedirection.enable = true;
};
services.spice-vdagentd.enable = true;
}

View file

@ -1,5 +1,8 @@
{ inputs, pkgs, ... }:
{
inputs,
pkgs,
...
}: {
programs.hyprland.enable = true;
xdg.portal = {
enable = true;
@ -14,4 +17,12 @@
environment.systemPackages = with pkgs; [
# xwaylandvideobridge
];
# Display manager
programs.regreet = {
enable = true;
settings = {
background.path = pkgs.nixos-artwork.wallpapers.simple-dark-gray-bottom.gnomeFilePath;
};
};
}

View file

@ -1,9 +1,12 @@
{ pkgs, username, ... }:
{
pkgs,
username,
...
}: {
services = {
xserver = {
enable = true;
xkb.layout = "us,fr";
xkb.layout = "es,us";
};
displayManager.autoLogin = {

View file

@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ aseprite ]);
}

View file

@ -1,5 +0,0 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ audacious ]);
xdg.configFile."audacious/config".source = ./config;
}

View file

@ -1,23 +0,0 @@
[audacious]
equalizer_active=TRUE
equalizer_bands=-1,1,2,2,1,0,0,-1,-1,-1
soft_clipping=TRUE
[audgui]
filesel_path=/home/frostphoenix/Music
[audqt]
icon_theme=audacious-flat-dark
theme=dark
[pipewire]
volume_left=35
volume_right=35
[qtui]
column_widths=25,25,275,175,50,175,175,25,100,28,75,275,275,275,75,275,175
menu_visible=FALSE
player_height=581
player_width=941
playlist_headers=FALSE
playlist_headers_bold=TRUE

View file

@ -1,5 +1,4 @@
{ inputs, ... }:
{
{inputs, ...}: {
programs.bat = {
enable = true;
config = {
@ -7,4 +6,4 @@
theme = "Dracula";
};
};
}
}

View file

@ -1,8 +1,7 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.btop = {
enable = true;
settings = {
color_theme = "dracula";
theme_background = false;
@ -10,5 +9,5 @@
};
};
home.packages = (with pkgs; [ nvtopPackages.intel ]);
}
home.packages = with pkgs; [nvtopPackages.intel];
}

View file

@ -1,11 +1,16 @@
{ inputs, pkgs, ... }:
{
inputs,
pkgs,
...
}: {
programs.cava = {
enable = true;
enable = true;
};
# https://github.com/catppuccin/cava
home.file.".config/cava/config".text = ''
# custom cava config
'' + builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
home.file.".config/cava/config".text =
''
# custom cava config
''
+ builtins.readFile "${inputs.catppuccin-cava}/themes/mocha.cava";
}

View file

@ -1,7 +0,0 @@
{inputs, username, host, ...}: {
imports =
[(import ./default.nix)];
# ++ [(import ./rider.nix)] # C# JetBrain editor
# ++ [(import ./steam.nix)]
# ++ [(import ./unity.nix)];
}

View file

@ -1,27 +1,29 @@
{inputs, username, host, ...}: {
{
inputs,
username,
host,
...
}: {
imports =
[(import ./aseprite/aseprite.nix)] # pixel art editor
++ [(import ./audacious/audacious.nix)] # music player
++ [(import ./bat.nix)] # better cat command
++ [(import ./btop.nix)] # resouces monitor
++ [(import ./cava.nix)] # audio visualizer
++ [(import ./discord.nix)] # discord with catppuccin theme
++ [(import ./floorp/floorp.nix)] # firefox based browser
++ [(import ./fuzzel.nix)] # launcher
++ [(import ./gaming.nix)] # packages related to gaming
++ [(import ./git.nix)] # version control
++ [(import ./gtk.nix)] # gtk theme
++ [(import ./hyprland)] # window manager
++ [(import ./kitty.nix)] # terminal
++ [(import ./swaync/swaync.nix)] # notification deamon
++ [(import ./micro.nix)] # nano replacement
++ [(import ./nvim.nix)] # neovim editor
++ [(import ./packages.nix)] # other packages
[(import ./bat.nix)] # better cat command
++ [(import ./btop.nix)] # resouces monitor
++ [(import ./cava.nix)] # audio visualizer
++ [(import ./discord.nix)] # discord with catppuccin theme
++ [(import ./floorp/floorp.nix)] # firefox based browser
++ [(import ./fuzzel.nix)] # launcher
++ [(import ./gaming.nix)] # packages related to gaming
++ [(import ./git.nix)] # version control
++ [(import ./gtk.nix)] # gtk theme
++ [(import ./hyprland)] # window manager
++ [(import ./kitty.nix)] # terminal
++ [(import ./swaync/swaync.nix)] # notification deamon
++ [(import ./nvim.nix)] # neovim editor
++ [(import ./packages.nix)] # other packages
++ [(import ./retroarch.nix)]
++ [(import ./scripts/scripts.nix)] # personal scripts
++ [(import ./starship.nix)] # shell prompt
++ [(import ./swaylock.nix)] # lock screen
++ [(import ./vscodium.nix)] # vscode forck
++ [(import ./waybar)] # status bar
++ [(import ./zsh.nix)]; # shell
++ [(import ./scripts/scripts.nix)] # personal scripts
++ [(import ./spotify.nix)]
++ [(import ./starship.nix)] # shell prompt
++ [(import ./vscodium.nix)] # vscode forck
++ [(import ./waybar)] # status bar
++ [(import ./zsh.nix)]; # shell
}

View file

@ -1,22 +1,18 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
home.packages = with pkgs; [
discord
# (discord.override {
# withVencord = true;
# })
webcord
];
xdg.configFile."Vencord/themes/custom.css".text = ''
/**
* @name Catppuccin Mocha
* @author winston#0001
* @authorId 505490445468696576
* @version 0.2.0
* @description 🎮 Soothing pastel theme for Discord
* @website https://github.com/catppuccin/discord
* @invite r6Mdz5dpFc
* **/
# xdg.configFile."Vencord/themes/custom.css".text = ''
# /**
# * @name Catppuccin Mocha
# * @author winston#0001
# * @authorId 505490445468696576
# * @version 0.2.0
# * @description 🎮 Soothing pastel theme for Discord
# * @website https://github.com/catppuccin/discord
# * @invite r6Mdz5dpFc
# * **/
@import url("https://catppuccin.github.io/discord/dist/catppuccin-mocha.theme.css");
'';
# @import url("https://catppuccin.github.io/discord/dist/catppuccin-mocha.theme.css");
# '';
}

View file

@ -0,0 +1,14 @@
Bitwarden Password Manager
ClearURLs
Dark Reader
Decentraleyes
Firefox Color
FoxyProxy
I still don't care about cookies
LibRedirect
Privacy Badger
Ruffle - Flash Emulator
Tree Style Tab
Tridactyl
uBlock Origin
Wappalyzer - Technology profiler

View file

@ -1,8 +0,0 @@
uBlock Origin # + filter for shorts
ScrollAnywhere # disable momentum + reverse dirrection
Return YouTube Dislike
Stylus # import file import.json
Firefox Color # catppuccin
Dark Reader # theme dracula
I don't care about cookies
ClearURLs

View file

@ -1,4 +1,3 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ floorp ]);
{pkgs, ...}: {
home.packages = with pkgs; [floorp];
}

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.fuzzel = {
enable = true;
settings = {
@ -8,13 +7,14 @@
line-height = 25;
fields = "name,generic,comment,categories,filename,keywords";
terminal = "kitty";
prompt = "' '" ;
prompt = "' '";
icon-theme = "Papirus-Dark";
layer = "top";
lines = 10;
width = 35;
horizontal-pad = 25;
inner-pad = 5;
dpi-aware = false;
};
colors = {
background = "1e1e2ecc";
@ -31,4 +31,4 @@
};
};
};
}
}

View file

@ -1,17 +1,23 @@
{ pkgs, config, inputs, ... }:
{
home.packages = with pkgs;[
pkgs,
config,
inputs,
...
}: {
home.packages = with pkgs; [
## Utils
# gamemode
# gamescope
# winetricks
# inputs.nix-gaming.packages.${pkgs.system}.wine-ge
## Minecraft
inputs.fjordlauncher.packages.${pkgs.system}.fjordlauncher
## Cli games
_2048-in-terminal
vitetris
nethack
## Celeste
celeste-classic
celeste-classic-pm
@ -23,7 +29,8 @@
## Emulation
sameboy
snes9x
# cemu
# dolphin-emu
cemu
dolphin-emu
ryujinx
];
}

View file

@ -1,12 +1,11 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.git = {
enable = true;
userName = "Frost-Phoenix";
userEmail = "67cyril6767@gmail.com";
extraConfig = {
userName = "peprolinbot";
userEmail = "personal@peprolinbot.com";
extraConfig = {
init.defaultBranch = "main";
credential.helper = "store";
};

View file

@ -1,11 +1,15 @@
{ pkgs, config, ... }:
{
pkgs,
config,
...
}: {
fonts.fontconfig.enable = true;
home.packages = [
pkgs.nerdfonts
(pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" "Noto" ]; })
(pkgs.nerdfonts.override {fonts = ["JetBrainsMono" "Noto"];})
pkgs.twemoji-color-font
pkgs.noto-fonts-emoji
pkgs.roboto
];
gtk = {
@ -31,7 +35,7 @@
size = 22;
};
};
home.pointerCursor = {
name = "Nordzy-cursors";
package = pkgs.nordzy-cursor-theme;

View file

@ -1,27 +1,27 @@
{ ... }:
{
{...}: {
wayland.windowManager.hyprland = {
settings = {
# autostart
exec-once = [
"systemctl --user import-environment &"
"hash dbus-update-activation-environment 2>/dev/null &"
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
"dbus-update-activation-environment --systemd --all &"
"nm-applet &"
"wl-clip-persist --clipboard both"
"swaybg -m fill -i $(find ~/Pictures/wallpapers/ -maxdepth 1 -type f) &"
"hyprctl setcursor Nordzy-cursors 22 &"
"wl-clip-persist --clipboard both &"
"bash -c 'if [ ! -f ~/.config/hypr/wallpaper.png ]; then wall-change ~/.config/hypr/default_wallpaper.png; fi'"
"swaybg -m fill -i ~/.config/hypr/wallpaper.png &"
"poweralertd &"
"waybar &"
"swaync &"
"wl-paste --watch cliphist store &"
"hyprlock"
"wl-paste --type text --watch cliphist store &" #Stores only text data
"wl-paste --type image --watch cliphist store &" #Stores only image data
"ckb-next -b &"
"element-desktop --hidden &"
];
input = {
kb_layout = "us,fr";
kb_options ="grp:alt_caps_toggle";
kb_layout = "es,us";
kb_options = "grp:alt_caps_toggle";
numlock_by_default = true;
follow_mouse = 1;
sensitivity = 0;
@ -133,15 +133,16 @@
"$mainMod, Return, exec, kitty"
"ALT, Return, exec, kitty --title float_kitty"
"$mainMod SHIFT, Return, exec, kitty --start-as=fullscreen -o 'font_size=16'"
"$mainMod, B, exec, hyprctl dispatch exec '[workspace 1 silent] floorp'"
"$mainMod, Q, killactive,"
"$mainMod, B, exec, floorp"
"$mainMod, N, exec, swaync-client -t"
"$mainMod SHIFT, N, exec, swaync-client -d"
"$mainMod SHIFT, Q, killactive,"
"$mainMod, F, fullscreen, 0"
"$mainMod SHIFT, F, fullscreen, 1"
"$mainMod, Space, togglefloating,"
"$mainMod, D, exec, fuzzel"
"$mainMod SHIFT, D, exec, hyprctl dispatch exec '[workspace 4 silent] discord --enable-features=UseOzonePlatform --ozone-platform=wayland'"
"$mainMod SHIFT, S, exec, hyprctl dispatch exec '[workspace 5 silent] SoundWireServer'"
"$mainMod, Escape, exec, swaylock"
"$mainMod, M, exec, element-desktop"
"$mainMod, Escape, exec, loginctl lock-session"
"$mainMod SHIFT, Escape, exec, shutdown-script"
"$mainMod, P, pseudo,"
"$mainMod, J, togglesplit,"
@ -149,17 +150,16 @@
"$mainMod SHIFT, B, exec, pkill -SIGUSR1 .waybar-wrapped"
"$mainMod, C ,exec, hyprpicker -a"
"$mainMod, W,exec, wallpaper-picker"
"$mainMod SHIFT, W, exec, vm-start"
# screenshot
"$mainMod, Print, exec, grimblast --notify --cursor --freeze save area ~/Pictures/$(date +'%Y-%m-%d-At-%Ih%Mm%Ss').png"
"$mainMod, Print, exec, screenshot-menu"
",Print, exec, grimblast --notify --cursor --freeze copy area"
# switch focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
"$mainMod, H, movefocus, l"
"$mainMod, L, movefocus, r"
"$mainMod, K, movefocus, u"
"$mainMod, J, movefocus, d"
# switch workspace
"$mainMod, 1, workspace, 1"
@ -187,18 +187,18 @@
"$mainMod CTRL, c, movetoworkspace, empty"
# window control
"$mainMod SHIFT, left, movewindow, l"
"$mainMod SHIFT, right, movewindow, r"
"$mainMod SHIFT, up, movewindow, u"
"$mainMod SHIFT, down, movewindow, d"
"$mainMod CTRL, left, resizeactive, -80 0"
"$mainMod CTRL, right, resizeactive, 80 0"
"$mainMod CTRL, up, resizeactive, 0 -80"
"$mainMod CTRL, down, resizeactive, 0 80"
"$mainMod ALT, left, moveactive, -80 0"
"$mainMod ALT, right, moveactive, 80 0"
"$mainMod ALT, up, moveactive, 0 -80"
"$mainMod ALT, down, moveactive, 0 80"
"$mainMod SHIFT, H, movewindow, l"
"$mainMod SHIFT, L, movewindow, r"
"$mainMod SHIFT, K, movewindow, u"
"$mainMod SHIFT, J, movewindow, d"
"$mainMod CTRL, H, resizeactive, -80 0"
"$mainMod CTRL, L, resizeactive, 80 0"
"$mainMod CTRL, K, resizeactive, 0 -80"
"$mainMod CTRL, J, resizeactive, 0 80"
"$mainMod ALT, H, moveactive, -80 0"
"$mainMod ALT, L, moveactive, 80 0"
"$mainMod ALT, K, moveactive, 0 -80"
"$mainMod ALT, J, moveactive, 0 80"
# media and volume controls
",XF86AudioRaiseVolume,exec, pamixer -i 2"
@ -239,8 +239,6 @@
"float,title:^(float_kitty)$"
"center,title:^(float_kitty)$"
"size 950 600,title:^(float_kitty)$"
"float,audacious"
"workspace 8 silent, audacious"
# "pin,wofi"
# "float,wofi"
# "noborder,wofi"
@ -270,7 +268,6 @@
"center,class:^(zenity)$"
"size 850 500,class:^(zenity)$"
"float,class:^(pavucontrol)$"
"float,class:^(SoundWireServer)$"
"float,class:^(.sameboy-wrapped)$"
"float,class:^(file_progress)$"
"float,class:^(confirm)$"
@ -290,7 +287,6 @@
"maxsize 1 1,class:^(xwaylandvideobridge)$"
"noblur,class:^(xwaylandvideobridge)$"
];
};
extraConfig = "

View file

@ -1,8 +1,11 @@
{ inputs, ... }:
{
imports = [ (import ./hyprland.nix) ]
++ [ (import ./config.nix) ]
++ [ (import ./hyprlock.nix) ]
++ [ (import ./variables.nix) ]
++ [ inputs.hyprland.homeManagerModules.default ];
{inputs, ...}: {
imports =
[(import ./hyprland.nix)]
++ [(import ./config.nix)]
++ [(import ./hyprlock.nix)]
++ [(import ./hypridle.nix)]
++ [(import ./variables.nix)]
++ [inputs.hyprland.homeManagerModules.default];
xdg.configFile."hypr/default_wallpaper.png".source = ./default_wallpaper.png;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

View file

@ -0,0 +1,41 @@
{
pkgs,
host,
...
}: {
services.hypridle.enable = true;
xdg.configFile."hypr/hypridle.conf".text =
''
general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
}
listener {
timeout = 300 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
''
+ (
if (host == "frues-pc")
then ''
listener {
timeout = 150 # 2.5min.
on-timeout = ckb-next --profile "Off" # turn off keyboard backlight.
on-resume = ckb-next --profile "Personal" # turn on keyboard backlight.
}
listener {
timeout = 330 # 5.5min
on-timeout = ddcmonitorctl off # screen off when timeout has passed
on-resume = ddcmonitorctl on # screen on when activity is detected after timeout has fired.
}
''
else ''
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
''
);
}

View file

@ -1,5 +1,8 @@
{ inputs, pkgs, ...}:
{
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [
# swww
swaybg
@ -13,7 +16,7 @@
wayland
direnv
];
systemd.user.targets.hyprland-session.Unit.Wants = [ "xdg-desktop-autostart.target" ];
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
wayland.windowManager.hyprland = {
enable = true;
xwayland = {

View file

@ -1,6 +1,5 @@
{ pkgs, ... }:
{
home.packages = [ pkgs.hyprlock ];
{pkgs, ...}: {
programs.hyprlock.enable = true;
xdg.configFile."hypr/hyprlock.conf".text = ''
$red = rgb(f38ba8)
$yellow = rgb(f9e2af)
@ -27,9 +26,9 @@
# BACKGROUND
background {
monitor =
path = ~/Pictures/wallpapers/others/cat-leaves.png
path = ~/.config/hypr/wallpaper.png
color = $base
blur_passes = 0
blur_passes = 2
}
# TIME
@ -47,9 +46,9 @@
valign = top
}
# DATE
# DATE
label {
monitor =
monitor =
text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
color = $text
font_size = 18
@ -62,8 +61,8 @@
# USER AVATAR
image {
monitor =
path = ~/Pictures/pp/pp.png
monitor =
path = ~/.face.png
size = 125
border_color = $accent
@ -95,4 +94,4 @@
valign = center
}
'';
}
}

View file

@ -1,7 +1,7 @@
{ ... }:
{
{...}: {
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
ELECTRON_OZONE_PLATFORM_HINT = "auto";
__GL_GSYNC_ALLOWED = "0";
__GL_VRR_ALLOWED = "0";
_JAVA_AWT_WM_NONEREPARENTING = "1";

View file

@ -1,10 +1,9 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.kitty = {
enable = true;
theme = "Catppuccin-Mocha";
font = {
name = "JetBrainsMono Nerd Font";
size = 13;
@ -12,12 +11,12 @@
settings = {
confirm_os_window_close = 0;
background_opacity = "0.55";
background_opacity = "0.55";
window_padding_width = 10;
scrollback_lines = 10000;
enable_audio_bell = false;
mouse_hide_wait = 60;
## Tabs
tab_title_template = "{index}";
active_tab_font_style = "normal";
@ -30,7 +29,7 @@
inactive_tab_background = "#313244";
};
keybindings = {
keybindings = {
## Tabs
"alt+1" = "goto_tab 1";
"alt+2" = "goto_tab 2";
@ -42,4 +41,4 @@
"ctrl+shift+right" = "no_op";
};
};
}
}

View file

@ -1,70 +0,0 @@
{ pkgs, ... }:
{
programs.micro = {
enable = true;
settings = {
"colorscheme" = "catppuccin-mocha";
"*.nix" = {"tabsize" = 2;};
"*.ml" = {"tabsize" = 2;};
"*.sh" = {"tabsize" = 2;};
"tabstospaces" = true;
"tabsize" = 4;
};
};
xdg.configFile."micro/bindings.json".text = ''
{
"Ctrl-Up": "CursorUp,CursorUp,CursorUp,CursorUp,CursorUp",
"Ctrl-Down": "CursorDown,CursorDown,CursorDown,CursorDown,CursorDown",
"Ctrl-Backspace": "DeleteWordLeft",
"Ctrl-Delete": "DeleteWordRight",
"CtrlShiftUp": "ScrollUp,ScrollUp,ScrollUp,ScrollUp,ScrollUp",
"CtrlShiftDown": "ScrollDown,ScrollDown,ScrollDown,ScrollDown,ScrollDown"
}
'';
xdg.configFile."micro/colorschemes/catppuccin-mocha.micro".text = ''
color-link comment "#585B70"
color-link identifier "#89B4FA"
color-link identifier.class "#89B4FA"
color-link identifier.var "#89B4FA"
color-link constant "#FAB387"
color-link constant.number "#FAB387"
color-link constant.string "#A6E3A1"
color-link symbol "#F5C2E7"
color-link symbol.brackets "#F2CDCD"
color-link symbol.tag "#89B4FA"
color-link type "#89B4FA"
color-link type.keyword "#F9E2AF"
color-link special "#F5C2E7"
color-link statement "#CBA6F7"
color-link preproc "#F5C2E7"
color-link underlined "#89DCEB"
color-link error "bold #F38BA8"
color-link todo "bold #F9E2AF"
color-link diff-added "#A6E3A1"
color-link diff-modified "#F9E2AF"
color-link diff-deleted "#F38BA8"
color-link gutter-error "#F38BA8"
color-link gutter-warning "#F9E2AF"
color-link statusline "#CDD6F4,#181825"
color-link tabbar "#CDD6F4"
color-link indent-char "#45475A"
color-link line-number "#45475A"
color-link current-line-number "#B4BEFE"
color-link color-column "#313244"
color-link type.extended "default"
'';
}

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.neovim = {
enable = true;
vimAlias = true;

View file

@ -1,34 +1,36 @@
{ inputs, pkgs, ... }:
{
home.packages = (with pkgs; [
bitwise # cli tool for bit / hex manipulation
evince # gnome pdf viewer
eza # ls replacement
entr # perform action when file change
fd # find replacement
file # Show file information
fzf # fuzzy finder
gtt # google translate TUI
gifsicle # gif utility
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [
bitwise # cli tool for bit / hex manipulation
bitwarden-cli
evince # gnome pdf viewer
element-desktop # Matrix client
fd # find replacement
file # Show file information
flameshot # Screenshot tool
fzf # fuzzy finder
gimp
gtrash # rm replacement, put deleted files in system trash
hexdump
jdk17 # java
gtrash # rm replacement, put deleted files in system trash
imagemagick
inkscape
lazygit
libreoffice
cinnamon.nemo-with-extensions # file manager
nitch # systhem fetch util
cinnamon.nemo-with-extensions # file manager
jq
nitch # systhem fetch util
nix-prefetch-github
prismlauncher # minecraft launcher
ripgrep # grep replacement
soundwireserver # pass audio to android phone
tdf # cli pdf viewer
todo # cli todo list
toipe # typing test in the terminal
valgrind # c memory analyzer
yazi # terminal file manager
youtube-dl
gnome.zenity
ripgrep # grep replacement
swappy
tdf # cli pdf viewer
todo # cli todo list
toipe # typing test in the terminal
vlc
yazi # terminal file manager
yt-dlp
zenity
winetricks
wineWowPackages.wayland
@ -39,28 +41,26 @@
# Python
python3
bleachbit # cache cleaner
cmatrix
gparted # partition manager
gparted # partition manager
ffmpeg
imv # image viewer
imv # image viewer
killall
libnotify
man-pages # extra man pages
mpv # video player
ncdu # disk space
man-pages # extra man pages
mpv # video player
openssl
pamixer # pulseaudio command line mixer
pavucontrol # pulseaudio volume controle (GUI)
playerctl # controller for media players
wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste)
cliphist # clipboard manager
pamixer # pulseaudio command line mixer
pavucontrol # pulseaudio volume controle (GUI)
playerctl # controller for media players
wl-clipboard # clipboard utils for wayland (wl-copy, wl-paste)
cliphist # clipboard manager
poweralertd
qalculate-gtk # calculator
qalculate-gtk # calculator
unzip
wget
xdg-utils
xxd
inputs.alejandra.defaultPackage.${system}
]);
];
}

View file

@ -1,6 +1,5 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [
{pkgs, ...}: {
home.packages = with pkgs; [
(retroarch.override {
cores = with libretro; [
fceumm
@ -9,5 +8,5 @@
snes9x
];
})
]);
}
];
}

View file

@ -1,60 +0,0 @@
{ pkgs, lib, inputs, ... }: with lib;
let
extra-path = with pkgs; [
dotnetCorePackages.sdk_7_0
dotnetPackages.Nuget
mono
msbuild
];
extra-lib = with pkgs;[
# Personal development stuff
xorg.libX11
# Rider Unity debugging
xorg.libXcursor
xorg.libXrandr
libglvnd
];
_rider = pkgs.jetbrains.rider.overrideAttrs (attrs: {
postInstall = ''
# Wrap rider with extra tools and libraries
mv $out/bin/rider $out/bin/.rider-toolless
makeWrapper $out/bin/.rider-toolless $out/bin/rider \
--argv0 rider \
--prefix PATH : "${lib.makeBinPath extra-path}" \
--prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath extra-lib}"
# Making Unity Rider plugin work!
# The plugin expects the binary to be at /rider/bin/rider, with bundled files at /rider/
# It does this by going up one directory from the directory the binary is in
# We have rider binary at $out/bin/rider, so we need to link /rider/ to $out/
shopt -s extglob
ln -s $out/rider/!(bin) $out/
shopt -u extglob
'' + attrs.postInstall or "";
});
in
{
home.packages = with pkgs; [
_rider
dotnet-sdk_7
];
# Unity Rider plugin looks here for a .desktop file,
# which it uses to find the path to the rider binary.
home.file = { ".local/share/applications/jetbrains-rider.desktop".source =
let desktopFile = pkgs.makeDesktopItem {
name = "jetbrains-rider";
desktopName = "Rider";
exec = "\"${_rider}/bin/rider\"";
icon = "rider";
type = "Application";
# Don't show desktop icon in search or run launcher
extraConfig.NoDisplay = "true";
};
in "${desktopFile}/share/applications/jetbrains-rider.desktop";
};
}

View file

@ -1,53 +1,45 @@
{pkgs, ...}: let
ddcmonitorctl = pkgs.writeShellScriptBin "ddcmonitorctl" (builtins.readFile ./scripts/ddcmonitorctl.sh);
setbg-apotd = pkgs.writeShellScriptBin "setbg-apotd" (builtins.readFile ./scripts/setbg-apotd.sh);
setbg-bpotd = pkgs.writeShellScriptBin "setbg-bpotd" (builtins.readFile ./scripts/setbg-bpotd.sh);
wall-change = pkgs.writeShellScriptBin "wall-change" (builtins.readFile ./scripts/wall-change.sh);
wallpaper-picker = pkgs.writeShellScriptBin "wallpaper-picker" (builtins.readFile ./scripts/wallpaper-picker.sh);
runbg = pkgs.writeShellScriptBin "runbg" (builtins.readFile ./scripts/runbg.sh);
music = pkgs.writeShellScriptBin "music" (builtins.readFile ./scripts/music.sh);
lofi = pkgs.writeScriptBin "lofi" (builtins.readFile ./scripts/lofi.sh);
toggle_blur = pkgs.writeScriptBin "toggle_blur" (builtins.readFile ./scripts/toggle_blur.sh);
toggle_oppacity = pkgs.writeScriptBin "toggle_oppacity" (builtins.readFile ./scripts/toggle_oppacity.sh);
maxfetch = pkgs.writeScriptBin "maxfetch" (builtins.readFile ./scripts/maxfetch.sh);
compress = pkgs.writeScriptBin "compress" (builtins.readFile ./scripts/compress.sh);
extract = pkgs.writeScriptBin "extract" (builtins.readFile ./scripts/extract.sh);
shutdown-script = pkgs.writeScriptBin "shutdown-script" (builtins.readFile ./scripts/shutdown-script.sh);
show-keybinds = pkgs.writeScriptBin "show-keybinds" (builtins.readFile ./scripts/keybinds.sh);
vm-start = pkgs.writeScriptBin "vm-start" (builtins.readFile ./scripts/vm-start.sh);
ascii = pkgs.writeScriptBin "ascii" (builtins.readFile ./scripts/ascii.sh);
record = pkgs.writeScriptBin "record" (builtins.readFile ./scripts/record.sh);
shutdown-script = pkgs.writeScriptBin "shutdown-script" (builtins.readFile ./scripts/shutdown-script.sh);
show-keybinds = pkgs.writeScriptBin "show-keybinds" (builtins.readFile ./scripts/keybinds.sh);
screenshot-menu = pkgs.writeScriptBin "screenshot-menu" (builtins.readFile ./scripts/screenshot-menu.sh);
in {
home.packages = with pkgs; [
ddcmonitorctl
setbg-apotd
setbg-bpotd
wall-change
wallpaper-picker
runbg
music
lofi
toggle_blur
toggle_oppacity
maxfetch
compress
extract
shutdown-script
show-keybinds
vm-start
ascii
record
screenshot-menu
];
}

View file

@ -1,45 +0,0 @@
#!/usr/bin/env zsh
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
CYAN=$(tput setaf 6)
NORMAL=$(tput sgr0)
echo -e "┌─────────────┬─────────────┬─────────────┬─────────────┐"
echo -e "${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │ ${BLUE}Dec${NORMAL} ${GREEN}Hex${NORMAL} Chr │"
echo -e "├─────────────┼─────────────┼─────────────┼─────────────┤"
echo -e "│ 0 0 \033[2mNUL\033[0m\033[0m │ 32 20 │ 64 40 ${CYAN}@${NORMAL} │ 96 60 ${CYAN}\`${NORMAL}"
echo -e "│ 1 1 \033[2mSOH\033[0m │ 33 21 ${CYAN}!${NORMAL} │ 65 41 ${GREEN}A${NORMAL} │ 97 61 ${GREEN}a${NORMAL}"
echo -e "│ 2 2 \033[2mSTX\033[0m │ 34 22 ${CYAN}\"${NORMAL} │ 66 42 ${GREEN}B${NORMAL} │ 98 62 ${GREEN}b${NORMAL}"
echo -e "│ 3 3 \033[2mETX\033[0m │ 35 23 ${CYAN}#${NORMAL} │ 67 43 ${GREEN}C${NORMAL} │ 99 63 ${GREEN}c${NORMAL}"
echo -e "│ 4 4 \033[2mEOT\033[0m │ 36 24 ${CYAN}\$${NORMAL} │ 68 44 ${GREEN}D${NORMAL} │ 100 64 ${GREEN}d${NORMAL}"
echo -e "│ 5 5 \033[2mENQ\033[0m │ 37 25 ${CYAN}%${NORMAL} │ 69 45 ${GREEN}E${NORMAL} │ 101 65 ${GREEN}e${NORMAL}"
echo -e "│ 6 6 \033[2mACK\033[0m │ 38 26 ${CYAN}&${NORMAL} │ 70 46 ${GREEN}F${NORMAL} │ 102 66 ${GREEN}f${NORMAL}"
echo -e "│ 7 7 \033[2mBEL\033[0m │ 39 27 ${CYAN}'${NORMAL} │ 71 47 ${GREEN}G${NORMAL} │ 103 67 ${GREEN}g${NORMAL}"
echo -e "│ 8 8 \033[2mBS\033[0m │ 40 28 ${CYAN}(${NORMAL} │ 72 48 ${GREEN}H${NORMAL} │ 104 68 ${GREEN}h${NORMAL}"
echo -e "│ 9 9 \033[2mHT\033[0m │ 41 29 ${CYAN})${NORMAL} │ 73 49 ${GREEN}I${NORMAL} │ 105 69 ${GREEN}i${NORMAL}"
echo -e "│ 10 A \033[2mLF\033[0m │ 42 2A ${CYAN}*${NORMAL} │ 74 4A ${GREEN}J${NORMAL} │ 106 6A ${GREEN}j${NORMAL}"
echo -e "│ 11 B \033[2mVT\033[0m │ 43 2B ${CYAN}+${NORMAL} │ 75 4B ${GREEN}K${NORMAL} │ 107 6B ${GREEN}k${NORMAL}"
echo -e "│ 12 C \033[2mFF\033[0m │ 44 2C ${CYAN},${NORMAL} │ 76 4C ${GREEN}L${NORMAL} │ 108 6C ${GREEN}l${NORMAL}"
echo -e "│ 13 D \033[2mCR\033[0m │ 45 2D ${CYAN}-${NORMAL} │ 77 4D ${GREEN}M${NORMAL} │ 109 6D ${GREEN}m${NORMAL}"
echo -e "│ 14 E \033[2mSO\033[0m │ 46 2E ${CYAN}.${NORMAL} │ 78 4E ${GREEN}N${NORMAL} │ 110 6E ${GREEN}n${NORMAL}"
echo -e "│ 15 F \033[2mSI\033[0m │ 47 2F ${CYAN}/${NORMAL} │ 79 4F ${GREEN}O${NORMAL} │ 111 6F ${GREEN}o${NORMAL}"
echo -e "│ 16 10 \033[2mDLE\033[0m │ 48 30 ${RED}0${NORMAL} │ 80 50 ${GREEN}P${NORMAL} │ 112 70 ${GREEN}p${NORMAL}"
echo -e "│ 17 11 \033[2mDC1\033[0m │ 49 31 ${RED}1${NORMAL} │ 81 51 ${GREEN}Q${NORMAL} │ 113 71 ${GREEN}q${NORMAL}"
echo -e "│ 18 12 \033[2mDC2\033[0m │ 50 32 ${RED}2${NORMAL} │ 82 52 ${GREEN}R${NORMAL} │ 114 72 ${GREEN}r${NORMAL}"
echo -e "│ 19 13 \033[2mDC3\033[0m │ 51 33 ${RED}3${NORMAL} │ 83 53 ${GREEN}S${NORMAL} │ 115 73 ${GREEN}s${NORMAL}"
echo -e "│ 20 14 \033[2mDC4\033[0m │ 52 34 ${RED}4${NORMAL} │ 84 54 ${GREEN}T${NORMAL} │ 116 74 ${GREEN}t${NORMAL}"
echo -e "│ 21 15 \033[2mNAK\033[0m │ 53 35 ${RED}5${NORMAL} │ 85 55 ${GREEN}U${NORMAL} │ 117 75 ${GREEN}u${NORMAL}"
echo -e "│ 22 16 \033[2mSYN\033[0m │ 54 36 ${RED}6${NORMAL} │ 86 56 ${GREEN}V${NORMAL} │ 118 76 ${GREEN}v${NORMAL}"
echo -e "│ 23 17 \033[2mETB\033[0m │ 55 37 ${RED}7${NORMAL} │ 87 57 ${GREEN}W${NORMAL} │ 119 77 ${GREEN}w${NORMAL}"
echo -e "│ 24 18 \033[2mCAN\033[0m │ 56 38 ${RED}8${NORMAL} │ 88 58 ${GREEN}X${NORMAL} │ 120 78 ${GREEN}x${NORMAL}"
echo -e "│ 25 19 \033[2mEM\033[0m │ 57 39 ${RED}9${NORMAL} │ 89 59 ${GREEN}Y${NORMAL} │ 121 79 ${GREEN}y${NORMAL}"
echo -e "│ 26 1A \033[2mSUB\033[0m │ 58 3A ${CYAN}:${NORMAL} │ 90 5A ${GREEN}Z${NORMAL} │ 122 7A ${GREEN}z${NORMAL}"
echo -e "│ 27 1B \033[2mESC\033[0m │ 59 3B ${CYAN};${NORMAL} │ 91 5B ${CYAN}[${NORMAL} │ 123 7B ${CYAN}{${NORMAL}"
echo -e "│ 28 1C \033[2mFS\033[0m │ 60 3C ${CYAN}<${NORMAL} │ 92 5C ${CYAN}\\${NORMAL} │ 124 7C ${CYAN}|${NORMAL}"
echo -e "│ 29 1D \033[2mGS\033[0m │ 61 3D ${CYAN}=${NORMAL} │ 93 5D ${CYAN}]${NORMAL} │ 125 7D ${CYAN}}${NORMAL}"
echo -e "│ 30 1E \033[2mRS\033[0m │ 62 3E ${CYAN}>${NORMAL} │ 94 5E ${CYAN}^${NORMAL} │ 126 7E ${CYAN}~${NORMAL}"
echo -e "│ 31 1F \033[2mUS\033[0m │ 63 3F ${CYAN}?${NORMAL} │ 95 5F ${CYAN}_${NORMAL} │ 127 7F \033[2mDEL\033[0m │"
echo -e "└─────────────┴─────────────┴─────────────┴─────────────┘"

View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
if [ "$1" == "on" ]; then
state_opt=1
elif [ "$1" == "off" ]; then
state_opt=4
else
echo "First argument must be either 'on' or 'off'"
exit 1
fi
monitor_count=$(bash -c "ddcutil detect | grep Display | wc -l")
seq $monitor_count | xargs -n 1 ddcutil setvcp d6 $state_opt -d

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
if (ps aux | grep mpv | grep -v grep > /dev/null) then
pkill mpv
else
runbg mpv --no-video https://www.youtube.com/live/jfKfPfyJRdk?si=OF0HKrYFFj33BzMo
fi

View file

@ -1,53 +0,0 @@
#!/usr/bin/env bash
unicode=" "
version="1.2.0"
_black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
_white=$(tput setaf 7)
_bright=$(tput bold)
normal=$(tput sgr0)
_underline=$(tput smul)
up=$(uptime | awk -F'( |,|:)+' '{
d=h=m=0;
if ($7=="min")
m=$6;
else {
if ($7~/^day/) { d=$6; h=$8; m=$9}
else {h=$6;m=$7}
}
}
{ print h+0,"h",m+0,"m" }
')
up=$(sed -e "s/ h/h/g" <<< ${up})
up=$(sed -e "s/ m/m/g" <<< ${up})
pkgs=$(nix-store --query --requisites /run/current-system | wc -l)
fetch() {
echo "${cyan}$(tput bold) _ ___ ____ ____ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / |/ (_)_ __/ __ \/ __/ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) / / /\ \ / /_/ /\ \ ${normal}$(tput sgr0)"
echo "${cyan}$(tput bold) /_/|_/_//_\_"'\\'"____/___/ ${normal}$(tput sgr0)"
echo ""
echo " ╭─────────────╮ "
echo "${red}${normal} user │ ${red}$(whoami)${normal}"
echo "${yellow}${normal} distro │ ${yellow}$(sed -nE "s@PRETTY_NAME=\"([^\"]*)\"@\1@p" /etc/os-release)${normal} "
echo "${green}${normal} kernel │ ${green}$(uname -r)${normal} "
echo "${cyan}󱂬 ${normal} de/wm │ ${cyan}$XDG_CURRENT_DESKTOP${normal} "
echo "${blue}${normal} uptime │ ${blue}${up}${normal} "
echo "${magenta}${normal} shell │ ${magenta}$(echo ${SHELL##*/})${normal} "
echo "${red}󰏖 ${normal} pkgs │ ${red}${pkgs}${normal} "
echo " ├─────────────┤ "
echo "${_white}${normal}colors │${_white}$unicode${normal}${red}$unicode${normal}${yellow}$unicode${normal}${green}$unicode${normal}${cyan}$unicode${normal}${blue}$unicode${normal}${magenta}$unicode${normal}${_black}$unicode${normal}"
echo " ╰─────────────╯ "
}
fetch && exit 0

View file

@ -1,10 +0,0 @@
#!/usr/bin/env bash
if (ps aux | grep audacious | grep -v grep > /dev/null) then
pkill audacious
else
hyprctl dispatch exec "[workspace 5 silent] audacious -t"
sleep 0.5
audtool playlist-repeat-status |grep "on" || audtool playlist-repeat-toggle
audtool playlist-shuffle-status|grep "on" || audtool playlist-shuffle-toggle
fi

View file

@ -1,125 +0,0 @@
#!/usr/bin/env bash
TMP_FILE_UNOPTIMIZED="/tmp/recording_unoptimized.gif"
TMP_PALETTE_FILE="/tmp/palette.png"
TMP_MP4_FILE="/tmp/recording.mp4"
TMP_GIF_RESULT="/tmp/gif_result"
APP_NAME="Recorder"
OUT_DIR="$HOME/Videos"
filename=$(date +"%Y-%m-%d_%H-%M-%S")
FILENAME="$OUT_DIR/$filename."
if [ ! -d "$OUT_DIR" ]; then
mkdir -p "$OUT_DIR"
fi
is_recorder_running() {
pgrep -x wf-recorder >/dev/null
}
convert_to_gif() {
ffmpeg -i "$TMP_MP4_FILE" -filter_complex "[0:v] palettegen" "$TMP_PALETTE_FILE"
ffmpeg -i "$TMP_MP4_FILE" -i "$TMP_PALETTE_FILE" -filter_complex "[0:v] fps=10,scale=1400:-1,setpts=0.5*PTS [new];[new][1:v] paletteuse" "$TMP_FILE_UNOPTIMIZED"
if [ -f "$TMP_PALETTE_FILE" ]; then
rm "$TMP_PALETTE_FILE"
fi
if [ -f "$TMP_MP4_FILE" ]; then
rm "$TMP_MP4_FILE"
fi
gifsicle -O3 --lossy=100 -i "$TMP_FILE_UNOPTIMIZED" -o "$TMP_GIF_RESULT"
if [ -f "$TMP_FILE_UNOPTIMIZED" ]; then
rm "$TMP_FILE_UNOPTIMIZED"
fi
}
notify() {
notify-send -a "$APP_NAME" "$1" "$2" -t 5000
}
screen() {
notify "Starting Recording" "Your screen is being recorded"
timeout 600 wf-recorder -F format=rgb24 -x rgb24 -p qp=0 -p crf=0 -p preset=slow -c libx264rgb -f "$TMP_MP4_FILE"
}
area() {
GEOMETRY=$(slurp)
if [[ ! -z "$GEOMETRY" ]]; then
notify "Starting Recording" "Your screen is being recorded"
timeout 600 wf-recorder -F format=rgb24 -x rgb24 -p qp=0 -p crf=0 -p preset=slow -c libx264rgb -g "$GEOMETRY" -f "$TMP_MP4_FILE"
fi
}
gif() {
touch /tmp/recording_gif
area
}
stop() {
if is_recorder_running; then
kill $(pgrep -x wf-recorder)
if [[ -f /tmp/recording_gif ]] then
notify "Stopped Recording" "Starting GIF conversion phase..."
FILENAME+="gif"
convert_to_gif
SavePath=$( zenity --file-selection --save --file-filter=*.gif --filename="$OUT_DIR"'/.gif' )
if [ "$SavePath" == "" ]; then
SavePath="$FILENAME"
fi
[[ $SavePath =~ \.gif$ ]] || SavePath+='.gif'
mv $TMP_GIF_RESULT $SavePath
wl-copy -t image/png < $SavePath
notify "GIF conversion completed" "GIF saved to $SavePath"
else
FILENAME+="mp4"
SavePath=$( zenity --file-selection --save --file-filter=*.mp4 --filename="$OUT_DIR"'/.mp4' )
if [ "$SavePath" == "" ]; then
SavePath="$FILENAME"
fi
[[ $SavePath =~ \.mp4$ ]] || SavePath+='.mp4'
mv $TMP_MP4_FILE $SavePath
wl-copy -t video/mp4 < $SavePath
notify "Stopped Recording" "Video saved to $SavePath"
fi
[[ -f $TMP_FILE_UNOPTIMIZED ]] && rm -f "$TMP_FILE_UNOPTIMIZED"
[[ -f $TMP_PALETTE_FILE ]] && rm -f "$TMP_PALETTE_FILE"
[[ -f $TMP_GIF_RESULT ]] && rm -f "$TMP_GIF_RESULT"
[[ -f $TMP_MP4_FILE ]] && rm -f "$TMP_MP4_FILE"
[[ -f /tmp/recording_gif ]] && rm -f /tmp/recording_gif
exit 0
fi
}
if is_recorder_running; then
stop
fi
if [ "$1" != "stop" ]; then
[[ -f $TMP_FILE_UNOPTIMIZED ]] && rm -f "$TMP_FILE_UNOPTIMIZED"
[[ -f $TMP_PALETTE_FILE ]] && rm -f "$TMP_PALETTE_FILE"
[[ -f $TMP_GIF_RESULT ]] && rm -f "$TMP_GIF_RESULT"
[[ -f $TMP_MP4_FILE ]] && rm -f "$TMP_MP4_FILE"
[[ -f /tmp/recording_gif ]] && rm -f /tmp/recording_gif
fi
case "$1" in
screen)
screen
;;
area)
area
;;
gif)
gif
;;
stop)
stop
;;
*)
echo "Usage: $0 {screen|area|gif|stop}"
exit 1
;;
esac

View file

@ -0,0 +1,124 @@
#!/usr/bin/env bash
#### Options
option_1="󰹑 Capture"
option_2="󰁫 Timer capture"
option_capture_1="󰍺 All Screen"
option_capture_2="󰍹 Capture Active Screen"
option_capture_3="󱣴 Capture Area/Window/Application"
option_time_1="5s"
option_time_2="10s"
option_time_3="20s"
option_time_4="30s"
option_time_5="60s"
####
#### Initial menu to decide wether a timer is wanted
want_timer_cmd() {
echo -e "$option_1\n$option_2" | fuzzel --dmenu -p 'Screenshot'
}
####
#### Choose Timer seconds
timer_cmd() {
echo -e "$option_time_1\n$option_time_2\n$option_time_3\n$option_time_4\n$option_time_5" | fuzzel --dmenu -p 'Choose timer:'
}
timer_menu() {
selected_timer="$(timer_cmd)"
if [[ "$selected_timer" == "$option_time_1" ]]; then
countdown=5
${1}
elif [[ "$selected_timer" == "$option_time_2" ]]; then
countdown=10
${1}
elif [[ "$selected_timer" == "$option_time_3" ]]; then
countdown=20
${1}
elif [[ "$selected_timer" == "$option_time_4" ]]; then
countdown=30
${1}
elif [[ "$selected_timer" == "$option_time_5" ]]; then
countdown=60
${1}
fi
}
####
#### Chose Screenshot Type
type_screenshot_cmd() {
echo -e "$option_capture_1\n$option_capture_2\n$option_capture_3" | fuzzel --dmenu -p 'Type Of Screenshot:'
}
type_screenshot_menu() {
selected_type_screenshot="$(type_screenshot_cmd)"
if [[ "$selected_type_screenshot" == "$option_capture_1" ]]; then
option_type_screenshot=screen
${1}
elif [[ "$selected_type_screenshot" == "$option_capture_2" ]]; then
option_type_screenshot=output
${1}
elif [[ "$selected_type_screenshot" == "$option_capture_3" ]]; then
option_type_screenshot=area
${1}
fi
}
####
### Run the timer
timer() {
# Countdown notifications must start at 10 seconds so they aren't annoying
if [[ $countdown -gt 10 ]]; then
notify-send -t 1000 "Taking Screenshot in ${countdown} seconds"
sleep $((countdown - 10))
countdown=10
fi
while [[ $countdown -ne 0 ]]; do
notify-send -t 900 "Taking Screenshot in ${countdown}"
countdown=$((countdown - 1))
sleep 1
done
}
####
#### Main logic
chosen="$(want_timer_cmd)"
if [ -z "$chosen" ]; then
exit
fi
type_screenshot_menu
if [ -z "$selected_type_screenshot" ]; then
exit
fi
if [[ $option_2 == *$chosen* ]]; then
timer_menu
if [ -z "$selected_timer" ]; then
exit
fi
timer
else
sleep 0.7 # So fuzzel has time to fade-out
fi
GRIMBLAST_EDITOR="swappy -f " grimblast --notify edit "$option_type_screenshot"
####

View file

@ -0,0 +1,37 @@
#!/usr/bin/env bash
## Based on https://github.com/sgsax/apod-desktop/blob/master/apod
# base URL for the APOD website
BASE_URL=https://apod.nasa.gov/apod/
# API endpoint which returns the Picture Of The Day data
PAGE_URL="$BASE_URL/astropix.html"
IMG_FILE=/tmp/apotd.jpg
echo Getting APOD page...
page_data=`curl -s $PAGE_URL`
if [ $? -ne 0 ]; then
echo "Unable to retrieve page";
exit 1;
fi
# extract the image url from the astropix page
echo Getting image url...
imgurl=`echo "$page_data" | grep -i "img src" | sed -e 's/.*<img src="\(.*\)".*/\1/i'`
echo Image url is $imgurl
# get that image file
echo Getting image at ${BASE_URL}${imgurl}
curl ${BASE_URL}${imgurl} -o $IMG_FILE
if [ $? -ne 0 ]; then
echo "Unable to retrieve image"
exit 2
fi
#set wallpaper using swaybg
wall-change "$IMG_FILE"

View file

@ -0,0 +1,34 @@
#!/usr/bin/env bash
# base URL for Bing
BASE_URL=https://bing.com
# API endpoint which returns the Picture Of The Day data
ENDPOINT="$BASE_URL/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US"
IMG_FILE=/tmp/bpotd.jpg
echo Querying the API...
api_data=`curl $ENDPOINT`
if [ $? -ne 0 ]; then
echo "Unable to contact the API";
exit 1;
fi
# extract the image url from the astropix page
echo Getting image url...
imgurl=`echo $api_data | jq -r .images[0].url`
echo Image url is $imgurl
# get that image file
echo Getting image at ${BASE_URL}${imgurl}
curl ${BASE_URL}${imgurl} -o $IMG_FILE
if [ $? -ne 0 ]; then
echo "Unable to retrieve image"
exit 2
fi
#set wallpaper using swaybg
wall-change "$IMG_FILE"

View file

@ -1,11 +0,0 @@
#!/usr/bin/env zsh
# VM name
vm_name="win10"
export LIBVIRT_DEFAULT_URI="qemu:///system"
# change workspace
hyprctl dispatch workspace 6
virsh start ${vm_name}
virt-viewer -f -w -a ${vm_name}

2
modules/home/scripts/scripts/wall-change.sh Executable file → Normal file
View file

@ -7,3 +7,5 @@ swaybg -m fill -i $1 &
if [ -n "$PIDS" ]; then
echo "$PIDS" | xargs kill
fi
magick $1 ~/.config/hypr/wallpaper.png

View file

@ -1,12 +1,16 @@
#!/usr/bin/env bash
wallpaper_path=$HOME/Pictures/wallpapers
wallpapers_folder=$HOME/Pictures/wallpapers/others
wallpaper_name="$(ls $wallpapers_folder | fuzzel --dmenu)"
if [[ -f $wallpapers_folder/$wallpaper_name ]]; then
find ~/Pictures/wallpapers -maxdepth 1 -type f -delete
cp $wallpapers_folder/$wallpaper_name $wallpaper_path/$wallpaper_name
wall-change $wallpaper_path/$wallpaper_name
bpotd_entry="⚙️ Bing's Picture Of The Day"
apotd_entry="⚙️ NASA's Astronomy Picture Of The Day"
wallpapers_folder=$HOME/Pictures/Wallpapers/
wallpaper_name=`echo -e "$bpotd_entry\n$apotd_entry" | { cat; find $wallpapers_folder -type f | sed "s|$wallpapers_folder||"; } | fuzzel --dmenu`
if [ "$wallpaper_name" == "$bpotd_entry" ]; then
setbg-bpotd
elif [ "$wallpaper_name" == "$apotd_entry" ]; then
setbg-apotd
elif [[ -f $wallpapers_folder/$wallpaper_name ]]; then
wall-change $wallpapers_folder/$wallpaper_name
else
exit 1
fi

6
modules/home/spotify.nix Normal file
View file

@ -0,0 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs; [
spotify-player
sptlrx
];
}

View file

@ -1,5 +1,8 @@
{ lib, inputs, ... }:
{
lib,
inputs,
...
}: {
programs.starship = {
enable = true;
@ -7,35 +10,37 @@
enableZshIntegration = true;
enableNushellIntegration = true;
settings = {
# right_format = "$cmd_duration";
directory = {
format = "[ ](bold #89b4fa)[ $path ]($style)";
style = "bold #b4befe";
};
settings =
{
# right_format = "$cmd_duration";
character = {
success_symbol = "[ ](bold #89b4fa)[ ](bold green)";
error_symbol = "[ ](bold #89b4fa)[ ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
};
directory = {
format = "[ ](bold #89b4fa)[ $path ]($style)";
style = "bold #b4befe";
};
cmd_duration = {
format = "[]($style)[[󰔚 ](bg:#161821 fg:#d4c097 bold)$duration](bg:#161821 fg:#BBC3DF)[ ]($style)";
disabled = false;
style = "bg:none fg:#161821";
};
character = {
success_symbol = "[ ](bold #89b4fa)[ ](bold green)";
error_symbol = "[ ](bold #89b4fa)[ ](bold red)";
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
};
# directory.substitutions = {
cmd_duration = {
format = "[]($style)[[󰔚 ](bg:#161821 fg:#d4c097 bold)$duration](bg:#161821 fg:#BBC3DF)[ ]($style)";
disabled = false;
style = "bg:none fg:#161821";
};
# directory.substitutions = {
# "~" = "󰋞";
# "Documents" = " ";
# "Downloads" = " ";
# "Music" = " ";
# "Pictures" = " ";
# };
# };
palette = "catppuccin_mocha";
} // builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/palettes/mocha.toml");
palette = "catppuccin_mocha";
}
// builtins.fromTOML (builtins.readFile "${inputs.catppuccin-starship}/palettes/mocha.toml");
};
}

View file

@ -1,21 +0,0 @@
{ pkgs, lib, ... }:
{
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = false;
};
programs.gamemode.enable = true;
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"steam"
"steam-original"
"steam-runtime"
];
# proton-ge-bin
# warning: The package proton-ge in nix-gaming has been deprecated as of 2024-03-17.
# You should use proton-ge-bin from Nixpkgs, which conforms to
# the new `extraCompatTools` module option under `programs.steam`
# For details, see the relevant pull request:
}

View file

@ -1,51 +0,0 @@
{ pkgs, lib, config, inputs, ... }:
{
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
settings = {
clock = true;
datestr = "";
screenshots = true;
indicator = true;
indicator-radius = 100;
indicator-thickness = 7;
effect-blur = "7x5";
effect-vignette = "0.5:0.5";
effect-pixelate = 5;
color="1e1e2e";
bs-hl-color="f5e0dc";
key-hl-color="a6e3a1";
caps-lock-bs-hl-color="f5e0dc";
caps-lock-key-hl-color="a6e3a1";
ring-color="b4befe";
ring-clear-color="f5e0dc";
ring-caps-lock-color="fab387";
ring-ver-color="89b4fa";
ring-wrong-color="eba0ac";
text-color="cdd6f4";
text-clear-color="f5e0dc";
text-caps-lock-color="fab387";
text-ver-color="89b4fa";
text-wrong-color="eba0ac";
layout-text-color="cdd6f4";
inside-color="00000000";
inside-clear-color="00000000";
inside-caps-lock-color="00000000";
inside-ver-color="00000000";
inside-wrong-color="00000000";
layout-bg-color="00000000";
layout-border-color="00000000";
line-color="00000000";
line-clear-color="00000000";
line-caps-lock-color="00000000";
line-ver-color="00000000";
line-wrong-color="00000000";
separator-color="00000000";
};
};
}

View file

@ -1,6 +1,5 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ swaynotificationcenter ]);
{pkgs, ...}: {
home.packages = with pkgs; [swaynotificationcenter];
xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json;
}
}

View file

@ -1,4 +0,0 @@
{ pkgs, ... }:
{
home.packages = (with pkgs; [ unityhub ]);
}

View file

@ -1,13 +1,14 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.vscode = {
enable = true;
package = pkgs.vscodium;
extensions = with pkgs.vscode-extensions; [
# nix language
bbenoist.nix
# nix-shell suport
# nix-shell suport
arrterian.nix-env-selector
# nix formatting
kamadorueda.alejandra
# python
ms-python.python
# C/C++
@ -32,9 +33,9 @@
"workbench.iconTheme" = "catppuccin-mocha";
"catppuccin.accentColor" = "lavender";
"vsicons.dontShowNewVersionMessage" = true;
"explorer.confirmDragAndDrop" = false;
"explorer.confirmDragAndDrop" = true;
"editor.fontLigatures" = true;
"editor.minimap.enabled" = false;
"editor.minimap.enabled" = true;
"workbench.startupEditor" = "none";
"editor.formatOnSave" = true;
@ -45,17 +46,17 @@
"workbench.editor.limit.enabled" = true;
"workbench.editor.limit.value" = 10;
"workbench.editor.limit.perEditorGroup" = true;
"workbench.editor.showTabs" = "single";
"workbench.editor.showTabs" = "multiple";
"files.autoSave" = "onWindowChange";
"explorer.openEditors.visible" = 0;
"breadcrumbs.enabled" = false;
"editor.renderControlCharacters" = false;
"workbench.activityBar.location" = "hidden";
"workbench.activityBar.location" = "default";
"workbench.statusBar.visible" = false;
"editor.scrollbar.verticalScrollbarSize" = 2;
"editor.scrollbar.horizontalScrollbarSize" = 2;
"editor.scrollbar.vertical" = "hidden";
"editor.scrollbar.horizontal" = "hidden";
"editor.scrollbar.verticalScrollbarSize" = 4;
"editor.scrollbar.horizontalScrollbarSize" = 4;
"editor.scrollbar.vertical" = "auto";
"editor.scrollbar.horizontal" = "auto";
"workbench.layoutControl.enabled" = false;
"editor.mouseWheelZoom" = true;

View file

@ -1,6 +1,35 @@
{ ... }:
{
imports = [ (import ./waybar.nix) ]
++ [ (import ./settings.nix) ]
++ [ (import ./style.nix) ];
{...}: let
custom = {
font = "JetBrainsMono Nerd Font";
fontsize = "12";
primary_accent = "cba6f7";
secondary_accent = "89b4fa";
tertiary_accent = "f5f5f5";
background = "11111B";
opacity = "0.98";
cursor = "Numix-Cursor";
palette = rec {
primary_accent_hex = "cba6f7";
secondary_accent_hex = "89b4fa";
tertiary_accent_hex = "f5f5f5";
primary_background_hex = "11111B";
secondary_background_hex = "1b1b2b";
tertiary_background_hex = "25253a";
primary_accent_rgba = "rgba(203,166,247,${opacity})";
secondary_accent_rgba = "rgba(137,180,250,${opacity})";
tertiary_accent_rgba = "rgba(245,245,245,${opacity})";
primary_background_rgba = "rgba(17,17,27,${opacity})";
secondary_background_rgba = "rgba(27,27,43,${opacity})";
tertiary_background_rgba = "rgba(37,37,58,${opacity})";
opacity = "1";
};
};
in {
_module.args = {inherit custom;};
imports =
[(import ./waybar.nix)]
++ [(import ./settings.nix)]
++ [(import ./style.nix)];
}

View file

@ -1,137 +1,167 @@
{ ... }:
{
custom ? {
font = "JetBrainsMono Nerd Font";
fontsize = "12";
primary_accent = "cba6f7";
secondary_accent = "89b4fa";
tertiary_accent = "f5f5f5";
background = "11111B";
opacity = ".85";
cursor = "Numix-Cursor";
},
...
}: {
programs.waybar.settings.mainBar = {
position= "bottom";
layer= "top";
height= 5;
margin-top= 0;
margin-bottom= 0;
margin-left= 0;
margin-right= 0;
modules-left= [
"custom/launcher"
"hyprland/workspaces"
position = "top";
layer = "top";
# height= 15;
margin-top = 0;
margin-bottom = 5;
margin-left = 0;
margin-right = 0;
modules-left = [
"custom/launcher"
"custom/playerctl#backward"
"custom/playerctl#play"
"custom/playerctl#forward"
];
modules-center= [
"clock"
modules-center = [
"hyprland/workspaces"
];
modules-right= [
"tray"
"cpu"
"memory"
"disk"
"pulseaudio"
"battery"
"network"
"custom/notification"
modules-right = [
"tray"
"cpu"
"memory"
"disk"
"pulseaudio"
"battery"
"network"
"custom/notification"
"clock"
];
clock= {
calendar = {
format = { today = "<span color='#b4befe'><b><u>{}</u></b></span>"; };
};
format = " {:%H:%M}";
tooltip= "true";
tooltip-format= "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt= " {:%d/%m}";
clock = {
format = " {:%H:%M}";
tooltip = true;
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%d/%m}";
};
"hyprland/workspaces"= {
active-only= false;
disable-scroll= true;
format = "{icon}";
on-click= "activate";
format-icons= {
"1"= "󰈹";
"2"= "";
"3"= "󰘙";
"4"= "󰙯";
"5"= "";
"6"= "";
urgent= "";
default = "";
sort-by-number= true;
};
persistent-workspaces = {
"1"= [];
"2"= [];
"3"= [];
"4"= [];
"5"= [];
};
"wlr/workspaces" = {
active-only = false;
all-outputs = false;
disable-scroll = false;
on-scroll-up = "hyprctl dispatch workspace e-1";
on-scroll-down = "hyprctl dispatch workspace e+1";
format = "{name}";
on-click = "activate";
format-icons = {
urgent = "";
active = "";
default = "";
sort-by-number = true;
};
};
memory= {
format= "󰟜 {}%";
format-alt= "󰟜 {used} GiB"; # 
interval= 2;
"custom/playerctl#backward" = {
format = "󰙣 ";
on-click = "playerctl previous";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
tooltip = false;
};
cpu= {
format= " {usage}%";
format-alt= " {avg_frequency} GHz";
interval= 2;
"custom/playerctl#play" = {
format = "{icon}";
return-type = "json";
exec = "playerctl -a metadata --format '{\"text\": \"{{artist}} - {{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F";
on-click = "playerctl play-pause";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
format-icons = {
Playing = "<span>󰏥 </span>";
Paused = "<span> </span>";
Stopped = "<span> </span>";
};
};
"custom/playerctl#forward" = {
format = "󰙡 ";
on-click = "playerctl next";
on-scroll-up = "playerctl volume .05+";
on-scroll-down = "playerctl volume .05-";
tooltip = false;
};
memory = {
format = " {}%";
format-alt = " {used} GiB"; # 
interval = 2;
};
cpu = {
format = " {usage}%";
format-alt = " {avg_frequency} GHz";
interval = 2;
};
disk = {
# path = "/";
format = "󰋊 {percentage_used}%";
interval= 60;
# path = "/";
format = "󰋊 {percentage_used}%";
interval = 60;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
};
tray= {
icon-size= 20;
spacing= 8;
tray = {
icon-size = 20;
spacing = 8;
};
pulseaudio= {
format= "{icon} {volume}%";
format-muted= " {volume}%";
format-icons= {
default= [" "];
};
scroll-step= 5;
on-click= "pamixer -t";
pulseaudio = {
format = "{icon} {volume}%";
format-muted = "󰖁 ";
format-icons = {
default = [" "];
};
scroll-step = 5;
on-click = "pamixer -t";
on-click-right = "pavucontrol";
};
battery = {
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
format = "{icon} {capacity}%";
format-icons = [" " " " " " " " " "];
format-charging = " {capacity}%";
format-full = " {capacity}%";
format-warning = " {capacity}%";
interval = 5;
states = {
warning = 20;
};
format-time = "{H}h{M}m";
tooltip = true;
tooltip-format = "{time}";
};
"custom/launcher"= {
format= "";
on-click= "fuzzel";
on-click-right= "wallpaper-picker";
tooltip= "false";
"custom/launcher" = {
format = "";
on-click = "pkill fuzzel || fuzzel";
on-click-right = "pkill fuzzel || wallpaper-picker";
tooltip = false;
};
"custom/notification" = {
tooltip = false;
format = "{icon} ";
format-icons = {
notification = "<span foreground='red'><sup></sup></span> ";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span> ";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span> ";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span> ";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
tooltip = false;
format = "{icon}";
format-icons = {
notification = "<span foreground='red'><sup></sup></span>";
none = " ";
dnd-notification = "<span foreground='red'><sup></sup></span>";
dnd-none = " ";
inhibited-notification = "<span foreground='red'><sup></sup></span>";
inhibited-none = " ";
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
dnd-inhibited-none = " ";
};
return-type = "json";
exec-if = "which swaync-client";
exec = "swaync-client -swb";
on-click = "swaync-client -t -sw";
on-click-right = "swaync-client -d -sw";
escape = true;
};
};
}

View file

@ -1,26 +1,24 @@
{ ... }:
let custom = {
font = "JetBrainsMono Nerd Font";
font_size = "15px";
font_weight = "bold";
text_color = "#cdd6f4";
secondary_accent= "89b4fa";
tertiary_accent = "f5f5f5";
background = "11111B";
opacity = "0.98";
};
in
{
custom ? {
font = "JetBrainsMono Nerd Font";
fontsize = "12";
primary_accent = "cba6f7";
secondary_accent = "89b4fa";
tertiary_accent = "cdd6f4";
background = "11111B";
opacity = ".98";
cursor = "Numix-Cursor";
},
...
}: {
programs.waybar.style = ''
* {
border: none;
border-radius: 0px;
padding: 0;
margin: 0;
min-height: 0px;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
font-weight: bold;
font-size: 15px;
min-height: 0;
opacity: ${custom.opacity};
}
@ -29,76 +27,152 @@ in
}
#workspaces {
font-size: 18px;
padding-left: 15px;
background: #${custom.palette.tertiary_background_hex};
margin: 5px 5px;
padding: 8px 12px;
border-radius: 12px 12px 24px 24px;
color: #${custom.primary_accent}
}
#workspaces button {
color: ${custom.text_color};
padding-left: 6px;
padding-right: 6px;
}
#workspaces button.empty {
color: #6c7086;
}
#workspaces button.active {
color: #b4befe;
padding: 0px 5px;
margin: 0px 3px;
border-radius: 15px;
color: #${custom.background};
background: #${custom.secondary_accent};
transition: all 0.2s ease-in-out;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk, #clock, #battery, #custom-notification {
font-size: ${custom.font_size};
color: ${custom.text_color};
#workspaces button.active {
background-color: #${custom.primary_accent};
color: #${custom.background};
border-radius: 15px;
min-width: 35px;
background-size: 200% 200%;
transition: all 0.2s ease-in-out;
}
#workspaces button:hover {
background-color: #b4befe;
color: #${custom.background};
border-radius: 15px;
min-width: 35px;
background-size: 200% 200%;
}
#tray, #pulseaudio, #network, #cpu, #memory, #disk,
#custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.forward, #battery, #custom-notification {
background: #${custom.palette.tertiary_background_hex};
font-weight: bold;
margin: 5px 0px;
}
#cpu {
color: #${custom.tertiary_accent};
border-radius: 10px 0px 0px 24px;
padding-left: 15px;
padding-right: 9px;
margin-left: 7px;
}
#memory {
color: #${custom.tertiary_accent};
border-radius: 0;
padding-left: 9px;
padding-right: 9px;
}
#disk {
color: #${custom.tertiary_accent};
border-radius: 0px 24px 10px 0px;
padding-left: 9px;
padding-right: 15px;
}
#tray {
color: #${custom.tertiary_accent};
border-radius: 10px 24px 10px 24px;
padding: 0 20px;
margin-left: 7px;
}
#pulseaudio {
color: #${custom.tertiary_accent};
border-radius: 10px 0px 0px 24px;
padding-left: 15px;
padding-right: 9px;
margin-left: 7px;
}
#battery {
color: #${custom.tertiary_accent};
border-radius: 0;
padding-left: 9px;
padding-right: 9px;
}
#network {
color: #${custom.tertiary_accent};
border-radius: 0;
padding-left: 9px;
padding-right: 30px;
padding-right: 9px;
}
custom-notification {
padding-left: 20px;
padding-right: 20px;
}
#clock {
#custom-notification {
color: #${custom.tertiary_accent};
border-radius: 0px 24px 10px 0px;
padding-left: 9px;
padding-right: 15px;
}
#clock {
color: #${custom.tertiary_accent};
background: #${custom.palette.tertiary_background_hex};
border-radius: 0px 0px 0px 40px;
padding: 10px 10px 15px 25px;
margin-left: 7px;
font-weight: bold;
font-size: 16px;
}
#custom-launcher {
font-size: 20px;
color: #b4befe;
font-weight: ${custom.font_weight};
padding-left: 10px;
color: #${custom.secondary_accent};
background: #${custom.palette.tertiary_background_hex};
border-radius: 0px 0px 40px 0px;
margin: 0px;
padding: 0px 30px 0px 10px;
font-size: 28px;
}
#custom-playerctl.backward, #custom-playerctl.play, #custom-playerctl.forward {
background: #${custom.palette.tertiary_background_hex};
font-size: 22px;
}
#custom-playerctl.backward:hover, #custom-playerctl.play:hover, #custom-playerctl.forward:hover{
color: #${custom.tertiary_accent};
}
#custom-playerctl.backward {
color: #${custom.primary_accent};
border-radius: 24px 0px 0px 10px;
padding-left: 16px;
margin-left: 7px;
}
#custom-playerctl.play {
color: #${custom.secondary_accent};
padding: 0 5px;
}
#custom-playerctl.forward {
color: #${custom.primary_accent};
border-radius: 0px 10px 24px 0px;
padding-right: 12px;
margin-right: 7px
}
#window{
background: #${custom.palette.tertiary_background_hex};
padding-left: 15px;
padding-right: 15px;
border-radius: 16px;
margin-top: 5px;
margin-bottom: 5px;
font-weight: normal;
font-style: normal;
}
'';
}

View file

@ -1,9 +1,8 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ];
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
});
}

View file

@ -1,5 +1,10 @@
{ hostname, config, pkgs, host, ...}:
{
hostname,
config,
pkgs,
host,
...
}: {
programs.zsh = {
enable = true;
enableCompletion = true;
@ -7,7 +12,7 @@
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "fzf" ];
plugins = ["git" "fzf"];
};
initExtraFirst = ''
DISABLE_MAGIC_FUNCTIONS=true
@ -44,21 +49,21 @@
nix-clean = "sudo nix-collect-garbage && sudo nix-collect-garbage -d && sudo rm /nix/var/nix/gcroots/auto/* && nix-collect-garbage && nix-collect-garbage -d";
# Git
ga = "git add";
gaa = "git add --all";
gs = "git status";
gb = "git branch";
gm = "git merge";
gpl = "git pull";
ga = "git add";
gaa = "git add --all";
gs = "git status";
gb = "git branch";
gm = "git merge";
gpl = "git pull";
gplo = "git pull origin";
gps = "git push";
gps = "git push";
gpst = "git push --follow-tags";
gpso = "git push origin";
gc = "git commit";
gcm = "git commit -m";
gc = "git commit";
gcm = "git commit -m";
gcma = "git add --all && git commit -m";
gtag = "git tag -ma";
gch = "git checkout";
gch = "git checkout";
gchb = "git checkout -b";
gcoe = "git config user.email";
gcon = "git config user.name";

View file

@ -1,27 +0,0 @@
{ stdenv, lib, stdenv, fetchFromGitHub, ... }:
stdenv.mkDerivation rec {
pname = "2048";
version = "1.0";
src = fetchFromGitHub {
owner = "Frost-Phoenix";
repo = "nixos-config";
rev = "main";
sha256 = ""; # Replace with the actual hash
};
buildInputs = [
];
buildPhase = ''
make release
'';
installPhase = ''
mkdir -p $out/bin
make install INSTALL_DIR=$out/bin
chmod +x $out/bin/2048
'';
}

View file

@ -1,12 +0,0 @@
rec{
overlay = final: prev:
let
dirContents = builtins.readDir ../pkgs;
genPackage = name: {
inherit name;
value = final.callPackage (../pkgs + "/${name}") { };
};
names = builtins.attrNames dirContents;
in
builtins.listToAttrs (map genPackage names);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 823 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Some files were not shown because too many files have changed in this diff Show more