Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bandithedoge/nixpkgs-firefox-darwin
Nixpkgs overlay with Firefox binary builds for macOS
https://github.com/bandithedoge/nixpkgs-firefox-darwin
Last synced: 3 months ago
JSON representation
Nixpkgs overlay with Firefox binary builds for macOS
- Host: GitHub
- URL: https://github.com/bandithedoge/nixpkgs-firefox-darwin
- Owner: bandithedoge
- Created: 2021-12-12T17:28:12.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T00:49:09.000Z (7 months ago)
- Last Synced: 2024-04-14T01:31:54.656Z (7 months ago)
- Language: Shell
- Size: 165 KB
- Stars: 36
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-nix - nixpkgs-firefox-darwin - Automatically updated Firefox binary packages for macOS. (Overlays / Webinterface)
README
# nixpkgs-firefox-darwin
The Nixpkgs repository has long struggled with broken `firefox`, `librewolf`, and `floorp` packages on Darwin. Unfortunately, the `-bin` variants do not offer any support for Darwin. To address this issue, this overlay has been created, aiming to provide `-bin` packages for Firefox, Librewolf, and Floorp, generated directly from official builds.
## How to use it
Minimal configuration example using flakes, nix-darwin and home-manager:
```nix
# flake.nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
darwin.url = "github:lnl7/nix-darwin/master";
home-manager.url = "github:nix-community/home-manager";
nixpkgs-firefox-darwin.url = "github:bandithedoge/nixpkgs-firefox-darwin";
};outputs = { self, darwin, home-manager, nixpkgs, ... }@inputs: {
darwinConfigurations."machine" = let
# replace this with your username, obviously
username = "bandithedoge";
in darwin.lib.darwinSystem {
system = "x86_64-darwin";
modules = [
home-manager.darwinModules.home-manager
{
nixpkgs.overlays = [ inputs.nixpkgs-firefox-darwin.overlay ];
home-manager.users.${username} = {
programs.firefox = {
enable = true;# IMPORTANT: use a package provided by the overlay (ends with `-bin`)
# see overlay.nix for all possible packages
package = pkgs.firefox-bin; # Or use pkgs.librewolf for Librewolf or pkgs.floorp-bin for Floorp
};
};
}
];
};
};
}
```## How it works
The entire overlay is controlled by a script that fetches release information from Mozilla and puts the version, URL and SHA256 in a JSON file. The JSON gets imported by a Nix expression and the values are used to build a derivation. The script can be run manually or with a GitHub action.