¿Es posible tener las aplicaciones abiertas del espacio de trabajo actual en el iniciador pero no las de otros espacios de trabajo?
¿Es posible tener las aplicaciones abiertas del espacio de trabajo actual en el iniciador pero no las de otros espacios de trabajo?
Respuestas:
Bueno, otras respuestas son bastante antiguas, así que creo que vale la pena agregar una respuesta actualizada. Es posible hacerlo ahora y no es demasiado difícil (con Ubuntu 17.10 y con Gnome).
Solo usa dconf-editor :
sudo apt install dconf-editor
Navegue a org> gnome> shell> extensiones> dash-to-dock y verifique aislar-espacios de trabajo
Usando xdotool
's windowunmap
, es posible ocultar una ventana por completo. La ventana, ni su aplicación, ya no aparece en el icono del iniciador, y ni siquiera aparece en la salida de wmctrl
.
Teóricamente, esto podría estar conectado al "motor del espacio de trabajo", que se utilizó en esta y esta respuesta. Esa habría sido la solución más elegante.
Sin embargo, el proceso de ocultar solo ventanas en otros espacios de trabajo y elevar automáticamente los que están en el espacio de trabajo actual es demasiado exigente para usarlo en un script de fondo en curso (por ahora), y no es improbable que también "se resfríe". Como las ventanas se pierden para siempre en caso de errores, decidí no ofrecer el procedimiento como un proceso automático (en segundo plano).
Sin embargo, si esta respuesta es útil para usted o no, depende de la situación y de la razón por la que desea ocultar los íconos de las aplicaciones, que se ejecutan en otros espacios de trabajo; La decisión es tuya.
Un script, disponible bajo una tecla de acceso directo, aparentemente haciendo que todas las ventanas en el espacio de trabajo actual (y, por lo tanto, las aplicaciones) desaparezcan por completo. Eso significa que el icono de la aplicación en el lanzador de Unity no muestra actividad de la aplicación:
Tres aplicaciones en ejecución: después de presionar la tecla de acceso directo:
Al presionar nuevamente la combinación de teclas schortcut, las ventanas y sus aplicaciones volverán a aparecer.
#!/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]])
El script necesita ambos wmctrl
y xdotool
:
sudo apt-get install wmctrl xdotool
toggle_visibility.py
Prueba: ejecute el script: en una ventana de terminal, ejecute el comando:
python3 /path/to/toggle_visibility.py
Ahora abra una nueva ventana de terminal (ya que la primera aparentemente desapareció de la faz de la tierra) y ejecute el mismo comando nuevamente. Todas las ventanas deberían volver a aparecer.
NB : asegúrese de no tener ventanas "valiosas" abiertas durante la prueba
Si todo funciona bien, agregue el comando a una combinación de teclas de acceso directo: elija: Configuración del sistema> "Teclado"> "Accesos directos"> "Accesos directos personalizados". Haga clic en "+" y agregue el comando:
python3 /path/to/toggle_visibility.py
Como se dijo, el script usa xdotool
's' windowunmap
para ocultar (completamente) las ventanas y las aplicaciones a las que pertenecen. La secuencia de comandos:
En la próxima ejecución, el script:
alternando así la visibilidad de ventanas y aplicaciones en el espacio de trabajo actual.
ctrl
+ shift
+arrow key
Lamentablemente es imposible.
Unity siempre muestra todas las aplicaciones de todas partes y no hay forma de cambiar esto. Hay un informe de error: https://bugs.launchpad.net/ayatana-design/+bug/683170 Pero parece que los desarrolladores no van a hacer nada. Probablemente, si marca en la parte superior de la página que este error le afecta, ayudará a los desarrolladores a comprender la importancia de dicha opción.