Mencari sebuah utilitas yang memungkinkan saya memasukkan item ke daftar aplikasi yang GNOME tahu tentang.
Misalnya: Saya telah men-download Eclipse EE (aku punya beberapa plugin khusus yang saya butuhkan untuk bekerja dengan, dan mereka plugin don't "seperti" versi yang tersedia di repository default). I'm menggunakan GNOME 3 pada Ubuntu 11.10. Jadi saya ingin menjalankan Eclipse w/o membuka terminal dan menjalankan hal itu.
Ini harus menjadi sesuatu yang sangat sederhana.
Anda dapat menggunakan Menu Utama untuk ini. Jika tidak, install terlebih dahulu:
sudo apt-get install alacarte
1. Buka Menu Utama
2. Lihat contoh
Setelah itu anda dapat memanggil aplikasi dengan nama: "command_of_application".
Edit: aku rindu bahwa anda telah meminta untuk aplikasi dalam direktori home anda. Jika demikian, perintah harus full path dari aplikasi tersebut.
Aplikasi peluncur Gnome tahu tentang .desktop file /usr/share/applications
, dan ~/.local/share/applications
. Anda dapat membuat peluncur kustom untuk apa yang ada di folder home anda, baik secara manual membuat dan mengedit kustom .berkas desktop, atau dengan menggunakan Alacarte, tua Gnome menu editor.
Desktop Gnome file dokumentasi yang dapat membantu: https://developer.gnome.org/integration-guide/stable/desktop-files.html.en
Custom launcher adalah hanya sebuah file teks, yang bernama, misalnya, EclipseEE.desktop
, dengan isi sebagai berikut:
[Desktop Entry]
Name=Eclipse EE
Exec=/home/mrPeterson/path_to_executable
StartupNotify=true
Terminal=false
Type=Application
Icon=/optional/path/to/icon.png
(Repost dari aslinya OP)
Ini adalah trik yang ditunjukkan di tempat lain:
gnome-desktop-item-edit ~/Desktop/ --create-new
Sekarang, saya memiliki sebuah Ikon. Itu adalah fitur bagus untuk memiliki terikat pada konteks menu, tapi sayangnya, saya tidak melihat itu.
Aku seperti Jorge's sederhana gnome-desktop-item-edit
solusi. Namun, jika saya menempatkan .desktop
file ~/Desktop/
itu tidak muncul sebagai sebuah aplikasi tetapi hanya sebagai file di gnome menu. Jadi yang saya lakukan:
sudo gnome-desktop-item-edit /usr/share/applications/ --create-new
Aku tahu thread ini agak lama, tapi saya ingin berbagi dengan kalian ini bash fungsi saya hanya dibuat karena... karena aku dapat. Jika anda menemukan ini berguna, jangan ragu untuk menggunakannya!
Peringatan: aku baru saja membuatnya. Hal ini mungkin tidak sempurna.
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
}