- You must be running on NixOS, version 23.11+.
- The
ownixfolder (this repo) is expected to be in your home directory. - You must have installed NIXOS using GPT parition with booting with UEFI.
- 500MB minimum /boot partition required.
- Systemd-boot is what is supported.
- For GRUB you will have to brave the internet for a how-to.
☺️ - Manually editing your host specific files.
- The host is the specific computer your installing on.
- We are using the latest and greatest audio solution for Linux. Not to mention you will have media and volume controls in the notification center available in the top bar.
- Using Hyprland for increased elegance, functionality, and efficiency.
- No massive NeoVIM project here. This is my simple, easy to understand, yet incredible NeoVIM setup. With language support already added in.
- You can define separate settings for different host machines and users.
- Easily specify extra packages for your users in the
modules/core/user.nixfile. - Easy to understand file structure and simple, but encompassing, configuration.
- The entire idea of ownix is to make NixOS an approachable space.
- NixOS is actually a great community that you will want to be a part of.
- Many people who are patient and happy to spend their free time helping you are running similar NixOS setups.
- Feel free to reach out on the Discord for any help with anything.
Please do yourself a favor and
- You can search the Nix Packages & Options pages for what a package may be named or if it has options available that take care of configuration hurdles you may face.
- To add a package there are the sections for it in
modules/core/packages.nixandmodules/core/user.nix. One is for programs available system wide and the other for your users environment only.
- Please feel free to raise an issue on the repo, please label a feature request with the title beginning with [feature request], thank you!
- Contact us on Discord as well, for a potentially faster response.
Below are the keybindings for Hyprland, formatted for easy reference.
$modifier + Return→ Launchterminal$modifier + /→ List keybinds$modifier + Shift + Return→ Launchrofi-launcher$modifier + Shift + W→ Openweb-search$modifier + Alt + W→ Openwallsetter$modifier + Shift + N→ Runswaync-client -rs$modifier + W→ LaunchWeb Browser$modifier + Y→ Openkittywithyazi$modifier + E→ Openemopicker9000$modifier + Shift + S→ Take a screenshot$modifier + D→ OpenDiscord$modifier + O→ LaunchOBS Studio$modifier + C→ Runhyprpicker -a$modifier + G→ OpenGIMP$modifier + V→ Show clipboard history viacliphist$modifier + T→ Toggle terminal withpypr$modifier + M→ Openpavucontrol
$modifier + Q→ Kill active window$modifier + P→ Toggle pseudo tiling$modifier + Shift + I→ Toggle split mode$modifier + F→ Toggle fullscreen$modifier + Shift + F→ Toggle floating mode$modifier + Alt + F→ Float all windows$modifier + Shift + C→ Exit Hyprland
$modifier + Shift + ← / → / ↑ / ↓→ Move window left/right/up/down$modifier + Shift + H / L / K / J→ Move window left/right/up/down$modifier + Alt + ← / → / ↑ / ↓→ Swap window left/right/up/down$modifier + Alt + 43 / 46 / 45 / 44→ Swap window left/right/up/down
$modifier + ← / → / ↑ / ↓→ Move focus left/right/up/down$modifier + H / L / K / J→ Move focus left/right/up/down
$modifier + 1-10→ Switch to workspace 1-10$modifier + Shift + Space→ Move window to special workspace$modifier + Space→ Toggle special workspace$modifier + Shift + 1-10→ Move window to workspace 1-10$modifier + Control + → / ←→ Switch workspace forward/backward
Alt + Tab→ Cycle to next windowAlt + Tab→ Bring active window to top
⚠️ IMPORTANT: These installation methods are for NEW INSTALLATIONS ONLY. If you already have this setup installed and want to upgrade to v2.4, see the Upgrade Instructions below. Note: Do NOT use upgrade script at this time. It will be restored later.
⬇️ Install with script (NEW INSTALLATIONS ONLY)
This is the easiest and recommended way of starting out for new installations. The script is not meant to allow you to change every option that you can in the flake or help you install extra packages. It is simply here so you can get my configuration installed with as little chances of breakages and then fiddle to your hearts content!
⚠️ WARNING: This script will completely replace any existing~/ownixdirectory. Do NOT use this if you already have ownix installed and configured.
Simply copy this and run it:
nix-shell -p git curl pciutils
Then:
sh <(curl -L https://github.com/ownvoy/ownix/raw/main/install-ownix.sh)
🦽 Manual install process:
- Run this command to ensure Git & Vim are installed:
nix-shell -p git vim
- Clone this repo & enter it:
cd && git clone https://github.com/ownvoy/ownix.git ~/ownix
cd ~/ownix
You can still run the `install.sh` script if you want to.
- You should stay in this folder for the rest of the install
- Create the host folder for your machine(s) like so:
cp -r hosts/default hosts/<your-desired-hostname>
git add .
-
Edit
hosts/<your-desired-hostname>/variables.nix. -
Edit
flake.nixand fill in your username, machine profile, and hostname. -
Generate your hardware.nix like so:
nixos-generate-config --show-hardware-config > hosts/<your-desired-hostname>/hardware.nix
- Run this to enable flakes and install the flake replacing hostname with
profile. I.e.
intel,nvidianvidia-laptop, orvm
NIX_CONFIG="experimental-features = nix-command flakes"
sudo nixos-rebuild switch --flake .#profile
Now when you want to rebuild the configuration you have access to an alias
called fr that will rebuild the flake and you do not have to be in the
ownix folder for it to work.
IMPORTANT: The legacy automated upgrade shell scripts are no longer shipped in this checkout.
If you are upgrading an older ownix installation, treat it as a manual migration:
- Back up your existing
~/ownixcheckout first. - Copy your host-specific settings into the current
hosts/<hostname>/layout. - Regenerate
hardware.nixfor the target machine if needed. - Rebuild explicitly with
sudo nixos-rebuild switch --flake .#<hostname>.
Historical upgrade notes are still kept under modules/src/ for reference, but
the old scripted upgrade and revert commands are not part of this repository
state anymore.
Thank you for all your assistance
- Jakookit https://github.com/jakookit
- Justaguylinux https://github.com/drewgrif
- Jerry Starke https://github.com/JerrySM64