https://github.com/ryanccn/nyoom
A small Firefox userchrome manager
https://github.com/ryanccn/nyoom
cli firefox firefox-css firefox-userchrome nix-flake rust
Last synced: 8 days ago
JSON representation
A small Firefox userchrome manager
- Host: GitHub
- URL: https://github.com/ryanccn/nyoom
- Owner: ryanccn
- License: gpl-3.0
- Created: 2023-07-13T08:53:26.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-13T02:46:15.000Z (13 days ago)
- Last Synced: 2025-04-13T03:40:03.606Z (13 days ago)
- Topics: cli, firefox, firefox-css, firefox-userchrome, nix-flake, rust
- Language: Rust
- Homepage:
- Size: 2.22 MB
- Stars: 33
- Watchers: 2
- Forks: 2
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nyoom
Firefox userchrome manager, written in [Rust](https://rust-lang.org/).

## Install
### Nix
#### Flake
```nix
{
inputs = {
nyoom = {
url = "github:ryanccn/nyoom";
inputs.nixpkgs.follows = "nixpkgs";
};
};outputs =
{ ... }@inputs:
{
# ...
environment.systemPackages = with pkgs; [
inputs.nyoom.packages.${pkgs.system}.nyoom
];
};
}
```#### Profile
```bash
$ nix profile install github:ryanccn/nyoom
```### GitHub Releases
You can download pre-built binaries from [GitHub Releases](https://github.com/ryanccn/nyoom/releases/latest). Builds are available for:
- macOS aarch64, x86_64
- Linux x86_64, aarch64 (static)
- Windows x86_64, aarch64 (dynamic, MSVC)## Usage
### Adding a userchrome
nyoom specifies sources for userchromes in a special format.
- **GitHub**: `github:/[#ref]`
- **Codeberg**: `codeberg:/[#ref]`
- **GitLab**: `gitlab:/[#ref]`
- **URL** (to a known archive format of `.zip`, `.tar`, `.tgz`, `.tar.gz`, `.tar.xz`, `.tar.bz2` or `.tar.zst`): `url:` or just ``
- **Path** to a directory: `path:`You can add a new userchrome by using the `nyoom add` command:
```bash
$ nyoom add
```Then, to specify config options specific to a userchrome, use the `nyoom config` commands:
```bash
$ nyoom config set # value is treated as string
$ nyoom config set --raw # value is treated as a JavaScript value
$ nyoom config unset
$ nyoom config list
```These config options will be automatically added to and removed from your `user-overrides.js` (preferred) or `user.js` upon switching.
### Switching
First, you need to configure the full path to where your Firefox profile is.
```bash
$ nyoom profile
```Then, run `nyoom switch ` to switch to a userchrome you previously added. nyoom will retrieve the source, install the contents of the userchrome in the `chrome` directory, inject settings into `user-overrides.js` or `user.js`, and update arkenfox (thereby syncing `user-overrides.js` with `user.js`) if arkenfox is detected.
You can run `nyoom update` on subsequent runs to reapply the userchrome using the latest data from remote, and use `nyoom switch out` to uninstall the userchrome.
## License
GPLv3
[](https://xkcd.com/2959)