Tuesday, May 21, 2013

Howto change keyboard controls in Platinum Sandbox Gamemaker (Qwerty -> Azerty)

Problem: in Linux, there seems to be no regular way to explain to Platinum Arts Sandbox Gamemaker that you have an AZERTY-keyboard and not a QWERTY one. Changing the keyboard-layout in Xfce doesn't help either. That works for any and every program, Sandbox Gamemaker excluded.

Solution (sort of):
This is not at all the official way to do this and highly unrecommended, but it does seem to work and it's very simple. Use at your own risk and peril, I take no responsability whatsoever if you break your system or if your house explodes because of this!
Search for the file "keymap.cfg". On my install (from Ubuntu repositories) it's in /usr/share/sandboxgamemaker/data). Edit it as root, and change the letters W into Z, A into Q and vice versa.

So, in a terminal:
cd /usr/share/sandboxgamemaker/data
sudo gedit ./keymap.cfg

There you change the line
keymap 97 A
into
keymap 97 Q
; the line
keymap 113 Q
into
keymap 113 A

etc. for the lines corresponding to Z and W.




How to free the Alt-key in Xfce for inkscape, Blender, etc.

As explained on the Inkscape FAQ:

  • To enable in XFCE 4.4 or greater, in the Settings Manager > Window Manager Tweaks > Accessibility Tab, change "Key used to grab and move windows" to "none" or something else. Several other selections (such as "Meta") may still use the "Alt" key, however, so test it first.

Saturday, May 18, 2013

Type the copyright symbol © in Linux

As explained here:

  • type Ctrl+Shift+u (an underlined "u" will appear")
  • type "00a9" (on screen you'll see: "u00a9")
  • press Enter
  • voilĂ , the "u00a9" converts itself into the copyright symbol: ©

Thursday, May 16, 2013

Synaptic unable to start

I had problems with apt-get and synaptic, stating "read error".
The solution I found here, and that worked for me, was typing in a terminal:
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update

Remapping a graphic tablet in Linux (using xinput)

This is how I set up my second hand Wacom Intuos 1 graphic tablet (old but very satisfying hardware) under Ubuntu 12.04.


4:3 to 16:9 conversion

The Xinput command

In fact it worked all "plug'n'play", except for the fact that my screen is 16:9 and my old Wacom Intuos 1 tablet is 4:3. This meant that when I drew a circle on my tablet, it was an ellips on screen.

In Linux this can be remedied by the "xinput" command. Without going into too much detail, what you should do is the following. (I found the basic info I needed on the "Calibrating Touchscreen" page on the Archlinux wiki).

First, with your tablet connected (it has to be connected before boot), type in a terminal (no need to be root or use sudo):
xinput list
The output in my case is, concerning the tablet,
  • Wacom Intuos 9x12 stylus
  • Wacom Intuos 9x12 eraser
  • Wacom Intuos 9x12 cursor
These are the devices you should remap, all three (or more or less in your case) of them.


The command for remapping for instance the "stylus" device is the following:
xinput set-prop "Wacom Intuos 9x12 stylus" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 0 0 0 1
where
  • "Wacom Intuos 9x12 stylus" is the device in question
  • 1.33333 is the factor by which the tablet is horizontally "diminished". Underlying math, for those interested:
    • 4:3 = 16:12 (multiply numerator and denominator by 4)
    • conversion 16:12 -> 16:9 : the x conversion factor is 12/9 = 1.33333
This "deactivates" a horizontal border at the bottom of your graphic tablet (near you); the remaining active field has the desired widescreen 16:9 ratio.


If you prefer, as I do, to rather deactivate the top border so that your active drawing field is as close as possible to you, you should use an offset factor. The command then becomes (note the -0.33333 value):
xinput set-prop "Wacom Intuos 9x12 stylus" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
You have to execute this command not only for the "stylus", but for every of your tablet "sub-devices", in my case:
xinput set-prop "Wacom Intuos 9x12 stylus" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
xinput set-prop "Wacom Intuos 9x12 eraser" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
xinput set-prop "Wacom Intuos 9x12 cursor" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1

Making changes persistent throughout reboots

Now the problem is that these changes are not persistent throughout reboots, so you have to re-enter the commands every time you restart your computer. There is of course a simple solution for this: making a simple shell-script and getting your linux to run it at boot.

1. Making the script

For the shell script open a text-editor (i.e. GEdit or Mousepad or other), and type:
#!/bin/sh
xinput set-prop "Wacom Intuos 9x12 stylus" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
xinput set-prop "Wacom Intuos 9x12 eraser" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
xinput set-prop "Wacom Intuos 9x12 cursor" --type=float "Coordinate Transformation Matrix" 1 0 0 0 1.33333 -0.33333 0 0 1
Save it as (for instance) wacom.sh in your home-directory or any other place where you can find it afterwards.

2. Make the script executable

Now you need to make it executable. One way is to use Nautilus, the file browser, right click on the file, choose "Properties" (at the bottom) and in the "Permissions" tab, check the checkbox at the bottom that says "allow execution".
Or, in a terminal, navigate towards the directory where you saved wacom.sh and type:
chmod +x ./wacom.sh
At this stage your script is ready. You can test it out by typing in a terminal, while you're still in the right directory:
./wacom.sh
You should see the changes directly when you use your tablet.

3. Auto-execute the script on boot

Now the only thing left is to make linux run the script at every boot.

For this, launch the program "Startup Applications" (should be installed by default). Click on "Add" and fill in the form. The name and optional commentary you can choose freely, the most important is the command:
/path/wacom.sh
where "path" is of course your particular path, the directory where the script is saved, i.e.
/home/jeff/wacom.sh

That's it. Reboot and test... Good luck!


Making the active field smaller

I bought a big graphic tablet and found that actually a smaller one is more useful for my type of work. So instead of buying a smaller one, I used again the xinput command to "make" it smaller (that way, if I need it bigger, I just change the xinput values and I have a big one again). How to do this:

If we represent the Coordinate Transformation Matrix used in the above commands (i.e. 1 0 0 0 1.33333 -0.33333 0 0 1) as a1 a2 a3 b1 b2 b3 c1 c2 c3, and the conversion factor for widescreen correction as Cf then:
  • always b2=a1*Cf, this way the widescreen conversion is correct at all times. (If you don't need to do this conversion, then for you Cf = 1).
  • the bigger a1 is, the smaller your active field becomes on your tablet. 
    • If a1=1, then your active field is at it's biggest, full size
    • If a1=2, then it becomes half this size
    • If a1=3, then it becomes one third this size
    • and so on
  • a3 and b3 are resp. the horizontal and vertical offset.
    • If these values are 0, then your active field is placed at the top left of your tablet
    • to move your active field towards the bottom right, these values need to be negative. You should experiment a bit with values. To put a small active field in the bottom left corner of my tablet (taking into account the widescreen conversion, see above), I had to use the matrix: 2 0 0 0 2.666666667 -1.666667 0 0 1.
So finally I made two scripts, wacom_A4.sh and wacom_A5.sh. According to the desired configuration, I execute one or the other.


If you appreciated this article for some reason or another, please share it (see the buttons below), and, of course, don't forget to Flattr! (Why?)


How to add a Facebook Like button to your Tumblr blog


Before you start, it might be a good idea to save a copy of your Tumblr theme as it is, just in case you mess up completely, because you'll be tinkering under the hood. If you don't know how to customize your Tumblr theme to begin with, you'll have to read up here: go to the Tumblr help page and search for "customize theme".
  • Go to http://developers.facebook.com/docs/reference/plugins/like/
  • Scroll a bit down and fill in the form
    • fill in the home URL of your Tumblr (http://bartvanaudenhove.tumblr.com for instance, where you change "bartvanaudenhove" into your own username, otherwise you'll be directing people to my blog which is very kind but not the idea I guess)
    • choose your settings, ticking and unticking the checkboxes (you can see the result immediately to the right)
  • Press the "Get Code" button
  • Copy the upper part (nr. 1, the "Javascript SDK") into your Tumblr theme HTML right after the <body blabla> statement (where "blabla" is of course some HTML code). To find this statement, click once inside the HTML code of your Tumblr theme (near the beginning), press Ctrl+f, and type in the search field "<body" (without the brackets). If it's not the right result, click after the highlighted result and repeat the search.
  • Copy the lower part (nr. 2, the plugin) where you want it to appear on your blog. In my case I put it in my navigation bar. I found it easily because in my theme it was marked "<!-- NAVBAR -->". If you're not that lucky, you can try to do a search on some of the words in your Tumblr navigation bar (i.e. "about" or "ask me anything" etc.), or you can copy the plugin in various places and do "Update Preview" (on top) regularly and see what happens until you get it right.
  • Save your theme ("save" button on top), go back to your blog, and have a look (don't forget to refresh your page in order to see the changes).
More info on the Tumblr theme details here: How to create a custom HTML theme.