staging.inyokaproject.org

Openbox + Aero Snap = Opensnap

Status: Gelöst | Ubuntu-Version: Lubuntu 12.04 (Precise Pangolin)
Antworten |

Ikem

Anmeldungsdatum:
13. Januar 2011

Beiträge: 38

Ich bin auf ein kleines nettes Programm hingewiesen worden, das Openbox um Aero Snap erweitert.

Das Programm heisst passenderweise Opensnap.

Ich habe es heruntergeladen, kompiliert und dafür ein Paket gebaut. Ihr findet es im Anhang.

Wenn ihr dieses installiert habt, findet ihr das Programm im Menü unter "Systemprogramme".

Sobald ihr es gestartet habt, ist es sofort aktiv.

Die Funktionsweise ist recht einfach erklärt:

Das Fenster an einen der Ränder ziehen, loslassen und es passiert folgendes:

  • oben: Fenster wird maximiert

  • links: Fenster wird am linken Rand in Höhe maximiert, die Breite auf 50% gesetzt

  • rechts: Fenster wird am rechten Rand in Höhe maximiert, die Breite auf 50% gesetzt

  • unten: Fenster wird geschlossen

Wer Opensnap nach jedem Login automatisch starten lassen will:

Die Datei "/usr/share/applications/opensnap.desktop" nach "~/.config/autostart" kopieren.

Es ist noch anzumerken:

Das Programm befindet sich in einer sehr frühen Entwicklungsphase, und kann daher noch Fehler enthalten.

Ich bin nicht der Autor des Programmes.

opensnap_0.8-1_i386.deb (7.8 KiB)
Download opensnap_0.8-1_i386.deb

HaCeMei Team-Icon

Anmeldungsdatum:
2. August 2010

Beiträge: 2260

Hallo Ikem,

eine gute Idee, anderen zur Verfügung zu stellen, was du erarbeitet hast. Allerdings ist ein Anhang hier im Forum nicht unbedingt der Ort, wo jemand nach einem deb-Paket suchen wird. Schau doch einmal diesen Thread durch meine-software-deb-paket-zur-verfuegung-stellen, um deine Arbeit noch besser zugänglich zu machen.

Gruß, HaCeMei

Ikem

(Themenstarter)

Anmeldungsdatum:
13. Januar 2011

Beiträge: 38

Beim PPA muss ich spezielle Pakete bauen. Dabei hab ich keine Ahnung vom Format. Und bei jeder Änderung darf ich von vorne anfangen. Es gibt ja keinen GitHub zu PPA Konverter.

Bei "REVU" und "Debian Mentors", dauert es eine ganze Weile bis das Paket gesichtet wurde. Und solange kann man es nicht installieren und ausprobieren.

Das hier ist praktikabel und funktioniert einfach. Das Debian Paket baue ich so oder so, die Frage ist nur, haben auch noch andere was davon.

bastel-wastel

Anmeldungsdatum:
13. Oktober 2008

Beiträge: 345

Hi,

würde opensnap auch gerne ausprobieren und für mein 64 Bit System kompilieren. Allerdings habe ich den Fehler:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mkdir -p bin
g++ -Wall -o bin/opensnap -lX11 -lXrandr src/opensnap.c
/tmp/ccMwZHqn.o: In function `xdo_window_find_client(_XDisplay*, unsigned long, unsigned long*, int)':
opensnap.c:(.text+0x31): undefined reference to `XInternAtom'
opensnap.c:(.text+0xab): undefined reference to `XQueryTree'
opensnap.c:(.text+0xc6): undefined reference to `XFree'
opensnap.c:(.text+0x182): undefined reference to `XFree'
opensnap.c:(.text+0x1c0): undefined reference to `XFree'
/tmp/ccMwZHqn.o: In function `xdo_getwinprop(_XDisplay*, unsigned long, unsigned long, long*, unsigned long*, int*)':
opensnap.c:(.text+0x26d): undefined reference to `XGetWindowProperty'
/tmp/ccMwZHqn.o: In function `main':
opensnap.c:(.text+0x3bb): undefined reference to `XOpenDisplay'
/tmp/ccMwZHqn.o: In function `sendMouseUp(_XDisplay*, unsigned long*)':
opensnap.c:(.text+0x905): undefined reference to `XSendEvent'
opensnap.c:(.text+0x914): undefined reference to `XFlush'
/tmp/ccMwZHqn.o: In function `getMousePosition(_XDisplay*, _XEvent*, mousestate*)':
opensnap.c:(.text+0x9b8): undefined reference to `XQueryPointer'
/tmp/ccMwZHqn.o: In function `getScreenSize(_XDisplay*, int&, int&)':
opensnap.c:(.text+0xa21): undefined reference to `XRRSizes'
opensnap.c:(.text+0xa38): undefined reference to `XRRGetScreenInfo'
opensnap.c:(.text+0xa4f): undefined reference to `XRRConfigCurrentConfiguration'
/tmp/ccMwZHqn.o: In function `getFocusedWindow(_XDisplay*, unsigned long*)':
opensnap.c:(.text+0xaa5): undefined reference to `XGetInputFocus'
collect2: ld gab 1 als Ende-Status zurück
make: *** [all] Fehler 1

Hast Du eine bestimmte Bibliothek installiert?

Gruß bastel

Ikem

(Themenstarter)

Anmeldungsdatum:
13. Januar 2011

Beiträge: 38

Du musst vor dem kompilieren die Header-Dateien von X11 und XRandR installieren:

sudo apt-get install libc6-dev libx11-dev libxrandr-dev

Ikem

(Themenstarter)

Anmeldungsdatum:
13. Januar 2011

Beiträge: 38

Vielleicht fängst du ja nochmal von vorne an, und folgst dieser Anleitung.

Wenn du mir das Ergebnis zuschickst, mach ich ein Debian-Paket daraus und lad es bei GitHub hoch.

bastel-wastel

Anmeldungsdatum:
13. Oktober 2008

Beiträge: 345

Hi,

nach dieser Anleitung bin ich bereits vorgegangen. Offensichtlich fehlt noch irgendeine andere Bibliothek. Ein Versionskonflikt wird es wohl nicht sein, da ich ebenfalls 12.04 einsetze. Aus dem Fehler werde ich leider nicht schlau 🙄

Gruß bastel

Ikem

(Themenstarter)

Anmeldungsdatum:
13. Januar 2011

Beiträge: 38

Der Compiler findet irgendwie die Header-Dateien nicht.

xdo_window_find_client und xdo_getwinprop sind Funktionen definiert in xdo_functions.h.

XInternAtom, XQueryTree, XFree in den X11-Header-Dateien

XRRSizes, XRRGetScreenInfo, XRRConfigCurrentConfiguration in den XRandr-Header-Dateien.

bliet

Avatar von bliet

Anmeldungsdatum:
10. Januar 2007

Beiträge: 841

Wo ist den der Unterschied zwischen Opensnap von lawl und deinem Fork?

lawl0r

Anmeldungsdatum:
17. Januar 2013

Beiträge: 8

@bastel-wastel

Da war ein Problem im Makefile so dass es unter Ubuntu nicht kompilierte. Ich hab das gefixed. Versuchs doch bitte nochmal mit dem neusten source.

@bliet

Ikem hat ein paar Verbesserungen voergenommen die ich grösstenteils jetzt aber auch so übernommen habe (danke nochmal!).

bliet

Avatar von bliet

Anmeldungsdatum:
10. Januar 2007

Beiträge: 841

Ok, dann probiere ich gleich mal deine (lawl0r) Variante aus 😉 Denn das deb Paket (Version 0.9) habe ich installiert, aber es hat scheinbar keinen Effekt.

lawl0r

Anmeldungsdatum:
17. Januar 2013

Beiträge: 8

Hast du opensnap auch gestartet? Ansonsten zeig doch mal den output von opensnap -v während du ein Fenster versuchst an einen Rand zu "snappen".

bliet

Avatar von bliet

Anmeldungsdatum:
10. Januar 2007

Beiträge: 841

A, ok, er finden eine Datei nicht.

/bin/sh: 0: Can't open /home/benjamin/.config/opensnap//hit_top

Ich dachte, dass bei dem deb von Ikem die benötigten Konfig-Dateien erstellt werden, scheinbar nicht? Oder nur bei mir nicht?

lawl0r

Anmeldungsdatum:
17. Januar 2013

Beiträge: 8

Ich glaube Ikem hat die files im deb paket unter /etc/opensnap abgelegt.

Versuch mal folgendes:

opensnap -c /etc/opensnap -d

"-c" spezifiziert den Pfad für die configs und -d startet opensnap als daemon.

Soweit ich gesehen habe hat er ein .desktop-file mitgeliefert dass man in den autostart ordner von openbox packen können sollte die das erledigen sollte, da wartest du aber besser auf eine Antwort von Ihm.

bliet

Avatar von bliet

Anmeldungsdatum:
10. Januar 2007

Beiträge: 841

Oh ja, es gibt eine .desktop Datei. Nun geht es. Danke!

p.s.: Ikem hat dies ja sogar in Eröffnungs-beitrag geschrieben. Schande über mein Haupt, dass ich es nicht richtig gelesen haben 😀

Antworten |