Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process.

Related tags

GUI envfs
Overview

Envfs

Fuse filesystem that returns symlinks to executables based on the PATH of the requesting process. This is useful to execute shebangs on NixOS that assume hard coded locations in locations like /bin or /usr/bin etc.

Demo

$ ls -l /usr/bin/{bash,python}
lr----x--t 0 root  1 Jan  1970  /usr/bin/bash -> /nix/store/j37555sj2w3xsql3f8qrwbaim7pv67hg-bash-interactive-4.4-p23/bin/bash
lr----x--t 0 root  1 Jan  1970  /usr/bin/python -> /home/joerg/.nix-profile/bin/python
$ cat > foo.py <<EOF
#!/usr/bin/python
print("hello world")
EOF
$ chmod +x ./foo.py
$ ./foo.py
hello world

Installation in NixOS

Choose one of the following methods:

niv (Current recommendation)

First add it to niv:

$ niv add Mic92/envfs

Then add the following to your configuration.nix in the imports list:

{
  imports = [ "${(import ./nix/sources.nix).envfs}/modules/envfs.nix" ];
}

nix-channel

As root run:

$ nix-channel --add https://github.com/Mic92/envfs/archive/main.tar.gz envfs
$ nix-channel --update

Then add the following to your configuration.nix in the imports list:

{
  imports = [ <envfs/modules/envfs.nix> ];
}

fetchTarball

Add the following to your configuration.nix:

{
  imports = [ "${builtins.fetchTarball "https://github.com/Mic92/envfs/archive/main.tar.gz"}/modules/envfs.nix" ];
}

or with pinning:

{
  imports = let
    # replace this with an actual commit id or tag
    commit = "f2783a8ef91624b375a3cf665c3af4ac60b7c278";
  in [ 
    "${builtins.fetchTarball {
      url = "https://github.com/Mic92/envfs/archive/${commit}.tar.gz";
      # replace this with an actual hash
      sha256 = "0000000000000000000000000000000000000000000000000000";
    }}/modules/envfs.nix"
  ];
}

Flakes

If you use experimental nix flakes support:

{
  inputs.envfs.url = "github:Mic92/envfs";
  inputs.envfs.inputs.nixpkgs.follows = "nixpkgs";
  
  outputs = { self, nixpkgs, envfs }: {
    # change `yourhostname` to your actual hostname
    nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
      # change to your system:
      system = "x86_64-linux";
      modules = [
        ./configuration.nix
        envfs.nixosModules.envfs
      ];
    };
  };
}

Build and run from source

$ nix-build
$ sudo ./result/bin/envfs /usr/bin
$ mount --bind /usr/bin /bin
Comments
  • add remount option which ignores the request

    add remount option which ignores the request

    So sometimes during nixos-rebuild switch it calls systemctl reload usr-bin.mount since systemd marks all mount units as reloadable (which sounds questionable for FUSE mounts, but there's no fstab option to disable that afaik). When systemd reloads a mount it calls the mount program again with remount and expects it to communicate with the existing mount to change the options, which causes failures for envfs which does not support that

    Let me know if there is a better way to handle this, but I've basically just patched envfs to log and ignore all remount requests to make those unit errors go away

    opened by lilyinstarlight 3
  • Bump libc from 0.2.93 to 0.2.125

    Bump libc from 0.2.93 to 0.2.125

    Bumps libc from 0.2.93 to 0.2.125.

    Release notes

    Sourced from libc's releases.

    0.2.125

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.124...0.2.125

    0.2.108

    What's Changed

    New Contributors

    ... (truncated)

    Commits
    • d7abb02 Auto merge of #2771 - Amanieu:release-0.2.125, r=Amanieu
    • 5905f46 Bump version to 0.2.125
    • a31c793 Auto merge of #2540 - kraj:rv32-musl, r=Amanieu
    • ae3414c Auto merge of #2769 - jessicah:haiku, r=Amanieu
    • a7cba7c haiku: improve platform compatibility
    • 391a9b2 Add riscv32 support for musl C library based linux platforms
    • 3b5fcd6 Auto merge of #2770 - m-ou-se:freebsd-futex, r=Amanieu
    • 27ad069 Auto merge of #2767 - carbotaniuman:patch-1, r=Amanieu
    • d747e7d Auto merge of #2765 - zhaixiaojuan:master, r=Amanieu
    • d31cbb1 Auto merge of #2751 - guyru:master, r=Amanieu
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 3
  • Bump log from 0.4.14 to 0.4.17

    Bump log from 0.4.14 to 0.4.17

    Bumps log from 0.4.14 to 0.4.17.

    Changelog

    Sourced from log's changelog.

    [0.4.17] - 2022-04-29

    • Update kv_unstable internal dependencies.

    [0.4.16] - 2022-03-22

    • Fix a conflict with unqualified Option use in macros.

    [0.4.15] - 2022-02-23

    • Silence a warning about the deprecated spin_loop_hint.
    • Relax ordering in the atomic set_max_level call.
    • Add thumbv4t-none-eabi to targets that don't support atomics
    • Allow levels to be iterated over.
    • Implement Log on some common wrapper types.
    • Improvements to test coverage.
    • Improvements to documentation.
    • Add key-value support to the log! macros.
    • Tighten kv_unstable internal dependencies so they don't bump past their current alpha.
    • Add a simple visit API to kv_unstable.
    • Support NonZero* integers as values in structured logging
    • Support static strings as keys in structured logging
    Commits
    • 7fb28c3 Merge pull request #508 from KodrAus/cargo/0.4.17
    • 518821e prepare for 0.4.17 release
    • b7e8147 Merge pull request #506 from KodrAus/chore/enabled-requirement
    • c9049be make notes for implementors consistent
    • c9284a6 note that Log implementors should call enabled
    • 6c3cd4a Merge pull request #504 from KodrAus/feat/128bit-refs
    • 20a5321 Merge pull request #505 from hellow554/patch-1
    • 3ad4611 fix markdown links in lib.rs
    • 9efaf02 run fmt
    • 6c0a24c add safety comments to the by-ref transmute for non-zero nums
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 3
  • Bump libc from 0.2.86 to 0.2.88

    Bump libc from 0.2.86 to 0.2.88

    Bumps libc from 0.2.86 to 0.2.88.

    Release notes

    Sourced from libc's releases.

    0.2.88

    Bump patch version to 0.2.88.

    0.2.87

    Bump patch version to 0.2.87.

    Commits
    • fc51a0f Auto merge of #2103 - JohnTitor:version-bump, r=JohnTitor
    • 9abcbd1 Bump up libc version to 0.2.88
    • 990afbb Auto merge of #2102 - de-vri-es:linux-arm32-accept4, r=JohnTitor
    • b98d529 Re-add accept4 for Android on 32 bit ARM.
    • 3a7135f Auto merge of #2100 - TheDoctor314:gettid, r=JohnTitor
    • b719be4 Skip tests for gettid on musl
    • 2de2cb7 Add gettid() for Linux and Android
    • ec86e5f Auto merge of #2097 - cmusser:topic/dfly-waitid, r=JohnTitor
    • c334f98 dragonflybsd: expose waitid() prototype + related constants
    • 6b1e6a2 Auto merge of #2099 - JohnTitor:fix-doc-links, r=JohnTitor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 3
  • The Cargo.lock file is missing for the build

    The Cargo.lock file is missing for the build

    Hi! :)

    The import fails to build the derivation because it fails to locate the Cargo.lock. Do you know how to fix that?

    ERROR: The Cargo.lock file doesn't exist
    
    Cargo.lock is needed to make sure that cargoSha256 doesn't change
    when the registry is updated.
    
    builder for '/nix/store/l1w9wp7whiy7fjrics2b2wb0ha1bbrly-envfs-0.0.1-vendor.tar.gz.drv' failed with exit code 1
    cannot build derivation '/nix/store/w4v3rf1na2ddqmkfh68y5y3zxry3kdy2-envfs-0.0.1.drv': 1 dependencies couldn't be built
    cannot build derivation '/nix/store/lrn0mflw7mjnlyyjrfgzvc5ym2lv80i8-system-path.drv': 1 dependencies couldn't be built
    
    opened by NicolasGuilloux 3
  • use configured environment.usrbinenv and environment.binsh

    use configured environment.usrbinenv and environment.binsh

    This adjusts the fallback paths to use the exact options that the activation scripts use to determine what binaries need to go to /bin/sh and /usr/bin/env

    This shouldn't matter for most systems and is really mostly a nit, but this is just in case someone overrides those

    opened by lilyinstarlight 2
  • Bump libc from 0.2.136 to 0.2.137

    Bump libc from 0.2.136 to 0.2.137

    Bumps libc from 0.2.136 to 0.2.137.

    Release notes

    Sourced from libc's releases.

    0.2.137

    What's Changed

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.136...0.2.137

    Commits
    • a90993e Auto merge of #2982 - JohnTitor:release-0.2.137, r=JohnTitor
    • 2cd24f5 Prepare 0.2.137 releaase
    • 7e8f84c Auto merge of #2979 - redox-os:redox-0.2.136, r=JohnTitor
    • a8b7b9c Auto merge of #2974 - SteveLauC:dirname-basename, r=JohnTitor
    • 3cdabff Auto merge of #2978 - devnexen:musl_emscripten_msg_constants, r=JohnTitor
    • 3ee203b Auto merge of #2980 - JohnTitor:ignore-res-init-macos, r=JohnTitor
    • 8081c99 Ignore res_init test on macOS
    • 4ba884a follow-up on #2963, changing MSG* constant types for musl/emscripten.
    • f9d1f3e Add MADV constants for Redox
    • 5ffdbc6 expose dirname and basename
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 2
  • Bump cachix/cachix-action from 10 to 11

    Bump cachix/cachix-action from 10 to 11

    Bumps cachix/cachix-action from 10 to 11.

    Release notes

    Sourced from cachix/cachix-action's releases.

    cachix-action-v11

    • Allow pushFilter regex to start with a dash
    • Add pathsToPush and cachixArgs
    • Avoid pushing .drv.chroot files
    • Self-hosted runner support improvements
    Commits
    • 75d46f5 Merge pull request #123 from cachix/install-globally
    • b65c184 Allow installing cachix globally for self-hosted runners
    • b5a076c Merge pull request #122 from jfroche/feat/update-node
    • 9f3d463 feat: support node.js 16
    • f5f67ba avoid pushing .drv.chroot files
    • bfb6415 Merge pull request #115 from cachix/dependabot/github_actions/cachix/install-...
    • e90ca86 chore(deps): bump cachix/install-nix-action from 16 to 17
    • f1ca312 Merge pull request #110 from cachix/dependabot/github_actions/actions/checkout-3
    • 257f7af Merge pull request #112 from league/fix-typo
    • 06107da Merge pull request #113 from cachix/dependabot/npm_and_yarn/minimist-1.2.6
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 2
  • Bump cachix/install-nix-action from 16 to 18

    Bump cachix/install-nix-action from 16 to 18

    Bumps cachix/install-nix-action from 16 to 18.

    Release notes

    Sourced from cachix/install-nix-action's releases.

    install-nix-action-v18

    • Fix nodejs warnings & simplify maintenance
    • Use python3 when determining number of cores
    • Collapse installer log messages

    install-nix-action-v17

    Commits
    • daddc62 Merge pull request #144 from cachix/fix-ci
    • 8500bf7 try to fix act test
    • 4024cf0 Merge pull request #143 from ggreif/patch-1
    • 3d1155e readme: don't perpetuate old versions
    • e17a164 fix #140: python -> python3
    • 92d3622 Merge pull request #139 from sigprof/collapse-log-output
    • 6c5ba55 install-nix.sh: Collapse log messages
    • 451e611 Merge pull request #134 from lovesegfault/composite-action
    • 112054f refactor: replace with a simpler composite action
    • 24e801e Merge pull request #123 from cachix/dependabot/github_actions/actions/setup-go-3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
  • Bump libc from 0.2.93 to 0.2.135

    Bump libc from 0.2.93 to 0.2.135

    Bumps libc from 0.2.93 to 0.2.135.

    Release notes

    Sourced from libc's releases.

    0.2.135

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.134...0.2.135

    0.2.134

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.133...0.2.134

    0.2.133

    What's Changed

    ... (truncated)

    Commits
    • 88b2ed2 Auto merge of #2951 - MrCroxx:xx/bump-to-135, r=JohnTitor
    • 49c5419 Auto merge of #2954 - JohnTitor:ignore-i686-android, r=JohnTitor
    • 424a589 Ignore Android targets on bors
    • fe4f6d7 Auto merge of #2952 - SteveLauC:eaccess-on-freebsd-and-dragonfly, r=JohnTitor
    • 0f5ee7a Auto merge of #2953 - SteveLauC:faccessat-on-illumos-and-solaris, r=JohnTitor
    • aa915ee add faccessat on illumos/solaris and euidaccess on solaris
    • a36515f add eaccess on freebsd and dragonfly
    • 598b82f bump to 0.2.135
    • 8dcd556 Auto merge of #2941 - SteveLauC:statx-constants-on-gnu-linux, r=JohnTitor
    • f064e97 Auto merge of #2949 - MrCroxx:xx/android-xfs-super-magic, r=JohnTitor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
  • Bump libc from 0.2.93 to 0.2.134

    Bump libc from 0.2.93 to 0.2.134

    Bumps libc from 0.2.93 to 0.2.134.

    Release notes

    Sourced from libc's releases.

    0.2.134

    What's Changed

    New Contributors

    Full Changelog: https://github.com/rust-lang/libc/compare/0.2.133...0.2.134

    0.2.133

    What's Changed

    ... (truncated)

    Commits
    • a2281d3 Auto merge of #2932 - JohnTitor:0.2.134, r=JohnTitor
    • 1c2ffa7 Prepare 0.2.134 release
    • e507572 Auto merge of #2931 - thomcc:option-root, r=JohnTitor
    • 1d7029a Use ::Option and not Option for pthread_jit_write_callback_t
    • 362960c Auto merge of #2915 - JohnTitor:road-to-jammy, r=JohnTitor
    • a119fdb Downgrade to Ubuntu 20.04 on sparc64
    • 737c37d Update sparc64 Debian image
    • 0233e88 Do not import sys/sendfile.h
    • 63cc149 Ignore some items
    • 6c91229 Auto merge of #2925 - devnexen:cpuset_size_dfbsd, r=JohnTitor
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies rust 
    opened by dependabot[bot] 1
Releases(1.0.0)
  • 1.0.0(Dec 28, 2022)

    What's Changed

    • After a lot of testing, I think it is time for a release!

    New Contributors

    • @Mic92 made their first contribution in https://github.com/Mic92/envfs/pull/1
    • @wentasah made their first contribution in https://github.com/Mic92/envfs/pull/36
    • @lilyinstarlight made their first contribution in https://github.com/Mic92/envfs/pull/96

    Full Changelog: https://github.com/Mic92/envfs/commits/1.0.0

    Source code(tar.gz)
    Source code(zip)
Owner
Jörg Thalheim
Jörg Thalheim
Termbox is a library that provides minimalistic API which allows the programmer to write text-based user interfaces.

Termbox is a library that provides minimalistic API which allows the programmer to write text-based user interfaces.

null 1.9k Dec 22, 2022
A floating, tag-based window manager written in Rust

worm worm is a floating, tag-based window manager for X11. It is written in the Rust programming language, using the X11RB library. Install cargo buil

null 627 Jan 4, 2023
A simple GUI version of the pH calibration tool written in egui, based on the eframe template.

caliphui A simple GUI version of the pH calibration tool written in egui, based on the eframe template. Usage Native binaries are provided under relea

Peter Dunne 0 Dec 29, 2021
GUI based tool to sort and categorize images written in Rust

ImageSieve GUI based tool to sort out images based on similarity, categorize them according to their creation date and archive them in a target folder

Florian Fetz 67 Dec 14, 2022
An idiomatic GUI library inspired by Elm and based on gtk4-rs

An idiomatic GUI library inspired by Elm and based on gtk4-rs. Relm4 is a new version of relm that's built from scratch and is compatible with GTK4 an

Aaron Erhardt 722 Dec 31, 2022
A lightweight cross-platform system-monitoring fltk gui application based on sysinfo

Sysinfo-gui A lightweight cross-platform system-monitoring fltk gui application based on sysinfo. The UI design is inspired by stacer. The svg icons a

Mohammed Alyousef 22 Dec 31, 2022
Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4.

GTK QQ (WIP) Unofficial Linux QQ client, based on GTK4 and libadwaita, developed with Rust and Relm4. Screenshots Light Dark Note The two screenshots

Lomírus 198 Dec 24, 2022
Simple, thread-safe, counter based progress logging

?? proglog Documentation Crates.io This is a simple, thread-safe, count-based, progress logger. Synopsis proglog hooks into your existing log implemen

Seth 5 Nov 7, 2022
a day-planner/calendar app based on egui

Malakal Malakal is a day planner application. I crafted it because I was not able to find a comfortable calendar application for Linux. I myself have

null 5 Dec 21, 2022
A fast, zbus-based, permissively licensed AT-SPI library written in pure Rust!

AT-SPI for Rust Higher level, asynchronous Rust bindings to AT-SPI2, using zbus. Part of the Odilia screen reader project. Design Fully documented, wi

Odilia 12 Dec 31, 2022
Create dynamic grid-based layouts for egui

egui_grid Create dynamic grid layouts for egui. Grids are flexible, easy to create, with behavior similar to egui_extra's strip creation. They're comp

null 6 Apr 18, 2023
Generates a theme for Egui based on M3 color palettes.

M3-EGUI About M3-EGUI (material-egui) is a library that takes an input color and generates a color palette using M3 colors. It then applies those colo

ToastXC 5 Apr 23, 2024
The reference implementation of the Linux FUSE (Filesystem in Userspace) interface

libfuse About FUSE (Filesystem in Userspace) is an interface for userspace programs to export a filesystem to the Linux kernel. The FUSE project consi

null 4.2k Jan 4, 2023
Special FUSE filesystem to map /etc/resolv.conf to different files depending on Linux network namespace

Linux network namespaces allow separate networking environment for a group of processes (sharing uid or from a separate user). DNS settings (/etc/resolv.conf) are however shared between all those environments, which may be inconvenient in some setups.

Vitaly Shukela 2 May 16, 2022
A small in-memory filesystem using FUSE.

slabfs A small in-memory filesystem using FUSE. Running Simply run: RUST_LOG="slabfs=trace" cargo r -r -- <mountpoint> To suppress most log messages:

Carlos López 2 Jul 7, 2023
API bindings, CLI client and FUSE filesystem for Wiki.js written in Rust.

wikijs-rs API bindings, CLI client and FUSE filesystem for Wiki.js written in Rust. What's inside? Library: Rust bindings to Wiki.js's entire GraphQL

Sandro-Alessio Gierens 4 Sep 19, 2023
FUSE filesystem that provides FizzBuzz.txt(8 Exabyte)

FizzBuzzFS root@8a2db3fc6292:/# cd /mnt/FizzBuzz/ root@8a2db3fc6292:/mnt/FizzBuzz# ls -l total 9007199254740992 -rw-r--r-- 1 501 dialout 9223372036854

todesking 8 Oct 1, 2023
A small unix and windows lib to search for executables in PATH folders.

A small unix and windows lib to search for executables in path folders.

Robiot 2 Dec 25, 2021
the file filesystem: mount semi-structured data (like JSON) as a Unix filesystem

ffs: the file filesystem ffs, the file filessytem, let's you mount semi-structured data as a fileystem---a tree structure you already know how to work

Michael Greenberg 176 Dec 31, 2022
Prints the absolute path of all regular files in an unmounted btrfs filesystem image.

btrfs-walk-tut Prints the absolute path of all regular files in an unmounted btrfs filesystem image. Learning about btrfs: Btrfs Basics Series This re

Nishal Kulkarni 2 Feb 3, 2022