Pengaturan untuk hanya menampilkan aplikasi ruang kerja saat ini di peluncur?

30

Apakah mungkin untuk memiliki aplikasi yang dibuka dari ruang kerja saat ini di peluncur tetapi bukan yang dari ruang kerja lain?

pengguna165749
sumber
Saya pikir ctrl + (1,2,3,4) digunakan untuk berpindah ruang kerja. Tapi periksa pintasan di pengaturan sistem ...
Alvar
Tahan tombol SUPER (kunci Windows) untuk menampilkan ikhtisar semua pintasan Persatuan yang tersedia. Lihat juga T&J ini .
Glutanimate
Saya telah mengedit pertanyaan kedua Anda tentang cara pintas dari pos Anda karena merupakan duplikat dan telah dijawab sebelumnya. Saya melihat bahwa ini adalah pertanyaan pertama Anda (Selamat datang di Askubuntu!): Lebih mudah bagi kami untuk membantu Anda jika Anda hanya mengajukan satu pertanyaan per posting. Harap perhatikan hal ini di masa mendatang saat menggunakan AU.
Glutanimate
Pertanyaan yang sama seperti di sini . Namun, yang satu itu tidak memiliki jawaban.
RPiAwesomeness
Mungkin bukan jawaban yang Anda cari tetapi kesatuan kurangnya kemampuan penyesuaian. Jika Anda memiliki kebutuhan tertentu atau ingin lebih banyak kontrol atas desktop Anda, Anda harus mempertimbangkan pindah ke lingkungan desktop yang lebih fleksibel, seperti KDE.
Conchylicultor

Jawaban:

30

Untuk Ubuntu Dock dikirimkan bersama Ubuntu 17.10 dan yang lebih baru (dengan GNOME)

Yah, jawaban lain sudah cukup tua, jadi saya pikir perlu menambahkan jawaban yang terbaru. Dimungkinkan untuk melakukannya sekarang dan tbh tidak terlalu sulit (Dengan Ubuntu 17.10 dan memiliki Gnome).

Cukup gunakan dconf-editor :

sudo apt install dconf-editor

Arahkan ke org> gnome> shell> extensions> dash-to-dock dan periksa ruang kerja yang terpisah masukkan deskripsi gambar di sini

Jakub Kopyś
sumber
1
pertanyaannya sama sekali tidak ada hubungannya dengan Dash to Dock Gnome Extension. pertanyaannya adalah tentang Unity Launcher, yang Dash to Dock bahkan tidak kompatibel dengan Unity.
crookedleaf
2
@crookedleaf Ubuntu beralih ke GNOME dengan dasbor-to-dock yang diprogram ulang sebagai default dengan 17.10.
Seth
1
@Seth Tapi OP menggunakan Unity, bukan Gnome. Jadi salah satu OP hanya menggunakan tag "Unity" secara tidak sengaja, atau mereka menggunakan versi Ubuntu dengan Unity.
crookedleaf
3
@crookedleaf Atau kita hanya perlu membuat pertanyaan diperbarui agar mereka memiliki jawaban terbaru juga :)
Seth
1
Berfungsi bagus di gnome 18.04 / w. Terima kasih! Perhatikan bahwa ekstensi juga dapat dengan mudah dipasang dari situs web: extensions.gnome.org/extension/307/dash-to-dock
Jeff Ward
8

Cara membuat aplikasi tidak dapat dilacak di ruang kerja (lain)

Menggunakan xdotool's windowunmap, adalah mungkin untuk menyembunyikan jendela sepenuhnya. Jendela, atau aplikasinya, muncul lagi di ikon peluncur, dan bahkan tidak terdaftar lagi di keluaran wmctrl.

Secara teoritis, ini dapat dihubungkan ke "ruang kerja-mesin", yang digunakan dalam ini dan jawaban ini . Itu akan menjadi solusi paling elegan.

Namun, proses hanya menyembunyikan jendela di ruang kerja lain dan secara otomatis menaikkan yang ada di ruang kerja saat ini terlalu menuntut untuk digunakan dalam skrip latar belakang yang sedang berlangsung (untuk saat ini), dan tidak mungkin "untuk masuk angin" juga. Karena windows hilang untuk kebaikan jika terjadi kesalahan, oleh karena itu saya memutuskan untuk tidak menawarkan prosedur sebagai proses otomatis (latar belakang).

Namun, jika jawaban ini bermanfaat bagi Anda atau tidak tergantung pada situasinya, dan alasan mengapa Anda ingin menyembunyikan ikon aplikasi, berjalan di ruang kerja lain; keputusan ada di tangan Anda.

Solusinya; apa itu dan bagaimana cara kerjanya dalam praktek

  • Sebuah skrip, tersedia di bawah tombol pintasan, tampaknya membuat semua jendela di ruang kerja saat ini (dan dengan demikian aplikasi) hilang sepenuhnya. Itu berarti ikon aplikasi di peluncur Persatuan tidak menunjukkan aktivitas aplikasi:

    Tiga aplikasi yang sedang berjalan: masukkan deskripsi gambar di siniSetelah menekan tombol pintas:masukkan deskripsi gambar di sini

  • Menekan kombinasi tombol schortcut lagi, jendela dan aplikasi mereka akan muncul kembali.

  • Karena kombinasi tombol hanya akan menyembunyikan windows dan aplikasi dari ruang kerja saat ini , Anda selanjutnya dapat beralih ke ruang kerja lain tanpa tanda apa yang (tersembunyi) pada ruang kerja saat ini.
  • Juga unhiding dilakukan (hanya) pada ruang kerja saat ini, jadi singkatnya, proses persembunyian dan unhiding dilakukan sepenuhnya independen per ruang kerja .

Naskah

#!/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]])

Bagaimana cara menggunakan

  1. Script membutuhkan keduanya wmctrldan xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Salin skrip ke file kosong, simpan sebagai toggle_visibility.py
  3. Tes-jalankan skrip: di jendela terminal, jalankan perintah:

    python3 /path/to/toggle_visibility.py
    

    Sekarang buka jendela terminal baru (karena yang pertama tampaknya menghilang dari muka bumi) dan jalankan perintah yang sama lagi. Semua jendela akan muncul kembali.

    NB : pastikan Anda tidak memiliki jendela "berharga" terbuka saat pengujian

  4. Jika semua berfungsi dengan baik, tambahkan perintah ke kombinasi tombol pintas: pilih: Pengaturan Sistem> "Keyboard"> "Pintasan"> "Pintasan Khusus". Klik "+" dan tambahkan perintah:

    python3 /path/to/toggle_visibility.py
    

Penjelasan

Seperti yang dikatakan, skrip menggunakan xdotool's windowunmap, untuk (sepenuhnya) menyembunyikan jendela dan aplikasi milik mereka. Naskah:

  • membaca apa ruang kerja saat ini
  • membaca windows, yang ada di ruang kerja saat ini (hanya)
  • menulis daftar jendela ke file, dinamai setelah ruang kerja saat ini
  • menyembunyikan windows

Pada proses selanjutnya, skrip:

  • memeriksa apakah file, yang sesuai dengan ruang kerja saat ini ada
  • jika demikian, baca daftar jendela dan sembunyikan jendela.

dengan demikian mengaktifkan visibilitas windows dan aplikasi pada ruang kerja saat ini.

Yakub Vlijm
sumber
Besar. Sekarang hanya jika saya dapat menemukan cara untuk secara otomatis mengeksekusi skrip ketika saya pindah ke ruang kerja lain sehingga mereka hilang secara ajaib dan kemudian muncul lagi ketika saya pindah kembali. Mungkin saya bisa menulis skrip python untuk mengganti tombol pintas untuk ctrl+ shift+arrow key
Thu Yein Tun
1
Pada 17.10 ini sekarang mungkin. Lihat jawaban lain.
Martin Melka
6

Sayangnya itu tidak mungkin.

Unity selalu menampilkan semua aplikasi dari mana-mana dan tidak ada cara untuk mengubahnya. Ada laporan bug - https://bugs.launchpad.net/ayatana-design/+bug/683170 Tapi sepertinya pengembang tidak akan melakukan apa pun. Mungkin jika Anda menandai di bagian atas halaman bahwa bug ini memengaruhi Anda, itu akan membantu pengembang untuk memahami pentingnya opsi tersebut.

dofeoct
sumber
1
Jangan mengomentari laporan bug, cukup tandai itu memengaruhi Anda di bagian atas halaman.
Flimm
@ Flimm apakah Anda tahu desktop manager apa yang memiliki fungsi ini?
Cesar
2
Persatuan tampak hebat tetapi kurangnya kemampuan penyesuaian benar-benar membuat frustrasi.
Programster