Skip to content

❄️ NixOs / Hyprland rice with Home-Manager ❄️

License

Notifications You must be signed in to change notification settings

agluck91/nixos-config

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Frost-Phoenix's Flakes



Screeenshot last updated 2024-01-12

🖼️ Gallery

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

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

    First make sure to read the install script, it isn't long. And make sure to execute it as root

    Execute and follow the installation script :

    sudo ./install.sh
    

    You will need to change the git account yourself in ./modules/git/default.nix

       programs.git = {
          ...
          userName = "Frost-Phoenix";
          userEmail = "[email protected]";
          ...
       };
    
  4. Reboot

    After rebooting, you'll be greeted by swaylock prompting for your password, with the wallpaper in the background.

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 wallpapers.

  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. Build the system

    Lastly, it will build the system, which includes both the flake config and home-manager config.

👥 Credits

Other dotfiles that I learned / copy from:

About

❄️ NixOs / Hyprland rice with Home-Manager ❄️

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Nix 66.3%
  • JavaScript 20.0%
  • Shell 11.7%
  • CSS 2.0%