Her biri belirli çalışma alanında bir dizi program açmak için komut dosyasını nasıl kullanırım?


35

Bir süre etrafa baktım ve şu sorunumun cevabını bulamadım:

Unity ile Ubuntu 12.04'te altı masaüstü kurulumuna sahibim. Her sabah, işe başladığımda, aynı beş ya da altı programı açma rutininden geçiyorum. Her birini belirli bir çalışma alanında açıyorum. Bunu otomatik hale getirmek istiyorum. Bunu yazmanın veya yapılandırmanın bir yolu var mı?

Ek soru : Maddeyi daha da karmaşıklaştırmak için ikiz görünüm modunda iki ekran kullanıyorum. Aslında her programı belirli bir ekranda, tercihen tam ekranda başlatmam gerekiyor.


1
Bunu faydalı bulabilirsiniz. Bu wmctrl işaret, ama onu kullanmadım: movingtofreedom.org/2010/08/10/...
RobotHumans

bu yardımcı olabilir. askubuntu.com/questions/87002/…
Suhaib

1
Buna çok basit bir bakış açısıyla geliyorsanız, makinenizi bırakırken askıya alma modunda bırakamamanızın herhangi bir nedeni var mı? Daha kalıcı bir çözüm bulurken, sizin için hızlı bir çözüm olacağını düşünüyorum ...
Adeyfk

Masaüstü derken, bir çalışma alanı mı kastediyorsunuz?
p0llard

KDE aktiviteleri bunu yapabilir.
Mekanik salyangoz,

Yanıtlar:


20

jdp407'nin compizconfig kullanma fikri, belirli bir uygulamayı belirli bir çalışma alanı ile ilişkilendirecek, böylece EVERY TIME açılacak, ilgili çalışma alanına yerleştirilecektir. Bu istenmiyorsa, aşağıdakileri yapabilirsiniz:

1) yükleyin wmctrl

sudo apt-get install wmctrl

2) Aşağıdaki içeriğe sahip bir dosya oluşturun ve çalıştırılabilir hale getirin

#!/bin/bash
wmctrl -s 0 #Switches to workspace 0 [workspaces are numbered from 0]
gnome-terminal & #Say you want a terminal in the 0th workspace
nautilus & #Maybe a file browser too
sleep 2 #Windows take some time to open. If you switch immediately, they'll open up in wrong workspaces. May have to change the value 2.
wmctrl -s 1 #Switches to workspace 1
firefox & #You get the idea. Continue for all workspaces
sleep 2
wmctrl -s 0 #You will be left at this workspace when the script finishes executing

3) .xsessionrcHer giriş sırasında işlemi otomatikleştirmek için bu dizini [bu dosyayı oluşturmanız gerekebilir] ana dizininizden arayın . Veya gerektiğinde sadece bir terminalden arayabilirsiniz. EDIT: .xsessionrc değil, "Başlangıç ​​Uygulamaları" içine yerleştirin. .xsessionrc, masaüstü ortamı yüklenmeden önce bile çalışacaktır.


Jdp407 tarafından önerildiği gibi özel bir xsession oluşturmak isteyebilirsiniz, böylece seçebileceğiniz iki oturumunuz vardır, biri bu uygulamaları otomatik olarak açar ve diğeri de olmaz. Ama bu bana gereksiz görünüyor.


Bir çalışma alanına geçmenin, uygun uygulamaları açmanın ve ardından bir sonrakine geçmenin zaman harcadığını düşünüyorsanız, tüm uygulamaları tek seferde açabilir ve ardından pencereleri kullanarak hareket ettirebilirsiniz wmctrl. Örneğin

wmctrl -r 'Firefox' -t 1

Firefox'lu bir pencereyi başlığında çalışma alanı 1'e geçirir. Birden fazla pencere varsa, yönetilen pencere listesinde ilk yer wmctrldeğiştirilir. Bunu kullanmak için uygulamalar tarafından oluşturulacak pencerelerin başlığını bilmeniz gerekir. Bu yüzden bunu birincil seçenek olarak önermedim. En sık kullanılan uygulamalarda olduğu gibi başlıklar açıkça görülüyorsa, o zaman yol budur.


Uygulamaları tam ekranda açma:

Gnome-terminali gibi bazı uygulamalar, pencereyi maksimize veya tam ekran modunda açmak için komut satırı argümanlarına sahiptir. Eğer böyle seçenekler varsa, bunları kullanın. Aksi takdirde wmctrlaşağıdaki gibi kullanın

wmctrl -r 'prasanth@nb37' -b add,maximized_vert,maximized_horz

Bu (zaten var olan) terminal penceremi büyütüyor.

wmctrl -r 'prasanth@nb37' -b add,fullscreen

Bu, pencereyi tam ekran moduna gönderir.


Üzerinden gidin wmctrlErkeğin sayfasını. İşlevsellik için daha fazla kullanım bulabilirsiniz.


1
Anlaşılan çalışma alanını seçmek için wmctrl kullanmak Lynx sonrası dağıtımlarda çalışmaz. '-S' seçeneği yalnızca '0' olarak belirlenebilir veya bir hata atar veya hiçbir şey yapmaz. Kaynak: movingtofreedom.org/2010/08/10/...
p0llard

Unity2d ile 12.04 kullanıyorum (görsel efekt yok) ve bu benim için çalışıyor. Etkin görsel efektler ile işe yaramaz gibi görünüyor.
Prasanth

wmctrlBurada iyi çalışıyor (LXDE ve XFCE, xcompgr etkinleştirilmiş)
Glutanimate

Tarçınlı Nane 14'te benim için çalışıyor, teşekkürler!
k102

Ubuntu 14.04'te, wmctrl -o X,Ybelirli bir görünüme geçmek için kullanın . Birden fazla monitörünüz varsa, uygulamaları kullanarak diğer monitöre taşıyabilirsiniz wmctrl -r "App name" -e G,X,Y,W,H. Birlik görsel efektleri ile iyi çalışır.
Nate,

10

Burada iki 'sorun' var: ilki, giriş yaptığınızda belirli bir program setini açmak; ikincisi, belirli çalışma alanlarında onları açık tutmayı içerir. Her ikisiyle de ayrı ayrı ilgileneceğim:

  1. Özel bir X Oturumu Oluşturma

    Bunu yapmak oldukça kolaydır. Sadece bir X Oturumu Komut Dosyası oluşturmanız ve ardından LightDM'ye bunu kullanmasını söylemeniz gerekir. Terminalden istediğiniz programları başlatmak için komutları bilmeniz gerekir.

    1. Terminali açın.
    2. Yazıp touch ~/.customxsessionenter tuşuna basın.
    3. Yazıp gedit ~/.customxsessionenter tuşuna basın.
    4. Şimdi boş bir dosya ile açık bir metin editörü olacak.
    5. Bu dosyada bir X Oturumu tanımlamanız gerekir. Cevabın altındaki 'boşlukları doldur' dosyasını içeren bir örnek oluşturdum. Ben düşünüyorum Ubuntu 's pencere yöneticisi olarak gnome-oturumu kullanır, ancak muhtemelen yanılıyorum. Şu anda test edemiyorum (dizüstü bilgisayar kırılmış) bu yüzden beklendiği gibi çalışmazsa (örneğin: Birlik yerine Gnome yükler), biraz araştırma yapmanız gerekebilir.
    6. Dosyayı kaydedin ve Gedit'i kapatın.
    7. Yazıp touch /usr/share/xsessions/multi.desktopenter tuşuna basın.
    8. Yazıp gedit /usr/share/xsessions/multi.desktopenter tuşuna basın.
    9. Şimdi boş bir dosya ile açık bir metin editörü olacak.
    10. Cevabın altındaki kodu ('/usr/share/xsessions/multi.desktop:' etiketli) kopyalayıp Gedit'e yapıştırın.
    11. Dosyayı kaydedin ve Gedit'i kapatın.
    12. Yeniden Başlatma. Giriş ekranına geldiğinizde, mevcut oturumlara bakarsanız (kullanıcı adınızın yanındaki küçük Ubuntu Logosuna tıklayın), Çoklu Oturum adında bir tane görmelisiniz. Bununla oturum açarsanız, X Oturum Komut Dosyasına koyduğunuz programlar otomatik olarak açılmalıdır.
  2. Çalışma Alanlarına Program Atama

    Bu aynı zamanda oldukça kolaydır, ancak Ubuntu'da varsayılan olarak kurulu olmayan ekstra bir yazılıma ihtiyaç duyar.

    1. Compizconfig-settings-manager programını kurun (Yazılım Merkezini kullanabilirsiniz veya sadece sudo apt-get install compizconfig-settings-managerTerminal'de çalıştırın ).
    2. Dash'den CompizConfig Ayarları'nı açın.
    3. 'Windows Yerleştir' Eklentisini açın ('Pencere Yönetimi' bölümündedir).
    4. 'Sabit görünüm pencereli Windows' bölümünde 'Yeni'yi tıklayın.
    5. 'Artı' simgesine tıklayın.
    6. 'Tip'i' Pencere Başlığı 'olarak ayarlayın ve programlardan birinin pencere başlığını' Değer 'kutusuna girin. 'İlişkilendirme'nin' VE 'olarak ayarlandığından emin olun ve' Ekle'yi tıklayın.
    7. 'X' ve 'Y' kutularına sayı girerek çalışma alanını ayarlayın. 'X' için 4 çalışma alanınız varsa, '1' sol ve '2' sağ ve 'Y' için '1' en üstte ve '2' en alttadır. 6 çalışma alanınız olduğunu görünce, işlerin nasıl yapıldığına bağlı olarak, 'Y' ila '3' olarak ayarlanması alt satırı seçer ve 'X' ila '3' olarak ayarlanması 3. sütunu seçer.
    8. Çalışma alanı atamak istediğiniz kalan programlar için Adım 4-7'yi tekrarlayın.
    9. CompizConfig Ayarları'nı kapatın.
  3. Giriş

    Giriş yaptığınızda, Ubuntu'ya X oturumunuzu kullanmak istediğinizi söylemeniz gerekir.

    1. Yeniden Başlatma.
    2. Giriş ekranına geldiğinizde, mevcut oturumlara bakarsanız (kullanıcı adınızın yanındaki küçük Ubuntu Logosuna tıklayın), Çoklu Oturum adında bir tane görmelisiniz. Bununla oturum açarsanız, X Oturum Komut Dosyasına koyduğunuz programlar otomatik olarak açılmalı ve seçtiğiniz çalışma alanlarına atanmalıdır.
  4. sorunlar

    Küçük bir hata yaparsanız veya bu cevabı yazarken bir hata yaptıysam, bununla ilgili çok yanlış olabilir. Eğer bir şeyler ters giderse, mektuba verilen talimatları takip ettiğinizden emin olun ve yapmadıysanız, düzeltin. Hala bir sorununuz varsa, yorum yapın.

~ / .Customxsession:

#!/usr/bin/env bash
program-command-1 &
program-command-2 &
program-command-3 &
program-command-4 &
program-command-5 &
program-command-6 &
exec gnome-session

/usr/share/xsessions/multi.desktop:

[Desktop Entry]
Name=Multi-Session
Exec=/home/your-username/.customxsession

1

Gerekli uygulamaları StarupApplications Programına ekleyin ve sonra da bu betiği ekleyin. Bu benim betiğim: ManageWorkSpaces.sh

echo "Jeril"
wmctrl -r NetBeans IDE 7.1.1 -t 0
wmctrl -r /bin/bash -t 1
wmctrl -r Google Chrome -t 2
wmctrl -r jerilkuruvila - Skype™ -t 3

// terminale odaklan

wmctrl -a NetBeans IDE 7.1.1   -t 0 

Ancak 2 ekran kullanımı hakkında hiçbir fikrim yok.


Merhaba Jeril! Ubuntu'ya Sormaya Hoş Geldiniz! Çözümün benim için çalışmıyor. Eğer koşarsam wmctrl -d, sadece bir tane "masaüstüm" var. Bunu Ubuntu 12.10'daki Unity'de test ettiniz mi?
Flimm

Merhaba Flimm, wmctrl -r kullanıyorum, 4 çalışma alanım var. Ubuntu versiyonum 12.04
jkuruvila
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.