KO
|
EN
gitlite — search
Search
#typescript
#ai-agents
#ai
#dsh-plugin
#deepseek-harness
#open-source
#cli
#claude-code
#codex
#developer-tools
#react
#windows
hjem-impure
★ 41
Open GitHub ↗
A trivial solution to your nix dots woes
Download README (.md)
Explore Similar Repositories
ProxyChecker
:
HTTP, SOCKS4, SOCKS5 proxies checker with gui style
resting-rigid-bodies
:
Code and resources for "Putting Rigid Bodies to Rest"
claude-code-zellij-status
:
Monitor Claude Code activity across multiple Zellij panes in real-time via zjstatus.
cclog
:
No description available.
Nitro-T
:
Nitro-T is a family of text-to-image diffusion models focused on highly efficient training.
// repository documentation
Was this content helpful?
★ 0
(0 ratings)
Select Rating:
★
★
★
★
★
Submit Feedback
Recent Feedback
×
Download README
Do you want to download the
README.md
file for
hjem-impure
?
Download (.md)
# Hjem impure Hjem impure is a [hjem module](https://github.com/feel-co/hjem) which provides a script which: - Replaces every hjem symlink with writable normal files and directories - Links particular symlinks back into your nixos configuration | [advanced installation](#advanced-installation) No more waiting for nixos-rebuilds to modify your dots. Ever. https://github.com/user-attachments/assets/974e4f9e-0156-4ec1-b7ca-fcf9e4eb7e5b ### Installation First, add hjem-impure to your flake inputs ```nix { inputs = { hjem-impure = { url = "github:Rexcrazy804/hjem-impure"; # these are only required for internal tests, # hence you can set em to nothing inputs.nixpkgs.follows = ""; inputs.hjem.follows = ""; }; }; } ``` Next, add hjem-impure as an extraModule for hjem and enable hjem impure for your desired user ```nix # assuming that you pass inputs as specialArgs {inputs, ...}: { # imports the hjemModule hjem.extraModules = [inputs.hjem-impure.hjemModules.default]; # enable hjem-impure hjem.users.${myUserName}.impure.enable = true; } ``` And that's it, after you rebuild your configuration you should have the `hjem-impure` executable. ### Advanced Installation Hjem impure offers the ability to optionally relink certain symlinks created by hjem back into your nixos configuration, granted that there exists a common dotsDir from which each file/dir is `source`'d ```nix {config, ...}: { hjem.users.${myUserName} = { impure = { # enable hjem-impure enable = true; # pure path to dotsFolder AS STRING dotsDir = "${./myDotsFolder}"; # impure absolute path to dots folder dotsDirImpure = "/home/myuser/nixos/myDotsFolder"; }; xdg.config.files = let # aforementioned common dots dots = config.hjem.users.${myUserName}.impure.dotsDir; in { # it is a requirement to use `dots` for the relinking feature "hypr/hyprland.conf".source = dots + "/hyprland/hyprland.conf"; "hypr/hypridle.conf".source = dots + "/hyprland/hypridle.conf"; }; }; } ``` for a fleshed out configuration see [`nix/test/config.nix`](nix/test/config.nix) ### Usage simply run the below to make your hjem links modifiable and if configured, overwrite with symlinks to your nixos configuration. ``` hjem-impure ``` The next nixos-rebuild will overwrite hjem-impure's changes. Alternatively you can also re-create hjem's immutable links using ```bash systemd-tmpfiles --user --create ``` or if you use smfh as the linker ```bash systemctl start hjem-activate@userName.service ``` > [!TIP] > If running on darwin system with `smfh` linker (default), use > ``` > launchctl start org.hjem.activate > ``` ### How does it work exactly? hjem impure module simply reads information hjem uses to plant files in place. This information is converted into a shell script that either replaces the symlinks with symlinks to the nixos configuration, or makes a writable copy of the file or directory. ### Acknowledgements - [hjem-rum](https://github.com/snugnug/hjem-rum) my reference for creating this module - jade's [use nix less](https://jade.fyi/blog/use-nix-less/) sparked the idea for this and I've gratefully used their script as a base for `hjem-impure`