Làm cách nào để đặt một ứng dụng trên màn hình thứ hai với awesome-wm?


8

Gần đây tôi có một màn hình thứ hai tại nơi làm việc và muốn cấu hình tất cả với trình quản lý cửa sổ của mình: awesome. Tôi gặp phải một vấn đề khi đặt một số ứng dụng trên thẻ trên màn hình. Ví dụ: tôi có một quy tắc cho urxvt để đặt nó vào thẻ một trên màn hình đầu tiên:

              { rule = { class = "URxvt" },
                                     properties = { tag = tags[1][1] }
              }

Nó hoạt động tốt miễn là con trỏ chuột của tôi ở trên màn hình đầu tiên. Nếu tôi di chuyển con trỏ lên màn hình thứ hai và bắt đầu một thể hiện của urxvt, nó sẽ được đặt vào thẻ thực tế trên màn hình thứ hai. Tương tự, nếu tôi định cấu hình ứng dụng cho thẻ trên màn hình thứ hai, khi ứng dụng không hoạt động nếu con trỏ chuột của tôi ở màn hình đầu tiên.

Làm thế nào tôi có thể sửa lỗi này?

Câu trả lời:


7

Có một cách thực sự đơn giản để làm điều này bằng cách sử dụng awfulgói mở rộng. Một số bản phân phối gói này tự động, một số khác có gói phụ. Khi bạn đã có nó, bạn chỉ cần sử dụng tích hợp sẵn awful.client.movetoscreen. Ví dụ tôi có một ràng buộc trông như thế này:

awful.key({modkey}, "o", awful.client.movetoscreen)

Điều này có nghĩa là với một lần nhấn phím, tôi có thể gửi một cửa sổ đến thẻ hiện đang hoạt động trên bất kỳ màn hình nào mà nó hiện không bật. Nếu bạn chỉ có hai màn hình, nó sẽ chuyển đổi chúng hoặc nếu bạn có nhiều màn hình hơn thì nó sẽ quay vòng qua chúng.


4

Điều này phụ thuộc vào phiên bản tuyệt vời mà bạn đang sử dụng:

tuyệt vời 1.x

Đặt screenbiến trong quy tắc:

{ rule =
    { class = "URxvt" },
    properties = { tag = tags[1][1] },
    screen = 1
}

tuyệt vời 2.x

Đặt thuộc screentính trên máy khách trong hook_managehàm:

if c.class == "URxvt" then
    awful.client.movetotag(tags[1][1], c)
    c.screen = 1
end

Nó xuất hiện từ mẫu mã của bạn mà bạn đang sử dụng tuyệt vời 1.x; như một sidenote, 1.x hiện đã thực sự cũ, vì vậy bạn có thể muốn xem xét nâng cấp lên 2.x, sử dụng Lua thay vì định dạng cấu hình tùy chỉnh


Tôi sử dụng 3.4.5 tuyệt vời, đoạn trích đó là từ tệp RC.lua cấu hình Lua. Tệp cấu hình tôi đã tạo là một bản sao từ tệp chuẩn, được Ubuntu cài đặt trong /etc/xdg/awclaw/rc.lua. Các quy tắc ví dụ được định nghĩa ở đó theo cách được đưa ra ở đây. Nhưng tôi cho rằng bạn có thể định nghĩa nó theo những cách thực sự khác nhau, vì Lua là một ngôn ngữ lập trình đầy đủ. Tôi sẽ thử tùy chọn ngày mai trở lại tại nơi làm việc.
Mnementh

@Mne Oh, đó là từ tệp tiêu chuẩn; nó xảy ra rất giống với định dạng cấu hình cũ. Khi tôi sử dụng tuyệt vời, cuối cùng tôi đã bỏ cấu hình tiêu chuẩn và chỉ viết lại nó. Nếu điều này không hiệu quả hãy cho tôi biết để tôi có thể xóa câu trả lời; Tôi không chắc liệu điều đó có xảy ra không
Michael Mrozek

Vâng, tôi sẽ xem xét nó vào ngày mai. Ở nhà tôi chỉ có một màn hình, vì vậy tôi chưa thể kiểm tra nó.
Mnementh

Đã thử, nhưng nó không hoạt động. :-(
Mnementh

@mne Lame. Thật không may, tôi không cài đặt tuyệt vời nữa, vì vậy tôi không thể thực sự gây rối với nó. Chúc may mắn mặc dù; Tôi sẽ chọc vào tài liệu sau hôm nay để xem liệu tôi có thể tìm thấy gì không
Michael Mrozek

0

Không chính xác một câu trả lời, nhưng theo dõi.

Đây hẳn là một lỗi trong tuyệt vời. Với awesome-3.4.10nó hoạt động như thế nào bạn muốn nó. Bây giờ, để mở ứng dụng trên thẻ được xác định trước trên màn hình hiện tại , hãy sử dụng một cái gì đó như thế này:

{ rule = { instance = "urxb" },
  callback = function(c)
          c.screen = mouse.screen
          c:tags({tags[c.screen][3]})
  end }
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.