Trayfreq (pronounced trayfreek) is a GTK+ application released under GPL that lets you select your CPU's governor or frequency from a tray icon; therefore, trayfreq only depends on GTK+ and anything that can show tray icons.
CPU scaling requires you to have a kernel with the ability already built in or have an appropriate driver module loaded. If the former case represents you, then you do not have to worry. If the latter case represents you, follow the following steps:
Most modern computers use the module acpi-cpufreq. Other options include the p4-clockmod, powernow-k6, powernow-k7, powernow-k8, and speedstep-centrino drivers.
To load the driver:
# modprobe acpi-cpufreq
To load the driver automatically at start up add the module to /etc/rc.conf
# MODULES=( ... acpi-cpufreq ... )
CPU Governors Setup
Some CPU governors may not be built into your kernel, and you can add them to /etc/rc.conf to have them automatically load at start up. Again, edit /etc/rc.conf to load the governors' drivers.
# MODULES=( ... cpufreq-conservative cpufreq-powersave cpufreq-userspace cpufreq-ondemand cpufreq-performance ... )
Now, let's edit the configuration file for trayfreq.
# nano /usr/share/trayfreq/trayfreq.config
Everything will be commented out; uncomment what you want to use. Let's go through the options
- [events] -- the group events
- activate=/usr/bin/xterm -- this sets the program to launch when the tray icon is activated (left clicked usually)
- [governor] -- the group governor
- default=ondemand -- this sets the default governor to be set when trayfreq starts
- [frequency] -- the group frequency
- default=800000 -- this sets the default frequency in hertz to be set when trayfreq starts
Note that, if a default frequency is set, it will override the governor. Setting a frequency sets the maximum frequency and sets the governor to performance.
If you want, you can have a configuration file in your home folder, but it cannot set the program to run when the tray icon is activated for security reasons. The file should be ~/.trayfreq.config; if it exists, trayfreq will still look at /usr/share/trayfreq/trayfreq.config for the program to run when the tray icon is activated, but the configuration file in the home folder will override everything else.
- Because of how trayfreq currently works, if the current governor is to performance, trayfreq will show that it is set to the highest frequency instead of the governor performance. This is because setting it to a specific frequency is setting the maximum frequency to the chosen frequency and changing the governor to performance, and setting the governor to performance is setting the maximum frequency to the maximum available frequency and changing the governor to performance; they're the same!