Added more pdf viewer options

This commit is contained in:
isaacST08 2025-01-30 18:56:32 -07:00
commit 821cefec27
5 changed files with 189 additions and 0 deletions

View file

@ -0,0 +1,42 @@
{
pkgs,
lib,
...
} @ moduleInheritencePackage: let
# The name of the pdf viewer
name = "custom";
# The viewer template
template = import ./viewerTemplate.nix;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) package str listOf;
in (
template {
inherit name moduleInheritencePackage;
options = {
enable = mkEnableOption "enable using a custom pdf viewer.";
package = mkOption {
type = package;
example = pkgs.okular;
description = "custom viewer package";
};
executable = mkOption {
type = str;
example = "okular";
description = "The executable name to call the viewer.";
};
args = mkOption {
type = listOf str;
example = ["--unique" "file:%p#src:%l%f"];
description = "Arguments to pass to the viewer.";
};
};
argsFunction = viewerCfg: (viewerCfg.args);
}
)

View file

@ -1,6 +1,10 @@
{ ... }: { ... }:
{ {
imports = [ imports = [
./custom.nix
./okular.nix ./okular.nix
./sioyek.nix
./qpdfview.nix
./zathura.nix
]; ];
} }

View file

@ -0,0 +1,42 @@
{
pkgs,
lib,
...
} @ moduleInheritencePackage: let
# The name of the pdf viewer
name = "qpdfview";
# The viewer template
template = import ./viewerTemplate.nix;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) package str listOf;
in (
template {
inherit name moduleInheritencePackage;
options = {
enable = mkEnableOption "enable qpdfview as the pdf file previewer.";
package = mkOption {
type = package;
default = pkgs.qpdfview;
description = "qpdfview package";
};
executable = mkOption {
type = str;
default = "qpdfview";
description = "The executable name to call the viewer.";
};
args = mkOption {
type = listOf str;
default = ["--unique" "%p#src:%f:%l:1"];
description = "Arguments to pass to the viewer.";
};
};
argsFunction = viewerCfg: (viewerCfg.args);
}
)

View file

@ -0,0 +1,59 @@
{
pkgs,
lib,
...
} @ moduleInheritencePackage: let
# The name of the pdf viewer
name = "sioyek";
# The viewer template
template = import ./viewerTemplate.nix;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) package str listOf;
in (
template {
inherit name moduleInheritencePackage;
options = {
enable = mkEnableOption "enable sioyek as the pdf file previewer.";
package = mkOption {
type = package;
default = pkgs.sioyek;
description = "sioyek package";
};
executable = mkOption {
type = str;
default = "sioyek";
description = "The executable name to call the viewer.";
};
args = mkOption {
type = listOf str;
default = [
"--reuse-window"
"--execute-command"
"toggle_synctex"
"--inverse-search"
"texlab inverse-search -i \"%%1\" -l %%2"
"--forward-search-file"
"%f"
"--forward-search-line"
"%l"
"%p"
];
description = ''
Arguments to pass to the viewer.
By default, this is the only viewer that supports the inverse search feature by
command line arguments and doesn't explicitly require extra tinkering else where
in your config.
'';
};
};
argsFunction = viewerCfg: (viewerCfg.args);
}
)

View file

@ -0,0 +1,42 @@
{
pkgs,
lib,
...
} @ moduleInheritencePackage: let
# The name of the pdf viewer
name = "zathura";
# The viewer template
template = import ./viewerTemplate.nix;
inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) package str listOf;
in (
template {
inherit name moduleInheritencePackage;
options = {
enable = mkEnableOption "enable zathura as the pdf file previewer.";
package = mkOption {
type = package;
default = pkgs.zathura;
description = "zathura package";
};
executable = mkOption {
type = str;
default = "zathura";
description = "The executable name to call the viewer.";
};
args = mkOption {
type = listOf str;
default = ["--synctex-forward" "%l:1:%f" "%p"];
description = "Arguments to pass to the viewer.";
};
};
argsFunction = viewerCfg: (viewerCfg.args);
}
)