aloneguid / bt Goto Github PK
View Code? Open in Web Editor NEWBrowser Tamer
Home Page: https://www.aloneguid.uk/projects/bt/
License: Apache License 2.0
Browser Tamer
Home Page: https://www.aloneguid.uk/projects/bt/
License: Apache License 2.0
I hope you're doing well. Thank you for your work on the BT browser; it's been a fantastic experience using it.
I have a suggestion that, I believe, would be very helpful. Since the right-click to open config is already implemented, could you please consider adding a quick access feature to the browser list through the right-click context menu? And even better if it opens via double-click on BT icon instead of the Config window. This way, users won't need to search for their browsers in the Start Menu or use other methods to launch it including BT (Config > Tools > Test URL Picker)
I trust your judgment, and I'm convinced that this enhancement would be well-received by many users.
Thank you for considering my request, and keep up the great work!
I'm excited for this application, but I can't seem to get it to start. Here's the log from Windows Event Viewer: Application
Faulting application name: bt.exe, version: 3.1.6.0, time stamp: 0x649d68f7
Faulting module name: bt.exe, version: 3.1.6.0, time stamp: 0x649d68f7
Exception code: 0xc0000005
Fault offset: 0x000000000004ca88
Faulting process id: 0x0x86E0
Faulting application start time: 0x0x1D9AB7DF77A9645
Faulting application path: C:\Program Files\Browser Tamer\bt.exe
Faulting module path: C:\Program Files\Browser Tamer\bt.exe
Report Id: 93b5c747-409d-4d5d-bbed-d53faf687b75
Faulting package full name:
Faulting package-relative application ID:
I'm running Windows 11. Windows Specifications:
Edition Windows 11 Pro
Version 22H2
Installed on 9/19/2022
OS build 22621.1926
Experience Windows Feature Experience Pack 1000.22644.1000.0
I'm running Windows PowerToys 0.70.1. I have Chrome, Edge, and Firefox browsers installed. I'm not sure what other information would be relevant.
It would be cool if we had the option to open in a specific tab group by name.
So lets say i set a link to open in chrome in the youtube group. First it would search to see if that tab group already exists the currently open chrome browser. If it is then appended the link to the tab group. Or if the tab group doesn't exist then create a new tab group with the name youtube and then append to that.
I assume this might be a pretty complex feature but I think it would be a cool option.
When Browser Tamer decides it should open a link in Chrome's ProfileX, instead of that browser window being foregrounded, it just flashes in my task bar in the background. This happens if I have Chrome's ProfileX already open or not.
When not using Browser Tamer the browser is opened and foregrounded, so the expectation is it would work the same.
As it currently stands this makes Browser tamer only slightly easier to use than what I was previously doing (before clicking a particular link making sure I click the proper Chrome icon in my taskbar first to activate that profile).
Now I can hide a few browsers, but I can’t hide specific profiles so that they do not display when choosing. I propose to make the possibility of hiding profiles as browsers.
With multiple rules it would be great if one could sort them. Right now I just hack the ini file and use that.
Thanks for this great application!
Hello @aloneguid
Please make Browser Tamer can be installed using Chocolatey.
Chocolatey is probably the most used package manager on Windows.
Making it available there will be beneficial both for Choco users and for making Browser Tamer known to more people.
Thank you very much for Browser Tamer, I consider it a very useful software.
Kind regards,
Claudio Salvio
The MSIX firefox is the containerized variant where updates are handled by the windows store.
A firefox.exe exists on PATH, placed here C:\Users\aelius\AppData\Local\Microsoft\WindowsApps\firefox.exe
Unfortunately browser tamer refuses to use it, "the file cannot be accessed by the system".
Absent a sample config file or config documentation, I've played around with reverse engineering your code to try and manually create the config entries. The basics seem to work just fine
Hello, thank for this piece of software. Makes my digital life better.
As title says, can we have a UI zoom option? I user 1080p monitor with 100% scale (not the recommended scale by windows), and bt looks tiny. Not the end of the world, but that feature would be nice.
Thanks for your time. Regards.
I was about to make a pull request when I read you don't accept them. It seems simple enough to add support for other Chromium based browsers, is it possible to add support for Thorium?
I have been using the "add browser" function but it does not support different profiles.
Links:
Hi Ivan
Great new feature with Un-shortening. Could you add eur02.safelinks.protection.outlook.com? Their might be more version so might be that you only need to look for protection.outlook.com.
Best Mads
Example on Github
So basically the rule http?://domain.tld/path/(part_i_need)
and the browser can have arg uri://other_path/(part_i_need)
I can't seem to modify the parameters/arguments that are being passed to the browser, it's read only.
"%url%" "--profile-directory=Default"
I'd like to be able to edit the parameters, ideally both on a per browser and a per profile basis. There are a number of command line flags I want to pass to the browser (such as forcing specific extensions loaded locally, enabling activity logging, etc)
Hello, this tool is really great. Lots of improvements since last time I passed by !
I'm trying to set it according to my needs and I have one feature request for the upcoming updates.
My main browser is launched "clean" from ram and I used a .bat (or .cmd) script for the launcher (to copy it to ram and start the real launcher with the correct settings - mainly I use the options to launch it googled or ungoogled). I tried assigning the icon in the main browser declaration config.ini but the icon is not taken into account.
[browser:chrlauncher]
name = ChromeX Portable
cmd = C:\PortableApps\Internet Browsers\ChromeX\Chromium Portable\chrlauncher.exe
hidden = n
[browser:chrlauncher:default]
name = Default
arg = "%url%"
icon = C:\PortableApps\Internet Browsers\ChromeX\Chromium Portable\chrlauncher.exe
rule = scope:domain|rsload.net
[browser:chromexram]
name = ChromeX RAM Portable
cmd = C:\PortableApps\Internet Browsers\ChromeX\CX2RAM.bat
icon = C:\PortableApps\Internet Browsers\ChromeX\CX2RAM.ico
hidden = n
[browser:chromexram:default]
name = Default
arg = "%url%"
icon = C:\PortableApps\Internet Browsers\ChromeX\CX2RAM.ico
rule = scope:domain|rsload.net
It's just an aesthetic issue because overall it's actually working, but it would be great to personalize the browsers main icons if possible. Consider that I use several versions of chromium with their default profile and I'd love to have them distinguishable at first glance by using a specific icon for each of them.
Thanks and have a great day !
Hi, I'm using browser tamer 3.6.
When clicking link on monitor 1, the picker shows on monitor 2.
and clicked link on monitor 2, the picker shows on monitor 1.
Hi, I believe this is easy to adapt and it really would fit the "learning" behaviour of it.
-> URL that doesn't fit any rule? -> Ask and add rule
-> URL that should always be asked -> Ask and do not add a rule
Hi,
Please make it possible to add some args (by adding another field) that could be used for Chrome Flags and other command-line switches that are necessary in many cases for Devs.
Example of what I use for MS Edge
Example 1 :
--profile-directory=Default --max-old-space-size=61440 --disable-extension-activity-logging --enable-features=msEdgeAVIF,RawDraw,DrDc,UseSurfaceLayerWithDirectComposition,CanvasOopRasterization,msEdgeAVIF,WebUITabStrip,AsyncDns,BlocklistGpuModes,ChromeLabs,CustomizeChromeSidePanel,DeferredShaping,DesktopDetailedLanguageSettings,HistoryClustersOnDeviceClustering,Journeys,JourneysKeywordFiltering,JourneysLabel,JourneysOmniboxAction,JourneysOmniboxHistoryClusterProvider,JourneysOnDeviceClusteringContentClustering,OmniboxPedalSuggestions,OptimizedReadabilityDetection,PageContentAnnotations,ParallelDownloading,Portals,PortalsCrossOrigin,PostQuantumCECPQ2,Prerender2,PrivacyGuide2,QuickCommands,SanitizerAPI,SearchWebInSidePanel,SidePanelImprovedClobbering,SidePanelJourneys,SideSearch,SplitLargeText,TabGroupsSave,TabSearchFuzzySearch,UnifiedSidePanel,UseFlutterBalloons,UseSuggestEndingsApi,VariableCOLRV1,Vp9kSVCHWDecoding,WebBluetoothNewPermissionsBackend,WebBundles,WebShare,WebUsbDeviceDetection,sdch3
Example 2 :
--profile-directory=Default --no-experiments
Example 3 :
--profile-directory=Default --disable-extensions-except
But what would be amazing and maybe too much to ask is to have it fetch the flags from a curated online list or maybe added as a file that contains the various flags for chromium and also the derivative browsers, it could be a checkbox based with some basic (grouping, search, naming, etc) to allow testing, debugging and setting preferences who are optimal for specific hardware, user liking and scenarios (url, nat, www, etc)
I hope both make sense to you and inspire you,
Thank you.
Ivan,
For some reason, the "persist" feature does not function as intended. The config.ini file is both written to and read from the executable's directory. However, when an update occurs, the settings are lost.
The bt.ini file is created, and the files still exist, but they are currently not being utilized.
I'm not sure if notifications are operating on a different protocol or what but they don't open in the correct browser.
Regex rules that contain a pipe character for doing regex alternation cause a crash. For example, I have the following rule to handle certain Zoom URLs:
rule = type:regex|.*zoom.us/(join|my|j).*
The problem appears to originate from https://github.com/aloneguid/bt/blob/master/bt/app/match_rule.cpp#L21 where the rule is split on "|" indiscriminately. The machine I'm on isn't set up for development, otherwise I would try to put a fix together. As a workaround, I've created multiple rules so this isn't urgent.
It would've been handy to have an option to pre-pocess URLs (preg replace) before applying any logic, for cases when the "old" URL stopped working due to domain/parameters changes and is not redirect automatically server-side.
Hello,
I've tried it with three different systems. With the version 3.5.1 everything works well, but with the later versions (I've tried up until the 3.6.1) the Pick-a-Browser window freezes upon choosing between Chrome, Brave, Opera, Epic, Maxthon, etc... The browser window opens with the right url, but the Pick-a-Browser window is still there and has no reaction. What's even stranger is that with Firefox, Firefox Developer Edition and Edge it is still working. Also, if I close the browser window, the Pick-a-browser window closes too and everything runs normal. If I click many times the "Pick-a-Browser" window, or if I try closing it, the app crashes.
Am I doing something wrong here?
Many thanks,
Christian
I am using Microsoft® Outlook® für Microsoft 365 MSO (Version 2208 Build 16.0.15601.20676) 64 Bit
This is part of Microssoft 365 for Enterprise.
When I click a link in an Outlook item (message, calender, ...) this error occurs
"Unexpectedd error for URL ... Access denied"
Please add this New Browser to the detection list
When I attempt to add it manually, the icon isn't picked up because this browser installs as a WindowsApp (UWP), and since customizing browser icons isn't possible (a feature that would be great to have for every browser and profile), it appears as shown in this screen capture.
Note: Ignore the icons for other browsers, as they're not visible since I haven't reinstalled them yet.
It seems that when you activate container mode you have to pick a container tab rather than having all the containers as options in addition to a "No Container" option.
I use container tabs a lot for specific sites, but I also use the "no container" tab as my primary environment.
I have set Settings > Browser Picker Mode > Always Ask
. When I click a link it shows me a selection window with all my browsers and all their profiles. On this list the first browser has a lot of profiles, yet I don't use it that often. Thus I have to scroll through this list to select a different browser with just two profiles that I use 85% of the time.
These are not what I look for:
Add a feature that let's users reorder browsers on the list which would be reflected in the browser selection menu. It could be placed right above the browsers' list, next to the show/hide hidden browsers icon. See mockup below.
The new browser opens the original link.
The new browser opens the original link without :
after https
, resulting in connection error page, for example: https//github.com
Since there were no recent releases of BT or the extension, I suspect this could be caused by very recent update of Firefox to v122. Extension in Edge seems unaffected.
Versions:
Hi,
I thought that adding an option to set it to close the original tab/windows after it opens it in another browser (or maybe same but different profile or even window), would be interesting to have since it reduces interaction, resource usage etc.
Hi, links are opening in a firefox frameless window that can't be dragged into my main firefox window.
Opening the link with Chrome Private Profile does not open the link in the Incognito window
But when I select Edge (Chromium-based) it works fine.
Chrome version: 120.0.6099.216 (Official Build) (64-bit)
Edge version: 120.0.2210.121 (Official build) (64-bit)
Browser Tamer version: 3.6.2
lmGui Version: 1.89.9 docking version
This is my config.ini file
fallback = chrome:Default
open_method = pick
[browser:firefox]
name = Mozilla Firefox
cmd = C:\Program Files\Mozilla Firefox\firefox.exe
hidden = n
subtype = firefox
[browser:firefox:Profile0]
name = Primary
arg = "%url%" -P "default-release"
[browser:firefox:private]
name = Private
arg = -private-window "%url%"
icon = C:\Program Files\Mozilla Firefox\firefox.exe
subtype = incognito
order = 1
[browser:chrome]
name = Google Chrome
cmd = C:\Program Files\Google\Chrome\Application\chrome.exe
hidden = n
subtype = chromium
[browser:chrome:Default]
name = Person 1
arg = "%url%" "--profile-directory=Default"
[browser:chrome:InPrivate]
name = Private
arg = "%url%" -inprivate
subtype = incognito
order = 1
[browser:msedge]
name = Microsoft Edge
cmd = C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
hidden = n
subtype = chromium
[browser:msedge:Default]
name = Personal
arg = "%url%" "--profile-directory=Default"
icon = C:\Users\username\AppData\Local\Microsoft\Edge\User Data\Default\Edge Profile Picture.png
[browser:msedge:InPrivate]
name = Private
arg = "%url%" -inprivate
subtype = incognito
order = 1
[popularity]
msedge:Default = 14
msedge:InPrivate = 1
chrome:Default = 48
chrome:InPrivate = 4
Hi,
I've spoken too quickly the other day, actually the issue with it crashing when the firewall is active and not allowing any internet traffic is still around.
I tend to block all traffic but the browser…
Something is broken, when I click the icon it sets the URL to http://undefined/
CheckVer and AutoUpdate are linked to https://www.aloneguid.uk/projects/bt/bin/
Those urls doesn't seem to work anymore
When I set browsers as hidden, I can make them not show up in the settings/main window (where I set up rules and such), but they still show up in the picker list.
Allow them to be also hidden in the "pick a browser" window,
The new priority feature is really great! But I think I have found a bug that I hope you can help with. I have "Browser Picker Mode" set to "Ask on Conflict". When I open a rule that match more then one rule, the picker is shown. I think that if one of the rules have a priority, that rule should be selected and the picker should not be shown.
I have also tried where I give all rules a priority, but the picker is still shown. It works perfectly if I set the "Browser Picker Mode" to "Never Ask", but that does not work for me. I would like to show the Picker, if I have not prioritized a rule.
Best Regards
Mads
Hi,
I wanted to test out a feature that requires me to press CTRL+SHIFT+CLICK while using the Edge browser, however I found that it only works with external applications. I wonder if there is a way to make it work how it should through an extension. It would be useful if the BT selector pops up when I click a link in my email that I want to open in a specific profile or browser. I'm guessing that this could be achieved with a specific protocol, associated to BT. The extension could recognize a criterion like CAPSLOCK triggered or USING CTRL+SHIFT globally, causing it to send the link to the appropriate profile or browser.
This would make it easier to open URLs directly to the right browser, without having to set up rules that are only limited to certain domains (as can be done in the browser). It would also make BT more useful in redirecting URLs that match certain criteria, or just Ask on Conflict, and it could be much better than using the right-click menu.
Please let me know if you need any clarification.
I am just switching from Browser Chooser 2 and this seems like a great update.
In regards to the config.ini I have to questions.
Thanks for the great work.
Best regards
Mads
Hi, as mentioned in Title, would it be possible to select if we want a "AND" or a "OR" when building up our rules? Guess the default now is "OR" for each rule, with the 'and' operator we would be able to get more complex.
My current situation: I use telegram to both talk to friends as well as work. I wanted a "and" operator to create a filter:
If from Telegram.exe AND this url matches > work browser ; Else if from telegram.exe > second browser; Else, default browser.
Hope that makes sense!
Currently, when I open a link on my 2nd screen, the picker appears in the middle of my main screen - possibly on top of a movie or game that is currently running - and I need to move my mouse to the other screen and then back.
Installed Browser Tamer (default = Chrome)
Installed in Chrome the extension
What i expected what would happen that the icon "Open in Browser Tamer" or right-menu on a link> "Open in Browser Tamer" would open the browser chooser?
Did i set this up correctly or can i modify the extension to work like this?
After reinstalling Windows and configuring Bluetooth, MS Defender removed it after identifying it as malware (I didn't have time to add it to a whitelist)
Please figure out why it's happening and get it signed now. Even if it's free, some people might not like using it because it might scare them or be taken off their computers.
I apologize, but I am unable to make a donation at this time. However, I will make a donation asap as I am in a dire financial situation (no income) and able to do so. I sincerely appreciate the amount of work you've done on this software and the quality of it.
Browser Tamer 3.6.2
The below configure to handle a local application like http://localhost:51139/
that the port number changes but starts with 5
.
The rules are setup as
[browser:chrome:Default]
name = Yuan
arg = "%url%" "--profile-directory=Default"
user_arg = "--enable-features=IntelVpSuperResolution"
icon = C:\Users\liny01\AppData\Local\Google\Chrome\User Data\Default\Google Profile Picture.png
rule = scope:domain|type:regex|localhost:5....
rule = scope:domain|intel.com
rule = scope:domain|hemingwayapp.com
It works properly when it's just set
But after exit BT and start it again, this rule shows empty in the config box.
And it's loaded with the default browser.
Frameless window is not supported by firefox but it's still activated by default.
Would it be possible to have an option in the config to have it enabled/disabled by default?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.