-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
42 additions
and
7 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,67 @@ | ||
# hover-rs | ||
|
||
Tired of programs messing your precious $HOME ? hover-rs is for you! | ||
<h1> | ||
<p align="center"> | ||
hover-rs - Protective home overlay | ||
</p> | ||
</h1> | ||
|
||
<h4> | ||
<p align="center"> | ||
<i>Tired of programs messing your precious $HOME ? hover-rs is for you!</i> | ||
</p> | ||
</h4> | ||
|
||
<p align="center"> | ||
<img src="./.github/Designer.jpeg" width="274"> | ||
</p> | ||
|
||
|
||
--- | ||
|
||
hover-rs uses Linux's user namespaces to mount a volatile overlayfs over your $HOME. Any write or delete operation is redirected to the upper layer, while your $HOME is left intact. | ||
hover-rs uses Linux's user namespaces to mount a volatile overlayfs over your | ||
$HOME. Any write or delete operation is redirected to the upper layer, while | ||
your $HOME is left intact. Read more in my blogpost: [https://ayats.org/blog/hover](https://ayats.org/blog/hover). | ||
|
||
## Requirements | ||
|
||
Your kernel must have namespaces enabled: | ||
Your kernel must have user namespaces and overlayfs enabled: | ||
|
||
``` | ||
$ zcat /proc/config.gz | rg CONFIG_NAMESPACES | ||
$ zcat /proc/config.gz | grep -e NAMESPACES= -e USER_NS= -e OVERLAY_FS= | ||
CONFIG_NAMESPACES=y | ||
CONFIG_USER_NS=y | ||
CONFIG_OVERLAY_FS=m | ||
``` | ||
|
||
(probably more hidden requirements...) | ||
## Static binaries | ||
|
||
CI builds statically-linked binaries (with musl). You can use download and use | ||
them directly: | ||
|
||
``` | ||
$ curl -OL https://github.com/viperML/hover-rs/releases/download/latest/hover-static-x86_64-linux | ||
$ chmod +x hover-static-x86_64-linux | ||
$ ./hover-static-x86_64-linux | ||
``` | ||
|
||
## Building | ||
|
||
With nix: | ||
|
||
``` | ||
nix build github:viperML/hover-rs | ||
``` | ||
|
||
With guix: | ||
|
||
``` | ||
guix build -L . | ||
``` | ||
|
||
If you bring your own cargo+rustc, just `cargo build`. | ||
|
||
## Attribution | ||
|
||
Inspired by https://github.com/max-privatevoid/hover , which uses fuse instead of namespaces. | ||
Inspired by | ||
[https://github.com/max-privatevoid/hover](https://github.com/max-privatevoid/hover), | ||
which uses fuse-overlayfs. |