실행기에서 현재 작업 공간의 응용 프로그램 만 표시하도록 설정 하시겠습니까?


30

실행기에서 현재 작업 공간의 응용 프로그램을 열 수 있지만 다른 작업 공간의 응용 프로그램은 열 수 없습니까?


ctrl + (1,2,3,4)는 작업 공간을 전환하는 데 사용됩니다. 그러나 시스템 설정에서 바로 가기를 확인하십시오 ...
Alvar

SUPER 키 (Windows 키)를 누르고 있으면 사용 가능한 모든 Unity 바로 가기에 대한 개요가 표시됩니다. 이 Q & A도 확인하십시오 .
Glutanimate

게시물의 바로 가기에 관한 두 번째 질문은 중복되어 이전에 답변 되었기 때문에 편집했습니다. 이것이 첫 번째 질문 인 것으로 나타났습니다 (Askubuntu에 오신 것을 환영합니다!) : 게시물 당 하나의 질문 만하는 경우 도움을주는 것이 더 쉽습니다. AU를 사용할 때는 앞으로이 점을 명심하십시오.
Glutanimate

여기 와 같은 질문 입니다. 그러나 그 대답은 없습니다.
RPiAwesomeness

아마 당신이 찾고있는 대답은 아니지만 맞춤형 기능의 통일성이 부족합니다. 특정 요구 사항이 있거나 데스크탑을보다 세밀하게 제어하려면 KDE와 같이보다 유연한 데스크탑 환경으로 이동하는 것을 고려해야합니다.
Conchylicultor

답변:


30

Ubuntu 17.10 이상과 함께 제공되는 Ubuntu Dock (GNOME 포함)

글쎄, 다른 답변은 꽤 오래되었으므로 최신 답변을 추가 할 가치가 있다고 생각합니다. 지금 당장 그렇게 할 수는 있지만 너무 어렵지 않습니다 (Ubuntu 17.10 및 그놈 포함).

dconf-editor를 사용 하십시오 .

sudo apt install dconf-editor

이동에 조직> 그놈> 쉘> 확장> 대시 - 투 - 독 체크 분리-작업 공간 여기에 이미지 설명을 입력하십시오


1
이 질문은 Dash To Dock Gnome Extension과 전혀 관련이 없습니다. 문제는 Dash To Dock이 Unity와 호환되지 않는 Unity Launcher에 관한 것입니다.
crookedleaf

2
@crookedleaf 우분투는 17.10으로 기본값으로 재 베이크 된 대시-독을 사용하여 그놈으로 전환했습니다.
세스

1
@Seth 그러나 OP는 Gnome이 아닌 Unity를 사용하고 있습니다. 따라서 OP는 우연히 "Unity"태그를 실수로 사용했거나 Unity와 함께 Ubuntu 버전을 사용하고 있습니다.
crookedleaf

3
@crookedleaf 또는 우리는 단지 최신 답변을 갖도록 질문을 업데이트해야합니다 :)
세스

1
18.04 / w 그놈에서 잘 작동합니다. 감사! extensions.gnome.org/extension/307/dash-to-dock
Jeff Ward

8

(다른) 작업 공간에서 응용 프로그램을 추적 할 수 없게 만드는 방법

사용 xdotool의를 windowunmap, 완전히 창을 숨길 수있다. 창이나 그 응용 프로그램은 더 이상 실행기 아이콘에서 발생하며의 출력에 더 이상 나열되지 않습니다 wmctrl.

이론적으로 이것은 에 사용 된 "작업 공간 엔진"에 연결 대답. 그것은 가장 우아한 해결책이었을 것입니다.

그러나 과정 다른 작업 공간에 창을 숨기고 자동에 사람 높이기 위해 현재 작업 공간이 너무 지속적으로 사용하는 것이 요구되는 배경 (지금은) 스크립트, 잘으로 "감기를 잡을"가능성이 없다. 오류가 발생하면 창을 잃어 버렸으므로 절차를 자동 (배경) 프로세스로 제공하지 않기로 결정했습니다.

그럼에도 불구하고이 답변이 유용한 지 여부는 상황과 다른 작업 공간에서 실행중인 응용 프로그램 아이콘을 숨기려는 이유에 따라 다릅니다. 결정은 당신의 것입니다.

해결책; 그것이 무엇이며 실제로 어떻게 작동하는지

  • 바로 가기 키로 사용할 수있는 스크립트로 모든 창을 는 현재 작업 공간 (및 응용 프로그램)의 완전히 사라지게합니다. 이는 Unity 런처의 애플리케이션 아이콘이 애플리케이션의 활동을 표시하지 않음을 의미합니다.

    실행중인 세 가지 응용 프로그램 : 여기에 이미지 설명을 입력하십시오바로 가기 키를 누른 후 :여기에 이미지 설명을 입력하십시오

  • schortcut 키 조합을 다시 누르면 창과 해당 응용 프로그램이 다시 나타납니다.

  • 키 조합은 현재 작업 공간 에서 창과 응용 프로그램 만 숨기므로 현재 작업 공간 에 숨겨져있는 표시없이 다른 작업 공간으로 전환 할 수 있습니다.
  • 또한 현재 작업 공간에서 숨김 해제 가 이루어 지므로 (숨김) 숨겨 지거나 숨기는 과정은 작업 공간마다 완전히 독립적 입니다. .

스크립트

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

사용하는 방법

  1. 스크립트는 모두 필요 wmctrl하고를 xdotool:

    sudo apt-get install wmctrl xdotool
    
  2. 스크립트를 빈 파일로 복사하여 다른 이름으로 저장하십시오. toggle_visibility.py
  3. 스크립트를 테스트 실행하십시오 : 터미널 창에서 다음 명령을 실행하십시오 :

    python3 /path/to/toggle_visibility.py
    

    이제 새 터미널 창을 열고 (첫 번째 창이 지구 표면에서 사라졌기 때문에) 동일한 명령을 다시 실행하십시오. 모든 창이 다시 나타납니다.

    NB : 테스트하는 동안 "가치있는"창이 열려 있지 않은지 확인하십시오

  4. 모두 제대로 작동하면 바로 가기 키 조합에 명령을 추가하십시오. 시스템 설정> "키보드"> "바로 가기"> "사용자 정의 바로 가기"를 선택하십시오. "+"를 클릭하고 다음 명령을 추가하십시오.

    python3 /path/to/toggle_visibility.py
    

설명

언급했듯이 스크립트는 xdotoolwindowunmap창을 사용하여 창과 창에 속한 응용 프로그램을 (완전히) 숨 깁니다. 스크립트 :

  • 현재 작업 공간이 무엇인지 읽습니다.
  • 현재 작업 공간에 있는 창을 읽습니다. (전용).
  • 현재 작업 공간의 이름을 딴 창 목록을 파일에 씁니다.
  • 창문을 숨 깁니다

다음 실행에서 스크립트는 다음과 같습니다.

  • 파일 이 현재 작업 공간에 해당하는지 확인 존재
  • 그렇다면 창 목록을 읽고 창을 숨 깁니다.

따라서 현재 작업 공간에서 창과 응용 프로그램의 가시성을 토글합니다.


큰. 다른 작업 공간으로 이동할 때 스크립트를 자동으로 실행하는 방법을 찾을 수있는 경우에만 마술처럼 사라지고 다시 이동할 때 다시 나타납니다. 어쩌면 내가 바로 가기 키를 대체하는 파이썬 스크립트를 작성할 수 있습니다 ctrl+ shift+arrow key
목 예인 툰

1
17.10에서 이제 가능합니다. 다른 답변을 참조하십시오.
Martin Melka

6

불행히도 불가능합니다.

Unity는 항상 모든 응용 프로그램을 모든 곳에서 표시하며이를 변경할 방법이 없습니다. 버그 리포트가 있습니다-https: //bugs.launchpad.net/ayatana-design/+bug/683170 그러나 개발자는 아무것도하지 않을 것 같습니다. 페이지 상단에이 버그가 영향을 미쳤다고 표시하면 개발자가 해당 옵션의 중요성을 이해하는 데 도움이됩니다.


1
버그 보고서에 대해서는 언급하지 말고 페이지 상단에 영향을주는 것으로 표시하십시오.
Flimm

@Flimm이 기능이있는 데스크톱 관리자는 무엇입니까?
Cesar

2
화합은 훌륭해 보이지만 사용자 정의 기능의 부족은 정말 실망 스럽습니다.
Programster
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.