diff --git a/Makefile b/Makefile index a1d2bfc92..2afa67fee 100644 --- a/Makefile +++ b/Makefile @@ -235,9 +235,26 @@ install-dunstify: dunstify install -Dm755 dunstify ${DESTDIR}${BINDIR}/dunstify endif +ifneq (0,${COMPLETIONS}) +install: install-completions +install-completions: + install -Dm644 completions/dunst.bashcomp ${DESTDIR}${BASHCOMPLETIONDIR}/dunst + install -Dm644 completions/dunstctl.bashcomp ${DESTDIR}${BASHCOMPLETIONDIR}/dunstctl + install -Dm644 completions/_dunst.zshcomp ${DESTDIR}${ZSHCOMPLETIONDIR}/_dunst + install -Dm644 completions/_dunstctl.zshcomp ${DESTDIR}${ZSHCOMPLETIONDIR}/_dunstctl + install -Dm644 completions/dunst.fishcomp ${DESTDIR}${FISHCOMPLETIONDIR}/dunst + install -Dm644 completions/dunstctl.fishcomp ${DESTDIR}${FISHCOMPLETIONDIR}/dunstctl + +ifneq (0,${DUNSTIFY}) +install: install-completions-dunstify +install-completions-dunstify: + install -Dm644 completions/dunstify.fishcomp ${DESTDIR}${FISHCOMPLETIONDIR}/dunstify +endif +endif + uninstall: uninstall-keepconf uninstall-purge: uninstall-keepconf uninstall-dunstrc -uninstall-keepconf: uninstall-service uninstall-dunstctl +uninstall-keepconf: uninstall-service uninstall-dunstctl uninstall-completions rm -f ${DESTDIR}${BINDIR}/dunst rm -f ${DESTDIR}${BINDIR}/dunstify rm -f ${DESTDIR}${MANPREFIX}/man1/dunst.1 @@ -260,3 +277,12 @@ uninstall-service: uninstall-service-systemd uninstall-service-systemd: rm -f ${DESTDIR}${SERVICEDIR_SYSTEMD}/dunst.service endif + +uninstall-completions: + rm -f ${DESTDIR}${BASHCOMPLETIONDIR}/dunst + rm -f ${DESTDIR}${BASHCOMPLETIONDIR}/dunstctl + rm -f ${DESTDIR}${ZSHCOMPLETIONDIR}/_dunst + rm -f ${DESTDIR}${ZSHCOMPLETIONDIR}/_dunstctl + rm -f ${DESTDIR}${FISHCOMPLETIONDIR}/dunst + rm -f ${DESTDIR}${FISHCOMPLETIONDIR}/dunstctl + rm -f ${DESTDIR}${FISHCOMPLETIONDIR}/dunstify diff --git a/README.md b/README.md index b0b573ec2..f0697d499 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,12 @@ ## Table of Contents -* [Features](#features) -* [Building](#building) -* [Contributing](#contributing) -* [Documentation](#documentation) -* [Troubleshooting](#troubleshooting) -* [Copyright](#copyright) +- [Features](#features) +- [Building](#building) +- [Contributing](#contributing) +- [Documentation](#documentation) +- [Troubleshooting](#troubleshooting) +- [Copyright](#copyright) # Features @@ -56,8 +56,8 @@ If you want to take a break and not receive any notifications for a while, just pause dunst. All notifications will be saved for you to catch up later. -Additionally, you can set a numeric pause level, which allows you to pause dunst -selectively for some notifications, where more urgent notifications get through, +Additionally, you can set a numeric pause level, which allows you to pause dunst +selectively for some notifications, where more urgent notifications get through, but less urgent stay paused. ## 🕘 History @@ -112,6 +112,9 @@ sudo make install - `PREFIX=`: Set the prefix of the installation. (Default: `/usr/local`) - `BINDIR=`: Set the `dunst` executable's path (Default: `${PREFIX}/bin`) - `DATADIR=`: Set the path for shared files. (Default: `${PREFIX}/share`) +- `BASHCOMPLETIONDIR=`: Set the path for installation of bash completion files. (Default: `${DATADIR}/bash-completion/completions`) +- `FISHCOMPLETIONDIR=`: Set the path for installation of fish completion files. (Default: `${DATADIR}/fish/vendor_completions.d`) +- `ZSHCOMPLETIONDIR=`: Set the path for installation of zsh completion files. (Default: `${DATADIR}/zsh/site-functions`) - `SYSCONFDIR=`: Set the base directory for system config files. (Default: `${PREFIX}/etc/xdg`) - `SYSCONFFILE=`: Set the absolute path to which the default dunstrc shall be installed. (Default: `${SYSCONFDIR}/dunst/dunstrc`) - `SYSCONF_FORCE_NEW=(0|1)`: Overwrite existing `${SYSCONFFILE}`. (Default: 0 (don't overwrite)) @@ -120,6 +123,7 @@ sudo make install - `WAYLAND=(0|1)`: Disable/Enable wayland support. (Default: 1 (enabled)) - `X11=(0|1)`: Disable/Enable X11 support. (Default: 1 (enabled)) - `DUNSTIFY=(0|1)`: Disable/Enable the libnotify dunstctl utility. (Default: 1 (enabled)) +- `COMPLETIONS=(0|1)`: Disable/Enable installation of shell completions. (Default: 1 (enabled)) - `SERVICEDIR_SYSTEMD=`: The path to put the systemd user service file. Unused, if `SYSTEMD=0`. (Default: `${PREFIX}/lib/systemd/user`) - `SERVICEDIR_DBUS=`: The path to put the dbus service file. (Default: `${DATADIR}/dbus-1/services`) - `EXTRA_CFLAGS=`: Additional flags for the compiler. @@ -197,7 +201,7 @@ Written by Sascha Kruse Copyright 2013 Sascha Kruse and contributors (see [`LICENSE`](./LICENSE) for licensing information) -[issue-tracker]: https://github.com/dunst-project/dunst/issues +[issue-tracker]: https://github.com/dunst-project/dunst/issues [wiki]: https://github.com/dunst-project/dunst/wiki [website]: https://dunst-project.org [FAQ]: https://dunst-project.org/faq diff --git a/contrib/_dunst.zshcomp b/completions/_dunst.zshcomp similarity index 100% rename from contrib/_dunst.zshcomp rename to completions/_dunst.zshcomp diff --git a/contrib/_dunstctl.zshcomp b/completions/_dunstctl.zshcomp similarity index 100% rename from contrib/_dunstctl.zshcomp rename to completions/_dunstctl.zshcomp diff --git a/contrib/dunst.bashcomp b/completions/dunst.bashcomp similarity index 100% rename from contrib/dunst.bashcomp rename to completions/dunst.bashcomp diff --git a/contrib/dunst.fishcomp b/completions/dunst.fishcomp similarity index 100% rename from contrib/dunst.fishcomp rename to completions/dunst.fishcomp diff --git a/contrib/dunstctl.bashcomp b/completions/dunstctl.bashcomp similarity index 100% rename from contrib/dunstctl.bashcomp rename to completions/dunstctl.bashcomp diff --git a/contrib/dunstctl.fishcomp b/completions/dunstctl.fishcomp similarity index 100% rename from contrib/dunstctl.fishcomp rename to completions/dunstctl.fishcomp diff --git a/contrib/dunstify.fishcomp b/completions/dunstify.fishcomp similarity index 100% rename from contrib/dunstify.fishcomp rename to completions/dunstify.fishcomp diff --git a/config.mk b/config.mk index 0fb816787..37a1ad7e4 100644 --- a/config.mk +++ b/config.mk @@ -4,6 +4,9 @@ BINDIR ?= ${PREFIX}/bin SYSCONFDIR ?= ${PREFIX}/etc/xdg SYSCONFFILE ?= ${SYSCONFDIR}/dunst/dunstrc DATADIR ?= ${PREFIX}/share +BASHCOMPLETIONDIR ?= ${DATADIR}/bash-completion/completions +FISHCOMPLETIONDIR ?= ${DATADIR}/fish/vendor_completions.d +ZSHCOMPLETIONDIR ?= ${DATADIR}/zsh/site-functions # around for backwards compatibility MANPREFIX ?= ${DATADIR}/man MANDIR ?= ${MANPREFIX} @@ -36,6 +39,9 @@ VALGRIND ?= valgrind # Other applications will continue to work, as they use direct D-Bus. # DUNSTIFY ?=0 +# Disable installation of completions. +# COMPLETIONS ?= 0 + ifneq (0, ${WAYLAND}) ENABLE_WAYLAND= -DENABLE_WAYLAND endif diff --git a/test/test-install.sh b/test/test-install.sh index 71ade5a3c..e042ba105 100755 --- a/test/test-install.sh +++ b/test/test-install.sh @@ -31,9 +31,16 @@ systemd/dunst.service testprefix/bin/dunst testprefix/bin/dunstctl testprefix/bin/dunstify +testprefix/share/bash-completion/completions/dunst +testprefix/share/bash-completion/completions/dunstctl +testprefix/share/fish/vendor_completions.d/dunst +testprefix/share/fish/vendor_completions.d/dunstctl +testprefix/share/fish/vendor_completions.d/dunstify testprefix/share/man/man1/dunst.1 testprefix/share/man/man1/dunstctl.1 testprefix/share/man/man5/dunst.5 +testprefix/share/zsh/site-functions/_dunst +testprefix/share/zsh/site-functions/_dunstctl EOF do_make uninstall