Having just written my perfect screenshot tool, I've been trying to work out how it should set itself up for use by people who are not me. Screenshots are traditionally taken by pressing the PrtSc key. So, I could do the following things:
As soon as the app is installed, make pressing PrtSc invoke the app
Pros:
- works immediately, out of the box, as expected. A user installs the app, hits PrtSc, they get the app they've just installed. Hooray.
Cons:
- unconditionally overrides any existing setup you have for PrtSc, which might be annoying
- if you uninstall the app, it won't reset PrtSc to what it was before, which is also annoying
- problematic for multiple users, because app installation runs under sudo, so how does it know which user's PrtSc setup to override? It's certainly possible to add a gconf key as part of installation, but that may be problematic if two different screenshot apps both try?
On first-run of the app, seize the PrtSc key
Pros:
- avoids the above problem of wrongly seizing other users' PrtSc keys
Cons:
- you have to run the app once manually first, which is annoying (and how do you know how to do that?)
- will still not restore the old setting if the app is uninstalled
Have a configuration dialog in the app where you configure it to seize PrtSc
Pros:
- Only seizes PrtSc for people that really want it to
Cons:
- you have to run the app once manually first, which is annoying (and how do you know how to do that?)
- you have to go into a configuration dialog to make the app actually do what it's intended to do; take screenshots when you press PrtSc. Ubuntu is past that configure-everything stage now, surely? How irritating. Not doing this!
Something else I haven't thought of
A better cleverer approach that just hasn't dawned on me yet.
Suggestions welcomed!