Difference between revisions of "ThinkPad OSD"

From ArchWiki
Jump to: navigation, search
(minor formatting updates)
(Loading nvram at boot and give permission to access /dev/nvram)
Line 6: Line 6:
  
 
== Loading nvram at boot and give permission to access /dev/nvram ==
 
== Loading nvram at boot and give permission to access /dev/nvram ==
* Add {{ic|nvram}} to MODULES=(... nvram) in {{ic|/etc/rc.conf}}
 
{{Note|Check if there is already a line matching {{ic|nvram}} in the {{ic|/etc/udev/rules.d/}} directory.
 
  
In this case, you have to modify the existing entry, and do not create a tpb.rules.}}
+
* Check with lsmod if the nvram module is loaded on boot
 +
* If not, add {{ic|nvram}} to MODULES=(... nvram) in {{ic|/etc/rc.conf}}
 +
* Check /dev/nvram permissions, your user must have read access to it.
 +
* (udev 181-2) create /etc/udev/rules.d/tpb.rules:
 +
KERNEL=="nvram", GROUP="audio", MODE="0640"
  
  
In udev 119-1
+
* (udev 119-1) Edit /etc/udev/rules.d/51-arch.rules (WARNING: It will be overwritten with new udev update!)
* Edit file, WARNING: It will be overwritten with new udev update!
+
KERNEL=="nvram",  NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0660"
/etc/udev/rules.d/51-arch.rules
+
* (older udev) /etc/udev/rules.d/tpb.rules:
  KERNEL=="nvram",   NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0666"
+
  KERNEL=="nvram", NAME="misc/%k", SYMLINK+="%k", MODE="0660", GROUP="users"
 
* Note: this line seems to work better for some users:
 
* Note: this line seems to work better for some users:
  KERNEL=="nvram", GROUP="kmem", MODE="0666"
+
  KERNEL=="nvram", GROUP="kmem", MODE="0660"
  
 +
{{Note|Check if there is already a line matching {{ic|nvram}} in the {{ic|/etc/udev/rules.d/}} directory.
 +
In this case, you have to modify the existing entry, and do not create a tpb.rules.}}
  
In older udev
+
{{Note|Write access to nvram is only needed to set volume with MIXER ON. see /etc/tpbrc.}}
* Add udev rule for setting the permissions to /etc/udev/rules.d/
+
/etc/udev/rules.d/tpb.rules:
+
KERNEL=="nvram", NAME="misc/%k", SYMLINK+="%k", MODE="0660", GROUP="users"
+
  
 
== Setting a more readable color and better placement ==
 
== Setting a more readable color and better placement ==

Revision as of 15:44, 11 March 2012


Getting ThinkPad OSD working on Arch Linux

General Note

New desktop environments (GNOME, KDE, and maybe even Xfce) support their own osd notifications for important events (volume up/down/mute and brightness up/down), which might be enough for most users. In order to use those notifications instead of the ones provided by TPB, map the keyboard-events of those keys to the proper keycodes.

Loading nvram at boot and give permission to access /dev/nvram

  • Check with lsmod if the nvram module is loaded on boot
  • If not, add nvram to MODULES=(... nvram) in /etc/rc.conf
  • Check /dev/nvram permissions, your user must have read access to it.
  • (udev 181-2) create /etc/udev/rules.d/tpb.rules:
KERNEL=="nvram", GROUP="audio", MODE="0640"


  • (udev 119-1) Edit /etc/udev/rules.d/51-arch.rules (WARNING: It will be overwritten with new udev update!)
KERNEL=="nvram",   NAME="misc/%k", SYMLINK+="%k", GROUP="kmem", MODE="0660"
  • (older udev) /etc/udev/rules.d/tpb.rules:
KERNEL=="nvram", NAME="misc/%k", SYMLINK+="%k", MODE="0660", GROUP="users"
  • Note: this line seems to work better for some users:
KERNEL=="nvram", GROUP="kmem", MODE="0660"
Note: Check if there is already a line matching nvram in the /etc/udev/rules.d/ directory. In this case, you have to modify the existing entry, and do not create a tpb.rules.
Note: Write access to nvram is only needed to set volume with MIXER ON. see /etc/tpbrc.

Setting a more readable color and better placement

/etc/tpbrc:

OSDCOLOR    Green
OSDVERTICAL 0
OSDHORIZONTAL 0
OSDPOS      MIDDLE
OSDALIGN    CENTER

Starting with KDE

~/.kde/Autostart/tpb-startup.sh:

# Start Thinkpad OSD daemon
if [ -x /usr/bin/tpb ] &&  [ -w /dev/nvram ] && [ -r /dev/nvram ]; then
    /usr/bin/tpb -d
fi

Starting with Fluxbox

~/.fluxbox/startup

# Start Thinkpad OSD daemon
if [ -x /usr/bin/tpb ] &&  [ -w /dev/nvram ] && [ -r /dev/nvram ]; then
    /usr/bin/tpb -d
fi