summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOskar <oskar@mullvad.net>2024-11-14 17:28:38 +0100
committerOskar <oskar@mullvad.net>2024-11-14 17:28:38 +0100
commitd4d0d4894b970ea537f01c87a7a1b777b4467d4f (patch)
tree4fa6d7ffdae2991b1d7283a072447dfaa0a93d90
parente3ce0eb5cd0610dbff6ec98cb8cb388415c74bf6 (diff)
parentadc1711478434f7defb214906cbeeed9a0f14bdf (diff)
downloadmullvadvpn-d4d0d4894b970ea537f01c87a7a1b777b4467d4f.tar.xz
mullvadvpn-d4d0d4894b970ea537f01c87a7a1b777b4467d4f.zip
Merge branch 'test-npm-workspace'
-rw-r--r--.github/workflows/android-app.yml2
-rw-r--r--.github/workflows/daemon.yml2
-rw-r--r--.github/workflows/desktop-e2e.yml14
-rw-r--r--.github/workflows/frontend.yml26
-rw-r--r--.github/workflows/testframework.yml2
-rw-r--r--.github/workflows/translations.yml8
-rw-r--r--.github/workflows/verify-locked-down-signatures.yml3
-rw-r--r--BuildInstructions.md40
-rw-r--r--README.md26
-rw-r--r--android/README.md12
-rw-r--r--android/translations-converter/README.md6
-rw-r--r--android/translations-converter/src/main.rs2
-rwxr-xr-xbuild.sh2
-rw-r--r--building/Dockerfile2
-rwxr-xr-xci/buildserver-build.sh3
-rw-r--r--desktop/.gitignore1
-rw-r--r--desktop/eslint.config.mjs (renamed from gui/eslint.config.mjs)67
-rw-r--r--desktop/osv-scanner.toml (renamed from gui/osv-scanner.toml)0
-rw-r--r--desktop/package-lock.json (renamed from gui/package-lock.json)251
-rw-r--r--desktop/package.json40
-rw-r--r--desktop/packages/mullvad-vpn/.gitignore (renamed from gui/.gitignore)0
-rw-r--r--desktop/packages/mullvad-vpn/README.md (renamed from gui/README.md)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/css/fonts.css (renamed from gui/assets/css/fonts.css)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/css/global.css (renamed from gui/assets/css/global.css)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/css/reset.css (renamed from gui/assets/css/reset.css)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/css/style.css (renamed from gui/assets/css/style.css)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/NotoSansMyanmar-Bold.ttf (renamed from gui/assets/fonts/NotoSansMyanmar-Bold.ttf)bin209912 -> 209912 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/NotoSansThai-Bold.ttf (renamed from gui/assets/fonts/NotoSansThai-Bold.ttf)bin21732 -> 21732 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Bold.ttf (renamed from gui/assets/fonts/OpenSans-Bold.ttf)bin129784 -> 129784 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Regular.ttf (renamed from gui/assets/fonts/OpenSans-Regular.ttf)bin129796 -> 129796 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Semibold.ttf (renamed from gui/assets/fonts/OpenSans-Semibold.ttf)bin221328 -> 221328 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-Bold.ttf (renamed from gui/assets/fonts/SourceSansPro-Bold.ttf)bin267388 -> 267388 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-SemiBold.ttf (renamed from gui/assets/fonts/SourceSansPro-SemiBold.ttf)bin268280 -> 268280 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/app-header-backdrop.svg (renamed from gui/assets/images/app-header-backdrop.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/app-triangle.svg (renamed from gui/assets/images/app-triangle.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/daita-off-illustration.svg (renamed from gui/assets/images/daita-off-illustration.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/daita-on-illustration.svg (renamed from gui/assets/images/daita-on-illustration.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-account.svg (renamed from gui/assets/images/icon-account.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-add.svg (renamed from gui/assets/images/icon-add.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-alert.svg (renamed from gui/assets/images/icon-alert.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-arrow.svg (renamed from gui/assets/images/icon-arrow.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-back.svg (renamed from gui/assets/images/icon-back.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-check.svg (renamed from gui/assets/images/icon-check.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-checkmark.svg (renamed from gui/assets/images/icon-checkmark.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-chevron-down.svg (renamed from gui/assets/images/icon-chevron-down.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-chevron-up.svg (renamed from gui/assets/images/icon-chevron-up.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-chevron.svg (renamed from gui/assets/images/icon-chevron.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-close-down.svg (renamed from gui/assets/images/icon-close-down.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-close-sml.svg (renamed from gui/assets/images/icon-close-sml.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-close.svg (renamed from gui/assets/images/icon-close.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-copy.svg (renamed from gui/assets/images/icon-copy.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-cross.svg (renamed from gui/assets/images/icon-cross.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-edit.svg (renamed from gui/assets/images/icon-edit.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-extLink.svg (renamed from gui/assets/images/icon-extLink.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-fail.svg (renamed from gui/assets/images/icon-fail.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-fastest.svg (renamed from gui/assets/images/icon-fastest.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-filter-round.svg (renamed from gui/assets/images/icon-filter-round.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-filter.svg (renamed from gui/assets/images/icon-filter.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-info.svg (renamed from gui/assets/images/icon-info.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-language.svg (renamed from gui/assets/images/icon-language.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-more.svg (renamed from gui/assets/images/icon-more.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-notification.png (renamed from gui/assets/images/icon-notification.png)bin7194 -> 7194 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-obscure.svg (renamed from gui/assets/images/icon-obscure.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-reload.svg (renamed from gui/assets/images/icon-reload.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-remove.svg (renamed from gui/assets/images/icon-remove.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-search.svg (renamed from gui/assets/images/icon-search.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-settings.svg (renamed from gui/assets/images/icon-settings.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-spinner.svg (renamed from gui/assets/images/icon-spinner.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-success.svg (renamed from gui/assets/images/icon-success.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/icon-tick.svg (renamed from gui/assets/images/icon-tick.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/icon-unobscure.svg (renamed from gui/assets/images/icon-unobscure.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/location-marker-secure.svg (renamed from gui/assets/images/location-marker-secure.svg)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/assets/images/location-marker-unsecure.svg (renamed from gui/assets/images/location-marker-unsecure.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/logo-icon.svg (renamed from gui/assets/images/logo-icon.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/logo-text.svg (renamed from gui/assets/images/logo-text.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/README.md (renamed from gui/assets/images/menubar-icons/README.md)4
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1.png)bin174 -> 174 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10.png)bin306 -> 306 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10@2x.png)bin462 -> 462 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10Template.png)bin200 -> 200 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10Template@2x.png)bin282 -> 282 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10_notification.png)bin324 -> 324 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10_notification@2x.png)bin430 -> 430 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png)bin336 -> 336 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png)bin445 -> 445 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1@2x.png)bin255 -> 255 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1Template.png)bin129 -> 129 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1Template@2x.png)bin182 -> 182 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1_notification.png)bin219 -> 219 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1_notification@2x.png)bin316 -> 316 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png)bin219 -> 219 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png)bin316 -> 316 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2.png)bin216 -> 216 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2@2x.png)bin268 -> 268 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2Template.png)bin154 -> 154 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2Template@2x.png)bin185 -> 185 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2_notification.png)bin243 -> 243 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2_notification@2x.png)bin315 -> 315 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png)bin243 -> 243 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png)bin315 -> 315 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3.png)bin174 -> 174 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3@2x.png)bin252 -> 252 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3Template.png)bin130 -> 130 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3Template@2x.png)bin182 -> 182 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3_notification.png)bin214 -> 214 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3_notification@2x.png)bin309 -> 309 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png)bin214 -> 214 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png)bin309 -> 309 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4.png)bin203 -> 203 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4@2x.png)bin255 -> 255 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4Template.png)bin152 -> 152 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4Template@2x.png)bin176 -> 176 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4_notification.png)bin245 -> 245 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4_notification@2x.png)bin322 -> 322 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png)bin245 -> 245 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png)bin317 -> 317 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5.png)bin155 -> 155 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5@2x.png)bin236 -> 236 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5Template.png)bin120 -> 120 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5Template@2x.png)bin167 -> 167 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5_notification.png)bin211 -> 211 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5_notification@2x.png)bin301 -> 301 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png)bin211 -> 211 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png)bin301 -> 301 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6.png)bin161 -> 161 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6@2x.png)bin247 -> 247 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6Template.png)bin129 -> 129 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6Template@2x.png)bin173 -> 173 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6_notification.png)bin215 -> 215 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6_notification@2x.png)bin313 -> 313 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png)bin215 -> 215 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png)bin303 -> 303 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7.png)bin162 -> 162 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7@2x.png)bin245 -> 245 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7Template.png)bin124 -> 124 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7Template@2x.png)bin175 -> 175 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7_notification.png)bin218 -> 218 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7_notification@2x.png)bin299 -> 299 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png)bin218 -> 218 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png)bin299 -> 299 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8.png)bin176 -> 176 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8@2x.png)bin251 -> 251 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8Template.png)bin129 -> 129 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8Template@2x.png)bin175 -> 175 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8_notification.png)bin224 -> 224 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8_notification@2x.png)bin306 -> 306 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png)bin220 -> 220 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png)bin306 -> 306 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9.png)bin166 -> 166 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9@2x.png)bin243 -> 243 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9Template.png)bin127 -> 127 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9Template@2x.png)bin177 -> 177 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9_notification.png)bin219 -> 219 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9_notification@2x.png)bin303 -> 303 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png)bin219 -> 219 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png (renamed from gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png)bin303 -> 303 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1.png (renamed from gui/assets/images/menubar-icons/linux/lock-1.png)bin385 -> 385 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10.png (renamed from gui/assets/images/menubar-icons/linux/lock-10.png)bin694 -> 694 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-10_notification.png)bin778 -> 778 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-10_white.png)bin414 -> 414 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-10_white_notification.png)bin773 -> 773 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-1_notification.png)bin607 -> 607 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-1_white.png)bin252 -> 252 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-1_white_notification.png)bin587 -> 587 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2.png (renamed from gui/assets/images/menubar-icons/linux/lock-2.png)bin440 -> 440 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-2_notification.png)bin663 -> 663 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-2_white.png)bin257 -> 257 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-2_white_notification.png)bin644 -> 644 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3.png (renamed from gui/assets/images/menubar-icons/linux/lock-3.png)bin379 -> 379 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-3_notification.png)bin642 -> 642 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-3_white.png)bin255 -> 255 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-3_white_notification.png)bin618 -> 618 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4.png (renamed from gui/assets/images/menubar-icons/linux/lock-4.png)bin370 -> 370 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-4_notification.png)bin639 -> 639 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-4_white.png)bin253 -> 253 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-4_white_notification.png)bin620 -> 620 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5.png (renamed from gui/assets/images/menubar-icons/linux/lock-5.png)bin319 -> 319 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-5_notification.png)bin529 -> 529 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-5_white.png)bin231 -> 231 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-5_white_notification.png)bin529 -> 529 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6.png (renamed from gui/assets/images/menubar-icons/linux/lock-6.png)bin350 -> 350 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-6_notification.png)bin583 -> 583 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-6_white.png)bin242 -> 242 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-6_white_notification.png)bin564 -> 564 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7.png (renamed from gui/assets/images/menubar-icons/linux/lock-7.png)bin340 -> 340 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-7_notification.png)bin555 -> 555 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-7_white.png)bin240 -> 240 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-7_white_notification.png)bin544 -> 544 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8.png (renamed from gui/assets/images/menubar-icons/linux/lock-8.png)bin345 -> 345 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-8_notification.png)bin569 -> 569 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-8_white.png)bin245 -> 245 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-8_white_notification.png)bin558 -> 558 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9.png (renamed from gui/assets/images/menubar-icons/linux/lock-9.png)bin338 -> 338 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-9_notification.png)bin555 -> 555 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white.png (renamed from gui/assets/images/menubar-icons/linux/lock-9_white.png)bin238 -> 238 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white_notification.png (renamed from gui/assets/images/menubar-icons/linux/lock-9_white_notification.png)bin537 -> 537 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-1.svg (renamed from gui/assets/images/menubar-icons/svg/lock-1.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10.svg (renamed from gui/assets/images/menubar-icons/svg/lock-10.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10_mono.svg (renamed from gui/assets/images/menubar-icons/svg/lock-10_mono.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-2.svg (renamed from gui/assets/images/menubar-icons/svg/lock-2.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-3.svg (renamed from gui/assets/images/menubar-icons/svg/lock-3.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-4.svg (renamed from gui/assets/images/menubar-icons/svg/lock-4.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-5.svg (renamed from gui/assets/images/menubar-icons/svg/lock-5.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-6.svg (renamed from gui/assets/images/menubar-icons/svg/lock-6.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-7.svg (renamed from gui/assets/images/menubar-icons/svg/lock-7.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-8.svg (renamed from gui/assets/images/menubar-icons/svg/lock-8.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-9.svg (renamed from gui/assets/images/menubar-icons/svg/lock-9.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/notification.svg (renamed from gui/assets/images/menubar-icons/svg/notification.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-10_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-1_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-2_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-3_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-4_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-5_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-6_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-7_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-8_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9_black.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9_black_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9_white.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white_notification.ico (renamed from gui/assets/images/menubar-icons/win32/lock-9_white_notification.ico)bin45246 -> 45246 bytes
-rw-r--r--desktop/packages/mullvad-vpn/assets/images/multihop-illustration.svg (renamed from gui/assets/images/multihop-illustration.svg)0
-rw-r--r--desktop/packages/mullvad-vpn/changes.txt (renamed from gui/changes.txt)0
-rw-r--r--desktop/packages/mullvad-vpn/crowdin.yml (renamed from gui/crowdin.yml)0
-rw-r--r--desktop/packages/mullvad-vpn/eslint.config.mjs57
-rw-r--r--desktop/packages/mullvad-vpn/gulpfile.js (renamed from gui/gulpfile.js)5
-rw-r--r--desktop/packages/mullvad-vpn/init.js (renamed from gui/init.js)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/README.md (renamed from gui/locales/README.md)38
-rw-r--r--desktop/packages/mullvad-vpn/locales/da/messages.po (renamed from gui/locales/da/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/da/relay-locations.po (renamed from gui/locales/da/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/de/messages.po (renamed from gui/locales/de/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/de/relay-locations.po (renamed from gui/locales/de/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/es/messages.po (renamed from gui/locales/es/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/es/relay-locations.po (renamed from gui/locales/es/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/fi/messages.po (renamed from gui/locales/fi/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/fi/relay-locations.po (renamed from gui/locales/fi/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/fr/messages.po (renamed from gui/locales/fr/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/fr/relay-locations.po (renamed from gui/locales/fr/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/it/messages.po (renamed from gui/locales/it/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/it/relay-locations.po (renamed from gui/locales/it/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ja/messages.po (renamed from gui/locales/ja/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ja/relay-locations.po (renamed from gui/locales/ja/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ko/messages.po (renamed from gui/locales/ko/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ko/relay-locations.po (renamed from gui/locales/ko/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/messages.pot (renamed from gui/locales/messages.pot)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/my/messages.po (renamed from gui/locales/my/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/my/relay-locations.po (renamed from gui/locales/my/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/nb/messages.po (renamed from gui/locales/nb/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/nb/relay-locations.po (renamed from gui/locales/nb/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/nl/messages.po (renamed from gui/locales/nl/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/nl/relay-locations.po (renamed from gui/locales/nl/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/pl/messages.po (renamed from gui/locales/pl/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/pl/relay-locations.po (renamed from gui/locales/pl/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/pt/messages.po (renamed from gui/locales/pt/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/pt/relay-locations.po (renamed from gui/locales/pt/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/relay-locations.pot (renamed from gui/locales/relay-locations.pot)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ru/messages.po (renamed from gui/locales/ru/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/ru/relay-locations.po (renamed from gui/locales/ru/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/sv/messages.po (renamed from gui/locales/sv/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/sv/relay-locations.po (renamed from gui/locales/sv/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/th/messages.po (renamed from gui/locales/th/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/th/relay-locations.po (renamed from gui/locales/th/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/tr/messages.po (renamed from gui/locales/tr/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/tr/relay-locations.po (renamed from gui/locales/tr/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/zh-CN/messages.po (renamed from gui/locales/zh-CN/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/zh-CN/relay-locations.po (renamed from gui/locales/zh-CN/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/zh-TW/messages.po (renamed from gui/locales/zh-TW/messages.po)0
-rw-r--r--desktop/packages/mullvad-vpn/locales/zh-TW/relay-locations.po (renamed from gui/locales/zh-TW/relay-locations.po)0
-rw-r--r--desktop/packages/mullvad-vpn/package.json (renamed from gui/package.json)31
-rw-r--r--desktop/packages/mullvad-vpn/playwright.config.ts (renamed from gui/playwright.config.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/README.md (renamed from gui/scripts/README.md)2
-rwxr-xr-xdesktop/packages/mullvad-vpn/scripts/build-logo-icons.sh (renamed from gui/scripts/build-logo-icons.sh)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/scripts/build-proto.sh (renamed from gui/scripts/build-proto.sh)4
-rwxr-xr-xdesktop/packages/mullvad-vpn/scripts/build-test-executable.sh (renamed from gui/scripts/build-test-executable.sh)7
-rw-r--r--desktop/packages/mullvad-vpn/scripts/extract-translations.js (renamed from gui/scripts/extract-translations.js)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/scripts/fetch-relay-locations.py (renamed from gui/scripts/fetch-relay-locations.py)0
-rwxr-xr-xdesktop/packages/mullvad-vpn/scripts/generate-menubar-icons.sh (renamed from gui/scripts/generate-menubar-icons.sh)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/integrate-relay-locations.py (renamed from gui/scripts/integrate-relay-locations.py)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/osv-scanner.toml (renamed from gui/scripts/osv-scanner.toml)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/pylintrc (renamed from gui/scripts/pylintrc)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/requirements.txt (renamed from gui/scripts/requirements.txt)0
-rw-r--r--desktop/packages/mullvad-vpn/scripts/verify-translations-format.ts (renamed from gui/scripts/verify-translations-format.ts)2
-rw-r--r--desktop/packages/mullvad-vpn/src/config.json (renamed from gui/src/config.json)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/account-data-cache.ts (renamed from gui/src/main/account-data-cache.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/account.ts (renamed from gui/src/main/account.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/autostart.ts (renamed from gui/src/main/autostart.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/changelog.ts (renamed from gui/src/main/changelog.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/command-line-options.ts (renamed from gui/src/main/command-line-options.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/daemon-rpc.ts (renamed from gui/src/main/daemon-rpc.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/default-settings.ts (renamed from gui/src/main/default-settings.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/expectation.ts (renamed from gui/src/main/expectation.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/grpc-client.ts (renamed from gui/src/main/grpc-client.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts (renamed from gui/src/main/grpc-type-convertions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/gui-settings.ts (renamed from gui/src/main/gui-settings.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/index.ts (renamed from gui/src/main/index.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/ipc-event-channel.ts (renamed from gui/src/main/ipc-event-channel.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/keyframe-animation.ts (renamed from gui/src/main/keyframe-animation.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/linux-desktop-entry.ts (renamed from gui/src/main/linux-desktop-entry.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/linux-split-tunneling.ts (renamed from gui/src/main/linux-split-tunneling.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/load-translations.ts (renamed from gui/src/main/load-translations.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/logging.ts (renamed from gui/src/main/logging.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/macos-split-tunneling.ts (renamed from gui/src/main/macos-split-tunneling.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/notification-controller.ts (renamed from gui/src/main/notification-controller.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/platform-version.ts (renamed from gui/src/main/platform-version.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/problem-report.ts (renamed from gui/src/main/problem-report.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/proc.ts (renamed from gui/src/main/proc.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/reconnection-backoff.ts (renamed from gui/src/main/reconnection-backoff.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/settings.ts (renamed from gui/src/main/settings.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/tray-icon-controller.ts (renamed from gui/src/main/tray-icon-controller.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/tunnel-state.ts (renamed from gui/src/main/tunnel-state.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/user-interface.ts (renamed from gui/src/main/user-interface.ts)14
-rw-r--r--desktop/packages/mullvad-vpn/src/main/version.ts (renamed from gui/src/main/version.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/window-controller.ts (renamed from gui/src/main/window-controller.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/windows-pe-parser.ts (renamed from gui/src/main/windows-pe-parser.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts (renamed from gui/src/main/windows-split-tunneling.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/app.tsx (renamed from gui/src/renderer/app.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Accordion.tsx (renamed from gui/src/renderer/components/Accordion.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Account.tsx (renamed from gui/src/renderer/components/Account.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AccountNumberLabel.tsx (renamed from gui/src/renderer/components/AccountNumberLabel.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AccountStyles.tsx (renamed from gui/src/renderer/components/AccountStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ApiAccessMethods.tsx (renamed from gui/src/renderer/components/ApiAccessMethods.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AppButton.tsx (renamed from gui/src/renderer/components/AppButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AppButtonStyles.tsx (renamed from gui/src/renderer/components/AppButtonStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AppRouter.tsx (renamed from gui/src/renderer/components/AppRouter.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/AriaGroup.tsx (renamed from gui/src/renderer/components/AriaGroup.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Changelog.tsx (renamed from gui/src/renderer/components/Changelog.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ChevronButton.tsx (renamed from gui/src/renderer/components/ChevronButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ClipboardLabel.tsx (renamed from gui/src/renderer/components/ClipboardLabel.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ContextMenu.tsx (renamed from gui/src/renderer/components/ContextMenu.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettings.tsx (renamed from gui/src/renderer/components/CustomDnsSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettingsStyles.tsx (renamed from gui/src/renderer/components/CustomDnsSettingsStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/CustomScrollbars.tsx (renamed from gui/src/renderer/components/CustomScrollbars.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/DaitaSettings.tsx (renamed from gui/src/renderer/components/DaitaSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Debug.tsx (renamed from gui/src/renderer/components/Debug.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/DeviceInfoButton.tsx (renamed from gui/src/renderer/components/DeviceInfoButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/DeviceRevokedView.tsx (renamed from gui/src/renderer/components/DeviceRevokedView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/EditApiAccessMethod.tsx (renamed from gui/src/renderer/components/EditApiAccessMethod.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/EditCustomBridge.tsx (renamed from gui/src/renderer/components/EditCustomBridge.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ErrorBoundary.tsx (renamed from gui/src/renderer/components/ErrorBoundary.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ErrorView.tsx (renamed from gui/src/renderer/components/ErrorView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountAddTime.tsx (renamed from gui/src/renderer/components/ExpiredAccountAddTime.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorView.tsx (renamed from gui/src/renderer/components/ExpiredAccountErrorView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorViewStyles.tsx (renamed from gui/src/renderer/components/ExpiredAccountErrorViewStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Filter.tsx (renamed from gui/src/renderer/components/Filter.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Focus.tsx (renamed from gui/src/renderer/components/Focus.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/FormattableTextInput.tsx (renamed from gui/src/renderer/components/FormattableTextInput.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/HeaderBar.tsx (renamed from gui/src/renderer/components/HeaderBar.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ImageView.tsx (renamed from gui/src/renderer/components/ImageView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/InfoButton.tsx (renamed from gui/src/renderer/components/InfoButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/KeyboardNavigation.tsx (renamed from gui/src/renderer/components/KeyboardNavigation.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Lang.tsx (renamed from gui/src/renderer/components/Lang.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Launch.tsx (renamed from gui/src/renderer/components/Launch.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Layout.tsx (renamed from gui/src/renderer/components/Layout.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/List.tsx (renamed from gui/src/renderer/components/List.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx (renamed from gui/src/renderer/components/Login.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/LoginStyles.tsx (renamed from gui/src/renderer/components/LoginStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/MacOsScrollbarDetection.tsx (renamed from gui/src/renderer/components/MacOsScrollbarDetection.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Map.tsx (renamed from gui/src/renderer/components/Map.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Marquee.tsx (renamed from gui/src/renderer/components/Marquee.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Modal.tsx (renamed from gui/src/renderer/components/Modal.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/MultiButton.tsx (renamed from gui/src/renderer/components/MultiButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/MultihopSettings.tsx (renamed from gui/src/renderer/components/MultihopSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/NavigationBar.tsx (renamed from gui/src/renderer/components/NavigationBar.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/NavigationBarStyles.tsx (renamed from gui/src/renderer/components/NavigationBarStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/NotificationArea.tsx (renamed from gui/src/renderer/components/NotificationArea.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/NotificationBanner.tsx (renamed from gui/src/renderer/components/NotificationBanner.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/OpenVpnSettings.tsx (renamed from gui/src/renderer/components/OpenVpnSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/PageSlider.tsx (renamed from gui/src/renderer/components/PageSlider.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx (renamed from gui/src/renderer/components/ProblemReport.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ProblemReportStyles.tsx (renamed from gui/src/renderer/components/ProblemReportStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx (renamed from gui/src/renderer/components/ProxyForm.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucher.tsx (renamed from gui/src/renderer/components/RedeemVoucher.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucherStyles.tsx (renamed from gui/src/renderer/components/RedeemVoucherStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/RelayStatusIndicator.tsx (renamed from gui/src/renderer/components/RelayStatusIndicator.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SearchBar.tsx (renamed from gui/src/renderer/components/SearchBar.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SecuredLabel.tsx (renamed from gui/src/renderer/components/SecuredLabel.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SelectLanguage.tsx (renamed from gui/src/renderer/components/SelectLanguage.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Settings.tsx (renamed from gui/src/renderer/components/Settings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SettingsHeader.tsx (renamed from gui/src/renderer/components/SettingsHeader.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SettingsImport.tsx (renamed from gui/src/renderer/components/SettingsImport.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SettingsStyles.tsx (renamed from gui/src/renderer/components/SettingsStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SettingsTextImport.tsx (renamed from gui/src/renderer/components/SettingsTextImport.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Shadowsocks.tsx (renamed from gui/src/renderer/components/Shadowsocks.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SimpleInput.tsx (renamed from gui/src/renderer/components/SimpleInput.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SmallButton.tsx (renamed from gui/src/renderer/components/SmallButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx (renamed from gui/src/renderer/components/SplitTunnelingSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettingsStyles.tsx (renamed from gui/src/renderer/components/SplitTunnelingSettingsStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Support.tsx (renamed from gui/src/renderer/components/Support.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/Switch.tsx (renamed from gui/src/renderer/components/Switch.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/TooManyDevices.tsx (renamed from gui/src/renderer/components/TooManyDevices.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/TransitionContainer.tsx (renamed from gui/src/renderer/components/TransitionContainer.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/UdpOverTcp.tsx (renamed from gui/src/renderer/components/UdpOverTcp.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/UserInterfaceSettings.tsx (renamed from gui/src/renderer/components/UserInterfaceSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/VpnSettings.tsx (renamed from gui/src/renderer/components/VpnSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/WireguardSettings.tsx (renamed from gui/src/renderer/components/WireguardSettings.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/YellowLabel.tsx (renamed from gui/src/renderer/components/YellowLabel.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/CellButton.tsx (renamed from gui/src/renderer/components/cell/CellButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Container.tsx (renamed from gui/src/renderer/components/cell/Container.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Footer.tsx (renamed from gui/src/renderer/components/cell/Footer.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Group.tsx (renamed from gui/src/renderer/components/cell/Group.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Input.tsx (renamed from gui/src/renderer/components/cell/Input.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Label.tsx (renamed from gui/src/renderer/components/cell/Label.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Row.tsx (renamed from gui/src/renderer/components/cell/Row.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Section.tsx (renamed from gui/src/renderer/components/cell/Section.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/Selector.tsx (renamed from gui/src/renderer/components/cell/Selector.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsForm.tsx (renamed from gui/src/renderer/components/cell/SettingsForm.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsGroup.tsx (renamed from gui/src/renderer/components/cell/SettingsGroup.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRadioGroup.tsx (renamed from gui/src/renderer/components/cell/SettingsRadioGroup.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRow.tsx (renamed from gui/src/renderer/components/cell/SettingsRow.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsSelect.tsx (renamed from gui/src/renderer/components/cell/SettingsSelect.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsTextInput.tsx (renamed from gui/src/renderer/components/cell/SettingsTextInput.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/SideButton.tsx (renamed from gui/src/renderer/components/cell/SideButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/index.ts (renamed from gui/src/renderer/components/cell/index.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/cell/styles.ts (renamed from gui/src/renderer/components/cell/styles.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/common-styles.ts (renamed from gui/src/renderer/components/common-styles.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionActionButton.tsx (renamed from gui/src/renderer/components/main-view/ConnectionActionButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionDetails.tsx (renamed from gui/src/renderer/components/main-view/ConnectionDetails.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanel.tsx (renamed from gui/src/renderer/components/main-view/ConnectionPanel.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanelChevron.tsx (renamed from gui/src/renderer/components/main-view/ConnectionPanelChevron.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionStatus.tsx (renamed from gui/src/renderer/components/main-view/ConnectionStatus.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx (renamed from gui/src/renderer/components/main-view/FeatureIndicators.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/Hostname.tsx (renamed from gui/src/renderer/components/main-view/Hostname.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/Location.tsx (renamed from gui/src/renderer/components/main-view/Location.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/MainView.tsx (renamed from gui/src/renderer/components/main-view/MainView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/SelectLocationButton.tsx (renamed from gui/src/renderer/components/main-view/SelectLocationButton.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/main-view/styles.ts (renamed from gui/src/renderer/components/main-view/styles.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/CombinedLocationList.tsx (renamed from gui/src/renderer/components/select-location/CombinedLocationList.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomListDialogs.tsx (renamed from gui/src/renderer/components/select-location/CustomListDialogs.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomLists.tsx (renamed from gui/src/renderer/components/select-location/CustomLists.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRow.tsx (renamed from gui/src/renderer/components/select-location/LocationRow.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRowStyles.tsx (renamed from gui/src/renderer/components/select-location/LocationRowStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayListContext.tsx (renamed from gui/src/renderer/components/select-location/RelayListContext.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayLocationList.tsx (renamed from gui/src/renderer/components/select-location/RelayLocationList.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScopeBar.tsx (renamed from gui/src/renderer/components/select-location/ScopeBar.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScrollPositionContext.tsx (renamed from gui/src/renderer/components/select-location/ScrollPositionContext.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocation.tsx (renamed from gui/src/renderer/components/select-location/SelectLocation.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationContainer.tsx (renamed from gui/src/renderer/components/select-location/SelectLocationContainer.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationStyles.tsx (renamed from gui/src/renderer/components/select-location/SelectLocationStyles.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpacePreAllocationView.tsx (renamed from gui/src/renderer/components/select-location/SpacePreAllocationView.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpecialLocationList.tsx (renamed from gui/src/renderer/components/select-location/SpecialLocationList.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/custom-list-helpers.ts (renamed from gui/src/renderer/components/select-location/custom-list-helpers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-helpers.ts (renamed from gui/src/renderer/components/select-location/select-location-helpers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-hooks.ts (renamed from gui/src/renderer/components/select-location/select-location-hooks.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-types.ts (renamed from gui/src/renderer/components/select-location/select-location-types.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/context.tsx (renamed from gui/src/renderer/context.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/index.html (renamed from gui/src/renderer/index.html)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/index.ts (renamed from gui/src/renderer/index.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/3dmap.ts (renamed from gui/src/renderer/lib/3dmap.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/account.ts (renamed from gui/src/renderer/lib/account.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/actionsHook.ts (renamed from gui/src/renderer/lib/actionsHook.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/api-access-methods.ts (renamed from gui/src/renderer/lib/api-access-methods.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/constraint-updater.ts (renamed from gui/src/renderer/lib/constraint-updater.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts (renamed from gui/src/renderer/lib/filter-locations.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/history.tsx (renamed from gui/src/renderer/lib/history.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/html-formatter.tsx (renamed from gui/src/renderer/lib/html-formatter.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/ip.ts (renamed from gui/src/renderer/lib/ip.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/ipc-event-channel.ts (renamed from gui/src/renderer/lib/ipc-event-channel.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/load-translations.ts (renamed from gui/src/renderer/lib/load-translations.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/logging.ts (renamed from gui/src/renderer/lib/logging.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/relay-settings-hooks.ts (renamed from gui/src/renderer/lib/relay-settings-hooks.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/routeHelpers.ts (renamed from gui/src/renderer/lib/routeHelpers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/routes.ts (renamed from gui/src/renderer/lib/routes.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/styles.ts (renamed from gui/src/renderer/lib/styles.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/utility-hooks.ts (renamed from gui/src/renderer/lib/utility-hooks.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/lib/will-exit.tsx (renamed from gui/src/renderer/lib/will-exit.tsx)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/preload.ts (renamed from gui/src/renderer/preload.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/account/actions.ts (renamed from gui/src/renderer/redux/account/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/account/reducers.ts (renamed from gui/src/renderer/redux/account/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/connection/actions.ts (renamed from gui/src/renderer/redux/connection/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/connection/reducers.ts (renamed from gui/src/renderer/redux/connection/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/actions.ts (renamed from gui/src/renderer/redux/settings-import/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/reducers.ts (renamed from gui/src/renderer/redux/settings-import/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/settings/actions.ts (renamed from gui/src/renderer/redux/settings/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts (renamed from gui/src/renderer/redux/settings/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/store.ts (renamed from gui/src/renderer/redux/store.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/support/actions.ts (renamed from gui/src/renderer/redux/support/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/support/reducers.ts (renamed from gui/src/renderer/redux/support/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/actions.ts (renamed from gui/src/renderer/redux/userinterface/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/reducers.ts (renamed from gui/src/renderer/redux/userinterface/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/version/actions.ts (renamed from gui/src/renderer/redux/version/actions.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/renderer/redux/version/reducers.ts (renamed from gui/src/renderer/redux/version/reducers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/account-expiry.ts (renamed from gui/src/shared/account-expiry.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/application-types.ts (renamed from gui/src/shared/application-types.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/connect-helper.ts (renamed from gui/src/shared/connect-helper.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts (renamed from gui/src/shared/daemon-rpc-types.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/date-helper.ts (renamed from gui/src/shared/date-helper.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/gettext.ts (renamed from gui/src/shared/gettext.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/gui-settings-state.ts (renamed from gui/src/shared/gui-settings-state.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/ipc-helpers.ts (renamed from gui/src/shared/ipc-helpers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/ipc-schema.ts (renamed from gui/src/shared/ipc-schema.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/ipc-types.ts (renamed from gui/src/shared/ipc-types.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/localization-contexts.ts (renamed from gui/src/shared/localization-contexts.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/logging-types.ts (renamed from gui/src/shared/logging-types.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/logging.ts (renamed from gui/src/shared/logging.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/account-expired.ts (renamed from gui/src/shared/notifications/account-expired.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/block-when-disconnected.ts (renamed from gui/src/shared/notifications/block-when-disconnected.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/close-to-account-expiry.ts (renamed from gui/src/shared/notifications/close-to-account-expiry.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/connected.ts (renamed from gui/src/shared/notifications/connected.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/connecting.ts (renamed from gui/src/shared/notifications/connecting.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/daemon-disconnected.ts (renamed from gui/src/shared/notifications/daemon-disconnected.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/disconnected.ts (renamed from gui/src/shared/notifications/disconnected.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/error.ts (renamed from gui/src/shared/notifications/error.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/inconsistent-version.ts (renamed from gui/src/shared/notifications/inconsistent-version.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/new-device.ts (renamed from gui/src/shared/notifications/new-device.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts (renamed from gui/src/shared/notifications/notification.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/reconnecting.ts (renamed from gui/src/shared/notifications/reconnecting.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/unsupported-version.ts (renamed from gui/src/shared/notifications/unsupported-version.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/notifications/update-available.ts (renamed from gui/src/shared/notifications/update-available.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/scheduler.ts (renamed from gui/src/shared/scheduler.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/string-helpers.ts (renamed from gui/src/shared/string-helpers.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/utils.ts (renamed from gui/src/shared/utils.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/src/shared/version.ts (renamed from gui/src/shared/version.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/standalone-tests.sea.json (renamed from gui/standalone-tests.sea.json)0
-rw-r--r--desktop/packages/mullvad-vpn/standalone-tests.ts (renamed from gui/standalone-tests.ts)2
-rw-r--r--desktop/packages/mullvad-vpn/tasks/assets.js (renamed from gui/tasks/assets.js)2
-rw-r--r--desktop/packages/mullvad-vpn/tasks/distribution.js (renamed from gui/tasks/distribution.js)41
-rw-r--r--desktop/packages/mullvad-vpn/tasks/electron.js (renamed from gui/tasks/electron.js)0
-rw-r--r--desktop/packages/mullvad-vpn/tasks/scripts.js (renamed from gui/tasks/scripts.js)10
-rw-r--r--desktop/packages/mullvad-vpn/tasks/watch.js (renamed from gui/tasks/watch.js)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/installed-utils.ts (renamed from gui/test/e2e/installed/installed-utils.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/playwright.config.ts (renamed from gui/test/e2e/installed/playwright.config.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/api-access-methods.spec.ts (renamed from gui/test/e2e/installed/state-dependent/api-access-methods.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/custom-bridge.spec.ts (renamed from gui/test/e2e/installed/state-dependent/custom-bridge.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/device-revoked.spec.ts (renamed from gui/test/e2e/installed/state-dependent/device-revoked.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/disconnected.spec.ts (renamed from gui/test/e2e/installed/state-dependent/disconnected.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/location.spec.ts (renamed from gui/test/e2e/installed/state-dependent/location.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/login.spec.ts (renamed from gui/test/e2e/installed/state-dependent/login.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts (renamed from gui/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/obfuscation.spec.ts (renamed from gui/test/e2e/installed/state-dependent/obfuscation.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings-import.spec.ts (renamed from gui/test/e2e/installed/state-dependent/settings-import.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings.spec.ts (renamed from gui/test/e2e/installed/state-dependent/settings.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/too-many-devices.spec.ts (renamed from gui/test/e2e/installed/state-dependent/too-many-devices.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts (renamed from gui/test/e2e/installed/state-dependent/tunnel-state.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/expired-account-error-view.spec.ts (renamed from gui/test/e2e/mocked/expired-account-error-view.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators.spec.ts (renamed from gui/test/e2e/mocked/feature-indicators.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/main.spec.ts (renamed from gui/test/e2e/mocked/main.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts (renamed from gui/test/e2e/mocked/mocked-utils.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/notifications.spec.ts (renamed from gui/test/e2e/mocked/notifications.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/select-location.spec.ts (renamed from gui/test/e2e/mocked/select-location.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/settings.spec.ts (renamed from gui/test/e2e/mocked/settings.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/mocked/tunnel-state.spec.ts (renamed from gui/test/e2e/mocked/tunnel-state.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/setup/main.ts (renamed from gui/test/e2e/setup/main.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/shared/tunnel-state.ts (renamed from gui/test/e2e/shared/tunnel-state.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/e2e/utils.ts (renamed from gui/test/e2e/utils.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/account-data-cache.spec.ts (renamed from gui/test/unit/account-data-cache.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/changelog.spec.ts (renamed from gui/test/unit/changelog.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/date-helper.spec.ts (renamed from gui/test/unit/date-helper.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/history.spec.ts (renamed from gui/test/unit/history.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/ip.spec.ts (renamed from gui/test/unit/ip.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/keyframe-animation.spec.ts (renamed from gui/test/unit/keyframe-animation.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/list-diff.spec.ts (renamed from gui/test/unit/list-diff.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/logging.spec.ts (renamed from gui/test/unit/logging.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/notification-evaluation.spec.ts (renamed from gui/test/unit/notification-evaluation.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/setup.ts (renamed from gui/test/unit/setup.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/test/unit/tunnel-state.spec.ts (renamed from gui/test/unit/tunnel-state.spec.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/tsconfig.dev.json (renamed from gui/tsconfig.dev.json)0
-rw-r--r--desktop/packages/mullvad-vpn/tsconfig.json (renamed from gui/tsconfig.json)11
-rw-r--r--desktop/packages/mullvad-vpn/types/argv-split/index.d.ts (renamed from gui/types/argv-split/index.d.ts)0
-rw-r--r--desktop/packages/mullvad-vpn/types/global/index.d.ts (renamed from gui/types/global/index.d.ts)0
-rw-r--r--desktop/packages/nseventforwarder/.gitignore8
-rw-r--r--desktop/packages/nseventforwarder/Cargo.lock325
-rw-r--r--desktop/packages/nseventforwarder/Cargo.toml7
-rw-r--r--desktop/packages/nseventforwarder/README.md19
-rw-r--r--desktop/packages/nseventforwarder/build.sh49
-rw-r--r--desktop/packages/nseventforwarder/crates/nseventforwarder/Cargo.toml14
-rw-r--r--desktop/packages/nseventforwarder/crates/nseventforwarder/src/lib.rs113
-rw-r--r--desktop/packages/nseventforwarder/eslint.config.mjs3
-rw-r--r--desktop/packages/nseventforwarder/package.json41
-rw-r--r--desktop/packages/nseventforwarder/src/index.cts14
-rw-r--r--desktop/packages/nseventforwarder/src/index.mts3
-rw-r--r--desktop/packages/nseventforwarder/src/load.cts11
-rw-r--r--desktop/packages/nseventforwarder/tsconfig.json9
-rw-r--r--desktop/prettier.config.mjs (renamed from gui/prettier.config.mjs)0
-rw-r--r--desktop/tsconfig.json11
-rw-r--r--graphics/README.md2
-rw-r--r--gui/standalone-tests.pkg.json13
-rwxr-xr-xios/convert-assets.rb5
-rwxr-xr-xprepare-release.sh5
-rwxr-xr-xscripts/localization12
-rw-r--r--test/docs/BUILD_OS_IMAGE.md2
-rw-r--r--test/test-manager/README.md4
-rw-r--r--test/test-manager/src/tests/ui.rs6
629 files changed, 1083 insertions, 332 deletions
diff --git a/.github/workflows/android-app.yml b/.github/workflows/android-app.yml
index d2c93d388a..df892cd170 100644
--- a/.github/workflows/android-app.yml
+++ b/.github/workflows/android-app.yml
@@ -12,7 +12,7 @@ on:
- '!dist-assets/**'
- '!docs/**'
- '!graphics/**'
- - '!gui/**'
+ - '!desktop/**'
- '!ios/**'
- '!test/**'
- '!scripts/**'
diff --git a/.github/workflows/daemon.yml b/.github/workflows/daemon.yml
index 818d5eb68f..a0d793fa7f 100644
--- a/.github/workflows/daemon.yml
+++ b/.github/workflows/daemon.yml
@@ -18,7 +18,7 @@ on:
- '!deny.toml'
- '!docs/**'
- '!graphics/**'
- - '!gui/**'
+ - '!desktop/**'
- '!ios/**'
- '!scripts/**'
- '!.*ignore'
diff --git a/.github/workflows/desktop-e2e.yml b/.github/workflows/desktop-e2e.yml
index 76cb144e33..6c1e5c99ee 100644
--- a/.github/workflows/desktop-e2e.yml
+++ b/.github/workflows/desktop-e2e.yml
@@ -130,7 +130,7 @@ jobs:
USE_MOLD: false
run: ./build.sh
- name: Build test executable
- run: ./gui/scripts/build-test-executable.sh
+ run: ./desktop/packages/mullvad-vpn/scripts/build-test-executable.sh
- uses: actions/upload-artifact@v3
if: '!cancelled()'
with:
@@ -191,9 +191,9 @@ jobs:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v4
with:
- node-version-file: gui/package.json
+ node-version-file: desktop/package.json
cache: 'npm'
- cache-dependency-path: gui/package-lock.json
+ cache-dependency-path: desktop/package-lock.json
- name: Install Rust
uses: actions-rs/toolchain@v1.0.6
with:
@@ -209,7 +209,7 @@ jobs:
run: ./build.sh
- name: Build test executable
shell: bash
- run: ./gui/scripts/build-test-executable.sh
+ run: ./desktop/packages/mullvad-vpn/scripts/build-test-executable.sh
- uses: actions/upload-artifact@v3
if: '!cancelled()'
with:
@@ -273,9 +273,9 @@ jobs:
repo-token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-node@v4
with:
- node-version-file: gui/package.json
+ node-version-file: desktop/package.json
cache: 'npm'
- cache-dependency-path: gui/package-lock.json
+ cache-dependency-path: desktop/package-lock.json
- name: Install Rust
uses: actions-rs/toolchain@v1.0.6
with:
@@ -284,7 +284,7 @@ jobs:
- name: Build app
run: ./build.sh
- name: Build test executable
- run: ./gui/scripts/build-test-executable.sh
+ run: ./desktop/packages/mullvad-vpn/scripts/build-test-executable.sh
- uses: actions/upload-artifact@v3
if: '!cancelled()'
with:
diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml
index 3b6bc373e4..5d7cec1611 100644
--- a/.github/workflows/frontend.yml
+++ b/.github/workflows/frontend.yml
@@ -4,7 +4,7 @@ on:
pull_request:
paths:
- .github/workflows/frontend.yml
- - gui/**
+ - desktop/**
- mullvad-management-interface/proto/**
workflow_dispatch:
@@ -34,46 +34,46 @@ jobs:
- name: Setup node
uses: actions/setup-node@v4
with:
- node-version-file: gui/package.json
+ node-version-file: desktop/package.json
cache: 'npm'
- cache-dependency-path: gui/package-lock.json
+ cache-dependency-path: desktop/package-lock.json
- name: Install dependencies
- working-directory: gui
+ working-directory: desktop
shell: bash
run: npm ci
- name: Check formatting
if: matrix.os == 'ubuntu-latest'
- working-directory: gui
+ working-directory: desktop
shell: bash
run: npm run lint
- name: Build
- working-directory: gui
+ working-directory: desktop
shell: bash
- run: npm run build
+ run: npm run build -w mullvad-vpn
- name: Run headless test Linux
if: runner.os == 'Linux'
- working-directory: gui
+ working-directory: desktop
run: xvfb-run -a npm test
- name: Run headless test Windows
if: runner.os != 'Linux'
- working-directory: gui
+ working-directory: desktop
shell: bash
run: npm test
- name: Run Playwright tests on Linux
if: runner.os == 'Linux'
- working-directory: gui
+ working-directory: desktop
# The sandbox is disabled as a workaround for lacking userns permisisons which is required
# since Ubuntu 24.04.
- run: NO_SANDBOX=1 npm run e2e:no-build
+ run: NO_SANDBOX=1 npm run e2e:no-build -w mullvad-vpn
- name: Run Playwright tests on Windows
if: runner.os != 'Linux'
- working-directory: gui
+ working-directory: desktop
shell: bash
- run: npm run e2e:no-build
+ run: npm run e2e:no-build --w mullvad-vpn
diff --git a/.github/workflows/testframework.yml b/.github/workflows/testframework.yml
index 8b8e7759d5..cc9c597ded 100644
--- a/.github/workflows/testframework.yml
+++ b/.github/workflows/testframework.yml
@@ -17,7 +17,7 @@ on:
- '!deny.toml'
- '!docs/**'
- '!graphics/**'
- - '!gui/**'
+ - '!desktop/**'
- '!ios/**'
- '!scripts/**'
- '!.*ignore'
diff --git a/.github/workflows/translations.yml b/.github/workflows/translations.yml
index 2aacd840ec..61d2f53827 100644
--- a/.github/workflows/translations.yml
+++ b/.github/workflows/translations.yml
@@ -7,7 +7,7 @@ on:
- android/translations-converter/**
- android/lib/resource/src/**/plurals.xml
- android/lib/resource/src/**/strings.xml
- - gui/**
+ - desktop/packages/mullvad-vpn/**
- '!**/osv-scanner.toml'
workflow_dispatch:
@@ -23,12 +23,12 @@ jobs:
- name: Setup node
uses: actions/setup-node@v4
with:
- node-version-file: gui/package.json
+ node-version-file: desktop/package.json
cache: 'npm'
- cache-dependency-path: gui/package-lock.json
+ cache-dependency-path: desktop/package-lock.json
- name: Install JS dependencies
- working-directory: gui
+ working-directory: desktop
shell: bash
run: npm ci
diff --git a/.github/workflows/verify-locked-down-signatures.yml b/.github/workflows/verify-locked-down-signatures.yml
index 12d4ab3068..3d0540ec9f 100644
--- a/.github/workflows/verify-locked-down-signatures.yml
+++ b/.github/workflows/verify-locked-down-signatures.yml
@@ -11,7 +11,8 @@ on:
- test/Cargo.lock
- deny.toml
- test/deny.toml
- - gui/package-lock.json
+ - desktop/package-lock.json
+ - desktop/packages/nseventforwarder/Cargo.lock
- wireguard-go-rs/libwg/go.sum
- ci/keys/**
- ci/verify-locked-down-signatures.sh
diff --git a/BuildInstructions.md b/BuildInstructions.md
index c3431fd678..560ce9ce90 100644
--- a/BuildInstructions.md
+++ b/BuildInstructions.md
@@ -11,7 +11,7 @@ on your platform please submit an issue or a pull request.
- Get the latest **stable** Rust toolchain via [rustup.rs](https://rustup.rs/).
- You need Node.js and npm. You can find the exact versions in the `volta` section of
- `gui/package.json`. The toolchain is managed by volta.
+ `desktop/package.json`. The toolchain is managed by volta.
- Linux & macOS
@@ -186,17 +186,21 @@ To build the management interface proto files there is a script (execute it on a
ARM64 Linux):
```bash
-cd gui/scripts
-npm ci
-./build-proto.sh
+cd desktop
+npm ci -w mullvad-vpn
+npm run -w mullvad-vpn build-proto
```
-After that copy the files from `gui/src/main/management_interface/` and
-`gui/build/src/main/management_interface/` directories into a single directory, and set the value
-of `MANAGEMENT_INTERFACE_PROTO_BUILD_DIR` to that directory while running the main build.
+After that copy the files from the following directories into a single directory:
+```
+desktop/packages/mullvad-vpn/src/main/management_interface/
+desktop/packages/mullvad-vpn/build/src/main/management_interface/
+```
+Set the value of `MANAGEMENT_INTERFACE_PROTO_BUILD_DIR` to that directory while running the main
+build.
-When all is done, run the main build. Assuming that you copied the proto files into `/tmp/management_interface_proto`
-directory, the build command will look as follows:
+When all is done, run the main build. Assuming that you copied the proto files into
+`/tmp/management_interface_proto` directory, the build command will look as follows:
```bash
MANAGEMENT_INTERFACE_PROTO_BUILD_DIR=/tmp/management_interface_proto ./build.sh --dev-build
@@ -246,28 +250,28 @@ This section is for building the system service individually.
Leave out `sudo` on Windows. The daemon must run as root since it modifies the firewall and sets
up virtual network interfaces etc.
-# Building and running the GUI app
+# Building and running the desktop app
-This section is for building the GUI app individually.
+This section is for building the desktop app individually.
-1. Go to the `gui` directory
+1. Go to the `desktop` directory
```bash
- cd gui
+ cd desktop
```
1. Install all the JavaScript dependencies by running:
```bash
- npm install
+ npm install -w mullvad-vpn
```
-1. Start the GUI in development mode by running:
+1. Start the Electron app in development mode by running:
```bash
- npm run develop
+ npm run -w mullvad-vpn develop
```
If you change any javascript file while the development mode is running it will automatically
transpile and reload the file so that the changes are visible almost immediately.
-Please note that the GUI needs a running daemon to connect to in order to work. See
+Please note that the Electron app needs a running daemon to connect to in order to work. See
[Building and running mullvad-daemon](#building-and-running-mullvad-daemon) for instructions
-on how to do that before starting the GUI.
+on how to do that before starting the Electron app.
diff --git a/README.md b/README.md
index 9676940fc3..3346e35066 100644
--- a/README.md
+++ b/README.md
@@ -8,10 +8,10 @@ For more information about the service, please visit our website,
This repository contains all the source code for the
desktop and mobile versions of the app. For desktop this includes the system service/daemon
-([`mullvad-daemon`](mullvad-daemon/)), a graphical user interface ([GUI](gui/)) and a
-command line interface ([CLI](mullvad-cli/)). The Android app uses the same backing
-system service for the tunnel and security but has a dedicated frontend in [android/](android/).
-iOS consists of a completely standalone implementation that resides in [ios/](ios/).
+([`mullvad-daemon`](mullvad-daemon/)), a graphical user interface ([GUI](desktop/)) and a command
+line interface ([CLI](mullvad-cli/)). The Android app uses the same backing system service for the
+tunnel and security but has a dedicated frontend in [android/](android/). iOS consists of a
+completely standalone implementation that resides in [ios/](ios/).
## Releases
@@ -234,15 +234,15 @@ launchctl unload -w /Library/LaunchDaemons/net.mullvad.daemon.plist
launchctl load -w /Library/LaunchDaemons/net.mullvad.daemon.plist
```
-## Environment variables used by the GUI frontend
+## Environment variables used by the desktop frontend
* `MULLVAD_PATH` - Allows changing the path to the folder with the `mullvad-problem-report` tool
when running in development mode. Defaults to: `<repo>/target/debug/`.
-* `MULLVAD_DISABLE_UPDATE_NOTIFICATION` - If set to `1`, GUI notification will be disabled when
+* `MULLVAD_DISABLE_UPDATE_NOTIFICATION` - If set to `1`, notification will be disabled when
an update is available.
-## Command line tools for Electron GUI app development
+## Command line tools for Electron app development
- `$ npm run develop` - develop app with live-reload enabled
- `$ npm run lint` - lint code
@@ -266,8 +266,8 @@ If you're using GNOME, try installing one of these GNOME Shell extensions:
## Repository structure
-### Electron GUI app and electron-builder packaging assets
-- **gui/**
+### Electron app and electron-builder packaging assets
+- **desktop/packages/mullvad-vpn/**
- **assets/** - Graphical assets and stylesheets
- **src/**
- **main/**
@@ -386,10 +386,10 @@ environment variable.
| Windows | `//./pipe/Mullvad VPN` |
| Android | [`getNoBackupFilesDir()`](https://developer.android.com/reference/android/content/ContextWrapper#getNoBackupFilesDir()) |
-### GUI
+### Desktop Electron app
-The GUI has a specific settings file that is configured for each user. The path is set in the
-`gui/packages/desktop/main/gui-settings.ts` file.
+The desktop Electron app has a specific settings file that is configured for each user. The path is
+set in the `desktop/packages/mullvad-vpn/src/main/gui-settings.ts` file.
| Platform | Path |
|----------|------|
@@ -405,7 +405,7 @@ See [graphics README](graphics/README.md) for information about icons.
## Locales and translations
Instructions for how to handle locales and translations are found
-[here](./gui/locales/README.md).
+[here](./desktop/packages/mullvad-vpn/locales/README.md).
For instructions specific to the Android app, see [here](./android/README.md).
diff --git a/android/README.md b/android/README.md
index d90355374c..38997fbbc3 100644
--- a/android/README.md
+++ b/android/README.md
@@ -54,8 +54,8 @@ scripts/tidy.sh formatAndCheckDiff
```
#### macOS
-Since macOS is using a different version of `sed` running the tidy script (`scripts/tidy.sh`) will
-lead to the creation of a large number of files ending with `-e`. The recommended fix for this
+Since macOS is using a different version of `sed` running the tidy script (`scripts/tidy.sh`) will
+lead to the creation of a large number of files ending with `-e`. The recommended fix for this
issue is to install the gnu version of `sed`. This can be done by running:
`brew install gnu-sed` and then set `gnu-sed` as your default `sed`.
@@ -66,12 +66,12 @@ strict. See each `build.gradle.kts`for more information.
## Translations and localization
-See the [locale README][gui-locales-readme] for how to easily update translations. It also includes
-documentation for which phrases and terms shouldn't be translated (Do Not Translate). Also see the
-[translations converter README](translations-converter-readme) for documentation about
+See the [locale README][desktop-locales-readme] for how to easily update translations. It also
+includes documentation for which phrases and terms shouldn't be translated (Do Not Translate).
+Also see the [translations converter README](translations-converter-readme) for documentation about
the tool used to sync translations between the Android and Desktop apps.
-[gui-locales-readme]: ../gui/locales/README.md
+[desktop-locales-readme]: ../desktop/packages/mullvad-vpn/locales/README.md
[translations-converter-readme]: ./translations-converter/README.md
## Icons and assets
diff --git a/android/translations-converter/README.md b/android/translations-converter/README.md
index 5294867751..1d5c02f279 100644
--- a/android/translations-converter/README.md
+++ b/android/translations-converter/README.md
@@ -13,11 +13,11 @@ cargo run
The tool creates the appropriate localized message files and directories under the
[Android project resources](android-resources) (e.g. [values-sv/strings.xml](values-sv-example))
-for each locale it can find in the [`gui/locales` directory][gui-locales]. It will also update the
+for each locale it can find in the [`desktop/packages/mullvad-vpn/locales` directory][desktop-locales]. It will also update the
[messages.pot] template file with the string messages from the Android app for which it did not find
any translation, making it simpler to use the template for obtaining those translations.
[android-resources]: ../lib/resource/src/main/res/
-[gui-locales]: ../gui/locales/
-[messages.pot]: ../gui/locales/messages.pot
+[desktop-locales]: ../desktop/packages/mullvad-vpn/locales/
+[messages.pot]: ../desktop/packages/mullvad-vpn/locales/messages.pot
[values-sv-example]: ../lib/resource/src/main/res/values-sv/strings.xml
diff --git a/android/translations-converter/src/main.rs b/android/translations-converter/src/main.rs
index 7a340d7483..da5b6e3a27 100644
--- a/android/translations-converter/src/main.rs
+++ b/android/translations-converter/src/main.rs
@@ -79,7 +79,7 @@ fn main() {
})
.collect();
- let locale_dir = Path::new("../../gui/locales");
+ let locale_dir = Path::new("../../desktop/packages/mullvad-vpn/locales");
let locale_files = fs::read_dir(locale_dir)
.expect("Failed to open root locale directory")
.filter_map(|dir_entry_result| dir_entry_result.ok().map(|dir_entry| dir_entry.path()))
diff --git a/build.sh b/build.sh
index ea26362103..ffa371f560 100755
--- a/build.sh
+++ b/build.sh
@@ -356,7 +356,7 @@ cargo run --bin relay_list "${CARGO_ARGS[@]}" > build/relays.json
log_header "Installing JavaScript dependencies"
-pushd gui
+pushd desktop/packages/mullvad-vpn
npm ci
log_header "Packing Mullvad VPN $PRODUCT_VERSION artifact(s)"
diff --git a/building/Dockerfile b/building/Dockerfile
index 9df2f063d1..5fd58233c9 100644
--- a/building/Dockerfile
+++ b/building/Dockerfile
@@ -101,7 +101,7 @@ RUN apt-get update -y && \
ENV PATH=/root/.volta/bin:$PATH
# volta seemingly does not have a way to explicitly install the toolchain
# versions from package.json, but `node --version` triggers an install
-COPY gui/package.json .
+COPY desktop/packages/mullvad-vpn/package.json .
RUN curl https://get.volta.sh | bash && node --version && rm package.json
# === Golang ===
diff --git a/ci/buildserver-build.sh b/ci/buildserver-build.sh
index 055e3ad5be..9e63db6a3b 100755
--- a/ci/buildserver-build.sh
+++ b/ci/buildserver-build.sh
@@ -132,7 +132,8 @@ function build {
fi
mv dist/*.{deb,rpm,exe,pkg} "$artifact_dir" || return 1
- (run_in_build_env gui/scripts/build-test-executable.sh "$target" && \
+ (run_in_build_env desktop/packages/mullvad-vpn/scripts/build-test-executable.sh \
+ "$target" && \
mv "dist/app-e2e-tests-$version"* "$artifact_dir") || \
true
}
diff --git a/desktop/.gitignore b/desktop/.gitignore
new file mode 100644
index 0000000000..3c3629e647
--- /dev/null
+++ b/desktop/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/gui/eslint.config.mjs b/desktop/eslint.config.mjs
index 5aafcb4041..956904baf9 100644
--- a/gui/eslint.config.mjs
+++ b/desktop/eslint.config.mjs
@@ -1,10 +1,6 @@
import eslint from '@eslint/js';
import prettier from 'eslint-plugin-prettier/recommended';
-import react from 'eslint-plugin-react';
-import reactcompiler from 'eslint-plugin-react-compiler';
-import reactHooks from 'eslint-plugin-react-hooks';
import simpleImportSort from 'eslint-plugin-simple-import-sort';
-import globals from 'globals';
import tseslint from 'typescript-eslint';
const namingConvention = [
@@ -77,39 +73,9 @@ const memberOrdering = {
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.recommended,
- react.configs.flat.recommended,
prettier,
- { ignores: ['build/*'] },
{
- settings: {
- react: {
- createClass: 'createReactClass',
- pragma: 'React',
- version: 'detect',
- },
- },
- },
- {
- files: ['**/*'],
- ignores: ['src/renderer/**/*'],
- languageOptions: {
- globals: globals.node,
- },
- },
- {
- files: ['src/renderer/**/*'],
- languageOptions: {
- globals: globals.browser,
- },
- },
- {
- files: ['test/**/*'],
- languageOptions: {
- globals: globals.mocha,
- },
- },
- {
- files: ['src/**/*.{js,mjs,ts,tsx}'],
+ files: ['**/*.{ts,tsx}'],
languageOptions: {
parserOptions: {
parser: '@typescript-eslint/parser',
@@ -124,18 +90,20 @@ export default tseslint.config(
rules: {
'@typescript-eslint/require-await': 'error',
'@typescript-eslint/no-floating-promises': 'error',
+
+ '@typescript-eslint/no-use-before-define': 'off',
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
+ '@typescript-eslint/no-non-null-assertion': 'off',
},
},
{
files: ['**/*.{js,mjs,ts,tsx}'],
plugins: {
'simple-import-sort': simpleImportSort,
- 'react-hooks': reactHooks,
- 'react-compiler': reactcompiler,
},
rules: {
quotes: ['error', 'single', { avoidEscape: true }],
- // 'prettier/prettier': 'error',
+ 'prettier/prettier': 'error',
'@typescript-eslint/no-unused-vars': [
'error',
{ argsIgnorePattern: '^_', ignoreRestSiblings: true },
@@ -143,32 +111,9 @@ export default tseslint.config(
'@typescript-eslint/no-unused-expressions': 'error',
'@typescript-eslint/member-ordering': ['error', memberOrdering],
'no-return-await': 'error',
- 'react/jsx-no-bind': 'error',
'@typescript-eslint/naming-convention': ['error', ...namingConvention],
'@typescript-eslint/ban-ts-comment': 'error',
'simple-import-sort/imports': 'error',
-
- 'react-hooks/rules-of-hooks': 'error',
- 'react-hooks/exhaustive-deps': 'error',
- 'react-compiler/react-compiler': 'error',
-
- '@typescript-eslint/no-use-before-define': 'off',
- '@typescript-eslint/explicit-module-boundary-types': 'off',
- '@typescript-eslint/no-non-null-assertion': 'off',
- 'react/prop-types': 'off',
- 'react/react-in-jsx-scope': 'off',
- },
- },
- {
- files: ['test/**/*.spec.ts'],
- rules: {
- '@typescript-eslint/no-unused-expressions': 'off',
- },
- },
- {
- files: ['tasks/*', 'scripts/*', 'gulpfile.js', 'init.js'],
- rules: {
- '@typescript-eslint/no-require-imports': 'off',
},
},
);
diff --git a/gui/osv-scanner.toml b/desktop/osv-scanner.toml
index 3689a56c17..3689a56c17 100644
--- a/gui/osv-scanner.toml
+++ b/desktop/osv-scanner.toml
diff --git a/gui/package-lock.json b/desktop/package-lock.json
index e5c9a0294b..5f146d52b1 100644
--- a/gui/package-lock.json
+++ b/desktop/package-lock.json
@@ -1,91 +1,32 @@
{
- "name": "mullvad-vpn",
+ "name": "desktop",
"version": "0.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
- "name": "mullvad-vpn",
+ "name": "desktop",
"version": "0.0.0",
- "hasInstallScript": true,
"license": "GPL-3.0",
- "dependencies": {
- "@grpc/grpc-js": "^1.9.6",
- "argv-split": "^2.0.1",
- "gettext-parser": "^6.0.0",
- "gl-matrix": "^3.4.3",
- "google-protobuf": "^3.21.0",
- "node-gettext": "^3.0.0",
- "react": "^18.3.1",
- "react-dom": "^18.3.1",
- "react-redux": "^7.2.9",
- "react-router": "^5.3.4",
- "redux": "^4.2.0",
- "simple-plist": "^1.3.1",
- "sprintf-js": "^1.1.2",
- "styled-components": "^6.1.0"
- },
+ "workspaces": [
+ "packages/*"
+ ],
"devDependencies": {
"@eslint/js": "^9.10.0",
- "@playwright/test": "^1.41.1",
- "@types/chai": "^4.3.3",
- "@types/chai-as-promised": "^7.1.5",
- "@types/chai-spies": "^1.0.3",
"@types/eslint__js": "^8.42.3",
- "@types/gettext-parser": "^4.0.1",
- "@types/google-protobuf": "^3.15.6",
- "@types/history": "^4.7.11",
- "@types/mocha": "^10.0.0",
"@types/node": "^20.12.11",
- "@types/node-gettext": "^3.0.3",
- "@types/react": "^18.3.3",
- "@types/react-dom": "^18.3.0",
- "@types/react-router": "^5.1.19",
- "@types/sinon": "^10.0.13",
- "@types/sprintf-js": "^1.1.2",
- "@types/topojson-specification": "^1.0.2",
- "browserify": "^17.0.0",
- "chai": "^4.3.6",
- "chai-as-promised": "^7.1.1",
- "chai-spies": "^1.0.0",
- "cross-env": "^7.0.3",
- "electron": "^30.0.4",
- "electron-builder": "^24.13.3",
- "electron-devtools-installer": "^3.2.0",
"eslint": "^9.10.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.2.1",
- "eslint-plugin-react": "^7.36.1",
- "eslint-plugin-react-compiler": "^0.0.0-experimental-42acc6a-20241001",
- "eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930",
"eslint-plugin-simple-import-sort": "^12.1.1",
- "gettext-extractor": "^3.5.4",
- "globals": "^15.9.0",
- "grpc_tools_node_protoc_ts": "^5.3.2",
- "gulp": "^4.0.2",
- "gulp-inject-string": "^1.1.2",
- "gulp-sourcemaps": "^3.0.0",
- "gulp-typescript": "^6.0.0-alpha.1",
- "mocha": "^10.2.0",
- "playwright": "^1.41.1",
- "postject": "^1.0.0-alpha.6",
"prettier": "^3.3.3",
- "sinon": "^14.0.1",
"ts-node": "^10.9.2",
- "tsc-watch": "^5.0.3",
"typescript": "^5.4.5",
- "typescript-eslint": "^8.6.0",
- "vinyl-buffer": "^1.0.1",
- "vinyl-source-stream": "^2.0.0",
- "xvfb-maybe": "^0.2.1"
+ "typescript-eslint": "^8.6.0"
},
"engines": {
"node": ">=16",
"npm": ">=8.3"
- },
- "optionalDependencies": {
- "grpc-tools": "^1.12.4",
- "nseventmonitor": "^1.0.5"
}
},
"node_modules/@ampproject/remapping": {
@@ -1649,6 +1590,12 @@
"node": ">=8"
}
},
+ "node_modules/@neon-rs/load": {
+ "version": "0.1.81",
+ "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.1.81.tgz",
+ "integrity": "sha512-A6w26BOWkFNXw04nfmcC75mLiPd3HPYC/PAuNDlXswvNb/rf55qXpTqGSz2txJmc7V8UDfIE1CAq5FUjL9wOmQ==",
+ "license": "MIT"
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -10047,6 +9994,10 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "node_modules/mullvad-vpn": {
+ "resolved": "packages/mullvad-vpn",
+ "link": true
+ },
"node_modules/mute-stdout": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
@@ -10060,6 +10011,7 @@
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz",
"integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==",
+ "dev": true,
"optional": true
},
"node_modules/nanoid": {
@@ -10228,19 +10180,9 @@
"node": ">= 0.10"
}
},
- "node_modules/nseventmonitor": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nseventmonitor/-/nseventmonitor-1.0.5.tgz",
- "integrity": "sha512-CP1Qvr3yAY08o+2KpNUMjVTM6KM37sQEgRp+3KvzWCcutzwQwsUy4IkixModqgmxqB3BP281SRlizqOnf7sk0w==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "dependencies": {
- "@mapbox/node-pre-gyp": "^1.0.11",
- "nan": "^2.19.0"
- }
+ "node_modules/nseventforwarder": {
+ "resolved": "packages/nseventforwarder",
+ "link": true
},
"node_modules/number-is-nan": {
"version": "1.0.1",
@@ -14657,6 +14599,81 @@
"peerDependencies": {
"zod": "^3.18.0"
}
+ },
+ "packages/mullvad-vpn": {
+ "version": "0.0.0",
+ "hasInstallScript": true,
+ "license": "GPL-3.0",
+ "dependencies": {
+ "@grpc/grpc-js": "^1.9.6",
+ "argv-split": "^2.0.1",
+ "gettext-parser": "^6.0.0",
+ "gl-matrix": "^3.4.3",
+ "google-protobuf": "^3.21.0",
+ "node-gettext": "^3.0.0",
+ "nseventforwarder": "0.0.0",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-redux": "^7.2.9",
+ "react-router": "^5.3.4",
+ "redux": "^4.2.0",
+ "simple-plist": "^1.3.1",
+ "sprintf-js": "^1.1.2",
+ "styled-components": "^6.1.0"
+ },
+ "devDependencies": {
+ "@playwright/test": "^1.41.1",
+ "@types/chai": "^4.3.3",
+ "@types/chai-as-promised": "^7.1.5",
+ "@types/chai-spies": "^1.0.3",
+ "@types/gettext-parser": "^4.0.1",
+ "@types/google-protobuf": "^3.15.6",
+ "@types/history": "^4.7.11",
+ "@types/mocha": "^10.0.0",
+ "@types/node-gettext": "^3.0.3",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@types/react-router": "^5.1.19",
+ "@types/sinon": "^10.0.13",
+ "@types/sprintf-js": "^1.1.2",
+ "@types/topojson-specification": "^1.0.2",
+ "browserify": "^17.0.0",
+ "chai": "^4.3.6",
+ "chai-as-promised": "^7.1.1",
+ "chai-spies": "^1.0.0",
+ "cross-env": "^7.0.3",
+ "electron": "30.0.4",
+ "electron-builder": "^24.13.3",
+ "electron-devtools-installer": "^3.2.0",
+ "eslint-plugin-react": "^7.36.1",
+ "eslint-plugin-react-compiler": "^0.0.0-experimental-42acc6a-20241001",
+ "eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930",
+ "gettext-extractor": "^3.5.4",
+ "globals": "^15.9.0",
+ "grpc_tools_node_protoc_ts": "^5.3.2",
+ "gulp": "^4.0.2",
+ "gulp-inject-string": "^1.1.2",
+ "gulp-sourcemaps": "^3.0.0",
+ "gulp-typescript": "^6.0.0-alpha.1",
+ "mocha": "^10.2.0",
+ "playwright": "^1.41.1",
+ "postject": "^1.0.0-alpha.6",
+ "sinon": "^14.0.1",
+ "tsc-watch": "^5.0.3",
+ "vinyl-buffer": "^1.0.1",
+ "vinyl-source-stream": "^2.0.0",
+ "xvfb-maybe": "^0.2.1"
+ },
+ "optionalDependencies": {
+ "grpc-tools": "^1.12.4"
+ }
+ },
+ "packages/nseventforwarder": {
+ "version": "0.0.0",
+ "license": "GPL-3.0",
+ "dependencies": {
+ "@neon-rs/load": "^0.1.73"
+ }
}
},
"dependencies": {
@@ -15834,6 +15851,11 @@
}
}
},
+ "@neon-rs/load": {
+ "version": "0.1.81",
+ "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.1.81.tgz",
+ "integrity": "sha512-A6w26BOWkFNXw04nfmcC75mLiPd3HPYC/PAuNDlXswvNb/rf55qXpTqGSz2txJmc7V8UDfIE1CAq5FUjL9wOmQ=="
+ },
"@nodelib/fs.scandir": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@@ -22459,6 +22481,68 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
},
+ "mullvad-vpn": {
+ "version": "file:packages/mullvad-vpn",
+ "requires": {
+ "@grpc/grpc-js": "^1.9.6",
+ "@playwright/test": "^1.41.1",
+ "@types/chai": "^4.3.3",
+ "@types/chai-as-promised": "^7.1.5",
+ "@types/chai-spies": "^1.0.3",
+ "@types/gettext-parser": "^4.0.1",
+ "@types/google-protobuf": "^3.15.6",
+ "@types/history": "^4.7.11",
+ "@types/mocha": "^10.0.0",
+ "@types/node-gettext": "^3.0.3",
+ "@types/react": "^18.3.3",
+ "@types/react-dom": "^18.3.0",
+ "@types/react-router": "^5.1.19",
+ "@types/sinon": "^10.0.13",
+ "@types/sprintf-js": "^1.1.2",
+ "@types/topojson-specification": "^1.0.2",
+ "argv-split": "^2.0.1",
+ "browserify": "^17.0.0",
+ "chai": "^4.3.6",
+ "chai-as-promised": "^7.1.1",
+ "chai-spies": "^1.0.0",
+ "cross-env": "^7.0.3",
+ "electron": "30.0.4",
+ "electron-builder": "^24.13.3",
+ "electron-devtools-installer": "^3.2.0",
+ "eslint-plugin-react": "^7.36.1",
+ "eslint-plugin-react-compiler": "^0.0.0-experimental-42acc6a-20241001",
+ "eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930",
+ "gettext-extractor": "^3.5.4",
+ "gettext-parser": "^6.0.0",
+ "gl-matrix": "^3.4.3",
+ "globals": "^15.9.0",
+ "google-protobuf": "^3.21.0",
+ "grpc_tools_node_protoc_ts": "^5.3.2",
+ "grpc-tools": "^1.12.4",
+ "gulp": "^4.0.2",
+ "gulp-inject-string": "^1.1.2",
+ "gulp-sourcemaps": "^3.0.0",
+ "gulp-typescript": "^6.0.0-alpha.1",
+ "mocha": "^10.2.0",
+ "node-gettext": "^3.0.0",
+ "nseventforwarder": "0.0.0",
+ "playwright": "^1.41.1",
+ "postject": "^1.0.0-alpha.6",
+ "react": "^18.3.1",
+ "react-dom": "^18.3.1",
+ "react-redux": "^7.2.9",
+ "react-router": "^5.3.4",
+ "redux": "^4.2.0",
+ "simple-plist": "^1.3.1",
+ "sinon": "^14.0.1",
+ "sprintf-js": "^1.1.2",
+ "styled-components": "^6.1.0",
+ "tsc-watch": "^5.0.3",
+ "vinyl-buffer": "^1.0.1",
+ "vinyl-source-stream": "^2.0.0",
+ "xvfb-maybe": "^0.2.1"
+ }
+ },
"mute-stdout": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz",
@@ -22469,6 +22553,7 @@
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz",
"integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==",
+ "dev": true,
"optional": true
},
"nanoid": {
@@ -22604,14 +22689,10 @@
"once": "^1.3.2"
}
},
- "nseventmonitor": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/nseventmonitor/-/nseventmonitor-1.0.5.tgz",
- "integrity": "sha512-CP1Qvr3yAY08o+2KpNUMjVTM6KM37sQEgRp+3KvzWCcutzwQwsUy4IkixModqgmxqB3BP281SRlizqOnf7sk0w==",
- "optional": true,
+ "nseventforwarder": {
+ "version": "file:packages/nseventforwarder",
"requires": {
- "@mapbox/node-pre-gyp": "^1.0.11",
- "nan": "^2.19.0"
+ "@neon-rs/load": "^0.1.73"
}
},
"number-is-nan": {
diff --git a/desktop/package.json b/desktop/package.json
new file mode 100644
index 0000000000..7e4284696e
--- /dev/null
+++ b/desktop/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "desktop",
+ "version": "0.0.0",
+ "private": true,
+ "workspaces": [
+ "packages/*"
+ ],
+ "author": {
+ "name": "Mullvad VPN",
+ "email": "support@mullvadvpn.net"
+ },
+ "repository": "https://github.com/mullvad/mullvadvpn-app",
+ "license": "GPL-3.0",
+ "scripts": {
+ "lint": "eslint --ignore-pattern packages/ . && npm run lint --workspaces --if-present",
+ "lint-fix": "eslint --fix --ignore-pattern packages/ . && npm run lint-fix --workspaces --if-present",
+ "test": "npm run test --workspaces --if-present"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.10.0",
+ "@types/eslint__js": "^8.42.3",
+ "@types/node": "^20.12.11",
+ "eslint": "^9.10.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-simple-import-sort": "^12.1.1",
+ "prettier": "^3.3.3",
+ "ts-node": "^10.9.2",
+ "typescript": "^5.4.5",
+ "typescript-eslint": "^8.6.0"
+ },
+ "engines": {
+ "node": ">=16",
+ "npm": ">=8.3"
+ },
+ "volta": {
+ "node": "20.13.0",
+ "npm": "9.9.0"
+ }
+}
diff --git a/gui/.gitignore b/desktop/packages/mullvad-vpn/.gitignore
index 933e161a70..933e161a70 100644
--- a/gui/.gitignore
+++ b/desktop/packages/mullvad-vpn/.gitignore
diff --git a/gui/README.md b/desktop/packages/mullvad-vpn/README.md
index 224f8ed54f..224f8ed54f 100644
--- a/gui/README.md
+++ b/desktop/packages/mullvad-vpn/README.md
diff --git a/gui/assets/css/fonts.css b/desktop/packages/mullvad-vpn/assets/css/fonts.css
index 1bcfd99205..1bcfd99205 100644
--- a/gui/assets/css/fonts.css
+++ b/desktop/packages/mullvad-vpn/assets/css/fonts.css
diff --git a/gui/assets/css/global.css b/desktop/packages/mullvad-vpn/assets/css/global.css
index dfa159e020..dfa159e020 100644
--- a/gui/assets/css/global.css
+++ b/desktop/packages/mullvad-vpn/assets/css/global.css
diff --git a/gui/assets/css/reset.css b/desktop/packages/mullvad-vpn/assets/css/reset.css
index d971da6765..d971da6765 100644
--- a/gui/assets/css/reset.css
+++ b/desktop/packages/mullvad-vpn/assets/css/reset.css
diff --git a/gui/assets/css/style.css b/desktop/packages/mullvad-vpn/assets/css/style.css
index 1a5a94da05..1a5a94da05 100644
--- a/gui/assets/css/style.css
+++ b/desktop/packages/mullvad-vpn/assets/css/style.css
diff --git a/gui/assets/fonts/NotoSansMyanmar-Bold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/NotoSansMyanmar-Bold.ttf
index 1a702fe3ed..1a702fe3ed 100644
--- a/gui/assets/fonts/NotoSansMyanmar-Bold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/NotoSansMyanmar-Bold.ttf
Binary files differ
diff --git a/gui/assets/fonts/NotoSansThai-Bold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/NotoSansThai-Bold.ttf
index ae0881254e..ae0881254e 100644
--- a/gui/assets/fonts/NotoSansThai-Bold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/NotoSansThai-Bold.ttf
Binary files differ
diff --git a/gui/assets/fonts/OpenSans-Bold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Bold.ttf
index 4d8f3e5b90..4d8f3e5b90 100644
--- a/gui/assets/fonts/OpenSans-Bold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Bold.ttf
Binary files differ
diff --git a/gui/assets/fonts/OpenSans-Regular.ttf b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Regular.ttf
index 3a29f26497..3a29f26497 100644
--- a/gui/assets/fonts/OpenSans-Regular.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Regular.ttf
Binary files differ
diff --git a/gui/assets/fonts/OpenSans-Semibold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Semibold.ttf
index 1a7679e394..1a7679e394 100644
--- a/gui/assets/fonts/OpenSans-Semibold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/OpenSans-Semibold.ttf
Binary files differ
diff --git a/gui/assets/fonts/SourceSansPro-Bold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-Bold.ttf
index 1f430e2383..1f430e2383 100644
--- a/gui/assets/fonts/SourceSansPro-Bold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-Bold.ttf
Binary files differ
diff --git a/gui/assets/fonts/SourceSansPro-SemiBold.ttf b/desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-SemiBold.ttf
index 2908e0d782..2908e0d782 100644
--- a/gui/assets/fonts/SourceSansPro-SemiBold.ttf
+++ b/desktop/packages/mullvad-vpn/assets/fonts/SourceSansPro-SemiBold.ttf
Binary files differ
diff --git a/gui/assets/images/app-header-backdrop.svg b/desktop/packages/mullvad-vpn/assets/images/app-header-backdrop.svg
index 4c811518bf..4c811518bf 100644
--- a/gui/assets/images/app-header-backdrop.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/app-header-backdrop.svg
diff --git a/gui/assets/images/app-triangle.svg b/desktop/packages/mullvad-vpn/assets/images/app-triangle.svg
index e2f7ca044b..e2f7ca044b 100644
--- a/gui/assets/images/app-triangle.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/app-triangle.svg
diff --git a/gui/assets/images/daita-off-illustration.svg b/desktop/packages/mullvad-vpn/assets/images/daita-off-illustration.svg
index a4686cdf59..a4686cdf59 100644
--- a/gui/assets/images/daita-off-illustration.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/daita-off-illustration.svg
diff --git a/gui/assets/images/daita-on-illustration.svg b/desktop/packages/mullvad-vpn/assets/images/daita-on-illustration.svg
index 4321d00cc8..4321d00cc8 100644
--- a/gui/assets/images/daita-on-illustration.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/daita-on-illustration.svg
diff --git a/gui/assets/images/icon-account.svg b/desktop/packages/mullvad-vpn/assets/images/icon-account.svg
index 0c6b3faaf1..0c6b3faaf1 100644
--- a/gui/assets/images/icon-account.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-account.svg
diff --git a/gui/assets/images/icon-add.svg b/desktop/packages/mullvad-vpn/assets/images/icon-add.svg
index 331bf4d273..331bf4d273 100644
--- a/gui/assets/images/icon-add.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-add.svg
diff --git a/gui/assets/images/icon-alert.svg b/desktop/packages/mullvad-vpn/assets/images/icon-alert.svg
index c11507a4a5..c11507a4a5 100644
--- a/gui/assets/images/icon-alert.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-alert.svg
diff --git a/gui/assets/images/icon-arrow.svg b/desktop/packages/mullvad-vpn/assets/images/icon-arrow.svg
index 96f1356fbe..96f1356fbe 100755
--- a/gui/assets/images/icon-arrow.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-arrow.svg
diff --git a/gui/assets/images/icon-back.svg b/desktop/packages/mullvad-vpn/assets/images/icon-back.svg
index fabf78530d..fabf78530d 100644
--- a/gui/assets/images/icon-back.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-back.svg
diff --git a/gui/assets/images/icon-check.svg b/desktop/packages/mullvad-vpn/assets/images/icon-check.svg
index 2289a19807..2289a19807 100644
--- a/gui/assets/images/icon-check.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-check.svg
diff --git a/gui/assets/images/icon-checkmark.svg b/desktop/packages/mullvad-vpn/assets/images/icon-checkmark.svg
index 67773298f8..67773298f8 100644
--- a/gui/assets/images/icon-checkmark.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-checkmark.svg
diff --git a/gui/assets/images/icon-chevron-down.svg b/desktop/packages/mullvad-vpn/assets/images/icon-chevron-down.svg
index e1e7af1104..e1e7af1104 100644
--- a/gui/assets/images/icon-chevron-down.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-chevron-down.svg
diff --git a/gui/assets/images/icon-chevron-up.svg b/desktop/packages/mullvad-vpn/assets/images/icon-chevron-up.svg
index 84d8b56350..84d8b56350 100644
--- a/gui/assets/images/icon-chevron-up.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-chevron-up.svg
diff --git a/gui/assets/images/icon-chevron.svg b/desktop/packages/mullvad-vpn/assets/images/icon-chevron.svg
index 923532cd28..923532cd28 100644
--- a/gui/assets/images/icon-chevron.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-chevron.svg
diff --git a/gui/assets/images/icon-close-down.svg b/desktop/packages/mullvad-vpn/assets/images/icon-close-down.svg
index e81ded8acf..e81ded8acf 100644
--- a/gui/assets/images/icon-close-down.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-close-down.svg
diff --git a/gui/assets/images/icon-close-sml.svg b/desktop/packages/mullvad-vpn/assets/images/icon-close-sml.svg
index a379068d03..a379068d03 100644
--- a/gui/assets/images/icon-close-sml.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-close-sml.svg
diff --git a/gui/assets/images/icon-close.svg b/desktop/packages/mullvad-vpn/assets/images/icon-close.svg
index 334ccb4ad4..334ccb4ad4 100644
--- a/gui/assets/images/icon-close.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-close.svg
diff --git a/gui/assets/images/icon-copy.svg b/desktop/packages/mullvad-vpn/assets/images/icon-copy.svg
index 6e1cf4a28d..6e1cf4a28d 100644
--- a/gui/assets/images/icon-copy.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-copy.svg
diff --git a/gui/assets/images/icon-cross.svg b/desktop/packages/mullvad-vpn/assets/images/icon-cross.svg
index 0ac8215f62..0ac8215f62 100644
--- a/gui/assets/images/icon-cross.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-cross.svg
diff --git a/gui/assets/images/icon-edit.svg b/desktop/packages/mullvad-vpn/assets/images/icon-edit.svg
index 48f9f4b7ee..48f9f4b7ee 100644
--- a/gui/assets/images/icon-edit.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-edit.svg
diff --git a/gui/assets/images/icon-extLink.svg b/desktop/packages/mullvad-vpn/assets/images/icon-extLink.svg
index bed3cb37b3..bed3cb37b3 100644
--- a/gui/assets/images/icon-extLink.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-extLink.svg
diff --git a/gui/assets/images/icon-fail.svg b/desktop/packages/mullvad-vpn/assets/images/icon-fail.svg
index 544d0d4ed7..544d0d4ed7 100755
--- a/gui/assets/images/icon-fail.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-fail.svg
diff --git a/gui/assets/images/icon-fastest.svg b/desktop/packages/mullvad-vpn/assets/images/icon-fastest.svg
index 4c915da6d6..4c915da6d6 100755
--- a/gui/assets/images/icon-fastest.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-fastest.svg
diff --git a/gui/assets/images/icon-filter-round.svg b/desktop/packages/mullvad-vpn/assets/images/icon-filter-round.svg
index 9df0dd5ccc..9df0dd5ccc 100644
--- a/gui/assets/images/icon-filter-round.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-filter-round.svg
diff --git a/gui/assets/images/icon-filter.svg b/desktop/packages/mullvad-vpn/assets/images/icon-filter.svg
index da766cb06c..da766cb06c 100644
--- a/gui/assets/images/icon-filter.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-filter.svg
diff --git a/gui/assets/images/icon-info.svg b/desktop/packages/mullvad-vpn/assets/images/icon-info.svg
index cb2a243e78..cb2a243e78 100644
--- a/gui/assets/images/icon-info.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-info.svg
diff --git a/gui/assets/images/icon-language.svg b/desktop/packages/mullvad-vpn/assets/images/icon-language.svg
index 8d3c8ab1a1..8d3c8ab1a1 100644
--- a/gui/assets/images/icon-language.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-language.svg
diff --git a/gui/assets/images/icon-more.svg b/desktop/packages/mullvad-vpn/assets/images/icon-more.svg
index bee80a60d4..bee80a60d4 100644
--- a/gui/assets/images/icon-more.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-more.svg
diff --git a/gui/assets/images/icon-notification.png b/desktop/packages/mullvad-vpn/assets/images/icon-notification.png
index a220894700..a220894700 100644
--- a/gui/assets/images/icon-notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-notification.png
Binary files differ
diff --git a/gui/assets/images/icon-obscure.svg b/desktop/packages/mullvad-vpn/assets/images/icon-obscure.svg
index 23f4044080..23f4044080 100644
--- a/gui/assets/images/icon-obscure.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-obscure.svg
diff --git a/gui/assets/images/icon-reload.svg b/desktop/packages/mullvad-vpn/assets/images/icon-reload.svg
index 6d443ac8b4..6d443ac8b4 100644
--- a/gui/assets/images/icon-reload.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-reload.svg
diff --git a/gui/assets/images/icon-remove.svg b/desktop/packages/mullvad-vpn/assets/images/icon-remove.svg
index 17e3a5130c..17e3a5130c 100644
--- a/gui/assets/images/icon-remove.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-remove.svg
diff --git a/gui/assets/images/icon-search.svg b/desktop/packages/mullvad-vpn/assets/images/icon-search.svg
index 8c54192c53..8c54192c53 100644
--- a/gui/assets/images/icon-search.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-search.svg
diff --git a/gui/assets/images/icon-settings.svg b/desktop/packages/mullvad-vpn/assets/images/icon-settings.svg
index 392841687b..392841687b 100755
--- a/gui/assets/images/icon-settings.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-settings.svg
diff --git a/gui/assets/images/icon-spinner.svg b/desktop/packages/mullvad-vpn/assets/images/icon-spinner.svg
index 580d56a349..580d56a349 100644
--- a/gui/assets/images/icon-spinner.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-spinner.svg
diff --git a/gui/assets/images/icon-success.svg b/desktop/packages/mullvad-vpn/assets/images/icon-success.svg
index 5a9e943406..5a9e943406 100755
--- a/gui/assets/images/icon-success.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-success.svg
diff --git a/gui/assets/images/icon-tick.svg b/desktop/packages/mullvad-vpn/assets/images/icon-tick.svg
index 16c701574a..16c701574a 100755
--- a/gui/assets/images/icon-tick.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-tick.svg
diff --git a/gui/assets/images/icon-unobscure.svg b/desktop/packages/mullvad-vpn/assets/images/icon-unobscure.svg
index cef3c44ea2..cef3c44ea2 100644
--- a/gui/assets/images/icon-unobscure.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/icon-unobscure.svg
diff --git a/gui/assets/images/location-marker-secure.svg b/desktop/packages/mullvad-vpn/assets/images/location-marker-secure.svg
index 087fe5d0d4..087fe5d0d4 100755
--- a/gui/assets/images/location-marker-secure.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/location-marker-secure.svg
diff --git a/gui/assets/images/location-marker-unsecure.svg b/desktop/packages/mullvad-vpn/assets/images/location-marker-unsecure.svg
index c46bdde2d7..c46bdde2d7 100755
--- a/gui/assets/images/location-marker-unsecure.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/location-marker-unsecure.svg
diff --git a/gui/assets/images/logo-icon.svg b/desktop/packages/mullvad-vpn/assets/images/logo-icon.svg
index 9df70ac22b..9df70ac22b 100644
--- a/gui/assets/images/logo-icon.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/logo-icon.svg
diff --git a/gui/assets/images/logo-text.svg b/desktop/packages/mullvad-vpn/assets/images/logo-text.svg
index c3296186c2..c3296186c2 100644
--- a/gui/assets/images/logo-text.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/logo-text.svg
diff --git a/gui/assets/images/menubar-icons/README.md b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/README.md
index 818d0b6029..ca8b2eee48 100644
--- a/gui/assets/images/menubar-icons/README.md
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/README.md
@@ -4,8 +4,8 @@ This directory contains the images for the menubar/traybar. The content consists
manually.
## Build script
-The png/ico files are generated using the script `gui/scripts/build-menubar-icons.sh` which can be
-run from the `gui`-directory using
+The png/ico files are generated using the script `../../scripts/build-menubar-icons.sh` which can be
+run from the `desktop/packages/mullvad-vpn`-directory using
```sh
./scripts/build-menubar-icons.sh
```
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1.png
index 1faa35e191..1faa35e191 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10.png
index 37dbb12519..37dbb12519 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10@2x.png
index d69770c94d..d69770c94d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template.png
index b33a43056a..b33a43056a 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template@2x.png
index f9f2288ed2..f9f2288ed2 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification.png
index 1f2bcb2f95..1f2bcb2f95 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification@2x.png
index 254531a6a2..254531a6a2 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png
index 5a44eae958..5a44eae958 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png
index 083c14c6e4..083c14c6e4 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-10_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1@2x.png
index d2e8bf02fb..d2e8bf02fb 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template.png
index 008321b4be..008321b4be 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template@2x.png
index 33cd60cf0b..33cd60cf0b 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification.png
index 7f229841e7..7f229841e7 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification@2x.png
index 41ad2d4d4e..41ad2d4d4e 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png
index b3afb3e70b..b3afb3e70b 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png
index 62e5b60ebc..62e5b60ebc 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-1_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2.png
index 7f689dc3e9..7f689dc3e9 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2@2x.png
index 0c0e66d87f..0c0e66d87f 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template.png
index 1322544ae5..1322544ae5 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template@2x.png
index 9acd89ecf1..9acd89ecf1 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification.png
index 14ce173d28..14ce173d28 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification@2x.png
index 587431daf1..587431daf1 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png
index 8e0925ebd6..8e0925ebd6 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png
index 3ade746899..3ade746899 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-2_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3.png
index b66b83c760..b66b83c760 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3@2x.png
index 38c1a345a0..38c1a345a0 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template.png
index 85b7fc25d0..85b7fc25d0 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template@2x.png
index bb98981a45..bb98981a45 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification.png
index b459ff77b6..b459ff77b6 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification@2x.png
index 57c5f115b7..57c5f115b7 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png
index aeaca43d3d..aeaca43d3d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png
index 08ca473c2d..08ca473c2d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-3_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4.png
index aa6f643daa..aa6f643daa 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4@2x.png
index e9c28f662f..e9c28f662f 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template.png
index 51cbf5c043..51cbf5c043 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template@2x.png
index 5c5fe89350..5c5fe89350 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification.png
index 5c6f05ee59..5c6f05ee59 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification@2x.png
index c89fe28e9f..c89fe28e9f 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png
index d9de6ef087..d9de6ef087 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png
index ea046f7e54..ea046f7e54 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-4_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5.png
index 892d3adcdf..892d3adcdf 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5@2x.png
index 4875f1ff15..4875f1ff15 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template.png
index 1feae49254..1feae49254 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template@2x.png
index 41e6a2a68e..41e6a2a68e 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification.png
index f800abb54d..f800abb54d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification@2x.png
index 32ef4bf0a0..32ef4bf0a0 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png
index ce385022b0..ce385022b0 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png
index 563180ee15..563180ee15 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-5_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6.png
index 5f6d294897..5f6d294897 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6@2x.png
index 704a4e7ff8..704a4e7ff8 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template.png
index a13cdb5f53..a13cdb5f53 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template@2x.png
index 7bd0e497cf..7bd0e497cf 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification.png
index ea9164038c..ea9164038c 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification@2x.png
index 4bc59ad1c5..4bc59ad1c5 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png
index cbb45c518c..cbb45c518c 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png
index 741401e26b..741401e26b 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-6_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7.png
index ddffe4ef5f..ddffe4ef5f 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7@2x.png
index 6d9b232dcc..6d9b232dcc 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template.png
index 9faa2a0d42..9faa2a0d42 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template@2x.png
index 62c3a652ab..62c3a652ab 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification.png
index d50cf55f07..d50cf55f07 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification@2x.png
index 2bf05e2f90..2bf05e2f90 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png
index cc37108816..cc37108816 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png
index 6fba7079cc..6fba7079cc 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-7_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8.png
index abca663adb..abca663adb 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8@2x.png
index 287c891519..287c891519 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template.png
index 408378fc43..408378fc43 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template@2x.png
index 7f3b26dc48..7f3b26dc48 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification.png
index df0ed069ee..df0ed069ee 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification@2x.png
index 6f68f85546..6f68f85546 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png
index 821fe6ec70..821fe6ec70 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png
index 86e1083908..86e1083908 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-8_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9.png
index dc0639a60e..dc0639a60e 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9@2x.png
index 3101843934..3101843934 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9Template.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template.png
index 6a6b67f711..6a6b67f711 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9Template.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9Template@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template@2x.png
index 136188433d..136188433d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9Template@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9Template@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification.png
index 84fe22dc4b..84fe22dc4b 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9_notification@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification@2x.png
index fcc94e2a0d..fcc94e2a0d 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9_notification@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notification@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png
index e956a58116..e956a58116 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png
index 4a937ba6be..4a937ba6be 100644
--- a/gui/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/darwin/lock-9_notificationTemplate@2x.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-1.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1.png
index 2abdf94db1..2abdf94db1 100644
--- a/gui/assets/images/menubar-icons/linux/lock-1.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-10.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10.png
index 6d84a36af5..6d84a36af5 100644
--- a/gui/assets/images/menubar-icons/linux/lock-10.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-10_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_notification.png
index a2f9b27811..a2f9b27811 100644
--- a/gui/assets/images/menubar-icons/linux/lock-10_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-10_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white.png
index 05a3d46400..05a3d46400 100644
--- a/gui/assets/images/menubar-icons/linux/lock-10_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-10_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white_notification.png
index d3bdcf701d..d3bdcf701d 100644
--- a/gui/assets/images/menubar-icons/linux/lock-10_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-10_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-1_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_notification.png
index 6d5d93ff82..6d5d93ff82 100644
--- a/gui/assets/images/menubar-icons/linux/lock-1_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-1_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white.png
index dab3a73af4..dab3a73af4 100644
--- a/gui/assets/images/menubar-icons/linux/lock-1_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-1_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white_notification.png
index beeedff7db..beeedff7db 100644
--- a/gui/assets/images/menubar-icons/linux/lock-1_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-1_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-2.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2.png
index 8cc2ef4ffb..8cc2ef4ffb 100644
--- a/gui/assets/images/menubar-icons/linux/lock-2.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-2_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_notification.png
index 97bd0d0459..97bd0d0459 100644
--- a/gui/assets/images/menubar-icons/linux/lock-2_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-2_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white.png
index 92a5c8adbd..92a5c8adbd 100644
--- a/gui/assets/images/menubar-icons/linux/lock-2_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-2_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white_notification.png
index c016e13535..c016e13535 100644
--- a/gui/assets/images/menubar-icons/linux/lock-2_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-2_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-3.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3.png
index 3cb3b7aaac..3cb3b7aaac 100644
--- a/gui/assets/images/menubar-icons/linux/lock-3.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-3_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_notification.png
index bb2a5d95f4..bb2a5d95f4 100644
--- a/gui/assets/images/menubar-icons/linux/lock-3_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-3_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white.png
index 661fec0e6b..661fec0e6b 100644
--- a/gui/assets/images/menubar-icons/linux/lock-3_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-3_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white_notification.png
index b09101008a..b09101008a 100644
--- a/gui/assets/images/menubar-icons/linux/lock-3_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-3_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-4.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4.png
index 726d161a63..726d161a63 100644
--- a/gui/assets/images/menubar-icons/linux/lock-4.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-4_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_notification.png
index 87b00973ad..87b00973ad 100644
--- a/gui/assets/images/menubar-icons/linux/lock-4_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-4_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white.png
index e7f4a32ed8..e7f4a32ed8 100644
--- a/gui/assets/images/menubar-icons/linux/lock-4_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-4_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white_notification.png
index 718b35257b..718b35257b 100644
--- a/gui/assets/images/menubar-icons/linux/lock-4_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-4_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-5.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5.png
index 33af30e754..33af30e754 100644
--- a/gui/assets/images/menubar-icons/linux/lock-5.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-5_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_notification.png
index 94ccd720e9..94ccd720e9 100644
--- a/gui/assets/images/menubar-icons/linux/lock-5_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-5_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white.png
index a947018533..a947018533 100644
--- a/gui/assets/images/menubar-icons/linux/lock-5_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-5_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white_notification.png
index de097f21b1..de097f21b1 100644
--- a/gui/assets/images/menubar-icons/linux/lock-5_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-5_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-6.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6.png
index b6a67f5802..b6a67f5802 100644
--- a/gui/assets/images/menubar-icons/linux/lock-6.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-6_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_notification.png
index 419c0c3506..419c0c3506 100644
--- a/gui/assets/images/menubar-icons/linux/lock-6_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-6_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white.png
index 211dcbff00..211dcbff00 100644
--- a/gui/assets/images/menubar-icons/linux/lock-6_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-6_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white_notification.png
index 74992c124e..74992c124e 100644
--- a/gui/assets/images/menubar-icons/linux/lock-6_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-6_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-7.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7.png
index 156e6a248c..156e6a248c 100644
--- a/gui/assets/images/menubar-icons/linux/lock-7.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-7_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_notification.png
index c1b42201bc..c1b42201bc 100644
--- a/gui/assets/images/menubar-icons/linux/lock-7_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-7_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white.png
index 4005f35872..4005f35872 100644
--- a/gui/assets/images/menubar-icons/linux/lock-7_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-7_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white_notification.png
index 9d6a6c26db..9d6a6c26db 100644
--- a/gui/assets/images/menubar-icons/linux/lock-7_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-7_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-8.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8.png
index 73ce51db8f..73ce51db8f 100644
--- a/gui/assets/images/menubar-icons/linux/lock-8.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-8_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_notification.png
index 9c1663e8ef..9c1663e8ef 100644
--- a/gui/assets/images/menubar-icons/linux/lock-8_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-8_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white.png
index f4ecc9c739..f4ecc9c739 100644
--- a/gui/assets/images/menubar-icons/linux/lock-8_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-8_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white_notification.png
index c7f3981a15..c7f3981a15 100644
--- a/gui/assets/images/menubar-icons/linux/lock-8_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-8_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-9.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9.png
index c6a6314d1f..c6a6314d1f 100644
--- a/gui/assets/images/menubar-icons/linux/lock-9.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-9_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_notification.png
index fb01498584..fb01498584 100644
--- a/gui/assets/images/menubar-icons/linux/lock-9_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-9_white.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white.png
index aef18b9c44..aef18b9c44 100644
--- a/gui/assets/images/menubar-icons/linux/lock-9_white.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/linux/lock-9_white_notification.png b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white_notification.png
index bd9a7e4791..bd9a7e4791 100644
--- a/gui/assets/images/menubar-icons/linux/lock-9_white_notification.png
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/linux/lock-9_white_notification.png
Binary files differ
diff --git a/gui/assets/images/menubar-icons/svg/lock-1.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-1.svg
index 7c94a9fb63..7c94a9fb63 100644
--- a/gui/assets/images/menubar-icons/svg/lock-1.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-1.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-10.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10.svg
index 4ef080db45..4ef080db45 100644
--- a/gui/assets/images/menubar-icons/svg/lock-10.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-10_mono.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10_mono.svg
index 045e06d770..045e06d770 100644
--- a/gui/assets/images/menubar-icons/svg/lock-10_mono.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-10_mono.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-2.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-2.svg
index dd558c319e..dd558c319e 100644
--- a/gui/assets/images/menubar-icons/svg/lock-2.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-2.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-3.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-3.svg
index 16f1a9bc07..16f1a9bc07 100644
--- a/gui/assets/images/menubar-icons/svg/lock-3.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-3.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-4.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-4.svg
index 75f736b495..75f736b495 100644
--- a/gui/assets/images/menubar-icons/svg/lock-4.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-4.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-5.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-5.svg
index 63c554275d..63c554275d 100644
--- a/gui/assets/images/menubar-icons/svg/lock-5.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-5.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-6.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-6.svg
index 298fd30a3b..298fd30a3b 100644
--- a/gui/assets/images/menubar-icons/svg/lock-6.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-6.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-7.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-7.svg
index 2dd85296e5..2dd85296e5 100644
--- a/gui/assets/images/menubar-icons/svg/lock-7.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-7.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-8.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-8.svg
index 338b0f3b02..338b0f3b02 100644
--- a/gui/assets/images/menubar-icons/svg/lock-8.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-8.svg
diff --git a/gui/assets/images/menubar-icons/svg/lock-9.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-9.svg
index 12976ce500..12976ce500 100644
--- a/gui/assets/images/menubar-icons/svg/lock-9.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/lock-9.svg
diff --git a/gui/assets/images/menubar-icons/svg/notification.svg b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/notification.svg
index bde33010e2..bde33010e2 100644
--- a/gui/assets/images/menubar-icons/svg/notification.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/svg/notification.svg
diff --git a/gui/assets/images/menubar-icons/win32/lock-1.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1.ico
index 0c3677f6d9..0c3677f6d9 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10.ico
index 3012d5e461..3012d5e461 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black.ico
index c5f295c5eb..c5f295c5eb 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black_notification.ico
index bf28e3e49a..bf28e3e49a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_notification.ico
index d6ae112a0a..d6ae112a0a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white.ico
index f7f5d420d2..f7f5d420d2 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-10_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white_notification.ico
index bba0cd4542..bba0cd4542 100644
--- a/gui/assets/images/menubar-icons/win32/lock-10_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-10_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-1_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black.ico
index e2c708789b..e2c708789b 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-1_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black_notification.ico
index fb41a1eef0..fb41a1eef0 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-1_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_notification.ico
index c44bef9934..c44bef9934 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-1_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white.ico
index c2732a3d37..c2732a3d37 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-1_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white_notification.ico
index b8dfce83fc..b8dfce83fc 100644
--- a/gui/assets/images/menubar-icons/win32/lock-1_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-1_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2.ico
index 0f947e3a91..0f947e3a91 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black.ico
index 27da63bf6a..27da63bf6a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black_notification.ico
index ae2e60fe36..ae2e60fe36 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_notification.ico
index 12d3479faa..12d3479faa 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white.ico
index 357cbcd965..357cbcd965 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-2_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white_notification.ico
index 3e8465c82e..3e8465c82e 100644
--- a/gui/assets/images/menubar-icons/win32/lock-2_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-2_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3.ico
index 322f2d35f8..322f2d35f8 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black.ico
index c691c9b60c..c691c9b60c 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black_notification.ico
index b7149c73b6..b7149c73b6 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_notification.ico
index 30d5386499..30d5386499 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white.ico
index f779edd521..f779edd521 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-3_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white_notification.ico
index 91340bff46..91340bff46 100644
--- a/gui/assets/images/menubar-icons/win32/lock-3_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-3_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4.ico
index 9830776eb7..9830776eb7 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black.ico
index 60794aab9b..60794aab9b 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black_notification.ico
index 6f0b4e5fa1..6f0b4e5fa1 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_notification.ico
index 8fdd8530ae..8fdd8530ae 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white.ico
index f7501a290c..f7501a290c 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-4_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white_notification.ico
index fa6b0a71dd..fa6b0a71dd 100644
--- a/gui/assets/images/menubar-icons/win32/lock-4_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-4_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5.ico
index c49493290f..c49493290f 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black.ico
index 57bdfa833e..57bdfa833e 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black_notification.ico
index 22e104d264..22e104d264 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_notification.ico
index 34010156fe..34010156fe 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white.ico
index 13d58f0880..13d58f0880 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-5_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white_notification.ico
index 71f9374048..71f9374048 100644
--- a/gui/assets/images/menubar-icons/win32/lock-5_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-5_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6.ico
index fdedcf893a..fdedcf893a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black.ico
index 4b1558701d..4b1558701d 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black_notification.ico
index 1531aafe17..1531aafe17 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_notification.ico
index 4f086f7023..4f086f7023 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white.ico
index 128d68ff29..128d68ff29 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-6_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white_notification.ico
index 600fbba1a6..600fbba1a6 100644
--- a/gui/assets/images/menubar-icons/win32/lock-6_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-6_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7.ico
index 064459b9cc..064459b9cc 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black.ico
index 8c53c73e49..8c53c73e49 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black_notification.ico
index 430b7107e2..430b7107e2 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_notification.ico
index 80dcb40a06..80dcb40a06 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white.ico
index dccade1bfc..dccade1bfc 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-7_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white_notification.ico
index 24436e2bc2..24436e2bc2 100644
--- a/gui/assets/images/menubar-icons/win32/lock-7_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-7_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8.ico
index 9499b029ec..9499b029ec 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black.ico
index 0c6ef7abb3..0c6ef7abb3 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black_notification.ico
index 3c8342c727..3c8342c727 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_notification.ico
index 0f1cd8834c..0f1cd8834c 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white.ico
index 5bc6c25998..5bc6c25998 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-8_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white_notification.ico
index b85a341ee9..b85a341ee9 100644
--- a/gui/assets/images/menubar-icons/win32/lock-8_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-8_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9.ico
index 68aac8644c..68aac8644c 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9_black.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black.ico
index 9a37e19034..9a37e19034 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9_black.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9_black_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black_notification.ico
index 53fe041f73..53fe041f73 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9_black_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_black_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_notification.ico
index a5df31390a..a5df31390a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_notification.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9_white.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white.ico
index ba112f3a4a..ba112f3a4a 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9_white.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white.ico
Binary files differ
diff --git a/gui/assets/images/menubar-icons/win32/lock-9_white_notification.ico b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white_notification.ico
index 19cd32573e..19cd32573e 100644
--- a/gui/assets/images/menubar-icons/win32/lock-9_white_notification.ico
+++ b/desktop/packages/mullvad-vpn/assets/images/menubar-icons/win32/lock-9_white_notification.ico
Binary files differ
diff --git a/gui/assets/images/multihop-illustration.svg b/desktop/packages/mullvad-vpn/assets/images/multihop-illustration.svg
index 4f6909ea38..4f6909ea38 100644
--- a/gui/assets/images/multihop-illustration.svg
+++ b/desktop/packages/mullvad-vpn/assets/images/multihop-illustration.svg
diff --git a/gui/changes.txt b/desktop/packages/mullvad-vpn/changes.txt
index 75b0418348..75b0418348 100644
--- a/gui/changes.txt
+++ b/desktop/packages/mullvad-vpn/changes.txt
diff --git a/gui/crowdin.yml b/desktop/packages/mullvad-vpn/crowdin.yml
index 853d584a56..853d584a56 100644
--- a/gui/crowdin.yml
+++ b/desktop/packages/mullvad-vpn/crowdin.yml
diff --git a/desktop/packages/mullvad-vpn/eslint.config.mjs b/desktop/packages/mullvad-vpn/eslint.config.mjs
new file mode 100644
index 0000000000..9a7eafc339
--- /dev/null
+++ b/desktop/packages/mullvad-vpn/eslint.config.mjs
@@ -0,0 +1,57 @@
+import react from 'eslint-plugin-react';
+import reactcompiler from 'eslint-plugin-react-compiler';
+import reactHooks from 'eslint-plugin-react-hooks';
+import globals from 'globals';
+
+import workspaceConfig from '../../eslint.config.mjs';
+
+export default [
+ ...workspaceConfig,
+ react.configs.flat.recommended,
+ { ignores: ['build/'] },
+ {
+ files: ['**/*'],
+ ignores: ['src/renderer/'],
+ languageOptions: { globals: globals.node },
+ },
+ {
+ files: ['src/renderer/'],
+ languageOptions: { globals: globals.browser },
+ },
+ {
+ files: ['test/'],
+ languageOptions: { globals: globals.mocha },
+ },
+ {
+ settings: {
+ react: {
+ createClass: 'createReactClass',
+ pragma: 'React',
+ version: 'detect',
+ },
+ },
+ },
+ {
+ files: ['**/*.{js,mjs,ts,tsx}'],
+ plugins: {
+ 'react-hooks': reactHooks,
+ 'react-compiler': reactcompiler,
+ },
+ rules: {
+ 'react/jsx-no-bind': 'error',
+ 'react-hooks/rules-of-hooks': 'error',
+ 'react-hooks/exhaustive-deps': 'error',
+ 'react-compiler/react-compiler': 'error',
+ 'react/prop-types': 'off',
+ 'react/react-in-jsx-scope': 'off',
+ },
+ },
+ {
+ files: ['test/**/*.spec.ts'],
+ rules: { '@typescript-eslint/no-unused-expressions': 'off' },
+ },
+ {
+ files: ['tasks/*', 'scripts/*', 'gulpfile.js', 'init.js'],
+ rules: { '@typescript-eslint/no-require-imports': 'off' },
+ },
+];
diff --git a/gui/gulpfile.js b/desktop/packages/mullvad-vpn/gulpfile.js
index 072e3652e0..ff5a82df17 100644
--- a/gui/gulpfile.js
+++ b/desktop/packages/mullvad-vpn/gulpfile.js
@@ -23,7 +23,10 @@ task(
'build',
series('clean', 'set-prod-env', parallel(assets.copyAll, scripts.buildProto), scripts.build),
);
-task('develop', series('clean', 'set-dev-env', scripts.buildProto, watch.start));
+task(
+ 'develop',
+ series('clean', 'set-dev-env', scripts.buildProto, scripts.buildNseventforwarder, watch.start),
+);
task('pack-win', series('build', dist.packWin));
task('pack-linux', series('build', dist.packLinux));
task('pack-mac', series('build', dist.packMac));
diff --git a/gui/init.js b/desktop/packages/mullvad-vpn/init.js
index 448b1dc4f0..448b1dc4f0 100644
--- a/gui/init.js
+++ b/desktop/packages/mullvad-vpn/init.js
diff --git a/gui/locales/README.md b/desktop/packages/mullvad-vpn/locales/README.md
index a4713e3ac1..2b1a44cbc0 100644
--- a/gui/locales/README.md
+++ b/desktop/packages/mullvad-vpn/locales/README.md
@@ -2,38 +2,38 @@ This is a folder with gettext translations for Mullvad VPN app.
## Adding new translations
-1. Create a new sub-folder under `gui/locales`, use the locale identifier for the folder name.
-
+1. Create a new sub-folder under `../locales`, use the locale identifier for the folder name.
+
The complete list of supported locale identifiers can be found at:
-
+
https://electronjs.org/docs/api/locales
-1. Add a new language on Crowdin under Settings -> Translations -> Target languages menu.
-
+1. Add a new language on Crowdin under Settings -> Translations -> Target languages menu.
+
By default the file structure is configured to produce folders with translations using two-letter
- language code (defined under Settings -> Files -> <FILE> -> ... [ellipsis] -> Settings).
-
- If you wish to add a dialect (i.e: `pt-BR`), you have to provide a custom mapping
+ language code (defined under Settings -> Files -> <FILE> -> ... [ellipsis] -> Settings).
+
+ If you wish to add a dialect (i.e: `pt-BR`), you have to provide a custom mapping
to tell Crowdin to output Portuguese (Brazil) as `pt-BR` instead of `pt`.
-
- In order to add a language mapping, go to Settings -> General Settings -> Language mapping
+
+ In order to add a language mapping, go to Settings -> General Settings -> Language mapping
(three faders icon on the left hand side of the "Translations" menu).
-1. Follow the procedure as described in `gui/scripts/README.md`.
+1. Follow the procedure as described in `../scripts/README.md`.
+
+1. Optional: Upload the automatically translated `<NEW_LOCALE>/relay-locations.po` to
+ Crowdin.
-1. Optional: Upload the automatically translated `<NEW_LOCALE>/relay-locations.po` to
- Crowdin.
-
*Note: Replace `<NEW_LOCALE>` with the identifier of a newly added language.*
-
+
1. ZIP file with the following command:
-
+
```
- cd gui/locales
+ cd ../locales
zip payload.zip <NEW_LOCALE>/relay-locations.po
```
-
- 1. Upload `payload.zip` to Crowdin via web interface (Settings -> Translations -> Upload
+
+ 1. Upload `payload.zip` to Crowdin via web interface (Settings -> Translations -> Upload
translations).
1. Add the language to `SUPPORTED_LOCALE_LIST` in `app.tsx`.
diff --git a/gui/locales/da/messages.po b/desktop/packages/mullvad-vpn/locales/da/messages.po
index f210eb494b..f210eb494b 100644
--- a/gui/locales/da/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/da/messages.po
diff --git a/gui/locales/da/relay-locations.po b/desktop/packages/mullvad-vpn/locales/da/relay-locations.po
index e2587dbca5..e2587dbca5 100644
--- a/gui/locales/da/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/da/relay-locations.po
diff --git a/gui/locales/de/messages.po b/desktop/packages/mullvad-vpn/locales/de/messages.po
index 77ff49e65c..77ff49e65c 100644
--- a/gui/locales/de/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/de/messages.po
diff --git a/gui/locales/de/relay-locations.po b/desktop/packages/mullvad-vpn/locales/de/relay-locations.po
index b8e6548299..b8e6548299 100644
--- a/gui/locales/de/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/de/relay-locations.po
diff --git a/gui/locales/es/messages.po b/desktop/packages/mullvad-vpn/locales/es/messages.po
index fedb4d371e..fedb4d371e 100644
--- a/gui/locales/es/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/es/messages.po
diff --git a/gui/locales/es/relay-locations.po b/desktop/packages/mullvad-vpn/locales/es/relay-locations.po
index 842aac269e..842aac269e 100644
--- a/gui/locales/es/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/es/relay-locations.po
diff --git a/gui/locales/fi/messages.po b/desktop/packages/mullvad-vpn/locales/fi/messages.po
index 7e655693f8..7e655693f8 100644
--- a/gui/locales/fi/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/fi/messages.po
diff --git a/gui/locales/fi/relay-locations.po b/desktop/packages/mullvad-vpn/locales/fi/relay-locations.po
index fd657bc123..fd657bc123 100644
--- a/gui/locales/fi/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/fi/relay-locations.po
diff --git a/gui/locales/fr/messages.po b/desktop/packages/mullvad-vpn/locales/fr/messages.po
index d43a8e70cc..d43a8e70cc 100644
--- a/gui/locales/fr/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/fr/messages.po
diff --git a/gui/locales/fr/relay-locations.po b/desktop/packages/mullvad-vpn/locales/fr/relay-locations.po
index a66d8e6d79..a66d8e6d79 100644
--- a/gui/locales/fr/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/fr/relay-locations.po
diff --git a/gui/locales/it/messages.po b/desktop/packages/mullvad-vpn/locales/it/messages.po
index f3f2002f4d..f3f2002f4d 100644
--- a/gui/locales/it/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/it/messages.po
diff --git a/gui/locales/it/relay-locations.po b/desktop/packages/mullvad-vpn/locales/it/relay-locations.po
index e2562d08e8..e2562d08e8 100644
--- a/gui/locales/it/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/it/relay-locations.po
diff --git a/gui/locales/ja/messages.po b/desktop/packages/mullvad-vpn/locales/ja/messages.po
index c4cfdd81da..c4cfdd81da 100644
--- a/gui/locales/ja/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/ja/messages.po
diff --git a/gui/locales/ja/relay-locations.po b/desktop/packages/mullvad-vpn/locales/ja/relay-locations.po
index 9700bf04cf..9700bf04cf 100644
--- a/gui/locales/ja/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/ja/relay-locations.po
diff --git a/gui/locales/ko/messages.po b/desktop/packages/mullvad-vpn/locales/ko/messages.po
index e46b210bf6..e46b210bf6 100644
--- a/gui/locales/ko/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/ko/messages.po
diff --git a/gui/locales/ko/relay-locations.po b/desktop/packages/mullvad-vpn/locales/ko/relay-locations.po
index e7e406a260..e7e406a260 100644
--- a/gui/locales/ko/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/ko/relay-locations.po
diff --git a/gui/locales/messages.pot b/desktop/packages/mullvad-vpn/locales/messages.pot
index c197070d53..c197070d53 100644
--- a/gui/locales/messages.pot
+++ b/desktop/packages/mullvad-vpn/locales/messages.pot
diff --git a/gui/locales/my/messages.po b/desktop/packages/mullvad-vpn/locales/my/messages.po
index 51213d08cb..51213d08cb 100644
--- a/gui/locales/my/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/my/messages.po
diff --git a/gui/locales/my/relay-locations.po b/desktop/packages/mullvad-vpn/locales/my/relay-locations.po
index f9d9d5c51d..f9d9d5c51d 100644
--- a/gui/locales/my/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/my/relay-locations.po
diff --git a/gui/locales/nb/messages.po b/desktop/packages/mullvad-vpn/locales/nb/messages.po
index 3b96d712ca..3b96d712ca 100644
--- a/gui/locales/nb/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/nb/messages.po
diff --git a/gui/locales/nb/relay-locations.po b/desktop/packages/mullvad-vpn/locales/nb/relay-locations.po
index 2f506d8817..2f506d8817 100644
--- a/gui/locales/nb/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/nb/relay-locations.po
diff --git a/gui/locales/nl/messages.po b/desktop/packages/mullvad-vpn/locales/nl/messages.po
index c37c3c7617..c37c3c7617 100644
--- a/gui/locales/nl/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/nl/messages.po
diff --git a/gui/locales/nl/relay-locations.po b/desktop/packages/mullvad-vpn/locales/nl/relay-locations.po
index 87970302ef..87970302ef 100644
--- a/gui/locales/nl/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/nl/relay-locations.po
diff --git a/gui/locales/pl/messages.po b/desktop/packages/mullvad-vpn/locales/pl/messages.po
index be5186e6af..be5186e6af 100644
--- a/gui/locales/pl/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/pl/messages.po
diff --git a/gui/locales/pl/relay-locations.po b/desktop/packages/mullvad-vpn/locales/pl/relay-locations.po
index 05d0e6a760..05d0e6a760 100644
--- a/gui/locales/pl/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/pl/relay-locations.po
diff --git a/gui/locales/pt/messages.po b/desktop/packages/mullvad-vpn/locales/pt/messages.po
index e4f66a9dbc..e4f66a9dbc 100644
--- a/gui/locales/pt/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/pt/messages.po
diff --git a/gui/locales/pt/relay-locations.po b/desktop/packages/mullvad-vpn/locales/pt/relay-locations.po
index 7086830018..7086830018 100644
--- a/gui/locales/pt/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/pt/relay-locations.po
diff --git a/gui/locales/relay-locations.pot b/desktop/packages/mullvad-vpn/locales/relay-locations.pot
index 5213578c5b..5213578c5b 100644
--- a/gui/locales/relay-locations.pot
+++ b/desktop/packages/mullvad-vpn/locales/relay-locations.pot
diff --git a/gui/locales/ru/messages.po b/desktop/packages/mullvad-vpn/locales/ru/messages.po
index 6e7d7b6114..6e7d7b6114 100644
--- a/gui/locales/ru/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/ru/messages.po
diff --git a/gui/locales/ru/relay-locations.po b/desktop/packages/mullvad-vpn/locales/ru/relay-locations.po
index 09aa990917..09aa990917 100644
--- a/gui/locales/ru/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/ru/relay-locations.po
diff --git a/gui/locales/sv/messages.po b/desktop/packages/mullvad-vpn/locales/sv/messages.po
index c4eced52b9..c4eced52b9 100644
--- a/gui/locales/sv/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/sv/messages.po
diff --git a/gui/locales/sv/relay-locations.po b/desktop/packages/mullvad-vpn/locales/sv/relay-locations.po
index ace99d03ed..ace99d03ed 100644
--- a/gui/locales/sv/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/sv/relay-locations.po
diff --git a/gui/locales/th/messages.po b/desktop/packages/mullvad-vpn/locales/th/messages.po
index e0f4640102..e0f4640102 100644
--- a/gui/locales/th/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/th/messages.po
diff --git a/gui/locales/th/relay-locations.po b/desktop/packages/mullvad-vpn/locales/th/relay-locations.po
index 0551b3e382..0551b3e382 100644
--- a/gui/locales/th/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/th/relay-locations.po
diff --git a/gui/locales/tr/messages.po b/desktop/packages/mullvad-vpn/locales/tr/messages.po
index b50af3c03b..b50af3c03b 100644
--- a/gui/locales/tr/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/tr/messages.po
diff --git a/gui/locales/tr/relay-locations.po b/desktop/packages/mullvad-vpn/locales/tr/relay-locations.po
index 961cb48125..961cb48125 100644
--- a/gui/locales/tr/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/tr/relay-locations.po
diff --git a/gui/locales/zh-CN/messages.po b/desktop/packages/mullvad-vpn/locales/zh-CN/messages.po
index 8b26d0b9cf..8b26d0b9cf 100644
--- a/gui/locales/zh-CN/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/zh-CN/messages.po
diff --git a/gui/locales/zh-CN/relay-locations.po b/desktop/packages/mullvad-vpn/locales/zh-CN/relay-locations.po
index b30996be89..b30996be89 100644
--- a/gui/locales/zh-CN/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/zh-CN/relay-locations.po
diff --git a/gui/locales/zh-TW/messages.po b/desktop/packages/mullvad-vpn/locales/zh-TW/messages.po
index ea8389aef8..ea8389aef8 100644
--- a/gui/locales/zh-TW/messages.po
+++ b/desktop/packages/mullvad-vpn/locales/zh-TW/messages.po
diff --git a/gui/locales/zh-TW/relay-locations.po b/desktop/packages/mullvad-vpn/locales/zh-TW/relay-locations.po
index e31fc46191..e31fc46191 100644
--- a/gui/locales/zh-TW/relay-locations.po
+++ b/desktop/packages/mullvad-vpn/locales/zh-TW/relay-locations.po
diff --git a/gui/package.json b/desktop/packages/mullvad-vpn/package.json
index c078ade972..b67b7e7421 100644
--- a/gui/package.json
+++ b/desktop/packages/mullvad-vpn/package.json
@@ -25,24 +25,21 @@
"redux": "^4.2.0",
"simple-plist": "^1.3.1",
"sprintf-js": "^1.1.2",
- "styled-components": "^6.1.0"
+ "styled-components": "^6.1.0",
+ "nseventforwarder": "0.0.0"
},
"optionalDependencies": {
- "grpc-tools": "^1.12.4",
- "nseventmonitor": "^1.0.5"
+ "grpc-tools": "^1.12.4"
},
"devDependencies": {
- "@eslint/js": "^9.10.0",
"@playwright/test": "^1.41.1",
"@types/chai": "^4.3.3",
"@types/chai-as-promised": "^7.1.5",
"@types/chai-spies": "^1.0.3",
- "@types/eslint__js": "^8.42.3",
"@types/gettext-parser": "^4.0.1",
"@types/google-protobuf": "^3.15.6",
"@types/history": "^4.7.11",
"@types/mocha": "^10.0.0",
- "@types/node": "^20.12.11",
"@types/node-gettext": "^3.0.3",
"@types/react": "^18.3.3",
"@types/react-dom": "^18.3.0",
@@ -55,16 +52,12 @@
"chai-as-promised": "^7.1.1",
"chai-spies": "^1.0.0",
"cross-env": "^7.0.3",
- "electron": "^30.0.4",
+ "electron": "30.0.4",
"electron-builder": "^24.13.3",
"electron-devtools-installer": "^3.2.0",
- "eslint": "^9.10.0",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-react": "^7.36.1",
"eslint-plugin-react-compiler": "^0.0.0-experimental-42acc6a-20241001",
"eslint-plugin-react-hooks": "^0.0.0-experimental-2d16326d-20240930",
- "eslint-plugin-simple-import-sort": "^12.1.1",
"gettext-extractor": "^3.5.4",
"globals": "^15.9.0",
"grpc_tools_node_protoc_ts": "^5.3.2",
@@ -75,25 +68,20 @@
"mocha": "^10.2.0",
"playwright": "^1.41.1",
"postject": "^1.0.0-alpha.6",
- "prettier": "^3.3.3",
"sinon": "^14.0.1",
- "ts-node": "^10.9.2",
"tsc-watch": "^5.0.3",
- "typescript": "^5.4.5",
- "typescript-eslint": "^8.6.0",
"vinyl-buffer": "^1.0.1",
"vinyl-source-stream": "^2.0.0",
"xvfb-maybe": "^0.2.1"
},
"scripts": {
- "postinstall": "cross-env ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES=true electron-builder install-app-deps",
+ "preinstall": "test -d node_modules || mkdir node_modules",
"build": "gulp build",
"build-proto": "gulp build-proto",
"pack-test-executable": "./scripts/build-test-executable.sh",
"build-test-executable": "npm run build && npm run pack-test-executable",
"lint": "eslint .",
- "format": "prettier \"**/*.{js,css,ts,tsx}\" --write",
- "tsc": "tsc -p . --noEmit",
+ "lint-fix": "eslint --fix .",
"e2e": "npm run build && npm run e2e:no-build",
"e2e:no-build": "xvfb-maybe -- playwright test mocked",
"e2e:sequential": "npm run build && npm run e2e:sequential:no-build",
@@ -106,12 +94,7 @@
"pack:win": "gulp pack-win",
"pack:linux": "gulp pack-linux"
},
- "engines": {
- "node": ">=16",
- "npm": ">=8.3"
- },
"volta": {
- "node": "20.13.0",
- "npm": "9.9.0"
+ "extends": "../../package.json"
}
}
diff --git a/gui/playwright.config.ts b/desktop/packages/mullvad-vpn/playwright.config.ts
index 025675c831..025675c831 100644
--- a/gui/playwright.config.ts
+++ b/desktop/packages/mullvad-vpn/playwright.config.ts
diff --git a/gui/scripts/README.md b/desktop/packages/mullvad-vpn/scripts/README.md
index 8556bb85fb..a4607c3227 100644
--- a/gui/scripts/README.md
+++ b/desktop/packages/mullvad-vpn/scripts/README.md
@@ -21,7 +21,7 @@ and `integrate-relay-locations.py` in this directory.
* `fetch-relay-locations.py` fetches the relay list and extracts all country and city names.
* `intregrate-relay-locations.py` integrates the fetched relay locations into
-`<repo>/gui/locales/relay-locations.pot`.
+`../locales/relay-locations.pot`.
### Locking Python dependencies
diff --git a/gui/scripts/build-logo-icons.sh b/desktop/packages/mullvad-vpn/scripts/build-logo-icons.sh
index e35f713e77..e35f713e77 100755
--- a/gui/scripts/build-logo-icons.sh
+++ b/desktop/packages/mullvad-vpn/scripts/build-logo-icons.sh
diff --git a/gui/scripts/build-proto.sh b/desktop/packages/mullvad-vpn/scripts/build-proto.sh
index 8861eb5730..69023b72ce 100755
--- a/gui/scripts/build-proto.sh
+++ b/desktop/packages/mullvad-vpn/scripts/build-proto.sh
@@ -8,8 +8,8 @@ cd "$SCRIPT_DIR"
ARCH="$(uname -m)"
PLATFORM="$(uname -s)"
MANAGEMENT_INTERFACE_PROTO_BUILD_DIR=${MANAGEMENT_INTERFACE_PROTO_BUILD_DIR:-}
-NODE_MODULES_DIR="$(cd ../node_modules/.bin && pwd)"
-PROTO_DIR="../../mullvad-management-interface/proto"
+NODE_MODULES_DIR="$(cd ../../../node_modules/.bin && pwd)"
+PROTO_DIR="../../../../mullvad-management-interface/proto"
PROTO_FILENAME="management_interface.proto"
DESTINATION_DIR="../build/src/main/management_interface"
TYPES_DESTINATION_DIR="../src/main/management_interface"
diff --git a/gui/scripts/build-test-executable.sh b/desktop/packages/mullvad-vpn/scripts/build-test-executable.sh
index dd2758ebc3..9e79adf91b 100755
--- a/gui/scripts/build-test-executable.sh
+++ b/desktop/packages/mullvad-vpn/scripts/build-test-executable.sh
@@ -15,6 +15,9 @@ ASSETS=(
"build/test/e2e/shared/*.js"
"build/test/e2e/installed/*.js"
"build/test/e2e/installed/**/*.js"
+)
+
+NODE_MODULES=(
"node_modules/.bin/playwright"
"node_modules/playwright"
"node_modules/playwright-core"
@@ -27,7 +30,7 @@ function build_test_executable {
local temp_dir
temp_dir="$(mktemp -d)"
local temp_executable="$temp_dir/temp-test-executable$bin_suffix"
- local output="../dist/app-e2e-tests-$PRODUCT_VERSION-$TARGET$bin_suffix"
+ local output="../../../dist/app-e2e-tests-$PRODUCT_VERSION-$TARGET$bin_suffix"
local node_copy_path="$temp_dir/node$bin_suffix"
local node_path
node_path="$(volta which node || which node)"
@@ -35,7 +38,7 @@ function build_test_executable {
# pack assets
cp "$node_path" "$node_copy_path"
# shellcheck disable=SC2068
- tar -czf ./build/test/assets.tar.gz ${ASSETS[@]}
+ tar -czf ./build/test/assets.tar.gz ${ASSETS[@]} -C ../../ ${NODE_MODULES[@]}
cp "$node_copy_path" "$temp_executable"
node --experimental-sea-config standalone-tests.sea.json
diff --git a/gui/scripts/extract-translations.js b/desktop/packages/mullvad-vpn/scripts/extract-translations.js
index e101ca03a5..e101ca03a5 100644
--- a/gui/scripts/extract-translations.js
+++ b/desktop/packages/mullvad-vpn/scripts/extract-translations.js
diff --git a/gui/scripts/fetch-relay-locations.py b/desktop/packages/mullvad-vpn/scripts/fetch-relay-locations.py
index 374ec98601..374ec98601 100755
--- a/gui/scripts/fetch-relay-locations.py
+++ b/desktop/packages/mullvad-vpn/scripts/fetch-relay-locations.py
diff --git a/gui/scripts/generate-menubar-icons.sh b/desktop/packages/mullvad-vpn/scripts/generate-menubar-icons.sh
index 8bd4310ace..8bd4310ace 100755
--- a/gui/scripts/generate-menubar-icons.sh
+++ b/desktop/packages/mullvad-vpn/scripts/generate-menubar-icons.sh
diff --git a/gui/scripts/integrate-relay-locations.py b/desktop/packages/mullvad-vpn/scripts/integrate-relay-locations.py
index e99b6a211e..e99b6a211e 100644
--- a/gui/scripts/integrate-relay-locations.py
+++ b/desktop/packages/mullvad-vpn/scripts/integrate-relay-locations.py
diff --git a/gui/scripts/osv-scanner.toml b/desktop/packages/mullvad-vpn/scripts/osv-scanner.toml
index c415d89235..c415d89235 100644
--- a/gui/scripts/osv-scanner.toml
+++ b/desktop/packages/mullvad-vpn/scripts/osv-scanner.toml
diff --git a/gui/scripts/pylintrc b/desktop/packages/mullvad-vpn/scripts/pylintrc
index 7f79439857..7f79439857 100644
--- a/gui/scripts/pylintrc
+++ b/desktop/packages/mullvad-vpn/scripts/pylintrc
diff --git a/gui/scripts/requirements.txt b/desktop/packages/mullvad-vpn/scripts/requirements.txt
index 4a09a5bf34..4a09a5bf34 100644
--- a/gui/scripts/requirements.txt
+++ b/desktop/packages/mullvad-vpn/scripts/requirements.txt
diff --git a/gui/scripts/verify-translations-format.ts b/desktop/packages/mullvad-vpn/scripts/verify-translations-format.ts
index 05ffb3e504..ad3c027ac9 100644
--- a/gui/scripts/verify-translations-format.ts
+++ b/desktop/packages/mullvad-vpn/scripts/verify-translations-format.ts
@@ -2,7 +2,7 @@ import fs from 'fs';
import { GetTextTranslation, po } from 'gettext-parser';
import path from 'path';
-const LOCALES_DIR = path.join('..', 'locales');
+const LOCALES_DIR = path.join('locales');
const ALLOWED_TAGS = ['b', 'br'];
const ALLOWED_VOID_TAGS = ['br'];
diff --git a/gui/src/config.json b/desktop/packages/mullvad-vpn/src/config.json
index a77c47de45..a77c47de45 100644
--- a/gui/src/config.json
+++ b/desktop/packages/mullvad-vpn/src/config.json
diff --git a/gui/src/main/account-data-cache.ts b/desktop/packages/mullvad-vpn/src/main/account-data-cache.ts
index a36d48b2ce..a36d48b2ce 100644
--- a/gui/src/main/account-data-cache.ts
+++ b/desktop/packages/mullvad-vpn/src/main/account-data-cache.ts
diff --git a/gui/src/main/account.ts b/desktop/packages/mullvad-vpn/src/main/account.ts
index 024e4a7208..024e4a7208 100644
--- a/gui/src/main/account.ts
+++ b/desktop/packages/mullvad-vpn/src/main/account.ts
diff --git a/gui/src/main/autostart.ts b/desktop/packages/mullvad-vpn/src/main/autostart.ts
index 763862178e..763862178e 100644
--- a/gui/src/main/autostart.ts
+++ b/desktop/packages/mullvad-vpn/src/main/autostart.ts
diff --git a/gui/src/main/changelog.ts b/desktop/packages/mullvad-vpn/src/main/changelog.ts
index 978b0b28e6..978b0b28e6 100644
--- a/gui/src/main/changelog.ts
+++ b/desktop/packages/mullvad-vpn/src/main/changelog.ts
diff --git a/gui/src/main/command-line-options.ts b/desktop/packages/mullvad-vpn/src/main/command-line-options.ts
index 5a7ca57762..5a7ca57762 100644
--- a/gui/src/main/command-line-options.ts
+++ b/desktop/packages/mullvad-vpn/src/main/command-line-options.ts
diff --git a/gui/src/main/daemon-rpc.ts b/desktop/packages/mullvad-vpn/src/main/daemon-rpc.ts
index 8cea0d4008..8cea0d4008 100644
--- a/gui/src/main/daemon-rpc.ts
+++ b/desktop/packages/mullvad-vpn/src/main/daemon-rpc.ts
diff --git a/gui/src/main/default-settings.ts b/desktop/packages/mullvad-vpn/src/main/default-settings.ts
index bebc5b9a4e..bebc5b9a4e 100644
--- a/gui/src/main/default-settings.ts
+++ b/desktop/packages/mullvad-vpn/src/main/default-settings.ts
diff --git a/gui/src/main/expectation.ts b/desktop/packages/mullvad-vpn/src/main/expectation.ts
index 4141b46ffb..4141b46ffb 100644
--- a/gui/src/main/expectation.ts
+++ b/desktop/packages/mullvad-vpn/src/main/expectation.ts
diff --git a/gui/src/main/grpc-client.ts b/desktop/packages/mullvad-vpn/src/main/grpc-client.ts
index fa04cdf855..fa04cdf855 100644
--- a/gui/src/main/grpc-client.ts
+++ b/desktop/packages/mullvad-vpn/src/main/grpc-client.ts
diff --git a/gui/src/main/grpc-type-convertions.ts b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts
index 37e5c7fcf5..37e5c7fcf5 100644
--- a/gui/src/main/grpc-type-convertions.ts
+++ b/desktop/packages/mullvad-vpn/src/main/grpc-type-convertions.ts
diff --git a/gui/src/main/gui-settings.ts b/desktop/packages/mullvad-vpn/src/main/gui-settings.ts
index ae0cff0cab..ae0cff0cab 100644
--- a/gui/src/main/gui-settings.ts
+++ b/desktop/packages/mullvad-vpn/src/main/gui-settings.ts
diff --git a/gui/src/main/index.ts b/desktop/packages/mullvad-vpn/src/main/index.ts
index c9067c78e2..c9067c78e2 100644
--- a/gui/src/main/index.ts
+++ b/desktop/packages/mullvad-vpn/src/main/index.ts
diff --git a/gui/src/main/ipc-event-channel.ts b/desktop/packages/mullvad-vpn/src/main/ipc-event-channel.ts
index a42b2bc1f1..a42b2bc1f1 100644
--- a/gui/src/main/ipc-event-channel.ts
+++ b/desktop/packages/mullvad-vpn/src/main/ipc-event-channel.ts
diff --git a/gui/src/main/keyframe-animation.ts b/desktop/packages/mullvad-vpn/src/main/keyframe-animation.ts
index f4ecb34743..f4ecb34743 100644
--- a/gui/src/main/keyframe-animation.ts
+++ b/desktop/packages/mullvad-vpn/src/main/keyframe-animation.ts
diff --git a/gui/src/main/linux-desktop-entry.ts b/desktop/packages/mullvad-vpn/src/main/linux-desktop-entry.ts
index 7cc46862a5..7cc46862a5 100644
--- a/gui/src/main/linux-desktop-entry.ts
+++ b/desktop/packages/mullvad-vpn/src/main/linux-desktop-entry.ts
diff --git a/gui/src/main/linux-split-tunneling.ts b/desktop/packages/mullvad-vpn/src/main/linux-split-tunneling.ts
index 6d690aa453..6d690aa453 100644
--- a/gui/src/main/linux-split-tunneling.ts
+++ b/desktop/packages/mullvad-vpn/src/main/linux-split-tunneling.ts
diff --git a/gui/src/main/load-translations.ts b/desktop/packages/mullvad-vpn/src/main/load-translations.ts
index a3e892ce0b..a3e892ce0b 100644
--- a/gui/src/main/load-translations.ts
+++ b/desktop/packages/mullvad-vpn/src/main/load-translations.ts
diff --git a/gui/src/main/logging.ts b/desktop/packages/mullvad-vpn/src/main/logging.ts
index a1942d5007..a1942d5007 100644
--- a/gui/src/main/logging.ts
+++ b/desktop/packages/mullvad-vpn/src/main/logging.ts
diff --git a/gui/src/main/macos-split-tunneling.ts b/desktop/packages/mullvad-vpn/src/main/macos-split-tunneling.ts
index df144c1278..df144c1278 100644
--- a/gui/src/main/macos-split-tunneling.ts
+++ b/desktop/packages/mullvad-vpn/src/main/macos-split-tunneling.ts
diff --git a/gui/src/main/notification-controller.ts b/desktop/packages/mullvad-vpn/src/main/notification-controller.ts
index 925bff0812..925bff0812 100644
--- a/gui/src/main/notification-controller.ts
+++ b/desktop/packages/mullvad-vpn/src/main/notification-controller.ts
diff --git a/gui/src/main/platform-version.ts b/desktop/packages/mullvad-vpn/src/main/platform-version.ts
index 027434d8d9..027434d8d9 100644
--- a/gui/src/main/platform-version.ts
+++ b/desktop/packages/mullvad-vpn/src/main/platform-version.ts
diff --git a/gui/src/main/problem-report.ts b/desktop/packages/mullvad-vpn/src/main/problem-report.ts
index be84814d72..be84814d72 100644
--- a/gui/src/main/problem-report.ts
+++ b/desktop/packages/mullvad-vpn/src/main/problem-report.ts
diff --git a/gui/src/main/proc.ts b/desktop/packages/mullvad-vpn/src/main/proc.ts
index 1e8118268d..1e8118268d 100644
--- a/gui/src/main/proc.ts
+++ b/desktop/packages/mullvad-vpn/src/main/proc.ts
diff --git a/gui/src/main/reconnection-backoff.ts b/desktop/packages/mullvad-vpn/src/main/reconnection-backoff.ts
index 5709f053d7..5709f053d7 100644
--- a/gui/src/main/reconnection-backoff.ts
+++ b/desktop/packages/mullvad-vpn/src/main/reconnection-backoff.ts
diff --git a/gui/src/main/settings.ts b/desktop/packages/mullvad-vpn/src/main/settings.ts
index 99fb4f2a5a..99fb4f2a5a 100644
--- a/gui/src/main/settings.ts
+++ b/desktop/packages/mullvad-vpn/src/main/settings.ts
diff --git a/gui/src/main/tray-icon-controller.ts b/desktop/packages/mullvad-vpn/src/main/tray-icon-controller.ts
index ff7300b1e6..ff7300b1e6 100644
--- a/gui/src/main/tray-icon-controller.ts
+++ b/desktop/packages/mullvad-vpn/src/main/tray-icon-controller.ts
diff --git a/gui/src/main/tunnel-state.ts b/desktop/packages/mullvad-vpn/src/main/tunnel-state.ts
index 43ebe97ad6..43ebe97ad6 100644
--- a/gui/src/main/tunnel-state.ts
+++ b/desktop/packages/mullvad-vpn/src/main/tunnel-state.ts
diff --git a/gui/src/main/user-interface.ts b/desktop/packages/mullvad-vpn/src/main/user-interface.ts
index f7b81247ff..a079246373 100644
--- a/gui/src/main/user-interface.ts
+++ b/desktop/packages/mullvad-vpn/src/main/user-interface.ts
@@ -487,7 +487,7 @@ export default class UserInterface implements WindowControllerDelegate {
});
}
- // setup NSEvent monitor to fix inconsistent window.blur on macOS
+ // setup NSEvent forwarder to fix inconsistent window.blur on macOS
// see https://github.com/electron/electron/issues/8689
private installMacOsMenubarAppWindowHandlers() {
if (this.delegate.isUnpinnedWindow()) {
@@ -495,14 +495,14 @@ export default class UserInterface implements WindowControllerDelegate {
}
// eslint-disable-next-line @typescript-eslint/no-require-imports
- const { NSEventMonitor, NSEventMask } = require('nseventmonitor');
- const macEventMonitor = new NSEventMonitor();
- const eventMask = NSEventMask.leftMouseDown | NSEventMask.rightMouseDown;
+ const nseventforwarder = require('nseventforwarder');
+ let nseventforwarderStop: ReturnType<typeof nseventforwarder.start>;
- this.windowController.window?.on('show', () =>
- macEventMonitor.start(eventMask, () => this.windowController.hide()),
+ this.windowController.window?.on(
+ 'show',
+ () => (nseventforwarderStop = nseventforwarder.start(() => this.windowController.hide())),
);
- this.windowController.window?.on('hide', () => macEventMonitor.stop());
+ this.windowController.window?.on('hide', () => nseventforwarderStop?.());
this.windowController.window?.on('blur', () => {
// Make sure to hide the menubar window when other program captures the focus.
// But avoid doing that when dev tools capture the focus to make it possible to inspect the UI
diff --git a/gui/src/main/version.ts b/desktop/packages/mullvad-vpn/src/main/version.ts
index 1bab7728b4..1bab7728b4 100644
--- a/gui/src/main/version.ts
+++ b/desktop/packages/mullvad-vpn/src/main/version.ts
diff --git a/gui/src/main/window-controller.ts b/desktop/packages/mullvad-vpn/src/main/window-controller.ts
index 553c798334..553c798334 100644
--- a/gui/src/main/window-controller.ts
+++ b/desktop/packages/mullvad-vpn/src/main/window-controller.ts
diff --git a/gui/src/main/windows-pe-parser.ts b/desktop/packages/mullvad-vpn/src/main/windows-pe-parser.ts
index f4d6ebc852..f4d6ebc852 100644
--- a/gui/src/main/windows-pe-parser.ts
+++ b/desktop/packages/mullvad-vpn/src/main/windows-pe-parser.ts
diff --git a/gui/src/main/windows-split-tunneling.ts b/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts
index 7ae73827d0..7ae73827d0 100644
--- a/gui/src/main/windows-split-tunneling.ts
+++ b/desktop/packages/mullvad-vpn/src/main/windows-split-tunneling.ts
diff --git a/gui/src/renderer/app.tsx b/desktop/packages/mullvad-vpn/src/renderer/app.tsx
index ddbb43aab7..ddbb43aab7 100644
--- a/gui/src/renderer/app.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/app.tsx
diff --git a/gui/src/renderer/components/Accordion.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Accordion.tsx
index 27a5be53bc..27a5be53bc 100644
--- a/gui/src/renderer/components/Accordion.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Accordion.tsx
diff --git a/gui/src/renderer/components/Account.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Account.tsx
index 1cc666910e..1cc666910e 100644
--- a/gui/src/renderer/components/Account.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Account.tsx
diff --git a/gui/src/renderer/components/AccountNumberLabel.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AccountNumberLabel.tsx
index c41a6248aa..c41a6248aa 100644
--- a/gui/src/renderer/components/AccountNumberLabel.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AccountNumberLabel.tsx
diff --git a/gui/src/renderer/components/AccountStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AccountStyles.tsx
index f3ba25c86a..f3ba25c86a 100644
--- a/gui/src/renderer/components/AccountStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AccountStyles.tsx
diff --git a/gui/src/renderer/components/ApiAccessMethods.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ApiAccessMethods.tsx
index 68b873bd64..68b873bd64 100644
--- a/gui/src/renderer/components/ApiAccessMethods.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ApiAccessMethods.tsx
diff --git a/gui/src/renderer/components/AppButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AppButton.tsx
index f82b997cc4..f82b997cc4 100644
--- a/gui/src/renderer/components/AppButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AppButton.tsx
diff --git a/gui/src/renderer/components/AppButtonStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AppButtonStyles.tsx
index ac65f951f6..ac65f951f6 100644
--- a/gui/src/renderer/components/AppButtonStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AppButtonStyles.tsx
diff --git a/gui/src/renderer/components/AppRouter.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AppRouter.tsx
index 3541c095d6..3541c095d6 100644
--- a/gui/src/renderer/components/AppRouter.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AppRouter.tsx
diff --git a/gui/src/renderer/components/AriaGroup.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/AriaGroup.tsx
index 9e58283933..9e58283933 100644
--- a/gui/src/renderer/components/AriaGroup.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/AriaGroup.tsx
diff --git a/gui/src/renderer/components/Changelog.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Changelog.tsx
index ea1b42f5c2..ea1b42f5c2 100644
--- a/gui/src/renderer/components/Changelog.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Changelog.tsx
diff --git a/gui/src/renderer/components/ChevronButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ChevronButton.tsx
index 6e16fdf6db..6e16fdf6db 100644
--- a/gui/src/renderer/components/ChevronButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ChevronButton.tsx
diff --git a/gui/src/renderer/components/ClipboardLabel.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ClipboardLabel.tsx
index 7f1970ebfc..7f1970ebfc 100644
--- a/gui/src/renderer/components/ClipboardLabel.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ClipboardLabel.tsx
diff --git a/gui/src/renderer/components/ContextMenu.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ContextMenu.tsx
index 2e01c9375f..2e01c9375f 100644
--- a/gui/src/renderer/components/ContextMenu.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ContextMenu.tsx
diff --git a/gui/src/renderer/components/CustomDnsSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettings.tsx
index 914f7b8406..914f7b8406 100644
--- a/gui/src/renderer/components/CustomDnsSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettings.tsx
diff --git a/gui/src/renderer/components/CustomDnsSettingsStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettingsStyles.tsx
index b8fdc7fd38..b8fdc7fd38 100644
--- a/gui/src/renderer/components/CustomDnsSettingsStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/CustomDnsSettingsStyles.tsx
diff --git a/gui/src/renderer/components/CustomScrollbars.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/CustomScrollbars.tsx
index 45e7ad521d..45e7ad521d 100644
--- a/gui/src/renderer/components/CustomScrollbars.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/CustomScrollbars.tsx
diff --git a/gui/src/renderer/components/DaitaSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/DaitaSettings.tsx
index bcfca03316..bcfca03316 100644
--- a/gui/src/renderer/components/DaitaSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/DaitaSettings.tsx
diff --git a/gui/src/renderer/components/Debug.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Debug.tsx
index 58e446be47..58e446be47 100644
--- a/gui/src/renderer/components/Debug.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Debug.tsx
diff --git a/gui/src/renderer/components/DeviceInfoButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/DeviceInfoButton.tsx
index 090bb9c8df..090bb9c8df 100644
--- a/gui/src/renderer/components/DeviceInfoButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/DeviceInfoButton.tsx
diff --git a/gui/src/renderer/components/DeviceRevokedView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/DeviceRevokedView.tsx
index dd6abbf376..dd6abbf376 100644
--- a/gui/src/renderer/components/DeviceRevokedView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/DeviceRevokedView.tsx
diff --git a/gui/src/renderer/components/EditApiAccessMethod.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/EditApiAccessMethod.tsx
index 8a11404b1c..8a11404b1c 100644
--- a/gui/src/renderer/components/EditApiAccessMethod.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/EditApiAccessMethod.tsx
diff --git a/gui/src/renderer/components/EditCustomBridge.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/EditCustomBridge.tsx
index 7a0ad6f8d8..7a0ad6f8d8 100644
--- a/gui/src/renderer/components/EditCustomBridge.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/EditCustomBridge.tsx
diff --git a/gui/src/renderer/components/ErrorBoundary.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ErrorBoundary.tsx
index 40615e44f4..40615e44f4 100644
--- a/gui/src/renderer/components/ErrorBoundary.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ErrorBoundary.tsx
diff --git a/gui/src/renderer/components/ErrorView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ErrorView.tsx
index fead788c24..fead788c24 100644
--- a/gui/src/renderer/components/ErrorView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ErrorView.tsx
diff --git a/gui/src/renderer/components/ExpiredAccountAddTime.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountAddTime.tsx
index 8dd48d44d0..8dd48d44d0 100644
--- a/gui/src/renderer/components/ExpiredAccountAddTime.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountAddTime.tsx
diff --git a/gui/src/renderer/components/ExpiredAccountErrorView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorView.tsx
index a98d3e441c..a98d3e441c 100644
--- a/gui/src/renderer/components/ExpiredAccountErrorView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorView.tsx
diff --git a/gui/src/renderer/components/ExpiredAccountErrorViewStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorViewStyles.tsx
index 53450a41ee..53450a41ee 100644
--- a/gui/src/renderer/components/ExpiredAccountErrorViewStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ExpiredAccountErrorViewStyles.tsx
diff --git a/gui/src/renderer/components/Filter.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Filter.tsx
index a0ed1725b1..a0ed1725b1 100644
--- a/gui/src/renderer/components/Filter.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Filter.tsx
diff --git a/gui/src/renderer/components/Focus.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Focus.tsx
index c29cbe653e..c29cbe653e 100644
--- a/gui/src/renderer/components/Focus.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Focus.tsx
diff --git a/gui/src/renderer/components/FormattableTextInput.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/FormattableTextInput.tsx
index aae614ddd7..aae614ddd7 100644
--- a/gui/src/renderer/components/FormattableTextInput.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/FormattableTextInput.tsx
diff --git a/gui/src/renderer/components/HeaderBar.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/HeaderBar.tsx
index d0f2bde6ef..d0f2bde6ef 100644
--- a/gui/src/renderer/components/HeaderBar.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/HeaderBar.tsx
diff --git a/gui/src/renderer/components/ImageView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ImageView.tsx
index f40a93fbbc..f40a93fbbc 100644
--- a/gui/src/renderer/components/ImageView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ImageView.tsx
diff --git a/gui/src/renderer/components/InfoButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/InfoButton.tsx
index 7f77f115e7..7f77f115e7 100644
--- a/gui/src/renderer/components/InfoButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/InfoButton.tsx
diff --git a/gui/src/renderer/components/KeyboardNavigation.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/KeyboardNavigation.tsx
index cbde4297bd..cbde4297bd 100644
--- a/gui/src/renderer/components/KeyboardNavigation.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/KeyboardNavigation.tsx
diff --git a/gui/src/renderer/components/Lang.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Lang.tsx
index 2145e12fbb..2145e12fbb 100644
--- a/gui/src/renderer/components/Lang.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Lang.tsx
diff --git a/gui/src/renderer/components/Launch.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Launch.tsx
index 7a8f75bc9c..7a8f75bc9c 100644
--- a/gui/src/renderer/components/Launch.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Launch.tsx
diff --git a/gui/src/renderer/components/Layout.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Layout.tsx
index b74cfd929f..b74cfd929f 100644
--- a/gui/src/renderer/components/Layout.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Layout.tsx
diff --git a/gui/src/renderer/components/List.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/List.tsx
index 4961855fba..4961855fba 100644
--- a/gui/src/renderer/components/List.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/List.tsx
diff --git a/gui/src/renderer/components/Login.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx
index 0d234bd66b..0d234bd66b 100644
--- a/gui/src/renderer/components/Login.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Login.tsx
diff --git a/gui/src/renderer/components/LoginStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/LoginStyles.tsx
index 4a597b07b3..4a597b07b3 100644
--- a/gui/src/renderer/components/LoginStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/LoginStyles.tsx
diff --git a/gui/src/renderer/components/MacOsScrollbarDetection.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/MacOsScrollbarDetection.tsx
index 520b6f3f3b..520b6f3f3b 100644
--- a/gui/src/renderer/components/MacOsScrollbarDetection.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/MacOsScrollbarDetection.tsx
diff --git a/gui/src/renderer/components/Map.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Map.tsx
index 9ea69251d9..9ea69251d9 100644
--- a/gui/src/renderer/components/Map.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Map.tsx
diff --git a/gui/src/renderer/components/Marquee.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Marquee.tsx
index c654e473d2..c654e473d2 100644
--- a/gui/src/renderer/components/Marquee.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Marquee.tsx
diff --git a/gui/src/renderer/components/Modal.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Modal.tsx
index e339566c24..e339566c24 100644
--- a/gui/src/renderer/components/Modal.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Modal.tsx
diff --git a/gui/src/renderer/components/MultiButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/MultiButton.tsx
index 3129abcbb2..3129abcbb2 100644
--- a/gui/src/renderer/components/MultiButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/MultiButton.tsx
diff --git a/gui/src/renderer/components/MultihopSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/MultihopSettings.tsx
index 3075e1d4ed..3075e1d4ed 100644
--- a/gui/src/renderer/components/MultihopSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/MultihopSettings.tsx
diff --git a/gui/src/renderer/components/NavigationBar.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/NavigationBar.tsx
index 680393a6c7..680393a6c7 100644
--- a/gui/src/renderer/components/NavigationBar.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/NavigationBar.tsx
diff --git a/gui/src/renderer/components/NavigationBarStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/NavigationBarStyles.tsx
index eb4472c900..eb4472c900 100644
--- a/gui/src/renderer/components/NavigationBarStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/NavigationBarStyles.tsx
diff --git a/gui/src/renderer/components/NotificationArea.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/NotificationArea.tsx
index dac62db192..dac62db192 100644
--- a/gui/src/renderer/components/NotificationArea.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/NotificationArea.tsx
diff --git a/gui/src/renderer/components/NotificationBanner.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/NotificationBanner.tsx
index 924f65ff99..924f65ff99 100644
--- a/gui/src/renderer/components/NotificationBanner.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/NotificationBanner.tsx
diff --git a/gui/src/renderer/components/OpenVpnSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/OpenVpnSettings.tsx
index 571e8e3571..571e8e3571 100644
--- a/gui/src/renderer/components/OpenVpnSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/OpenVpnSettings.tsx
diff --git a/gui/src/renderer/components/PageSlider.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/PageSlider.tsx
index d03c90a0e2..d03c90a0e2 100644
--- a/gui/src/renderer/components/PageSlider.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/PageSlider.tsx
diff --git a/gui/src/renderer/components/ProblemReport.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx
index 36ddc09c45..36ddc09c45 100644
--- a/gui/src/renderer/components/ProblemReport.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReport.tsx
diff --git a/gui/src/renderer/components/ProblemReportStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReportStyles.tsx
index 4b32c3fd53..4b32c3fd53 100644
--- a/gui/src/renderer/components/ProblemReportStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ProblemReportStyles.tsx
diff --git a/gui/src/renderer/components/ProxyForm.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx
index 9a163ceebf..9a163ceebf 100644
--- a/gui/src/renderer/components/ProxyForm.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/ProxyForm.tsx
diff --git a/gui/src/renderer/components/RedeemVoucher.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucher.tsx
index c88d68a087..c88d68a087 100644
--- a/gui/src/renderer/components/RedeemVoucher.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucher.tsx
diff --git a/gui/src/renderer/components/RedeemVoucherStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucherStyles.tsx
index 37f51ee5e4..37f51ee5e4 100644
--- a/gui/src/renderer/components/RedeemVoucherStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/RedeemVoucherStyles.tsx
diff --git a/gui/src/renderer/components/RelayStatusIndicator.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/RelayStatusIndicator.tsx
index 1060121b9e..1060121b9e 100644
--- a/gui/src/renderer/components/RelayStatusIndicator.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/RelayStatusIndicator.tsx
diff --git a/gui/src/renderer/components/SearchBar.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SearchBar.tsx
index fe1d1936aa..fe1d1936aa 100644
--- a/gui/src/renderer/components/SearchBar.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SearchBar.tsx
diff --git a/gui/src/renderer/components/SecuredLabel.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SecuredLabel.tsx
index 534a01a58c..534a01a58c 100644
--- a/gui/src/renderer/components/SecuredLabel.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SecuredLabel.tsx
diff --git a/gui/src/renderer/components/SelectLanguage.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SelectLanguage.tsx
index 9bbc110fc1..9bbc110fc1 100644
--- a/gui/src/renderer/components/SelectLanguage.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SelectLanguage.tsx
diff --git a/gui/src/renderer/components/Settings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Settings.tsx
index 0a691d340f..0a691d340f 100644
--- a/gui/src/renderer/components/Settings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Settings.tsx
diff --git a/gui/src/renderer/components/SettingsHeader.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsHeader.tsx
index 47e1f47f7b..47e1f47f7b 100644
--- a/gui/src/renderer/components/SettingsHeader.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsHeader.tsx
diff --git a/gui/src/renderer/components/SettingsImport.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsImport.tsx
index 8fefbedf20..8fefbedf20 100644
--- a/gui/src/renderer/components/SettingsImport.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsImport.tsx
diff --git a/gui/src/renderer/components/SettingsStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsStyles.tsx
index 7a3d2c04ae..7a3d2c04ae 100644
--- a/gui/src/renderer/components/SettingsStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsStyles.tsx
diff --git a/gui/src/renderer/components/SettingsTextImport.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsTextImport.tsx
index c6cb325b0c..c6cb325b0c 100644
--- a/gui/src/renderer/components/SettingsTextImport.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SettingsTextImport.tsx
diff --git a/gui/src/renderer/components/Shadowsocks.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Shadowsocks.tsx
index 0614bc44cf..0614bc44cf 100644
--- a/gui/src/renderer/components/Shadowsocks.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Shadowsocks.tsx
diff --git a/gui/src/renderer/components/SimpleInput.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SimpleInput.tsx
index 8d4a51d8e9..8d4a51d8e9 100644
--- a/gui/src/renderer/components/SimpleInput.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SimpleInput.tsx
diff --git a/gui/src/renderer/components/SmallButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SmallButton.tsx
index c91fbbdb20..c91fbbdb20 100644
--- a/gui/src/renderer/components/SmallButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SmallButton.tsx
diff --git a/gui/src/renderer/components/SplitTunnelingSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx
index 7e8830e6f8..7e8830e6f8 100644
--- a/gui/src/renderer/components/SplitTunnelingSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettings.tsx
diff --git a/gui/src/renderer/components/SplitTunnelingSettingsStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettingsStyles.tsx
index a2019fba8d..a2019fba8d 100644
--- a/gui/src/renderer/components/SplitTunnelingSettingsStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/SplitTunnelingSettingsStyles.tsx
diff --git a/gui/src/renderer/components/Support.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Support.tsx
index 2785883ecf..2785883ecf 100644
--- a/gui/src/renderer/components/Support.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Support.tsx
diff --git a/gui/src/renderer/components/Switch.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/Switch.tsx
index 595bc422a2..595bc422a2 100644
--- a/gui/src/renderer/components/Switch.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/Switch.tsx
diff --git a/gui/src/renderer/components/TooManyDevices.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/TooManyDevices.tsx
index 3e636bcb44..3e636bcb44 100644
--- a/gui/src/renderer/components/TooManyDevices.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/TooManyDevices.tsx
diff --git a/gui/src/renderer/components/TransitionContainer.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/TransitionContainer.tsx
index 1df9b097c5..1df9b097c5 100644
--- a/gui/src/renderer/components/TransitionContainer.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/TransitionContainer.tsx
diff --git a/gui/src/renderer/components/UdpOverTcp.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/UdpOverTcp.tsx
index 7179daca77..7179daca77 100644
--- a/gui/src/renderer/components/UdpOverTcp.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/UdpOverTcp.tsx
diff --git a/gui/src/renderer/components/UserInterfaceSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/UserInterfaceSettings.tsx
index 9c3415d90d..9c3415d90d 100644
--- a/gui/src/renderer/components/UserInterfaceSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/UserInterfaceSettings.tsx
diff --git a/gui/src/renderer/components/VpnSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/VpnSettings.tsx
index c23ecdbf47..c23ecdbf47 100644
--- a/gui/src/renderer/components/VpnSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/VpnSettings.tsx
diff --git a/gui/src/renderer/components/WireguardSettings.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/WireguardSettings.tsx
index b199bd5ee5..b199bd5ee5 100644
--- a/gui/src/renderer/components/WireguardSettings.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/WireguardSettings.tsx
diff --git a/gui/src/renderer/components/YellowLabel.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/YellowLabel.tsx
index 55059e223f..55059e223f 100644
--- a/gui/src/renderer/components/YellowLabel.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/YellowLabel.tsx
diff --git a/gui/src/renderer/components/cell/CellButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/CellButton.tsx
index cc7a6e1015..cc7a6e1015 100644
--- a/gui/src/renderer/components/cell/CellButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/CellButton.tsx
diff --git a/gui/src/renderer/components/cell/Container.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Container.tsx
index e35babf790..e35babf790 100644
--- a/gui/src/renderer/components/cell/Container.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Container.tsx
diff --git a/gui/src/renderer/components/cell/Footer.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Footer.tsx
index 86487c676c..86487c676c 100644
--- a/gui/src/renderer/components/cell/Footer.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Footer.tsx
diff --git a/gui/src/renderer/components/cell/Group.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Group.tsx
index 86d95f0a33..86d95f0a33 100644
--- a/gui/src/renderer/components/cell/Group.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Group.tsx
diff --git a/gui/src/renderer/components/cell/Input.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Input.tsx
index de2649e3c6..de2649e3c6 100644
--- a/gui/src/renderer/components/cell/Input.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Input.tsx
diff --git a/gui/src/renderer/components/cell/Label.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Label.tsx
index b2b37c1e4c..b2b37c1e4c 100644
--- a/gui/src/renderer/components/cell/Label.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Label.tsx
diff --git a/gui/src/renderer/components/cell/Row.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Row.tsx
index 9aca25d3a0..9aca25d3a0 100644
--- a/gui/src/renderer/components/cell/Row.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Row.tsx
diff --git a/gui/src/renderer/components/cell/Section.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Section.tsx
index b7465ecb93..b7465ecb93 100644
--- a/gui/src/renderer/components/cell/Section.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Section.tsx
diff --git a/gui/src/renderer/components/cell/Selector.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Selector.tsx
index b1e20a0c41..b1e20a0c41 100644
--- a/gui/src/renderer/components/cell/Selector.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/Selector.tsx
diff --git a/gui/src/renderer/components/cell/SettingsForm.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsForm.tsx
index 9a901d88d8..9a901d88d8 100644
--- a/gui/src/renderer/components/cell/SettingsForm.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsForm.tsx
diff --git a/gui/src/renderer/components/cell/SettingsGroup.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsGroup.tsx
index 7ca8d0dff1..7ca8d0dff1 100644
--- a/gui/src/renderer/components/cell/SettingsGroup.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsGroup.tsx
diff --git a/gui/src/renderer/components/cell/SettingsRadioGroup.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRadioGroup.tsx
index 6f4f1a0d90..6f4f1a0d90 100644
--- a/gui/src/renderer/components/cell/SettingsRadioGroup.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRadioGroup.tsx
diff --git a/gui/src/renderer/components/cell/SettingsRow.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRow.tsx
index f242106c92..f242106c92 100644
--- a/gui/src/renderer/components/cell/SettingsRow.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsRow.tsx
diff --git a/gui/src/renderer/components/cell/SettingsSelect.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsSelect.tsx
index 7b5e1d7ab4..7b5e1d7ab4 100644
--- a/gui/src/renderer/components/cell/SettingsSelect.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsSelect.tsx
diff --git a/gui/src/renderer/components/cell/SettingsTextInput.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsTextInput.tsx
index 44381bc681..44381bc681 100644
--- a/gui/src/renderer/components/cell/SettingsTextInput.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SettingsTextInput.tsx
diff --git a/gui/src/renderer/components/cell/SideButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SideButton.tsx
index 6c30922b5f..6c30922b5f 100644
--- a/gui/src/renderer/components/cell/SideButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/SideButton.tsx
diff --git a/gui/src/renderer/components/cell/index.ts b/desktop/packages/mullvad-vpn/src/renderer/components/cell/index.ts
index 2bbd56167a..2bbd56167a 100644
--- a/gui/src/renderer/components/cell/index.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/index.ts
diff --git a/gui/src/renderer/components/cell/styles.ts b/desktop/packages/mullvad-vpn/src/renderer/components/cell/styles.ts
index a2d20b03f6..a2d20b03f6 100644
--- a/gui/src/renderer/components/cell/styles.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/cell/styles.ts
diff --git a/gui/src/renderer/components/common-styles.ts b/desktop/packages/mullvad-vpn/src/renderer/components/common-styles.ts
index dbfb720e44..dbfb720e44 100644
--- a/gui/src/renderer/components/common-styles.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/common-styles.ts
diff --git a/gui/src/renderer/components/main-view/ConnectionActionButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionActionButton.tsx
index 437fa93321..437fa93321 100644
--- a/gui/src/renderer/components/main-view/ConnectionActionButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionActionButton.tsx
diff --git a/gui/src/renderer/components/main-view/ConnectionDetails.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionDetails.tsx
index c6bff32ef3..c6bff32ef3 100644
--- a/gui/src/renderer/components/main-view/ConnectionDetails.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionDetails.tsx
diff --git a/gui/src/renderer/components/main-view/ConnectionPanel.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanel.tsx
index 34e98abeea..34e98abeea 100644
--- a/gui/src/renderer/components/main-view/ConnectionPanel.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanel.tsx
diff --git a/gui/src/renderer/components/main-view/ConnectionPanelChevron.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanelChevron.tsx
index a50fada589..a50fada589 100644
--- a/gui/src/renderer/components/main-view/ConnectionPanelChevron.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionPanelChevron.tsx
diff --git a/gui/src/renderer/components/main-view/ConnectionStatus.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionStatus.tsx
index 1745fdaf11..1745fdaf11 100644
--- a/gui/src/renderer/components/main-view/ConnectionStatus.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/ConnectionStatus.tsx
diff --git a/gui/src/renderer/components/main-view/FeatureIndicators.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx
index 5b7e60ade0..5b7e60ade0 100644
--- a/gui/src/renderer/components/main-view/FeatureIndicators.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/FeatureIndicators.tsx
diff --git a/gui/src/renderer/components/main-view/Hostname.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/Hostname.tsx
index 097e3b291b..097e3b291b 100644
--- a/gui/src/renderer/components/main-view/Hostname.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/Hostname.tsx
diff --git a/gui/src/renderer/components/main-view/Location.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/Location.tsx
index 2685394158..2685394158 100644
--- a/gui/src/renderer/components/main-view/Location.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/Location.tsx
diff --git a/gui/src/renderer/components/main-view/MainView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/MainView.tsx
index 9327094a51..9327094a51 100644
--- a/gui/src/renderer/components/main-view/MainView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/MainView.tsx
diff --git a/gui/src/renderer/components/main-view/SelectLocationButton.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/SelectLocationButton.tsx
index 50508a3192..50508a3192 100644
--- a/gui/src/renderer/components/main-view/SelectLocationButton.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/SelectLocationButton.tsx
diff --git a/gui/src/renderer/components/main-view/styles.ts b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/styles.ts
index 58c6e85eb2..58c6e85eb2 100644
--- a/gui/src/renderer/components/main-view/styles.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/main-view/styles.ts
diff --git a/gui/src/renderer/components/select-location/CombinedLocationList.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CombinedLocationList.tsx
index 5ef9918b8f..5ef9918b8f 100644
--- a/gui/src/renderer/components/select-location/CombinedLocationList.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CombinedLocationList.tsx
diff --git a/gui/src/renderer/components/select-location/CustomListDialogs.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomListDialogs.tsx
index 4cc42c0623..4cc42c0623 100644
--- a/gui/src/renderer/components/select-location/CustomListDialogs.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomListDialogs.tsx
diff --git a/gui/src/renderer/components/select-location/CustomLists.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomLists.tsx
index 1f4c77ed6b..1f4c77ed6b 100644
--- a/gui/src/renderer/components/select-location/CustomLists.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/CustomLists.tsx
diff --git a/gui/src/renderer/components/select-location/LocationRow.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRow.tsx
index a47c1dd646..a47c1dd646 100644
--- a/gui/src/renderer/components/select-location/LocationRow.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRow.tsx
diff --git a/gui/src/renderer/components/select-location/LocationRowStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRowStyles.tsx
index 58e9ba9606..58e9ba9606 100644
--- a/gui/src/renderer/components/select-location/LocationRowStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/LocationRowStyles.tsx
diff --git a/gui/src/renderer/components/select-location/RelayListContext.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayListContext.tsx
index 3165a95824..3165a95824 100644
--- a/gui/src/renderer/components/select-location/RelayListContext.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayListContext.tsx
diff --git a/gui/src/renderer/components/select-location/RelayLocationList.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayLocationList.tsx
index 49e1f2a38c..49e1f2a38c 100644
--- a/gui/src/renderer/components/select-location/RelayLocationList.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/RelayLocationList.tsx
diff --git a/gui/src/renderer/components/select-location/ScopeBar.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScopeBar.tsx
index 28312da19e..28312da19e 100644
--- a/gui/src/renderer/components/select-location/ScopeBar.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScopeBar.tsx
diff --git a/gui/src/renderer/components/select-location/ScrollPositionContext.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScrollPositionContext.tsx
index 55ee8dae97..55ee8dae97 100644
--- a/gui/src/renderer/components/select-location/ScrollPositionContext.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/ScrollPositionContext.tsx
diff --git a/gui/src/renderer/components/select-location/SelectLocation.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocation.tsx
index 506c836548..506c836548 100644
--- a/gui/src/renderer/components/select-location/SelectLocation.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocation.tsx
diff --git a/gui/src/renderer/components/select-location/SelectLocationContainer.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationContainer.tsx
index 66bebdf1b0..66bebdf1b0 100644
--- a/gui/src/renderer/components/select-location/SelectLocationContainer.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationContainer.tsx
diff --git a/gui/src/renderer/components/select-location/SelectLocationStyles.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationStyles.tsx
index ff83a6fc8d..ff83a6fc8d 100644
--- a/gui/src/renderer/components/select-location/SelectLocationStyles.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SelectLocationStyles.tsx
diff --git a/gui/src/renderer/components/select-location/SpacePreAllocationView.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpacePreAllocationView.tsx
index 4b493aeed1..4b493aeed1 100644
--- a/gui/src/renderer/components/select-location/SpacePreAllocationView.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpacePreAllocationView.tsx
diff --git a/gui/src/renderer/components/select-location/SpecialLocationList.tsx b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpecialLocationList.tsx
index e4d105d635..e4d105d635 100644
--- a/gui/src/renderer/components/select-location/SpecialLocationList.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/SpecialLocationList.tsx
diff --git a/gui/src/renderer/components/select-location/custom-list-helpers.ts b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/custom-list-helpers.ts
index 3f6149cd7f..3f6149cd7f 100644
--- a/gui/src/renderer/components/select-location/custom-list-helpers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/custom-list-helpers.ts
diff --git a/gui/src/renderer/components/select-location/select-location-helpers.ts b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-helpers.ts
index 3d099adb7b..3d099adb7b 100644
--- a/gui/src/renderer/components/select-location/select-location-helpers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-helpers.ts
diff --git a/gui/src/renderer/components/select-location/select-location-hooks.ts b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-hooks.ts
index fbecc4db5d..fbecc4db5d 100644
--- a/gui/src/renderer/components/select-location/select-location-hooks.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-hooks.ts
diff --git a/gui/src/renderer/components/select-location/select-location-types.ts b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-types.ts
index ca6afecf74..ca6afecf74 100644
--- a/gui/src/renderer/components/select-location/select-location-types.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/components/select-location/select-location-types.ts
diff --git a/gui/src/renderer/context.tsx b/desktop/packages/mullvad-vpn/src/renderer/context.tsx
index eb1be7a556..eb1be7a556 100644
--- a/gui/src/renderer/context.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/context.tsx
diff --git a/gui/src/renderer/index.html b/desktop/packages/mullvad-vpn/src/renderer/index.html
index e262187014..e262187014 100644
--- a/gui/src/renderer/index.html
+++ b/desktop/packages/mullvad-vpn/src/renderer/index.html
diff --git a/gui/src/renderer/index.ts b/desktop/packages/mullvad-vpn/src/renderer/index.ts
index fbf8ebcdba..fbf8ebcdba 100644
--- a/gui/src/renderer/index.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/index.ts
diff --git a/gui/src/renderer/lib/3dmap.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/3dmap.ts
index d0e130e4c8..d0e130e4c8 100644
--- a/gui/src/renderer/lib/3dmap.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/3dmap.ts
diff --git a/gui/src/renderer/lib/account.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/account.ts
index e15097a7fd..e15097a7fd 100644
--- a/gui/src/renderer/lib/account.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/account.ts
diff --git a/gui/src/renderer/lib/actionsHook.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/actionsHook.ts
index fc046d0a66..fc046d0a66 100644
--- a/gui/src/renderer/lib/actionsHook.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/actionsHook.ts
diff --git a/gui/src/renderer/lib/api-access-methods.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/api-access-methods.ts
index 90d406cc3d..90d406cc3d 100644
--- a/gui/src/renderer/lib/api-access-methods.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/api-access-methods.ts
diff --git a/gui/src/renderer/lib/constraint-updater.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/constraint-updater.ts
index 6ea021ece9..6ea021ece9 100644
--- a/gui/src/renderer/lib/constraint-updater.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/constraint-updater.ts
diff --git a/gui/src/renderer/lib/filter-locations.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts
index c3a0f7feb9..c3a0f7feb9 100644
--- a/gui/src/renderer/lib/filter-locations.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/filter-locations.ts
diff --git a/gui/src/renderer/lib/history.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/history.tsx
index 6d92a0e88c..6d92a0e88c 100644
--- a/gui/src/renderer/lib/history.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/history.tsx
diff --git a/gui/src/renderer/lib/html-formatter.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/html-formatter.tsx
index 452b7fb1e8..452b7fb1e8 100644
--- a/gui/src/renderer/lib/html-formatter.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/html-formatter.tsx
diff --git a/gui/src/renderer/lib/ip.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/ip.ts
index db458aa256..db458aa256 100644
--- a/gui/src/renderer/lib/ip.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/ip.ts
diff --git a/gui/src/renderer/lib/ipc-event-channel.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/ipc-event-channel.ts
index 03b5471cb7..03b5471cb7 100644
--- a/gui/src/renderer/lib/ipc-event-channel.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/ipc-event-channel.ts
diff --git a/gui/src/renderer/lib/load-translations.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/load-translations.ts
index d418f54b4f..d418f54b4f 100644
--- a/gui/src/renderer/lib/load-translations.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/load-translations.ts
diff --git a/gui/src/renderer/lib/logging.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/logging.ts
index 7c8dc9e542..7c8dc9e542 100644
--- a/gui/src/renderer/lib/logging.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/logging.ts
diff --git a/gui/src/renderer/lib/relay-settings-hooks.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/relay-settings-hooks.ts
index 14fe99849d..14fe99849d 100644
--- a/gui/src/renderer/lib/relay-settings-hooks.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/relay-settings-hooks.ts
diff --git a/gui/src/renderer/lib/routeHelpers.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/routeHelpers.ts
index 50c5867768..50c5867768 100644
--- a/gui/src/renderer/lib/routeHelpers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/routeHelpers.ts
diff --git a/gui/src/renderer/lib/routes.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/routes.ts
index 89b50c1fb0..89b50c1fb0 100644
--- a/gui/src/renderer/lib/routes.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/routes.ts
diff --git a/gui/src/renderer/lib/styles.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/styles.ts
index 554e669373..554e669373 100644
--- a/gui/src/renderer/lib/styles.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/styles.ts
diff --git a/gui/src/renderer/lib/utility-hooks.ts b/desktop/packages/mullvad-vpn/src/renderer/lib/utility-hooks.ts
index 1efc49c804..1efc49c804 100644
--- a/gui/src/renderer/lib/utility-hooks.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/utility-hooks.ts
diff --git a/gui/src/renderer/lib/will-exit.tsx b/desktop/packages/mullvad-vpn/src/renderer/lib/will-exit.tsx
index 67ce4c5549..67ce4c5549 100644
--- a/gui/src/renderer/lib/will-exit.tsx
+++ b/desktop/packages/mullvad-vpn/src/renderer/lib/will-exit.tsx
diff --git a/gui/src/renderer/preload.ts b/desktop/packages/mullvad-vpn/src/renderer/preload.ts
index 864d1dc4d0..864d1dc4d0 100644
--- a/gui/src/renderer/preload.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/preload.ts
diff --git a/gui/src/renderer/redux/account/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/account/actions.ts
index 98a689cd76..98a689cd76 100644
--- a/gui/src/renderer/redux/account/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/account/actions.ts
diff --git a/gui/src/renderer/redux/account/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/account/reducers.ts
index a5cf1611ac..a5cf1611ac 100644
--- a/gui/src/renderer/redux/account/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/account/reducers.ts
diff --git a/gui/src/renderer/redux/connection/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/connection/actions.ts
index 8a3f98efe5..8a3f98efe5 100644
--- a/gui/src/renderer/redux/connection/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/connection/actions.ts
diff --git a/gui/src/renderer/redux/connection/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/connection/reducers.ts
index b597d29a64..b597d29a64 100644
--- a/gui/src/renderer/redux/connection/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/connection/reducers.ts
diff --git a/gui/src/renderer/redux/settings-import/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/actions.ts
index f31af1c1c6..f31af1c1c6 100644
--- a/gui/src/renderer/redux/settings-import/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/actions.ts
diff --git a/gui/src/renderer/redux/settings-import/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/reducers.ts
index 76908bc67a..76908bc67a 100644
--- a/gui/src/renderer/redux/settings-import/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/settings-import/reducers.ts
diff --git a/gui/src/renderer/redux/settings/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/actions.ts
index d2a3fb1c4a..d2a3fb1c4a 100644
--- a/gui/src/renderer/redux/settings/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/actions.ts
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts
index 6eb595467b..6eb595467b 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/settings/reducers.ts
diff --git a/gui/src/renderer/redux/store.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/store.ts
index 073fe67d30..073fe67d30 100644
--- a/gui/src/renderer/redux/store.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/store.ts
diff --git a/gui/src/renderer/redux/support/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/support/actions.ts
index de26a17908..de26a17908 100644
--- a/gui/src/renderer/redux/support/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/support/actions.ts
diff --git a/gui/src/renderer/redux/support/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/support/reducers.ts
index 94ed2a9123..94ed2a9123 100644
--- a/gui/src/renderer/redux/support/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/support/reducers.ts
diff --git a/gui/src/renderer/redux/userinterface/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/actions.ts
index 238835318e..238835318e 100644
--- a/gui/src/renderer/redux/userinterface/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/actions.ts
diff --git a/gui/src/renderer/redux/userinterface/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/reducers.ts
index 89427e9b06..89427e9b06 100644
--- a/gui/src/renderer/redux/userinterface/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/userinterface/reducers.ts
diff --git a/gui/src/renderer/redux/version/actions.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/version/actions.ts
index 8b3f1461f4..8b3f1461f4 100644
--- a/gui/src/renderer/redux/version/actions.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/version/actions.ts
diff --git a/gui/src/renderer/redux/version/reducers.ts b/desktop/packages/mullvad-vpn/src/renderer/redux/version/reducers.ts
index 1128c82bac..1128c82bac 100644
--- a/gui/src/renderer/redux/version/reducers.ts
+++ b/desktop/packages/mullvad-vpn/src/renderer/redux/version/reducers.ts
diff --git a/gui/src/shared/account-expiry.ts b/desktop/packages/mullvad-vpn/src/shared/account-expiry.ts
index 1b40848220..1b40848220 100644
--- a/gui/src/shared/account-expiry.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/account-expiry.ts
diff --git a/gui/src/shared/application-types.ts b/desktop/packages/mullvad-vpn/src/shared/application-types.ts
index 526d994d7b..526d994d7b 100644
--- a/gui/src/shared/application-types.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/application-types.ts
diff --git a/gui/src/shared/connect-helper.ts b/desktop/packages/mullvad-vpn/src/shared/connect-helper.ts
index 26128513ed..26128513ed 100644
--- a/gui/src/shared/connect-helper.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/connect-helper.ts
diff --git a/gui/src/shared/daemon-rpc-types.ts b/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts
index 1522d43b39..1522d43b39 100644
--- a/gui/src/shared/daemon-rpc-types.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/daemon-rpc-types.ts
diff --git a/gui/src/shared/date-helper.ts b/desktop/packages/mullvad-vpn/src/shared/date-helper.ts
index be83473cfa..be83473cfa 100644
--- a/gui/src/shared/date-helper.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/date-helper.ts
diff --git a/gui/src/shared/gettext.ts b/desktop/packages/mullvad-vpn/src/shared/gettext.ts
index 90391107e0..90391107e0 100644
--- a/gui/src/shared/gettext.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/gettext.ts
diff --git a/gui/src/shared/gui-settings-state.ts b/desktop/packages/mullvad-vpn/src/shared/gui-settings-state.ts
index 68e958324a..68e958324a 100644
--- a/gui/src/shared/gui-settings-state.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/gui-settings-state.ts
diff --git a/gui/src/shared/ipc-helpers.ts b/desktop/packages/mullvad-vpn/src/shared/ipc-helpers.ts
index c49b7df9b8..c49b7df9b8 100644
--- a/gui/src/shared/ipc-helpers.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/ipc-helpers.ts
diff --git a/gui/src/shared/ipc-schema.ts b/desktop/packages/mullvad-vpn/src/shared/ipc-schema.ts
index a2282e2849..a2282e2849 100644
--- a/gui/src/shared/ipc-schema.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/ipc-schema.ts
diff --git a/gui/src/shared/ipc-types.ts b/desktop/packages/mullvad-vpn/src/shared/ipc-types.ts
index c186c9ac83..c186c9ac83 100644
--- a/gui/src/shared/ipc-types.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/ipc-types.ts
diff --git a/gui/src/shared/localization-contexts.ts b/desktop/packages/mullvad-vpn/src/shared/localization-contexts.ts
index f30212025c..f30212025c 100644
--- a/gui/src/shared/localization-contexts.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/localization-contexts.ts
diff --git a/gui/src/shared/logging-types.ts b/desktop/packages/mullvad-vpn/src/shared/logging-types.ts
index 8b4ff9e306..8b4ff9e306 100644
--- a/gui/src/shared/logging-types.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/logging-types.ts
diff --git a/gui/src/shared/logging.ts b/desktop/packages/mullvad-vpn/src/shared/logging.ts
index c685289bf8..c685289bf8 100644
--- a/gui/src/shared/logging.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/logging.ts
diff --git a/gui/src/shared/notifications/account-expired.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/account-expired.ts
index a7af4f2c8b..a7af4f2c8b 100644
--- a/gui/src/shared/notifications/account-expired.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/account-expired.ts
diff --git a/gui/src/shared/notifications/block-when-disconnected.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/block-when-disconnected.ts
index 2f3df718b6..2f3df718b6 100644
--- a/gui/src/shared/notifications/block-when-disconnected.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/block-when-disconnected.ts
diff --git a/gui/src/shared/notifications/close-to-account-expiry.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/close-to-account-expiry.ts
index 4fde6ab395..4fde6ab395 100644
--- a/gui/src/shared/notifications/close-to-account-expiry.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/close-to-account-expiry.ts
diff --git a/gui/src/shared/notifications/connected.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/connected.ts
index c66339fe9e..c66339fe9e 100644
--- a/gui/src/shared/notifications/connected.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/connected.ts
diff --git a/gui/src/shared/notifications/connecting.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/connecting.ts
index 444dd42beb..444dd42beb 100644
--- a/gui/src/shared/notifications/connecting.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/connecting.ts
diff --git a/gui/src/shared/notifications/daemon-disconnected.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/daemon-disconnected.ts
index 50a62266d0..50a62266d0 100644
--- a/gui/src/shared/notifications/daemon-disconnected.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/daemon-disconnected.ts
diff --git a/gui/src/shared/notifications/disconnected.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/disconnected.ts
index 874cb11b3e..874cb11b3e 100644
--- a/gui/src/shared/notifications/disconnected.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/disconnected.ts
diff --git a/gui/src/shared/notifications/error.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/error.ts
index af82748d7b..af82748d7b 100644
--- a/gui/src/shared/notifications/error.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/error.ts
diff --git a/gui/src/shared/notifications/inconsistent-version.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/inconsistent-version.ts
index e4f7a8ddc1..e4f7a8ddc1 100644
--- a/gui/src/shared/notifications/inconsistent-version.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/inconsistent-version.ts
diff --git a/gui/src/shared/notifications/new-device.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/new-device.ts
index 7d0fe9f299..7d0fe9f299 100644
--- a/gui/src/shared/notifications/new-device.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/new-device.ts
diff --git a/gui/src/shared/notifications/notification.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts
index 87166aab4d..87166aab4d 100644
--- a/gui/src/shared/notifications/notification.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/notification.ts
diff --git a/gui/src/shared/notifications/reconnecting.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/reconnecting.ts
index 4362c0edb6..4362c0edb6 100644
--- a/gui/src/shared/notifications/reconnecting.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/reconnecting.ts
diff --git a/gui/src/shared/notifications/unsupported-version.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/unsupported-version.ts
index 15c622703c..15c622703c 100644
--- a/gui/src/shared/notifications/unsupported-version.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/unsupported-version.ts
diff --git a/gui/src/shared/notifications/update-available.ts b/desktop/packages/mullvad-vpn/src/shared/notifications/update-available.ts
index 732e7bb9a8..732e7bb9a8 100644
--- a/gui/src/shared/notifications/update-available.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/notifications/update-available.ts
diff --git a/gui/src/shared/scheduler.ts b/desktop/packages/mullvad-vpn/src/shared/scheduler.ts
index 2716097194..2716097194 100644
--- a/gui/src/shared/scheduler.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/scheduler.ts
diff --git a/gui/src/shared/string-helpers.ts b/desktop/packages/mullvad-vpn/src/shared/string-helpers.ts
index 983a8e8796..983a8e8796 100644
--- a/gui/src/shared/string-helpers.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/string-helpers.ts
diff --git a/gui/src/shared/utils.ts b/desktop/packages/mullvad-vpn/src/shared/utils.ts
index 042c56385a..042c56385a 100644
--- a/gui/src/shared/utils.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/utils.ts
diff --git a/gui/src/shared/version.ts b/desktop/packages/mullvad-vpn/src/shared/version.ts
index dc87afaae0..dc87afaae0 100644
--- a/gui/src/shared/version.ts
+++ b/desktop/packages/mullvad-vpn/src/shared/version.ts
diff --git a/gui/standalone-tests.sea.json b/desktop/packages/mullvad-vpn/standalone-tests.sea.json
index 1b02e4fe48..1b02e4fe48 100644
--- a/gui/standalone-tests.sea.json
+++ b/desktop/packages/mullvad-vpn/standalone-tests.sea.json
diff --git a/gui/standalone-tests.ts b/desktop/packages/mullvad-vpn/standalone-tests.ts
index 176711b1d5..ddba27fb6f 100644
--- a/gui/standalone-tests.ts
+++ b/desktop/packages/mullvad-vpn/standalone-tests.ts
@@ -7,7 +7,7 @@ import path from 'path';
// This file is bundled into a standalone executable able to run e2e tests against an installed
// version of the app. This file is the entrypoint in the executable and extracts the required
-// assets and performs the tests. More info in /gui/README.md.
+// assets and performs the tests. More info in /desktop/packages/mullvad-vpn/README.md.
const tmpDir = path.join(os.tmpdir(), 'mullvad-standalone-tests');
diff --git a/gui/tasks/assets.js b/desktop/packages/mullvad-vpn/tasks/assets.js
index 8028124180..686b969e70 100644
--- a/gui/tasks/assets.js
+++ b/desktop/packages/mullvad-vpn/tasks/assets.js
@@ -21,7 +21,7 @@ function copyLocales() {
}
function copyGeoData() {
- return src('../dist-assets/geo/*.gl').pipe(dest('build/assets/geo'));
+ return src('../../../dist-assets/geo/*.gl').pipe(dest('build/assets/geo'));
}
copyStaticAssets.displayName = 'copy-static-assets';
diff --git a/gui/tasks/distribution.js b/desktop/packages/mullvad-vpn/tasks/distribution.js
index dab7b9d9e7..b3a4260434 100644
--- a/gui/tasks/distribution.js
+++ b/desktop/packages/mullvad-vpn/tasks/distribution.js
@@ -60,7 +60,7 @@ const config = {
'node_modules/',
'!node_modules/grpc-tools',
'!node_modules/@types',
- '!node_modules/nseventmonitor/build/Release',
+ '!node_modules/nseventforwarder/target',
],
// Make sure that all files declared in "extraResources" exists and abort if they don't.
@@ -84,7 +84,7 @@ const config = {
target: 'pkg',
arch: getMacArch(),
},
- singleArchFiles: 'node_modules/nseventmonitor/lib/binding/Release/**',
+ singleArchFiles: 'node_modules/nseventforwarder/dist/**',
artifactName: 'MullvadVPN-${version}.${ext}',
category: 'public.app-category.tools',
icon: distAssets('icon-macos.icns'),
@@ -329,13 +329,15 @@ function packMac() {
config: {
...config,
asarUnpack: ['**/*.node'],
- beforeBuild: (options) => {
+ beforeBuild: async (options) => {
switch (options.arch) {
case 'x64':
process.env.TARGET_TRIPLE = 'x86_64-apple-darwin';
+ execFileSync('npm', ['-w', 'nseventforwarder', 'run', 'build-x86']);
break;
case 'arm64':
process.env.TARGET_TRIPLE = 'aarch64-apple-darwin';
+ execFileSync('npm', ['-w', 'nseventforwarder', 'run', 'build-arm']);
break;
default:
delete process.env.TARGET_TRIPLE;
@@ -348,17 +350,7 @@ function packMac() {
return true;
},
beforePack: async (context) => {
- try {
- // `@electron/universal` tries to lipo together libraries built for the same architecture
- // if they're present for both targets. So make sure we remove libraries for other archs.
- // Remove the workaround once the issue has been fixed:
- // https://github.com/electron/universal/issues/41#issuecomment-1496288834
- await fs.promises.rm('node_modules/nseventmonitor/lib/binding/Release', {
- recursive: true,
- });
- } catch {
- // noop
- }
+ await removeNseventforwarderNativeModules();
config.beforePack?.(context);
},
afterPack: (context) => {
@@ -435,15 +427,15 @@ function packLinux() {
}
function buildAssets(relativePath) {
- return path.join(path.resolve(__dirname, '../../build'), relativePath);
+ return root(path.join('build', relativePath));
}
function distAssets(relativePath) {
- return path.join(path.resolve(__dirname, '../../dist-assets'), relativePath);
+ return root(path.join('dist-assets', relativePath));
}
function root(relativePath) {
- return path.join(path.resolve(__dirname, '../../'), relativePath);
+ return path.join(path.resolve(__dirname, '../../../../'), relativePath);
}
function getWindowsDistSubdir() {
@@ -538,6 +530,21 @@ function productVersion(extraArgs) {
return execFileSync('cargo', args, { encoding: 'utf-8' }).trim();
}
+// `@electron/universal` tries to lipo together libraries built for the same architecture
+// if they're present for both targets. So make sure we remove libraries for other archs.
+// Remove the workaround once the issue has been fixed:
+// https://github.com/electron/universal/issues/41#issuecomment-1496288834
+//
+// dist/darwin-x64/index.node
+// dist/darwin-arm64/index.node
+async function removeNseventforwarderNativeModules() {
+ try {
+ await fs.promises.rm('../../node_modules/nseventforwarder/dist/', { recursive: true });
+ } catch {
+ // noop
+ }
+}
+
packWin.displayName = 'builder-win';
packMac.displayName = 'builder-mac';
packLinux.displayName = 'builder-linux';
diff --git a/gui/tasks/electron.js b/desktop/packages/mullvad-vpn/tasks/electron.js
index e3360f36fb..e3360f36fb 100644
--- a/gui/tasks/electron.js
+++ b/desktop/packages/mullvad-vpn/tasks/electron.js
diff --git a/gui/tasks/scripts.js b/desktop/packages/mullvad-vpn/tasks/scripts.js
index 20acc69c35..9074cd1f1d 100644
--- a/gui/tasks/scripts.js
+++ b/desktop/packages/mullvad-vpn/tasks/scripts.js
@@ -113,12 +113,22 @@ function buildProto(callback) {
exec('bash ./scripts/build-proto.sh', (err) => callback(err));
}
+function buildNseventforwarder(callback) {
+ if (process.platform === 'darwin') {
+ exec('npm -w nseventforwarder run build-debug', (err) => callback(err));
+ } else {
+ callback();
+ }
+}
+
compileScripts.displayName = 'compile-scripts';
buildProto.displayName = 'build-proto';
+buildNseventforwarder.displayName = 'build-nseventforwarder';
exports.build = series(
compileScripts,
parallel(makeBrowserifyPreload(false), makeBrowserifyRenderer(false)),
);
exports.buildProto = buildProto;
+exports.buildNseventforwarder = buildNseventforwarder;
exports.makeWatchCompiler = makeWatchCompiler;
diff --git a/gui/tasks/watch.js b/desktop/packages/mullvad-vpn/tasks/watch.js
index c64c4d48d3..c64c4d48d3 100644
--- a/gui/tasks/watch.js
+++ b/desktop/packages/mullvad-vpn/tasks/watch.js
diff --git a/gui/test/e2e/installed/installed-utils.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/installed-utils.ts
index 9e4dd6c79c..9e4dd6c79c 100644
--- a/gui/test/e2e/installed/installed-utils.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/installed-utils.ts
diff --git a/gui/test/e2e/installed/playwright.config.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/playwright.config.ts
index 9487e06905..9487e06905 100644
--- a/gui/test/e2e/installed/playwright.config.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/playwright.config.ts
diff --git a/gui/test/e2e/installed/state-dependent/api-access-methods.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/api-access-methods.spec.ts
index a447b5975e..a447b5975e 100644
--- a/gui/test/e2e/installed/state-dependent/api-access-methods.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/api-access-methods.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/custom-bridge.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/custom-bridge.spec.ts
index 34efb60f26..34efb60f26 100644
--- a/gui/test/e2e/installed/state-dependent/custom-bridge.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/custom-bridge.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/device-revoked.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/device-revoked.spec.ts
index 2b9f8d0c58..2b9f8d0c58 100644
--- a/gui/test/e2e/installed/state-dependent/device-revoked.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/device-revoked.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/disconnected.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/disconnected.spec.ts
index 253545dad7..253545dad7 100644
--- a/gui/test/e2e/installed/state-dependent/disconnected.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/disconnected.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/location.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/location.spec.ts
index f0bd2e11f7..f0bd2e11f7 100644
--- a/gui/test/e2e/installed/state-dependent/location.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/location.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/login.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/login.spec.ts
index ad49c88edd..ad49c88edd 100644
--- a/gui/test/e2e/installed/state-dependent/login.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/login.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts
index 6d49173bcd..6d49173bcd 100644
--- a/gui/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/macos-split-tunneling.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/obfuscation.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/obfuscation.spec.ts
index b9518f8717..b9518f8717 100644
--- a/gui/test/e2e/installed/state-dependent/obfuscation.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/obfuscation.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/settings-import.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings-import.spec.ts
index d9a8859f76..d9a8859f76 100644
--- a/gui/test/e2e/installed/state-dependent/settings-import.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings-import.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/settings.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings.spec.ts
index 343d0fc430..343d0fc430 100644
--- a/gui/test/e2e/installed/state-dependent/settings.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/settings.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/too-many-devices.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/too-many-devices.spec.ts
index 8ff8675b67..8ff8675b67 100644
--- a/gui/test/e2e/installed/state-dependent/too-many-devices.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/too-many-devices.spec.ts
diff --git a/gui/test/e2e/installed/state-dependent/tunnel-state.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts
index 15ce240e57..15ce240e57 100644
--- a/gui/test/e2e/installed/state-dependent/tunnel-state.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/tunnel-state.spec.ts
diff --git a/gui/test/e2e/mocked/expired-account-error-view.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/expired-account-error-view.spec.ts
index e63e62f51f..e63e62f51f 100644
--- a/gui/test/e2e/mocked/expired-account-error-view.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/expired-account-error-view.spec.ts
diff --git a/gui/test/e2e/mocked/feature-indicators.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators.spec.ts
index 6e0e034c35..6e0e034c35 100644
--- a/gui/test/e2e/mocked/feature-indicators.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/feature-indicators.spec.ts
diff --git a/gui/test/e2e/mocked/main.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/main.spec.ts
index cfd6d26302..cfd6d26302 100644
--- a/gui/test/e2e/mocked/main.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/main.spec.ts
diff --git a/gui/test/e2e/mocked/mocked-utils.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts
index 2ae14f8c28..2ae14f8c28 100644
--- a/gui/test/e2e/mocked/mocked-utils.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/mocked-utils.ts
diff --git a/gui/test/e2e/mocked/notifications.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/notifications.spec.ts
index 7af0d1297a..7af0d1297a 100644
--- a/gui/test/e2e/mocked/notifications.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/notifications.spec.ts
diff --git a/gui/test/e2e/mocked/select-location.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location.spec.ts
index 342d511b9e..342d511b9e 100644
--- a/gui/test/e2e/mocked/select-location.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/select-location.spec.ts
diff --git a/gui/test/e2e/mocked/settings.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/settings.spec.ts
index 52dbc72402..52dbc72402 100644
--- a/gui/test/e2e/mocked/settings.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/settings.spec.ts
diff --git a/gui/test/e2e/mocked/tunnel-state.spec.ts b/desktop/packages/mullvad-vpn/test/e2e/mocked/tunnel-state.spec.ts
index 6ecf707ba6..6ecf707ba6 100644
--- a/gui/test/e2e/mocked/tunnel-state.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/mocked/tunnel-state.spec.ts
diff --git a/gui/test/e2e/setup/main.ts b/desktop/packages/mullvad-vpn/test/e2e/setup/main.ts
index d8f3ceee48..d8f3ceee48 100644
--- a/gui/test/e2e/setup/main.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/setup/main.ts
diff --git a/gui/test/e2e/shared/tunnel-state.ts b/desktop/packages/mullvad-vpn/test/e2e/shared/tunnel-state.ts
index 6a5fbfaf09..6a5fbfaf09 100644
--- a/gui/test/e2e/shared/tunnel-state.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/shared/tunnel-state.ts
diff --git a/gui/test/e2e/utils.ts b/desktop/packages/mullvad-vpn/test/e2e/utils.ts
index 97524f69bc..97524f69bc 100644
--- a/gui/test/e2e/utils.ts
+++ b/desktop/packages/mullvad-vpn/test/e2e/utils.ts
diff --git a/gui/test/unit/account-data-cache.spec.ts b/desktop/packages/mullvad-vpn/test/unit/account-data-cache.spec.ts
index d4147a6603..d4147a6603 100644
--- a/gui/test/unit/account-data-cache.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/account-data-cache.spec.ts
diff --git a/gui/test/unit/changelog.spec.ts b/desktop/packages/mullvad-vpn/test/unit/changelog.spec.ts
index 774dca956b..774dca956b 100644
--- a/gui/test/unit/changelog.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/changelog.spec.ts
diff --git a/gui/test/unit/date-helper.spec.ts b/desktop/packages/mullvad-vpn/test/unit/date-helper.spec.ts
index 82c4faeac7..82c4faeac7 100644
--- a/gui/test/unit/date-helper.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/date-helper.spec.ts
diff --git a/gui/test/unit/history.spec.ts b/desktop/packages/mullvad-vpn/test/unit/history.spec.ts
index 739c65c5ca..739c65c5ca 100644
--- a/gui/test/unit/history.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/history.spec.ts
diff --git a/gui/test/unit/ip.spec.ts b/desktop/packages/mullvad-vpn/test/unit/ip.spec.ts
index 5f6a265d25..5f6a265d25 100644
--- a/gui/test/unit/ip.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/ip.spec.ts
diff --git a/gui/test/unit/keyframe-animation.spec.ts b/desktop/packages/mullvad-vpn/test/unit/keyframe-animation.spec.ts
index 0ba302e65c..0ba302e65c 100644
--- a/gui/test/unit/keyframe-animation.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/keyframe-animation.spec.ts
diff --git a/gui/test/unit/list-diff.spec.ts b/desktop/packages/mullvad-vpn/test/unit/list-diff.spec.ts
index e64d79b193..e64d79b193 100644
--- a/gui/test/unit/list-diff.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/list-diff.spec.ts
diff --git a/gui/test/unit/logging.spec.ts b/desktop/packages/mullvad-vpn/test/unit/logging.spec.ts
index 393b631ba5..393b631ba5 100644
--- a/gui/test/unit/logging.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/logging.spec.ts
diff --git a/gui/test/unit/notification-evaluation.spec.ts b/desktop/packages/mullvad-vpn/test/unit/notification-evaluation.spec.ts
index d05e967efc..d05e967efc 100644
--- a/gui/test/unit/notification-evaluation.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/notification-evaluation.spec.ts
diff --git a/gui/test/unit/setup.ts b/desktop/packages/mullvad-vpn/test/unit/setup.ts
index a565ec50ca..a565ec50ca 100644
--- a/gui/test/unit/setup.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/setup.ts
diff --git a/gui/test/unit/tunnel-state.spec.ts b/desktop/packages/mullvad-vpn/test/unit/tunnel-state.spec.ts
index e751b50c57..e751b50c57 100644
--- a/gui/test/unit/tunnel-state.spec.ts
+++ b/desktop/packages/mullvad-vpn/test/unit/tunnel-state.spec.ts
diff --git a/gui/tsconfig.dev.json b/desktop/packages/mullvad-vpn/tsconfig.dev.json
index 91873fa1d1..91873fa1d1 100644
--- a/gui/tsconfig.dev.json
+++ b/desktop/packages/mullvad-vpn/tsconfig.dev.json
diff --git a/gui/tsconfig.json b/desktop/packages/mullvad-vpn/tsconfig.json
index c717e76571..f76c628554 100644
--- a/gui/tsconfig.json
+++ b/desktop/packages/mullvad-vpn/tsconfig.json
@@ -1,21 +1,15 @@
{
+ "extends": "../../tsconfig.json",
"compilerOptions": {
- "alwaysStrict": true,
"esModuleInterop": true,
- "forceConsistentCasingInFileNames": true,
"jsx": "react-jsx",
"module": "commonjs",
- "noImplicitReturns": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
"outDir": "build",
- "resolveJsonModule": true,
"rootDirs": [
"src",
"assets"
],
"skipLibCheck": true,
- "strict": true,
"target": "es2021",
"lib": [
"es2021",
@@ -23,7 +17,8 @@
],
"typeRoots": [
"./types",
- "node_modules/@types"
+ "node_modules/@types",
+ "../../node_modules/@types"
]
},
"exclude": [
diff --git a/gui/types/argv-split/index.d.ts b/desktop/packages/mullvad-vpn/types/argv-split/index.d.ts
index 625a0c383f..625a0c383f 100644
--- a/gui/types/argv-split/index.d.ts
+++ b/desktop/packages/mullvad-vpn/types/argv-split/index.d.ts
diff --git a/gui/types/global/index.d.ts b/desktop/packages/mullvad-vpn/types/global/index.d.ts
index fafa8e3b8c..fafa8e3b8c 100644
--- a/gui/types/global/index.d.ts
+++ b/desktop/packages/mullvad-vpn/types/global/index.d.ts
diff --git a/desktop/packages/nseventforwarder/.gitignore b/desktop/packages/nseventforwarder/.gitignore
new file mode 100644
index 0000000000..1444c8f490
--- /dev/null
+++ b/desktop/packages/nseventforwarder/.gitignore
@@ -0,0 +1,8 @@
+target
+index.node
+**/node_modules
+**/.DS_Store
+npm-debug.log*
+lib
+*.log
+dist/
diff --git a/desktop/packages/nseventforwarder/Cargo.lock b/desktop/packages/nseventforwarder/Cargo.lock
new file mode 100644
index 0000000000..c334d14c6d
--- /dev/null
+++ b/desktop/packages/nseventforwarder/Cargo.lock
@@ -0,0 +1,325 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "bitflags"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+
+[[package]]
+name = "block2"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c132eebf10f5cad5289222520a4a058514204aed6d791f1cf4fe8088b82d15f"
+dependencies = [
+ "objc2",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.159"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5"
+
+[[package]]
+name = "libloading"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
+dependencies = [
+ "cfg-if",
+ "windows-targets",
+]
+
+[[package]]
+name = "neon"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d75440242411c87dc39847b0e33e961ec1f10326a9d8ecf9c1ea64a3b3c13dc"
+dependencies = [
+ "getrandom",
+ "libloading",
+ "neon-macros",
+ "once_cell",
+ "semver",
+ "send_wrapper",
+ "smallvec",
+]
+
+[[package]]
+name = "neon-macros"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6813fde79b646e47e7ad75f480aa80ef76a5d9599e2717407961531169ee38b"
+dependencies = [
+ "quote",
+ "syn",
+ "syn-mid",
+]
+
+[[package]]
+name = "nseventforwarder"
+version = "0.1.0"
+dependencies = [
+ "block2",
+ "neon",
+ "objc2-app-kit",
+]
+
+[[package]]
+name = "objc-sys"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cdb91bdd390c7ce1a8607f35f3ca7151b65afc0ff5ff3b34fa350f7d7c7e4310"
+
+[[package]]
+name = "objc2"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46a785d4eeff09c14c487497c162e92766fbb3e4059a71840cecc03d9a50b804"
+dependencies = [
+ "objc-sys",
+ "objc2-encode",
+]
+
+[[package]]
+name = "objc2-app-kit"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
+dependencies = [
+ "bitflags",
+ "block2",
+ "libc",
+ "objc2",
+ "objc2-core-data",
+ "objc2-core-image",
+ "objc2-foundation",
+ "objc2-quartz-core",
+]
+
+[[package]]
+name = "objc2-core-data"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
+dependencies = [
+ "bitflags",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-core-image"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55260963a527c99f1819c4f8e3b47fe04f9650694ef348ffd2227e8196d34c80"
+dependencies = [
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
+]
+
+[[package]]
+name = "objc2-encode"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7891e71393cd1f227313c9379a26a584ff3d7e6e7159e988851f0934c993f0f8"
+
+[[package]]
+name = "objc2-foundation"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
+dependencies = [
+ "bitflags",
+ "block2",
+ "libc",
+ "objc2",
+]
+
+[[package]]
+name = "objc2-metal"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
+dependencies = [
+ "bitflags",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+]
+
+[[package]]
+name = "objc2-quartz-core"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
+dependencies = [
+ "bitflags",
+ "block2",
+ "objc2",
+ "objc2-foundation",
+ "objc2-metal",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "send_wrapper"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "syn"
+version = "2.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn-mid"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5dc35bb08dd1ca3dfb09dce91fd2d13294d6711c88897d9a9d60acf39bce049"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
diff --git a/desktop/packages/nseventforwarder/Cargo.toml b/desktop/packages/nseventforwarder/Cargo.toml
new file mode 100644
index 0000000000..af92e12b9f
--- /dev/null
+++ b/desktop/packages/nseventforwarder/Cargo.toml
@@ -0,0 +1,7 @@
+[workspace]
+members = ["crates/nseventforwarder"]
+resolver = "2"
+
+[profile.release]
+strip = true # Automatically strip symbols from the binary.
+opt-level = "z" # Optimize for size.
diff --git a/desktop/packages/nseventforwarder/README.md b/desktop/packages/nseventforwarder/README.md
new file mode 100644
index 0000000000..4d758b62db
--- /dev/null
+++ b/desktop/packages/nseventforwarder/README.md
@@ -0,0 +1,19 @@
+# nseventforwarder
+
+## Building nseventforwarder
+
+Building nseventforwarder requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support).
+
+To run the build, run:
+
+```sh
+$ npm run build-debug
+```
+
+## Learn More
+
+Learn more about:
+
+- [Neon](https://neon-bindings.com).
+- [Rust](https://www.rust-lang.org).
+- [Node](https://nodejs.org).
diff --git a/desktop/packages/nseventforwarder/build.sh b/desktop/packages/nseventforwarder/build.sh
new file mode 100644
index 0000000000..0b72762132
--- /dev/null
+++ b/desktop/packages/nseventforwarder/build.sh
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+set -eu
+
+# Parse arguments
+while [[ "$#" -gt 0 ]]; do
+ case $1 in
+ --target)
+ TARGET_TRIPLE="$2"
+ shift
+ shift
+ ;;
+ *)
+ echo "Unknown parameter: $1"
+ exit 1
+ ;;
+ esac
+done
+
+# Fail if TARGET_TRIPLE is not set
+if [[ -z ${TARGET_TRIPLE-} ]]; then
+ echo "The variable TARGET_TRIPLE is not set."
+ echo "Set it using the --target flag"
+ echo "Available targets: aarch64-apple-darwin, x86_64-apple-darwin"
+ exit 1
+fi
+
+# Map the target to an output folder (where the dylib / node binary will end up).
+# This is neon-convention.
+case "$TARGET_TRIPLE" in
+ aarch64-apple-darwin) PLATFORM_DIR_NAME=darwin-arm64;;
+ x86_64-apple-darwin) PLATFORM_DIR_NAME=darwin-x64;;
+ *)
+ echo "Unknown target: $TARGET_TRIPLE"
+ echo "Available targets: aarch64-apple-darwin, x86_64-apple-darwin"
+ exit 1
+ ;;
+esac
+
+if [[ "$(uname -s)" == "Darwin" ]]; then
+ # We rely (heavily) on a pre-defined CARGO_TARGET_DIR, so don't let any user override it
+ unset CARGO_TARGET_DIR
+ npm run cargo-build -- --release --target "$TARGET_TRIPLE"
+ # Copy the neon library to the correct dists folder, which is what node will
+ # pick up when loading the library at runtime.
+ PLATFORM_DIR="dist/$PLATFORM_DIR_NAME"
+ mkdir -p $PLATFORM_DIR
+ cp "target/$TARGET_TRIPLE/release/libnseventforwarder.dylib" "$PLATFORM_DIR/index.node"
+fi
diff --git a/desktop/packages/nseventforwarder/crates/nseventforwarder/Cargo.toml b/desktop/packages/nseventforwarder/crates/nseventforwarder/Cargo.toml
new file mode 100644
index 0000000000..2243cbeae6
--- /dev/null
+++ b/desktop/packages/nseventforwarder/crates/nseventforwarder/Cargo.toml
@@ -0,0 +1,14 @@
+[package]
+name = "nseventforwarder"
+version = "0.1.0"
+license = "GPL-3.0"
+edition = "2021"
+exclude = ["index.node"]
+
+[lib]
+crate-type = ["cdylib"]
+
+[target.'cfg(target_os = "macos")'.dependencies]
+neon = "1"
+block2 = "0.5.1"
+objc2-app-kit = { version = "0.2.2", features = ["NSEvent", "block2"] }
diff --git a/desktop/packages/nseventforwarder/crates/nseventforwarder/src/lib.rs b/desktop/packages/nseventforwarder/crates/nseventforwarder/src/lib.rs
new file mode 100644
index 0000000000..c07fac279c
--- /dev/null
+++ b/desktop/packages/nseventforwarder/crates/nseventforwarder/src/lib.rs
@@ -0,0 +1,113 @@
+//! Forward [NSEvent]s from macOS to node.
+#![cfg(target_os = "macos")]
+#![warn(clippy::undocumented_unsafe_blocks)]
+
+use std::sync::{mpsc, Arc, Mutex};
+use std::thread::JoinHandle;
+
+use block2::RcBlock;
+use neon::prelude::{
+ Context, FunctionContext, Handle, JsFunction, JsNull, JsResult, JsUndefined, ModuleContext,
+ NeonResult, Object, Root,
+};
+use neon::result::Throw;
+use objc2_app_kit::{NSEvent, NSEventMask};
+
+#[neon::main]
+fn main(mut cx: ModuleContext) -> NeonResult<()> {
+ cx.export_function("start", start)?;
+ Ok(())
+}
+
+/// NSEventForwarder instance. It must be initialized by `start` and cleaned up by the callback
+/// function returned from `start`.
+static NSEVENTFORWARDER: Mutex<Option<NSEventForwarder>> = Mutex::new(None);
+
+struct NSEventForwarder {
+ /// The thread listening for incoming [NSEvent]s.
+ thread: JoinHandle<()>,
+ /// Signal for the current execution context to stop.
+ stop: mpsc::Sender<()>,
+}
+
+impl NSEventForwarder {
+ fn stop(self) {
+ // Tell the thread to stop running
+ let _ = self.stop.send(());
+ // Wait for the thread to shutdown
+ self.thread
+ .join()
+ .expect("Couldn't join the NSEventForwarder thread");
+ }
+}
+
+/// Register a callback to fire every time a [NSEventMask::LeftMouseDown] or [NSEventMask::RightMouseDown] event occur.
+///
+/// Returns a stop function to call when the original callback shouldn't be called anymore.
+fn start(mut cx: FunctionContext) -> JsResult<JsFunction> {
+ // Set up neon stuff
+ let callback = cx.argument::<JsFunction>(0)?.root(&mut cx);
+ let callback: Arc<Root<JsFunction>> = Arc::new(callback);
+ let channel = cx.channel();
+
+ // Start a long-running thread which handles incoming NS events
+ // When a new event is received, call the callback passed to us from the JavaScript caller
+ let (stop_tx, stop_rx) = mpsc::channel();
+ let join_handle = std::thread::spawn(move || {
+ // Scaffolding for calling the JavaScript callback function
+ let call_callback = move || {
+ let cb = Arc::clone(&callback);
+ channel.send(move |mut cx| {
+ let this = JsNull::new(&mut cx);
+ let _ = cb.to_inner(&mut cx).call(&mut cx, this, []);
+ Ok(())
+ })
+ };
+ // Start monitoring incoming NS events
+ let block = RcBlock::new(move |_event| {
+ call_callback();
+ });
+ // SAFETY: This function is trivially safe to call.
+ // Note: Make sure to cancel this handler with [NSEvent::removeMonitor] to unregister the
+ // listener.
+ let mut handler = unsafe {
+ NSEvent::addGlobalMonitorForEventsMatchingMask_handler(
+ NSEventMask::LeftMouseDown | NSEventMask::RightMouseDown,
+ &block,
+ )
+ };
+
+ // Listen for stop signal
+ let _ = stop_rx.recv();
+ if let Some(handler) = handler.take() {
+ // SAFETY: handler is removed only once.
+ // See https://developer.apple.com/documentation/appkit/nsevent/1533709-removemonitor#discussion
+ unsafe { NSEvent::removeMonitor(&handler) }
+ }
+ // The thread's execution will stop when this function returns
+ });
+
+ let new_context = NSEventForwarder {
+ thread: join_handle,
+ stop: stop_tx,
+ };
+
+ // Update the global NSEventForwarder state
+ let mut nseventmonitor_context = NSEVENTFORWARDER.lock().unwrap();
+ // Stop any old NSEventForwarder
+ if let Some(context) = nseventmonitor_context.take() {
+ context.stop();
+ }
+ let _ = nseventmonitor_context.insert(new_context);
+ drop(nseventmonitor_context);
+
+ JsFunction::new(&mut cx, stop)
+}
+
+fn stop(mut cx: FunctionContext<'_>) -> Result<Handle<'_, JsUndefined>, Throw> {
+ if let Some(context) = NSEVENTFORWARDER.lock().unwrap().take() {
+ context.stop();
+ }
+
+ Ok(JsUndefined::new(&mut cx))
+}
diff --git a/desktop/packages/nseventforwarder/eslint.config.mjs b/desktop/packages/nseventforwarder/eslint.config.mjs
new file mode 100644
index 0000000000..9e16ad57ea
--- /dev/null
+++ b/desktop/packages/nseventforwarder/eslint.config.mjs
@@ -0,0 +1,3 @@
+import workspaceConfig from '../../eslint.config.mjs';
+
+export default [...workspaceConfig, { ignores: ['lib/'] }];
diff --git a/desktop/packages/nseventforwarder/package.json b/desktop/packages/nseventforwarder/package.json
new file mode 100644
index 0000000000..1cd9985747
--- /dev/null
+++ b/desktop/packages/nseventforwarder/package.json
@@ -0,0 +1,41 @@
+{
+ "name": "nseventforwarder",
+ "version": "0.0.0",
+ "author": "Mullvad VPN",
+ "license": "GPL-3.0",
+ "description": "",
+ "main": "./lib/index.cjs",
+ "scripts": {
+ "cargo-build": "tsc && cargo build",
+ "build-debug": "npm run cargo-build && cp target/debug/libnseventforwarder.dylib target/debug/index.node",
+ "build-arm": "bash ./build.sh --target aarch64-apple-darwin",
+ "build-x86": "bash ./build.sh --target x86_64-apple-darwin",
+ "lint": "eslint .",
+ "lint-fix": "eslint --fix ."
+ },
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./lib/index.d.mts",
+ "default": "./lib/index.mjs"
+ },
+ "require": {
+ "types": "./lib/index.d.cts",
+ "default": "./lib/index.cjs"
+ }
+ }
+ },
+ "types": "./lib/index.d.cts",
+ "files": [
+ "lib/**/*.?({c,m}){t,j}s"
+ ],
+ "neon": {
+ "type": "library",
+ "org": "mullvad-vpn",
+ "platforms": "common",
+ "load": "./src/load.cts"
+ },
+ "dependencies": {
+ "@neon-rs/load": "^0.1.73"
+ }
+}
diff --git a/desktop/packages/nseventforwarder/src/index.cts b/desktop/packages/nseventforwarder/src/index.cts
new file mode 100644
index 0000000000..bee20624ae
--- /dev/null
+++ b/desktop/packages/nseventforwarder/src/index.cts
@@ -0,0 +1,14 @@
+// This module is the CJS entry point for the library.
+
+// The Rust addon.
+import * as addon from './load.cjs';
+
+// Use this declaration to assign types to the addon's exports,
+// which otherwise by default are `any`.
+declare module './load.cjs' {
+ function start(cb: () => void): () => void;
+}
+
+export function start(cb: () => void): () => void {
+ return addon.start(cb);
+}
diff --git a/desktop/packages/nseventforwarder/src/index.mts b/desktop/packages/nseventforwarder/src/index.mts
new file mode 100644
index 0000000000..5e1ab260f6
--- /dev/null
+++ b/desktop/packages/nseventforwarder/src/index.mts
@@ -0,0 +1,3 @@
+// This module is the ESM entry point for the library.
+
+export * from './index.cjs';
diff --git a/desktop/packages/nseventforwarder/src/load.cts b/desktop/packages/nseventforwarder/src/load.cts
new file mode 100644
index 0000000000..c82a2a9e48
--- /dev/null
+++ b/desktop/packages/nseventforwarder/src/load.cts
@@ -0,0 +1,11 @@
+// This module loads the platform-specific build of the addon on
+// the current system.
+
+/* eslint-disable @typescript-eslint/no-require-imports */
+module.exports = require('@neon-rs/load').proxy({
+ platforms: {
+ 'darwin-x64': () => require('../dist/darwin-x64'),
+ 'darwin-arm64': () => require('../dist/darwin-arm64'),
+ },
+ debug: () => require('../target/debug/index.node'),
+});
diff --git a/desktop/packages/nseventforwarder/tsconfig.json b/desktop/packages/nseventforwarder/tsconfig.json
new file mode 100644
index 0000000000..31e6603771
--- /dev/null
+++ b/desktop/packages/nseventforwarder/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "module": "node16",
+ "declaration": true,
+ "outDir": "lib"
+ },
+ "exclude": ["lib"]
+}
diff --git a/gui/prettier.config.mjs b/desktop/prettier.config.mjs
index 150678b825..150678b825 100644
--- a/gui/prettier.config.mjs
+++ b/desktop/prettier.config.mjs
diff --git a/desktop/tsconfig.json b/desktop/tsconfig.json
new file mode 100644
index 0000000000..937cc797ad
--- /dev/null
+++ b/desktop/tsconfig.json
@@ -0,0 +1,11 @@
+{
+ "compilerOptions": {
+ "strict": true,
+ "alwaysStrict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noImplicitReturns": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "resolveJsonModule": true
+ }
+}
diff --git a/graphics/README.md b/graphics/README.md
index 5403476c14..683ad2a2a7 100644
--- a/graphics/README.md
+++ b/graphics/README.md
@@ -16,7 +16,7 @@ feature graphics in the app's Google Play Store listing. The PNG image should be
The main and official mole logo. Used to generate icons on a bunch of platforms.
If `icon.svg` is changed. You need to run the following to generate new assets:
-* Desktop: `gui/scripts/build-logo-icons.sh`
+* Desktop: `desktop/packages/mullvad-vpn/scripts/build-logo-icons.sh`
* Android: `android/scripts/generate-pngs.sh`
### `icon-square.svg`
diff --git a/gui/standalone-tests.pkg.json b/gui/standalone-tests.pkg.json
deleted file mode 100644
index 8be6b53d5a..0000000000
--- a/gui/standalone-tests.pkg.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "assets": [
- "build/src/config.json",
- "build/src/renderer/lib/routes.js",
- "build/test/e2e/utils.js",
- "build/test/e2e/shared/*.js",
- "build/test/e2e/installed/**/*.js",
- "node_modules/.bin/playwright",
- "node_modules/playwright",
- "node_modules/playwright-core",
- "node_modules/@playwright/test"
- ]
-}
diff --git a/ios/convert-assets.rb b/ios/convert-assets.rb
index 06401408d3..62412a166e 100755
--- a/ios/convert-assets.rb
+++ b/ios/convert-assets.rb
@@ -10,7 +10,10 @@ XCASSETS_DIR = File.join(SCRIPT_DIR, "MullvadVPN/Supporting Files/Assets.xcasset
# graphical assets sources
APPICON_PATH = File.join(ROOT_DIR, "graphics/icon-square.svg")
-GRAPHICAL_ASSETS_DIR = File.join(ROOT_DIR, "gui/assets/images")
+GRAPHICAL_ASSETS_DIR = File.join(
+ ROOT_DIR,
+ "desktop/packages/mullvad-vpn/assets/images"
+)
ADDITIONAL_ASSETS_DIR = File.join(SCRIPT_DIR, "AdditionalAssets")
# app icon output
diff --git a/prepare-release.sh b/prepare-release.sh
index 91829b142a..21627daec5 100755
--- a/prepare-release.sh
+++ b/prepare-release.sh
@@ -45,8 +45,9 @@ if [[ $(git diff --shortstat 2> /dev/null | tail -n1) != "" ]]; then
exit 1
fi
-if [[ $DESKTOP == "true" && $(grep "CHANGE THIS BEFORE A RELEASE" gui/changes.txt) != "" ]]; then
- echo "It looks like you did not update gui/changes.txt"
+desktop_changes_path=desktop/packages/mullvad-vpn/changes.txt
+if [[ $DESKTOP == "true" && $(grep "CHANGE THIS BEFORE A RELEASE" $desktop_changes_path) != "" ]]; then
+ echo "It looks like you did not update $desktop_changes_path"
exit 1
fi
diff --git a/scripts/localization b/scripts/localization
index 2fdc011db8..084f61661c 100755
--- a/scripts/localization
+++ b/scripts/localization
@@ -28,7 +28,7 @@ function main {
function sync_localizations {
# Update desktop strings in messages.pot
log_header "Extracting localization strings from desktop app source code"
- pushd ../gui
+ pushd ../desktop/packages/mullvad-vpn
npm run update-translations
popd
@@ -41,7 +41,7 @@ function sync_localizations {
function update_relay_locations_pot {
log_header "Retrieving relay locations from server list and translating by using map data"
- pushd ../gui/scripts
+ pushd ../desktop/packages/mullvad-vpn/scripts
# Add translations from geo data
python3 fetch-relay-locations.py
@@ -73,7 +73,7 @@ function upload_to_crowdin {
log_header "Uploading translations to crowdin"
- pushd ../gui
+ pushd ../desktop/packages/mullvad-vpn
crowdin upload sources
crowdin upload translations
popd
@@ -83,7 +83,7 @@ function download_from_crowdin {
ensure_crowdin_api_key
log_header "Downloading translations from crowdin"
- pushd ../gui
+ pushd ../desktop/packages/mullvad-vpn
crowdin download
popd
@@ -101,8 +101,8 @@ function verify {
! git status -s | grep .
local out_of_sync=$?
- pushd ../gui/scripts
- npm exec ts-node verify-translations-format.ts
+ pushd ../desktop/packages/mullvad-vpn
+ npm exec ts-node scripts/verify-translations-format.ts
local incorrect_format=$?
popd
diff --git a/test/docs/BUILD_OS_IMAGE.md b/test/docs/BUILD_OS_IMAGE.md
index 87e2c88e58..659eb7d55e 100644
--- a/test/docs/BUILD_OS_IMAGE.md
+++ b/test/docs/BUILD_OS_IMAGE.md
@@ -211,7 +211,7 @@ This can be achieved as follows:
## Windows Security
-Windows Defender ocasionally kills the `test-runner` because it believes it to be a trojan. This can be worked around by excluding `E:` and [the folder containing the standalone e2e GUI test executable](../../gui/README.md) following this guide: https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26.
+Windows Defender ocasionally kills the `test-runner` because it believes it to be a trojan. This can be worked around by excluding `E:` and [the folder containing the standalone e2e GUI test executable](../../desktop/packages/mullvad-vpn/README.md) following this guide: https://support.microsoft.com/en-us/windows/add-an-exclusion-to-windows-security-811816c0-4dfd-af4a-47e4-c301afe13b26.
## Finishing setup
diff --git a/test/test-manager/README.md b/test/test-manager/README.md
index c35e7c5ba7..3d69a666ae 100644
--- a/test/test-manager/README.md
+++ b/test/test-manager/README.md
@@ -32,8 +32,8 @@ If a new module is created, make sure to add it in
It is possible to write tests for asserting graphical properties in the app, but
this is a slightly more involved process. GUI tests are written in `Typescript`,
-and reside in the `gui/test/e2e` folder in the app repository. Packaging of
-these tests is also done from the `gui/` folder.
+and reside in the `desktop/packages/mullvad-vpn/test/e2e` folder in the app repository.
+Packaging of these tests is also done from the `desktop/packages/mullvad-vpn/` folder.
Assuming that a graphical test `gui-test.spec` has been bundled correctly, it
can be invoked from any Rust function by calling
diff --git a/test/test-manager/src/tests/ui.rs b/test/test-manager/src/tests/ui.rs
index 266624cc68..53c769a7cc 100644
--- a/test/test-manager/src/tests/ui.rs
+++ b/test/test-manager/src/tests/ui.rs
@@ -154,7 +154,8 @@ async fn test_custom_access_methods_gui(
// * SHADOWSOCKS_SERVER_CIPHER
// * SHADOWSOCKS_SERVER_PASSWORD
//
- // See `gui/test/e2e/installed/state-dependent/api-access-methods.spec.ts`
+ // See
+ // `desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/api-access-methods.spec.ts`
// for details. The setup should be the same as in
// `test_manager::tests::access_methods::test_shadowsocks`.
//
@@ -223,7 +224,8 @@ async fn test_custom_bridge_gui(
// * SHADOWSOCKS_SERVER_CIPHER
// * SHADOWSOCKS_SERVER_PASSWORD
//
- // See `gui/test/e2e/installed/state-dependent/custom-bridge.spec.ts`
+ // See
+ // `desktop/packages/mullvad-vpn/test/e2e/installed/state-dependent/custom-bridge.spec.ts`
// for details. The setup should be the same as in
// `test_manager::tests::access_methods::test_shadowsocks`.