Skip to content

Commit 6eae4ef

Browse files
mfxaMarcus Funch
authored andcommitted
Make desktop program shortcut script use symlinks, make default browser script support any snap
Minor correction
1 parent 70cd3da commit 6eae4ef

File tree

2 files changed

+27
-18
lines changed

2 files changed

+27
-18
lines changed

os2borgerpc/desktop/desktop_program_shortcut.sh

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,15 @@
33
# Adds/Removes programs from the desktop in Ubuntu 20.04
44
55
#
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
77
# is instead named 'Skrivebord'.
88
#
99
# Arguments:
1010
# 1: Use a boolean to decide whether to add or remove the program shortcut
1111
# 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
1315

1416
lower() {
1517
echo "$@" | tr '[:upper:]' '[:lower:]'
@@ -18,20 +20,26 @@ lower() {
1820
ADD=$1
1921
PROGRAM="$(lower "$2")"
2022

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
2228

2329
if [ "$ADD" = 'True' ]; then
24-
mkdir --parents /home/$SHADOW/Skrivebord
2530
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
2732
else
28-
cp "/usr/share/applications/$PROGRAM.desktop" /home/$SHADOW/Skrivebord/
33+
DESKTOP_FILE=/usr/share/applications/$PROGRAM.desktop
2934
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/
3040
else
31-
echo "Forsøger at slette programmet $PROGRAM"
3241
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
3643
fi
44+
rm --force "/home/$SHADOW/Skrivebord/$PROGRAM.desktop"
3745
fi

os2borgerpc/os2borgerpc/browser_set_default.sh

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#
55
# Arguments:
66
# 1: Which browser to set as default.
7-
# Options are: 'firefox' or 'chrome'
87

98
set -ex
109

@@ -16,14 +15,16 @@ BROWSER="$(lower "$1")"
1615

1716
FILE="/usr/share/applications/defaults.list"
1817

19-
if [ "$BROWSER" = "firefox" ]; then
20-
if [ -d "/snap/firefox" ]; then
21-
DESKTOP_FILE=firefox_firefox.desktop
22-
else
23-
DESKTOP_FILE=firefox.desktop
24-
fi
18+
# They can type in "chrome" but the desktop file is called google-chrome
19+
if [ "$BROWSER" = "chrome" ]; then
20+
BROWSER=google-chrome.desktop
21+
fi
22+
23+
# Handle snaps, which have names like firefox_firefox.desktop
24+
if [ -d "/snap/$BROWSER" ]; then
25+
DESKTOP_FILE=${BROWSER}_$BROWSER.desktop
2526
else
26-
DESKTOP_FILE=google-chrome.desktop
27+
DESKTOP_FILE=${BROWSER}.desktop
2728
fi
2829

2930
# We cleanup the defaults.list as sometimes it seems to be populated

0 commit comments

Comments
 (0)