Cài đặt để chỉ hiển thị các ứng dụng của không gian làm việc hiện tại trong launcher?


30

Có thể có các ứng dụng đã mở của không gian làm việc hiện tại trong trình khởi chạy nhưng không có các ứng dụng từ các không gian làm việc khác không?


Tôi nghĩ rằng ctrl + (1,2,3,4) được sử dụng để chuyển đổi không gian làm việc. Nhưng hãy kiểm tra các phím tắt trong cài đặt hệ thống ...
Alvar

Giữ phím SUPER (phím Windows) để hiển thị tổng quan về tất cả các phím tắt Unity có sẵn. Ngoài ra kiểm tra Q & A này .
Glutimate

Tôi đã chỉnh sửa câu hỏi thứ hai của bạn liên quan đến các phím tắt trong bài viết của bạn vì đó là một bản sao và đã được trả lời trước đó. Tôi thấy rằng đây là câu hỏi đầu tiên của bạn (Chào mừng bạn đến với Askubfox!): Chúng tôi sẽ giúp bạn dễ dàng hơn nếu bạn chỉ hỏi một câu hỏi cho mỗi bài đăng. Hãy ghi nhớ điều này trong tương lai khi sử dụng AU.
Glutimate

Câu hỏi tương tự như ở đây . Tuy nhiên, điều đó thiếu một câu trả lời.
RPiAwessomeness

Có lẽ không phải là câu trả lời mà bạn đang tìm kiếm nhưng sự thống nhất thiếu khả năng tùy biến. Nếu bạn có nhu cầu đặc biệt hoặc muốn kiểm soát nhiều hơn đối với máy tính để bàn của mình, bạn nên xem xét chuyển sang môi trường máy tính để bàn linh hoạt hơn, như KDE.
Conliclicultor

Câu trả lời:


30

Đối với Ubuntu Dock được phân phối với Ubuntu 17.10 trở lên (với Gnome)

Vâng, các câu trả lời khác khá cũ, vì vậy tôi nghĩ rằng nó là giá trị để thêm câu trả lời cập nhật. Có thể làm như vậy ngay bây giờ và không quá khó tbh (Với Ubuntu 17.10 và nó có Gnome).

Chỉ cần sử dụng trình soạn thảo dconf :

sudo apt install dconf-editor

Điều hướng đến org> gnome> shell> extend> dash-to-dock và kiểm tra không gian làm việc cô lập nhập mô tả hình ảnh ở đây


1
câu hỏi hoàn toàn không có gì để làm với Tiện ích mở rộng Dash To Dock Gnome. câu hỏi là về Unity Launcher, mà Dash To Dock thậm chí không tương thích với Unity.
xiêu vẹo

2
@crookingleaf Ubuntu đã chuyển sang Gnome với dấu gạch ngang được gắn lại theo mặc định với 17.10.
Seth

1
@Seth Nhưng OP đang sử dụng Unity chứ không phải Gnome. Vì vậy, OP chỉ vô tình sử dụng thẻ "Unity" hoặc họ đang sử dụng phiên bản Ubuntu với Unity.
xiêu vẹo

3
@crookingleaf Hoặc chúng tôi chỉ cần cập nhật câu hỏi để họ có câu trả lời mới nhất :)
Seth

1
Hoạt động tuyệt vời trong 18.04 / w gnome. Cảm ơn! Lưu ý rằng tiện ích mở rộng cũng có thể dễ dàng cài đặt từ trang web: extend.gnome.org/extension/307/dash-to-dock
Jeff Ward

8

Cách làm cho các ứng dụng không thể truy cập được trên các không gian làm việc (khác)

Sử dụng xdotool's windowunmap, nó có thể ẩn một cửa sổ hoàn toàn. Cửa sổ, cũng như ứng dụng của nó, không còn xuất hiện trong biểu tượng trình khởi chạy và thậm chí không được liệt kê nữa trong đầu ra của wmctrl.

Về mặt lý thuyết, điều này có thể được kết nối với "không gian làm việc động cơ", được sử dụng trong nàynày câu trả lời. Đó sẽ là giải pháp thanh lịch nhất.

Tuy nhiên, quá trình chỉ ẩn các cửa sổ trên các không gian làm việc khác và để tự động nâng các cửa sổ trên không gian làm việc hiện tại là quá khắt khe để sử dụng trong một kịch bản nền đang diễn ra (hiện tại) và không có khả năng "bị cảm lạnh". Vì các cửa sổ bị mất trong trường hợp có lỗi, do đó tôi quyết định không cung cấp quy trình dưới dạng quy trình tự động (nền-).

Nếu câu trả lời này vẫn hữu ích cho bạn hay không phụ thuộc vào tình huống và lý do tại sao bạn muốn ẩn biểu tượng của các ứng dụng, chạy trên các không gian làm việc khác; quyết định là của bạn

Giải pháp; nó là gì và nó hoạt động như thế nào trong thực tế

  • Một tập lệnh, có sẵn dưới một phím tắt, dường như làm cho tất cả các cửa sổ trên không gian làm việc hiện tại (và do đó các ứng dụng) biến mất hoàn toàn. Điều đó có nghĩa là biểu tượng của ứng dụng trong trình khởi chạy Unity cho thấy không có hoạt động nào của ứng dụng:

    Ba ứng dụng đang chạy: nhập mô tả hình ảnh ở đâySau khi nhấn phím tắt:nhập mô tả hình ảnh ở đây

  • Nhấn tổ hợp phím schortcut lần nữa, các cửa sổ và ứng dụng của chúng sẽ xuất hiện lại.

  • Vì tổ hợp phím sẽ chỉ ẩn các cửa sổ và ứng dụng khỏi không gian làm việc hiện tại , sau đó bạn có thể chuyển sang không gian làm việc khác mà không có dấu hiệu gì (ẩn) trên không gian làm việc hiện tại.
  • Ngoài ra, việc bỏ ẩn được thực hiện (chỉ) trên không gian làm việc hiện tại, do đó, trong ngắn hạn, quá trình ẩn và bỏ ẩn được thực hiện hoàn toàn độc lập trên mỗi không gian làm việc .

Kịch bản

#!/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ách sử dụng

  1. Kịch bản cần cả hai wmctrlxdotool:

    sudo apt-get install wmctrl xdotool
    
  2. Sao chép tập lệnh vào một tập tin trống, lưu nó dưới dạng toggle_visibility.py
  3. Kiểm tra- chạy tập lệnh: trong cửa sổ terminal, chạy lệnh:

    python3 /path/to/toggle_visibility.py
    

    Bây giờ hãy mở một cửa sổ terminal mới (vì cái đầu tiên dường như biến mất khỏi bề mặt trái đất) và chạy lại lệnh tương tự. Tất cả các cửa sổ sẽ xuất hiện lại.

    NB : đảm bảo bạn không mở các cửa sổ "có giá trị" trong khi thử nghiệm

  4. Nếu tất cả đều hoạt động tốt, hãy thêm lệnh vào tổ hợp phím tắt: chọn: Cài đặt hệ thống> "Bàn phím"> "Phím tắt"> "Phím tắt tùy chỉnh". Nhấp vào "+" và thêm lệnh:

    python3 /path/to/toggle_visibility.py
    

Giải trình

Như đã nói, việc sử dụng kịch bản xdotool's windowunmap, để (hoàn toàn) ẩn các cửa sổ và các ứng dụng mà họ thuộc về. Kịch bản:

  • đọc không gian làm việc hiện tại là gì
  • đọc các cửa sổ tồn tại trên không gian làm việc hiện tại (chỉ)
  • ghi danh sách cửa sổ vào một tệp, được đặt tên theo không gian làm việc hiện tại
  • giấu các cửa sổ

Trong lần chạy tiếp theo, tập lệnh:

  • kiểm tra nếu tệp, tương ứng với không gian làm việc hiện tại tồn tại
  • nếu vậy, hãy đọc danh sách cửa sổ và bỏ các cửa sổ.

do đó, làm giảm khả năng hiển thị của các cửa sổ và ứng dụng trên không gian làm việc hiện tại.


Tuyệt quá. Bây giờ chỉ khi tôi có thể tìm cách tự động thực thi tập lệnh khi tôi chuyển sang không gian làm việc khác để chúng biến mất một cách kỳ diệu và sau đó xuất hiện lại khi tôi di chuyển trở lại. Có lẽ tôi có thể viết một kịch bản python để thay thế phím tắt cho ctrl+ shift+arrow key
Thu Yein Tun

1
Vào ngày 17.10, điều này là có thể. Xem câu trả lời khác.
Martin Melka

6

Thật không may, điều đó là không thể.

Unity luôn hiển thị tất cả các ứng dụng từ khắp mọi nơi và không có cách nào để thay đổi điều này. Có một báo cáo lỗi - https://bugs.launchpad.net/ayatana-design/+orms/683170 Nhưng dường như các nhà phát triển sẽ không làm gì cả. Có lẽ nếu bạn đánh dấu ở đầu trang rằng lỗi này ảnh hưởng đến bạn, nó sẽ giúp các nhà phát triển hiểu tầm quan trọng của tùy chọn đó.


1
Không bình luận về báo cáo lỗi, chỉ đánh dấu nó là ảnh hưởng đến bạn ở đầu trang.
Flimm

@Flimm bạn có biết người quản lý máy tính để bàn nào có chức năng này không?
Cesar

2
sự thống nhất có vẻ tuyệt vời nhưng sự thiếu tùy biến thực sự gây bực bội.
Chương trình
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.