Bug 58296 - konsole default.Keytab being ignored?
Summary: konsole default.Keytab being ignored?
Status: RESOLVED NOT A BUG
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: RedHat Enterprise Linux Linux
: NOR normal
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-05-10 05:13 UTC by Greg Ercolano
Modified: 2004-05-29 03:14 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Greg Ercolano 2003-05-10 05:13:43 UTC
Version:           konsole 1.2 (using KDE KDE 3.1)
Installed from:    RedHat RPMs
OS:          Linux

Making modifications to the default.Keytab file appears to have no effect on Konsole even after restarting (exiting all instances).

Under Redhat 9.0, I modified the file:

    /usr/share/apps/konsole/default.Keytab

..changing these settings such that backspace generates backspace, and delete generates delete:

    key Backspace      : "\x08"
    key Delete         : "\x7f"

But these settings do not take effect.

'strace konsole' appears to show the default.Keytab is not even opened; the following shows 'strace konsole' invoked from an xterm:

---- snip
% strace konsole | & grep -i keytab
stat64("/usr/share/apps/konsole/linux.keytab", {st_mode=S_IFREG|0644, st_size=3306, ...}) = 0
stat64("/usr/share/apps/konsole/vt100.keytab", {st_mode=S_IFREG|0644, st_size=3276, ...}) = 0
stat64("/usr/share/apps/konsole/vt420pc.keytab", {st_mode=S_IFREG|0644, st_size=4498, ...}) = 0
stat64("/usr/share/apps/konsole/x11r5.keytab", {st_mode=S_IFREG|0644, st_size=1824, ...}) = 0
---- snip
Comment 1 Greg Ercolano 2003-05-10 05:25:31 UTC
It is possible this is a packaging problem on the part of Redhat 9.0; the file
that comes with is called 'default.Keytab', but when the file is renamed to
'default.keytab', it works.

FYI, the rpm that comes with redhat 9.0 includes a file called 'default.Keymap'
instead of 'default.keymap'. Argh:

---- snip
% uname -a
Linux ontario 2.4.20-6 #1 Thu Feb 27 10:06:59 EST 2003 i686 i686 i386 GNU/Linux

% rpm -ql kdebase | grep konsole | grep -i keytab
/usr/share/apps/konsole/README.KeyTab
/usr/share/apps/konsole/default.Keytab            <-- capital 'K'
/usr/share/apps/konsole/linux.keytab
/usr/share/apps/konsole/vt100.keytab
/usr/share/apps/konsole/vt420pc.keytab
/usr/share/apps/konsole/x11r5.keytab

% cp /usr/share/apps/konsole/default.Keytab /usr/share/apps/konsole/default.keytab

% strace konsole | & grep -i keytab
stat64("/usr/share/apps/konsole/linux.keytab", {st_mode=S_IFREG|0644,
st_size=3306, ...}) = 0
stat64("/usr/share/apps/konsole/vt100.keytab", {st_mode=S_IFREG|0644,
st_size=3276, ...}) = 0
stat64("/usr/share/apps/konsole/vt420pc.keytab", {st_mode=S_IFREG|0644,
st_size=4498, ...}) = 0
stat64("/usr/share/apps/konsole/x11r5.keytab", {st_mode=S_IFREG|0644,
st_size=1824, ...}) = 0
stat64("/usr/share/apps/konsole/default.keytab", {st_mode=S_IFREG|0644,
st_size=1833, ...}) = 0
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    OK
---- snip
Comment 2 Greg Ercolano 2003-05-10 05:49:02 UTC
Nope, it's still a problem.

Although the strace shows "default.keytab" is loaded, it is not taking effect as
the 'default'.

So the original bug seems to be valid; the default.Keytab is the correct name,
and is not being loaded.
Comment 3 Maksim Orlovich 2003-05-10 05:53:39 UTC
No, I'd say the problem is indeed in packages, in particular in this patch RedHat 
applies: 
--- kdebase-3.0.0/konsole/other/default.Keytab.old	Wed Apr 17 17:06:25 2002 
+++ kdebase-3.0.0/konsole/other/default.Keytab	Wed Apr 17 17:07:11 2002 
@@ -1,20 +1,4 @@ 
-# [default.Keytab] Buildin Keyboard Table 
- 
-# -------------------------------------------------------------- 
-# 
-# This file is used to create the buildin keyboard table. 
-# It is included for reference purpose with the *.keytab 
-# files that are loaded dynamically. 
-# 
-# Modifying it does not have any effect (unless you 
-# derive the default.keytab.h and recompile konsole). 
-# 
-# To customize your keyboard, copy this file to something 
-# ending with .keytab and change it to meet you needs. 
-# Please read the README.KeyTab and the README.keyboard 
-# in this case. 
-# 
-# -------------------------------------------------------------- 
+# [default.Keytab] Keyboard Table for Red Hat Linux 
 <snip the rest> 
 
Get the picture?  
 
(I'll leave it to the konsole devels to decide what to do with the report) 
 
Comment 4 Greg Ercolano 2003-05-10 07:08:56 UTC
> [re: Redhat modifications] 
> Get the picture?

The picture seems to be there's no way to modify the default behavior short of
recompiling, which is unfortunate.

To need to recompile the app to make changes to the default would seem a short
coming of the app, from an administrative point of view.

As a systems administrator, it is common for us to have to modify the linux
machines on our network to make the Backspace really generate backspace, eg.
when communicating to non-linux machines or dumb devices (modems, firewalls) via
telnet/ssh/cu from within terminal applications such as konsole.

I know we have Linus and DEC legacies to thank for that one, but often it's the
sysadmins that are left to unravel these idiosyncrasies, and we hope/pray for
config files to implement workarounds to adjust the defaults.

I guess this is turning into a wish list item. :/
Comment 5 Thiago Macieira 2003-05-10 12:42:50 UTC
You can try modifying the other keytab files. I'm not familiar with konsole code, but 
I'm guessing the default keytab is built into the program for the situations in which no 
keytab can be found. And as it's included as reference, it's renamed to 
default.Keytab with capital K. 
 
If you wish to modify the behaviour of a keytab, you need to modify the keytab 
being used. Checking my konsoles, in Settings | Keyboards, there's no "default" 
entry. So no matter what, a keyboard description file will be loaded. 
 
By the way, I believe a better solution for your problem would be to create or use 
another keytab. Obviously the keys your equipment wants are not in sync with the 
default keytab, which is xterm from XFree86 4.  
Comment 6 Greg Ercolano 2003-05-16 20:28:54 UTC
Something else I noticed; if I do make a new keytab file, e.g. 'default.keytab',
konsole will show it in the menu, but won't let me select it, so that it stays
in effect through restarts of konsole.

    1) Create /usr/share/apps/konsole/default.keytab,
       change the keyboard line to read:
            keyboard "default"

    2) Start konsole, choose the new 'default' option in the menu under:
            Settings | Keyboard | default
       Things will now work based on the settings in that file.

    3) Hit Settings | Save Settings

    4) Exit konsole, restart

    5) Check Settings | Keyboard, and it went back to the system default
       of Xterm (Xfree 4.x.x).

Comment 7 Kurt Hindenburg 2004-05-26 20:22:54 UTC
Simply use a different file name such mykeyboard.keytab.  And then select that file name under Settings->Keyboard (or use --keytab mykeyboard).  Hit the Settings->'Save as default' if you want it to be your default.

default.Keytab is not there to be edited; it is just a reference file for people to create a new keytab file.

From the top of default.Keytab:

# This file is used to create the buildin keyboard table.
# It is included for reference purpose with the *.keytab
# files that are loaded dynamically.
#
# Modifying it does not have any effect (unless you
# derive the default.keytab.h and recompile konsole).
#
# To customize your keyboard, copy this file to something
# ending with .keytab and change it to meet you needs.
# Please read the README.KeyTab and the README.keyboard
# in this case.
#
Comment 8 Greg Ercolano 2004-05-29 03:14:28 UTC
> default.Keytab is not there to be edited

Yes, pointed out in comment #3, and my opinion on that in #4,
where I question that as a design decision.

Basically, I think the decision to have the defaults.keytab
ignored during startup should be revisited; why not have it load
the defaults.keytab file if it exists? 

This way a sysadmin for a large facility can customize the default
behavior of the app to fit a local hybrid environment, without having
to recompile the vendor binaries.