Documentation
1. FnFX
2. Requirements
2.1 Hardware Requirements
2.2 Software Requirements
3. General Information
3.1 FnFX Concept
3.2 Verified Toshiba Models
4. Functions
4.1 Daemon Functions
4.2 Client Functions
5. Installation
5.1 Compilation
5.2 Daemon Configuration
5.3 Client Configuration
5.4 Configuration Examples
6. To-do
7. License
8. Contact
9. Thanks
10. References
1. FnFX
FnFX enables owners of Toshiba laptops to change the LCD brightness,
control, the internal fan and use the special keys on their keyboard
(Fn-x combinations, hot-keys). The internal functions will give the
possibility to map the Fn-Keys to functions like volume up/down, mute,
suspend to disk, suspend to ram and switch LCD/CRT/TV-out. These
functions heavily depend on the system and/or kernel configuration.
You will need at least a kernel (v2.4.x, v2.5.x, v2.6.x) with ACPI and
Toshiba support (CONFIG_ACPI and CONFIG_ACPI_TOSHIBA).
2. Requirements
2.1 Hardware Requirements
Any recent Toshiba model. Recent means: Every Toshiba laptop built
in 2002 and later will work with FnFX. A list with verified and
tested Toshiba laptops is found under 3.2.
2.2 Software Requirements
- Linux v2.4.x
- Linux v2.5.x
- Linux v2.6.x
All Linux v2.4.x kernels will need ACPI patches. All 'major'
distributions already roll out v2.4.x kernels with these patches. To
make it short: At least CONFIG_ACPI and CONFIG_ACPI_TOSHIBA must be
defined in the kernel config. More information on ACPI and Linux can
be found under [1].
All v2.5.x and v2.6.x kernels already have the required ACPI
drivers. Again: ACPI must be enabled. CONFIG_ACPI and
CONFIG_ACPI_TOSHIBA are your friends.
To check if ACPI and ACPI Toshiba support are enabled check the
following proc entries exists:
/proc/acpi
/proc/acpi/toshiba
If they do exist, FnFX will work on that system. If they do not
exist try `modprobe toshiba_acpi' as root. If this throws errors
like 'FATAL: Module toshiba_acpi not found' the kernel is most
likely not compiled with CONFIG_ACPI and CONFIG_ACPI_TOSHIBA.
Please recompile your kernel with the ACPI drivers or have a
look for a precompiled kernel for your distribution which has ACPI
and ACPI Toshiba support.
3. General Information
3.1 FnFX Concept
FnFX consists of two programs: The daemon `fnfxd` and the client
`fnfx`. Fnfxd has to be run as root. While running without fnfx,
the daemon reacts on Fn-x combinations and hot-keys which are defined in `/etc/fnfx/fnfxd.conf' ('/usr/local/etc/fnfx/fnfxd.conf'). If a instance of fnfx is running,
the received Fn-x/hot key events are passed to the client which reads
its configuration from '~/.fnfxrc'. While fnfxd only executes internal
commands, fnfx can also start arbitrary programs.
If you only want to use the internal commands (changing LCD brightness...),
there is no need to run the client fnfx. On the other side,
if you really want to map the Fn-x combinations/hot-keys to launch
programs, you will need to configure and start both -- the server and
client.
3.2 Verified Toshiba Models
The following Toshiba laptops have been tested by FnFX users. Note:
every new Toshiba laptop really should work just fine with FnFX.
- Toshiba Libretto L5W
- Toshiba Portege 2000
- Toshiba Portege 2010
- Toshiba Portege R100
- Toshiba Satellite 1410-604
- Toshiba Satellite 2410-303
- Toshiba Satellite 2450-401
- Toshiba Satellite 5205
- Toshiba Satellite 5100-201
- Toshiba Satellite 5200-801
- Toshiba Satellite 5205
- Toshiba Satellite A10-S203
- Toshiba Satellite Pro 490CDT
- Toshiba Tecra 9000
4. Functions
4.1 Daemon Functions
The daemon can execute the following internal commands:
- brightness up -- increase LCD brightness
- brightness down -- decrease LCD brightness
- toggle fan -- switch fan on/off
- toggle video -- toggle video: LCD -> LCD & CRT -> CRT
- suspend to ram -- suspend to ram via ACPI
- suspend to disk -- suspend to disk (hibernate) via ACPI
- volume up -- increase mixer volume
- volume down -- decrease mixer volume
- mute -- toggle mute
Notes:
- "toggle video" is _not_ supposed to work on all systems.
- "suspend to ram" and "suspend to disk" will only work, if the kernel
was compiled with the corresponding power management and acpi drivers
and if the system does support the sleep states (S3, S4).
The daemon configuration is made by changing the file
'/etc/fnfx/fnfxd.conf'. All valid Fn-x combinations and hot-keys can
be found in '/etc/fnfx/keymap'. If you have run `./configure` without parameters,
they're found in '/usr/local/etc/fnfx'.
Examples for the daemon configuration are found under 5.2.
4.2 Client Functions
The client can execute the internal commands as well as any arbitrary
program. The client configuration '~/.fnfxrc' has to be copied to the
home directory of the user who executes the client. An example can be
found in '/etc/fnfx/fnfxrc_example'. If you have run `./configure` without parameters,
they're found in '/usr/local/etc/fnfx'.
Examples for the client configuration are found under 5.3.
5. Installation
5.1 Compilation
The same as usual:
- ./configure
- make
- su -
- make install
Too quick? To compile FnFX, simply extract the file
`fnfx-0.2.tar.gz` by running `tar xfv fnfx-0.2.tar.gz`. Afterwards run
`./configure`. To compile FnFX run 'make'. If this worked, become root
and run 'make install'
If './configure' was run without any additional parameters, the
daemon is found in '/usr/local/sbin/fnfxd' and the client resides in
'/usr/local/bin/fnfx'. The configuration files are copied to
'/usr/local/etc/fnfx'.
5.2 Daemon and Client Configuration
If all steps from 5.1 went well, FnFX is ready to be configured.
The daemon configuration '/etc/fnfx/fnfxd.conf' ('/usr/local/etc/fnfx/fnfxd.conf') has a two sections.
All actions are defined in the section [actions] and are parsed
by the daemon on start up. An action entry has the following format:
action(key="FN-KEY";command="COMMAND")
Where FN-KEY is a Fn-x combination or hot-key. See
`/etc/fnfx/keymap' ('/usr/local/etc/fnfx/keymap') and COMMAND is one of the internal commands
listed under 4.1.
In the second section [mixer], the mixer can be defined which is
taken for the internal commands "volume up", "volume down" and "mute".
The format is quite easy:
mixer(device="MIXER")
Where MIXER is the mixer device. For example: /dev/mixer.
5.3 Client Configuration
The client configuration file is `.fnfxrc`, which first has to be
copied to the home directory of the user who is starting fnfx. See
4.2 and 5.4 for details.
The configuration file has the same structure like the one of
fnfxd. All actions are defined below [actions] and have the format:
action(key="FN-KEY";command="COMMAND")
While the daemon can only use the internal commands as command,
fnfx is able to run programs. See 5.4 for details.
5.4 Configuration Examples
The following lines are examples for action commands.
action(key="Fn-Escape";command="mute")
action(key="Fn-F6";command="brightness down")
action(key="Fn-F7";command="brightness up")
action(key="Fn-a";command="xmms")
The first three examples don't need further explanation. The
forth line is only possible in the client configuration. Remember?
Only fnfx can start programs, in this case 'xmms' when hitting Fn-a.
6. To-do
Yes, a X11 client is still missing. It's prio #1 and the next I
will code.
7. License
FnFX is released under the GPL.
8. Contact
Comments, bugs and beer to: Timo Hoenig, thoenig at nouse dot net
Project home page is: http://fnfx.sf.net/
Sourceforge home page is: http://sf.net/projects/fnfx
9. Thanks
A very warm 'Thank You' goes to all people who tested the previous
version of FnFX:
Curtis, Alex James, Alexandre, Nicolas, Meiosis, Peter, Jay, Glenn,
Paul, Alejandro (great pic! :), Marc, Alberto, Free, Mantas, Bruno,
Johannes and Wissam.
And I am damn sure that I have forgotten someone. Sorry.
10. References
[1] ACPI4Linux,
http://acpi.sf.net
|
|