Cách tạo phím tắt trên menu và thanh tác vụ cho các ứng dụng Linux

Cách tạo phím tắt trên menu và thanh tác vụ cho các ứng dụng Linux

Chia sẻ kiến thức 14/08/2022

Đối với các ứng dụng Linux không có phím tắt trên màn hình chính theo mặc định, bạn có thể tạo phím tắt cho chúng trên thanh tác vụ và menu theo cách thủ công để đạt được kết quả tương tự.

Đôi khi các ứng dụng Linux không có sẵn ở kho phần mềm và kho phân phối của bạn hoặc dưới dạng các gói DEB hoặc RPM có thể tải xuống. Nhiều khi các ứng dụng chỉ có sẵn dưới dạng AppImages hoặc tarballs kiểu cũ. Các tệp thực thi độc lập này không thực sự cài đặt mà chỉ chạy.

Vấn đề ở đây là nếu không cài đặt, bạn sẽ không có phím tắt dẫn đến ứng dụng trên menu hoặc thanh tác vụ. Mặc dù có các công cụ giúp tạo các phím tắt này dễ dàng, nhưng bạn cũng nên biết cách tự tạo phím tắt theo cách thủ công.

May mắn là hầu hết các môi trường desktop Linux chính đều dựa trên một tập hợp thông số kỹ thuật chung do Freedesktop.org cung cấp. Vì vậy, quá trình tạo phím tắt ứng dụng hoạt động giống nhau trên các bản phân phối Linux khác nhau.

Bước 1: Hiển thị các tệp và thư mục ẩn

Các mục menu tùy chỉnh được tạo từ các tệp trên desktop nằm trong một thư mục ẩn trong thư mục chính của bạn:

/home/username/.local/share/applications

Điều đầu tiên bạn cần làm là định cấu hình trình quản lý tệp để xem các tệp và thư mục ẩn. Mở trình quản lý tệp, nhấp vào biểu tượng menu (ba thanh ngang) và chọn hộp bên cạnh Hiển thị tệp ẩn (Show Hidden Files).

Các tệp và thư mục mới bắt đầu bằng dấu chấm, bao gồm cả .local, giờ sẽ xuất hiện trong thư mục chính của bạn (thêm dấu chấm  vào đầu tên tệp hoặc thư mục là cách bạn ẩn tệp và thư mục trên Linux).

Đi tới thư mục .local > chia sẻ > ứng dụng (.local > share > applications). Nếu đây là bản cài đặt Linux hoàn toàn mới, bạn có thể phải tự tạo thư mục ứng dụng (applications). Đây là nơi bạn sẽ lưu các tệp trên desktop của mình.

Bước 2: Tìm WMClass của ứng dụng

Điều tiếp theo là xác định WMClass hoặc ID cửa sổ của ứng dụng của bạn. Điều này cho phép tạo một biểu tượng trên thanh tác vụ kết hợp cả trình khởi chạy ứng dụng và các cửa sổ đang mở vào một biểu tượng duy nhất. Nếu bạn bỏ qua bước này, bạn sẽ chỉ tạo phím tắt để khởi chạy ứng dụng.

Để xác định WMClass của ứng dụng, hãy khởi động AppImage của bạn hoặc tarball theo cách cũ bằng cách khởi chạy tệp thực thi trực tiếp.

Tìm WMClass trên X11

Nếu bạn đang sử dụng X11, hãy mở một terminal và nhập:

xprop WM_CLASS

Con trỏ chuột của bạn sẽ biến thành hình chữ thập.

Nhấp vào bất kỳ đâu trong cửa sổ ứng dụng và terminal của bạn sẽ hiển thị đầu ra ở định dạng sau:

WM_CLASS(STRING) = appname, AppName

Giá trị thứ hai trong trích dẫn là WMClass của ứng dụng; hãy ghi nhớ nó cho bước tiếp theo.

Tìm WMClass trên Wayland

Nếu bạn đang sử dụng bản phân phối mới hơn, bạn có thể không sử dụng máy chủ hiển thị X11 truyền thống mà là Wayland mới hơn. Thật không may là thủ thuật này chỉ hoạt động với GNOME vì nó dựa trên công cụ Looking Glass của GNOME Shell.

  1. Nhấn Alt + F2, nhập lg và nhấn Enter.
  2. Nhấp vào tab Windows.

Tất cả các cửa sổ đang mở của bạn bây giờ sẽ được liệt kê cùng với wmclass tương ứng của chúng. Hãy nhớ ghi lại wmclass của ứng dụng cho bước tiếp theo.

Bước 3: Tạo tệp trên màn hình

Bây giờ là lúc để tạo một tệp desktop. Mở trình soạn thảo văn bản và paste phần sau vào một tệp mới:

[Desktop Entry]
Type=Application
Name=ApplicationName
GenericName=ApplicationType
Icon=/home/Username/.local/share/applications/ApplicationIcon.extension
Exec=/home/Username/ApplicationDirectory/ApplicationExecutable.extension
Terminal=false
Categories=ApplicationSubCategory;ApplicationCategory
Keywords=Keyword1;Keyword2;Keyword3
StartupWMClass=ApplicationWMClass

Hãy xem xét từng dòng một:

  1. [Desktop Entry] xác định tệp là một biểu tượng menu trên màn hình và phải luôn được giữ nguyên.
  2. Type xác định rằng lối tắt đến một Application. Các tùy chọn khác bao gồm Directory (Thư mục) và Link (Liên kết).
  3. Name xác định tên ứng dụng của bạn. Thay đổi ApplicationName bằng tên ứng dụng của bạn.” 
  4. GenericName xác định loại ứng dụng. Thay đổi ApplicationType thành một mô tả chung chung như “Text Editor” (Trình soạn thảo văn bản) hoặc “Web Browser” (Trình duyệt web).
  5. Icon xác định biểu tượng được liên kết với ứng dụng của bạn. Bạn có thể chọn bất kỳ tệp hình ảnh nào, nhưng PNG và SVG thường là hoạt động tốt nhất. Thay đổi /home/Username/.local/share/application/ApplicationIcon.extension để phản ánh vị trí của biểu tượng ứng dụng.
  6. Exec xác định tệp thực thi của ứng dụng. Thay đổi /home/Username/ApplicationDirectory/ApplicationExecutable.extension để phản ánh vị trí và tên của tệp thực thi ứng dụng của bạn.
  7. Terminal xác định ứng dụng của bạn có đang chạy trong cửa sổ đầu cuối hay không. Các tùy chọn ở đây là true đối với terminal và false đối với các ứng dụng đồ họa.
  8. Categories xác định danh mục và/hoặc danh mục phụ mà ứng dụng của bạn thuộc về. Thay thế ApplicationSubCategory và ApplicationCategory bằng các danh mục và/hoặc danh mục phụ thích hợp cho ứng dụng của bạn— bạn có thể tìm thấy danh sách đầy đủ các tùy chọn tại freesktop.org. Mặc dù bạn có thể bao gồm nhiều lựa chọn cho mỗi mục, nhưng làm như vậy có thể khiến ứng dụng của bạn xuất hiện nhiều lần trong menu. 
  9. Keywords xác định các từ để giúp tìm kiếm ứng dụng. Thay đổi Keyword1, Keyword2 và Keyword3 thành bất kỳ từ khoá nào bạn muốn kết hợp với ứng dụng của mình, được phân tách bằng dấu chấm phẩy (;).
  10. StartupWMClass xác định các cửa sổ ứng dụng của bạn. Thay thế ApplicationWMClass bằng WMClass của ứng dụng từ phần trước.

Đây là một ví dụ sử dụng Bitwarden AppImage làm biểu tượng và thư mục Tải xuống làm thư mục thực thi.

[Desktop Entry]
Type=Application
Name=Bitwarden
GenericName=Password Manager
Icon=/home/adam/Downloads/Bitwarden.png
Exec=/home/adam/Downloads/Bitwarden-22.6.2-x86_64.AppImage
Terminal=false
Categories=Security;System
Keywords=Bitwarden;Crypto;Passwords;Security
StartupWMClass=bitwarden

Thực hiện các thay đổi của bạn và lưu tệp văn bản dưới dạng ApplicationName.desktop trong /home/username/.local/share/application/.

Ứng dụng của bạn bây giờ sẽ xuất hiện trong menu:

Giờ đây, bạn có thể ghim AppImages và tarball của mình vào thanh tác vụ hoặc thanh công cụ của mình và chúng thường hoạt động giống như các ứng dụng được cài đặt thông thường.

Sử dụng dấu ngoặc kép để đối phó với dấu cách

Nếu một thư mục, biểu tượng hoặc tệp thực thi chứa một khoảng trống, tệp desktop của bạn không thể hoạt động:

Exec=/home/Username/Application Directory/Application Executable.extension

Bạn sẽ cần bao gồm dấu ngoặc kép ở đầu và cuối các trường Icon và Exec. Ví dụ:

Exec=/home/Username/Application Directory/Application Executable.extension

Bây giờ biểu tượng ứng dụng của bạn trên menu sẽ hoạt động bình thường.

Sử dụng dấu hoa thị để xử lý số phiên bản

Nếu tệp thực thi của ứng dụng của bạn chứa số phiên bản, bạn sẽ cần cập nhật tệp desktop mỗi khi ứng dụng cập nhật:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v2.2.extension

Tuy nhiên, người dùng KDE có thể sử dụng dấu hoa thị (*) làm ký tự đại diện để thay thế văn bản thay đổi, chẳng hạn như số phiên bản, như sau:

Exec=/home/Username/ApplicationDirectory/ApplicationExecutable-v*.extension

Không may là GNOME không tôn trọng các ký tự đại diện trong các tệp desktop nhưng bạn luôn có thể đổi tên tệp thực thi và xóa số phiên bản.

Tạo phím tắt ứng dụng trên Linux

Bây giờ khi bạn tải xuống AppImage hoặc tarball, bạn sẽ có thể tích hợp nó vào thanh tác vụ và menu của mình như thể nó là bất kỳ ứng dụng đã cài đặt nào khác.

Đồng thời, bạn cũng đã học cách hiển thị các tệp và thư mục ẩn trong trình quản lý tệp của mình (và ẩn chúng), tạo tệp desktop và một số phương pháp để xác định WMClass của ứng dụng.

Thông thường, bạn sẽ nhận được mục menu được tạo theo mặc định, nếu bạn lấy phần mềm của mình từ một nguồn đáng tin cậy.

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/create-taskbar-and-menu-entries-for-linux-apps/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!