My NixOS and home-manager config using Flakes ❄️. I like to call it FruesOS.
Go to file
2024-01-13 18:14:27 +01:00
.github/assets update README 2024-01-11 22:03:32 +01:00
hosts/nixos update herdware-configuration 2023-12-14 23:31:35 +01:00
modules fix typo 2024-01-13 16:05:38 +01:00
pkgs remove execution right 2024-01-13 14:35:42 +01:00
wallpapers remove some wallpapers 2023-12-23 13:12:54 +01:00
flake.lock update 2023-12-25 18:56:44 +01:00
flake.nix add my own game to exported pkgs 2024-01-03 22:45:47 +01:00
install.sh made a proper install script 2023-12-15 23:12:51 +01:00
LICENSE update LICENCE 2024-01-01 22:25:31 +01:00
README.md update README 2024-01-13 18:14:27 +01:00


Frost-Phoenix's Flakes



Screeenshot last updated 2024-01-12

EXPAND



🗃️ Overview

📚 Layout

  • flake.nix base of the configuration
  • hosts 🌳 per-host configurations that contain machine specific configurations
    • nixos 🖥️ Default host
  • modules 🍱 modularized NixOS configurations
  • pkgs 📦 packages exported by my flake
  • wallpapers 🌄 wallpapers collection

📓 Components

NixOS + Hyprland
Window Manager Hyprland
Bar Waybar
Application Launcher wofi
Notification Daemon Mako
Terminal Emulator Kitty
Shell zsh + oh-my-zsh + Starship
Text Editor VSCodium + Neovim
network management tool NetworkManager + network-manager-applet
System resource monitor Btop
File Manager nemo + yazi
Fonts Nerd fonts
Color Scheme Catppuccin
Cursor Nordzy-cursors
Icons catppuccin-papirus-folders
Lockscreen Swaylock-effects
Image Viewer imv
Media Player mpv
Music Player audacious
Screenshot Software grimblast
Screen Recording wf-recorder
Clipboard wl-clipboard
Color Picker hyprpicker

📝 Shell aliases

Utils (EXPAND)
  • c \rightarrow clear
  • vim \rightarrow nvim
  • cat \rightarrow bat
  • nano \rightarrow micro
  • icat \rightarrow kitten icat
  • dsize \rightarrow du -hs
  • findw \rightarrow grep -rl
  • l \rightarrow eza --icons -a --group-directories-first -1
  • ll \rightarrow eza --icons -a --group-directories-first -1 --no-user --long
  • tree \rightarrow eza --icons --tree --group-directories-first
Nixos (EXPAND)
  • cdnix \rightarrow cd ~/nixos-config && codium ~/nixos-config
  • nix-shell \rightarrow nix-shell --run zsh
  • nix-switch \rightarrow sudo nixos-rebuild switch --flake ~/nixos-config#nixos
  • nix-switchu \rightarrow sudo nixos-rebuild switch --upgrade --flake ~/nixos-config#nixos
  • nix-flake-update \rightarrow sudo nix flake update ~/nixos-config#
  • nix-clean \rightarrow sudo nix-collect-garbage && sudo nix-collect-garbage -d && sudo rm /nix/var/nix/gcroots/auto/* && nix-collect-garbage && nix-collect-garbage -d
Git (EXPAND)
  • ga \rightarrow git add
  • gaa \rightarrow git add --all
  • gs \rightarrow git status
  • gb \rightarrow git branch
  • gm \rightarrow git merge
  • gpl \rightarrow git pull
  • gplo \rightarrow git pull origin
  • gps \rightarrow git push
  • gpso \rightarrow git push origin
  • gc \rightarrow git commit
  • gcm \rightarrow git commit -m
  • gch \rightarrow git checkout
  • gchb \rightarrow git checkout -b
  • gcoe \rightarrow git config user.email
  • gcon \rightarrow git config user.name
  • g \rightarrow lazygit

🛠️ Scripts

All the scripts are in modules/home/scripts/scripts/ and are exported as packages in modules/home/scripts/default.nix

extract.sh

Description: This script extract tar.gz archives in the current directory.

Usage: extract <archive_file>

compress.sh

Description: This script compress a file or a folder into a tar.gz archives wich is created in the current directory with the name of the chosen file or folder.

Usage: compress <file> or compress <folder>

toggle_blur.sh

Description: This script toggles the Hyprland blur effect. If the blur is currently enabled, it will be disabled, and if it's disabled, it will be turned on.

Usage: toggle_blur

toggle_oppacity.sh

Description: This script toggles the Hyperland oppacity effect. If the oppacity is currently set to 0.90, it will be set to 1, and if it's set to 1, it will be set to 0.90.

Usage: toggle_oppacity

maxfetch.sh

Description: This script is a modified verssion of the jobcmax/maxfetch script.

Usage: maxfetch

music.sh

Description: This script is for managing Audacious (music player). If Audacious is currently running, it will be killed (stoping the music); otherwise, it will start Audacious in the 8th workspace and resume the music.

Usage: music

runbg.sh

Description: This script runs a provided command along with its arguments and detaches it from the terminal. Handy for launching apps from the command line without blocking it.

Usage: runbg <command> <arg1> <arg2> <...>

⌨️ Keybinds

View all keybinds by pressing $mainMod F1 and wallpaper picker by pressing $mainMod w. By default $mainMod is the SUPER key.

Keybindings
  • 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 wofi || wofi --show drun
  • 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 wofi || wallpaper-picker
Screenshot
  • 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
Switch window focus
  • bind = $mainMod, left, movefocus, l
  • bind = $mainMod, right, movefocus, r
  • bind = $mainMod, up, movefocus, u
  • bind = $mainMod, down, movefocus, d
Switch workspace
  • 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
Switch window to workspace
  • 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
Window control
  • 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
Media and volume controls
  • 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
Mouse binding
  • bindm = $mainMod, mouse:272, movewindow
  • bindm = $mainMod, mouse:273, resizewindow

🚀 Installation

⚠️ Use this configuration at your own risk! ⚠️
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.
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.

  1. Install NixOs

    First install nixos using any graphical ISO image.

    Only been tested using the Gnome graphical installer and choosing the No desktop option durring instalation.

  2. Clone the repo

    git clone https://github.com/Frost-Phoenix/nixos-config
    cd nixos-config
    
  3. Install script

    Execute and follow the installation script :

    Make sure to execute as root

    sudo ./install.sh
    

👥 Credits

Other dotfiles that I learned / copy from: