# identifying (filco TKL) keyboard for setxbmap



## mdl90 (Aug 30, 2016)

I have a Filco Majestouch 2 TKL (88/105key). How can I identify this correctly using `setxbmap`? I have tried some of the options - pc105 is not right.

```
% dmesg | grep -i keyboard
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
ukbd0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.05, addr 2> on usbus0
ums0: <vendor 0x04d9 USB Keyboard, class 0/0, rev 1.10/1.05, addr 2> on usbus0
```


----------



## mdl90 (Aug 31, 2016)

In other words, where can I find out which keyboard `-model` to use with any keyboard?


----------



## Juha Nurmela (Aug 31, 2016)

See xkeyboard-config(7).

Not knowing anything about that particular keyboard, but might it be just another pc105 (or ...4) and you just need to get the country right?

Juha


----------



## mdl90 (Aug 31, 2016)

Yes, indeed, it seems to be 105. I've misdiagnosed the issue - in the shell (sh) '£' does not display. This problem is not there in tcsh, csh.

Possibly, this is a locale problem in another guise:

https://forums.freebsd.org/threads/44934/#post-327775

update:
When I set 'setxkbmap -layout gb -model pc105' in .profile, from login shift-3 gives '#'
If I then do `setxkbmap -layout gb -model pc105` at sh prompt, shift-3 gives '£'

Why is that?


----------



## Juha Nurmela (Aug 31, 2016)

.profile might be ignored by the shell in your case #1. There must be a better place for the command, depends on how you log in. .xsession, .xinitrc ...

`xev` can be used to see what Xserver thinks about a key, `od -x` what a shell sees.

Juha


----------



## mdl90 (Aug 31, 2016)

I use `xdm` with `fvwm`. Neither changes in .xsession nor in .xinitrc seem to have an effect. Both .profile and .shrc have been edited with the command.


----------



## Juha Nurmela (Aug 31, 2016)

In that case ~/.xsession should suffice. It's rwxr-xr-x ? /usr/local/bin missing from PATH at that time ? Setting reverted at some later point by the window manager ? Clashing 8859 and UTF-8 world views ? 

Juha


----------



## mdl90 (Aug 31, 2016)

Hmm...

In /var/log/xdm.log


```
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Error:  No Symbols named "pc105" in the include file "gb"
>  Exiting
>  Abandoning symbols file "default"
```
FWIW:

```
$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_COLLATE=C
LC_TIME="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=
```


----------



## Juha Nurmela (Aug 31, 2016)

Try another approach ?

```
$ cat /usr/local/etc/X11/xorg.conf.d/keyboard.conf
Section "InputClass"
  Identifier  "KeyboardDefaults"
  Driver  "keyboard"
  MatchIsKeyboard "on"
  Option  "XkbLayout" "gb"
  Option  "XKbOptions" "terminate:ctrl_alt_bksp"
EndSection
```

Juha


You could use MatchProduct  "bla bla" and such if you had another keyboard with a different layout. Not likely, but ...


----------



## mdl90 (Aug 31, 2016)

Working not very systematically, I made the following change in .login_conf

```
me:\
  :charset=ISO-8859-1:\
  :lang=en_GB.ISO8859-1:

#me:\
#  :charset=UTF-8:\
  #  :lang=en_GB.UTF-8:\
  #  :setenv=LC_COLLATE=C:
```
after `cap_mkdb` and restarting my x session '£' key works now also in `sh`.

Apparently this change made the difference, or I am mistaken. Can you explain?

..before this I had created /usr/local/etc/X11/xorg.conf.d/keyboard.conf with your contents and soon after deleted the file.

I then restored .login_conf to an earlier condition (i.e. ISO, as above), ran `cap_mkdb` etc.

Hmm, somehow this feels like my human error.

...but then why only affecting `sh`?


----------



## Juha Nurmela (Aug 31, 2016)

Looks like sh just does not like multibyte characters. I see the same, command line shows \nnn\nnn, but echo output is then ok. hmrmh...

Fortunately it's cosmetic, taken as non-whitespace.

```
$ ls B\xxx\xxxC
ls: BÖC: No such file or directory
```


----------



## Juha Nurmela (Sep 1, 2016)

Dammit, will I ever learn to read the manpage properly before opening mouth.

In the BUGS section, sh(1), it laments about the editline lib. Sure enough,
`set +o vi` to disable vi-mode editing and now national keys echo as expected when typing on the console where it's UTF-8.

Juha


----------

