Other help options: help.ubuntu.com | #ubuntu on irc.freenode.net
Hi,
I just installed devilspie (from the repos and I'm using dapper) and I'm already stuck
From the howto I gather that I need to create one or more files with rules that devilspie read (i.e. .ds files). This output
I take it shows that I have no .ds files. However, I have no .devilspie in my home directory nor do I have a /etc/devilspie directory. Still, it is installed, as the response from 'devilspie' show and I get:Code:$ devilspie No s-expressions loaded, quiting
So, what I'm I missing here? I basically just need devilspie to do one thing for me (at least for now) and that is to make sure that all windows are opened in the right screen on my TwinView setup. But where is the damn program?!Code:$ whereis devilspie devilspie: /usr/bin/devilspie /usr/bin/X11/devilspie /usr/share/man/man1/devilspie.1.gz
Any and all help very much appreciated.
/Mojoman
Other help options: help.ubuntu.com | #ubuntu on irc.freenode.net
Hehe,
I just ran
and thought "naw, it can't be that simple.". Well, what do you know...Code:$ devilspie -d Devil's Pie 0.16 starting... Loading /etc/devilspie /etc/devilspie doesn't exist Loading /home/mojoman/.devilspie /home/mojoman/.devilspie doesn't exist No s-expressions loaded, quiting
Anyway, thanks for the help. You wouldn't know the expression needed to make windows open on the right screen in a twinview setup, would you?
/Mojoman
Last edited by mojoman; January 26th, 2007 at 06:02 PM. Reason: hate typos...
Okay, new task for the devilspie-pros out there:
I want THE Gimp to be a bit more automated, therefore I wrote some expressions, of which some work, and some don't
and here the corresponding debug output:Code:(if (is (application_name) "The GIMP") (begin (set_workspace 4) ) ) (if (and (is (application_name) "The GIMP") (is (window_name) "The GIMP") ) (begin (above) (geometry "272x640+5+24") ) ) (if (and (is (application_name) "The GIMP") (contains (window_name) "Layers, Paths, ") ) (begin (above) (geometry "273x323+5+693") ) ) (if (and (is (application_name) "The GIMP") (is (window_name) "Navigation") ) (begin (above) (geometry "273x323+5+693") ) ) (if (and (is (application_name) "The GIMP") (contains (window_name) "Untitled") ) (geometry "1085x950+287+24") )
What works is, that all gimp windows except the main window (window_name the GIMP) are moved to my fourth workspace. The main window gets moved, only, when gimp is open and i execute devilspie, not vice versa. geometry and above doesnt work. It worked though, when I only hadCode:Window Title: 'Navigation'; Application Name: 'The GIMP'; Class: 'Gimp'; Geometry: 250x300+129+416 Window Title: 'Untitled-1.0 (RGB, 1 layer) 420x300'; Application Name: 'The GIMP'; Class: 'Gimp'; Geometry: 580x406+512+83 Window Title: 'Layers, Paths, Channels, Undo | Brushes, Patterns, Gradients'; Application Name: 'The GIMP'; Class: 'Gimp'; Geometry: 293x943+1321+24 Window Title: 'The GIMP'; Application Name: 'The GIMP'; Class: 'Gimp'; Geometry: 272x640+124+81
instead ofCode:(above)
Code:(begin (above) (geometry "273x323+5+693") )
That is kind of strange, and I'd like to do this too...
A couple of things I noticed:
- if you change the action to (maximize) instead of (set_workspace), it does perform the action on the tool window. So devilspie does manage to match the window.
- Gimp's preferences seems to include window manager settings, so that may be interfering. I've tried disabling whatever settings are listed there, but devilspie still is not able to move the tool window to another workspace
Other help options: help.ubuntu.com | #ubuntu on irc.freenode.net
That would fit to my discovery, that once gimp is open, and you start devilspie, the gimp main window gets moved.
Well, ich tried some other tweaks and found out, that when i just have the expression:
all my Gimp windows are on Top, which means, that the second condition is true for all gimp windows. I've also found out, that my other expressions (except for the first and second one) from my previous post are not working at all... ^^Code:(begin (if (is (application_name) "The GIMP") (begin (set_workspace 4) ) ) (if (and (is (application_name) "The GIMP") (is (window_name) "The GIMP") ) (above) ) )
So, why can't I select them by window_name, reps. why have they all exactly the same window_name? - window_roles could be something to work with, but unfortunately I have absolutely no idea, how to get these window_roles...
Other help options: help.ubuntu.com | #ubuntu on irc.freenode.net
Yeah, I couldn't get the GIMP to work properly either, I think it had the same problems that you guys are describing above. Anyways, somebody at the Devil's Pie wiki suggested this:I havn't tried it, since I kind of lost interest. You guys might what to try it though.I’ve managed to customize GIMP to move to another workspace this way:
(or
(matches (window_role) "^gimp.*$")
(is (window_name) "The GIMP")
)
This matches the splash-screen, the toolbox, the main window and the opened image window. So you could first modify each window individually and then move them all to wherever you want.
Now we're getting somewhere...
Works everything.Code:(begin (if (is (application_name) "The GIMP") (begin (set_workspace 4) ) ) (if (is (window_role) "gimp-toolbox") (begin (above) ) ) (if (is (window_role) "gimp-dock") (begin (above) ) ) (if (is (window_role) "gimp-image-window") (begin (geometry "1048x950+321+24") ) ) (if (is (window_role) "gimp-tip-of-the-day") (begin (above) ) ) )
But now, there is still the problem with addressing the different gimp-docks. And the one with the gimp-toolbox, well I'll keep on trying.
€dit:
Ok, I've altered my expressions upon kobewan's post. It looks somewhat nicer, but It hasn't really changed the main points:
What works is:Code:(begin (if (or (matches (window_role) "^gimp.*$") (is (window_name) "The GIMP") ) (begin (above) ) ) (if (is (window_role) "gimp-toolbox") (begin (geometry "311x664+0+0") ) ) (if (matches (window_name) "^*Navigation*$") (begin (geometry "306x323+5+693") ) ) (if (matches (window_name) "^*Layers, Paths*$") (begin (geometry "296x950+1379+24") ) ) (if (is (window_role) "gimp-image-window") (begin (geometry "1053x950+316+24") (below) ) ) (if (or (matches (window_role) "^gimp.*$") (is (window_name) "The GIMP") ) (begin (set_workspace 4) ) ) )
What doesn't work is:
- All gimp windows are set to be on top.
- The gimp-toolbar is resized upon my demanding.
- The gimp-image-window is resized.
- All gimp windows except for the gimp-toolbar are moved to workspace 4.
- The gimp-toolbar remains in the workspace the gimp was opened.
- The gimp-image-window is not set to be not on top anymore. (Dont know why...)
- The both expressions with the window_names intended to address different gimp-docks don't work.
Last edited by Mozork; February 25th, 2007 at 04:09 PM.
Bookmarks