diff options
Diffstat (limited to 'modules/media/swayimg')
| -rw-r--r-- | modules/media/swayimg/default.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/modules/media/swayimg/default.nix b/modules/media/swayimg/default.nix new file mode 100644 index 0000000..96a568d --- /dev/null +++ b/modules/media/swayimg/default.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options.media.swayimg = { + enable = lib.mkEnableOption "Enables swayimg."; + package = lib.mkPackageOption pkgs "swayimg" { }; + }; + + config = lib.mkIf config.media.swayimg.enable { + programs.swayimg = { + enable = true; + package = config.media.swayimg.package; + initLua = '' + swayimg.viewer.on_key("h", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x + 10, pos.y) + end) + + swayimg.viewer.on_key("j", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x, pos.y - 10) + end) + + swayimg.viewer.on_key("k", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x, pos.y + 10) + end) + + swayimg.viewer.on_key("l", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x - 10, pos.y) + end) + ''; + }; + + xdg.mimeApps.defaultApplications = { + "image/avif" = "swayimg.desktop"; + "image/bmp" = "swayimg.desktop"; + "image/gif" = "swayimg.desktop"; + "image/jpeg" = "swayimg.desktop"; + "image/jpg" = "swayimg.desktop"; + "image/png" = "swayimg.desktop"; + "image/svg+xml" = "swayimg.desktop"; + "image/tiff" = "swayimg.desktop"; + "image/webp" = "swayimg.desktop"; + "image/x-bmp" = "swayimg.desktop"; + "image/x-png" = "swayimg.desktop"; + "image/x-tga" = "swayimg.desktop"; + }; + }; +} |
