[kde-linux] Alt-F1 shortcut (Kicker) disappears

Duncan 1i5t5.duncan at cox.net
Sat Apr 17 15:21:59 UTC 2010


Bruce Miller posted on Sat, 17 Apr 2010 05:57:10 -0700 as excerpted:

> I have an recurrent problem with KDE 4.x in which the Alt-F1 shortcut
> ceases to function. The Alt-F1 shortcut brings up Kicker and the panel
> (what, in another OS's terms, is called the "Start Menu").
> 
> Does anyone know what might be causing this problem? I suspect it might
> be a "finger fumble" on my part. By definition, "finger fumbles" are
> random and therefore hard to avoid, but there is some possible comfort
> in knowing the cause.
> 
> More importantly, does anyone know a fix or a possible workaround? So
> far, the only thing that has worked for me is the "nuclear option,"
> which is surely overkill. By "nuclear option," I mean backing up the
> ~/.kde tree and reconfiguring KDE from scratch.
> 
> I use Kubuntu and am currently on Lucid Lynx 10.04 Beta2, using KDE
> 4.4.2.

I don't know if kubuntu customizes this or not.  The below describes what 
kde ships.

There's a couple ways to set that.  One is using kcontrol (aka system 
settings, even tho it's kde control more than system settings), computer 
administration, keyboard and mouse, global keyboard shortcuts.  Select 
plasma-workspace from the drop-down list.  Activate Application Launcher 
Widget.

However, depending on your plasmoid/widget layout (number of panels and 
activities, the plasmoids on each), you may have several such items 
listed.  You can click on each one to see what the default reference is 
(if it's unset or set to something else), and set it to that, or select a 
custom hotkey.

The other way to set it is more direct, and better, if you have several 
launchers on various activities and panels, as this way you know which one 
you're actually setting.  Context-click on the plasmoid in question.  
Select application launcher settings, then in the resulting dialog, the 
keyboard shortcut tab.  Click the button and set what you want.

As far as your "nuclear option", consider using the bisect method the next 
time you are forced to "go nuclear".  You didn't mention it, but this 
should normally be done while working in other than kde, so from the 
command line or from gnome or something, not inside kde.  Backup (copy) 
the ~/.kde tree as you mentioned, then in the working version (not the 
backup), delete roughly half the stuff.

Start kde and see if the problem's still there or is gone.  (Of course, a 
lot of your other customizations may be gone, but don't worry about that, 
you're just testing.)  If the problem was in the part that you deleted, 
the problem should be gone.  If the problem was in the part that you kept, 
it should still be there.  Quit kde again, and delete the working ~/.kde 
copy, since the test will have likely recreated a bunch of files with 
default entries again, and you still have your complete backup.

Now, based on whether the problem was gone or not, copy back from your 
backup the half of the settings that you now know do NOT have the problem 
(the half you deleted if the problem was still there, the half you kept if 
the problem was gone.  Also copy back about half of the "bad" half, so you 
now have roughly 3/4 of your settings, the half you know was NOT the 
problem, and half of the half you know WAS the problem.

Repeat the process recursively, each time narrowing down the bad 
candidates, half the first time, a quarter the second, an eighth the 
third, etc.

Eventually, you'll know what directory the problem is in, so you can keep 
everything else, and repeat the process in that directory, until you find 
the subdirectory it's in, then the individual file.

When you get down to the individual file, you have a choice.  (Well, 
actually, you have this choice anywhere along the line, but when you get 
to the individual file is where it starts getting interesting.)  By this 
time, based on name and narrowing missing functionality, you should have 
figured out to a reasonable degree how many remaining settings that file 
contains.  You can confirm your guess by seeing how big the file is and/or 
by taking a look at it in a text editor.  If you're comfortable with 
resetting any still affected settings, you can simply delete the file and 
do the reconfiguring necessary.

People that don't customize that much will probably find their quitting 
point earlier in the bisect, since they don't have many customized 
settings lost that they have to reconfigure.  Heavy customizers such as 
myself will continue the bisect far further, since they have more to lose 
at the same point in the process.  Others may simply be curious, and want 
to find what went wrong to the finest degree possible.  I'm generally one 
of those folks too, even where I don't customize so much.

If you aren't satisfied with just the file, you can continue the process 
into the file itself, using the text editor instead of file operations, 
now.  KDE has deliberately continued to keep nearly all settings in text 
based files, precisely so they /can/ be edited with a simple text editor, 
if need be.

Often, you'll find the file is the reasonably standard *.ini file format 
that was popular back in the MS Windows 3.x days.  These have sections 
denoted by [titles], followed by lines of configuration for that section, 
usually in setting=value format.  These files are very easy to continue 
bisecting.  Simply choose about half the file to delete, working with 
whole sections.  Continue bisecting until you find the specific problem 
section.

When you know the specific bad section in the file, you again have the 
choice of simply deleting that and reconfiguring what's left, or focusing 
now on just the bad section and continuing the bisect to the individual 
line level, the individual configuration item.

Now some general bisect method observations, based on experience.  The 
first few times you do it, it'll be hard.  But as you get more familiar 
with the process and the way each app or family of apps (all of kde in 
this case) stores its settings, it'll get much, much easier, as you'll 
already have an idea where the problem is before you start, often to the 
file or just a few files level, thereby eliminating multiple bisect 
iterations before you even start.

With kde, the settings tend to be in one of two subdirs, both under
~/.kde/share.  Kde apps with just a few settings, a file or two worth, 
generally keep them in ~/.kde/share/config/ .  Kde apps with more settings 
or data and settings, enough to have a subdir of files, will use a subdir 
in ~/.kde/share/apps/ instead.

So your problem is very likely to be in either an appropriately named
file in ~/.kde/share/config/ , or in an appropriately named subdir in
~/.kde/share/apps/ .  Knowing just that already eliminates a bisect 
iteration or two, and if you can either guess what subdir/file by looking, 
or at least eliminate half or more that you know definitely do NOT apply 
so you don't need to test them, you eliminate even more bisect iterations, 
and with a bit of experience, you'll often need just one test at the file 
level to confirm your guess, before diving into the file itself, should 
you decide to do so.

One important exception to remember is that some of the newer apps and 
settings are in the freedesktop.org standard config or data dirs.  Akonadi 
settings are one example.  ~/.config/ (or other similar location set 
either by your distribution, or the $XDG_CONFIG_HOME and $XDG_DATA_HOME 
variables, if appropriately set and exported, thus giving the user a way 
to change the location, if desired) is used for these, instead of 
~/.kde/.  But this is pretty easy to figure out, if the problem doesn't go 
away when you backup and remove the entire ~/.kde dir, and now you have a 
pointer as to where to look next. =:^)

Another option, tho it requires a bit more skill then bisect, and that you 
know what specific application is the problem (thus, it wouldn't work 
here, since you're not sure what's causing the problem, only that it 
occurs over time), is to use strace, and then grep, running from a konsole 
window.  This works great if you want to know where a specific app looks 
for its config, for instance, or if one is crashing, so you know where to 
start your bisect as above.  You can check the strace and grep manpages 
for details on the options.

strace -f -eopen <app> <app options and parameters>

... will give you a list of all the files <app> tries to open as it runs.

The problem with just strace is that for the average modern X based app, 
especially kde and gnome apps, you'll often have output of several hundred 
if not several thousand lines to go thru (several times that if you were 
tracing everything, not just file opens).  One thing's for sure, an strace 
like that really DOES give you an appreciation of just how much work your 
computer is doing behind the scenes!

But to filter that output down a bit, you pipe the output to grep, like so:

strace -f -eopen <app and parameters> 2>&1 | grep <path you're interested 
in> | grep -v <stuff you're not interested in>

The 2>&1 bit is important, as strace's output normally appears on STDERR, 
not STDOUT, so it won't get piped to grep unless you redirect STDERR (file 
descriptor 2) to STDOUT (file descriptor 1).

As a more real example, try this (replace /home/user as appropriate):

strace -f -eopen systemsettings 2>&1 | grep /home/user/

As that's still a lot of output, we'll start by filtering out references 
to icons and cursors with a second grep:

strace -f -eopen systemsettings 2>&1 | grep /home/user/ | \
grep -v 'icon\|cursor'

The \ ending a line simply tells the shell to continue with the next line, 
treating them as one.  The -v tells grep to filter these out.  As you'll 
note, I used quotes on the second grep's search term, so the shell 
wouldn't try to parse the pipe (|) and redirect to a command called 
"cursor".  The | means "or" in regular expression language which is what 
grep uses, but it has to be escaped by the \, or it would simply be taken 
as a literal | symbol.  So the second grep says filter out lines that 
include "icon" OR "cursor".

Here, for a simple systemsettings run without actually changing anything, 
that's actually getting almost manageable, "only" about 60 lines of output 
to sort thru.  But as soon as you actually start wandering around in 
systemsettings, you'll get more output again.  You could take a look, and 
say, OK, I'm not interested in fonts either, and add that to your grep -v 
line, with the appropriate \|, and continue filtering out additional stuff 
until you get something manageable.  A hint, "ENOENT" means the file or 
directory doesn't exist, so if you're only interested in files that exist, 
you can add that to your grep -v filter.  And if you're only interested in 
files in ~/.kde, you can add the subdir to the first grep.  You will also 
probably see references to your style config, (oxygenrc, here), that you 
can filter out, along with fonts/cursors/icons, but I didn't add here, as 
if you use a something other than oxygen, that might have confused you.

I'm sure that's WAYYY more info than you expected, but perhaps it'll be 
useful, if not to you, maybe to someone else who ends up reading it. =:^)

-- 
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




More information about the kde-linux mailing list