Apakah mungkin untuk memiliki aplikasi yang dibuka dari ruang kerja saat ini di peluncur tetapi bukan yang dari ruang kerja lain?
Apakah mungkin untuk memiliki aplikasi yang dibuka dari ruang kerja saat ini di peluncur tetapi bukan yang dari ruang kerja lain?
Jawaban:
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
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.
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: Setelah menekan tombol pintas:
Menekan kombinasi tombol schortcut lagi, jendela dan aplikasi mereka akan muncul kembali.
#!/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]])
Script membutuhkan keduanya wmctrl
dan xdotool
:
sudo apt-get install wmctrl xdotool
toggle_visibility.py
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
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
Seperti yang dikatakan, skrip menggunakan xdotool
's windowunmap
, untuk (sepenuhnya) menyembunyikan jendela dan aplikasi milik mereka. Naskah:
Pada proses selanjutnya, skrip:
dengan demikian mengaktifkan visibilitas windows dan aplikasi pada ruang kerja saat ini.
ctrl
+ shift
+arrow key
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.