Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Power management / kernel tuning applet for Linux laptops
Shell Python Perl JavaScript
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
Icons
Images
csharp-applet
debugging
jupiter-current
jupiter-support-eee-current
packages/fuduntu
LICENSE
README.md

README.md

Jupiter Applet

Jupiter is a power and device management applet for Linux laptops designed to help reduce power usage by altering kernel parameters based on applied power state and to collect commonly used portable computing settings into a single applet.

Status

This software is no longer updated or maintained in any way. It is incompatible with Linux kernels 3.7+ and GNOME 3+.

About

Jupiter was created as a fork of my Eee PC Utilities software originally designed to maximize battery life and performance of ASUS Eee PC netbooks. The Jupiter fork was designed to fill the gap in Linux laptop power management by providing a solution for every portable Linux computer where no solution previously existed.

User Interface

The main UI for Jupiter was orginally written in C# but was later ported to Python by Jorge Luis Betancourt. When Jupiter is executed, a lightning bolt icon appears in the notification area which changes color based on the currently applied performance mode. When clicked with either the right or left mouse button, a pop-up menu list appears organized into sub menus by function. Each function available is automatically detected by the software at startup, and when the software determines that the capabilities are not available on the system it will automatically hide the function, or sub menu which prevents the user from assuming functionality that doesn't exist on his or her platform.

Power Management

Performance Modes are determined by evaluating CPUFreq capability within the kernel, and exposing three modes: Maximum Performance High Performance Power Saver Maximum Performance mode triggers CPUFreq to "Performance" mode which is the maximum capability available for your CPU. In High Performance mode, the CPU governor is configured to "On Demand" which reduces power when the CPU is idle. Power Saver mode configures your CPU governor to "Powersave" mode which lowers your clock rate to the minimum rate defined in CPUFreq utils for your specific CPU. In addition, if a support package exists for your platform such as the Eee PC, specific functions for your platform are executed. In the example of the Eee PC, when jupiter-support-eee is installed the following extra events are triggered when a performance mode change occurs:

  • Super Hybrid Engine
  • GMA Overclock

Jupiter recognizes a trigger event which occurs when the power cord is connected, or disconnected from a system. By default when power is applied, Jupiter assumes the user will want to be in Maximum Performance mode. If a user changes this mode while power is connected, Jupiter will "remember" this setting, and apply it the next time power is removed and re-applied making configuration super easy. The same is true when power is disconnected. By default, when a disconnect event occurs Jupiter will shift the performance mode to Power Saver. Should the user change the performance mode with the power disconnected, Jupiter will remember this setting and re-apply it auto-magically when power is removed in the future. In addition, Jupiter will apply specific kernel parameters on a power add or remove event in an effort to maximize power savings. When a support package is applied, vendor specific kernel parameters become available during power change events.

Device Management

Jupiter detects the availability of device control by evaluating the kernel for specific capabilities. If these capabilities are discovered to be available, a Device Control submenu is created, and an entry is added for each device found. When a user enables or disables a device in Jupiter, the requested mode is saved and Jupiter places that device back into the desired mode when the system is restarted.

Screen Resolutions

Jupiter utilizes the XRandR capability within the X server to provide a list of available video modes. When the notification icon is clicked, Jupiter will identify the connected video output device be it a monitor, laptop display, or TV and will present the user with the top four video modes available.

If a resolution of 1024x600 or 800x480 is detected, an additional "compressed" mode becomes available to the user as either 1024x768 or 800x600. Jupiter will remember the last configured resolution, and override any configuration change made in your operating system.

Screen Orientation

There are four screen orientation modes available to the user and when a supported touchpad driver is installed, the touchpad will also rotate with the screen. These modes are triggered utilizing the XRandR function of the X server. Jupiter remembers this configuration and will re-apply it after a reboot which is useful to users with touch screens and tablets.

Video Displays

When the Jupiter icon is clicked, it quickly evaluates the display devices available to the user. A video mode selection in Jupiter overrides any existing internal setting, so it is important to remember that if you use dual displays, first enable both displays in Jupiter and then configure them in your display manager.

Custom Kernel Parameters

Applying custom kernel parameters for power profiles couldn't be easier with Jupiter. The first step is to collect the parameters desired. For this example we will use powertop. Disconnect the power cord from your laptop or netbook to force it to battery mode. Open two terminals. In the first terminal, execute:

sudo powertop

Once statistics have been collected, powertop should report changes that can be made to improve power savings. For each item, collect the current setting before applying using the second terminal.

For example, if powertop recommends:

echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

In your second terminal type:

cat /sys/class/scsi_host/host0/link_power_management_policy

Write down the current setting (in the example it would be "max_performance").

Apply the change in powertop and continue until there are no further recommendations and close powertop.

In your terminal, we need to create two files one for the battery profile and one for a powered profile.

Issue the following commands to prepare the directory structure:

sudo -s
mkdir -p "/usr/lib/jupiter/vendors/$(dmidecode -s "system-manufacturer")"
cd "/usr/lib/jupiter/vendors/$(dmidecode -s "system-manufacturer")"

Create two files, one named "battery" and one named "power". They should look similar to the following:

battery

#!/bin/bash
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy

power

#!/bin/bash
echo max_performance > /sys/class/scsi_host/host0/link_power_management_policy

Ensure they are executable:

chmod 755 *

Test the change using the "watch" command. Execute the following command, and then disconnect the power. Wait a few seconds and reconnect. If you are successful you should see the kernel parameter change dynamically. You can place any kernel parameters desired into these profile scripts to be executed on change.

watch --interval=1 'cat /sys/class/scsi_host/host0/link_power_management_policy

Keybindings

Jupiter is designed to allow functions to run in the context of the Jupiter user. If there is no support package for your laptop or netbook linking Jupiter to your custom shortcut keys, you can create custom shortcut keys in GNOME 2.

The following tools found in /usr/lib/jupiter/scripts can be configured to execute by key combination.

  • WIFI Toggle - (sudo /usr/lib/jupiter/scripts/wifi)
  • Bluetooth Toggle - (sudo /usr/lib/jupiter/scripts/bluetooth)
  • CPU Control - (sudo /usr/lib/jupiter/scripts/cpu-control)
  • Screen Resolution Toggle - (sudo /usr/lib/jupiter/scripts/resolutions)
  • Screen Rotation Toggle - (sudo /usr/lib/jupiter/scripts/rotate)
  • Touchpad Toggle - (sudo /usr/lib/jupiter/scripts/touchpad)
  • External Display Toggle - (sudo /usr/lib/jupiter/scripts/vga-out)

To configure, open gconf-editor and browse to global_keybindings:

gconf-editor -> apps -> metacity -> global_keybindings 

Edit run_command1:

<Shift><Alt>F3 

Next, edit keybinding_commands:

Edit command_1 -> adding the desired function listed above in parens. Ex. "/usr/lib/jupiter/scripts/touchpad"

/usr/lib/jupiter/scripts/touchpad

Now you can use F3 (or whatever combo you choose) to toggle the touchpad off and on.

Something went wrong with that request. Please try again.