Genvej til program fra skrivebordet
Source: Download script
Last Updated: 4. December 2024 by Agnete Moos (agms@sonderborg.dk)
Parameters:
Navn | Type | Standardværdi | Påkrævet |
---|---|---|---|
Click to see the source code
#! /usr/bin/env sh
# Adds/Removes programs from the desktop in Ubuntu 20.04
# Author: mfm@magenta.dk
#
# This script has been updated to automatically detect the name of
# the 'Desktop' directory in the chosen locale.
#
# Arguments:
# 1: Use a boolean to decide whether to add or remove the program shortcut
# 2: This argument should specify the name of a program (.desktop-file)
# under /usr/share/applications/ or /var/lib/snapd/desktop/applications/
# This parameter IS case-sensitive as some applications have
# capitalized characters in their filename.
ADD="$1"
PROGRAM="$2"
if get_os2borgerpc_config os2_product | grep --quiet kiosk; then
echo "Dette script er ikke designet til at blive anvendt på en kiosk-maskine."
exit 1
fi
# Determine the name of the user desktop directory. This is done via xdg-user-dir,
# which checks the /home/user/.config/user-dirs.dirs file. To ensure this file exists,
# we run xdg-user-dirs-update, which generates it based on the environment variable
# LANG. This variable is empty in lightdm so we first export it
# based on the value stored in /etc/default/locale
export "$(grep LANG= /etc/default/locale | tr -d '"')"
runuser -u user xdg-user-dirs-update
DESKTOP=$(basename "$(runuser -u user xdg-user-dir DESKTOP)")
SHADOW_DESKTOP="/home/.skjult/$DESKTOP"
SNAP_DESKTOP_FILE_PATH="/var/lib/snapd/desktop/applications"
APT_DESKTOP_FILE_PATH="/usr/share/applications"
# TODO?: Make it replace all desktop icons which are copies with symlinks?
mkdir --parents "$SHADOW_DESKTOP"
# They can type in chrome, but the desktop file is called google-chrome
# They can type in edge, but the desktop file is called microsoft-edge
# They can also type in okular, but the desktop file is called okularApplication_kimgio
if [ "$PROGRAM" = "chrome" ]; then
PROGRAM="google-chrome"
elif [ "$PROGRAM" = "edge" ]; then
PROGRAM="microsoft-edge"
elif [ "$PROGRAM" = "okular" ]; then
PROGRAM="okularApplication_kimgio"
fi
if [ "$ADD" = 'True' ]; then
if [ -f "$SNAP_DESKTOP_FILE_PATH/${PROGRAM}_$PROGRAM.desktop" ]; then
ORIGINAL_FILE=$SNAP_DESKTOP_FILE_PATH/${PROGRAM}_$PROGRAM.desktop
else
ORIGINAL_FILE=$APT_DESKTOP_FILE_PATH/$PROGRAM.desktop
fi
# Check that the program actually exists and exit if it doesn't
if [ ! -f "$ORIGINAL_FILE" ]; then
echo "The chosen program name did not match any installed programs. Exiting."
exit 1
fi
# Remove it first as it may be a copy and not symlink (ln --force can't overwrite regular files)
rm --force "$SHADOW_DESKTOP/$(basename "$ORIGINAL_FILE")"
# Ensure that the local copy exists
LOCAL_FILE_COPY="/home/.skjult/.local/share/applications/$(basename "$ORIGINAL_FILE")"
mkdir --parents "$(dirname "$LOCAL_FILE_COPY")"
if [ ! -f "$LOCAL_FILE_COPY" ]; then
cp "$ORIGINAL_FILE" "$LOCAL_FILE_COPY"
fi
ln --symbolic --force "$LOCAL_FILE_COPY" "$SHADOW_DESKTOP"/
else
if [ -f "$SHADOW_DESKTOP/${PROGRAM}_$PROGRAM.desktop" ]; then
PROGRAM=${PROGRAM}_$PROGRAM
fi
rm --force "$SHADOW_DESKTOP/$PROGRAM.desktop"
fi
Beskrivelse
Tilføj/fjern en genvej til/fra et program på skrivebordet.
Log ud efter kørsel.
Dette script er blevet testet og virker på Ubuntu 22.04.
Parametre
1: Tilføj programmet: Sæt hak: Programmet tilføjes til Skrivebordet Fjern hak: Programmet fjernes fra Skrivebordet (hvis det ligger der) 2: Programnavn: Det program du ønsker at tilføje eller slette fra skrivebordet. Programnavnet skal matche navnet på en genvej til et installeret program. Navnet er næsten altid med små bogstaver, og mellemrum erstattet af bindestreg. Eksempler: firefox, google-chrome, simple-scan, yelp, libreoffice-impress, libreoffice-writer, libreoffice-calc
Hvis du ikke kender program-navnet præcist, kan du bruge scriptet “Desktop - Vis programliste”.