132 lines
3.9 KiB
Nix
132 lines
3.9 KiB
Nix
{
|
|
description = "Linux File Converter Addon - File conversion from context menu";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs = {
|
|
nixpkgs,
|
|
flake-utils,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (system: let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
linux-file-converter-addon = pkgs.callPackage ./package.nix {};
|
|
in {
|
|
packages = {
|
|
default = linux-file-converter-addon;
|
|
linux-file-converter-addon = linux-file-converter-addon;
|
|
};
|
|
|
|
apps = {
|
|
default = {
|
|
type = "app";
|
|
program = "${linux-file-converter-addon}/bin/linux-file-converter-addon";
|
|
};
|
|
test = {
|
|
type = "app";
|
|
program = "${pkgs.callPackage ./test.nix {}}/bin/test-linux-file-converter-addon";
|
|
};
|
|
};
|
|
|
|
devShells.default = pkgs.callPackage ./shell.nix {};
|
|
|
|
# For NixOS modules
|
|
nixosModules.default = {
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.services.linux-file-converter-addon;
|
|
in {
|
|
options.services.linux-file-converter-addon = {
|
|
enable = mkEnableOption "Linux File Converter Addon";
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = linux-file-converter-addon;
|
|
description = "The linux-file-converter-addon package to use";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
environment.systemPackages = [cfg.package];
|
|
|
|
# Ensure nautilus-python is available for Nautilus integration
|
|
environment.pathsToLink = [
|
|
"/share/nautilus-python"
|
|
"/share/nemo/actions"
|
|
"/share/kio/servicemenus"
|
|
];
|
|
};
|
|
};
|
|
|
|
# For home-manager modules
|
|
homeManagerModules.default = {
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.programs.linux-file-converter-addon;
|
|
in {
|
|
options.programs.linux-file-converter-addon = {
|
|
enable = mkEnableOption "Linux File Converter Addon";
|
|
|
|
package = mkOption {
|
|
type = types.package;
|
|
default = linux-file-converter-addon;
|
|
description = "The linux-file-converter-addon package to use";
|
|
};
|
|
|
|
extraConfig = mkOption {
|
|
type = types.attrs;
|
|
default = {};
|
|
description = "Extra configuration for the addon";
|
|
example = {
|
|
automaticUpdates = false;
|
|
showPatchNotes = true;
|
|
timeInNames = true;
|
|
};
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
home.packages = [cfg.package];
|
|
|
|
# Create config file if extraConfig is provided
|
|
xdg.configFile."linux-file-converter-addon/config.json" = mkIf (cfg.extraConfig != {}) {
|
|
text = builtins.toJSON (
|
|
{
|
|
automaticUpdates = false;
|
|
showPatchNotes = true;
|
|
showPatchNoteButton = true;
|
|
showConfigHint = true;
|
|
convertToSquares = true;
|
|
timeInNames = true;
|
|
convertFromOctetStream = false;
|
|
showDummyOption = true;
|
|
displayFinishNotification = true;
|
|
alwaysCreateNemoAction = false;
|
|
alwaysCreateDolphinServicemenu = false;
|
|
convertToLandscapeWallpapers = true;
|
|
convertToPortraitWallpapers = true;
|
|
}
|
|
// cfg.extraConfig
|
|
);
|
|
};
|
|
};
|
|
};
|
|
})
|
|
// {
|
|
# Overlay for adding to nixpkgs
|
|
overlays.default = final: prev: {
|
|
linux-file-converter-addon = final.callPackage ./package.nix {};
|
|
};
|
|
};
|
|
}
|