Pages

2013-07-26

QT apps in GTK environment

There have been various problems with GTK3 - like every minor upstream GTK-update breaking something... which has created certain tendency to avoid using it (outside of Gnome-shell) as much as possible. In dev-level, latest news is LXDE porting to Qt (and merging with Razor-qt).
In user level it (avoiding broken GUI) boils down to picking and installing as much 'independent' apps as practically possible. By 'independent' here, I really mean 'everything not GTK3 dependent'.
So I decided to see if I can replace some (more) g-apps with Qt-apps. I picked a bunch and tested them on Debian Sid Openbox.
For Qt apps see: Here and here.

I already had Smplayer, Qbittorrent and Fbreader installed. All very nice apps - and which I have chosen for their merits, not for Qt. All are in Sids' repos.
So, I also obviously have some Q-deps already installed and next comes list of what I had to add:
qt4-qmake, qt4-linguist-tools, libqt4-dev-bin, libqt4-dev, qt4-qtconfig
The first one here makes config for 'make' (but more commonly used seems to be cmake), and the last one is an utility for configuring certain aspects of all installed Qt apps.

What happened, in no particular order:

# znotes (websource):
qmake -o Makefile znotes.pro
# make didn't finish, there was error in code. Fix:On unix we need unistd.h included in the qtlocalpeer.cpp, just below the time.h include in the #if defined (Q_OS_UNIX) include section.
make
make install

The thing is somewhat buggy but works. Not sure if it's worth to keep.

# qastools (repo). Alsa toolset and mixer, see also http://xwmw.org/qastools/: It looked kinda big and uglyish (but better, of course, than natural alsamixer). It also didn't detect my audio setup... and took twice more memory than xfce4-mixer: --purge.

# juffEd 0.81 (repo). Seems to be (Geany-like?) pro-text-editor. I mention it simply for creating confusion - I actually didn't bother to install it. :)

# qterminal+qtermwidget (websource), https://github.com/qterminal/
It has mightily confusing documentation. After an hour of playing around I managed to install it (widget comes first, then terminal) - and the bloody shit didn't find it's (existing!) library. Running ldconfig didn't help...
But then I had a brilliant idea - I went to Siductions' (Sid distro, has Razor-qt ver) repos and dowloaded some of their debs. Thanks, Siduction.
Install went in that order:
1. qtermwidget-data_0.4.0.2~siduction.
2. libqtermwidget0_0.4.0.2~siduction.2_amd64.deb
3. qterminal_0.4.0.2~siduction.5_amd64.deb
Transparency didn't work. Title-name is not configurable. Memory usage - twice more than xfce4-terminal (26:15 megs). Not sure if it's worth to keep.

# Two file managers, both debs from Siduction:
- andromeda. Wanted libqt4-opengl, then installed ok. It's not very much configurable. Somehow shows only mounted devices (and does not have mounting option?). Generally primitive.: --purge
- qtfm 5.9. Installed stright. Icons missing and replaced by ... colorful pieces of something? It's possible to define theme - but no effect. No devices list at all...: --purge

# taskbar (websource). Well, 'transaparent configurable taskbar'.
Do exactly what INSTALL says (surprising, no? Yes, it is.)
Transparency doesn't work. And what I mean - Comptons' transparency works, but apps' natural one does not (as with qterminal). It's kinda by-passable if using 'transparent' bitmap in 'options'. Icon name option doesn't work. The box columns doesn't work. The box resizes itself. Icon animation was unremovable: Delete, and if possible, delete several times.

# nomacs (Siduction deb). Picture thumbnailer and just a bit editor (rotate, resize, crop!). Needed libopencv-contrib2.3 and libraw9, then installed ok.
Thumbnail-ribbon is kinda silly and swimmy, otherways ok app. Memory usage is close to Gthumb... but Gthumb is a lot more advanced tool. So it looks like --purge.

# Screengrab (Siduction deb). Screenshooter, look here.
It installed stright, it works and I didn't see even bugs yet. Seems usable.

Conclusion: No, you can't replace all your GTK-apps with Qt-apps (unless going to KDE). I mean, you can, but then you end up with some pretty unusable stuff. And I am aware that using Siduction debs might have caused some problems - but I don't think that compiling from source would give very much different result (besides wasting more time).
It was very irritating project. I hope you suffered (too) when you read it.

2013-07-15

Salix Openbox memory usage

Bliss, yes - but there is always margin for improvements.
Nothing of what follows is a showstopper - or matters very much for everyday use... BUT!

Just after writing the post about being euphoric of my new OB, I noticed how bloody lot of memory it took. Almost twice more than my two Debian OBs (230 to 110-130). Unacceptable! Cultivating an anorectic Openbox is THE sport! So I went for it and culled some more processes:

** salix-update-notifier: process tended to hang around even after session change or logouts-ins, piling additional processes up after every 2 hours, and dragging along 'sleeps' (800k a piece).
Currently, I simply added OnlyShowIn=XFCE; into its' .desktop file in /etc/xdg/autostart/ - simply to avoid it in OB. We'll see... but I think I uninstall it in near future - there isn't a lot of updates to worry about, really. They can be checked-installed manually.
** multiple 'sh /.../openbox/autostart' processes: as investigation revealed, they go with every 'sleep' in autostart. Yeah, they only took 5 megs - but still!
I remade my whole autostart without any 'sleep'... and it works totally OK (shows that copying 'authoritive' advice from web might be err...not always useful).
Also, it seems to matter what is order of started apps in autostart ... If anyone is interested, after 1,5 hour of testing in virtual terminals, I ended up with this order:
nitrogen --restore & 
compton --backend glx --vsync opengl-swc --paint-on-overlay --shadow-exclude "! name~=''" --config ~/.compton.conf & 
spacefm -d & 
tint2 -c ~/.config/tint2/.tint2launchers/tint2rcbleft & 
volumeicon & 
# next is show-hide-desktop-icon-in-systray script (from crunchbang forum) 
~/bin/showdtop.sh & 
xxkb & 
conky -c ~/.conky_ob_rc &
* About virtual terminals... There are only three agetty-s defined in Salix (F1-F3), and tty goes to F4. Bloody strange and unconvinient! Open up your /etc/inittab and add other 3, copy/paste and change numbers. Voila!
Also, 'xinit' to start virtual desktop seems to give somewhat bizarre results... What worked OK (from C+A+F2 to C+A+F8), was:
startx /usr/bin/openbox-session -- :1
** Killed wicd off. I use no wireless - so, no need to configure it. 'removed' wicd - and lost net. Did that, in terminal:
netconfig
Options there were picked like that (and of course those are specific for my situation): hostname = whatever, name of the machine
domain = local
DHCP

Reboot (/etc/rc.d/rc/inet1 eth0_start command was not doing a thing (in perceivable way)... and there appeared nothing in inet1.conf file too. Oh, and no connection.) But booting made it - a wired connection without wicd.

Now my Salix-OB uses less, but still approx 40 megs more memory than OB in Debian.
So I decided to switch from default 'huge' (all things compiled in) kernel to 'generic' (nothing in, neccessary will be added with modules). And hoped shorter boot-time and less memory use.

- Downloaded kernel-generic and modules via http://pkgs.org/slackware-14.0/slackware-x86_64/.
- Did installpkg for kernel-generic, and did not for modules - as it appeared with upgradepkg --dry-run that modules were 100% the same.
- Ran /usr/share/mkinitrd/mkinitrd_command_generator.sh, and executed the result, initrd.gz was created.
- For good measure, reinstalled nvidia drivers.
- Updated local Grub, rebooted to my Grub-master and updated that too. Generic kernel was added as last (Salix) entry. Haven't found out yet how to change it to be first (and default) boot kernel. So, probably I will simply make 06_custom file for Salix Grub.
- Rebooted and got kernel panic... ?? ... Checking grub.cfg - initrd was NOT included (and it IS neccessary for kernel-generic). Added a line:
initrd /boot/initrd.gz.
Successful boot!

But, no change in boot time (though, the text flying by is different... which can be considered 'interesting', but not as a desired result) or in desktop memory usage... So, it seems that I did something wrong. Or something.
And the moral is - you do this kernel-thing in different and right way.

2013-07-08

Salix 14.0 + Openbox

Yeah, doing openboxing a third time, now on Slackware - after Xubuntu and Debian. I was kinda interested how this one might differ... Openbox is not stock for Salix (and Slackware), and Slacks' repos are not as big by far as Debian ones.

As it appeared, installing Openbox itself went quite as usual, with slight differences. But some pre-install preparations almost drove me nuts. Whole process took twice as long as in Debian.

1. Pre-installing things:
Let's start with simple.
- Nitrogen for wallpaper, with slapt. No problems. First I had a plan to use Spacefm as desktop manager (and wallpaper-provider) - but Spacefm somehow prevented Conky from starting.
- Conky, with slapt, no problems.
- Volumeicon, with slapt, no problems.
- copied session-exit-script from my Vsido install, once again. And as later was seen, it worked without a hitch.
- Also installed wmctrl (slapt) and xdotool (from source), without problems.
Now, not so simple things.
- Tint2 - available through Sourcery. Only thing I had to install before was Cmake. Then it compiled and worked... unfortunately it wasn't SVN-version (no launchers). Then I went and took source from Tints' home. Made, installed - and found that it's the same one - no launchers.
After some digging around I found this. The writer, by the way, is the same guy who makes Vsido. So thanks, Vastone, for all good things. Tutorial worked like a charm, and I soon had nice patched SVN version of Tint running, with launchers and all.
- Compton (sweat, blood and tears). Not available in repos at all, have to get the source from Comptons' home and compile. List of dependencies is quite long, as we know...
What was surprising that only missing dep in Salix was libconfig. Even asciidoc was already installed! But the joy was short-lived - libconfig also has to be searched out from web. My first attempt to install it was unsuccessful. Thing appeared to exist, but pkg-config refused to recognize it. And Compton refused to make, citing missing libconfig as a culprit. Apparently I had unwittingly brought home a where-libconfig...
More searching in web and I found other and better place to get it. Differently of the first one, it was already compiled for Slack.
So I only had to run  
sh doinst.sh (and replace user/lib64 in this file with /usr/lib64, otherways it couldn't find folders, as install-package was not in root).
Then I checked, somewhat fearfully:
pkg-config libconfig --libs . It's not there, then
echo $PKG_CONFIG_PATH, and path appears to be wrong (compared where libconfig.pc really is, then
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig (that's my conf, of course). Anyway, after correcting the path, libconfig was found AND Compton was now happy to make and make install too.
As for now, I used exactly the same start conf as in debian install. Works alright, no tearing observed yet.
Edit | When installing libconfig, I was yet such a moron that I didn't know of SlackBuilds... Correct way, of course should have been to run: libconfig.SlackBuild, and then installpkg libconfig...gz. But I leave this example of stupidity to be - as there are some useful hints how to check and correct library paths. Also - there are ready-made binaries available in slakfinder.org :) |

2. Installing OB, a lot less dramatic part:
Main packages for Openbox - openbox and obconf - are available with slapt, as is lxappearance. There are also obmenu and some other helpful stuff to take - but I didn't bother.
slapt-get -i openbox obconf
Logout and login to fresh openbox session.
Right-click menu was bizarre, consisting mostly unexistent items. Those what did exist, refused to open.
Back to Xfce, copy Openbox conf files to .config/openbox, add some quick (real) links to menu, back to Openbox. Now things (real ones) in menu opened ... so, I presume that the first time rebellion was because of lack of confs in user folder.
Still, 90% of this default menu was taken out of thin air. Fancy. I should have used dmenu to generate something more valid. Well, I forgot to install it.
One more surprise was that xfce4-terminal is named as 'Terminal'. Bloody why? Couple of more minutes down to drain when investigating why terminal 'does not exist'...
After that it was usual copy/paste of various confs, fixing this and that, 2 hours lovingly pimping the menu, and removing couple of last unwanted apps. Everything seems fine and working. Checked also .xsession-errors - nothing of interest there too, only gtk stupid deprecation-drivel.
Now, if I happen to finally succeed in compiling Medit, then the situation could be called a bliss.