diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3b5ad58 --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +PREFIX ?= /usr/local +BINDIR ?= $(PREFIX)/bin + +CFLAGS ?= -O2 -Wall -Wextra +CFLAGS += $(shell pkg-config --cflags gtk+-3.0 webkit2gtk-4.1) +LIBS = $(shell pkg-config --libs gtk+-3.0 webkit2gtk-4.1) + +.PHONY: all clean install uninstall + +all: noiz + +noiz: noiz.c + $(CC) $(CFLAGS) -o $@ $< $(LIBS) + +clean: + rm -f noiz + +install: noiz + install -d $(DESTDIR)$(BINDIR) + install -m 755 noiz $(DESTDIR)$(BINDIR)/noiz + +uninstall: + rm -f $(DESTDIR)$(BINDIR)/noiz diff --git a/noiz.py b/noiz.py index 8f78faa..b4fe0a8 100755 --- a/noiz.py +++ b/noiz.py @@ -1,8 +1,26 @@ #!/usr/bin/env python3 import webview -webview.create_window( -"noiz://", -"./index.html" -) -webview.start() +def inject_zoom_shortcuts(window): + window.evaluate_js( + """ + document.addEventListener('keydown', function(e) { + if (!e.ctrlKey) return; + var key = e.key; + if (key === '=' || key === '+' || key === '-') { + e.preventDefault(); + var cur = parseFloat(document.body.style.zoom) || 1; + if (key === '-') { + document.body.style.zoom = Math.max(0.25, +(cur - 0.1).toFixed(2)); + } else { + document.body.style.zoom = Math.min(3, +(cur + 0.1).toFixed(2)); + } + } else if (key === '0') { + e.preventDefault(); + document.body.style.zoom = 1; + } + }); + """ + ) +window = webview.create_window("noiz://", "https://bsd.pm/noiz/", zoomable=True) +webview.start(inject_zoom_shortcuts, window)