그놈 실행기에 사용자 정의 응용 프로그램 추가


69

그놈이 알고있는 응용 프로그램 목록에 항목을 삽입 할 수있는 유틸리티를 찾고 있습니다.

예를 들어 :
Eclipse EE를 다운로드했습니다 (작업해야하는 매우 특별한 플러그인이 있으며 해당 플러그인은 기본 저장소에서 사용 가능한 버전을 "좋아요"하지 않습니다). 우분투 11.10에서 그놈 3을 사용하고 있습니다. 그래서 터미널을 열고 실행하지 않고 Eclipse를 실행하고 싶습니다.

매우 간단한 것이어야합니다.


png 이미지가 작동하지 않습니다, jpg를 시도하십시오

답변:


67

이를 위해 메인 메뉴를 사용할 수 있습니다. 그렇지 않은 경우 먼저 설치하십시오.

sudo apt-get install alacarte

1. 메인 메뉴를 엽니 다

2. 예를 참조하십시오

메인 메뉴

그런 다음 이름이 "command_of_application"인 응용 프로그램을 호출 할 수 있습니다.

편집 : 홈 디렉토리에서 응용 프로그램을 요청한 것을 놓쳤습니다. 그렇다면 command는 해당 응용 프로그램의 전체 경로 여야합니다.


그것이 내가 찾고있는 것입니다.
Shaftoe2702

독일어 우분투 17.10에서 "Menüberabeitung"를 검색
크리스토퍼 K.

다행히도이 패키지는 페도라 용 패키지였습니다.
Sukumaar

60

그놈이 알고있는 응용 프로그램 발사기에서의 .desktop 파일입니다 /usr/share/applications,하고 ~/.local/share/applications. 사용자 정의 .desktop 파일을 수동으로 작성 및 편집하거나 이전 Gnome 메뉴 편집기 인 Alacarte를 사용하여 홈 폴더에있는 사용자 정의 실행기를 작성할 수 있습니다.

그놈 데스크탑 파일 문서는 도움이 될 수 있습니다 : 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

나는 Jorge의 간단한 gnome-desktop-item-edit해결책을 좋아 한다. 그러나 .desktop파일을 배치 ~/Desktop/하면 그놈 메뉴에 응용 프로그램으로 표시되지 않고 파일로만 표시됩니다. 그래서 나는 :

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

그러나 모든 그놈 사용자를위한 메뉴를 만들려면 ~/.local/share/applications폴더에 배치하고 사용하지 않는 것이 좋습니다 sudo.
RousseauAlexandre

1

이 스레드가 다소 오래되었다는 것을 알고 있지만 방금 만든이 bash 함수를 여러분과 공유하고 싶었습니다. 유용하다고 생각되면 자유롭게 사용하십시오!

경고 : 방금 만들었습니다. 완벽하지 않을 수 있습니다.

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.