Released: 2017-03-19 18:40:09 +0100

  • Add a configuration option to select hardware triggers
  • Graphical user detection can now handle display :1

Released: 2017-02-24 22:35:30 +0100

  • Update documentation
  • Improve determination of the username that is logged in using X.

Released: 2017-02-19 18:03:31 +0100

  • Add lsusb check for docking.

Released: 2017-01-20 09:26:34 +0100

  • Ignore an additional command line argument to the hooks (GH-127)
  • Fix the missing import of subprocess (GH-128)
  • Update the documentation (GH-126)
  • Use xsetwacom for the rotation and screen mapping if the input device supports it (GH-124)
  • Ignore a failure by xbacklight. On Martin’s laptop, the modesetting driver currently has no access to the brightness setting. Therefore the docking will always fail at the brightness step. This update converts the failure into a warning.
  • Change the configuration option screen.internal to screen.internal_regex and give a sensible default value that matches the output name variant reported by the modesetting driver. This change should also help Yoga users.

Released: 2017-01-14 20:40:37 +0100

  • The program now does not crash in the case that the network connection could not be restarted. Instead, a warning is logged (GH-121).

Released: 2016-07-13 10:35:07 +0200

  • Update the name of the Wacom touch screen such that its name also works on Fedora 23 (GH-120).

Released: 2016-04-15 13:14:40 +0200

  • Fix location of sphinx-build on Fedora (GH-119). Contributed by Aruee.

Released: 2016-04-14 21:07:41 +0200

  • Ubuntu seems to ship with a version of XRandR which set the Wacom Rotation property of a few devices, but not all of them. As we have switched to the rotation matrix some versions ago, we and XRandR interfere with each other. Now we reset the rotation made by XRandR. Jim tested this on Ubuntu 15.10, so that should fix GH-117 and GH-112.
  • Debug shell commands are pretty-printed using shlex.quote. That way, one can directly paste the log output into a shell and re-run a given command.

Released: 2015-10-20 17:14:26 +0200

  • Fix errors caused by hooks at boot time. Hooks are sometimes executed at boot when no user is logged in yet. This would cause error logs that are just annoying for the user as he/she is greeted with crash reports. This fixes GH-110 and GH-111.

Released: 2015-10-16 10:10:16 +0200

  • Add configuration option to disable the rotate and dock hook individually.
  • In cases where /dev/log does not exist, it will use standard UDP to connect to the log.

Released: 2015-10-15 20:30:31 +0200

  • Add a --force-direction command line option for thinkpad-rotate such that this can be used in a script. When starting up the computer an autostart entry like

    thinkpad-rotate --force-direction normal

    could be very handy to normalize the setup.


Released: 2015-10-15 16:50:57 +0200

  • Add chvt workaround as suggested by Cody Christensen.

Released: 2015-07-31 15:14:59 +0200

  • Fix error in docking. I have broken it by assigning a temporary to a variable output which also happened to be the function argument. Sorry. I wish I had const in Python :-/.

Released: 2015-07-29 08:23:28 +0200

  • Check list of PulseAudio devices to get sound settings right. (Contributed by Jannis Stoppe, thank you!)
  • Update regular expressions for xinput. We have been using the ones for xsetwacom until now. Since we have switched to xinput in version 4.2.3, this should fix bugs since then.

Released: 2015-05-09 10:51:34 +0200

  • Add a workaround for an XRandr bug that I have on my machine.

Released: 2015-03-25 14:53:31 +0100

  • Fix a bug that was introduced in 69ef6ea. This leads to premature exit and dump of a stacktrace. The screens got rotated, but the TrackPoint would not be disabled.
  • Add an option to disable the internal screen on docking (GH-103).

Released: 2015-03-15 22:53:34 +0100

  • Update documentation for openSUSE package

Released: 2015-03-15 19:28:52 +0100

  • Remove icons from docking desktop files to get it to build on openSUSE Build Service

Released: 2015-02-19 18:49:21 +0100

  • Write transformation matrices to debug output.
  • Small fixes in documentation: Remove dead navigation entry and use correct syntax highlighting for config snippet.

Released: 2015-02-08

  • Add documentation about Fedora package
  • Add hardware specific documentation
  • Replace xsetwacom with xinput in all cases and use transformation matrix (GH-91)
  • Add a nice error message when a screen could not be found
  • Remove termcolor as a dependency
  • Always have at least one screen enabled
  • Be more careful with gsettings, check whether the schema exists before writing to it

Released: 2015-01-24

  • Remove dependency on termcolor since that is not packaged for Python 3 in Ubuntu or Fedora. It was not needed heavily anyway, so I just got rid of it.
  • Add manual page for thinkpad-config
  • Add manual page for thinkpad-trackpoint
  • Add manual page for thinkpad-scripts-config-migration
  • Add a common epilogue for all manual pages
  • Remove mailing list from README
  • Replace hard coded strings with configuration options (GH-91)
  • Toggle touch screen with xinput only (GH-91)
  • Give a real error when rotation cannot be determined (GH-92)

Released: 2015-01-20

  • Fix errors in .desktop files
  • Use built-in mocking for unit tests

Released: 2015-01-15

  • Log error when unsupported key is given to rotate hook.
  • Fix full-install target in makefile.
  • Add test target to makefile.
  • Add support for multiple external monitors. See the manual page of thinkpad-dock for the details of the configuration options.

Released: 2014-10-26

  • Make selection of ethernet connection which is restarted predictable.
  • Remove call to nmcli con down in the restarting of the network connection. This makes it compatible with nmcli 0.9.10. That closes GH-81, fixes GH-74 and closes GH-75,

Released: 2014-10-25

  • Fix GH-79 by catching the exceptions and logging warnings. Missing TrackPoint and TouchPad do not cause the program to abort now.

Released: 2014-10-15

  • Fix breakage of the rotation script when the subpixel order cannot be changed for some reason. An error is logged then.

Released: 2014-10-05

  • Fix hiding of Unity launcher (GitHub #72)
  • Warn about make install (GitHub #76)

Released: 2014-09-07

  • Add network.connection_name configuration option.
  • Add support for nmcli v0.9.10 command line interface.

Released: 2014-07-12

  • Add tablet-normal rotation. That will not rotate the screen but deactivate the trackpoint.
  • Accept all rotation names again.

Released: 2014-06-14

  • Fix some errors in the manual pages

Released: 2014-06-14

  • Make triggering on hardware rotation slightly more robust against changes in the event that acpid gives.

Released: 2014-06-02

  • Toggle Wacom Touch property with xsetwacom as well as using xinput.

Released: 2014-05-29

  • Automatic determination of ethernet network connection
  • make install does not restart any services. make full-install does that now.

Released: 2014-05-29

  • State Python termcolor dependency in the documentation
  • Stop failing if gsettings is not installed
  • Add subpixel rotation in Xfce
  • Warn about missing screen when docking

Released: 2014-05-28

  • Replace unicode arrow because of Launchpad errors.

Released: 2014-05-28

  • Assert Python 3 everywhere. I suspect that the Launchpad Build System uses Python 2 for some reason. That causes some unicode errors.

Released: 2014-05-28

  • Fill in dependencies in the “Getting Started“ guide.
  • Explicitly state the encoding in

Released: 2014-05-27

  • Complete rewrite in Python 3.
  • INI style config. Run thinkpad-scripts-config-migrate to help you migrate your config.
  • Remove the transitional scripts. If you have anything that still depends on having scripts starting with think-, this will break!
  • v3.0.1 introduced more relative positions by putting the -of into your configuration variable. Old configurations that still had left or right still worked, since the script appended the -of for you. Those couple lines were removed, so add a ``-of`` to your config, if you do not have already!
  • You can change the regular expression that matches the Wacom devices now in the config. That is touch.regex in the config.

Released: 2014-02-22

  • Small fixes in the manual pages

Released: 2014-02-22

  • Added: Set the option toggle_unity_launcher for thinkpad-rotate to un-hide the Unity launcher whenever the screen is rotated. This was previously an example hook in the guides, now it is part of the main suite of scripts.

Released: 2014-02-21

  • Rename all the scripts from think- to thinkpad- to match the new project name. To ease transition, there are transition scripts with the old names. Be sure to adjust all your scripts and hooks accordingly! The transition scripts will be dropped with version 4.0.
  • Rename the configuration directory from ~/.config/think-rotate to ~/.config/thinkpad-scripts. There is an automatic upgrade script in place, so calling either thinkpad-rotate or thinkpad-dock will rename your configuration folder if it exists and there is no new one already existing.
  • Put dates into the changelog, for all releases so far.

Released: 2014-02-21

  • Rename project to “thinkpad-scripts”
  • Add subpixel anti-alias order change on rotation for Gnome

Released: 2014-01-07

  • Update copyright years in the documentation.
  • Add a guard that prevents multiple execution of think-dock and think-rotate. For some reason, the udev hooks call the script twice, resulting in race conditions.

Released: 2014-01-07

  • Fix finding of external display. I tried to improve the syntax, but let the script fail whenever the number needed to be incremented.

Released: 2014-01-05

  • Clean all *.pyc files in makefile. This was causing errors with prisine tars and Debian packaging before.
  • Add changelog to documentation

Released: 2014-01-03

  • Pass target orientation to postrotate hook
  • Pass version number to Sphinx automatically from the changelog

Released: 2013-12-19

  • Manual pages with Sphinx

Released: 2013-12-10

  • Allow more relative positions by putting the -of into the value of the relative_position variable

Released: 2013-12-01

  • Settings of the keycodes is now done via a .hwdb file for udev. This requires udev to be of version 196 or greater. Therefore, it is marked as a major release, since it breaks Ubuntu 13.04 and earlier.

Released: 2013-12-01

  • Add some guides: “Additional Keys” and “KDE Script Drawer”
  • Fix recursive make, pass -j down to child processes

Released: 2013-10-30

  • Actually return from function.

Released: 2013-10-28

  • Do not fail if qdbus does not work (like on vanilla Kubuntu 13.10)

Released: 2013-10-28

  • Print missing programs
  • Do not fail if qdbus is missing

Released: 2013-10-07

  • Added: ACPI hook to call think-rotate (Jim Turner)
  • Added: Support for systemd network inferface names (Jim Turner)
  • Removed: think-resume (Jim Turner)
  • Use syslog in think-dock
  • Update documentation
  • State all dependencies (Debian package names)
  • Change indentation to four spaces instead of a single tab

Released: 2013-09-30

  • More logging to syslog
  • Disable kdialog for ACPI hooks since that does now work well

Released: 2013-09-24

  • Translate to German

Released: 2013-08-08

  • Close KDialog progress bar when the script fails (via trap)

Released: 2013-07-31

  • Added: Hooks
  • Added: on|off for the think-touchpad script

Released: 2013-06-26

  • Support for kdialog status.

Released: 2013-05-10

  • Update the ACPI hooks to find other docks as well

Released: 2013-05-06

  • Find other docks as well

Released: 2013-02-03

  • Get microphone mute button to work

Released: 2012-12-29

  • Actually install makefiles
  • Implement required actions in init.d script to that Debian lintian does not complain

Released: 2012-12-29

  • Fix bezel keyboard codes, so that they are usable. (Jim Turner)
  • Add script to toggle touch screen. (Jim Turner)
  • Organize code in subdirectories, using recursive make.

Released: 2012-11-02

  • Map Wacom devices to the output when rotating in any case. Thanks to Jim Turner!

Released: 2012-10-25

  • Add support for other virtual keyboards. Thanks to Jim Turner!
  • Use shorter redirection (&> instead of 2>&!).

Released: 2012-10-22

  • Fix spelling typo in relative_position. Thanks to Jim Turner!

Released: 2012-10-15

  • Background most tasks so that they run in parallel. This should speed up docking.

Released: 2012-10-06

  • Only set Wacom screen devices. That way, any attached Wacom graphics tablet is not affected by the docking.

Released: 2012-08-31

  • Use the kernel to determine what the docking status is.
  • Add udev rules to perform the docking action.

Released: 2012-08-31

  • Desktop files for think-dock.

Released: 2012-07-21

  • Revert too intelligent behavior.

Released: 2012-07-21

  • Even if the user calls think-dock on, do not dock if there is no external monitor attached. This might be the case when the think-dock on is called automatically without any prior checks. If the script would dock either way, it might disable wireless (although that is only done when eth0 is connected) and set the volume to a wrong setting.

Released: 2012-07-20

  • Disable the wireless connection on docking.

Released: 2012-07-20

  • Fix commands in .desktop files.

Released: 2012-07-20

  • Install .desktop files.

Released: 2012-07-20

  • Query the state of the whole system automatically and determine the right action. You can still specify on or off, if you want to.

Released: 2012-07-16

  • Optional config file for think-dock.

Released: 2012-07-16

  • Fix flip direction.

Released: 2012-07-16

  • Disable wireless only when eth0 connected.
  • Document options.

Released: 2012-07-15

  • Change display brightness on docking.

Released: 2012-07-15

  • Check whether programs are there before using them.
  • Create directories on make install.
  • Disable wifi when going onto the docking station.
  • Enable sound on docking.
  • Lower the volume after docking.
  • Query Wacom devices automatically.

Released: 2012-07-13

This is the first release with a version number. It contains a couple fixes and improvements compared to previous (before 2012-07-13) versions of these scripts.

  • Accept other names for the rotation.
  • Disable the trackpad as well.
  • Start and stop the virtual keyboard.
  • Try to go back automatically, if a rotation is already set.
  • Use --rotation instead of -o. This will only rotate the internal screen and not any attached screens as well.

Way before 2012-07-13, those are significant changes in the history:

  • Add desktop files.
  • Also set Wacom hardware correctly.
  • Determine resolution automatically.
  • Disable trackpoint when switching.
  • Dynamically find external display.
  • Limit Wacom devices to internal screen.
  • Set external monitor as primary.