Skip to content

Instantly share code, notes, and snippets.

Created June 28, 2013 18:22
Show Gist options
  • Save anonymous/5886848 to your computer and use it in GitHub Desktop.
Save anonymous/5886848 to your computer and use it in GitHub Desktop.
Launcher icon resizer
#!/usr/bin/python
import shutil
import sys
import os
def getparent (content, line_nr):
for i in range (line_nr - 1, -1, -1):
if "{" in content[i].lstrip():
return content[i].lstrip().split(" ")[0]
def change_line (content, key, value, parent):
line_nr = 0
for line in content:
if line.lstrip().startswith(key + ":"):
lparent = getparent(content, line_nr)
if parent == lparent:
content[line_nr] = key + ": " + value + "\n"
return content
line_nr = line_nr + 1
def load_file (filename):
file = open (filename, "r")
content = file.readlines()
file.close()
return content
def write_file (filename, content):
shutil.copyfile (filename, filename + ".bak")
file = open (filename, "w")
for line in content:
file.write (line)
file.close()
return
shell_qml = "/usr/share/unity-2d/shell/Shell.qml"
icontile_qml = "/usr/share/unity-2d/shell/common/IconTile.qml"
launcherlist_qml = "/usr/share/unity-2d/shell/launcher/LauncherList.qml"
launcheritem_qml = "/usr/share/unity-2d/shell/launcher/LauncherItem.qml"
if (len(sys.argv) > 1):
icon_size = int(sys.argv[1])
else:
sys.exit("Please enter your desired icon size as the first argument.")
if not os.geteuid() == 0:
sys.exit("Script must be run as root.")
content = load_file (shell_qml)
content = change_line (content, "width", str (icon_size + 16), "LauncherLoader")
write_file (shell_qml, content)
content = load_file (icontile_qml)
content = change_line (content, "sourceSize.width", str (icon_size), "Image")
content = change_line (content, "sourceSize.height", str (icon_size), "Image")
write_file (icontile_qml, content)
content = load_file (launcherlist_qml)
content = change_line (content, "property int tileSize", str (icon_size + 6), "AutoScrollingListView")
content = change_line (content, "property int selectionOutlineSize", str (icon_size + 16), "AutoScrollingListView")
write_file (launcherlist_qml, content)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment