Yalnızca geçerli çalışma alanının uygulamalarını başlatıcıda gösterecek şekilde mi ayarlanıyorsunuz?


30

Mevcut çalışma alanının açılan uygulamalarının başlatıcıda olması mümkün değil, diğer çalışma alanlarından değil mi?


Çalışma alanlarını değiştirmek için ctrl + (1,2,3,4) kullanıldığını düşünüyorum. Ancak sistem ayarlarında kısayolları kontrol edin ...
Alvar

Tüm Unity kısayollarına genel bakış görüntülemek için SUPER tuşunu (Windows tuşu) basılı tutun. Ayrıca bu soru-cevap bölümünü de inceleyin .
Glutanimate

Yazınızın kısayollarıyla ilgili ikinci sorunuzu düzelttim, çünkü bu bir kopya ve daha önce cevaplandı. Bunun ilk sorunuz olduğunu görüyorum (Askubuntu'ya Hoş Geldiniz!): Her yazı için yalnızca bir soru sorarsanız, size yardımcı olmak daha kolay. AU kullanırken lütfen bunu gelecekte aklınızda bulundurun.
Glutanimate

Burada da aynı soru var . Ancak, bu bir cevap yok.
RPiAwesomeness 7:15

Muhtemelen aradığınız cevabı değil ama birliği özelleştirilebilirlik eksikliği. Özel gereksinimleriniz varsa veya masaüstünüz üzerinde daha fazla kontrol sahibi olmak istiyorsanız, KDE gibi daha esnek bir masaüstü ortamına geçmeyi düşünmelisiniz.
Conchylicultor 19:16

Yanıtlar:


30

Ubuntu Dock için Ubuntu 17.10 ve sonrası ile birlikte (GNOME ile birlikte)

Eh, diğer cevaplar oldukça eski, bu yüzden güncel bir cevap eklemek için değer olduğunu düşünüyorum. Şu anda bunu yapmak çok zor mümkün değil, tbh (Ubuntu 17.10 ve Gnome ile).

Sadece dconf-editor'ü kullanın :

sudo apt install dconf-editor

Gezinin org> gnome> kabuk> uzantıları> çizgi-dock ve kontrol izolatı-çalışma alanları görüntü tanımını buraya girin


1
soru kesinlikle Dash To Dock Gnome Uzantısı ile ilgisi yoktur. Soru Dash To Dock'un Unity ile bile uyumlu olmadığı Unity Launcher ile ilgili.
crookedleaf

2
@crookedleaf Ubuntu, yeniden yapılandırılmış bir dock-to-dock ile 17.10'da GNOME'a geçti.
Seth

1
@Seth Fakat OP, Gnome değil, Birlik kullanıyor. Bu yüzden OP ya sadece "Unity" etiketini yanlışlıkla kullandı ya da Unity ile birlikte bir Ubuntu sürümü kullanıyorlar.
çarpık

3
@crookedleaf Veya soruları güncel tutmamız gerekiyor, bu yüzden onlar da en son cevaplara sahip olacaklar :)
Seth

1
18.04 / gnome ile harika çalışıyor. Teşekkürler! Uzantının web sitesinden de kolayca kurulabileceğini unutmayın: extensions.gnome.org/extension/307/dash-to-dock
Jeff Ward

8

(Diğer) çalışma alanlarında izlenemeyen uygulamalar nasıl yapılır

xdotool'Yi kullanarak windowunmapbir pencereyi tamamen gizlemek mümkündür. Pencere veya uygulaması, başlatıcı simgesinde daha fazla gerçekleşmez ve çıktısında artık listelenmemiştir wmctrl.

Teorik olarak, bu olabilir kullanıldı "çalışma alanı-motor", bağlanacak bu ve bu cevap. Bu en şık çözüm olurdu.

Ancak, yalnızca diğer çalışma alanlarındaki pencereleri gizleme ve geçerli çalışma alanındaki pencereleri otomatik olarak yükseltme işlemi devam eden bir arka plan komut dosyasında (şimdilik) kullanmaya ve "soğuk algınlığı yakalamak" için pek de zor bir süreç değil. Hata durumunda pencereler tamamen kaybolduğundan, prosedürü otomatik (arkaplan) bir işlem olarak sunmamaya karar verdim.

Bu cevap sizin için yine de faydalıysa veya duruma bağlı değilse, duruma ve diğer çalışma alanlarında çalışan uygulamaların simgelerini neden gizlemek istediğinizin nedenine; karar senin.

Çözüm; Bu nedir ve pratikte nasıl çalışır?

  • Kısayol tuşu altında bulunan ve geçerli çalışma alanındaki (ve dolayısıyla uygulamalardaki) tüm pencereleri tamamen ortadan kaldıran bir komut dosyası . Bu, Unity başlatıcısındaki uygulamanın simgesinin uygulamanın hiçbir etkinliğini göstermediği anlamına gelir:

    Çalışan üç uygulama: görüntü tanımını buraya girinKısayol tuşuna bastıktan sonra:görüntü tanımını buraya girin

  • Schortcut tuş kombinasyonuna tekrar basıldığında, pencereler ve uygulamaları yeniden görünecektir.

  • Tuş kombinasyonu, pencereleri ve uygulamaları yalnızca geçerli çalışma alanından gizleyeceğinden, daha sonra geçerli çalışma alanında neyin gizli olduğunu belirtmeden başka bir çalışma alanına geçebilirsiniz.
  • Ayrıca gösterme kadar kısa olarak, mevcut çalışma alanında (yalnızca) yapılır, gizleme ve gösterme süreci tamamen bağımsız doen olan çalışma başına .

Senaryo

#!/usr/bin/env python3
import subprocess    
import os
import time

datadir = os.environ["HOME"]+"/.config/maptoggle"
if not os.path.exists(datadir):
    os.makedirs(datadir)
workspace_data = datadir+"/wspacedata_"

def get_wlist(res):
    res = get_res()
    try:
        wlist = [l.split() for l in subprocess.check_output(["wmctrl", "-lG"]).decode("utf-8").splitlines()]
        return [w for w in wlist if all([
            0 < int(w[2]) < res[0],
            0 < int(w[3]) < res[1],
            "_NET_WM_WINDOW_TYPE_NORMAL" in subprocess.check_output(["xprop", "-id", w[0]]).decode("utf-8"),
            ])]
    except subprocess.CalledProcessError:
        pass

def get_res():
    # get resolution
    xr = subprocess.check_output(["xrandr"]).decode("utf-8").split()
    pos = xr.index("current")
    return [int(xr[pos+1]), int(xr[pos+3].replace(",", "") )]

def current(res):
    # get the current viewport
    vp_data = subprocess.check_output(
        ["wmctrl", "-d"]
        ).decode("utf-8").split()
    dt = [int(n) for n in vp_data[3].split("x")]
    cols = int(dt[0]/res[0])
    curr_vpdata = [int(n) for n in vp_data[5].split(",")]
    curr_col = int(curr_vpdata[0]/res[0])+1
    curr_row = int(curr_vpdata[1]/res[1])
    return str(curr_col+curr_row*cols)

res = get_res()

try:
    f = workspace_data+current(res)
    wlist = eval(open(f).read().strip())
    for w in wlist:
        subprocess.Popen(["xdotool", "windowmap", w[0]])
    os.remove(f)
except FileNotFoundError:
    current_windows = get_wlist(res)
    open(f, "wt").write(str(current_windows))
    for w in current_windows:
        subprocess.Popen(["xdotool", "windowunmap", w[0]])

Nasıl kullanılır

  1. Senaryo hem ihtiyacı wmctrlve xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Komut dosyasını boş bir dosyaya kopyalayın, olarak kaydedin. toggle_visibility.py
  3. Komut dosyasını test et: bir terminal penceresinde komutu çalıştır:

    python3 /path/to/toggle_visibility.py
    

    Şimdi yeni bir terminal penceresi açın (ilk bakış dünyanın görünüşünden kaybolduğundan beri) ve aynı komutu tekrar çalıştırın. Tüm pencereler yeniden görünmelidir.

    Not : test sırasında "değerli" pencerelerin açık olmadığından emin olun

  4. Her şey yolunda giderse, komutu bir kısayol tuşu kombinasyonuna ekleyin: seçimini yapın: Sistem Ayarları> "Klavye"> "Kısayollar"> "Özel Kısayollar". "+" İşaretini tıklayın ve şu komutu ekleyin:

    python3 /path/to/toggle_visibility.py
    

açıklama

Olarak komut kullanımları, adı geçen xdotool'in windowunmap(tam) gizlemek camlara ve uygulamalar, aittir. Senaryo:

  • Geçerli çalışma alanının ne olduğunu okur
  • geçerli çalışma alanında bulunan pencereleri okur (yalnızca)
  • pencere listesini geçerli çalışma alanından sonra adlandırılmış bir dosyaya yazar.
  • pencereleri gizler

Bir sonraki çalıştırmada script:

  • karşılık gelen dosyanın eğer çekler, şimdiki çalışma alanı var
  • öyleyse, pencere listesini okur ve pencereleri gizler.

Böylece, mevcut çalışma alanındaki pencerelerin ve uygulamaların görünürlüğünü değiştirir.


Harika. Şimdi sadece diğer çalışma alanına taşındığımda betiği otomatik olarak çalıştırmanın bir yolunu bulabilirsem, böylece sihirli bir şekilde kaybolurlar ve geri döndüğümde tekrar görünürler. Belki de ctrl+ shift+arrow key
Thu Yein Tun

1
17.10'da bu şimdi mümkün. Diğer cevaplara bakınız.
Martin Melka

6

Maalesef bu imkansız.

Birlik her zaman her yerden tüm uygulamaları gösterir ve bunu değiştirmenin bir yolu yoktur. Bir hata raporu var - https://bugs.launchpad.net/ayatana-design/+bug/683170 Ancak geliştiricilerin hiçbir şey yapmayacağı görülüyor. Muhtemelen, sayfanın en üstünde bu hatanın sizi etkilediğini işaretlerseniz, geliştiricilerin bu seçeneğin önemini anlamalarına yardımcı olacaktır.


1
Hata raporuna yorum yapmayın, sayfanın en üstünde sizi etkiliyor olarak işaretleyin.
Flimm

@ Flimm hangi masaüstü yöneticisinin bu işlevselliğe sahip olduğunu biliyor musunuz?
Cesar

2
birlik harika görünüyor ama özelleştirilebilirlik eksikliği gerçekten sinir bozucu.
Programcı
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.