1i5t5.duncan at cox.net
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
> 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
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: https://mail.kde.org/mailman/listinfo/kde.
More info: http://www.kde.org/faq.html.
More information about the kde