Activity epiphany

Duncan 1i5t5.duncan at
Thu Oct 13 12:14:47 BST 2011

Over the months and years since kde4 came out, I've read a lot about 
activities... and they always seemed "nice" in an abstract "wow, it's 
nice they can do that" kind of way, but not necessarily something I'd use 
a lot, personally, tho I couldn't really put my finger on why I wasn't as 
personally enamored with them as I might be.

Today I figured it out.

The trigger for my epiphany was reading yet another blurb about another 
article by Aaron Seigo on activities, as it happened, on his epiphany 
that lead to the ideas that have gradually evolved into activities as we 
know them in kde (and the new plasma-active).

Here's the article:

Quoting the first couple paragraphs (combined) as they appeared in my 
feed reader:

> Several years ago now I had a minor epiphany while doing field research
> in the offices of friends and work associates on how people use their
> computers. The ideas led to the concept of "Activities", which I
> originally called "Projects" (we changed the name because it was about
> more than just things we could call a "project").The idea was fairly
> grand: you communicate to the computer what you are currently doing and
> it adapts to that. You would be able to teach it what it means to be
> doing that thing: "I use these files, talk to these people, need this
> network connection, want these applications ..." The teaching would
> happen over time as you engage in your activity, whatever it might be.

As I said, I finally got it, I think, and why altho it's a great feature 
for general computer newbies, it's not all that impressive in actual 
practice for me personally, because my personal assumptions are that of a 
power user comfortable at the command line and with scripting.

Basically, all activities are, from a computer power-user perspective, is 
an automated method to batch a bunch of apps with their content together, 
launching and shutting them down as a unit, potentially at the same time 
changing configuration options that affect that activity -- disabling 
screensavers and automatic display sleep cycles when activating a movie 
activity, for instance, then activating them again when switching to some 
other activity.

For a relative computer novice, or one more accustomed to taking an 
adversarial position regarding their computer because they can never seem 
to get it to work the way they want, as opposed to a computer power user 
who appreciates the way computers work, and uses that to their advantage, 
to the point they don't even realize half the stuff they're doing any 
more as it's so intuitive to them now... to that non-power-user, 
activities have the potential to open up a whole new world of automation 
for them, one they never appreciated as existing, before.

But, for the already computer power user, the story is far different.  To 
them, if they want a bunch of things to startup together, including a few 
config changes, the intuitive answer is to write a script.  This script 
starts the apps and loads the appropriate data; if the intent is to watch 
a movie, it runs xset and etc to turn the display sleep timeout off if; 
if necessary, apps are started with a different title or profile or 
whatever, using command line options, so the appropriate kwin window 
rules will apply and place and size the window appropriately for that 
activity, including the appropriate virtual desktop, always-on-top, etc, 
settings; the script will either launch everything and quit, or wait 
around to reset things when the user's done and shuts down the key app; 
if necessary, the script will sleep a few seconds and then launch wmctrl 
to reposition the windows; etc.

FWIW, it can be noted that /exactly/ this sort of thing is what I do, 
routinely.  When kde4 killed khotkey multi-key support, I grumbled quite 
a bit, then had the insight that I could accomplish the same thing by 
having an initial key launch a customized menu app, that took the second 
key and issued the appropriate command; a few hours later, I had exactly 
that sort of solution scripted and running.  As part of that solution, I 
start a konsole session with a special profile, so kwin can detect that 
it's not a normal konsole window, and treat it differently using window 
rules.  I routinely setup window rules as needed to get windows to go 
where I want and behave as I want.  At one point, the window name was 
changing after launch and I couldn't get window rules to put it where I 
wanted without using force, which then wouldn't let me move it if 
desired, so I searched for, installed, and setup a wrapper script that 
handled it all for me.  I have scripts that launch a whole series of 
commands in a particular order, waiting when necessary, etc.

All this is now second nature to me, just part of using the computer.  So 
activities don't actually do much for me that I couldn't do already, only 
with more control, because I setup the script/config/whatever to do 
exactly what I wanted, when I wanted it.
For this power user, therefore, activities aren't a big deal, since they 
don't really offer me any sort of functionality I don't already have and 
use more or less routinely.

Meanwhile, that one word I mentioned two paragraphs up, control, is 
important to me.  Certainly at this stage, and I expect for some time 
altho the kinks should be worked out eventually, there's all sorts of 
bugs and unimplemented features in the activities implementation, at 
least compared to what I'm already using.  That's no fault of activities; 
they're simply at an early stage in their evolution at this point, while 
the various tools I currently use are reasonably mature by this point, 
and my comfort and confidence level in using them relatively high.

But, as someone mentions in the comments as an example; say they need to 
know the bus schedule.  They resume their laptop, start up the app, load 
the schedule, find when the bus comes, then put the laptop to sleep.  
Later, they shutdown.  Oops, they forgot to shutdown this one-time-needed 
schedule-lookup before the activity quit for shutdown -- now the thing's 
associated with the activity!  What they SHOULD have done was switch to 
the "other/misc" activity, before starting the lookup, so it'd be 
associated with it if they forgot, instead of with whatever other 
activity they had been working on last.

The non-power-user could well learn to take that sort of issue in stride 
and live with it as a cost of all the power they now have with 
activities.  But that'd never satisfy a power user.  When they startup 
that activity, they want the stuff they configured for that activity in 
the way they configured it, no more, no less, no unexpected bus schedule 
apps starting just because that's they activity they were in when they 
happened to check the bus schedule.

With a script, that's how it works.  The script only includes what you 
put in the script in the first place, no weird bus schedule app because 
you forgot to shut it down before shutting down the activity.  It does 
what it has been programmed to do, no more, no less.

Plus, activities simply aren't that powerful yet.  The features will 
likely come, but there's a lot of experimentation and development, and 
buggy first implementations to work thru, between now and then.  
Meanwhile, the power user already has the tools at his disposal, or knows 
where to get them, to do what he needs to do.  They're reasonably mature 
and do what they're supposed to do.  No experimentation and development, 
no buggy first implementations (but a script-writer's own) to go thru 
before it's working exactly as the power-user desires.

So, yeah, activities might be nice... someday.  But now I understand why 
they don't seem like that big a deal to me, today, and why I've been 
disappointed and frustrated with the still missing features and bugginess, 
when I /have/ experimented with them.  That's not their fault, or that of 
the kde or plasma devs.  That's just the state those tools are in.  
Meanwhile, power users at least have had alternatives that do very much 
the same thing, except with more predictability and control, for years.  
It's the non-power-users that might at some point seriously benefit, and 
yes, at some point, when it all "just works", it might be a reasonable 
and by then lower hassle replacement for the existing tools the power-
user is using today, but even then, for the power-user, it won't be that 
big of a deal, because they'll have been used to being able to do that 
for years, and will have taken the ability to do so for granted.  This 
new tool will be just that, simply another tool in the toolbox to be 
used, but not the only one that can do the job, and probably quite often, 
not the /best/ one for the job, not because the tool isn't good at what 
it does, but because what it does is a poor fit for the exact purpose the 
power user had in mind.  After all, a knife can often be used as a 
screwdriver, but using the correct size/type screwdriver for the screw 
does tend to make the job go much smoother. =:^)

Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

This message is from the kde mailing list.
Account management:
More info:

More information about the kde mailing list