Saturday, August 24, 2013

A working jack configuration (Ubuntu 12.04 LTS)

For my own reference, and possibly yours, I put here a working jack configuration, on Ubuntu 12.04 LTS on a HP Envy DV7 laptop with an UGM96 USB sound card. (The UGM96 device worked right out of the box, by the way).

So here are the four tabs of the "setup" screen of QjackCtl (the last three tabs are just default values):




I succeeded also in breaking my setup by pushing the parameters too far, trying to achieve a better latency. Well, breaking is a big word, in fact jack just didn't work anymore, but finally I got it back putting the parameters as they should, rebooting, cursing and tweaking a bit.

To start jack, just push the "start" button on QjackCtl and it should work (I don't use the "play" button and don't even know what it's for). Then you have to connect your inputs and outputs between applications of course, i.e. in another application called Patchage, or in QjackCtl itself (less intuitive).

I also have pulseaudio-module-jack installed.

When I start jack using the QjackCtl application, the message I get is the following. I post it here because there are "error messages", but apparently they can be ignored, it works just fine:

07:45:40.364 Patchbay deactivated.07:45:40.382 Statistics reset.07:45:40.389 ALSA connection change.07:45:40.396 D-BUS: Service is available (org.jackaudio.service aka jackdbus).Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
07:45:40.403 ALSA connection graph change.07:45:47.201 D-BUS: JACK server is starting...Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
07:45:47.216 D-BUS: JACK server was started (org.jackaudio.service aka jackdbus).Sat Aug 24 07:45:47 2013: Starting jack server...
Sat Aug 24 07:45:47 2013: JACK server starting in realtime mode with priority 10
Sat Aug 24 07:45:47 2013: control device hw:1
Sat Aug 24 07:45:47 2013: control device hw:1
Sat Aug 24 07:45:47 2013: Acquired audio card Audio1
Sat Aug 24 07:45:47 2013: creating alsa driver ... hw:1|hw:1|128|2|44100|0|0|nomon|swmeter|soft-mode|32bit
Sat Aug 24 07:45:47 2013: control device hw:1
Sat Aug 24 07:45:47 2013: configuring for 44100Hz, period = 128 frames (2.9 ms), buffer = 2 periods
Sat Aug 24 07:45:47 2013: ALSA: final selected sample format for capture: 24bit little-endian
Sat Aug 24 07:45:47 2013: ALSA: use 2 periods for capture
Sat Aug 24 07:45:47 2013: ALSA: final selected sample format for playback: 24bit little-endian
Sat Aug 24 07:45:47 2013: ALSA: use 2 periods for playback
Sat Aug 24 07:45:47 2013: graph reorder: new port 'system:capture_1'
Sat Aug 24 07:45:47 2013: New client 'system' with PID 0
Sat Aug 24 07:45:47 2013: graph reorder: new port 'system:capture_2'
Sat Aug 24 07:45:47 2013: graph reorder: new port 'system:playback_1'
Sat Aug 24 07:45:47 2013: graph reorder: new port 'system:playback_2'
Sat Aug 24 07:45:47 2013: New client 'PulseAudio JACK Sink' with PID 2289
Sat Aug 24 07:45:47 2013: Connecting 'PulseAudio JACK Sink:front-left' to 'system:playback_1'
Sat Aug 24 07:45:47 2013: Connecting 'PulseAudio JACK Sink:front-right' to 'system:playback_2'
Sat Aug 24 07:45:47 2013: New client 'PulseAudio JACK Source' with PID 2289
Sat Aug 24 07:45:47 2013: Connecting 'system:capture_1' to 'PulseAudio JACK Source:front-left'
Sat Aug 24 07:45:47 2013: Connecting 'system:capture_2' to 'PulseAudio JACK Source:front-right'
07:45:49.262 JACK connection change.07:45:49.264 Server configuration saved to "/home/bart/.jackdrc".07:45:49.265 Statistics reset.07:45:49.268 Client activated.07:45:49.272 JACK connection graph change.Sat Aug 24 07:45:49 2013: Saving settings to "/home/bart/.config/jack/conf.xml" ...
Sat Aug 24 07:45:49 2013: New client 'qjackctl' with PID 3418


Friday, June 14, 2013

Set compose key in Xfce

General help can be found on this article on Compose key. It didn't work for me however in Xfce.

The command
setxkbmap -option compose:lwin
works perfectly however. After this, I can for instance type the inverted question mark by pressing the left Windows key, releasing it, and then typing 2 normal question marks.

To make the command run at every startup, I did the following.
Make a file "setcomposekey.sh", put the following text in it:
#!/bin/sh
setxkbmap -option compose:lwin
echo "Compose key set to left Windows key."
sleep 2
and save the file where you can find it afterwards.

Then, in a terminal, navigate to the directory where you saved it, and type the command:
chmod +x ./setcomposekey.sh
to make it executable.
Now, go to Xfce "Applications Menu", choose "Settings" -> "Session and Startup", tab "Application Autostart", and add your little script to the programs to run at startup.

BTW, you have to do this for every user (login as that user and do the same routine).

Disable screen saver in Xfce

Regardless of my screensaver settings in Xfce, even if I disable it completely and power management with it, my screen still goes blank after 10 minutes. (I installed regular Ubuntu 12.04.2 LTS and then Xfce, not Xubuntu).

Before messing with xorg.conf, first back it up:
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.orig

A. What DIDN'T work

So, to try to resolve this, I tried the following, but it didn't work.

1) First NOT working solution

I found it in this post.
"This isn't the screensaver's issue. It is actually Xorg's default settings.
Add these lines in your xorg.conf (which is located in /etc/X11/xorg.conf and you must edit the file as superuser).

CODE: SELECT ALL
Section "ServerFlags"
   Option "BlankTime"   "0"
   Option "StandbyTime" "0"
   Option "SuspendTime" "0"
   Option "OffTime"     "0"
   Option "DontZap" "false"
EndSection

So, no luck with this. It didn't have any effect at all.

2) Second NOT WORKING solution

Then I tried adding a "NODPMS" option in xorg.conf (see this post). Didn't work either. That actually broke my system, had to boot from live USB, delete the modified xorg.conf and revert to a copy of my original xorg.conf (which luckily I had backed up, see top of this post).

3) Third NOT WORKING solution

Then I removed the gnome-screensaver package using synaptic. Didn't work. Then I removed also the xscreensaver package. Didn't work either, screen still blanked after 10 minutes.

4) Fourth NOT WORKING solution

(Before editing your /etc/profile, make sure to back it up, for instance by entering in a terminal the following command: sudo cp /etc/profile /etc/profile.orig. In case something goes wrong you can login from live CD or USB, or in recovery mode, and revert back by doing the opposite command from the command line interface: sudo cp /etc/profile.orig /etc/profile, then reboot).

Add to the end of /etc/profile (edit as superuser)
xset s 0 0
xset -dpms
Reboot to make changes take effect.
(See this post, this post and this post)

B. So what the # does work????

Caffeine!! (The program, NOT the substance).


Check hard disk Ubuntu 12.04.2

- Start from live USB
- in terminal, do
sudo fsck -c -v -p /dev/sdb1
where /dev/sdb1 is the partition you need to check. Fsck does not work on disks, only on partitions, so you have to do this for every partition you want to check.
To see your partition, use gparted.

Sunday, June 2, 2013

Ubuntu 12.04 LTS on a HP Envy dv7 7390eb laptop (Windows 8 UEFI)

UPDATE 2014-07-30: Post on Ubuntu 14.04.1 here...

Here are the steps I took so far for getting Ubuntu Precise Pangolin 12.04.2 LTS to work on my HP Envy dv7 7390eb laptop. (Take care, I'm not an expert, just an average user sharing his experiences! Always back up important data before installing or tweaking!)
The laptop comes with Windows 8 UEFI pre-installed.

I have to say that, in general, Ubuntu 12.04 works pretty well out of the box on this laptop, but needs a bit of tweaking to get every detail working - still a work in progress that I intend to log here.

So...

Step 1: installing Ubuntu

Pretty straightforward, I encountered no problems. You have to do some extra steps to have a working boot manager because of the UEFI system (see further), but if you follow the instructions you should not encounter any problems.

The laptop comes with two 1 TB hard disks. Disk 1 contains Windows, Disk 2 is partitioned as "DATA". I decided to use disk 1 for Windows + Windows DATA and disk 2 for Linux.

First, from within Windows, I deleted the "DATA" partition, then shrunk the "OS" partition to make room for a new "DATA" partition on disk 1, which I then created. For instructions about all this, see for instance here or do a search on internet with keywords "Windows 8 shrink volume".
Do not create a partition on Disk 2 from within Windows, just leave it "unallocated" (free) and reboot on your Linux Live USB. Linux will take care of everything.

Then just do a standard Ubuntu "install alongside Windows" automatic install (see general installation instructions via the links on the Ubuntu page), then follow the steps outlined in "Installing Ubuntu Quickly and Easily via Trial and Error" on the UEFI-page of help.ubuntu.com. You will have to restart from Live-USB and do a boot-repair, it's all explained on the pages I mentioned.

To install Ubuntu from live USB I did not have to disable SecureBoot; however once installed and the boot-repair executed (as outlined on the Ubuntu UEFI page, see above link), I had to disable it to be able to boot into Windows. Weird, but true. So I just keep SecureBoot disabled for the moment, although with Linux it does work. 

After the install I decided I wanted a bigger swap in linux. Default installed is 16GB, same as RAM and I wanted double for extra safety so as to be sure that suspend would work. This may or may not be necessary or a good idea, but it's what I did and it seems to work. Apparently I could have just installed a swap file - more info and detailed instructions on the SwapFaq page of Ubuntu help.
I didn't write down the steps I took, but, from memory, I did the following.  
  • rebooted with live-USB, 
  • ran Gparted, 
  • right-click on swap partition (16GB at this moment) -> swapoff
  • right-click on swap partition -> delete
  • apply
  • right-click on main linux partition -> resize to about 17 GB less
  • apply
  • new unallocated space is 32 GB, right-click on it -> new -> extended
  • right-click in extended partition -> new, choose type "linux-swap"
  • apply
Now boot into your installed linux (on hard drive) and
  • run Gparted (install first if necessary)
  • right-click on swap partition -> swapon
  • then follow instructions here (chapter "How do I add more swap") to edit /etc/fstab.
I did get an error message on first reboot after the Live-USB, probably because I did "swapon" from within the LiveUSB without editing /etc/fstab, but it didn't cause any further problems, and I never got it again. Which makes sense, as I edited /etc/fstab.

Step 2: adding TLP and Bumblebee

TLP is a tool that runs in the background to optimize battery-life. See installation instructions on the TLP-homepage.

Bumblebee is a package that enables NVIDIA Optimus in Linux. This laptop comes with two graphics cards, one that uses little power but is not very good for 3D, and another one (NVidia) that is a lot better for 3D but consumes more power and generates more heat. The Nvidia Optimus technology is designed to optimize battery life by disabling the NVidia card when not necessary. After installing Bumblebee, if I understand correctly, the default card used is the "simple" one (not Nvidia), unless you start the program in question in a terminal and put "optirun" in front of the program name (see the Bumblebee wiki for all details). More info on the Bumblebee homepage, installation instructions here.
I tested running "glxspheres" and "optirun glxspheres" and there was indeed a notable difference in performance.

Step 3: Wifi

Wifi actually works out of the box (kind of) but you may need to have a look at this thread here to get it up and running. Basically I have to use the command
sudo rfkill unblock all 
at every boot to activate the device, after this I can turn on or off the wifi and bluetooth using the net applet. I also installed wifi-radar.

Step 4: get Beats Audio working

Learning from this thread, I did in a terminal:
gksudo gedit /etc/modprobe.d/alsa-base.conf
and added the following line at the bottom:
options snd-hda-intel model=ref
Save the file. Then reboot, not perfect, but sounds better.

Step 5: non-free codecs / Playing encrypted DVDs

The prime source of information is here: RestrictedFormats/Playing DVDs on Ubuntu help.

What I did was:
Go to medibuntu.org, follow instructions and install especially the lib- and non-free-packages. I installed them almost all. Reboot.
At first I still got error messages when trying to play a certain DVD (Ironman 2 in my case - great movie by the way).
Then I used regionset to set the region of my DVD-player to 2 (Europe). Reboot.
The DVD played, but garbled. Finally I deleted the ~/.dvdcss/ folder (I opened my home folder as root in Thunar), rebooted, and then everything worked.


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?)


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.