Fluid Apps try to keep your browsing limited to the website or webapp you chose when you created the Fluid App. Therefore, any Fluid App will send you to your system default web browser (like Safari or Firefox) if you browse to a URL "outside" that website.
Now, determining what constitutes a "website" is more black art than exact science. "Website" is in scare quotes because a website is a rather vague idea that may include documents and resources that are located on different servers... and therefore located in different URL domains.
Also, the login flow for many websites often quickly and quietly redirects you thru several URLs that may or may not look anything like the home URL you provided. This will cause Fluid to defer browsing to the system default browser.
Your Fluid App looks at any URL it is asked to display and tries to guess whether the resource at that URL is part of the same "website" as the home URL you provided. This is a tricky guessing game, and Fluid can never be 100% accurate out of the box.
The good news is that Fluid has a whitelist/blacklist feature for allowing/disallowing browsing to any URL pattern you choose. Basically, you need to define what constitutes your Fluid App's "website" to control what your Fluid App is allowed to do.
To configure this feature, go to your Fluid App's Application Menu (to the right of the Apple menu):
Preferences > Whitelist Preference Pane
In the Whitelist Prefpane, you can add/edit/remove URL patterns that will keep your Fluid App browsing only to URLs you would like. Select the "Allow browsing to URLs matching these patterns:" radio button.
In the "Pattern" table below, you should add a Wildcard Pattern for any URL which you want to your Fluid App to visit. Star ("*") is a special Wildcard character in this table. Star means "match anything here", and is a powerful way to easily include or exclude very large groups of URL patterns.
Alternatively, you can use full Regular Expressions instead of Wildcard Patterns by wrapping your URL pattern in forward slashes /
like: /http:\/\/google\.com\/.+/
. If you don't know what Regular Expressions are, forget I mentioned them. They're much more complicated, and Wildcard Patterns can almost always get the job done more easily.
If you find that your Fluid App is unnecessarily kicking you out to your default browser (say, Safari) you should try to determine the first URL that is loaded in Safari. This first URL is the one that Fluid thinks is not part of your "website". After determining that URL, you should add a pattern to the table described above to match that URL. I suggest applying stars liberally to the pattern so that Fluid will be more accepting of browsing to a similar URL.
Fluid also ships with a fair amount of "special case" code by default for some of the more well-known webapps. Basically, this means that Fluid has a collection of URL patterns that are known to work for some of the more popular webapps (especially ones that quickly redirect you to URLs that don't match the common home URLs), and Fluid will automatically insert these patterns on first launch. Gmail is a good example and the default patterns for Gmail are shown in the screenshot above.
If you're having issues using ⌘L, ⌘C and Esc and you want an AppleScript script that runs as an Automator Service, in order to copy the URL of a Fluid App, created with Fluid, then here is an example scenario you could implement.
Under macOS 10.12.3 using Fluid (Version 1.8.6 (206)) and the URL of this question, I created a Fluid App named Ask Different Question.
I them made an Automator Service workflow using a Run AppleScript action and the AppleScript code below.
set appName to "Ask Different Question"
tell application appName
activate
tell application "System Events"
set toolbarState to (name of every menu item of menu 1 of menu bar item 5 of menu bar 1 of application process appName)
if toolbarState contains "Show Toolbar" then
keystroke "t" using {option down, command down}
set the clipboard to (get value of text field 1 of group 1 of toolbar 1 of window 1 of application process appName)
keystroke "t" using {option down, command down}
else
set the clipboard to (get value of text field 1 of group 1 of toolbar 1 of window 1 of application process appName)
end if
end tell
end tell
- Note that all you should have to change in the code above is the first line,
set appName to ...
where ...
is the name of your Fluid App. The rest of the code should then work as is.
In Automator, create a new Service workflow, adding a Run AppleScript action to it. Then replace the default code with the code above. Also change the value for Service receives to no input while selecting the target Fluid App for in, as shown in the image below. Then save the Automator Service workflow.
The next step is to assign a keyboard shortcut for the Automator Service workflow you've just created.
In System Preferences > Keyboard > Shortcuts > Services, find your service and set its shortcut.
I used ⌘U as that was easy to remember using U for URL.
The last thing you'll need to do, is add the Fluid App you created that will use the Automator Service workflow you've just created to System Preferences > Security & Privacy > Privacy > Accessibility as shown in the image below for the Ask Different Question app I created in Fluid.
Now when you're in the Fluid App you created and press ⌘U, the URL will be copied to the Clipboard and from there you can paste it wherever you'd like.
Best Answer
Developer of Fluid here.
Yes, there's a very easy way:
⌘ + L (That's "Command - L")
That will temporarily "show" the toolbar (if it was hidden), and select all the text in the URL location field. From there you can copy it, via ⌘ + C.
Then, to hide the toolbar, you can press:
⎋ esc (That's "Escape")
If the toolbar was previously hidden, this will hide the toolbar.