This is a collection of my free software patches. Each patch is accompanied by a short description and related links to external resources, if any.

If you don't know how to apply a patch, please see the wiki manual or the man page.


openbox-3.6_stop_hidden.patch is an OpenBox patch. It implements 'stop_hidden' configuration option for applications.

This option lets user to stop application processes automatically when all the application windows are hidden from the user. A window is considered hidden when it's iconified or shaded or does not belong to the current desktop.

This option in intended for minimization of CPU usage and power consumption. Some modern applications (like Web browsers) tend to consume significant amount of CPU resources even when hidden.

There are three possible values of the option:

  • no - do not stop application when it hides (default value)
  • process - stop just the process the hidden window belongs to
  • group - stop whole process group the application belongs to; some complex applications (like web browsers) emerge multiple child processed, so in order to stop such applications it's not enough just to stop one process.


<application class="Firefox">

Please note that Firefox does not create a new group for its child processes. You need to run it via setsid firefox in order to have a separate group for all Firefox processes.

Related GitHub pull request: Pull Request #34 · danakj/openbox · GitHub


debian_fix_466088.patch is a Vim patch. It fixes the following issue:

When using a maximized gvim (GTK2), changing the font size does not cause the window to re-evaluate its size in order to stay maximized.

Related bugs: Ubuntu, Debian.
This patch is already included (svn@1642) in the Vim version 7.2.283 and later.

vim_geom.patch is another Vim patch, which fixes the following issue:

GTK2: when using the -geom argument with an offset from the right edge and the size is smaller than the default, the Vim window is not positioned properly.

This patch is already included (svn@1613) in the Vim version 7.2.263 and later.

vim_unmax.patch is another Vim patch. It fixes the following issue:

GTK2: When the Vim window is maximized setting 'columns' or 'lines' doesn't work.

This patch is already included (svn@1614) in the Vim version 7.2.264 and later.


sdl-fbcon-rotation.patch is an SDL patch. It adds the SDL_VIDEO_FBCON_ROTATION environment variable to control output orientation on the framebuffer console.

Valid values are:

  • not set - Not rotating, no shadow.
  • NONE - Not rotating, but still using shadow.
  • CW - Rotating screen clockwise.
  • UD - Rotating screen upside down.
  • CCW - Rotating screen counter clockwise.

This patch is already included (svn@4874) in the SDL version 1.2.14 and later.


tclock_font.patch is an fbpanel patch. It allows user to select font for tclock plugin:

Plugin {
    type = tclock
    config {
        ClockFmt = %R
        TooltipFmt = %A %x
        Font = Liberation Sans 16

The alternative way is to set a font style in gtkrc, for example:

style "fbpanel-tclock"
       font_name="Desired Font"
widget "*.tclock.*" style "fbpanel-tclock" 


reminiscence-0.1.9-64bit-fix.patch is a REminiscence patch. It fixes the version 0.1.9, which fails to unpack CT data on 64-bit systems with the following message:

ERROR: Bad CRC for collision data!


epdfview-svn-345_dual-pages.patch is an ePDFView patch. It implements a dual page mode.

Related bugs:

The patch should be applied to svn@345.


MultiMarkdown-1.000033-crossrefs.patch is a patch for the Text::MultiMarkdown perl module. It fixes support of the cross-references supplied by a optional label. Here is an example:

Header One [h1]

[Reference to the header one][h1]

Related CPAN bug #60067.
The patch should be applied to the version 1.000033.


shoulderized-fn-layout.patch is a Linux patch, which changes layout of the Pandora keyboard. It maps Fn to the right shoulder button and does few additional swappings. See this sheet for details.

This patch won't be merger to the Pandora Kernel Repository since it contradicts the official keymap.
Should be applied to the version 2.6.27.


pandora_backlight_dim_v2.patch is another Pandora-related patch. It implements Pandora-specific screen blanking in the xf86-video-omapfb driver. The functionality is similar to the pandora_backlight_dim.patch, but is not dependent on user environment and works faster since it does not run shell script.

The related OpenPandora bug report.
The patch should be applied to the version 0.1.1.


Here is a list of various Empathy bug fixes. All of them are already available in the version 3.1.1 and later.


Here is a couple of Telepathy bug fixes.

  • bug_30298.patch fixes #30298 - shows wrong date for some messages. Not yet included in the master branch.
  • bug_30414.patch fixes #30414 - Unable to search terms with special characters in logs. Already committed.


gnunet-0.9.0pre1_expand-hostlistfile.patch is a GNUnet patch. It makes the HOSTLISTFILE configuration parameter $-expand. Included in GNUnet 0.9.0pre2 and later.

Related bug #1607.

The following patches implement a simple chat application, which is a port of the 0.8 version plus P2P layer: gnunet-svn@14186-chat.patch, gnunet-svn@14325-chat-update.patch, gnunet-svn@14557-chat-update.patch and gnunet-svn@14325-chat-indentation-fix.patch. All the patches are included in the SVN repository.

Related bugs #1644, #1657, #1665.


xrick-021212-exit.patch is an xrick patch. It fixes incorrect fullscreen mode when the display aspect ratio is higher than 320/200 = 1.6. For example, it makes xrick choose 640x400 instead of 320x200 when the screen resolution is 840x480. It's probably related to "[bug?] not sure fullscreen runs ok on laptops" in the Bugs'n Things to Do list.

xrick-021212-fullscreen.patch fixes freezing on exit when joystick is enabled. Probably related to "[bug?] does xrick segfaults on exit? I can't reproduce this" the Bugs'n Things to Do list.

Related bug #351672 in the Gentoo bug tracker.


In certain circumstances it's useful to configure fancontrol to obtain temperature of a sensor from output of a command rather than from a /sys-file. In particular, it is useful for NVIDIA video chips, which shows their temperature via nvidia-settings with ease, but it's not a big change to make lm_sensors read the sensors. fancontrol-cmds.patch implements the feature. It sould be applied to the version 0.70.

Here is an example of the configuration format:

02 DEVPATH=hwmon0=devices/platform/it87.656 hwmon1=devices/platform/coretemp.0
03 DEVNAME=hwmon0=it8718 hwmon1=coretemp
04 FCTEMPS=hwmon0/device/pwm1=hwmon1/device/temp1_input hwmon0/device/pwm2=CMD0
05 FCFANS=hwmon0/device/pwm1=hwmon0/device/fan1_input hwmon0/device/pwm2=hwmon0/device/fan2_input
06 MINTEMP=hwmon0/device/pwm1=60 hwmon0/device/pwm2=55
07 MAXTEMP=hwmon0/device/pwm1=70 hwmon0/device/pwm2=80
08 MINSTART=hwmon0/device/pwm1=170 hwmon0/device/pwm2=150
09 MINSTOP=hwmon0/device/pwm1=55 hwmon0/device/pwm2=75
10 CMDS=/usr/local/bin/

At the line 4 of the config file, CMD0 is specified as the source of temperature. CMD0 is the first command in the list of commands. The full list is defined in the variable CMDS (at the line 10). Each command should print temperature of the sensor in Celsius.

The executable file /usr/local/bin/ may look like this:

# Shows temperature of NVIDIA chips in Celsius
# Shows always 100 if X-server is not running
if [[ -z `pgrep xinit` ]]
    echo 100
DISPLAY=":0.0" /usr/bin/nvidia-settings -q [gpu:0]/GPUCoreTemp\
| grep "Attribute" | sed -e "s/.*: //g" -e "s/\.//g"

Wallpaper Slideshow

Wallpaper Slideshow is an Android live wallpaper. It cycles through user defined directory of images. android-wallpaper-slideshow-crop.diff does the following:

  1. It adds a new option to disable cropping: "Crop photos to make them fill whole screen";
  2. It enables large heap in order to get rid of "out of memory" exceptions on high resolution devices;
  3. If the image is larger than the screen size, the original Wallpaper Slideshow downscales images to the size smaller or equal to the screen size (in order to minimize memory comsumption) and upscales it afterwards to the actual screen size. This patch makes the live wallpaper application not to downscale images to the size smaller then the screen size. So essentially the patch makes quality of displayed images slightly better.

The patch should be applied to svn@9.


Trebuchet is the default Android launcher application in CyanogenMod 9+. trebuchet-0.2_allapps_btn_visibility.diff adds a new boolean option named ui_homescreen_all_apps_button. The option controls whether to show the all apps button in the top right corner of the homescreen. If the option is disabled, user can invoke the all applications screen through long press on empty space of the homescreen.

The patch should be applied to git@bb74ce8b22f683522aae793ca11bcb957c2872f5.

Android Terminal Emulator

Android Terminal Emulator is one of the most popular terminal emulators for Android. Unfortunatelly, Android 4.3 introduces a serious issue, affecting the terminal running a superuser process: the size of the terminal may become incorrect. The issue itself and the proposed solution is described here. Android-Terminal-Emulator-1.0.63-su-pty.patch is the patch implementing this solution.

The patch sould be applied to version 1.0.63.


netsurf-3.2-segfault.patch fixes a Netsurf segfault. In certain circumstances Netsurf crashes when user closes the preferences window. The problem is described here. Still no reply from the upstream developers.

The patch sould be applied to version 3.2 or 3.3.


vboxvideo-4.3.38-dpi.patch fixes a bug in the X11 video driver of VirtuaBox. When X11-server is configured to use a custom DPI setting, vboxvideo driver just ignored this value and used hard-coded DPI=96. The bug is reported in the bug tracker: Ticket #15704.

The patch sould be applied to version 4.3.38. The bug is fixed in version 5.1.2.