![]() Once installed, AppleScripts can be launched by adding them to the OmniFocus toolbar by choosing Customize Toolbar from the View menu. ![]() But, this means reaching for your mouse or trackpad every time you want to trigger an AppleScript, and the toolbar can quickly become cluttered. With a little configuration, you can make all of your installed OmniFocus AppleScripts available through FastScript’s menu bar app.Īdding Convenience Using FastScriptsĪn alternative is to use FastScripts. Additionally, you can assign keyboard shortcuts to the AppleScripts that you use most frequently.Ī free version of FastScripts is available from Red Sweater’s website. It contains all of the functionality of the paid product, but you’re limited to ten keyboard shortcuts. To remove this limitation, purchase the full version either from Red Sweater directly or through the Mac App Store. Tip: Check out the OmniFocus AppleScript Directory for easy access to some of the best AppleScripts written for OmniFocus.Extremely complicated and inconsistent rules In Bash, exceptions are the rule, not even all being described by the main page. There are a grand total of 5 different ways of quoting, sometimes even when one does not want to, for instance in command substitutions. These are all based around preserving the literal meaning of every character, with an exception list. There is even an exception list to the exception list in 4 of the 5, regarding how the backslash behaves! The behavior of the backslash is also one of the quoting rules, so naturally, it also has an exception in how it works when it stands before a newline as compared to other characters. Bash has several layers of interpretations, all to be kept in mind: The ~ expands to the home of the current user. So if you store it in a variable, can you use it that way? Nope: tilde expansion comes before variable expansion. Aha, so that's how it works! Then, since applying quotation happens after redirections are set up, it must mean that redirecting within quotes works, right? Nope: there is an exception! If a redirection symbol is not quoted, quotation around the symbol is observed, but is not removed. So, since variable expansion also comes after setting up redirections, and no exceptions are described here in the man page, getting the name of a file from a variable and using it as a target should not work, right? No: redirection does not actually take place when the symbols are being read, the symbols are merely removed and are noted for later, right before when the actual command runs. Apart from 5 types of quotation, there are basically 2 quoting phases, 2 word splitting phases (with only one being controllable), and a tokenization phase on top of that. ![]() If you have a command, it could be an alias, a special built in, a non-special built in, a symbolic link to a file, a regular file, a function, with different rules regarding how they can be overridden, if redirection happens before or after arguments have been passed (what does "time my_command 2>&1 >log_file" do?), etc. This list is admittedly long, but it doesn't even scratch the surface of the bloat, complexity and inconsistencies of Bash. ![]() GP元 is not compatible with Apple's lawyers Apple, one of the largest distributors of UNIX systems, only ships an ancient version of bash that predates the iPhone. No one knows why as Apple hasn't said, but the version Apple includes in MacOS is from right before the license was updated to version 3 of the GNU GPL (General Public License). Other major companies (IBM, Microsoft) have had no problem shipping the latest version of bash, so it's unclear what Apple's lawyers are averse to. The GPL has always said that if you distributed a program, you granted everyone the right to use it freely. The biggest change in version 3 was the addition, ".and that includes software patents." This was necessary because back in 2006 Microsoft was demanding that any company that uses Linux pay them or get sued for infringing on their patents. They even took some companies, like TomTom, to court.
0 Comments
Leave a Reply. |