middleclick-autoscroll 1.0.0
Middle-click autoscroll for every Chromium-based application on the system: Electron and CEF applications, Chromium-based browsers, Flatpaks, Spotify and Steam, plus anything installed later. The flag goes into an Arch wrapper's <name>-flags.conf where one exists, and into a shadowing desktop entry where it does not. Steam gets its web helper script patched and -noverifyfiles on its launcher, because it restores its own files otherwise. Every change is recorded so it can be taken back exactly.
This commit is contained in:
commit
d3c82fdff8
18 files changed
+4208
No files matched your search
@@ -0,0 +1,114 @@
|
||||
# middleclick-autoscroll - build and install
|
||||
#
|
||||
# Everything here is plain shell; "building" only means compiling the gettext
|
||||
# catalogs and rendering the man page. Both targets degrade to a no-op when
|
||||
# msgfmt/scdoc are missing, so the tree stays usable for development without
|
||||
# the build dependencies installed.
|
||||
|
||||
# Overridable so a packager can pass the version it is actually building
|
||||
# (`make VERSION=$pkgver`). The literal below is the fallback for builds
|
||||
# straight from a checkout, and is what a release tag has to carry.
|
||||
VERSION ?= 1.0.0
|
||||
|
||||
PREFIX ?= /usr
|
||||
DESTDIR ?=
|
||||
BINDIR ?= $(PREFIX)/bin
|
||||
DATADIR ?= $(PREFIX)/share
|
||||
LIBDIR ?= $(DATADIR)/middleclick-autoscroll/lib
|
||||
LOCALEDIR ?= $(DATADIR)/locale
|
||||
MANDIR ?= $(DATADIR)/man
|
||||
USERUNITDIR ?= $(PREFIX)/lib/systemd/user
|
||||
|
||||
LINGUAS := de
|
||||
MOFILES := $(patsubst %,po/%.mo,$(LINGUAS))
|
||||
MANPAGE := doc/middleclick-autoscroll.1
|
||||
|
||||
LIBS := $(wildcard src/lib/*.sh)
|
||||
|
||||
MSGFMT := $(shell command -v msgfmt 2>/dev/null)
|
||||
SCDOC := $(shell command -v scdoc 2>/dev/null)
|
||||
|
||||
.PHONY: all build install uninstall check clean
|
||||
|
||||
all: build
|
||||
|
||||
build: $(MOFILES) $(MANPAGE)
|
||||
|
||||
po/%.mo: po/%.po
|
||||
ifdef MSGFMT
|
||||
$(MSGFMT) --check --output-file=$@ $<
|
||||
else
|
||||
@echo "msgfmt not found - skipping $@"
|
||||
endif
|
||||
|
||||
$(MANPAGE): doc/middleclick-autoscroll.1.scd
|
||||
ifdef SCDOC
|
||||
$(SCDOC) < $< > $@
|
||||
else
|
||||
@echo "scdoc not found - skipping $@"
|
||||
endif
|
||||
|
||||
# Syntax-check every shell file, and run shellcheck when it is available.
|
||||
check:
|
||||
@set -e; for f in src/middleclick-autoscroll $(LIBS); do \
|
||||
bash -n "$$f" && echo "ok $$f"; \
|
||||
done
|
||||
@if command -v shellcheck >/dev/null 2>&1; then \
|
||||
shellcheck -x -e SC1090,SC1091 src/middleclick-autoscroll $(LIBS); \
|
||||
echo "ok shellcheck"; \
|
||||
else \
|
||||
echo "shellcheck not found - skipped"; \
|
||||
fi
|
||||
@if command -v desktop-file-validate >/dev/null 2>&1; then \
|
||||
echo "ok desktop-file-validate (nothing to check)"; \
|
||||
fi
|
||||
|
||||
install: build
|
||||
# executable
|
||||
install -Dm755 src/middleclick-autoscroll \
|
||||
"$(DESTDIR)$(BINDIR)/middleclick-autoscroll"
|
||||
|
||||
# shell libraries
|
||||
install -d "$(DESTDIR)$(LIBDIR)"
|
||||
install -Dm644 -t "$(DESTDIR)$(LIBDIR)" $(LIBS)
|
||||
|
||||
# the version and the resolved paths are baked in at install time
|
||||
sed -i -e 's|@VERSION@|$(VERSION)|g' \
|
||||
-e 's|@LIBDIR@|$(LIBDIR)|g' \
|
||||
-e 's|@LOCALEDIR@|$(LOCALEDIR)|g' \
|
||||
"$(DESTDIR)$(BINDIR)/middleclick-autoscroll" \
|
||||
"$(DESTDIR)$(LIBDIR)"/*.sh
|
||||
|
||||
# user units: the watcher, and the one-shot it starts
|
||||
install -Dm644 res/systemd/middleclick-autoscroll.service \
|
||||
"$(DESTDIR)$(USERUNITDIR)/middleclick-autoscroll.service"
|
||||
install -Dm644 res/systemd/middleclick-autoscroll.path \
|
||||
"$(DESTDIR)$(USERUNITDIR)/middleclick-autoscroll.path"
|
||||
sed -i -e 's|@BINDIR@|$(BINDIR)|g' \
|
||||
"$(DESTDIR)$(USERUNITDIR)/middleclick-autoscroll.service"
|
||||
|
||||
# translations
|
||||
@for l in $(LINGUAS); do \
|
||||
if [ -f "po/$$l.mo" ]; then \
|
||||
install -Dm644 "po/$$l.mo" \
|
||||
"$(DESTDIR)$(LOCALEDIR)/$$l/LC_MESSAGES/middleclick-autoscroll.mo"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# documentation
|
||||
@if [ -f $(MANPAGE) ]; then \
|
||||
install -Dm644 $(MANPAGE) "$(DESTDIR)$(MANDIR)/man1/middleclick-autoscroll.1"; \
|
||||
fi
|
||||
install -Dm644 README.md \
|
||||
"$(DESTDIR)$(DATADIR)/doc/middleclick-autoscroll/README.md"
|
||||
|
||||
uninstall:
|
||||
rm -f "$(DESTDIR)$(BINDIR)/middleclick-autoscroll"
|
||||
rm -rf "$(DESTDIR)$(DATADIR)/middleclick-autoscroll"
|
||||
rm -f "$(DESTDIR)$(USERUNITDIR)/middleclick-autoscroll.service"
|
||||
rm -f "$(DESTDIR)$(USERUNITDIR)/middleclick-autoscroll.path"
|
||||
rm -f "$(DESTDIR)$(MANDIR)/man1/middleclick-autoscroll.1"
|
||||
rm -rf "$(DESTDIR)$(DATADIR)/doc/middleclick-autoscroll"
|
||||
|
||||
clean:
|
||||
rm -f po/*.mo $(MANPAGE)
|
||||
Reference in new issue
Block a user