This repository was archived by the owner on Mar 4, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathzen-wallpaper.sh
executable file
·67 lines (56 loc) · 2.08 KB
/
zen-wallpaper.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
BACKGROUND_COLOR="black"
FONT_COLOR="#555"
FONT_PATH=$HOME/.fonts/Inconsolata.otf
FONT_SIZE=50
FONT_URL="http://www.levien.com/type/myfonts/Inconsolata.otf"
WALLPAPER_SIZE="1920x1032"
WALLPAPER_PATH=$1
GITHUB_OAUTH_TOKEN_PATH=$HOME/.zen-wallpaper-oauth.token
# Make sure we have a valid wallpaper path
if [ ! -e "$WALLPAPER_PATH" ]; then
echo "Usage: `basename $0` [wallpaper path]";
exit 1;
fi
# Is imagemagick installed?
if [ -z `which convert` ]; then
echo "Installing imagemagick"
sudo apt-get install imagemagick
fi
# Download the font if it doesn't exist
if [ ! -e "$FONT_PATH" ]; then
echo "Downloading `basename $FONT_PATH`"
mkdir -p `dirname $FONT_PATH`
wget "$FONT_URL" -O $FONT_PATH
fi
# Do we have a GitHub OAuth token
# We want a GitHub OAuth token so we aren't rate limited to 60 requests / hour for the GitHub API
if [ ! -e "$GITHUB_OAUTH_TOKEN_PATH" ]; then
echo -n "What is your GitHub username: "
read GITHUB_USERNAME
echo "Requesting a GitHub OAuth token"
RESPONSE_FILE=`mktemp --suffix=.json`
curl --silent -u "$GITHUB_USERNAME" -d '{"note": "Zen Wallpaper Script"}' https://api.github.com/authorizations > $RESPONSE_FILE
GITHUB_OAUTH_TOKEN=`cat $RESPONSE_FILE | grep token | awk '{print $2'} | sed -e 's/"//g' -e 's/,//g'`
if [ -z "$GITHUB_OAUTH_TOKEN" ]; then
echo "Did not get OAUth token:"
echo $RESPONSE_FILE
exit 1
fi
echo "Writing GitHub OAuth token to $GITHUB_OAUTH_TOKEN_PATH"
echo "$GITHUB_OAUTH_TOKEN" | sudo tee $GITHUB_OAUTH_TOKEN_PATH
else
GITHUB_OAUTH_TOKEN=`cat $GITHUB_OAUTH_TOKEN_PATH`
fi
# Get the text from Github's Zen API
ZEN_TEXT=`curl --silent https://api.github.com/zen | sed -e "s/'/\\\\\\\\'/g"`
# Create the wallpaper
convert \
-size "$WALLPAPER_SIZE" \
xc:$BACKGROUND_COLOR \
-font "$FONT_PATH" \
-pointsize $FONT_SIZE \
-draw "gravity center fill $FONT_COLOR text 0,0 '$ZEN_TEXT'" \
$WALLPAPER_PATH/zen-wallpaper.png
# Set the wallpaper
gsettings set org.gnome.desktop.background picture-uri file:///home/jpatching/Pictures/zen-wallpaper.png