[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Arbeitsflächen im XFCE-Desktop



Hallo,

On Thu, 13 Oct 2016 21:27:51 +0200
Christian Knoke <chrisk@cknoke.de> wrote:

> um es ganz einfach zu sehen, könnte man für jede Arbeitsfläche ein
> eigenes Verzeichnis verwenden, also etwa Deskop21, Desktop2 usw.  Also
> ein Arbeitsflächenumschalter, der auch das Verzeichnis wechselt.  Im
> XFCE-Panel haben die Arbeitsflächen Namen; das Desktop Verzeichnis
> heisst sprachspezifisch "Arbeitsverzeichnis".  Da fehlt vielleicht
> nicht mehr viel?

ganz anderer Ansatz:
habe interessehalber noch etwas im Internet gestöbert und bin irgendwo auf
ein kleines Python Skript gestossen, das bei Umschalten der Arbeitsfläche
bestimmte Aktionen ausführen kann. Ich habe spasseshalber mal ein
bisschen damit rumgebastelt, das funktioniert jetzt tatsächlich! (schön
ist aber anders :)
Ich hänge den Codeschnipsel mal unten an, man müsste am Anfang des Codes
für jede Arbeitsfläche eintragen, welche Icons angezeigt werden sollen
(den Namen "Kludge" habe ich von der Fundstelle übernommen, passt ja
irgendwie :)

Gruss

Michael

###################################################################

#!/usr/bin/python
# -*- coding: utf-8 -*-

import signal, time, os, wnck
from subprocess import call

workspaces = {
'0': ['nedit', 'synaptic'],
'1': ['geany'],
'2': [],
'3': []
}
all_icons = workspaces['0'] + workspaces['1'] + workspaces['2'] +\
            workspaces['3']

class Kludge:
    def __init__(self):
        self.first = True
        signal.signal(signal.SIGINT, signal.SIG_DFL)
        self.screen = wnck.screen_get_default()

    def fire_the_kludge(self, data_a, data_b):
        time.sleep(.1)
        try:
            workspace_num = str(
                        self.screen.get_active_workspace().get_number())
            print('Schalte um auf Arbeitsfläche %s' % workspace_num)
            for icon in all_icons:
                if icon in workspaces[workspace_num]:
                    self.show(icon)
                else:
                    self.show(icon, False)
            call(('xfdesktop', '--reload'))
        except:
            print('Unbekannter Fehler 1')

    def main(self):
        self.screen.connect("active-workspace-changed",
                                 self.fire_the_kludge)

    def show(self, icon, show=True):
        fname = os.path.join(
                    os.getenv('HOME'), 'Desktop', '%s.desktop' % icon)
        try:
            f = open(fname, 'r')
            s = f.read()
            f.close()
            l = s.splitlines()
            if 'NotShowIn=XFCE;' in l:
                l.remove('NotShowIn=XFCE;')
            if not show:
                l.append('NotShowIn=XFCE;')
            f = open(fname, 'w')
            f.write('\n'.join(l) + '\n')
            f.close()
            #print('Zeige Icon "%s": %s' % (icon, str(show)))
            return(True)
        except:
            print('Unbekannter Fehler 2')
            return(False)

if __name__ == '__main__':
    kludge = Kludge()
    kludge.main()
    raw_input('\nKludge Demo\nEingabe drücken zum Beenden\n\n')
    for icon in all_icons:
        kludge.show(icon)
    call(('xfdesktop', '--reload'))

################################################################################






.-.. .. ...- .   .-.. --- -. --.   .- -. -..   .--. .-. --- ... .--. . .-.

When a child is taught ... its programmed with simple instructions --
and at some point, if its mind develops properly, it exceeds the sum of
what it was taught, thinks independently.
		-- Dr. Richard Daystrom, "The Ultimate Computer",
		   stardate 4731.3.


Reply to: