Skip to content

Commit ac1879d

Browse files
committed
πŸ› fix: fix: category + Chrome session + desktop spec compliance
- Manager .desktop: Categories=GTK;Utility β†’ Categories=GTK;Webapps (appears in Webapps folder instead of Utilities) - big-webapps-exec: Default/Browser profile β†’ use native Chrome --profile-directory=Default (keeps user logins/cookies); custom profiles β†’ isolated --user-data-dir (separate session) - desktop.rs: ensure trailing semicolon in Categories= field (freedesktop spec compliance, required for GNOME app-folder matching) fix: align app-folder category filter with desktop files - categories=['WebApps'] β†’ categories=['Webapps'] (matches Categories=Webapps; in generated .desktop files)
1 parent adac987 commit ac1879d

3 files changed

Lines changed: 26 additions & 7 deletions

File tree

β€Žbiglinux-webapps/usr/bin/big-webapps-execβ€Ž

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,6 @@ case $browser in
5757
esac
5858

5959

60-
mkdir -p "$HOME/.bigwebapps/$browser"
61-
6260
# Permission for flatpak browser
6361
if [[ $browser =~ flatpak ]]; then
6462
flatpak override --user --filesystem="$HOME/.bigwebapps/$browser" "${browser_exec[2]}"
@@ -79,6 +77,20 @@ if [[ $browser =~ (firefox|librewolf|flatpak-firefox) ]]; then
7977

8078
fi
8179

80+
# Build browser launch args based on profile type
81+
# Default/Browser β†’ use native Chrome profile (keeps user logins/cookies)
82+
# Custom profile β†’ use isolated --user-data-dir (separate session)
83+
build_browser_args() {
84+
if [[ $profile == "Default" || $profile == "Browser" ]]; then
85+
browser_args=(--no-default-browser-check --profile-directory=Default --app="$url")
86+
else
87+
mkdir -p "$HOME/.bigwebapps/$browser/$profile"
88+
browser_args=(--no-default-browser-check --user-data-dir="$HOME/.bigwebapps/$browser/$profile" --app="$url")
89+
fi
90+
}
91+
92+
build_browser_args
93+
8294
# If the big-webapp-version is set and using wayland, we change desktop file temporarily
8395
if grep -q '\-BigWebApp' <<< "$filename" && [[ $XDG_SESSION_TYPE == 'wayland' ]]; then
8496
filename_orig="$HOME/.local/share/applications/${filename//-BigWebApp[0-9]*/}.desktop"
@@ -101,14 +113,14 @@ if grep -q '\-BigWebApp' <<< "$filename" && [[ $XDG_SESSION_TYPE == 'wayland' ]]
101113
cp "$filename" "$filename_orig"
102114
# Wait to system detect updated icon
103115
sleep 2
104-
"${browser_exec[@]}" --no-default-browser-check --user-data-dir="$HOME/.bigwebapps/$browser/$profile" --app="$url" &
116+
"${browser_exec[@]}" "${browser_args[@]}" &
105117

106118
sleep 2
107119
mv -f "$filename_orig_bkp" "$filename_orig"
108120
flock -u 9
109121
else
110122
# another instance holds lock β†’ just launch without icon swap
111-
"${browser_exec[@]}" --no-default-browser-check --user-data-dir="$HOME/.bigwebapps/$browser/$profile" --app="$url" &
123+
"${browser_exec[@]}" "${browser_args[@]}" &
112124
fi
113125
rm -f "$lockfile"
114126
else
@@ -120,5 +132,5 @@ else
120132
mv -f "$filename_bkp" "$filename"
121133
fi
122134

123-
"${browser_exec[@]}" --no-default-browser-check --user-data-dir="$HOME/.bigwebapps/$browser/$profile" --app="$url" &
135+
"${browser_exec[@]}" "${browser_args[@]}" &
124136
fi

β€Žbiglinux-webapps/usr/share/applications/br.com.biglinux.webapps.desktopβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ Name[zh]=ζ·»εŠ ε’Œεˆ ι™€ Web 应用
3131
Icon=big-webapps
3232
Exec=big-webapps-gui
3333
StartupWMClass=br.com.biglinux.webapps
34-
Categories=GTK;Utility;
34+
Categories=GTK;Webapps;
3535
Terminal=false
3636
StartupNotify=true

β€Žcrates/webapps-core/src/desktop.rsβ€Ž

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,14 @@ pub fn generate_desktop_entry(webapp: &WebApp) -> String {
4040
format!("Exec={}", exec),
4141
format!("Icon={}", webapp.app_icon),
4242
format!("StartupWMClass={}", wm_class),
43-
format!("Categories={}", webapp.app_categories),
43+
format!(
44+
"Categories={}",
45+
if webapp.app_categories.ends_with(';') {
46+
webapp.app_categories.clone()
47+
} else {
48+
format!("{};", webapp.app_categories)
49+
}
50+
),
4451
];
4552

4653
if !webapp.mime_types.is_empty() {

0 commit comments

Comments
Β (0)