¿Configura para mostrar solo las aplicaciones del espacio de trabajo actual en el iniciador?

30

¿Es posible tener las aplicaciones abiertas del espacio de trabajo actual en el iniciador pero no las de otros espacios de trabajo?

usuario165749
fuente
Creo que ctrl + (1,2,3,4) se usa para cambiar espacios de trabajo. Pero revise los accesos directos en la configuración del sistema ...
Alvar
Mantenga presionada la tecla SUPER (tecla de Windows) para mostrar una descripción general de todos los accesos directos de Unity disponibles. Consulte también estas preguntas y respuestas .
Glutanimate
Edité tu segunda pregunta sobre los accesos directos de tu publicación porque es un duplicado y ha sido respondida antes. Veo que esta es su primera pregunta (¡Bienvenido a Askubuntu!): Es más fácil para nosotros ayudarlo si solo hace una pregunta por publicación. Tenga esto en cuenta en el futuro cuando use AU.
Glutanimate
La misma pregunta que aquí . Sin embargo, esa carece de respuesta.
RPiAwesomeness
Probablemente no sea la respuesta que buscas, sino la falta de personalización de la unidad. Si tiene necesidades particulares o desea más control sobre su escritorio, debería considerar pasar a un entorno de escritorio más flexible, como KDE.
Conchylicultor

Respuestas:

30

Para Ubuntu Dock enviado con Ubuntu 17.10 y posterior (con GNOME)

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 ingrese la descripción de la imagen aquí

Jakub Kopyś
fuente
1
La pregunta no tiene absolutamente nada que ver con la extensión Dash To Dock Gnome. la pregunta es sobre Unity Launcher, que Dash To Dock ni siquiera es compatible con Unity.
crookedleaf
2
@crookedleaf Ubuntu cambió a GNOME con un rehacer dash-to-dock por defecto con 17.10.
Seth
1
@Seth Pero OP está usando Unity, no Gnome. Entonces, OP solo usó la etiqueta "Unity" accidentalmente, o están usando una versión de Ubuntu con Unity.
crookedleaf
3
@crookedleaf O simplemente necesitamos mantener las preguntas actualizadas para que tengan las últimas respuestas también :)
Septiembre
1
Funciona muy bien en 18.04 / w gnomo. ¡Gracias! Tenga en cuenta que la extensión también se puede instalar fácilmente desde el sitio web: extensiones.gnome.org/extension/307/dash-to-dock
Jeff Ward
8

Cómo hacer que las aplicaciones no se puedan rastrear en (otros) 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.

La solución; qué es y cómo funciona en la práctica

  • 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: ingrese la descripción de la imagen aquídespués de presionar la tecla de acceso directo:ingrese la descripción de la imagen aquí

  • Al presionar nuevamente la combinación de teclas schortcut, las ventanas y sus aplicaciones volverán a aparecer.

  • Dado que la combinación de teclas solo ocultará las ventanas y las aplicaciones del espacio de trabajo actual , posteriormente puede cambiar a otro espacio de trabajo sin un signo de lo que está (oculto) en el espacio de trabajo actual.
  • Además, la ocultación se realiza (solo) en el espacio de trabajo actual, por lo que, en resumen, el proceso de ocultación y ocultación es completamente independiente por espacio de trabajo .

La secuencia de comandos

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

Cómo utilizar

  1. El script necesita ambos wmctrly xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Copie el script en un archivo vacío, guárdelo como toggle_visibility.py
  3. 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

  4. 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
    

Explicación

Como se dijo, el script usa xdotool's' windowunmappara ocultar (completamente) las ventanas y las aplicaciones a las que pertenecen. La secuencia de comandos:

  • lee cuál es el espacio de trabajo actual
  • lee las ventanas, que existen en el espacio de trabajo actual (solo)
  • escribe la lista de la ventana en un archivo, llamado así por el espacio de trabajo actual
  • esconde las ventanas

En la próxima ejecución, el script:

  • comprueba si existe el archivo correspondiente al espacio de trabajo actual
  • si es así, lee la lista de ventanas y las muestra.

alternando así la visibilidad de ventanas y aplicaciones en el espacio de trabajo actual.

Jacob Vlijm
fuente
Excelente. Ahora solo si puedo encontrar una manera de ejecutar automáticamente el script cuando me muevo al otro espacio de trabajo para que simplemente desaparezcan mágicamente y luego aparezcan nuevamente cuando me muevo hacia atrás. Tal vez podría escribir un script de Python para reemplazar la tecla de acceso directo para ctrl+ shift+arrow key
Jue Yein Tun
1
El 17.10 ahora esto es posible. Ver otras respuestas.
Martin Melka
6

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.

dofeocto
fuente
1
No comente el informe de error, simplemente márquelo como que le afecta en la parte superior de la página.
Flimm
@Flimm, ¿sabes qué administrador de escritorio tiene esta funcionalidad?
Cesar
2
la unidad se ve muy bien, pero la falta de personalización es realmente frustrante.
Programador