Definitely Important and Not a Waste of 10 Minutes

So…Xfce has this nifty app Terminal that lets you set a background. Naturally, leaving the background black would be too easy. I wanted a picture. But what’s more, I wanted that picture to change…

So I found that the Xfce Terminal app has a pretty simple config file in ~/.config/Terminal/terminalrc. After that, parsing it and changing the background picture in Python was easy:

#!/usr/bin/env python
import os
import sys
import random

photo_exts = ['png', 'jpg']
user_dir = os.getcwd()
photo_dir = '%s/Pictures/' % user_dir
config_path = '%s/.config/Terminal/terminalrc' % user_dir
with open(config_path, 'r') as f:
    opts_list = f.readlines()
opts_dict = {}
for line in opts_list:
    if '=' in line:
        opts_dict[line.split('=')[0]] = line.split('=')[1].strip('\n')
    elif 'Configuration' not in line:
        opts_dict[line.strip('\n')] = ''
photo_list = []
for (path, dirs, files) in os.walk(photo_dir):
    for file_name in files:
        ext_pos = len(file_name) - 3
        if file_name[ext_pos:] in photo_exts:
	    photo_list.append('%s/%s' % (path, file_name))
opts_dict['BackgroundImageFile'] = random.choice(photo_list)
opts_list = '[Configuration]\n'
for (index, item) in opts_dict.iteritems():
    if item:
        opts_list += '%s=%s\n' % (index, item)
    else:
        opts_list += '%s\n' % index
with open(config_path, 'w') as f:
    f.writelines(opts_list)

Next, we add comments and maybe some clever one-liners for the array generation…