This forum has been archived. All content is frozen. Please use KDE Discuss instead.

plasma re-initialize shell variables

Tags: None
(comma "," separated)
jpsollie
Registered Member
Posts
3
Karma
0
I don't know wether this is really the good forum, but I hope someone will replace it if necessary.
I have a dual-head-configuration with KDE 4.1, which is quite difficult (seems not supported, but it works).
Due to limitations of kde4.1, I loaded iceWM on the second screen, to perform minimal window management.
If I want to run something on the second screen, it is easily done with:
DISPLAY=":0.1" runapp


So the next step would be to assign a ACPI function key (present on my keyboard) to set the $DISPLAY.

using gentoo linux, I created a shell script which changes the value of DISPLAY in /etc/profile. The only thing I can't figure out is how I can make the app which controls the KDE taskbar (I guess plasma comes in) reload this config file and adapting the internal DISPLAY value (in a shell, this is usually done with source /etc/profile).

any suggestions about how to do this? The easiest way (I think) is using qdbus, but my knowledge of the kde subsystem is limited, so I don't know.
User avatar
aseigo
KDE Developer
Posts
124
Karma
2
jpsollie wrote:I/etc/profile. The only thing I can't figure out is how I can make the app which controls the KDE taskbar (I guess plasma comes in) reload this config file and adapting the internal DISPLAY value (in a shell, this is usually done with source /etc/profile).

any suggestions about how to do this? The easiest way (I think) is using qdbus, but my knowledge of the kde subsystem is limited, so I don't know.


yes, plasma provides the task bar and everything else in the panel. what, exactly, do you want it to do with the DISPLAY value? put the panel on a different display, or? if you are trying to get a panel on each head, you need to run multiple instances of plasma, one on each screen, but that is currently not supported.


aseigo, proud to be a member of KDE forums since 2008-Oct.
jpsollie
Registered Member
Posts
3
Karma
0
you are trying to get a panel on each head, you need to run multiple instances of plasma, one on each screen, but that is currently not supported.


Sort of: the second panel needs to be a slave of the first one: for example: I am writing some code on panel 1 (external display), and the laptop panel (second panel) has FF open with the API documentation. it is really not meant to be used frequently. also, I don't want any program running full-screen to get troubles because of the second display. the laptop panel is just a tool, nothing more.

What I want to do:

I can open programs on the second screen (eg firefox) by using the following syntax:
DISPLAY=":0.1" firefox.
if I would export DISPLAY, every program would automatically start on the second screen, for as long as those programs are started in this shell.
export DISPLAY=":0.1";
firefox

would work, but it would not work when starting firefox from plasma, as plasma doesn't know about the changed DISPLAY variable.
plasma also needs this DISPLAY variable, I guess (otherwise it wouldn't know where to put a new window). I want to create a script wich will be bound to an ACPI key. (example: open IE, never used as open FF is also present).
every time the key is pressed, the script is executed, and the display variable is changed.
sed -i -e 's/:0.1/:0 .0/' -e 's/:0.0/:0.1/' /etc/profile.d/displayhack.sh
sed -i -e 's/:0 .0/:0.0/' /etc/profile.d/displayhack.sh

displayhack.sh is just a one-line script containing: export DISPLAY=":0.0"

but to make that one work, all possible programs need to re-initialize their DISPLAY variable. So, I need to give plasma a signal that it needs to reload its config files (and hope and pray it reloads /etc/profile, so it will execute displayhack.sh).
if plasma reloads /etc/profile, it will adapt its internal DISPLAY variable, so all programs starting from plasma will appear on the second screen. exactly the way I want it to be.
If I want the programs on the first screen again, I just press the ACPI button again, and the DISPLAY variable is again updated.
how do I give that signal?

Last edited by jpsollie on Mon Dec 15, 2008 5:28 pm, edited 1 time in total.
User avatar
aseigo
KDE Developer
Posts
124
Karma
2
jpsollie wrote:if plasma reloads /etc/profile, it will adapt its internal DISPLAY variable, so all programs starting from plasma will appear on the second screen. exactly the way I want it to be.
If I want the programs on the first screen again, I just press the ACPI button again, and the DISPLAY variable is again updated.
how do I give that signal?


ah, now i understand. and .. unfortunately for you, plasma provides no such mechanism. please file a wishlist on bugs.kde.org under plasma (should be filed under the dual head component) so that we can implement this some day =)


aseigo, proud to be a member of KDE forums since 2008-Oct.
jpsollie
Registered Member
Posts
3
Karma
0
I don't understand: If it doesn't, how do all the tools like Kconfig etc work?

besides: I don't consider this one to be ever implemented (in kde 4.28 or something, maybe).
looking at the wishlist, I need to have at least 200 votes to have any chance. If 10 people would like this feature I would consider it a success ...[hr]
http://bugs.kde.org/show_bug.cgi?id=177868

I never found something about multi-head sections.

Last edited by jpsollie on Mon Dec 15, 2008 6:43 pm, edited 1 time in total.


Bookmarks



Who is online

Registered users: Bing [Bot], Evergrowing, Google [Bot], rblackwell