Some of the things I'd like to do need to get on the feature plan. some are only on my laptop, and will stay there. here's some of the stuff that I'm thinking of doing. There's a pretty good chance I'll never find time for most of it. If one of them sparks your interest, feel free to implement it. (but tell me, so we don't both end up doing the same thing ;)
- 1 little things I never get to
- 2 plasmoid ideas
- 3 soc ideas
- 4 stuff I might actually get done for 4.3
little things I never get to
make a graphical timezone selector
- I think I've seen such a thing ona gnome computer, and it it just made *sense*.
- I'm not sure if this would be a plasma thing or a kdelibs thing. or a marble thing.
- at the very least the existing timezone selecter needs a filter bar...
- being able to remove the current activity safely would get rid of the need for some awkward code and confusing behaviour.
- this probably means attempting to jump to an unused containment, and creating a new one if none can be found.
- when a task wants attention (ie. it would be flashing in the taskbar) this would show the task and get the user's attention.
- this is useful for people like me who usually don't want a taskbar, but don't want to miss that attention request.
icon plasmoid improvements
- right now, it kinda sucks. I have links on my desktop called stuff like "http" and I can't change them. oh, and dragging a kickoff entry to the desktop then changing it has broken things horribly in the past.
- what I want is a more generic launcher plasmoid that can be configured to launch whatever I want. like how you could add stuff to your panel in kde3 and configure it to run a program with extra options or whatever.
kwin effects plasmoids
- someone on hte interwebs thought of this one: just little icons that trigger certain kwin effects. should be really easy, assuming there's a dbus way to trigger those things.
victory calendar [mine!!]
- this is the one I keep blogging about
- I need to make it possible to add rows
- then I need to make it save the state of the flags
- then I need to make it save them per day, and display history
- eventually I might add pretty graphs
- this would be something like a simplified basKet
- the containment would have a row of buttons for creating new notes, sketches, etc. these would use existing plasmoids (which might need improving)
- the containment itself would be a sketch plasmoid so you could draw on hte background.
- actually this might not need to be a special containment. the row of buttons could be its own plasmoid, then you just need to add that plasmoid and set the containment type to sketch
- obviously there has to exist a sketch plasmoid that allows the user to do simple sketches and can be used as a containment. I think there's some sort of blackboard plasmoid somewhere that could be turned into this.
- this will make it easy to produce lots of disorganized data, so it'd be nice if the note/sketch plasmoids could save their data somewhere outside the plasma config. tagging would also be nice. and containment saving.
- use case 1: I have a system with limited resources, and lots of activities. I want to close the ones I haven't used recently, but not delete them forever.
- use case 2: I have a really cool setup, and my friend wants me to send her one of my activites because she likes it so much.
- the idea is to save out the containment's config to another file (in $APPDATA or something for use case 1) and remove it, then when the user wants to load a saved containment we give them a list of the saved containments (plus an option to load from any file), then pull in the one they choose. if they choose one from the list then we remove that file so that they don't get multiple copies of the same activity.
- there should be a nice friendly UI for all of this, of course. bonus points if the "share with a friend" is something cooler than having the user do "save to file, open mail client, attach that file to an email"
- certain actions, like 'new activity' (and 'load activity' from the containment saving idea) really really do not belong in every single frigging containment while you're zoomed out.
- the first, obvious step is that some actions should be associated with the corona instead of containments.
- some (new activity) should only be shown while zoomed out
- others (lock, zoom out) should be in the active containment when zoomed in, but then only shown once while zoomed out. I hope multiple views don't complicate this.
- then we need some sort of "corona cashew" to display these actions. I'm thinking of a sort of bastardized toolbox that's expanded like the zoomed-out-activity ones but clings to hte edge of the screen... other ideas are welcome, though.
- if you combined this with some other zui improvements you could probably make a soc project of it. only problem is the containment saving ui will be hard to do nicely without this. hey, maybe combine the two...?
containment mouse interaction
- this will probably be my soc project.
- right now, each containment plasmoid provides a hardcoded contextmenu, the scroll wheel changes virtual desktop, and the wallpaper can define responses to other clicks.
- what we need is plugins that provide contextmenus (or perhaps something more?) and a UI to configure them and assign them to buttons 1-3 (apparently qt doesn't support extra mouse buttons).
- the default would be be none for left, the usual contextmenu for right, and none for middle
- would need to turn existing hardcoded contextmenu(s) into plugins.
- need to properly handle extra containment-stuff: the folderview as containment has a bunch of important contextmenu actions.
- buttons with nothing assigned would have the click passed to the wallpaper in case it wants to use it
- also, the scroll wheel should be configurable. possible options: change virtual desktop, change activity, zoom
- a loose end that needs tying up: pasting (ctrl-v or middle button) on the desktop should do the same thing as dragging stuff there by default. I keep trying to make notes by pasting text. :)
full keyboard control
- two parts: dbus interface and a runner
- first, we need a full dbus interface to plasma
- I want to be able to control as much as possible. everything, really. every applet, every containment...
- first, we need a way to get a listing of the containments running, and applets running in a specific containment
- we need a way to refer to those specific containments and applets, to do things to them.
- I should be able to do stuff like move, resize, add, remove... I'm not sure if changing configuration makes sense. being able to make it flash would be useful too (at the very least to confirm you're actually acting on the applet you think you're acting on)
- second, we need a runner
- this should be a less-scary way to use the dbus interface... something a bit more intuitive with less typing
stuff I might actually get done for 4.3
keyboard shortcuts (mostly done)
- shortcuts need to be configurable. (done)
- unfortunately there seems to be some bug with setting emacs-style shortcuts in a kshortcutdialog. I need to look into that.
- also need to look into why qt4.5 made my shortcuts work on the dashboard but not the desktop.
screensaver security (partly done)
- category filters are already in, but they're not enough
- need a list of constraints in the app (just plasma-overlay for now) and then every plasmoid's .desktop file needs those constraints for it to show up in plasma-overlay's appletbrowser. obviously it shouldn't add them unless it's actually capable of satisfying them. (partly done)
- also need a function in Applet so that applets can ask about the constraints and not try to do things they're not allowed to do (done)
- for scripted plasmoids we may be able to enforce the constraints from plasma instead of trusting the developers
- the hard part: what should the constraints be?
- for all the plasmoids in svn that don't have specific owners (some get passed about a lot) we should probably review them before release to make sure the .desktop isn't out of date.