[close]Programme nach login automatisch starten

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

[close]Programme nach login automatisch starten

Beitrag von Prometheuss » 30.08.2015 23:20:36

Hi Freunde,
da ich mein Computer öfters mal runterfahre um ihn danach wieder einzuschalten, ist es äußerst nervig die gewünschten Programme gleich nach Benutzerlogin auszuwählen und an ihre Plätze auf den Bildschirmen zu schieben.
Gemeint ist ein (oder auch zwei) terminal, iceweasel, rythmbox usw.
Ich wollte wissen ob es die Möglichkeit gibt ein Shellscript, oder besser noch, ein eigenes Programm oder Werkzeug, was ich noch nicht kenne, zu nutzen, um diese Aufgabe abzugeben.

(deb 8 und gnome3)

ps. Falls ihr einen passenderen Betreff habt und auch einen besseren Standort für diesen Thread wisst gebt bescheid ;) )

dankeschön
Zuletzt geändert von Prometheuss am 01.09.2015 23:47:54, insgesamt 1-mal geändert.
~ein Teil dieser Antwort könnte sie verunsichern.

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: Programme nach login autamtisch starten

Beitrag von pferdefreund » 31.08.2015 05:55:45

Gnome kennt sowas wie autostart. - Wo - keine Ahnung ich verwende sowas nicht. Was das Zurechtschieben der Fenster auf dem Bildschirm angeht, so schau dir mal wmctrl an - das kann sowas. Hab mir selbst ne kleine Anwendung geschrieben, die sich die Infos aus einer Steuerdatei holt und die Fenster mittels diesem Programm so auf dem Bildschirm verteilt, wie ich sie haben möchte (xmms, qjackctl, jackeq usw..).

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 31.08.2015 09:43:14

zuallererst unterstützt Gnome soweit ich weiß, ganz ähnlich zu XFCE und KDE, die das afaik ebenfalls tun, immer noch das „Speichern der Sitzung“, das steht sogar in der Paketbeschreibung von Debiangnome-session. Zum Einstellen ob gespeichert werden soll oder nicht gab es auch eine grafische Oberfläche (gnome-session-properties ?), allerdings kann ich davon auf meinem System nur Relikte finden (/usr/share/gnome-session/session-properties.ui aus Debiangnome-session-bin). Soweit nicht besonders hilfreich…

…aber laut [1] genügt es eine Datei ~/.pam_environment anzulegen (falls nicht vorhanden) und dort die Zeile

Code: Alles auswählen

GNOME_SESSION_SAVE=1
hineinzuschreiben.
Eine weitere Herangehensweise, die ich noch davor ausprobieren würde, wäre mit Hilfe von Debiandconf-editor den Wert von
org→gnome→gnome-session→auto-save-session
auf true (angehakt) zu setzen.
Dank dem Speichern der Sitzung sollten imho sowohl die zuletzt gelaufenen Anwendungen wieder gestartet werden, wie auch deren Fenstergröße und -position wiederhergestellt werden.

______

Unabhängig davon kann man Programme automatisch über .desktop-Dateien in ~/.config/autostart oder systemweit in /etc/xdg/autostart starten lassen. Mit dem Debiangnome-tweak-tool gibt es für die benutzerspezifische Variante sogar ein grafisches Tool (gnome-tweak-tool/"Optimierungswerkzeug"→Startprogramme).

Das Ändern der Größe von Fenstern und solche Dinge kann man dann mit Kommandozeilenwerkzeugen skripten - ich habe mir zB zum Maximieren/Wiederherstellen mancher Fenster ein Skript mitDebian xdotool und vor allem Debianwmctrl geschrieben.
Oder du suchst dir Shell Extensions, die das gewünschte erledigen. zB enthält Debiangnome-shell-extensions unter anderem die Erweiterung Auto Move Windows mit der man die Anwendungen zumindest auf den gewünschten Desktop verschieben kann und es gibt bestimmt noch einige Extensions mehr, die sich mit dem Thema befassen, zB vielleicht [2]

[1] http://askubuntu.com/questions/8834/how ... plications
[2] https://extensions.gnome.org/extension/39/put-windows/

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 31.08.2015 21:30:24

smutbert hat geschrieben: Eine weitere Herangehensweise, die ich noch davor ausprobieren würde, wäre mit Hilfe von Debiandconf-editor den Wert von
org→gnome→gnome-session→auto-save-session
auf true (angehakt) zu setzen.
Dank dem Speichern der Sitzung sollten imho sowohl die zuletzt gelaufenen Anwendungen wieder gestartet werden, wie auch deren Fenstergröße und -position wiederhergestellt werden.
Die Fenster bleiben schonmal erhalten, nur die Größe sowohl die Position sind so als würde ich sie manuell öffnen.

gtt startet die Programme zwar, aber keins an der gewünschten Position. Könnte man denn überhaupt der zuerst geöffneten shell sagen sie soll beim öffnen script xy ausführen?

extensions benutze ich nicht so gerne, da ich darüber schnell Überblick und Kontrolle verliere und sich entsprechend schnell der Müll ansammelt. (auto-move ist zwar schon dabei verschiebt aber nur die fenster von Arbeitsfläche zu Arbeitsfläche)

ich hab mal wmctrl und xdotool geholt aber mir ist auch durch die manpages nicht ganz klar wie ich die dazu bringe, dass die fenster entprechend verschoben werden. ich studier noch ein wenig diese werkzeuge.
pferdefreund hat geschrieben:Gnome kennt sowas wie autostart. - Wo - keine Ahnung ich verwende sowas nicht. Was das Zurechtschieben der Fenster auf dem Bildschirm angeht, so schau dir mal wmctrl an - das kann sowas. Hab mir selbst ne kleine Anwendung geschrieben, die sich die Infos aus einer Steuerdatei holt und die Fenster mittels diesem Programm so auf dem Bildschirm verteilt, wie ich sie haben möchte (xmms, qjackctl, jackeq usw..).
selbes spiel :oops:
~ein Teil dieser Antwort könnte sie verunsichern.

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: Programme nach login automatisch starten

Beitrag von pferdefreund » 01.09.2015 06:28:16

Da sollte dann doch wmctrl dein Freund sein. Per wmctrl die Fenstergrößen und Positionen ermitteln und dann ein kleines Startscript so in etwa:

Code: Alles auswählen

#!/bin/bash
# starten der Programme
/usr/bin/quackctl &   das &, damit die in den Hintergrund wandern
/usr/bin/irgendwas &
sleep 5  <<< hier testen, wie lange die normalerweise zum Start brauchen und anpassen.
# Fenster anpassen und plazieren
wmctrl hier deine Fenster-Parameter und gut ist.  " Syntax habe ich jetzt nicht auswendig im Kopf - aber da hat mir die manpage geholfen
.so oft wiederholen, wie du Programme hast und entsprechend Parameter anpassen.
Hier noch das kleine C-Programm - da müsstest du allerdings die Funktionen wie readhigh usw ersetzen, da habe ich ne eigene Lib dafür
readhigh eventuell per fgets und Konsorten und nonewline() entsorgt Zeilenumbrüche.
Hinweis an die professionellen C-Programmierer. Ich habe das Programmieren noch auf ner S/370 148 in Asssembler und PL/1 und Cobol gelernt und mir C selber beigebracht. Das ist vermutlich nicht wirklich guter C-Stil - aber, das zählt für mich - es funktioniert.
// REPORT :WMMAN
// VERSION :1.0
// ********************************************************************************
// AUFTRAGSNR:Ticket: INTERN
// ********************************************************************************
// KURZBESCHR:Steuerprogramm fuer den Windowmanager
// ********************************************************************************
// ANLAGE/AENDERUNG:20150423
// PROGRAMMBESCHREIBUNG:
// Das Programm dient zur Steuerung des Windowmanagers.
// Es koennen Fenster und ihre Position gesichert werden und
// auch wieder in diese Positionen gebracht werden.

// ********************************************************************************
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <libpferd.h> die hast du nicht - entsprechend Lesefunktionen anpassen
#include <tzn.h>
int rc = 0;
char action[10];
char datei[256];
char befehl[80];
char esatz[1024];
char homedir[80];
int g; // grav
int x; // x-pos of Window
int y; // y-pos of window;
int w; // width
int h; // hight
char wname[512];
char dummy[512];
/* Dateien (Pipe und Config */
FILE *pfeiffe = NULL;
FILE *config = NULL;
/* Interne Funktionen */
void sichern(void);
void laden(void);
int main(int argc, char *argv[]) {
printf("wmman Version 1.0\n");
#include <tzp.h>
/* pruefen der Parameter */
if (argc < 3) {
printf("2 Parameter notwendig\n");
printf("1. Parameter - funktion l oder s\n");
printf(" l=load s=save\n");
printf("2. Parameter Datei\n");
exit(1);
}
/* Verzeichnis ist fest verdrahtet - /home/wm/ */
strncpy(action,argv[1],1);
strcpy(datei,getenv("HOME"));
strcat(datei,"/wm/");
strncat(datei,argv[2],255);
printf("%s%s%s\n",action," - ",datei);
/* schaun mer mal, was zu tun ist */
if (action[0] == 's') {
sichern();
}
else {
laden();
}

return rc;
}
void sichern() {
int bytes;
int rc;
strcpy(befehl,"wmctrl -lG");
pfeiffe = popen(befehl,"r");
if (pfeiffe == NULL) {
perror("Fehler open pfeiffe");
exit(1);
}
config = fopen(datei,"w");
if (config == NULL) {
perror ("Fehler open config-Datei(output)");
exit(1);
}
lesen:
bytes = readhigh(1023, pfeiffe, esatz);
if (bytes < 1) goto endlesen;
sscanf(esatz,"%s%i%i%i%i%i%s%s",dummy,&g,&x,&y,&w,&h,dummy,wname);
if (y <= 17) y = 0;
printf("%-20s%c%i%c%i%c%i%c%i%c%i\n",wname,' ',g,' ',x,' ',
y,' ',w,' ',h);
fprintf(config,"%-20s%c%i%c%i%c%i%c%i%c%i\n",wname,' ',g,' ',x,' ',
y,' ',w,' ',h);
goto lesen;
endlesen:
rc = pclose(pfeiffe);
if (rc != 0) {
perror("Fehler Close pfeiffe");
exit(1);
}
rc = fclose(config);
if (rc != 0) {
perror("Fehler Close config");
exit(1);
}
return;
}
void laden() {
int bytes;
int rc;
char wname[512];
char g[6]; // Bedeutung, wie im globalen Teil
char x[6]; // 6 bytes - max 4 fuer zahl, 1 fuer vorzeichen 1 fuer \0
char y[6];
char w[6];
char h[6];
char above[512];
config = fopen(datei,"r");
if (config == NULL) {
perror ("Fehler open config-Datei(input)");
exit(1);
}
lesen:
bytes = readhigh(1023,config,esatz);
if (bytes < 1) goto endlesen;
nonewline(esatz);
sscanf(esatz,"%s%s%s%s%s%s%s",wname,g,x,y,w,h,above);
// printf("%-10s%-10s%-10s%-10s%-10s%-10s%-10s\n",
// wname,g,x,y,w,h,above);
/* Befehl zusammenbauen */
strcpy(befehl,"wmctrl -r ");
strcat(befehl,wname);
strcat(befehl," -e ");
strcat(befehl,g);
strcat(befehl,",");
strcat(befehl,x);
strcat(befehl,",");
strcat(befehl,y);
strcat(befehl,",");
strcat(befehl,w);
strcat(befehl,",");
strcat(befehl,h);
rc = system(befehl);
if (rc != 0) {
printf("Fehler bei:\n");
printf("%s\n",befehl);
}
/* Pruefen, ob Fenster in Vordergrund soll */
bytes = strlen(above);
if (bytes < 2) goto lesen;
strcpy(befehl,"wmctrl -r ");
strcat(befehl,wname);
strcat(befehl," -b add,above");
rc = system(befehl);
if (rc != 0) {
printf("Fehler bei:\n");
printf("%s\n",befehl);
}
strcpy(above,"");
goto lesen;
endlesen:
rc = fclose(config);
if (rc != 0) {
perror("Fehler Close config");
exit(1);
}
return;
}
Das Programm kann auch die Positionen ermitteln und entsprechend wegschreiben. Allerdings sind dann in der Datei je nach
dem - zumindest bei mir - ein paar Zahlenwerte manuell anzupassen - aber die Richtung stimmt. Musst du halt probieren.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 01.09.2015 16:45:55

Ein kleines Beispiel mit wmctrl:

Code: Alles auswählen

$ wmctrl -r :ACTIVE: -e 1,80,80,640,480
verschiebt das aktive Fenster, wenn man das in einem Terminal ausprobiert also das Terminalfenster, 80 Pixel unter den oberen Bildschirmrand, 80 Pixel rechts des linken Bildschirmrandes und macht das Fenster 640x480 Pixel groß.

Darüber hinaus kann man statt "-r :ACTIVE:" auch "-r gedit" schreiben um ein gedit Fenster statt des aktiven zu verändern. Die Manpage von wmctrl ist für weitere Anwendungsfälle sehr hilfreich und es finden sich auch zahlreiche weitere Beispiele im Netz.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 17:28:32

pferdefreund hat geschrieben:Da sollte dann doch wmctrl dein Freund sein. Per wmctrl die Fenstergrößen und Positionen ermitteln und dann ein kleines Startscript so in etwa:

Code: Alles auswählen

#!/bin/bash
# starten der Programme
/usr/bin/quackctl &   das &, damit die in den Hintergrund wandern
/usr/bin/irgendwas &
sleep 5  <<< hier testen, wie lange die normalerweise zum Start brauchen und anpassen.
# Fenster anpassen und plazieren
wmctrl hier deine Fenster-Parameter und gut ist.  " Syntax habe ich jetzt nicht auswendig im Kopf - aber da hat mir die manpage geholfen
.so oft wiederholen, wie du Programme hast und entsprechend Parameter anpassen.
Hier noch das kleine C-Programm - da müsstest du allerdings die Funktionen wie readhigh usw ersetzen, da habe ich ne eigene Lib dafür
readhigh eventuell per fgets und Konsorten und nonewline() entsorgt Zeilenumbrüche.
Hinweis an die professionellen C-Programmierer. Ich habe das Programmieren noch auf ner S/370 148 in Asssembler und PL/1 und Cobol gelernt und mir C selber beigebracht. Das ist vermutlich nicht wirklich guter C-Stil - aber, das zählt für mich - es funktioniert.

-*verweis auf originalkommentar*->edit promtheus

Das Programm kann auch die Positionen ermitteln und entsprechend wegschreiben. Allerdings sind dann in der Datei je nach
dem - zumindest bei mir - ein paar Zahlenwerte manuell anzupassen - aber die Richtung stimmt. Musst du halt probieren.
Mit c bzw. c++ bin ich noch nicht so Fit, da bin ich grad bei "wie die for-schleife funktioniert kap.4" da muss erst noch ein Bisschen mehr knowhow her. (glücklicherweise ist die sprache mehr oder weniger stark an die Bashsyntax angelehnt, oder umgekehrt?! na egal)
smutbert hat geschrieben:Ein kleines Beispiel mit wmctrl:

Code: Alles auswählen

$ wmctrl -r :ACTIVE: -e 1,80,80,640,480
verschiebt das aktive Fenster, wenn man das in einem Terminal ausprobiert also das Terminalfenster, 80 Pixel unter den oberen Bildschirmrand, 80 Pixel rechts des linken Bildschirmrandes und macht das Fenster 640x480 Pixel groß.

Darüber hinaus kann man statt "-r :ACTIVE:" auch "-r gedit" schreiben um ein gedit Fenster statt des aktiven zu verändern. Die Manpage von wmctrl ist für weitere Anwendungsfälle sehr hilfreich und es finden sich auch zahlreiche weitere Beispiele im Netz.
Faszinierend wie hilfreich eine Źeile zur Veranschaulichung eines Programms sein kann. Wie im Post vorher kann ich nur sagen, ich probier mal aus und guck mir das noch genauer an. Jetzt weiß ich aber wie wmctrl wirkt.
Danke dafür und weiteres bekommt ihr auf die Ohren/Augen wenn ich meine ersten Versuche starte die einfach nicht funktionieren wollen ;)
(ich versuchs mal mit nem shellscript, das geht schon eher bei mir.)

ps. was bedeutet die 1 bei :-> wmctrl -r :ACTIVE: -e 1,xxx,xxx,xxx,xxx in der manpage steht was von "gravity of the window" und dass der default wert 0 ist. was hat es damit auf sich?
pps.die "sitzung-speichern" Funktion ist ohne weitergehende Konfiguration überhaupt nicht zu gebrauchen..
Zuletzt geändert von Prometheuss am 01.09.2015 18:31:40, insgesamt 1-mal geändert.
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 18:25:36

Folgendes:
ich mach mir grad mein Script mit der Bash und setze dabei voll auf wmctrl.
Wie kann wmctrl die Fenster untereinander entscheiden wenn ich mehrere Fenster gleichen Names habe?
Ich mein die unterscheiden sich zwar durch ihre hex werte,aber diese werden ja zufällig entschieden oder? Das Problem hab ich halt ausschließlich bei mehr als einem geöffnetem Terminal/Browser. (ich nutze iceweasel falls notwendig ist, das zu wissen)

Das Ziel ist:
Beim einschalten ein Terminal öffnen, Programmbefehl eintippen und an einem Bildschirm sitzen der genauso die Fenster managed wie ich sie haben will/ wie ich immer arbeite / wie ich sie brauche :D
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 01.09.2015 21:12:49

Hehe, bin mir nicht sicher, ob ich gravity richtig verstanden habe und damit bin ich wohl nicht alleine
[…]
  1. gravity — I’m not sure what this
    • 0 means ‘default’ and the coordinates of 0,0 will move the window too high up.
    • 1 seems to look good for me.
[…]
Quelle
deshalb gibt es von mir nur einen Link:
[Solved] Was bedeutet Gravity bei wmctrl -e?


Das Auswählen des passenden Fensters ist ein Problem. Ich wollte bis jetzt in Skripten immer nur das Fenster im Vordergrund manipulieren, deshalb fehlen mir vielleicht die Ideen.
Wenn man jedenfalls einen String angibt, der dann im Fenstertitel vorkommen muss, wird das erste (das läuft bei mir immer auf das älteste ! hinaus) passende herangezogen. Wenn du ein Programm in einem Skript startest, könntest du vielleicht die Ausgabe von

Code: Alles auswählen

$ wmctrl -l
vor und nach dem Starten des Programms vergleichen um zum richtigen Fenster zu kommen und es gibt Programme, bei denen du beim Start den Fenstertitel selbst bestimmten kannst, wie zB bei manchen Terminals (afaik nicht aber beim aktuellen gnome-terminal).

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 21:35:52

Man kann ja auch mit " wmctrl -r WIN -T name "den Namen zu "name" ändern. Ich hätte einfach direkt nach dem öffnen eines neuen Fensters dessen Namen einer Reihenfolge aufsteigender zahlen zugeordnet.
PROBLEM:
nach abschicken des obengenannten Kommandos ist für ein kurzen Augenblick (vielleicht ne milisekunde oder auch 10) der name zu erkennen. wechselt dann aber wieder zurück.
Der "returnwert" ist 0 daher muss das Problem irgendwo anders liegen. Was kann das sein?
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 01.09.2015 21:52:52

Da dürfte das Programm selbst seinen Titel wieder auf den ursprünglichen setzen. Das gnome-terminal verhält sich zB so wie du beschrieben hast, es passt seinen Titel aber auch laufend an das Verzeichnis an, in dem man sich momentan in der Shell befindet. Dagegen funktioniert das Setzen des Titels bei vlc bei mir wie erwartet, bis man etwas neues/anderes abspielt, was den Titel dann wieder ändert.

edit:
Es scheint nur generell bei Gnome-Programmen nicht zu funktionieren.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 22:03:21

smutbert hat geschrieben:Da dürfte das Programm selbst seinen Titel wieder auf den ursprünglichen setzen. Das gnome-terminal verhält sich zB so wie du beschrieben hast, es passt seinen Titel aber auch laufend an das Verzeichnis an, in dem man sich momentan in der Shell befindet. Dagegen funktioniert das Setzen des Titels bei vlc bei mir wie erwartet, bis man etwas neues/anderes abspielt, was den Titel dann wieder ändert.

edit:
Es scheint nur generell bei Gnome-Programmen nicht zu funktionieren.
vlc?
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 01.09.2015 22:10:23

VideoLANClient - der Video/Audioplayer/-streamer/-…: Debianvlc
(dachte den hätte jeder installiert, auch wenn er nicht immer problemlos funktioniert)

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 22:31:42

smutbert hat geschrieben:VideoLANClient - der Video/Audioplayer/-streamer/-…: Debianvlc
(dachte den hätte jeder installiert, auch wenn er nicht immer problemlos funktioniert)
ach den vlc :facepalm:
Ich dachte grad an ein Werkzeug was Super-Kuh-Kräfte hat, und eine ähnliche Funktion wie wmctrl besitzt. War grad so im Thema, dachte erst was will er denn mit dem Abspielprogramm vlc. Erst beim zweiten mal lesen wurde mir klar was du sagen wolltest :lol:

Wie verhält sich das eigentlich in der Shell wenn ich /usr/bin/iceweasel aufrufe? ich kann die Shell dann solange nicht benutzen wie die das Programm offen ist, ist doch blöd, gibts da ein Kniff für? (also der prompt ist weg)

Hast du ne Idee wie die Namensgebung bindent ist? Muss ja nur so lange halten bis das Fenster an Ort und Stelle ist.
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 01.09.2015 22:46:02

Habs halt einfach mit den Fenstern ausprobiert, die bei mir gerade offen waren ☺…

Für das andere hat der Freund der Pferde doch schon die Lösung gepostet, entweder ein & anhängen

Code: Alles auswählen

$ iceweasel &
dann wird das Programm "im Hintergrund" ausgeführt und man kann es mit dem Befehl "fg" wieder in den Vordergrund holen, die Textmeldungen landen aber nach wie vor auf der Konsole, was man mit einer Ausgabeumleitung ändern kann

Code: Alles auswählen

$ iceweasel > /dev/null &
dann lässt sich das Programm aber nicht mehr in den Vordergrund holen. Das funktioniert auch in Skripten. Oder bei Interaktiven Shells (also dem Terminalfenster) kann man das Programm, das im Vordergrund läuft auch mit <Ctrl>+<z> in den Hintergrund befördern.

In einem Skript wirst du dann, wenn du ein Programm startest eine kurze Wartezeit einlegen müssen, bis das Fenster auch da ist, bevor du es mit wmctrl verschieben oä kannst, aber auch das hat Pferdefreund bereits geschrieben.


Wenn du außerdem laufend etwas automatisiert mit Fenstern machen willst, auf die irgendein Muster passt, dann sieh dir eventuell Debiandevilspie oder Debiandevilspie2 an - ich kenn mich damit überhaupt nicht aus, aber hier gibts eine kurze Einleitung:
https://wiki.ubuntuusers.de/devilspie
siehe auch
https://wiki.gnome.org/action/show/Proj ... =DevilsPie
http://www.gusnan.se/devilspie2/

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 01.09.2015 23:01:47

okay das hab ich ehrlich gesagt nicht verstanden, was pferdefreund meinte. ich hab das &-zeichen einfach als "und" abkürzung verstanden.
Das mit der kurzen Wartezeit ist einleuchtend.

Zu devilspie kann ich auch nicht viel sagen, ich hab auch schon über Google davon erfahren, nur bringt mir halt nicht viel. Es kann zwar die Fenster voneinander unterscheiden, aber wenn zwei gleichnamige da sind hab ich das gleiche Problem wie bei wmctrl.

Aber ihr habt mir schon ein riesen Stück weiter geholfen, Danke ;)
falls euch noch was dazu einfällt immer her damit, noch bin ich nicht ganz am Ziel.
~ein Teil dieser Antwort könnte sie verunsichern.

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: [close]Programme nach login automatisch starten

Beitrag von pferdefreund » 02.09.2015 06:03:48

Noch ein Tip - für das Problem der doppelten Fensternamen. Viele Progamme - insbesondere die Terminals rxvt, xterm usw haben einen Parameter, um den Fenstertitel zu setzen. Damit sollten sich viele "Doppelte" vermeiden lassen. Einfach mal in der manpage des entsprechenden Programmes nachschauen. Es gibt eventuell sogar Parameter, die an das entsprechende Toolkit weitergereicht werden z.B GTK, QT oder was auch immer, um sowas zu erreichen. In den Programmen werden oftmals erst mal alle Parameter an die Initialisierungsaufrufe der entsprechenden Toolkits durchgereicht und dann erst vom Programm selber ausgewertet. Das Problem mit den doppelten sollte sich auf jeden Fall lösen lassen.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: [close]Programme nach login automatisch starten

Beitrag von Prometheuss » 02.09.2015 20:42:01

pferdefreund hat geschrieben:Noch ein Tip - für das Problem der doppelten Fensternamen. Viele Progamme - insbesondere die Terminals rxvt, xterm usw haben einen Parameter, um den Fenstertitel zu setzen. Damit sollten sich viele "Doppelte" vermeiden lassen. Einfach mal in der manpage des entsprechenden Programmes nachschauen. Es gibt eventuell sogar Parameter, die an das entsprechende Toolkit weitergereicht werden z.B GTK, QT oder was auch immer, um sowas zu erreichen. In den Programmen werden oftmals erst mal alle Parameter an die Initialisierungsaufrufe der entsprechenden Toolkits durchgereicht und dann erst vom Programm selber ausgewertet. Das Problem mit den doppelten sollte sich auf jeden Fall lösen lassen.
Da muss ich noch mal ein wenig nachschlagen, ich weiß das xterm das Terminal nur emuliert, da das eigentliche Terminal mal was "ganz anderes" war. wie jetzt aber mein xfce4 terminal und Gnome in dieses Puzzle passen muss ich aber nochmal schauen.
Davon lass ich also erst mal lieber die Finger, nicht dass ich da noch was kaputt mache.

Ps. sorgt gnome nicht irgendwie für die fenstertitel/id?
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Programme nach login automatisch starten

Beitrag von smutbert » 02.09.2015 23:12:02

smutbert hat geschrieben:[…] bei Interaktiven Shells (also dem Terminalfenster) kann man das Programm, das im Vordergrund läuft auch mit <Ctrl>+<z> in den Hintergrund befördern.

[…]
An der Stelle habe ich vergessen etwas zu erwähnen:
Wenn du in einem Terminal ein laufendes Programm mit <Ctrl>+<z> in den Hintergrund beförderst, dann wird dieses Programm zusätzlich gestoppt. Du musst also explizit

Code: Alles auswählen

$ bg
aufrufen, um es im Hintergrund weiterlaufen zu lassen oder

Code: Alles auswählen

$ fg
dann läuft es wieder im Vordergrund weiter.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: Programme nach login automatisch starten

Beitrag von Prometheuss » 02.09.2015 23:34:05

smutbert hat geschrieben:
smutbert hat geschrieben:[…] bei Interaktiven Shells (also dem Terminalfenster) kann man das Programm, das im Vordergrund läuft auch mit <Ctrl>+<z> in den Hintergrund befördern.

[…]
An der Stelle habe ich vergessen etwas zu erwähnen:
Wenn du in einem Terminal ein laufendes Programm mit <Ctrl>+<z> in den Hintergrund beförderst, dann wird dieses Programm zusätzlich gestoppt. Du musst also explizit

Code: Alles auswählen

$ bg
aufrufen, um es im Hintergrund weiterlaufen zu lassen oder

Code: Alles auswählen

$ fg
dann läuft es wieder im Vordergrund weiter.
ich hab das mal testhalber versucht. wenn ich mit

Code: Alles auswählen

/usr/bin/iceweasel  (extra ohne "&")
iceweasel starte und mit "ctrl"+"z" das versuche in den hintergrund zu schieben, passiert einfach garnichts :?
komisch ist auch, dass wenn iceweasel bereits offen ist das auch ohne"&" zeichen in den hintergrund rückt.

in einem anderen grad aktuellen thread ist eine ähnliche fehlermeldung aufgetaucht wie bei mir wenn ich iceweasel über die shell starte:

Code: Alles auswählen

:~$ /usr/bin/iceweasel

(process:5962): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Trotzdem startet alles wie gewohnt...
naja,egal
ps. ich verfolge weiter besagten thread. Dieses thema hat mich gepackt, ich lass erst locker wenn ich das verstehe!
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [close]Programme nach login automatisch starten

Beitrag von smutbert » 02.09.2015 23:39:44

Iceweasel habe ich nicht hier zum Testen, aber es muss auch mit Iceweasel funktionieren, nur darfst du das Ctrl+z nicht an den Iceweasel schicken sondern an die Shell, das Terminalfenster muss also das aktive sein, nicht das neu gestartete Iceweaselfenster!

Das andere ist, dass das Iceweasel-Kommando sich damit begnügt eine bereits vorhandene Instanz zu steuern. Das machen relativ viele Programme so, das heißt du setzt eigentlich nur den Befehl ab, was du in der bereits laufenden Programminstanz machen willst, deshalb bleibt im Terminal nichts davon übrig.

Und das dritte, Warnungen oder harmlose Fehlermeldungen hat man mit den allermeisten X-Programmen. Solange es trotzdem funktioniert → einfach ignorieren.

Zum eigentlichen Thema habe ich vorläufig keine Ideen mehr, aber wenn mir doch noch etwas einfällt, dann werde ich bestimmt an diesen Thread denken ☺

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: [close]Programme nach login automatisch starten

Beitrag von Prometheuss » 03.09.2015 00:55:33

smutbert hat geschrieben:Iceweasel habe ich nicht hier zum Testen, aber es muss auch mit Iceweasel funktionieren, nur darfst du das Ctrl+z nicht an den Iceweasel schicken sondern an die Shell, das Terminalfenster muss also das aktive sein, nicht das neu gestartete Iceweaselfenster!
dacht ich mir schon fast :lol:
ne ich hab zwei bildschirme. auf dem sekundären meine shell und auf dem primären wird dann iceweasel geöffnet.(dahinter ist dann noch ein anderes programm offen) mit ctrl+z sollte doch dann iceweasel "hinter" das andere programm rutschen oder? PID und so bleibt aber komplett gleich ne?
smutbert hat geschrieben:Und das dritte, Warnungen oder harmlose Fehlermeldungen hat man mit den allermeisten X-Programmen. Solange es trotzdem funktioniert → einfach ignorieren.
okay für die zukunft vermerkt :D
smutbert hat geschrieben:Zum eigentlichen Thema habe ich vorläufig keine Ideen mehr, aber wenn mir doch noch etwas einfällt, dann werde ich bestimmt an diesen Thread denken ☺
merci ;) ist ein ungutes gefühl ein programm halbfertig zu benutzen :roll:
~ein Teil dieser Antwort könnte sie verunsichern.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: [close]Programme nach login automatisch starten

Beitrag von smutbert » 03.09.2015 10:30:45

Prometheuss hat geschrieben:(dahinter ist dann noch ein anderes programm offen) mit ctrl+z sollte doch dann iceweasel "hinter" das andere programm rutschen oder?
Mit diesem Mißverständnis habe ich nicht gerechnet :wink:
<Ctrl>+<z> macht dir im Terminal die Eingabeaufforderung wieder frei, mit dem Iceweaselfenster selbst macht das gar nichts, außer dass es erst einmal einfriert, weil die Ausführung von Iceweasel unterbrochen und erst wieder mit fg oder bg im Terminal fortgesetzt wird.

Benutzeravatar
Prometheuss
Beiträge: 158
Registriert: 10.02.2015 21:45:52

Re: [close]Programme nach login automatisch starten

Beitrag von Prometheuss » 09.09.2015 21:43:10

Achsooooo. Man der Stein lag ja aber mal richtig quer :facepalm:
Danke smutbert :lol:
~ein Teil dieser Antwort könnte sie verunsichern.

Antworten