czwartek, 14 stycznia 2016

Ubuntu - disappeared unity windows recovery guide

I found myself really confused that after some operations (eg. switching external displays around) I cannot activate opened applications. I suspected that those apps have to be somewhere on desktop, but apparently not in current view port. There have to be a way to grab and move them.. but how??

After a while of googling wmctrl nifty friend was on my toolbox ready for action.

Lets start from looking at options by typing wmctrl -h for displaying a help.
Now try to figure out what windows are on your desktop:

$ wmctrl -l
0x02e00002  0 krma-laptok XdndCollectionWindowImp
0x02e00005  0 krma-laptok unity-launcher
0x02e00008  0 krma-laptok unity-panel
0x02e0000b  0 krma-laptok unity-dash
0x02e0000c  0 krma-laptok Hud
0x0280000a  0 krma-laptok Desktop
0x0460000b  0 krma-laptok krma@krma-laptok: ~
0x044000b3  0 krma-laptok Inbox - Mozilla Thunderbird
0x0400053b  0 krma-laptok Java - Eclipse 

Lets look at the desktop present on our system
$ wmctrl -d
0  * DG: 3840x1080  VP: 0,0  WA: 45,24 3795x1056  N/A
But how to identify those that are out of viewport?
$ wmctrl -lG
0x02e00002  0 -3940 -1180 3840 1080 krma-laptok XdndCollectionWindowImp
0x02e00005  0 0    24   45   1056 krma-laptok unity-launcher
0x02e00008  0 0    0    1920 24   krma-laptok unity-panel
0x02e0000b  0 -1241 -740 1141 640  krma-laptok unity-dash
0x02e0000c  0 -1060 -164 960  64   krma-laptok Hud
0x0280000a  0 0    0    3840 1080 krma-laptok Desktop
0x0460000b  0 2101 114  1601 844  krma-laptok krma@krma-laptok: ~
0x044000b3  0 70   266  1294 629  krma-laptok Inbox - Mozilla Thunderbird
0x0400053b  0 7655 92   1860 988  krma-laptok Java - Eclipse
Eclipse's x position seems to be a little to high, isn't? Lets move it to (20,20) and leave existing size (1860,988) unchanged:
$ wmctrl -i -r 0x0400053b -e 0,20,20,-1,-1
PS. another nice tool is xdotool. It can
$ xdotool getwindowgeometry 0x0400053b
Window 67110203
  Position: 55,62 (screen: 0)
  Geometry: 1860x988
Note that position is different from (20,20) - moved (35,42)??

poniedziałek, 11 stycznia 2016

How to run javascript script in jvm environment?

Oracle's JDK8 comes with jjs command which runs javascript code agains nashorn build-in engine. Assumming the following piece of code
// script.js
var lines = `ls -lsa`.split("\n");
for each (var line in lines) {
          print("|> " + line);
}
After running it with the following command:
jjs -scripting script.js
We will be given with a nice listing of working directory