Skip to content

Commit

Permalink
Merge pull request wertarbyte#36 from kepi/feature-nitrogen
Browse files Browse the repository at this point in the history
Contrib: script for changing wallpapers on change
  • Loading branch information
phillipberndt committed Aug 1, 2015
2 parents b760747 + 4983ad5 commit 36f5154
Showing 1 changed file with 83 additions and 0 deletions.
83 changes: 83 additions & 0 deletions contrib/autorandr_nitrogen_wallpaper/autorandr_nitrogen_wallpaper
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 36f5154

Please sign in to comment.