Compare commits

..

No commits in common. "5fe3f69a1775dd9e1cf93b8e9fcc1be609e70606" and "f01096d4e7dbfd43ffc7850c09a61755e559b043" have entirely different histories.

111 changed files with 1612 additions and 1528 deletions

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

BIN
.github/assets/screenshots/1.old.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 KiB

BIN
.github/assets/screenshots/1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 KiB

BIN
.github/assets/screenshots/2.old.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
.github/assets/screenshots/2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

BIN
.github/assets/screenshots/3.old.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

BIN
.github/assets/screenshots/3.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 658 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 400 KiB

266
README.md
View file

@ -1,7 +1,7 @@
<h1 align="center"> <h1 align="center">
<img src="./.repo/assets/logo/nixos-logo.png " width="100px" /> <img src="./.github/assets/logo/nixos-logo.png " width="100px" />
<br> <br>
peprolinbot's Flakes Frost-Phoenix's Flakes
<br> <br>
<img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="600px" /> <br> <img src="https://raw.githubusercontent.com/catppuccin/catppuccin/main/assets/palette/macchiato.png" width="600px" /> <br>
<div align="center"> <div align="center">
@ -9,6 +9,12 @@
<div align="center"> <div align="center">
<p></p> <p></p>
<div align="center"> <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"> <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"> <img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=303446&logo=NixOS&logoColor=white&color=91D7E3">
</a> </a>
@ -26,20 +32,36 @@
### 🖼️ Gallery ### 🖼️ Gallery
<p align="center"> <p align="center">
<img src="./.repo/assets/screenshots/1.png" /> <br> <img src="./.github/assets/screenshots/1.png" /> <br>
<img src="./.repo/assets/screenshots/2.png" /> <br> <img src="./.github/assets/screenshots/2.png" /> <br>
Screenshots last updated <b>8th July 2024</b> <img src="./.github/assets/screenshots/3.png" /> <br>
Screenshots last updated <b>2024-04-09</b>
</p> </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 # 🗃️ Overview
### 📚 Layout ### 📚 Layout
- [flake.nix](flake.nix) base of the configuration - [flake.nix](flake.nix) base of the configuration
- [hosts](hosts) 🌳 per-host configurations that contain machine specific configurations - [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 - [modules](modules) 🍱 modularized NixOS configurations
- [core](modules/core/) ⚙️ Core NixOS configuration - [core](modules/core/) ⚙️ Core NixOS configuration
- [homes](modules/home/) 🏠 my [Home-Manager](https://github.com/nix-community/home-manager) config - [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 ### 📓 Components
| | NixOS + Hyprland | | | NixOS + Hyprland |
@ -58,10 +80,10 @@
| **Color Scheme** | [Catppuccin][Catppuccin] | | **Color Scheme** | [Catppuccin][Catppuccin] |
| **Cursor** | [Nordzy-cursors][Nordzy-cursors] | | **Cursor** | [Nordzy-cursors][Nordzy-cursors] |
| **Icons** | [catppuccin-papirus-folders][catppuccin-papirus-folders] | | **Icons** | [catppuccin-papirus-folders][catppuccin-papirus-folders] |
| **Lockscreen** | [Hyprlock][Swaylock-effects] | | **Lockscreen** | [Swaylock-effects][Swaylock-effects] |
| **Image Viewer** | [imv][imv] | | **Image Viewer** | [imv][imv] |
| **Media Player** | [mpv][mpv] | | **Media Player** | [mpv][mpv] |
| **Music Player** | [audacious][spotify_player] | | **Music Player** | [audacious][audacious] |
| **Screenshot Software** | [grimblast][grimblast] | | **Screenshot Software** | [grimblast][grimblast] |
| **Screen Recording** | [wf-recorder][wf-recorder] | | **Screen Recording** | [wf-recorder][wf-recorder] |
| **Clipboard** | [wl-clip-persist][wl-clip-persist] | | **Clipboard** | [wl-clip-persist][wl-clip-persist] |
@ -170,6 +192,26 @@ toggle_oppacity.sh
**Usage:** ```toggle_oppacity``` **Usage:** ```toggle_oppacity```
</details> </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> <details>
<summary> <summary>
runbg.sh runbg.sh
@ -182,7 +224,131 @@ runbg.sh
### ⌨️ Keybinds ### ⌨️ Keybinds
View all keybinds by pressing ```$mainMod F1```. By default ```$mainMod``` is the ```SUPER``` key. 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, pkill fuzzel || 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, G,exec, $HOME/.local/bin/toggle_layout```
- ```bind = $mainMod, W,exec, pkill fuzzel || 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>
# 🚀 Installation # 🚀 Installation
@ -190,7 +356,7 @@ View all keybinds by pressing ```$mainMod F1```. By default ```$mainMod``` is th
> 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> > 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.** > **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. 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. > It is highly recommended to review the configuration contents and make necessary modifications to customize it to your needs before attempting the installation.
1. **Install NixOs** 1. **Install NixOs**
@ -201,24 +367,75 @@ View all keybinds by pressing ```$mainMod F1```. By default ```$mainMod``` is th
``` ```
nix-shell -p git nix-shell -p git
git clone https://git.peprolinbot.com/peprolinbot/nixos-config git clone https://github.com/Frost-Phoenix/nixos-config
cd nixos-config cd nixos-config
``` ```
3. **Install script**
2. **Customize** > First make sure to read the install script, it isn't long
Read everything (as much as you can anyway) and edit what you consider neccesary.
Execute and follow the installation script :
3. **Install** ```
./install.sh
Run `sudo nixos-rebuild switch --flake .` and fix any errors that might arise ```
> You will need to change the git account yourself in ./modules/home/git.nix
```
programs.git = {
...
userName = "Frost-Phoenix";
userEmail = "67cyril6767@gmail.com";
...
};
```
4. **Reboot** 4. **Reboot**
After rebooting, you'll be greeted by regreet prompting for your password. 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.
# 👥 Credits # 👥 Credits
Heavily based on [Frost-Phoenix's Flakes](https://github.com/Frost-Phoenix/nixos-config). And therefore, recursively, also: Other dotfiles that I learned / copy from:
- Nix Flakes - Nix Flakes
- [nomadics9/NixOS-Flake](https://github.com/nomadics9/NixOS-Flake): This is where I start my nixos / hyprland journey. - [nomadics9/NixOS-Flake](https://github.com/nomadics9/NixOS-Flake): This is where I start my nixos / hyprland journey.
@ -233,7 +450,12 @@ Heavily based on [Frost-Phoenix's Flakes](https://github.com/Frost-Phoenix/nixos
- [sioodmy/dotfiles](https://github.com/sioodmy/dotfiles) - [sioodmy/dotfiles](https://github.com/sioodmy/dotfiles)
- [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes) - [Ruixi-rebirth/flakes](https://github.com/Ruixi-rebirth/flakes)
Please open an issue if i forgot to credit you.
<!-- # ✨ 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>
<!-- end of page, send back to the top --> <!-- end of page, send back to the top -->
@ -252,8 +474,8 @@ Please open an issue if i forgot to credit you.
[yazi]: https://github.com/sxyazi/yazi [yazi]: https://github.com/sxyazi/yazi
[zsh]: https://ohmyz.sh/ [zsh]: https://ohmyz.sh/
[oh-my-zsh]: https://ohmyz.sh/ [oh-my-zsh]: https://ohmyz.sh/
[hyprlock]: https://github.com/hyprwm/hyprlock [Swaylock-effects]: https://github.com/mortie/swaylock-effects
[spotify_player]: https://github.com/aome510/spotify-player [audacious]: https://audacious-media-player.org/
[mpv]: https://github.com/mpv-player/mpv [mpv]: https://github.com/mpv-player/mpv
[VSCodium]:https://vscodium.com/ [VSCodium]:https://vscodium.com/
[Neovim]: https://github.com/neovim/neovim [Neovim]: https://github.com/neovim/neovim

View file

@ -91,67 +91,7 @@
"type": "github" "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": { "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": { "inputs": {
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
@ -185,28 +125,6 @@
"type": "github" "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -214,11 +132,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1720188602, "lastModified": 1719037157,
"narHash": "sha256-lC3byBmhVZFzWl/dCic8+cKUEEAXAswWOYjq4paFmbo=", "narHash": "sha256-aOKd8+mhBsLQChCu1mn/W5ww79ta5cXVE59aJFrifM8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "e3582e5151498bc4d757e8361431ace8529e7bb7", "rev": "cd886711998fe5d9ff7979fdd4b4cbd17b1f1511",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -229,7 +147,7 @@
}, },
"hypr-contrib": { "hypr-contrib": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_2"
}, },
"locked": { "locked": {
"lastModified": 1718476555, "lastModified": 1718476555,
@ -280,16 +198,16 @@
"hyprlang": "hyprlang", "hyprlang": "hyprlang",
"hyprutils": "hyprutils", "hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner", "hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"systems": "systems", "systems": "systems",
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1720213509, "lastModified": 1719148310,
"narHash": "sha256-aPYf8Jnu1fMgMYMgQnH433/Fcqfky1Z5ZuzCkNKcR1U=", "narHash": "sha256-wxVUSGRYlAFToeMsJ4lTSSIC2zB4leT06cVS4pt0lQo=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "cc98594c3aed0b542e03818371a4636f549f80e1", "rev": "315f16d501f38d6bc743fca359d13b655c4a970d",
"revCount": 4908, "revCount": 4877,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@ -358,14 +276,14 @@
}, },
"hyprpicker": { "hyprpicker": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1719873934, "lastModified": 1718119103,
"narHash": "sha256-2UiP64OYyeeQJnrt3opInzv8IJKeor9nUAoxl87anng=", "narHash": "sha256-Ghtstc1LV2RkaQDwThGS2VfjHgYSvgk4+jsytDKYog0=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprpicker", "repo": "hyprpicker",
"rev": "b0974381f996f92dc191e6b03adf7d581061619b", "rev": "67e0f34e2760a80d74ab5d8ec8d2acae692d307f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -386,11 +304,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719316102, "lastModified": 1718804078,
"narHash": "sha256-dmRz128j/lJmMuTYeCYPfSBRHHQO3VeH4PbmoyAhHzw=", "narHash": "sha256-CqRZne63BpYlPd/i8lXV0UInUt59oKogiwdVtBRHt60=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "1f6bbec5954f623ff8d68e567bddcce97cd2f085", "rev": "4f1351295c55a8f51219b25aa4a6497a067989d0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -411,11 +329,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1719067853, "lastModified": 1718119275,
"narHash": "sha256-mAnZG/eQy72Fp1ImGtqCgUrDumnR1rMZv2E/zgP4U74=", "narHash": "sha256-nqDYXATNkyGXVmNMkT19fT4sjtSPBDS1LLOxa3Fueo4=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprwayland-scanner", "repo": "hyprwayland-scanner",
"rev": "914f083741e694092ee60a39d31f693d0a6dc734", "rev": "1419520d5f7f38d35e05504da5c1b38212a38525",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -424,48 +342,17 @@
"type": "github" "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": { "nix-gaming": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1720185178, "lastModified": 1719105588,
"narHash": "sha256-9KJ7KXQYDhnAfPIAvYYAEFW+85Gk9gm5W1pMoE/VMFg=", "narHash": "sha256-BXyXbrbsU90S0T4ruNx0q26ITfJCeXk5Qix6KVVKQLw=",
"owner": "fufexan", "owner": "fufexan",
"repo": "nix-gaming", "repo": "nix-gaming",
"rev": "6caa391790442baea22260296041429fb365e0ce", "rev": "e952ecaae2066e0b942921684437da3d9f4f056d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -503,22 +390,6 @@
} }
}, },
"nixpkgs_2": { "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": { "locked": {
"lastModified": 1712163089, "lastModified": 1712163089,
"narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=",
@ -534,13 +405,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1719075281, "lastModified": 1718530797,
"narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=", "narHash": "sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af", "rev": "b60ebf54c15553b393d144357375ea956f89e9a9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -550,7 +421,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1683014792, "lastModified": 1683014792,
"narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=", "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=",
@ -566,13 +437,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1719468428, "lastModified": 1718983919,
"narHash": "sha256-vN5xJAZ4UGREEglh3lfbbkIj+MPEYMuqewMn4atZFaQ=", "narHash": "sha256-+1xgeIow4gJeiwo4ETvMRvWoircnvb0JOt7NS9kUhoM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1e3deb3d8a86a870d925760db1a5adecc64d329d", "rev": "90338afd6177fc683a04d934199d693708c85a3b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -582,13 +453,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1720031269, "lastModified": 1719075281,
"narHash": "sha256-rwz8NJZV+387rnWpTYcXaRNvzUSnnF9aHONoJIYmiUQ=", "narHash": "sha256-CyyxvOwFf12I91PBWz43iGT1kjsf5oi6ax7CrvaMyAo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "9f4128e00b0ae8ec65918efeba59db998750ead6", "rev": "a71e967ef3694799d0c418c98332f7ff4cc5f6af",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -600,11 +471,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1720262786, "lastModified": 1719146312,
"narHash": "sha256-lOw+DePpT6JEzudxzq/yhDqWW9fOga9vrojV2E1DgAs=", "narHash": "sha256-oueSq8thT3fFRqUMTab3zWJ6kb+AMiz0UKYXK9mY7gI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "7907d743f2a29c574db99f3297da264fe5fe7a6e", "rev": "df3679b280597ef85c72c1ecdf1ba04668be1554",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -613,49 +484,18 @@
"type": "github" "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": { "root": {
"inputs": { "inputs": {
"alejandra": "alejandra", "alejandra": "alejandra",
"catppuccin-bat": "catppuccin-bat", "catppuccin-bat": "catppuccin-bat",
"catppuccin-cava": "catppuccin-cava", "catppuccin-cava": "catppuccin-cava",
"catppuccin-starship": "catppuccin-starship", "catppuccin-starship": "catppuccin-starship",
"fjordlauncher": "fjordlauncher",
"home-manager": "home-manager", "home-manager": "home-manager",
"hypr-contrib": "hypr-contrib", "hypr-contrib": "hypr-contrib",
"hyprland": "hyprland", "hyprland": "hyprland",
"hyprpicker": "hyprpicker", "hyprpicker": "hyprpicker",
"nix-gaming": "nix-gaming", "nix-gaming": "nix-gaming",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_6",
"nur": "nur" "nur": "nur"
} }
}, },

View file

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

View file

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

View file

@ -0,0 +1,41 @@
# 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

@ -1,19 +0,0 @@
{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

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

View file

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

26
hosts/vm/default.nix Normal file
View file

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

134
install.sh Executable file
View file

@ -0,0 +1,134 @@
#!/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,14 +1,7 @@
{pkgs, ...}: { { pkgs, ... }:
boot.loader = { {
efi = { boot.loader.systemd-boot.enable = true;
canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
efiSysMountPoint = "/boot/efi"; boot.loader.systemd-boot.configurationLimit = 10;
};
grub = {
efiSupport = true;
device = "nodev";
useOSProber = true;
};
};
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,7 +1,6 @@
{pkgs, ...}: { { ... }:
{
security.rtkit.enable = true; security.rtkit.enable = true;
security.sudo.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.swaylock = { };
security.pam.services.hyprlock = {};
} }

View file

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

View file

@ -1,17 +1,12 @@
{ self, pkgs, lib, inputs, ...}:
{ {
self,
pkgs,
lib,
inputs,
...
}: {
# imports = [ inputs.nix-gaming.nixosModules.default ]; # imports = [ inputs.nix-gaming.nixosModules.default ];
nix = { nix = {
settings = { settings = {
auto-optimise-store = true; auto-optimise-store = true;
experimental-features = ["nix-command" "flakes"]; experimental-features = [ "nix-command" "flakes" ];
substituters = ["https://nix-gaming.cachix.org"]; substituters = [ "https://nix-gaming.cachix.org" ];
trusted-public-keys = ["nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="]; trusted-public-keys = [ "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" ];
}; };
gc = { gc = {
automatic = true; automatic = true;
@ -21,6 +16,7 @@
}; };
nixpkgs = { nixpkgs = {
overlays = [ overlays = [
self.overlays.default
inputs.nur.overlay inputs.nur.overlay
]; ];
}; };
@ -28,17 +24,9 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
wget wget
git git
ddcutil
]; ];
# For ddcutil brightness control time.timeZone = "Europe/Paris";
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"; i18n.defaultLocale = "en_US.UTF-8";
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
system.stateVersion = "24.05"; system.stateVersion = "24.05";

View file

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

View file

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

View file

@ -1,47 +0,0 @@
{
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

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

View file

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

View file

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

Binary file not shown.

View file

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

View file

@ -0,0 +1,23 @@
[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,4 +1,5 @@
{inputs, ...}: { { inputs, ... }:
{
programs.bat = { programs.bat = {
enable = true; enable = true;
config = { config = {
@ -6,4 +7,4 @@
theme = "Dracula"; theme = "Dracula";
}; };
}; };
} }

View file

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

View file

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

View file

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

View file

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

View file

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

@ -1,14 +0,0 @@
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

@ -0,0 +1,8 @@
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,3 +1,4 @@
{pkgs, ...}: { { pkgs, ... }:
home.packages = with pkgs; [floorp]; {
home.packages = (with pkgs; [ floorp ]);
} }

File diff suppressed because one or more lines are too long

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 MiB

View file

@ -1,41 +0,0 @@
{
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,8 +1,5 @@
{ inputs, pkgs, ...}:
{ {
inputs,
pkgs,
...
}: {
home.packages = with pkgs; [ home.packages = with pkgs; [
# swww # swww
swaybg swaybg
@ -16,7 +13,7 @@
wayland wayland
direnv 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 = { wayland.windowManager.hyprland = {
enable = true; enable = true;
xwayland = { xwayland = {

View file

@ -1,97 +0,0 @@
{pkgs, ...}: {
programs.hyprlock.enable = true;
xdg.configFile."hypr/hyprlock.conf".text = ''
$red = rgb(f38ba8)
$yellow = rgb(f9e2af)
$lavender = rgb(b4befe)
$mauve = rgb(cba6f7)
$mauveAlpha = cba6f7
$base = rgb(1e1e2e)
$surface0 = rgb(313244)
$text = rgb(cdd6f4)
$textAlpha = cdd6f4
$accent = $lavender
$accentAlpha = $mauveAlpha
$font = JetBrainsMono Nerd Font
# GENERAL
general {
disable_loading_bar = true
hide_cursor = true
}
# BACKGROUND
background {
monitor =
path = ~/.config/hypr/wallpaper.png
color = $base
blur_passes = 2
}
# TIME
label {
monitor =
text = cmd[update:30000] echo "<b><big> $(date +"%R") </big></b>"
color = $text
font_size = 110
font_family = $font
shadow_passes = 3
shadow_size = 3
position = 0, -100
halign = center
valign = top
}
# DATE
label {
monitor =
text = cmd[update:43200000] echo "$(date +"%A, %d %B %Y")"
color = $text
font_size = 18
font_family = $font
position = 0, -300
halign = center
valign = top
}
# USER AVATAR
image {
monitor =
path = ~/.face.png
size = 125
border_color = $accent
position = 0, -450
halign = center
valign = center
}
# INPUT FIELD
input-field {
monitor =
size = 300, 60
outline_thickness = 4
dots_size = 0.2
dots_spacing = 0.4
dots_center = true
outer_color = $accent
inner_color = $surface0
font_color = $text
fade_on_empty = false
placeholder_text = <span foreground="##$textAlpha"><i>󰌾 Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
hide_input = false
check_color = $accent
fail_color = $red
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
capslock_color = $yellow
position = 0, -100
halign = center
valign = center
}
'';
}

View file

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

View file

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

70
modules/home/micro.nix Normal file
View file

@ -0,0 +1,70 @@
{ 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,4 +1,5 @@
{pkgs, ...}: { { pkgs, ... }:
{
programs.neovim = { programs.neovim = {
enable = true; enable = true;
vimAlias = true; vimAlias = true;

View file

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

View file

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

60
modules/home/rider.nix Normal file
View file

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

View file

@ -0,0 +1,45 @@
#!/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

@ -1,16 +0,0 @@
#!/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

@ -0,0 +1,7 @@
#!/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

@ -0,0 +1,53 @@
#!/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

@ -0,0 +1,10 @@
#!/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

@ -0,0 +1,125 @@
#!/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

@ -1,124 +0,0 @@
#!/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

@ -1,37 +0,0 @@
#!/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

@ -1,34 +0,0 @@
#!/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

@ -0,0 +1,11 @@
#!/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 Normal file → Executable file
View file

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

View file

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

View file

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

View file

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

21
modules/home/steam.nix Normal file
View file

@ -0,0 +1,21 @@
{ 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:
}

51
modules/home/swaylock.nix Normal file
View file

@ -0,0 +1,51 @@
{ 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,5 +1,6 @@
{pkgs, ...}: { { pkgs, ... }:
home.packages = with pkgs; [swaynotificationcenter]; {
home.packages = (with pkgs; [ swaynotificationcenter ]);
xdg.configFile."swaync/style.css".source = ./style.css; xdg.configFile."swaync/style.css".source = ./style.css;
xdg.configFile."swaync/config.json".source = ./config.json; xdg.configFile."swaync/config.json".source = ./config.json;
} }

4
modules/home/unity.nix Normal file
View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

27
pkgs/2048/default.nix Normal file
View file

@ -0,0 +1,27 @@
{ 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
'';
}

12
pkgs/default.nix Normal file
View file

@ -0,0 +1,12 @@
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.

After

Width:  |  Height:  |  Size: 823 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

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