{"id":27220,"date":"2022-11-18T17:45:39","date_gmt":"2022-11-19T01:45:39","guid":{"rendered":"https:\/\/www.podfeet.com\/blog\/?p=27220"},"modified":"2022-11-20T17:23:25","modified_gmt":"2022-11-21T01:23:25","slug":"velja","status":"publish","type":"post","link":"https:\/\/www.podfeet.com\/blog\/2022\/11\/velja\/","title":{"rendered":"Velja is More Than a Browser Picker"},"content":{"rendered":"<p><a href=\"https:\/\/sindresorhus.com\/velja.html\" target=\"_blank\" rel=\"noopener\"><\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Velja-Logo.png\" alt=\"Lion wearing a viking helmet (logo for Velja)\"  title=\"Velja Logo.png\" width=\"200 \" height=\"200\"><figcaption style=\"text-align:center\">Velja<\/figcaption><\/figure>\n<p><\/a>On a recent episode of the Mac Geek Gab, listener John sent in a suggestion to try an app called Velja from <a href=\"https:\/\/sindresorhus.com\/velja.html\">open source developer Sindre Sorhus<\/a>, which was described as a browser picker. I decided to go check it out and I am pleased to say that this free app solves some real problems. Let&#8217;s walk through the problems to be solved first and then I\u2019ll describe how Velja solves them.<\/p>\n<p>Many web services are now designed to require you to use a Chromium browser such as Microsoft Edge, Opera, or Google Chrome. This concerns me a great deal, having lived in the bad old days when web services required ActiveX. ActiveX was a proprietary capability only available in Internet Explorer on Windows leaving Mac users out in the cold. I don\u2019t like the trend even though Chromium browsers run on the Mac. But that&#8217;s the world we&#8217;re in now.<\/p>\n<p>If your default browser is not a Chromium browser, you&#8217;re going to have problems when you try to access one of these services. If you like Safari or DuckDuckGo, which are both Webkit browsers these services won&#8217;t let you in. Likewise, if you use Quantum-based Firefox, you\u2019ll be denied access and told to use a Chromium browser instead. Many of these sites say you have to use Google Chrome but that\u2019s misleading or at the least an oversimplification because you can definitely use Chromium browsers such as Edge or Opera.<\/p>\n<p>Steve and I are using StreamYard to broadcast the live show, and every single week I click on the StreamYard link Steven sends me, it opens in Safari, tells me it won&#8217;t work, and then I painstakingly copy the link, open a compatible browser, and paste in the link. I hate wasting time like this.  There may be those of you who do remember before clicking, but you still have to copy the URL, open the alternate browser and then paste it in.<\/p>\n<p>Velja fixes this problem.<\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Zoom-Links-Open-in-Safari-Asking-Permission-to-Open-in-Zoom.png\" alt=\"Zoom Links Open in Safari Asking Permission to Open in Zoom\"  title=\"Zoom Links Open in Safari Asking Permission to Open in Zoom.png\" width=\"400 \" height=\"274\"><figcaption style=\"text-align:center\">Zoom Links Open in Safari Asking Permission to Open in Zoom<\/figcaption><\/figure>\n<p> Here&#8217;s another one. You get an invite to a Zoom meeting and you click the link. It opens your web browser, but it immediately says, &#8220;Can I open this in the desktop app?&#8221;  What if it could open the desktop app directly from the link? Wouldn&#8217;t that be swell?<\/p>\n<p>Velja can fix that.<\/p>\n<p>I&#8217;m betting there are privacy-minded folks here who want to use DuckDuckGo for everything, but they find it doesn&#8217;t work for everything they do. What if you could flip browsers on the fly?<\/p>\n<p>Velja will let you do this too.<\/p>\n<h3>Velja as Your Default Browser<\/h3>\n<p>Ok, let&#8217;s get into how Velja performs this magic. Velja installs as a menu bar app and as a browser extension. When you run Velja for the first time, it will request that you allow it to be your default browser.<\/p>\n<p>My instinct was to say no because I want Safari to be my default. But as I learned how Velja does its job, I realized that it&#8217;s like a traffic cop whose job is to direct links to different browsers. It needs to be the default browser in order to direct that traffic.<\/p>\n<h3>Velja Preferences Are the Power<\/h3>\n<p>Once installed, it&#8217;s time to jump into Velja&#8217;s preferences to get to the real power of the app. Velja installs as a menu bar app so you have quick access to its preferences.<\/p>\n<h4>Predefined Apps<\/h4>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Prepopulated-Apps-in-Velja.png\" alt=\"Prepopulated Apps in Velja\"  title=\"Prepopulated Apps in Velja.png\" width=\"275 \" height=\"600\"><figcaption style=\"text-align:center\">Prepopulated Apps in Velja<\/figcaption><\/figure>\n<p>If we jump to the Apps tab in preferences you\u2019ll see a pre-populated list of common tools that have dedicated desktop web apps. Next to each name is a dropdown allowing you to choose your local desktop version or direct it to open in a web browser of your choosing. I scrolled to the bottom and saw Zoom in the list and set it to open Zoom links in the Zoom.us app.<\/p>\n<p>I raced over to Calendar and clicked the link in the standing event I have to record with Bart and squealed like a little girl with delight when the Zoom app opened instead of Safari.<\/p>\n<p>The full list of tools in the pre-populated list includes: ClickUp, Discord, Figma, Google Meet, Jitsi Meet, Linear, Miro, Notion, Spotify, Telegram, Trello\u00ae, Twitter, YouTube, Zeplin, and Zoom.<\/p>\n<p>Let&#8217;s say you like Chrome, but you don&#8217;t want Google knowing what you watch on YouTube \u2014 a rather contrived example, but work with me here. You can set YouTube to open in DuckDuckGo while your default browser is Chrome.<\/p>\n<p>Some apps from the Mac App Store require a little bit of attention when assigned to open certain links. I tested setting Twitter links to open in my favorite app Tweetbot and got this message in a popup:<\/p>\n<blockquote><p>\n  \u201cThe app &#8220;Tweetbot&#8221; does not declare support for URLs. Velja cannot directly open URLs with this app because of App Store restrictions. To support this, you need to copy the file &#8220;open.sh&#8221; into the &#8220;\/Library\/Application Scripts\/com.sindresorhus.Velja&#8221; folder. Both of these will be shown to you. Even with this, there is no guarantee the target app can actually handle URLs.\n<\/p><\/blockquote>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Tweetbot-from-Mac-App-Store-Warning.png\" alt=\"Tweetbot from Mac App Store Warning\"  title=\"Tweetbot from Mac App Store Warning.png\" width=\"250 \" height=\"341\"><figcaption style=\"text-align:center\">Tweetbot from Mac App Store Warning<\/figcaption><\/figure>\n<p>That sounds super scary but when I clicked OK, Velja automatically opened two folders and I got another popup telling me to <em>copy<\/em> a tiny, one line script file from one folder to the other. Sindre was nice enough to explain that drag and drop doesn&#8217;t copy, so to be sure to actually copy-paste. It\u2019s an odd thing to have to do, but it certainly was not difficult.<\/p>\n<p>Now all of the Twitter links David Roth sends me about the imminent demise of Twitter will open in Tweetbot instead of the web.<\/p>\n<p><em><strong>NERD ALERT<\/strong>: For the nerds amongst us, inside the package for Velja he\u2019s got a Script folder and a bash script called open.sh that says <code>open \"$@\"<\/code>. The bash script then gets copied to <code>\/Library\/Application Scripts\/com.sindresorhus.Velja<\/code><\/em><\/p>\n<h4>Rules<\/h4>\n<p>The next coolest (or maybe coolest) capability in Velja is controlled in the Rules tab.  Here you can tell Velja what kinds of links should open in which browser (or app). As a reminder, my main problem to be solved is that StreamYard will only run under a Chromium browser. I\u2019m weary of copying and pasting the URLs like an animal, so let\u2019s see if I can use Velja to open all StreamYard links in Microsoft Edge.<\/p>\n<p>To create a new rule, you drop in a sample URL and then tell it what to look for. By default, it will suggest that it look into your URL and find just the domain within that URL. If it\u2019s successful, it will show you the match it found with a happy green checkmark. Tap save and you\u2019re done.<\/p>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/StreamYard-Rule-in-Velja.png\" alt=\"StreamYard Rule in Velja\"  title=\"StreamYard Rule in Velja.png\" width=\"420 \" height=\"541\"><figcaption style=\"text-align:center\">StreamYard Rule in Velja<\/figcaption><\/figure>\n<p>I built my little rule to find all StreamYard links and then went to Telegram where Steve sent me last week\u2019s invite. When I clicked on the link, it gloriously opened in Edge.  Huzzah!<\/p>\n<p>If for some reason matching by domain doesn\u2019t work, you can also ask Velja to search by domain <em>and<\/em> subdomain, URL Prefix, URL Contains, or you can build your own Regular Expression if you\u2019re Allister Jenks.<\/p>\n<p>You can create rules that cause all links clicked from within a specific source app to be opened in a specific browser. As a test, I created a rule that causes all links clicked inside Slack to be opened in DuckDuckGo and it worked.  I am not a Microsoft Teams user, but I know that it gives you quick access to your team\u2019s Sharepoint files, and maybe it would work best if they were always opened in Edge even though your default browser is Firefox.<\/p>\n<p>Velja runs each rule in order, so if you have multiple rules that deal with a related task, you can reorder them to make sure they function properly.<\/p>\n<h4>Remove Tracking Parameters<\/h4>\n<p>You know how you sometimes find something that looks interesting to share, and you copy the link but the URL ends up being some giant glop of text?  That giant glop is filled with tracking parameters. If you share it, not only does it look really annoying, you\u2019re providing even more information to those who are trying to track you on the Internet.<\/p>\n<p>When I encounter this problem, I usually strip off everything from the question mark to the end of the URL. The question mark is what starts the query string where all of the tracking parameters go.  This method isn\u2019t foolproof though, because sometimes the query string contains important information.<\/p>\n<p>That query string can include key\/value pairs that identify the exact thing you\u2019re trying to show. Let\u2019s say you have a link to a dress you like. The link might include <code>size=large<\/code>, and <code>color=blue<\/code>.  If you sent the URL without those terms, the person wouldn\u2019t know which dress you wanted for your birthday.<\/p>\n<p>It\u2019s a tedious process at best to remove the tracking parameters when sending links and at worst, you could miss critical parts of the URL.<\/p>\n<p>In Velja on the Extras tab in preferences, you have two checkboxes that you might like to engage. The first instructs Velja to remove tracking parameters when you open links from others (yay) and the second removes tracking parameters when copying links to send elsewhere.<\/p>\n<p>I did a little testing and for the most part, it worked. I did find that TikTok URLs weren\u2019t stripped properly. I sent a note to Sindre and he explained that TikTok changes the way they do it so he has to keep updating his algorithm. I hope that game of whack-a-mole won&#8217;t get too exhausting for him.<\/p>\n<h4>Browsers Tab<\/h4>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Browser-Options-in-Preferences.png\" alt=\"Browser Options in Preferences\"  title=\"Browser Options in Preferences.png\" width=\"380 \" height=\"359\"><figcaption style=\"text-align:center\">Browser Options in Preferences<\/figcaption><\/figure>\n<p>In the Browsers tab of Velja, you select your primary and secondary browser. This is an unusual option so let me explain how it works.<\/p>\n<p>Let&#8217;s say I have Safari as my default browser and Opera as my secondary browser. If I simply click a link it will open in Safari, but if I hold down the function key when I click, it will automatically open in Opera.<\/p>\n<p>On the same Browser tab, you also define which browsers are shown in the dropdown from the Velja menu bar app.<\/p>\n<p>If you use different profiles in your Chromium browsers, like say one for work and one for home, you can grant access to Velja to show your different profiles as though they are separate browsers options.<\/p>\n<h3>The Menu Bar App<\/h3>\n<figure style=\"float: right; margin-left: 10px\"><img decoding=\"async\" src=\"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Velja-Menu-Bar-App-Dropdown.png\" alt=\"Velja Menu Bar App Dropdown\"  title=\"Velja Menu Bar App Dropdown.png\" width=\"242 \" height=\"374\"><figcaption style=\"text-align:center\">Velja Menu Bar App Dropdown<\/figcaption><\/figure>\n<p>Now that you have everything automated to your heart\u2019s delight with preferences for Velja, there\u2019s some interesting and I would say delightful interaction you can have with your browsers.<\/p>\n<p>If you open the menu bar app for Velja, you\u2019ll see a dropdown containing a list of the browsers you specified in preferences (including your browser profiles). From here you can change your default browser on the fly. You can also choose an option called Prompt.<\/p>\n<p>With Prompt selected, when you click a link, you\u2019ll see a very pretty popup with the icons for your available browsers.  Tap on the one you want (or type the number under it) and your link will open in that selected browser. I know the interactive prompt sounds like extra work and it definitely is, but there\u2019s something very pleasing about the interface that I enjoy. If you like to control your browsing experience at all times, I think you\u2019ll like the interactive prompt.<\/p>\n<p>One important note is that any rules you have defined overrule the choice you make from the interactive prompt. In my example where I\u2019ve created a rule that says all StreamYard links should open in Edge, if I later try to open a StreamYard link in DuckDuckGo it will still open in Edge. I think that&#8217;s a good design.<\/p>\n<h3>Browser Extension<\/h3>\n<p>Velja has browser extensions for Safari and Chromium-based browsers. The extension doesn\u2019t do a lot but it could be handy. Let\u2019s say you\u2019re on a site in Chrome in your home profile and you realize you need to be in your work profile. If you click on the extension in the toolbar, you\u2019ll get the delightful interactive prompt, allowing you to select the alternate profile to open the link. Obviously, you could do this to change browsers entirely as well.<\/p>\n<h3>Tips<\/h3>\n<p>I\u2019ve given you a really good start on how to use Velja but Sindre has even more tips on usage on the <a href=\"https:\/\/sindresorhus.com\/velja\" target=\"_blank\" rel=\"noopener\">Velja page of his website<\/a>.  There are more keystroke options, you can download a mini-app that allows you to add a private Safari browser option to your list, and more.<\/p>\n<p>I didn&#8217;t check 100% of Velja&#8217;s capability with VoiceOver, but everything I tested was accessible so that&#8217;s awesome.<\/p>\n<h3>Why is This Free?<\/h3>\n<p>One question many of you may have is why this wonderful app free. Sindre Sorhus is a prolific open source developer whose work is entirely sustained by donations from the user community.<\/p>\n<p>When I say prolific in open source, I mean it. He actively maintains more than 1000 npm packages (think of them as mini apps). His libraries are in many of the mainstream packages on which we all depend.<\/p>\n<p>In addition to writing packages, he has 31 apps for macOS listed on his home page. I&#8217;m used to open source projects looking like the Windows 3.1 interface, but all of Sindre\u2019s apps look gorgeous including the icons!<\/p>\n<p>Wish you had the Touch Bar back? He\u2019s got a simulator. Want to keep your Mac from sleeping? He\u2019s got you covered with Lungo. Want to hide sensitive parts of an image? Black Out might be what you want. Wish you were faster at finding the best animated GIFs? Try Jiffy (with a J). Ever wish there were more options in the Share Menu? Shareful might add the options you need. Wish you could have any text of your choosing in the iOS Lock Screen widgets? Any Text will be your friend.<\/p>\n<p>I may never get any more work done this week because I can\u2019t stop downloading and playing with Sindre\u2019s vast library of free apps for macOS and iOS.<\/p>\n<p>Check out all of Sindre\u2019s tools at <a href=\"https:\/\/sindresorhus.com\/apps\">sindresorhus.com\/&#8230;<\/a> and enjoy a better browsing experience with Velja.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Velja On a recent episode of the Mac Geek Gab, listener John sent in a suggestion to try an app called Velja from open source developer Sindre Sorhus, which was described as a browser picker. I decided to go check it out and I am pleased to say that this free app solves some real [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":27213,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[147],"tags":[5586,5584,5585,3532],"class_list":["post-27220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-posts","tag-alternate-browser","tag-browser-extension","tag-browser-picker","tag-browser-plugins"],"jetpack_featured_media_url":"https:\/\/www.podfeet.com\/blog\/wp-content\/uploads\/2022\/11\/Velja-Logo.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/27220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/comments?post=27220"}],"version-history":[{"count":12,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/27220\/revisions"}],"predecessor-version":[{"id":27266,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/posts\/27220\/revisions\/27266"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media\/27213"}],"wp:attachment":[{"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/media?parent=27220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/categories?post=27220"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.podfeet.com\/blog\/wp-json\/wp\/v2\/tags?post=27220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}