Scripting the mouse acceleration setting
Stephen Dowdy
sdowdy at ucar.edu
Tue Jul 1 06:40:06 BST 2008
Yannick Gingras wrote, On 06/29/08 12:43:
> Hi,
> I use KDE on my laptop which features an integrated trackpoint and
> depending on where I work, I also plug-in a USB mouse or a Unicomp
> keyboard with another integrated pointer. All those pointing devices
> have different sensitivities so I constantly need to adjust my mouse
> acceleration setting.
>
> Is there a way to automate that? I could write a script that changes
> the value in ~/.kde/share/config/kcminputrc but how would I tell KDE
> to reload its config?
Yannick,
(this got long, but i think if you read all the way through you'll have a solution that works for you)
While i'm not entirely sure how to get all the KDE components to reload, i have some tips (hopefully) on how to do this type of thing, and answers that might solve your specific problem, even if it doesn't answer your question in a general way.
To figure out which KDE configuration files are used for various setting changes, you can...
Using KDE's Control Center, make a change to something, then you can find which files controlled that change by using 'find'...
(What's changed in the past 5 minutes?)
debian% find ~/.kde -mmin -5 -print
/home/dowdy/.kde/share/config
/home/dowdy/.kde/share/config/kwinrc
/home/dowdy/.kde/share/config/kdeglobals
/home/dowdy/.kde/share/config/kickerrc
/home/dowdy/.kde/share/config/kwinrulesrc
/home/dowdy/.kde/share/config/kcminputrc
/home/dowdy/.kde/share/config/kaccessrc
As you already know, kcminputrc handles the mouse bits..
debian# cat ~/.kde/share/config/kcminputrc ]
[$Version]
update_info=mouse_cursor_theme.upd:kde3.4.99
[Mouse]
Acceleration=2.5
MouseButtonMapping=RightHanded
ReverseScrollPolarity=false
Threshold=4
cursorTheme=
You can script the modification of this file easily using KDE's k{read,write}config executables. (which, btw, are great for editing any other MS-Windows-like .INI files, too ;)
if you don't specify a fully-qualified file path, k{read,write}config use the "config" path KDE elements as seen via:
debian# kde-config --path config
/home/dowdy/.kde/share/config/:/etc/kde3/:/usr/share/config/
e.g. scripting examples:
old_accel=$(kreadconfig --file kcminputrc --group Mouse --key Acceleration)
kwriteconfig --file kcminputrc --group Mouse --key Acceleration 2.5
Note that the Acceleration and Threshhold are directly related to the X server's
"Pointer Control" parameters:
debian# xset q | grep -A1 'Pointer Control'
Pointer Control:
acceleration: 25/10 threshold: 4
(note that acceleration is in Integer units, where 2.5 = 25/10)
So, you *could* bypass KDE's configuration files, and use 'xset m' directly. E.G. to set the above values, just run:
debian# xset m 25/10 4
How that interplays with KDE, especially across KDE restarts is something i can't answer. (KDE may save your current settings on shutdown, or won't and will reload the saved values from kcminputrc)
----------------
There MIGHT be a way using 'kwriteconfig' and 'kcmshell' to script a change to do what you need, but i'm not finding it offhand.
Take a look at:
debian# kcmshell mouse (the Kcontrol Mouse tool pops up, go to Advanced Tab)
debian# kwriteconfig --file kcminputrc --group Mouse --key Acceleration 4.1
debian% dcop kcmshell_mouse KCModuleProxy-mouse load
*** You can see that the mouse tool acquires the new Acceleration value.
debian# dcop kcmshell_mouse KCModuleProxy-mouse changed
false
*** but it doesn't think anything's changed, so
debian# dcop kcmshell_mouse KCModuleProxy-mouse save
*** doesn't initiate the actions that normally occur when you hit APPLY.
AHA, but *this* does work to activate the changes you make with 'kwriteconfig'...
debian# xset q | grep -A1 Pointer
Pointer Control:
acceleration: 31/10 threshold: 4
debian# kcminit mouse
debian# xset q | grep -A1 Pointer
Pointer Control:
acceleration: 41/10 threshold: 4
I didn't try kcminit at first, as i figured it might have some major side-effects once the system was initialized and running, but i'm not seeing anything... yet ;)
--stephen
___________________________________________________
This message is from the kde mailing list.
Account management: https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.
More information about the kde
mailing list