การเพิ่มแอปพลิเคชั่นที่กำหนดเองในตัวเรียกใช้ GNOME


69

ค้นหาเครื่องมือที่ช่วยให้ฉันใส่รายการลงในรายการแอปพลิเคชันที่ GNOME รู้จัก

ตัวอย่างเช่น:
ฉันดาวน์โหลด Eclipse EE (ฉันมีปลั๊กอินพิเศษบางอย่างที่ฉันต้องการใช้งานและปลั๊กอินเหล่านั้นไม่ชอบเวอร์ชั่นที่มีอยู่ในที่เก็บเริ่มต้น) ฉันใช้ GNOME 3 บน Ubuntu 11.10 ดังนั้นฉันต้องการรัน Eclipse โดยไม่มีการเปิดเทอร์มินัลและเรียกใช้

มันจะต้องเป็นสิ่งที่ง่ายมาก


รูปภาพ png ใช้งานไม่ได้ลอง jpg

คำตอบ:


67

คุณสามารถใช้เมนูหลักสำหรับสิ่งนี้ ถ้าไม่ติดตั้งก่อน:

sudo apt-get install alacarte

1. เปิดเมนูหลัก

2. ดูตัวอย่าง

เมนูหลัก

หลังจากนั้นคุณสามารถเรียกแอปพลิเคชันของคุณด้วยชื่อ: "command_of_application"

แก้ไข: ฉันพลาดที่คุณขอแอปพลิเคชันในโฮมไดเร็กตอรี่ของคุณ ถ้าเป็นเช่นนั้นคำสั่งจะต้องเป็นเส้นทางแบบเต็มของแอปพลิเคชันนั้น


นั่นคือสิ่งที่ฉันกำลังมองหา
Shaftoe2702

ในภาษาเยอรมัน Ubuntu 17.10 ค้นหา "Menüberabeitung"
Christopher K.

ขอบคุณโชคดีที่แพคเกจนี้อยู่ที่นั่นด้วย
Sukumaar

60

กลการใช้งานคำพังเพยรู้เกี่ยวกับไฟล์เดสก์ทอปในและ/usr/share/applications ~/.local/share/applicationsคุณสามารถสร้างตัวเรียกใช้งานแบบกำหนดเองสำหรับสิ่งที่อยู่ในโฟลเดอร์ภายในบ้านของคุณได้โดยการสร้างและแก้ไขไฟล์ .desktop แบบกำหนดเองหรือด้วยการใช้ Alacarte โปรแกรมแก้ไขเมนู Gnome แบบเก่า

เอกสารประกอบเดสก์ท็อปของไฟล์ Gnome สามารถช่วยได้: https://developer.gnome.org/integration-guide/stable/desktop-files.html.en

ตัวเรียกใช้งานที่กำหนดเองเป็นเพียงไฟล์ข้อความชื่อเช่นEclipseEE.desktopโดยมีเนื้อหาต่อไปนี้:

[Desktop Entry]
Name=Eclipse EE
Exec=/home/mrPeterson/path_to_executable
StartupNotify=true
Terminal=false
Type=Application
Icon=/optional/path/to/icon.png

ลิงก์แรกเสีย
nispio

9

(โพสต์ใหม่จาก OP ดั้งเดิม)

นี่เป็นกลอุบายที่ชี้ไปที่อื่น:

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

ตอนนี้ฉันมีไอคอน นั่นเป็นคุณสมบัติที่ดีที่จะเชื่อมโยงกับเมนูบริบท แต่อนิจจาฉันไม่เห็น


โปรแกรมนี้ไม่ได้ติดตั้งโดยค่าเริ่มต้นสำหรับฉัน ต้องทำsudo apt-get install --no-install-recommends gnome-panel
yuikonnu

5

ฉันชอบgnome-desktop-item-editวิธีแก้ปัญหาง่ายๆของ Jorge อย่างไรก็ตามถ้าฉันวาง.desktopไฟล์ลงบน~/Desktop/มันจะไม่ปรากฏเป็นแอปพลิเคชั่น แต่เป็นไฟล์ในเมนู gnome เท่านั้น ดังนั้นฉัน:

sudo gnome-desktop-item-edit /usr/share/applications/ --create-new

howerver คุณต้องการสร้างเมนูสำหรับผู้ใช้คำพังเพยที่ทุกท่านควรจะเลือกสถานที่ไว้ในโฟลเดอร์และหลีกเลี่ยงที่จะใช้~/.local/share/applications sudo
RousseauAlexandre

1

ฉันรู้ว่ากระทู้นี้ค่อนข้างเก่า แต่ฉันต้องการแบ่งปันกับคุณพวกนี้ฟังก์ชั่นทุบตีฉันเพิ่งทำเพราะ ... เพราะฉันสามารถ หากคุณพบว่ามีประโยชน์อย่าลังเลที่จะใช้มัน!

คำเตือน:ฉันเพิ่งทำมัน มันอาจไม่สมบูรณ์แบบ

new-gnome-launcher-app(){
    # This functions adds some executable file to the gnome launcher.
    # It does the following:
    #   - Add symlink to /usr/bin
    #   - Add entry for gnome launcher

    # TODO: Check image file extension

    # Check if root
    # if [ "$(id -u)" != "0" ]; then 
    #   echo "Must run as root"
    #   return 1
    # fi

    # If parameter is entered, assume it's the executable's directory.
    # Else, ask for it
    if [ "$?" -gt "1" ]; then
        exec_path="$1"
    else
        echo -n "Enter executable file name: "
        read exec_path
    fi
    # Check if file exists
    if [ ! -f "$exec_path" ] || [ ! -f "$(pwd)/$exec_path" ]; then
        echo "File doesn't exist"
        unset exec_path
        return 1
    fi
    # Get absolute path to file
    if [ "${exec_path:0:1}" != "/" ]; then
        echo "'$exec_path' was not an absolute path"
        exec_path="$(pwd)/$exec_path"
        echo "Assuming path '$exec_path'"
    fi
    exec_basename="$(basename "$exec_path")"
    # Check if symlink already exists
    if [ -f "/usr/bin/$exec_basename" ]; then
        echo "File '/usr/bin/$exec_basename' already exists. We wont be able to create the symlink."
        unset exec_basename
        unset exec_path
        return 1
    fi
    # Add entry for gnome panel
    gnome_panel_entry_path="/usr/share/applications/$exec_basename.desktop"
    if [ -f "$gnome_panel_entry_path" ]; then
        echo "Entry '$(basename "$gnome_panel_entry_path")' already exists!"
        unset exec_basename
        unset gnome_panel_entry_path
        unset exec_path
        return 2
    fi
    # ask for display name
    while [ "$USER_RESPONSE" != "y" ] && [ "$USER_RESPONSE" != "Y" ]; do
        echo -n "Enter the program's name: "
        read APP_NAME
        while [ "$APP_NAME" == "" ]; do
            echo -n "Please enter something: "
            read APP_NAME
        done
        # ask for a description
        echo -n "Enter a short description: "
        read APP_DESCRIPTION
        # ask for an icon file
        echo -n "Enter absolute path to an icon image (empty for none): "
        read APP_ICON
        while [ "$APP_ICON" != "" ] && [ ! -f "$APP_ICON" ]; do
            echo -n "File doesn't exist. Retry: "
            read APP_ICON
        done 
        # ask if it needs a terminal
        echo -n "Will this program need a terminal? [y/n]: "
        read APP_TERMINAL
        while [ "$APP_TERMINAL" != "y" ] && [ "$APP_TERMINAL" != "n" ]; do
            echo -n "Please enter something: "
            read APP_TERMINAL
        done
        if [ "$APP_TERMINAL" == "y" ]; then
            APP_TERMINAL="true"
        else
            APP_TERMINAL="false"
        fi
        # ask for tags
        echo -n "Enter some categories that fit your program (';' separated): "
        read APP_CATEGORIES
        # Check if user is satisfied
        while [ "$USER_RESPONSE" == "" ] || [ "$USER_RESPONSE" != "y" ] && [ "$USER_RESPONSE" != "Y" ] && [ "$USER_RESPONSE" != "n" ] && [ "$USER_RESPONSE" != "N" ]; do
            echo -e "Is this information correct?\n"
            echo -e "\tName: \t\t$APP_NAME"
            echo -e "\tExecutable: \t$exec_path"
            echo -e "\tDescription: \t$APP_DESCRIPTION"
            echo -e "\tIcon File: \t$APP_ICON"
            echo -e "\tTerminal: \t$APP_TERMINAL"
            echo -e "\tCategories: \t$APP_CATEGORIES"
            echo -n "(y/n): "
            read USER_RESPONSE
        done
        if [ "$USER_RESPONSE" == "n" ] || [ "$USER_RESPONSE" == "N" ]; then
            echo "Then please enter everything again, kind sir"
            unset USER_RESPONSE
        fi
    done
    # User is happy
    # Add link to /usr/bin
    echo "Adding link to /usr/bin"
    sudo ln -s "$exec_path" "/usr/bin/$exec_basename"
    # Add gnome panel entry
    echo "Creating gnome-panel entry"
    echo "[Desktop Entry]" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Type=Application" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Encoding=UTF-8" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Name=$APP_NAME" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Comment=$APP_DESCRIPTION" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Icon=$APP_ICON" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Exec=$exec_path" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Terminal=$APP_TERMINAL" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Categories=$APP_CATEGORIES" | sudo tee -a "$gnome_panel_entry_path" > /dev/null
    echo "Entry added in '$gnome_panel_entry_path'"
    unset USER_RESPONSE
    unset APP_NAME
    unset APP_CATEGORIES
    unset APP_TERMINAL
    unset APP_DESCRIPTION
    unset APP_ICON
    unset exec_path
    unset exec_basename
    unset gnome_panel_entry_path
    return 0
}

: +1: สำหรับคุณเวลา :) ดีที่มีเครื่องมือบรรทัดคำสั่ง
Daniel Pérez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.