3
3
# Adds/Removes programs from the desktop in Ubuntu 20.04
4
4
5
5
#
6
- # Note that the program assumes danish locale, where the 'Desktop' directory
6
+ # Note that this script currently assumes danish locale, where the 'Desktop' directory
7
7
# is instead named 'Skrivebord'.
8
8
#
9
9
# Arguments:
10
10
# 1: Use a boolean to decide whether to add or remove the program shortcut
11
11
# 2: This argument should specify the name of a program (.desktop-file)
12
- # under /usr/share/applications/
12
+ # under /usr/share/applications/ or /var/lib/snapd/desktop/applications/
13
+
14
+ set -x
13
15
14
16
lower () {
15
17
echo " $@ " | tr ' [:upper:]' ' [:lower:]'
@@ -18,20 +20,26 @@ lower() {
18
20
ADD=$1
19
21
PROGRAM=" $( lower " $2 " ) "
20
22
21
- SHADOW=.skjult
23
+ SHADOW=" .skjult"
24
+
25
+ # TODO?: Make it replace all desktop icons which are copies with symlinks?
26
+
27
+ mkdir --parents /home/$SHADOW /Skrivebord
22
28
23
29
if [ " $ADD " = ' True' ]; then
24
- mkdir --parents /home/$SHADOW /Skrivebord
25
30
if [ -f " /var/lib/snapd/desktop/applications/${PROGRAM} _$PROGRAM .desktop" ]; then
26
- cp " /var/lib/snapd/desktop/applications/${PROGRAM} _$PROGRAM .desktop" /home/ $SHADOW /Skrivebord/
31
+ DESKTOP_FILE= /var/lib/snapd/desktop/applications/${PROGRAM} _$PROGRAM .desktop
27
32
else
28
- cp " /usr/share/applications/$PROGRAM .desktop" /home/ $SHADOW /Skrivebord/
33
+ DESKTOP_FILE= /usr/share/applications/$PROGRAM .desktop
29
34
fi
35
+
36
+ # Remove it first as it may be a copy and not symlink (ln --force can't overwrite regular files)
37
+ rm " /home/$SHADOW /Skrivebord/$PROGRAM .desktop"
38
+
39
+ ln --symbolic --force " $DESKTOP_FILE " /home/$SHADOW /Skrivebord/
30
40
else
31
- echo " Forsøger at slette programmet $PROGRAM "
32
41
if [ -f " /home/$SHADOW /Skrivebord/${PROGRAM} _$PROGRAM .desktop" ]; then
33
- rm " /home/$SHADOW /Skrivebord/${PROGRAM} _$PROGRAM .desktop"
34
- else
35
- rm " /home/$SHADOW /Skrivebord/$PROGRAM .desktop"
42
+ PROGRAM=${PROGRAM} _$PROGRAM
36
43
fi
44
+ rm --force " /home/$SHADOW /Skrivebord/$PROGRAM .desktop"
37
45
fi
0 commit comments