Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryanccn/nyoom
A small Firefox userchrome manager
https://github.com/ryanccn/nyoom
cli firefox firefox-css firefox-userchrome hacktoberfest nix-flake rust
Last synced: 2 months 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 (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-06T05:29:39.000Z (3 months ago)
- Last Synced: 2024-10-06T07:54:32.919Z (3 months ago)
- Topics: cli, firefox, firefox-css, firefox-userchrome, hacktoberfest, nix-flake, rust
- Language: Rust
- Homepage:
- Size: 2.04 MB
- Stars: 19
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nyoom
Firefox userchrome manager, written in [Rust](https://rust-lang.org/).
![Demo](/.github/demo.gif)
## Install
### Nix
#### Flake
```nix
{
inputs = {
nyoom = {
url = "github:ryanccn/nyoom";
inputs.nixpkgs.follows = "nixpkgs";
};
};outputs = inputs: {
# ...
environment.systemPackages = with pkgs; [
inputs.nyoom.packages.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 amd64 (Apple Silicon)
- macOS aarch64 (Intel)
- Linux amd64 (statically linked musl)
- Linux aarch64 (statically linked musl)
- Windows amd64 (dynamically linked MSVC)## Usage
### Adding a userchrome
nyoom specifies sources for userchromes in a special format.
- **GitHub**: `github:/[#ref]`
- **Codeberg**: `codeberg:/[#ref]`
- **GitLab**: `gitlab:/[#ref]`
- **Path** to a directory: `path:`
- **URL** (to a known archive format of `.zip`, `.tar`, `.tgz`, `.tar.gz`, `.tar.xz`, `.tar.bz2` or `.tar.zst`): `url:` or just ``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 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
[![xkcd 2959: Beam of Light](https://imgs.xkcd.com/comics/beam_of_light.png)](https://xkcd.com/2959)