Running checkvist in a tiny window
checkvist.com is a nice todo list tool, with excellent multi-user and live-update support. Its visual design is fine, but not perfect for leaving your list open in the corner of your screen. There's plenty of whitespace all over and a few rows of menu bar that you'll get tired of looking at (or scrolling past).
Here is a way to get checkvist to be even tinier, so you can leave it open all the time. These instructions are for firefox. While I often use prism for projects like this, I couldn't for checkvist because of the chrome and extension hacks I need.
1. Make a new firefox profile called 'checkvist'. If you already have firefox running, use "firefox -no-remote -ProfileManager" to get the profiles window. You can run your new profile with "firefox -no-remote -P checkvist"
2. In the new profile, use the view menu to turn off the status bar and top bars. Install the Hide Menubar extension. Set your home page to your checkvist list page.
3. Quit firefox. Find your new profile's directory on disk. It'll be something like ~/.mozilla/firefox/p409yj34f.checkvist/. In the chrome/ subdirectory, make a new file called userContent.css:
#toolbar { display: none }
.topbar { display: none }
.main_div { margin: 0 !important }
li.task { padding: 0 !important; margin: 0 !important }
ul.topLevel li { font-size: 10pt }
div.coreDiv { padding: 0 !important; border: 0 !important; }
#h1Id { display: none }
.updateLine { font-size: 0 !important; padding-left: 10px !important; }
html, body, .main_div { background: #8e8e8e !important }
.taskStatus a { color: #656565 }
(The last two lines are just to turn down the lights)
Now when you run "firefox -no-remote -P checkvist", you should get a really compact window for leaving open all the time. This makes a new incentive to get items completed, too, since an item that stays on-screen too long will burn in :)
Program to pretty-print a firefox sessionstore.js file
Suppose your firefox session keeps crashing AND the new sessionrestore page is corrupted so the table is too small to show anything. The data you want is in .mozilla/firefox/<profile>/sessionstore.js but it's hard to read.
Here is a program that pretty-prints that file. PyPI/easy_install would be a good way to distribute this tool, but that's several minutes harder than pasting the code here:
#!/usr/bin/python
"""
pretty-prints a .mozilla/firefox/<profile>/sessionstore.js file
"""
import sys, simplejson
js = simplejson.loads(open(sys.argv[1]).read().strip('()'))
# if you already ran firefox, you'll have one tab with sessionrestore showing
if len(js['windows']) >= 1:
entry = js['windows'][0]['tabs'][0]['entries'][0]
if entry['url'] == 'about:sessionrestore':
js = simplejson.loads(entry['formdata']['#sessionData'].strip('()'))
for window in js['windows']:
print "Window:"
for tab in window['tabs']:
entry = tab['entries'][tab['index'] - 1]
print " %s" % entry['url']
# enable this to see the full js contents
#print simplejson.dumps(js, sort_keys=False, indent=2)
Atom feed of this blog