Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't recreate desktop shortcut on update if it doesn't already exist #9210

Closed
khionu opened this issue Mar 19, 2019 · 21 comments · Fixed by element-hq/element-desktop#333
Closed

Comments

@khionu
Copy link

khionu commented Mar 19, 2019

Each time Riot updates, it recreates the shortcut on my desktop. This is quite annoying, as I keep my desktop pretty clean.

@t3chguy
Copy link
Member

t3chguy commented Mar 19, 2019

electron-builder does not give us control over this: https://www.electron.build/configuration/squirrel-windows

@khionu
Copy link
Author

khionu commented Mar 19, 2019

Discord uses Squirrel as well, and does not have this issue.

@t3chguy
Copy link
Member

t3chguy commented Mar 19, 2019

Is there any certainty in them using electron-builder though or are they rocking some custom in-house thing?

@khionu
Copy link
Author

khionu commented Mar 20, 2019

I'll get back to you on that.

@aaronraimist
Copy link
Collaborator

@t3chguy the link you sent says

Squirrel.Windows target is maintained, but deprecated. Please use nsis instead.

and nsis does have an option you can set https://www.electron.build/configuration/nsis

createDesktopShortcut = true Boolean | “always” - Whether to create desktop shortcut. Set to always if to recreate also on reinstall (even if removed by user).

@t3chguy
Copy link
Member

t3chguy commented Jun 1, 2019

@aaronraimist this is known but Riot at least disliked nsis due to its update mechanism which was basically an uninstall followed by a new install which wasn't the most friendly flow.

@BloodyIron
Copy link

Surely there's some way to get this done, cmon this is really frustrating.

@ajayyy
Copy link

ajayyy commented Jul 18, 2020

Yea, this is very frustrating

@ryanfleury
Copy link

Extremely frustrating that this has not been addressed in nearly 3 years. I mean, come on.

@aminomancer
Copy link

if we can't get low enough into Squirrel.Windows to prevent the shortcut from being created in the first place, can we at least script something to log whether the shortcut exists at the time the in-app update button is pressed, then remove the shortcut on app startup if the shortcut did not exist? it's not the most glamorous solution but it's better than making an unwanted file on every update (which is pretty frequent for me)

@elibroftw
Copy link

elibroftw commented Mar 28, 2022

@t3chguy, what is used for the installer then? You can just check if the shortcut exists on desktop and if it does tell element to delete it after the new install.

@t3chguy
Copy link
Member

t3chguy commented Mar 28, 2022

@elibroftw #9210 (comment)

@elibroftw
Copy link

@t3chguy okay, then check if the shortcut exists before starting the auto install, and then delete the file afterwords. Use a settings key like "post-install" and then upon a launch, element should do the actions specified in the "post-install" key and then delete the post-install setting.

@elibroftw
Copy link

elibroftw commented Mar 28, 2022

https:/mongodb-js/electron-squirrel-startup
https:/electron-archive/grunt-electron-installer#handling-squirrel-events

    case '--squirrel-updated':

      // Optionally do things such as:
      //
      // - Install desktop and start menu shortcuts
      // - Add your .exe to the PATH
      // - Write to the registry for things like file associations and
      //   explorer context menus

      // Always quit when done
      app.quit();

@elibroftw
Copy link

elibroftw commented Mar 28, 2022

@t3chguy https:/vector-im/element-desktop/blob/develop/src/squirrelhooks.ts#L41
What do you mean it's out of your hands, it's right here clearly in your hands.

@elibroftw
Copy link

elibroftw commented Mar 28, 2022

Specifically, you can use --shortcut-locations=StartMenu https://stackoverflow.com/questions/30105150/handle-squirrels-event-on-an-electron-app or not call --createShortcuts at all.

@elibroftw
Copy link

Actually, I don't think you're actually supposed to call the Updater to do the work for you. The docs clearly say you only need to handle the argument, not that you need to call an Updater executable.

@elibroftw
Copy link

Manages Squirrel packages

Commands
      --install=VALUE        Install the app whose package is in the specified
                               directory
      --uninstall            Uninstall the app the same dir as Update.exe
      --download=VALUE       Download the releases specified by the URL and
                               write new results to stdout as JSON
      --checkForUpdate=VALUE Check for one available update and writes new
                               results to stdout as JSON
      --update=VALUE         Update the application to the latest remote
                               version specified by URL
      --releasify=VALUE      Update or generate a releases directory with a
                               given NuGet package
      --createMsi=VALUE      Update or generate a releases directory with a
                               given NuGet package
      --createShortcut=VALUE Create a shortcut for the given executable name
      --removeShortcut=VALUE Remove a shortcut for the given executable name
      --updateSelf=VALUE     Copy the currently executing Update.exe into the
                               default location

Options:
  -h, -?, --help             Display Help and exit
  -r, --releaseDir=VALUE     Path to a release directory to use with releasify
  -p, --packagesDir=VALUE    Path to the NuGet Packages directory for C# apps
      --bootstrapperExe=VALUE
                             Path to the Setup.exe to use as a template
  -g, --loadingGif=VALUE     Path to an animated GIF to be displayed during
                               installation
  -i, --icon=VALUE           Path to an ICO file that will be used for icon
                               shortcuts
      --setupIcon=VALUE      Path to an ICO file that will be used for the
                               Setup executable's icon
  -n, --signWithParams=VALUE Sign the installer via SignTool.exe with the
                               parameters given
  -s, --silent               Silent install
  -l, --shortcut-locations=VALUE
                             Comma-separated string of shortcut locations, e.g.
                               'Desktop,StartMenu'
      --no-msi               Don't generate an MSI package
      --no-delta             Don't generate delta packages to save time
      --framework-version=VALUE
                             Set the required .NET framework version, e.g.
                               net461

@elibroftw
Copy link

elibroftw commented Mar 28, 2022

Yeah there's no reason to create shortcuts on an update like L41 does.

@t3chguy
Copy link
Member

t3chguy commented Mar 28, 2022

You're welcome to contribute it yourself, I don't use Windows anymore.

@joshsleeper
Copy link

@elibroftw while I agree with your sentiment and also want this feature, remember that github issues isn't a chat platform and people get emails for each new message.

instead of sending a bunch of messages in a row, consider either editing one comment to add more context or just not hitting send until you've fleshed it out more.

not trying to nag or shame, just trying to reduce everyone's email intake 😅

su-ex added a commit to SchildiChat/element-desktop that referenced this issue May 10, 2022
* Made the location map change the cursor to a pointer so it looks like it's clickable (https ([\#8451](matrix-org/matrix-react-sdk#8451)). Fixes element-hq/element-web#21991. Contributed by @Odyssey346.
* Implement improved spacing for the thread list and timeline ([\#8337](matrix-org/matrix-react-sdk#8337)). Fixes element-hq/element-web#21759. Contributed by @luixxiul.
* LLS: expose way to enable live sharing labs flag from location dialog ([\#8416](matrix-org/matrix-react-sdk#8416)).
* Fix source text boxes in View Source modal should have full width ([\#8425](matrix-org/matrix-react-sdk#8425)). Fixes element-hq/element-web#21938. Contributed by @EECvision.
* Read Receipts: never show +1, if it’s just 4, show all of them ([\#8428](matrix-org/matrix-react-sdk#8428)). Fixes element-hq/element-web#21935.
* Add opt-in analytics to onboarding tasks ([\#8409](matrix-org/matrix-react-sdk#8409)). Fixes element-hq/element-web#21705.
* Allow user to control if they are signed out of all devices when changing password ([\#8259](matrix-org/matrix-react-sdk#8259)). Fixes element-hq/element-web#2671.
* Implement new Read Receipt design ([\#8389](matrix-org/matrix-react-sdk#8389)). Fixes element-hq/element-web#20574.
* Stick connected video rooms to the top of the room list ([\#8353](matrix-org/matrix-react-sdk#8353)).
* LLS: fix jumpy maximised map ([\#8387](matrix-org/matrix-react-sdk#8387)).
* Persist audio and video mute state in video rooms ([\#8376](matrix-org/matrix-react-sdk#8376)).
* Forcefully disconnect from video rooms on logout and tab close ([\#8375](matrix-org/matrix-react-sdk#8375)).
* Add local echo of connected devices in video rooms ([\#8368](matrix-org/matrix-react-sdk#8368)).
* Improve text of account deactivation dialog ([\#8371](matrix-org/matrix-react-sdk#8371)). Fixes element-hq/element-web#17421.
* Live location sharing: own live beacon status on maximised view ([\#8374](matrix-org/matrix-react-sdk#8374)).
* Show a lobby screen in video rooms ([\#8287](matrix-org/matrix-react-sdk#8287)).
* Settings toggle to disable Composer Markdown ([\#8358](matrix-org/matrix-react-sdk#8358)). Fixes element-hq/element-web#20321.
* Cache localStorage objects for SettingsStore ([\#8366](matrix-org/matrix-react-sdk#8366)).
* Bring `View Source` back from behind developer mode ([\#8369](matrix-org/matrix-react-sdk#8369)). Fixes element-hq/element-web#21771.
* Fix update from creating desktop shortcut ([\element-hq#333](element-hq#333)). Fixes element-hq/element-web#9210. Contributed by @elibroftw.
* Fix macOS and Linux build regressions ([\element-hq#345](element-hq#345)).
* Allow loading language files with two part language code ([\element-hq#339](element-hq#339)). Contributed by @TPiUnikie.
* Fix Jitsi Meet getting wedged at startup in some cases ([\#21995](element-hq/element-web#21995)).
* Fix camera getting muted when disconnecting from a video room ([\#21958](element-hq/element-web#21958)).
* Fix race conditions around threads ([\#8448](matrix-org/matrix-react-sdk#8448)). Fixes element-hq/element-web#21627.
* Fix reading of cached room device setting values ([\#8495](matrix-org/matrix-react-sdk#8495)).
* Fix issue with dispatch happening mid-dispatch due to js-sdk emit ([\#8473](matrix-org/matrix-react-sdk#8473)). Fixes element-hq/element-web#22019.
* Match MSC behaviour for threads when disabled (thread-aware mode) ([\#8476](matrix-org/matrix-react-sdk#8476)). Fixes element-hq/element-web#22033.
* Specify position of DisambiguatedProfile inside a thread on bubble message layout ([\#8452](matrix-org/matrix-react-sdk#8452)). Fixes element-hq/element-web#21998. Contributed by @luixxiul.
* Location sharing: do not trackuserlocation in location picker ([\#8466](matrix-org/matrix-react-sdk#8466)). Fixes element-hq/element-web#22013.
* fix text and map indent in thread view ([\#8462](matrix-org/matrix-react-sdk#8462)). Fixes element-hq/element-web#21997.
* Live location sharing: don't group beacon info with room creation summary ([\#8468](matrix-org/matrix-react-sdk#8468)).
* Don't linkify code blocks ([\#7859](matrix-org/matrix-react-sdk#7859)). Fixes element-hq/element-web#9613.
* read receipts: improve tooltips to show names of users ([\#8438](matrix-org/matrix-react-sdk#8438)). Fixes element-hq/element-web#21940.
* Fix poll overflowing a reply tile on bubble message layout ([\#8459](matrix-org/matrix-react-sdk#8459)). Fixes element-hq/element-web#22005. Contributed by @luixxiul.
* Fix text link buttons on UserInfo panel ([\#8247](matrix-org/matrix-react-sdk#8247)). Fixes element-hq/element-web#21702. Contributed by @luixxiul.
* Clear local storage settings handler cache on logout ([\#8454](matrix-org/matrix-react-sdk#8454)). Fixes element-hq/element-web#21994.
* Fix jump to bottom button being always displayed in non-overflowing timelines ([\#8460](matrix-org/matrix-react-sdk#8460)). Fixes element-hq/element-web#22003.
* fix timeline search with empty text box should do nothing ([\#8262](matrix-org/matrix-react-sdk#8262)). Fixes element-hq/element-web#21714. Contributed by @EECvision.
* Fixes "space panel kebab menu is rendered out of view on sub spaces"  ([\#8350](matrix-org/matrix-react-sdk#8350)). Contributed by @yaya-usman.
* Add margin to the location map inside ThreadView ([\#8442](matrix-org/matrix-react-sdk#8442)). Fixes element-hq/element-web#21982. Contributed by @luixxiul.
* Patch: "Reloading the registration page should warn about data loss" ([\#8377](matrix-org/matrix-react-sdk#8377)). Contributed by @yaya-usman.
* Live location sharing: fix safari timestamps pt 2 ([\#8443](matrix-org/matrix-react-sdk#8443)).
* Fix issue with thread notification state ignoring initial events ([\#8417](matrix-org/matrix-react-sdk#8417)). Fixes element-hq/element-web#21927.
* Fix event text overflow on bubble message layout ([\#8391](matrix-org/matrix-react-sdk#8391)). Fixes element-hq/element-web#21882. Contributed by @luixxiul.
* Disable the message action bar when hovering over the 1px border between threads on the list ([\#8429](matrix-org/matrix-react-sdk#8429)). Fixes element-hq/element-web#21955. Contributed by @luixxiul.
* correctly align read receipts to state events in bubble layout ([\#8419](matrix-org/matrix-react-sdk#8419)). Fixes element-hq/element-web#21899.
* Fix issue with underfilled timelines when barren of content ([\#8432](matrix-org/matrix-react-sdk#8432)). Fixes element-hq/element-web#21930.
* Fix baseline misalignment of thread panel summary by deduplication ([\#8413](matrix-org/matrix-react-sdk#8413)).
* Fix editing of non-html replies ([\#8418](matrix-org/matrix-react-sdk#8418)). Fixes element-hq/element-web#21928.
* Read Receipts "Fall from the Sky" ([\#8414](matrix-org/matrix-react-sdk#8414)). Fixes element-hq/element-web#21888.
* Make read receipts handle nullable roomMembers correctly ([\#8410](matrix-org/matrix-react-sdk#8410)). Fixes element-hq/element-web#21896.
* Don't form continuations on either side of a thread root ([\#8408](matrix-org/matrix-react-sdk#8408)). Fixes element-hq/element-web#20908.
* Fix centering issue with sticker placeholder ([\#8404](matrix-org/matrix-react-sdk#8404)). Fixes element-hq/element-web#18014 and element-hq/element-web#6449.
* Disable download option on <video/> , preferring dedicated download button ([\#8403](matrix-org/matrix-react-sdk#8403)). Fixes element-hq/element-web#21902.
* Fix infinite loop when pinning/unpinning persistent widgets ([\#8396](matrix-org/matrix-react-sdk#8396)). Fixes element-hq/element-web#21864.
* Tweak ReadReceiptGroup to better handle disambiguation ([\#8402](matrix-org/matrix-react-sdk#8402)). Fixes element-hq/element-web#21897.
* stop the bottom edge of buttons getting clipped in devtools ([\#8400](matrix-org/matrix-react-sdk#8400)).
* Fix issue with threads timelines with few events cropping events ([\#8392](matrix-org/matrix-react-sdk#8392)). Fixes element-hq/element-web#20594.
* Changed font-weight to 400 to support light weight font ([\#8345](matrix-org/matrix-react-sdk#8345)). Fixes element-hq/element-web#21171. Contributed by @goelesha.
* Fix issue with thread panel not updating when it loads on first render ([\#8382](matrix-org/matrix-react-sdk#8382)). Fixes element-hq/element-web#21737.
* fix: "Mention highlight and cursor hover highlight has different corner radius" ([\#8384](matrix-org/matrix-react-sdk#8384)). Contributed by @yaya-usman.
* Fix regression around haveRendererForEvent for hidden events ([\#8379](matrix-org/matrix-react-sdk#8379)). Fixes element-hq/element-web#21862 and element-hq/element-web#21725.
* Fix regression around the room list treeview keyboard a11y ([\#8385](matrix-org/matrix-react-sdk#8385)). Fixes element-hq/element-web#21436.
* Remove float property to let the margin between events appear on bubble message layout ([\#8373](matrix-org/matrix-react-sdk#8373)). Fixes element-hq/element-web#21861. Contributed by @luixxiul.
* Fix race in Registration between server change and flows fetch ([\#8359](matrix-org/matrix-react-sdk#8359)). Fixes element-hq/element-web#21800.
* fix rainbow breaks compound emojis ([\#8245](matrix-org/matrix-react-sdk#8245)). Fixes element-hq/element-web#21371. Contributed by @EECvision.
* Fix RightPanelStore handling first room on app launch wrong ([\#8370](matrix-org/matrix-react-sdk#8370)). Fixes element-hq/element-web#21741.
* Fix UnknownBody error message unalignment ([\#8346](matrix-org/matrix-react-sdk#8346)). Fixes element-hq/element-web#21828. Contributed by @luixxiul.
* Use -webkit-line-clamp for the room header topic overflow ([\#8367](matrix-org/matrix-react-sdk#8367)). Fixes element-hq/element-web#21852. Contributed by @luixxiul.
* Fix issue with ServerInfo crashing the modal ([\#8364](matrix-org/matrix-react-sdk#8364)).
* Fixes around threads beta in degraded mode ([\#8319](matrix-org/matrix-react-sdk#8319)). Fixes element-hq/element-web#21762.
su-ex added a commit to SchildiChat/element-web that referenced this issue Sep 28, 2022
* Element Call video rooms ([\element-hq#9267](matrix-org/matrix-react-sdk#9267)).
* Device manager - rename session ([\element-hq#9282](matrix-org/matrix-react-sdk#9282)).
* Allow widgets to read related events ([\element-hq#9210](matrix-org/matrix-react-sdk#9210)). Contributed by @dhenneke.
* Device manager - logout of other session ([\element-hq#9280](matrix-org/matrix-react-sdk#9280)).
* Device manager - logout current session ([\element-hq#9275](matrix-org/matrix-react-sdk#9275)).
* Device manager - verify other devices ([\element-hq#9274](matrix-org/matrix-react-sdk#9274)).
* Allow integration managers to remove users ([\element-hq#9211](matrix-org/matrix-react-sdk#9211)).
* Device manager - add verify current session button ([\element-hq#9252](matrix-org/matrix-react-sdk#9252)).
* Add NotifPanel dot back. ([\#9242](matrix-org/matrix-react-sdk#9242)). Fixes element-hq#17641.
* Implement MSC3575: Sliding Sync ([\element-hq#8328](matrix-org/matrix-react-sdk#8328)).
* Add the clipboard read permission for widgets ([\element-hq#9250](matrix-org/matrix-react-sdk#9250)). Contributed by @stefanmuhle.
* Make autocomplete pop-up wider in thread view ([\element-hq#9289](matrix-org/matrix-react-sdk#9289)).
* Fix soft crash around inviting invalid MXIDs in start DM on first message flow ([\element-hq#9281](matrix-org/matrix-react-sdk#9281)). Fixes matrix-org/element-web-rageshakes#15060 and matrix-org/element-web-rageshakes#15140.
* Fix in-reply-to previews not disappearing when swapping rooms ([\element-hq#9278](matrix-org/matrix-react-sdk#9278)).
* Fix invalid instanceof operand window.OffscreenCanvas ([\element-hq#9276](matrix-org/matrix-react-sdk#9276)). Fixes element-hq#23275.
* Fix memory leak caused by unremoved listener ([\element-hq#9273](matrix-org/matrix-react-sdk#9273)).
* Fix thumbnail generation when offscreen canvas fails ([\element-hq#9272](matrix-org/matrix-react-sdk#9272)). Fixes element-hq#23265.
* Prevent sliding sync from showing a room under multiple sublists ([\element-hq#9266](matrix-org/matrix-react-sdk#9266)).
* Fix tile crash around tooltipify links ([\element-hq#9270](matrix-org/matrix-react-sdk#9270)). Fixes element-hq#23253.
* Device manager - filter out nulled metadatas in device tile properly ([\element-hq#9251](matrix-org/matrix-react-sdk#9251)).
* Fix a sliding sync bug which could cause rooms to loop ([\element-hq#9268](matrix-org/matrix-react-sdk#9268)).
* Remove the grey gradient on images in bubbles in the timeline ([\element-hq#9241](matrix-org/matrix-react-sdk#9241)). Fixes element-hq#21651.
* Fix html export not including images ([\element-hq#9260](matrix-org/matrix-react-sdk#9260)). Fixes element-hq#22059.
* Fix possible soft crash from a race condition in space hierarchies ([\element-hq#9254](matrix-org/matrix-react-sdk#9254)). Fixes matrix-org/element-web-rageshakes#15225.
* Disable all types of autocorrect, -complete, -capitalize, etc on Spotlight's search field ([\element-hq#9259](matrix-org/matrix-react-sdk#9259)).
* Handle M_INVALID_USERNAME on /register/available ([\element-hq#9237](matrix-org/matrix-react-sdk#9237)). Fixes element-hq#23161.
* Fix issue with quiet zone around QR code ([\element-hq#9243](matrix-org/matrix-react-sdk#9243)). Fixes element-hq#23199.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants