diff --git a/Makefile b/Makefile
index 3c92291..224bdae 100644
--- a/Makefile
+++ b/Makefile
@@ -48,6 +48,9 @@ prepare: clean install_build_deps
@echo "08 - Provide additional metadata (https://github.com/aunetx/deezer-linux/pull/95)"
@echo "09 - Add Discord Rich Presence (https://github.com/aunetx/deezer-linux/pull/82)"
@echo "10 - Improve responsiveness on small devices (https://github.com/aunetx/deezer-linux/pull/122)"
+ @echo "11 - Hide Application is offline banner (https://github.com/aunetx/deezer-linux/pull/124)"
+ @echo "12 - Disable animations (https://github.com/aunetx/deezer-linux/pull/133)"
+
@$(foreach p, $(wildcard ./patches/*), patch -p 1 -d $(APP_DIR) < $(p);)
@echo "Append `package-append.json` to the `package.json` of the app"
diff --git a/README.md b/README.md
index a4cd8cb..1e0102e 100644
--- a/README.md
+++ b/README.md
@@ -37,19 +37,23 @@ Other packages can be installed from you package manager, either by clicking on
## Usage
-| Option | Description |
-| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
-| `--start-in-tray` | Start the app in the tray (see [patch](./patches/01-start-hidden-in-tray.patch)) |
-| `--disable-systray` | Quit the app when the window is closed (see [patch](./patches/03-quit.patch)) |
-| `--keep-kernel` | Use the exact kernel version (see [patch](./patches/05-remove-os-information.patch))
_This feature impacts privacy._ |
-| `--disable-features` | Disable some features (see [patch](./patches/06-better-management-of-MPRIS.patch)) |
-| `--enable-discord-rpc` | Enable Discord RPC integration (see [patch](./patches/09-discord-rich-presence.patch)) |
-| `--enable-wayland-ime` `--ozone-platform-hint=auto` `--wayland-text-input-version=3` | Enable IME keyboard support on Wayland |
+| Option | Description |
+| ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| `--start-in-tray` | Start the app in the tray (see [patch](./patches/01-start-hidden-in-tray.patch)) |
+| `--disable-systray` | Quit the app when the window is closed (see [patch](./patches/03-quit.patch)) |
+| `--keep-kernel` | Use the exact kernel version (see [patch](./patches/05-remove-os-information.patch))
_This feature impacts privacy._ |
+| `--disable-features` | Disable some features (see [patch](./patches/06-better-management-of-MPRIS.patch)) |
+| `--enable-discord-rpc` | Enable Discord RPC integration (see [patch](./patches/09-discord-rich-presence.patch)) |
+| `--hide-appoffline-banner` | Hide the "Application is offline" banner that appears when using a VPN or DNS blocker (see [patch](./patches/11-hide-appoffline-banner.patch)) |
+| `--disable-animations` | Disable animations (see [patch](./patches/12-disable-animations.patch)) |
+| `--enable-wayland-ime` `--ozone-platform-hint=auto` `--wayland-text-input-version=3` | Enable IME keyboard support on Wayland |
-| Environment variable | Options | Description |
-| -------------------- | -------------------------------------------------- | ---------------------------------------------------------------------------------- |
-| `LOG_LEVEL` | `silly`,`debug`,`verbose`,`info`,`warning`,`error` | Set the log level (see [patch](./patches/07-log-level-environment-variable.patch)) |
-| `DZ_DEVTOOLS` | `yes`,`no` | Enable the developer console (ctrl+shift+i) |
+| Environment variable | Options | Description |
+| --------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
+| `DZ_HIDE_APPOFFLINE_BANNER` | `yes`,`no` | Hide the "Application is offline" banner (see [patch](./patches/11-hide-appoffline-banner.patch)) |
+| `DZ_DISABLE_ANIMATIONS` | `yes`,`no` | Disable animations (see [patch](./patches/12-disable-animations.patch)) |
+| `LOG_LEVEL` | `silly`,`debug`,`verbose`,`info`,`warning`,`error` | Set the log level (see [patch](./patches/07-log-level-environment-variable.patch)) |
+| `DZ_DEVTOOLS` | `yes`,`no` | Enable the developer console (ctrl+shift+i) |
## Building from source
diff --git a/dev.aunetx.deezer.desktop b/dev.aunetx.deezer.desktop
index 0ea9bd5..061107f 100644
--- a/dev.aunetx.deezer.desktop
+++ b/dev.aunetx.deezer.desktop
@@ -11,4 +11,8 @@ Categories=Audio;Music;Player;AudioVideo;
Keywords=Music;Player;Streaming;Online;
StartupWMClass=Deezer
SingleMainWindow=true
-X-GNOME-UsesNotifications=true
\ No newline at end of file
+X-GNOME-UsesNotifications=true
+
+# Used by flatpak/flathub
+Exec=run.sh %U
+TryExec=run.sh
\ No newline at end of file
diff --git a/patches/11-hide-appoffline-banner.patch b/patches/11-hide-appoffline-banner.patch
new file mode 100644
index 0000000..e827657
--- /dev/null
+++ b/patches/11-hide-appoffline-banner.patch
@@ -0,0 +1,66 @@
+From bbb88f846c94978959f4816069332b4d9f9f4dab Mon Sep 17 00:00:00 2001
+From: josselinonduty
+Date: Tue, 8 Jul 2025 12:54:19 +0200
+Subject: [PATCH] feat: add toggle to hide application offline banner
+
+Original patch: Aurélien Hamy
+This solves #123 by adding the `--hide-appoffline-banner` command-line argument
+to hide the annoying "Application is offline" banner, that sometimes appears when
+using a VPN or DNS level blocker.
+---
+ build/index.html | 6 ++++++
+ build/main.js | 5 +++++
+ build/preload.js | 4 ++++
+ 3 files changed, 15 insertions(+)
+
+diff --git a/build/index.html b/build/index.html
+index 4efcd23..4be829c 100644
+--- a/build/index.html
++++ b/build/index.html
+@@ -86,6 +86,12 @@
+ width: auto !important;
+ }
+ }
++
++ /* hide the offline alert when needed */
++ .hide-AppOffline-banner
++ .alert-wrapper:has(> div[data-testid="alert-AppOffline"]) {
++ display: none !important;
++ }
+
+
+
+diff --git a/build/main.js b/build/main.js
+index 99935cb..1c16dbe 100644
+--- a/build/main.js
++++ b/build/main.js
+@@ -3166,6 +3166,11 @@
+ getRealPath(external_electron_namespaceObject.app, __dirname),
+ "preload.js"
+ ),
++ additionalArguments: [
++ (process.argv.some((arg) => arg === "--hide-appoffline-banner") ||
++ "yes" === process.env.DZ_HIDE_APPOFFLINE_BANNER) &&
++ "--hide-appoffline-banner",
++ ].filter(Boolean),
+ },
+ windowOptions = {
+ title: "Deezer Desktop",
+diff --git a/build/preload.js b/build/preload.js
+index 1301e93..05939c4 100644
+--- a/build/preload.js
++++ b/build/preload.js
+@@ -538,6 +538,10 @@
+ external_i18next_default().dir(external_i18next_default().language)
+ ? "rtl"
+ : "ltr");
++ if (process.argv.some((arg) => arg === "--hide-appoffline-banner"))
++ document
++ .getElementsByTagName("body")[0]
++ .classList.add("hide-AppOffline-banner");
+ });
+ })(),
+ (module.exports = __webpack_exports__);
+--
+2.48.1
+
diff --git a/patches/12-disable-animations.patch b/patches/12-disable-animations.patch
new file mode 100644
index 0000000..0dbe4ba
--- /dev/null
+++ b/patches/12-disable-animations.patch
@@ -0,0 +1,60 @@
+From a220daa47a06d19ff6a995d567c0f46e42d14f6b Mon Sep 17 00:00:00 2001
+From: josselinonduty
+Date: Tue, 8 Jul 2025 14:37:23 +0200
+Subject: [PATCH] feat(patch): disable animations (cli/env)
+
+---
+ build/index.html | 6 ++++++
+ build/main.js | 3 +++
+ build/preload.js | 4 ++++
+ 3 files changed, 13 insertions(+)
+
+diff --git a/build/index.html b/build/index.html
+index 4be829c..2ef7709 100644
+--- a/build/index.html
++++ b/build/index.html
+@@ -92,6 +92,12 @@
+ .alert-wrapper:has(> div[data-testid="alert-AppOffline"]) {
+ display: none !important;
+ }
++
++ /* Disable animations */
++ .disable-animations * {
++ animation: none !important;
++ transition: none !important;
++ }
+
+
+
+diff --git a/build/main.js b/build/main.js
+index 8fa4b6f..61028cd 100644
+--- a/build/main.js
++++ b/build/main.js
+@@ -3246,6 +3246,9 @@
+ (process.argv.some((arg) => arg === "--hide-appoffline-banner") ||
+ "yes" === process.env.DZ_HIDE_APPOFFLINE_BANNER) &&
+ "--hide-appoffline-banner",
++ (process.argv.some((arg) => arg === "--disable-animations") ||
++ "yes" === process.env.DZ_DISABLE_ANIMATIONS) &&
++ "--disable-animations",
+ ].filter(Boolean),
+ },
+ windowOptions = {
+diff --git a/build/preload.js b/build/preload.js
+index 05939c4..0df9150 100644
+--- a/build/preload.js
++++ b/build/preload.js
+@@ -542,6 +542,10 @@
+ document
+ .getElementsByTagName("body")[0]
+ .classList.add("hide-AppOffline-banner");
++ if (process.argv.some((arg) => arg === "--disable-animations"))
++ document
++ .getElementsByTagName("body")[0]
++ .classList.add("disable-animations");
+ });
+ })(),
+ (module.exports = __webpack_exports__);
+--
+2.48.1
+