Tập lệnh đính kèm Ubuntu / Unity vào Trình khởi chạy


12

Gần đây tôi đã tải xuống IntelliJ IDEA và khởi động ứng dụng bằng cách chạy . idea.sh. Ứng dụng xuất hiện trong trình khởi chạy trong khi tôi đang chạy nó, nhưng vì một số lý do khi tôi nhấp chuột phải vào ứng dụng, tôi không có tùy chọn 'Khóa để khởi chạy' như tôi làm với các ứng dụng khác.

Làm cách nào để gắn nó vào launcher?

Có phải vì tôi đang chạy một kịch bản và không phải là tệp thực thi trực tiếp mà vô hiệu hóa tùy chọn đó?

Câu trả lời:


16

Có vẻ như có 2 cách bạn có thể làm điều này.

Phương pháp # 1: tạo thủ công tệp .desktop

Có, bạn cần phải tạo một launcher .desktop tùy chỉnh cho nó. Dưới đây là các bước chung:

  1. Tạo tệp * .desktop trong /usr/local/share/applications(hoặc /usr/share/applicationstùy thuộc vào hệ thống của bạn).

    $ gksudo gedit <insert-path-to-new-file.desktop>
    
  2. Dán bên dưới văn bản

    [Desktop Entry]
    Type=Application
    Terminal=false
    Name=IntelliJ IDEA
    Icon=/path/to/icon/icon.svg
    Exec=/path/to/file/idea.sh
    

    Chỉnh sửa Icon=Exec=Name=. Cũng Terminal=True/falsexác định thời tiết thiết bị đầu cuối mở một cửa sổ và hiển thị đầu ra hoặc chạy trong nền.

  3. Đặt tệp .desktop vào bảng điều khiển Unity Launcher. Đối với bước này, bạn sẽ cần điều hướng trong trình duyệt tệp đến nơi tệp .desktop mà bạn đã tạo ở các bước trước. Sau khi định vị tệp, kéo tệp vào thanh Unity Launcher ở bên cạnh. Sau khi thực hiện việc này, bạn có thể cần chạy lệnh sau để hệ thống của bạn nhận ra tệp .desktop mới được thêm vào.

    $ sudo update-desktop-database
    

Phương pháp # 2: Phương pháp GUI

Thay vì tự tạo tệp .desktop, bạn có thể triệu tập GUI để hỗ trợ thực hiện việc này.

  1. cài đặt bảng điều khiển gnome

    $ sudo apt-get install --no-install-recommends gnome-panel
    
  2. khởi chạy trình tạo GUI .desktop

    $ gnome-desktop-item-edit ~/Desktop/ --create-new
    

                      ss biên tập

Người giới thiệu


sudo update-desktop-databasnên làsudo update-desktop-database
Trindaz

Ngoài ra, dòng cuối cùng của Phương thức # 1 ( $ sudo ...) không nên có. Sau một số phỏng đoán, tôi phát hiện ra rằng "Đặt cái này vào bảng thống nhất" = Mở trình duyệt tệp và tìm tệp được tạo ở bước 1, sau đó kéo tệp vào "Trình khởi chạy". "Bảng điều khiển" dường như là một thuật ngữ mơ hồ trong Unity tùy thuộc vào người bạn nói chuyện.
Trindaz

@Trindaz - vâng xin lỗi vì thiếu thông tin chi tiết Tôi không chắc chắn chính xác làm thế nào để thực hiện bước đó trong khi xem một hướng dẫn khác mà bước tương tự chỉ là mơ hồ. Tôi sẽ thêm các chi tiết như bạn mô tả trong bước đó. LMK nếu họ nhìn OK.
slm

Điều này làm việc cho tôi vào ngày 18.04 nhưng đã thử vào ngày 19.04 và tệp cấu hình mở dưới dạng tệp văn bản! Thật là một nỗi đau.
Đệ tứ

Trích dẫn @MDMower từ nhận xét của họ ( unix.stackexchange.com/questions/170823/ mẹo ): Ngoài ra, nếu ứng dụng này chỉ được cài đặt cho người dùng hiện tại, sẽ phù hợp hơn khi đưa .desktoptệp vào~/.local/share/applications
John Freeman

1

Trường hợp sau đây có thể sử dụng được trong trường hợp của tôi, khởi chạy tập lệnh shell từ trình khởi chạy và giữ cho cửa sổ shell mở .

phương pháp

  • Ví dụ này là với mate-terminal, sử dụng gnome-terminalnếu nó là một trong hệ thống của bạn.
  • Ví dụ này là với một kịch bản shell php cli , để có được ý tưởng, bất kỳ lệnh nào cũng có thể được chuyển qua đây.
  • Một tham số được truyền cho tập lệnh, -htrong trường hợp này.
  • Thêm ; bashgiữ cho cửa sổ shell mở sau khi kết thúc tập lệnh, ví dụ:

    mate-terminal --execute bash -c "php /home/lilith/Desktop/moon/MOON/moon -h ; bash"
    

Các biến thể bổ sung

Để giữ cho cửa sổ mở, với đường dẫn được đặt trên thư mục của tập lệnh, hãy sử dụng cdlệnh trước lệnh. Ví dụ:

mate-terminal --execute bash -c "cd /home/lilith/Desktop/moon/MOON/ && php moon -h ; bash" 

Điều này cho phép khởi chạy một số lệnh bổ sung mà không phải ở lại trong thư mục làm việc hiện tại.

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.