Disclaimer: This is not a community framework or distribution. It's a private configuration and an ongoing experiment to feel out NixOS. I make no guarantees that it will work out of the box for anyone but myself. It may also change drastically and without warning.
These are my dotfiles for configuring my system. Feel free to use them as you like.
These are configuration files for different hosts/machines which includes my workstation and my macbook.
For workstation: host, after installing the base NixOS, you can run the following:
nix-env -iA nixpkgs.git
git clone https://github.com/shekohex/dotfiles.git ~/.dotfiles && cd ~/.dotfiles
sudo nixos-rebuild --extra-experimental-features 'nix-command flakes' switch --flake .#workstationFor macbook: host, you need to follow these to steps:
- Install Nix (skip if already installed):
sh <(curl -L https://nixos.org/nix/install)
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf- Install the dotfiles:
nix-env -iA nixpkgs.git
git clone https://github.com/shekohex/dotfiles.git ~/.dotfiles && cd ~/.dotfiles
nix build .#darwinConfigurations.macbook.system
./result/sw/bin/darwin-rebuild switch --flake .#macbookSince darwin is now added to the PATH, you can build it from anywhere in the system. In this example it is rebuilt from inside the flake directory:
darwin-rebuild switch --flake .#This will rebuild the configuration and automatically activate it.
The hex input pins a commit from /home/shady/github/shekohex/hex.
After committing new HEX changes, run nix flake update hex here to advance
that pin. The overlay exposes dictation
as pkgs.hex-voice, preserving the unrelated pkgs.hex hexdump utility.
modules/programs/hex.nix imports HEX's Home Manager module; workstation enables
it with programs.hex.enable = true.
cd ~/.dotfiles
sudo nixos-rebuild switch --flake .#workstationRebuild builds HEX automatically when its inputs change and reuses the cached package otherwise. No separate app build or install command is needed. In-app update checks and downloads stay disabled for Nix installs.
Configure programs.hex.autostart and programs.hex.initialSettings in
modules/programs/hex.nix or override them for workstation. Initial settings
seed only when no saved settings exist; later app edits survive rebuilds.
They can seed shortcuts, volume, models, cloud providers, cleanup instructions,
per-app modes, and context/OCR. Keep API keys outside the Nix store; use private
key-file paths or environment variable names.
GNOME integration installs and enables hex@shekohex.dev. Log out and back in
after first installation, then open hex app. HEX starts automatically with
the graphical session. Cloud transcription requires no local model download;
for local transcription, run hex model install. Choose an unused shortcut:
GNOME may already reserve Alt-Space. Run hex start when ready to dictate.
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.