NoBlink Version 1.0
Nothing in the world annoys me more than a blinking cursor. Unfortunately, the cursors in the Matlab development environment always blink, and Matlab doesn't give you any way to turn off the blinking. I find blinking cursors very distracting, so I wrote NoBlink — a java package that tells all cursors in Matlab to stop blinking. Currently, NoBlink has only been tested on Linux Matlab R2007b, Mac OS X Matlab R2007a, Solaris Matlab 2006b and Windows Matlab R2008a, but it should work on other versions as well, so long as they use the Java version of the Matlab Desktop.
NoBlink is Open Source and Free Software, and is copyright © 2008, Samuel G Trahan. It is distributed under the GNU LGPL license, version 3 (or newer, at your discretion). The current version of that license can be found on the GNU website here. NoBlink's author is Sam Trahan and he can be contacted at firstname.lastname@example.org. If you find any bugs, or if you have successfully run NoBlink on new platforms or Matlab versions, please send an email.
How it Works
The Matlab Desktop on Linux, MacOS and Solaris is based on Java. Graphical user interfaces (GUIs) in Java are made up of GUI components (windows, text boxes, buttons, scroll bars, etc.) Each GUI component can contain any number of child GUI components. For example, the Matlab window contains the menubar GUI component, the command window GUI component, some toolbars and other things. That creates trees of GUI components, with the root of each tree being a window. NoBlink recurses through all of these trees of GUI components, disabling all blinking cursors that it finds.
Matlab will re-enable blinking cursors in various windows every once in a while, even though NoBlink has turned off the blinking. To get around that, NoBlink runs in the background, and looks for blinking cursors every once in a while. When it finds them, it tells them to stop blinking. NoBlink monitors how much CPU time it uses, and it will search for cursors less frequently if it finds it is taking too much CPU time.
In order to run NoBlink, you must tell Matlab the location of the
NoBlink archive. There are two ways to do this and one or both may
work for you, depending on the particular setup of Matlab on your
machine, and your network. After you tell Matlab where to find
NoBlink (by either method), you must run NoBlink's
Method 1: Have Matlab Download NoBlink for You
If you're lucky, then Matlab will let you type in the web address of the NoBlink archive, and then Matlab will download NoBlink for you. Try this code:
If that works, you should get a message from NoBlink welcoming you "back to sanity," and your cursors should stop blinking. You will have to re-run those commands every time you start Matlab. If Matlab does not want to download NoBlink for you, you may get one of a variety of error messages and the cursors will keep blinking. If so, move on to method 2, described below.
Method 2: Download NoBlink Yourself
Sometimes Matlab, a firewall or your lack of an internet connection will prevent method 1 from working. If that happens, you can download NoBlink's archive file yourself and point Matlab to the downloaded file. Use the link below, but use your browser's "save link as" feature to save the file to disk. Simply clicking on the link might cause your browser to try to use that file as a Java applet. Usually, right-clicking on the link will bring up a menu (or control-click on a mac). Then you can choose "save link as" to save the file on your computer.
You do not need to extract the contents of the archive — Matlab will use the archive file directly. Every time you start Matlab, run these commands:
If you still can't run NoBlink, move on to the troubleshooting section.
First off, NoBlink only works if the Matlab Desktop is running. In
command line mode, there is no Java GUI, so NoBlink can't do anything.
Secondly, if you typed the path to
If that happens, rerun the two commands, but with the correct path in
That will have the side-effect of creating
The source code to NoBlink is included in the
NoBlink contains functions other than