This commit is contained in:
Hadi 2024-10-07 11:17:59 +02:00
parent ab65fe342b
commit 75f2c2c7c6
20 changed files with 289 additions and 157 deletions

View File

@ -1,4 +1,4 @@
[//]: # (This is autogenerated) [//]: # (This file is autogenerated)
<div align="center"> <div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" /> <img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div> </div>
@ -10,16 +10,16 @@
<br> <br>
<div align="center"> <div align="center">
<a href="https://github.com/anotherhadi/nixy/stargazers"> <a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=starship&logoColor=89b4fa"> <img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=starship&logoColor=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/"> <a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=github&logoColor=89b4fa"> <img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=github&logoColor=A594FD">
</a> </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=181825&logo=NixOS&logoColor=89b4fa&color=89b4fa"> <img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=0b0b0b&logo=NixOS&logoColor=A594FD&color=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE"> <a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=181825&colorB=89b4fa&logo=unlicense&logoColor=89b4fa"/> <img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=0b0b0b&colorB=A594FD&logo=unlicense&logoColor=A594FD"/>
</a> </a>
</div> </div>
<br> <br>
@ -94,7 +94,7 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own - [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available - [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland - [KEYBINDINGS-HYPRLAND.md](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS.md](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy. - [WALLPAPERS.md](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO.md](docs/TODO.md): What's next (feel free to contribute) - [TODO.md](docs/TODO.md): What's next (feel free to contribute)

View File

@ -9,9 +9,6 @@ The process is straight-forward.
- Write your changes (new theme, bug fixes, task in to-do, ...). - Write your changes (new theme, bug fixes, task in to-do, ...).
- Create a Pull Request against the main branch of Nixy. - Create a Pull Request against the main branch of Nixy.
> [!TIP]
> When wallpapers are added, run `./docs/scripts/compress_png.sh` and `./docs/scripts/create_preview_wallpapers.sh`
> [!TIP] > [!TIP]
> To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh` > To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh`

View File

@ -0,0 +1,42 @@
# Keybindings for Hyprland
The list of the keybindings working on Hyprland:
| Description | Keybinding |
|------------------------------|--------------------------|
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| Toggle HyprFocus | SHIFT + SUPER + SPACE |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALT PRINT |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Turn off night shift | SUPER + F2 |
| Turn on night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |

View File

@ -1,42 +0,0 @@
# Keybindings
The list of the keybindings working on Hyprland:
| Description | Keybinding |
|--------------------------------------------|--------------------------|
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| "\$shiftMod, SPACE, hyprexpo:expo, toggle" | |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALT PRINT |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Turn off night shift | SUPER + F2 |
| Turn on night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |

View File

@ -1,55 +1,88 @@
[//]: # (This file is autogenerated)
# Scripts # Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the user's path. Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path.
## Nix/NixOs shortcuts ## Brightness
> [!TIP] This module provides a set of scripts to control the brightness of the screen.
> The `hostname` variable in `hosts/yourhost/variables.nix` should be also the name of the `nixosConfiguration` in `flake.nix` file.
- `nixy` # UI - `brightness-up` increases the brightness by 5%.
- `nixy rebuild` - `brightness-down` decreases the brightness by 5%.
- `nixy update` - `brightness-set [value]` sets the brightness to the given value.
- `nixy upgrade` - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
- `nixy gc` # garbage collection
- `nixy cb` # clean boot menu
## Brightness control
- `brightness-up`
- `brightness-down`
- `brightness-set [value]`
- `brightness-change [up/down] <increment>`
## Sound control
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-set [value]`
- `sound-change [up/down/mute] <increment>`
## Caffeine ## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock). Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine - `caffeine-status` - Check if hypridle is running. (0/1)
- `caffeine-status` # Return 1/0 - `caffeine-status-icon` - Check if hypridle is running. (icon)
- `caffeine-status-icon` # Return 󰅶/󰾪 - `caffeine` - Toggle hypridle.
## Night-Shift ## Hyprfocus
Blue light filter, using wlsunset A simple script to toggle focus on few windows in Hyprland.
(disable gaps, border, shadow, opacity, etc.)
- `night-shift` # Toggle night shift - `hyprfocus-on` - Enable hyprfocus.
- `night-shift-status` # Return 1/0 - `hyprfocus-off` - Disable hyprfocus.
- `night-shift-status-icon` # Return 󰖕/󰖔 - `hyprfocus-toggle` - Toggle hyprfocus.
- `night-shift-on`
- `night-shift-off` ## Hyprpanel
Quick scripts to toggle, reload and kill hyprpanel.
- `hyprpanel-toggle` - Toggle hyprpanel.
- `hyprpanel-reload` - Reload hyprpanel.
- `hyprpanel-kill` - Kill hyprpanel.
## Nerdfont FZF ## Nerdfont FZF
Nerdfont fzf is a quick way to search for nerdfont icons locally. This module provides a script to search for Nerd Fonts icons using fzf.
It will copy the selected icon to the clipboard.
- `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
## Night-Shift
Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
- `night-shift-on` activates Night-Shift.
- `night-shift-off` deactivates Night-Shift.
- `night-shift` toggles Night-Shift.
- `night-shift-status` checks if Night-Shift is active. (0/1)
- `night-shift-status-icon` checks if Night-Shift is active. (icon)
## Nixy
Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, upgrade, update, collect garbage, clean boot menu, etc.
- `nixy` - UI wizard to manage the system.
- `nixy rebuild` - Rebuild the system.
- `nixy ...` - ... see the script for more commands.
## Screenshot
This module provides a script to take screenshots using `hyprshot` and `swappy`.
- `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
## Sound
This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
- `sound-up` increases the volume by 5%.
- `sound-down` decreases the volume by 5%.
- `sound-set [value]` sets the volume to the given value.
- `sound-toggle` toggles the mute state of the default audio sink.
## System
Usefull quick scripts
- `menu` - Open wofi with drun mode.
- `powermenu` - Open power dropdown menu.
- `lock` - Lock the screen.
- `nerdfont-fzf`

View File

@ -10,8 +10,8 @@ table_of_content=$(md-table-of-contents ./docs/src/README_template.md) # https:/
readme_content=$(cat "./docs/src/README_template.md") readme_content=$(cat "./docs/src/README_template.md")
# Replace variables # Replace variables
readme_content=${readme_content//\{primarycolor\}/89b4fa} readme_content=${readme_content//\{primarycolor\}/A594FD}
readme_content=${readme_content//\{backgroundcolor\}/181825} readme_content=${readme_content//\{backgroundcolor\}/0b0b0b}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content} readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "[//]: # (This file is autogenerated)" >"$README_FILE" echo "[//]: # (This file is autogenerated)" >"$README_FILE"

View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
DOCS_FILE="./docs/SCRIPTS.md"
SCRIPTS_FOLDER="./home/scripts"
# search for every directory in the scripts folder:
# The docs for each scripts are in the beginning of the file prefixed by "#-" or "# -" for the title
# Inside the folders, the scripts are stored in default.nix files
echo "[//]: # (This file is autogenerated)" >"$DOCS_FILE"
echo "# Scripts" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
echo "Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path." >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
for folder in "$SCRIPTS_FOLDER"/*; do
script="$folder/default.nix"
[[ -f "$script" ]] || continue
content=$(cat "$script")
content=$(echo "$content" | grep -E "^#-|^# -" | sed 's/^#- //;s/^# - //;s/#-//')
echo "$content" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
done

View File

@ -4,7 +4,7 @@
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1) [[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
KEYBINDINGS_FILE="./docs/KEYBINDINGS.md" KEYBINDINGS_FILE="./docs/KEYBINDINGS-HYPRLAND.md"
function getList() { function getList() {
content=$1 content=$1
@ -33,7 +33,8 @@ bindle=$(getList "$config" "bindle")
# Join the lists: # Join the lists:
keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"') keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"')
echo "# Keybindings" >"$KEYBINDINGS_FILE" echo "[//]: # (This file is autogenerated)" >"$KEYBINDINGS_FILE"
echo "# Keybindings for Hyprland" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE" echo "" >>"$KEYBINDINGS_FILE"
echo "The list of the keybindings working on Hyprland:" >>"$KEYBINDINGS_FILE" echo "The list of the keybindings working on Hyprland:" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE" echo "" >>"$KEYBINDINGS_FILE"

View File

@ -84,7 +84,7 @@ sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own - [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available - [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland - [KEYBINDINGS-HYPRLAND.md](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS.md](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy. - [WALLPAPERS.md](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO.md](docs/TODO.md): What's next (feel free to contribute) - [TODO.md](docs/TODO.md): What's next (feel free to contribute)

View File

@ -62,7 +62,7 @@
} }
{ {
key = "<leader>E"; key = "<leader>E";
action = "<cmd>Neotree<cr>"; action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree"; options.desc = "Neotree";
} }

View File

@ -1,3 +1,12 @@
# - ## Brightness
#-
#- This module provides a set of scripts to control the brightness of the screen.
#-
#- - `brightness-up` increases the brightness by 5%.
#- - `brightness-down` decreases the brightness by 5%.
#- - `brightness-set [value]` sets the brightness to the given value.
#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
{ pkgs, ... }: { pkgs, ... }:
let let

View File

@ -1,3 +1,11 @@
# - ## Caffeine
#-
#- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
#-
#- - `caffeine-status` - Check if hypridle is running. (0/1)
#- - `caffeine-status-icon` - Check if hypridle is running. (icon)
#- - `caffeine` - Toggle hypridle.
{ pkgs, ... }: { pkgs, ... }:
let let
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" '' caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''

View File

@ -1,3 +1,11 @@
# - ## Hyprfocus
#-
#- A simple script to toggle focus on few windows in Hyprland.
#- (disable gaps, border, shadow, opacity, etc.)
#-
#- - `hyprfocus-on` - Enable hyprfocus.
#- - `hyprfocus-off` - Disable hyprfocus.
#- - `hyprfocus-toggle` - Toggle hyprfocus.
{ pkgs, ... }: { pkgs, ... }:
let let
hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on" hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"

View File

@ -1,3 +1,10 @@
# - ## Hyprpanel
#-
#- Quick scripts to toggle, reload and kill hyprpanel.
#-
#- - `hyprpanel-toggle` - Toggle hyprpanel.
#- - `hyprpanel-reload` - Reload hyprpanel.
#- - `hyprpanel-kill` - Kill hyprpanel.
{ pkgs, ... }: { pkgs, ... }:
let let
hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" '' hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" ''

View File

@ -1,3 +1,8 @@
# - ## Nerdfont FZF
#-
#- This module provides a script to search for Nerd Fonts icons using fzf.
#-
#- - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
homedir = config.home.homeDirectory; homedir = config.home.homeDirectory;

View File

@ -1,3 +1,12 @@
# - ## Night-Shift
#-
#- Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
#-
#- - `night-shift-on` activates Night-Shift.
#- - `night-shift-off` deactivates Night-Shift.
#- - `night-shift` toggles Night-Shift.
#- - `night-shift-status` checks if Night-Shift is active. (0/1)
#- - `night-shift-status-icon` checks if Night-Shift is active. (icon)
{ pkgs, ... }: { pkgs, ... }:
let let

View File

@ -1,6 +1,15 @@
# - ## Nixy
#-
#- Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, upgrade, update, collect garbage, clean boot menu, etc.
#-
#- - `nixy` - UI wizard to manage the system.
#- - `nixy rebuild` - Rebuild the system.
#- - `nixy ...` - ... see the script for more commands.
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
nixy = pkgs.writeShellScriptBin "nixy" '' nixy = pkgs.writeShellScriptBin "nixy"
# bash
''
function exec() { function exec() {
$@ $@
} }
@ -10,11 +19,12 @@ let
# "icon;name;command"[] # "icon;name;command"[]
apps=( apps=(
";Rebuild;nixy rebuild" "󰑓;Rebuild;nixy rebuild"
";Upgrade;nixy upgrade" "󰦗;Upgrade;nixy upgrade"
";Update;nixy update" "󰚰;Update;nixy update"
";Collect Garbage;nixy gc" ";Collect Garbage;nixy gc"
";Clean Boot Menu;nixy cb" "󰍜;Clean Boot Menu;nixy cb"
" ;Hyprland Keybindings;nvim ${config.var.configDirectory}/docs/KEYBINDINGS-HYPRLAND.md"
) )
# Apply default icons if empty: # Apply default icons if empty:

View File

@ -1,5 +1,9 @@
# - ## Screenshot
#-
#- This module provides a script to take screenshots using `hyprshot` and `swappy`.
#-
#- - `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
{ pkgs, ... }: { pkgs, ... }:
let let
screenshot = pkgs.writeShellScriptBin "screenshot" '' screenshot = pkgs.writeShellScriptBin "screenshot" ''
if [[ $2 == "swappy" ]];then if [[ $2 == "swappy" ]];then

View File

@ -1,3 +1,11 @@
# - ## Sound
#-
#- This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
#-
#- - `sound-up` increases the volume by 5%.
#- - `sound-down` decreases the volume by 5%.
#- - `sound-set [value]` sets the volume to the given value.
#- - `sound-toggle` toggles the mute state of the default audio sink.
{ pkgs, ... }: { pkgs, ... }:
let let

View File

@ -1,3 +1,10 @@
# - ## System
#-
#- Usefull quick scripts
#-
#- - `menu` - Open wofi with drun mode.
#- - `powermenu` - Open power dropdown menu.
#- - `lock` - Lock the screen.
{ pkgs, ... }: { pkgs, ... }:
let let