diff --git a/contrib/autorandr_nitrogen_wallpaper/autorandr_nitrogen_wallpaper b/contrib/autorandr_nitrogen_wallpaper/autorandr_nitrogen_wallpaper new file mode 100755 index 0000000..d06f6b0 --- /dev/null +++ b/contrib/autorandr_nitrogen_wallpaper/autorandr_nitrogen_wallpaper @@ -0,0 +1,83 @@ +#!/bin/bash + +# autorandr_nitrogen_wallpaper +# Copyright (c) 2015, Ondra 'Kepi' KudlĂ­k, http://kepi.cz +# +# Simple script to switch wallpapers when autorandr change profile +# +# Usage +# ===== +# +# 1. place this script (or better symlink it from autorandr location) +# to ~/.config/autorandr/postswitch +# 2. run "nitrogen" and set wallpapers for current profile as you wish +# 3. run ~/.config/autorandr/postswitch savebg +# 4. repeat steps 2-3 for any profile you wish +# +# License +# ======= +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +NITROGEN_HOME="$HOME/.config/nitrogen" +NITROGEN_BG="$NITROGEN_HOME/bg-saved.cfg" + +# try to detect profile +PROFILE=$(autorandr 2>&1| grep detected |awk '{ print $1 }') +[[ -n "$PROFILE" ]] || exit 1 + +PROFILE_BG_FILE="bg-saved.$PROFILE.cfg" +PROFILE_BG="$NITROGEN_HOME/$PROFILE_BG_FILE" + +# save background for detected profile +if [[ $1 = 'savebg' ]]; then + # nitrogen config doesnt exist, instruct to run it first + if [[ ! -f "$NITROGEN_BG" ]]; then + echo "wallpaper: you need to first run 'nitrogen' and set your wallpapers" + exit 2 + fi + # nitrogen config exists but is broken symlink, just remove it and instruct to run it first + if [ ! -e "$NITROGEN_BG" ] ; then + /usr/bin/unlink "$NITROGEN_BG" + echo "wallpaper: you need to first run 'nitrogen' and set your wallpapers (config was broken)" + exit 3 + fi + + /bin/cp -L "$NITROGEN_BG" "$PROFILE_BG" + +# load background for detected profile +else + # we have some profile background config for this setup + if [[ -f "$PROFILE_BG" ]]; then + # nitrogen original file exists and not symlink + if [[ -f "$NITROGEN_BG" ]] && [[ ! -L "$NITROGEN_BG" ]]; then + echo "wallpaper: Backing up nitrogen saved bg to $NITROGEN_BG.backup" + /bin/mv "$NITROGEN_BG" "$NITROGEN_BG".backup + fi + + # set symlink + echo "wallpaper: Found saved wallpaper for profile $PROFILE - changing" + ln -f -s "$PROFILE_BG_FILE" "$NITROGEN_BG" + # call nitrogen + nitrogen --restore + else + echo "wallpaper: No saved wallpaper found for profile $PROFILE" + fi +fi