Làm cách nào tôi có thể nhanh chóng tắt nắp chờ trong Ubuntu Unity 16.04?


16

Cách nhanh nhất để nhanh chóng vô hiệu hóa tính năng chờ khi đóng nắp là gì? Tôi rất thích hành vi này nhưng đặc biệt là khi chơi nhạc, tôi muốn đóng nắp mà không cần chuyển máy sang chế độ chờ.

Tuy nhiên, tôi không muốn tắt tính năng này vĩnh viễn mà chỉ tắt tạm thời cho đến khi tôi nghe nhạc xong.

Có lẽ có một chỉ số tương tự như Caffeine ?

nhập mô tả hình ảnh ở đây


Các cài đặt của bạn có giống với ac và pin không?
Jacob Vlijm

Không có chỉ số nào như vậy. Có nhiều cách, nhưng chúng yêu cầu quyền truy cập root với sudonhư trong bài viết này. Askubfox.com/q/15520/295286 . Tôi sẽ xem những gì có thể được thực hiện mặc dù
Sergiy Kolodyazhnyy

Tôi có thể hỏi, loại phiên bản hệ thống bạn đang sử dụng? 16.04
Sergiy Kolodyazhnyy

Jacob và Serg thân mến, cảm ơn vì những bình luận và giải pháp đầu tiên! Kịch bản của Jacob hoạt động rất tốt. Nó sẽ là tuyệt vời nếu đây là một chỉ số nhỏ mặc dù. Tôi chỉ thích GUI trực quan. :-) Cài đặt tương tự cho ac và pin. Tôi đã chỉnh sửa câu hỏi của mình để làm rõ rằng tôi đang sử dụng Unity 16.04.
orschiro

Có thể / sẽ được thực hiện. GUI tuy nhiên sẽ lâu hơn một chút.
Jacob Vlijm

Câu trả lời:


19

Kịch bản bên dưới sẽ chuyển đổi hành động đóng giữa "không có gì" và "tạm dừng":

#!/usr/bin/env python3
import subprocess

key = ["org.gnome.settings-daemon.plugins.power",
       "lid-close-ac-action", "lid-close-battery-action"]

currstate = subprocess.check_output(["gsettings", "get",
    key[0], key[1]]).decode("utf-8").strip()

if currstate == "'suspend'":
    command = "'nothing'"
    subprocess.Popen(["notify-send", "Lid closes with no action"])
else:
    command = "'suspend'"
    subprocess.Popen(["notify-send", "Suspend will be activated when lid closes"])

for k in [key[1], key[2]]:
    subprocess.Popen(["gsettings", "set", key[0], k, command])

... Và thông báo trạng thái hiện được đặt là gì:

nhập mô tả hình ảnh ở đây

Cách sử dụng

Đơn giản:

  • Sao chép tập lệnh vào một tập tin trống, lưu nó dưới dạng toggle_lid.py
  • Thêm nó vào một 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_lid.py
    

Giải trình

Trạng thái hiện tại của cài đặt hành động đóng nắp có thể được truy xuất bằng (các) lệnh

gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action

(về sức mạnh), và

gsettings get org.gnome.settings-daemon.plugins.power lid-close-battery-action

(về pin)

Kịch bản đọc trạng thái hiện tại và đặt ngược lại ('đình chỉ' / 'không có gì') bằng lệnh:

gsettings get org.gnome.settings-daemon.plugins.power lid-close-ac-action '<action>'

Tùy chọn (bổ sung)

Tùy chọn / bổ sung, bạn có thể chạy chỉ báo dưới dạng máy dò để hiển thị trạng thái hiện tại của cài đặt nắp. Nó sẽ hiển thị:

nhập mô tả hình ảnh ở đây

... trong bảng điều khiển, nếu việc đình chỉ sẽ bị ngăn chặn khi đóng nắp, Nó sẽ hiển thị màu xám nếu không.

nhập mô tả hình ảnh ở đây

Kịch bản

#!/usr/bin/env python3
import subprocess
import os
import time
import signal
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AppIndicator3', '0.1')
from gi.repository import Gtk, AppIndicator3, GObject
from threading import Thread

key = ["org.gnome.settings-daemon.plugins.power",
       "lid-close-ac-action", "lid-close-battery-action"]

currpath = os.path.dirname(os.path.realpath(__file__))

def runs():
    # The test True/False
    return subprocess.check_output([
        "gsettings", "get", key[0], key[1]
        ]).decode("utf-8").strip() == "'suspend'"

class Indicator():
    def __init__(self):
        self.app = 'show_proc'
        iconpath = currpath+"/nocolor.png"
        self.indicator = AppIndicator3.Indicator.new(
            self.app, iconpath,
            AppIndicator3.IndicatorCategory.OTHER)
        self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)       
        self.indicator.set_menu(self.create_menu())
        self.update = Thread(target=self.check_runs)
        # daemonize the thread to make the indicator stopable
        self.update.setDaemon(True)
        self.update.start()     

    def check_runs(self):
        # the function (thread), checking for the process to run
        runs1 = None
        while True:
            time.sleep(1)
            runs2 = runs()
            # if there is a change in state, update the icon
            if runs1 != runs2:
                if runs2:
                    # set the icon to show
                    GObject.idle_add(
                        self.indicator.set_icon,
                        currpath+"/nocolor.png",
                        priority=GObject.PRIORITY_DEFAULT
                        )
                else:
                    # set the icon to hide
                    GObject.idle_add(
                        self.indicator.set_icon,
                        currpath+"/green.png",
                        priority=GObject.PRIORITY_DEFAULT
                        )
            runs1 = runs2

    def create_menu(self):
        menu = Gtk.Menu()
        # quit
        item_quit = Gtk.MenuItem('Quit')
        item_quit.connect('activate', self.stop)
        menu.append(item_quit)
        menu.show_all()
        return menu

    def stop(self, source):
        Gtk.main_quit()

Indicator()
GObject.threads_init()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()

Cách sử dụng

  1. Sao chép tập lệnh ở trên vào một tệp trống, lưu nó dưới dạng show_state.py
  2. Sao chép cả hai biểu tượng bên dưới (nhấp chuột phải -> lưu dưới dạng) và lưu chúng trong một và cùng thư mục với show_proc.pytên chính xác như được chỉ ra bên dưới

    green.png

    nhập mô tả hình ảnh ở đây

    nocolor.png

    nhập mô tả hình ảnh ở đây

  3. Bây giờ kiểm tra- chạy show_state.pybằng lệnh:

    python3 /path/to/show_state.py
    

    và thay đổi trạng thái hiện tại bằng cách nhấn phím tắt bạn đặt phần đầu tiên của câu trả lời này.

  4. Nếu tất cả đều hoạt động tốt, hãy thêm các mục sau vào các ứng dụng khởi động:

    /bin/bash -c "sleep 15 && python3 /path/to/show_state.py"
    

Ghi chú

Chỉ báo phát hiện ở trên là phiên bản chỉnh sửa của câu trả lời này . Đơn giản bằng cách thay đổi kiểm tra trong chức năng runs()(và tùy chọn các biểu tượng bảng điều khiển), bạn có thể sử dụng nó để hiển thị trạng thái của bất kỳ thứ gì đang Truehoặc False.


Giải pháp tuyệt vời với các chỉ số! Một câu hỏi: Tại sao bạn quyết định cho một biểu tượng trong suốt ?
orschiro

@orschiro Tôi xem xét (ed) ste nơi đóng nắp sẽ tạm dừng là tình huống mặc định . Màu xanh lá cây như một dấu hiệu bạn có thể đóng nắp mà không cần (các) hành động. Nó coul là bất kỳ biểu tượng nào tuy nhiên. Gợi ý?
Jacob Vlijm

Có lẽ giống như màu xanh lá cây nhưng trong màu xám nhạt dần? Thật khó chịu khi thấy một khoảng trống trong thanh chỉ báo do độ trong suốt của biểu tượng.
orschiro

@orschiro haha, bây giờ tôi hiểu ý của bạn :). chỉnh sửa.
Jacob Vlijm

5

Một tùy chọn khác sẽ được thay đổi từ "Tạm dừng" thành "Không làm gì" trong Cài đặt Ubuntu - Nguồn:

Cài đặt Ubuntu - Nguồn

PS: Điều này không cung cấp chỉ báo trong khu vực thông báo nhưng đơn giản hơn so với việc tạo tập lệnh cho người dùng mới.

PPS: Trong ảnh chụp màn hình này, UPS dành cho Modem cáp + Sony Android TV, không phải máy tính xách tay có pin ... HAHA.


Ồ, được rồi Cách thủ công, mất một vài cú nhấp chuột ở đây và ở đó. Nhưng khá tốt.
Sergiy Kolodyazhnyy

@Serg Tôi thực sự thích kịch bản được đăng bởi Jacob. Một ngày nào đó tôi có thể chơi với nó sau khi tôi làm cho Ubuntu 16.04 / Kernel 4.7.2 ổn định hơn trên hệ thống của tôi. Thật vậy, việc treo nắp của tôi thậm chí không bao giờ hoạt động trong hộp nâng cấp 14.04 đến 16.04 ... phải thiết lập một tham số trong systemd, giả sử khi đóng nắp bạn muốn TV hoạt động và chỉ muốn làm mờ màn hình máy tính xách tay. Trước mắt tôi cũng nên đăng hướng dẫn cho điều đó!
WinEunuuchs2Unix

Vâng, trước ngày 16.04, những lựa chọn đó không thực sự hiệu quả với tôi. Cá nhân tôi muốn đăng bài chỉnh sửa tập tin dưới dạng câu trả lời, nhưng Jacob đã đánh bại tôi với nó :)
Sergiy Kolodyazhnyy
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.