From: Phillip Berndt Date: Wed, 11 Nov 2015 10:21:23 +0000 (+0100) Subject: Moved contributed scripts/files to the contrib/ folder and updated the Makefile to... X-Git-Tag: 1.0~43 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=0e7fb8b21d6cf02a78b2ea48467ce02cd4badfb7;p=deb_pkgs%2Fautorandr.git Moved contributed scripts/files to the contrib/ folder and updated the Makefile to autodetect the system systemd service file contributed by github user @blueyed. see #29. --- diff --git a/Makefile b/Makefile index 4141b1c..122c2f7 100644 --- a/Makefile +++ b/Makefile @@ -1,18 +1,80 @@ +DESTDIR=/ +PREFIX=/usr/ + +.PHONY: all install uninstall autorandr bash_completion pmutils systemd udev + all: @echo "Call \"make install\" to install this program." - @echo "Call \"make hotplug\" to install matching hotplug events." + @echo "Call \"make uninstall\" to remove this program." + @echo + @echo "The following components were autodetected and will be installed:" + @echo " "$(DEFAULT_TARGETS) + @echo "You can use the TARGETS variable to override, e.g. \"make install TAGETS='autorandr pmutils'\"." + +# Rules for autorandr itself +DEFAULT_TARGETS=autorandr + +install_autorandr: + install -D -m 755 autorandr.py ${DESTDIR}${PREFIX}/bin/autorandr + +uninstall_autorandr: + rm -f ${DESTDIR}${PREFIX}/bin/autorandr + +# Rules for bash_completion +HAVE_BASH_COMPLETION=$(shell [ -d /etc/bash_completion.d/ ] && echo "y") +ifeq ($(HAVE_BASH_COMPLETION),y) +DEFAULT_TARGETS+=bash_completion +endif + +install_bash_completion: + install -D -m 644 contrib/bash_completion/autorandr ${DESTDIR}/etc/bash_completion.d/autorandr + +uninstall_bash_completion: + rm -f ${DESTDIR}/etc/bash_completion.d/autorandr + +# Rules for pmutils +HAVE_PMUTILS=$(shell [ -x /usr/sbin/pm-suspend ] && echo "y") +ifeq ($(HAVE_PMUTILS),y) +DEFAULT_TARGETS+=pmutils +endif -INSTALL_PATH=/usr/local/bin -install: - install -D -m 755 autorandr.py ${DESTDIR}${INSTALL_PATH}/autorandr - install -D -m 644 bash_completion/autorandr ${DESTDIR}/etc/bash_completion.d/autorandr +install_pmutils: + install -D -m 644 contrib/pm-utils/40autorandr ${DESTDIR}/etc/pm/sleep.d/40autorandr -hotplug: - install -D -m 755 pm-utils/40autorandr ${DESTDIR}/etc/pm/sleep.d/40autorandr - install -D -m 644 udev/40-monitor-hotplug.rules ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules +uninstall_pmutils: + rm -f ${DESTDIR}/etc/pm/sleep.d/40autorandr + +# Rules for systemd +HAVE_SYSTEMD=$(shell grep -q systemd /proc/1/cmdline && echo "y") +ifeq ($(HAVE_SYSTEMD),y) +DEFAULT_TARGETS+=systemd +endif + +install_systemd: install_pmutils + install -D -m 644 contrib/systemd/autorandr-resume.service ${DESTDIR}/etc/systemd/system/autorandr-resume.service + +uninstall_systemd: uninstall_pmutils + rm -f ${DESTDIR}/etc/systemd/system/autorandr-resume.service + +# Rules for udev +HAVE_UDEV=$(shell [ -d /etc/udev/rules.d/ ] && echo "y") +ifeq ($(HAVE_UDEV),y) +DEFAULT_TARGETS+=udev +endif + +install_udev: + install -D -m 644 contrib/udev/40-monitor-hotplug.rules ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules ifeq (${USER},root) udevadm control --reload-rules else @echo "Please run this command as root:" @echo " udevadm control --reload-rules" endif + +uninstall_udev: + rm -f ${DESTDIR}/etc/udev/rules.d/40-monitor-hotplug.rules + + +TARGETS=$(DEFAULT_TARGETS) +install: $(patsubst %,install_%,$(TARGETS)) +uninstall: $(patsubst %,uninstall_%,$(TARGETS)) diff --git a/README.md b/README.md index b014998..fdfb547 100644 --- a/README.md +++ b/README.md @@ -87,5 +87,4 @@ Another script called `postswitch` can be placed in the directory after a mode switch has taken place and can notify window managers or other applications about it. -To install autorandr call `make install`, define your setup and then call -`make hotplug` to install hotplug scripts. +To install autorandr call `make install`. diff --git a/bash_completion/autorandr b/bash_completion/autorandr deleted file mode 100644 index 7a8b81b..0000000 --- a/bash_completion/autorandr +++ /dev/null @@ -1,48 +0,0 @@ -# autorandr/auto-disper completion by Maciej 'macieks' Sitarz - -_autorandr () -{ - local cur prev opts lopts prfls - - COMPREPLY=() - cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" - - opts="-h -c -s -l -d" - lopts="--help --change --save --load --default --force --fingerprint --config --dry-run" - if [ -d ~/.autorandr ]; then - prfls="`find ~/.autorandr/* -maxdepth 1 -type d -printf '%f\n'`" - elif [ -d ~/.config/autorandr ]; then - prfls="`find ~/.config/autorandr/* -maxdepth 1 -type d -printf '%f\n'`" - else - prfls="" - fi - - case "${cur}" in - --*) - COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) ) - return 0 - ;; - -*) - COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) - return 0 - ;; - *) - if [ $COMP_CWORD -eq 1 ]; then - COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) - fi - ;; - esac - - case "${prev}" in - -l|--load|-d|--default) - COMPREPLY=( $( compgen -W "${prfls}" -- $cur ) ) - return 0 - ;; - *) - ;; - esac - - return 0 -} -complete -F _autorandr autorandr diff --git a/contrib/bash_completion/autorandr b/contrib/bash_completion/autorandr new file mode 100644 index 0000000..7a8b81b --- /dev/null +++ b/contrib/bash_completion/autorandr @@ -0,0 +1,48 @@ +# autorandr/auto-disper completion by Maciej 'macieks' Sitarz + +_autorandr () +{ + local cur prev opts lopts prfls + + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + opts="-h -c -s -l -d" + lopts="--help --change --save --load --default --force --fingerprint --config --dry-run" + if [ -d ~/.autorandr ]; then + prfls="`find ~/.autorandr/* -maxdepth 1 -type d -printf '%f\n'`" + elif [ -d ~/.config/autorandr ]; then + prfls="`find ~/.config/autorandr/* -maxdepth 1 -type d -printf '%f\n'`" + else + prfls="" + fi + + case "${cur}" in + --*) + COMPREPLY=( $( compgen -W "${lopts}" -- $cur ) ) + return 0 + ;; + -*) + COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) + return 0 + ;; + *) + if [ $COMP_CWORD -eq 1 ]; then + COMPREPLY=( $( compgen -W "${opts} ${lopts}" -- $cur ) ) + fi + ;; + esac + + case "${prev}" in + -l|--load|-d|--default) + COMPREPLY=( $( compgen -W "${prfls}" -- $cur ) ) + return 0 + ;; + *) + ;; + esac + + return 0 +} +complete -F _autorandr autorandr diff --git a/contrib/pm-utils/40autorandr b/contrib/pm-utils/40autorandr new file mode 100755 index 0000000..1129177 --- /dev/null +++ b/contrib/pm-utils/40autorandr @@ -0,0 +1,25 @@ +#!/bin/sh +# +# 40autorandr: Change autorandr profile on thaw/resume +exec > /var/log/autorandr.log 2>&1 + +AUTORANDR="autorandr -c --default default" + +detect_display() +{ + for X in /tmp/.X11-unix/X*; do + D="${X##/tmp/.X11-unix/X}" + user=`who | awk -vD="$D" '$2 ~ ":"D"(.[0-9])?$" {print $1}' | head -1` + if [ x"$user" != x"" ]; then + logger "autorandr: Changing display configuration for user '$user'" + export DISPLAY=":$D" + /bin/su -c "${AUTORANDR}" "$user" + fi + done +} + +case "$1" in + thaw|resume) + detect_display + ;; +esac diff --git a/contrib/systemd/autorandr-resume.service b/contrib/systemd/autorandr-resume.service new file mode 100644 index 0000000..70dcde1 --- /dev/null +++ b/contrib/systemd/autorandr-resume.service @@ -0,0 +1,9 @@ +[Unit] +Description=autorandr resume hook +After=sleep.target + +[Service] +ExecStart=/etc/pm/sleep.d/40autorandr thaw + +[Install] +WantedBy=sleep.target \ No newline at end of file diff --git a/contrib/udev/40-monitor-hotplug.rules b/contrib/udev/40-monitor-hotplug.rules new file mode 100644 index 0000000..4c48ffb --- /dev/null +++ b/contrib/udev/40-monitor-hotplug.rules @@ -0,0 +1 @@ +ACTION=="change", SUBSYSTEM=="drm", RUN+="/etc/pm/sleep.d/40autorandr thaw" diff --git a/pm-utils/40autorandr b/pm-utils/40autorandr deleted file mode 100755 index 1129177..0000000 --- a/pm-utils/40autorandr +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/sh -# -# 40autorandr: Change autorandr profile on thaw/resume -exec > /var/log/autorandr.log 2>&1 - -AUTORANDR="autorandr -c --default default" - -detect_display() -{ - for X in /tmp/.X11-unix/X*; do - D="${X##/tmp/.X11-unix/X}" - user=`who | awk -vD="$D" '$2 ~ ":"D"(.[0-9])?$" {print $1}' | head -1` - if [ x"$user" != x"" ]; then - logger "autorandr: Changing display configuration for user '$user'" - export DISPLAY=":$D" - /bin/su -c "${AUTORANDR}" "$user" - fi - done -} - -case "$1" in - thaw|resume) - detect_display - ;; -esac diff --git a/udev/40-monitor-hotplug.rules b/udev/40-monitor-hotplug.rules deleted file mode 100644 index 4c48ffb..0000000 --- a/udev/40-monitor-hotplug.rules +++ /dev/null @@ -1 +0,0 @@ -ACTION=="change", SUBSYSTEM=="drm", RUN+="/etc/pm/sleep.d/40autorandr thaw"