Is there a way to call an existing shortcut in Premiere Pro through extend script? - adobe

I'm busy building some automation scripts for Premiere Pro CC 2019 and would like to do a few things that appear not to have methods as described in the API documentation found here: https://buildmedia.readthedocs.org/media/pdf/premiere-scripting-guide/latest/premiere-scripting-guide.pdf
A lot of the functionality is already doable with existing Premiere Pro shortcuts, and it would be great if I could leverage these existing shortcuts.
Is there a way to call these shortcuts from Extendscript?
I can't seem to get a handler to send shortcut keys to.
Something like:
app.executeShortcut({"keyCode": 22,"ctrlKey": true})
would be great.

Related

Qt6 integration of 3dconnexion spacemouse devices

hope this finds you well.
I have been wondering if there are any updates regarding qt integration of the spacemouse sdk.
I found this old post https://forum.3dconnexion.com/viewtopic.php?f=19&t=4968 but all the source code files are not present anymore and I don't think I'm skilled enough to rewrite it given the information present in the forum (here's the updated link to the post https://www.codegardening.com/post/2011/2011-02-05-using-the-3dconnexion-mouse-with-a-qt-application/) and honestly it looks strange to me that Qt has not yet made any integration packages for 3d connexion devices.
I am using Visual Studio 16 on a Windows machine in a Qt6 VTK9.2 OpenCV project
I have tried the basic windows way using window handlers but I can't make it work (no input read) as soon as I pass the handler to the qMainWindow as HWND(mainWindow.winId()), while it works fine if I create a dedicated window to read the data.
Could you please give me some suggestions or point me to some resources?

How to uninstall Adobe CC apps (multiple apps)

I have multiple apps installed from Adobe CC, with the latest update of Adobe CC (2014) all old applications are still there!?! Example: Adobe Photoshop CC and Adobe Photoshop CC (2014) are installed now. Unfortunaly the adobe programs do not appear in Control Panel > Programs and Features. :-(
How can i uninstall Adobe Photoshop CC? Any tips or trics? Thanx!
You can try to call the uninstaller by making a WMIC call...
open your CMD as admin
type:
wmic product get name,version
press enter and check the result
if photoshop appears in there try:
wmic product where name="the name of photoshop you found, just copy/paste it" call uninstall /nointeractive
the /nointeractive just makes it uninstall in silent mode, you can remove it if you want to track the progress
The updated "2014" apps use a new binary so require a new install. Ex: You can open a project made with After Effects CC(2014) using After Effects CC (any file you open in the new 2014 will convert the project file)
Personally, I have had to keep both applications to not mess with older projects.
Edit: All of the adobe programs should show up in the Control Panel, you might make sure you are not filtering them out...

Documentation for writing GNOME Shell extensions

I've been asked to customise the layout of the GNOME 3 desktop. Apparently the way to do that is by writing an "extension".
I've managed to do some of the things I wanted to do, but I feel utterly starved of information. I cannot find any useful documentation anywhere. I've wasted entire days of my life frantically googling every imaginable search term in a desperate attempt to find useful information.
The GNOME website has hundreds of extensions for download. These are not trivial 3-liners; they're sophisticated pieces of code. It defies belief that anybody could write these without documentation explaining how to do it.
Please, can somebody tell me where the actual documentation is? So far, the best I've managed to do is take apart existing extensions trying to track down the magic command that does the specific bit I'm interested in. (Not an easy task!)
Command names, object paths, example programs, anything would be helpful!
I have recently dug into it myself. The documentation is usually sparse or outdated. Here are some sources which helped me to get started (and through development):
Basic Stuff
Step-by-step tutorial (Gnome 3.4)
Unofficial documentation for the JavaScript bindings of many libraries
The sources of the gnome-shell's JavaScript bindings
Explanation of the St (Shell Toolkit) Ui-Toolkit components.
Some unofficial guidelines to get your extension on extensions.gnome.org
Since the documentation is nearly unavailable (or up to date), you'll need to do a lot of source-reading. I linked the gnome-shell sources above (the JavaScript part) which is a good start when diving into parts that are not covered by the In-official documentation (which is the most complete thing you'll find).
What's also particular helpful is checking extensions.gnome.org for extensions which do similar things to what you want to create, and look at their sources (most of them are open-source on GitHub or Bitbucket. You can also install them and find the sources under ~/.local/share/gnome-shell/extensions/).
When searching for something to use or more documentation on a particular function, you can also consult manuals for bindings in different languages (thought the parameters and return-values might not match).
Last but not least, here is some debugging advice:
LookingGlass is not particularly helpful. It only shows one line of an exception (the description) and only if they occur at startup time (when your extension is first started).
For full StackTraces and runtime-exceptions, consult the ~/.xsession-errors-file. It might be very long and bloated. I use this handy script to read it:
# Grabs the last session-errors from the current X11 session.
# This includes full Stack-Trace of gnome-shell-extension errors.
# See https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial#lookingGlass
tail -n100 ~/.cache/gdm/session.log | less
Note that since Gnome 3.6, if you are using gdm as display manager, the current session log is the file ~/.cache/gdm/session.log.
On some newer distros using systemd, you can get the error logs with:
journalctl -f /usr/bin/gnome-session
For debugging the prefs-part of your extension, you can launch the preferences by using the gnome-shell-extension-prefs-tool from a terminal, to see any exception-output on the console (you can also call the tool like gnome-shell-extension-prefs [uuid], to directly show your extensions preferences).
Since there is currently no real way of debugging with breakpoints (there is, but it's tricky), you can log on the console for quick checking, use the print()-function. You will see the output as mentioned above (either in the sessions-error file or on the terminal when starting gnome-shell-extension-prefs-tool).
Although it might be a little hard to get into it, the extension framework is quite powerful. Have fun!
I wrote a Blog-Post with somewhat greater detail, which can be found here: Making Gnome-Shell Extensions
An extensive list of references can be found on the Gnome Developer - API Reference page.
I used the following for my extension, but your use may vary:
GTK+ 3
GTK+ is the primary library used to construct user interfaces in GNOME applications. It provides user interface controls and signal callbacks to control user interfaces.
GDK 3
GDK is an intermediate layer which isolates GTK+ from the details of the windowing system.
Clutter
Clutter is a GObject based library for creating fast, visually rich, graphical user interfaces.
GObject Introspection
GObject Introspection is striving to provide a middleware layer between (GObject based) C libraries and language bindings.
Shell
Shell Reference Manual
St
St - Shell Toolkit - is the GNOME Shell's custom Clutter-based toolkit that defines useful actors. Some of these actors, such as StBoxLayout and StBin implement various layout options.
Icon Theme Specification
This freedesktop.org specification describes a common way to store icon themes.
NOTE: These last two are very helpful in finding visual element parameters!
PyGTK
PyGTK is GTK+ for Python. This reference contains a chapter for each Python PyGTK module (that corresponds to the underlying GTK+ library) containing the class descriptions.
PyGObject
PyGObject is a Python extension module that gives clean and consistent access to the entire GNOME software platform through the use of GObject Introspection. Specifically speaking, it is Python Bindings for GLib, GObject, GIO and GTK+.
This reference contains a chapter for each PyGObject module containing the class descriptions.
The documentation is on:
https://gjs.guide/extensions/
For the documentation of libraries:
https://gjs-docs.gnome.org/
More details on https://gjs.guide/extensions/overview/architecture.html
The other stuff you might want to check are
https://gitlab.gnome.org/GNOME/gnome-shell/blob/main/js/ui/popupMenu.js
https://gitlab.gnome.org/GNOME/gnome-shell/blob/main/js/ui/dialog.js
https://gitlab.gnome.org/GNOME/gnome-shell/blob/main/js/ui/modalDialog.js
https://gitlab.gnome.org/GNOME/gnome-shell/blob/main/js/ui/panelMenu.js
https://gitlab.gnome.org/GNOME/gnome-shell/tree/main/js
https://gitlab.gnome.org/GNOME/mutter
You can browse under js/ for more code to be reused.
You might also want to check https://gi.readthedocs.io/en/latest/index.html
Question:
I could not find anything under https://gjs-docs.gnome.org/ except some CSS and Javascript documentation ?!?!
Answer:
You have to first enable the docs to use them. Here, you will be mainly looking for:
clutter
meta
shell
st
Create a file like:
echo '{"docs":"clutter9~9_api/clutterx118~8_api/gobject20~2.66p/meta9~9_api/shell01~0.1_api/st10~1.0_api","hideIntro":"1"}' > devdocs.json
Import this file to https://gjs-docs.gnome.org/settings
Now you will be able to visit:
https://gjs-docs.gnome.org/shell01~0.1_api-global/
https://gjs-docs.gnome.org/shell01~0.1_api/
https://gjs-docs.gnome.org/meta9~9_api/
https://gjs-docs.gnome.org/st10~1.0_api/
https://gjs-docs.gnome.org/clutter9~9_api/
https://gjs-docs.gnome.org/clutter9~9_api-actor/
Warning: The version on the devdocs.json file is hardcoded. It will be outdated in no time, so you might want to check the version. The point is - you can not access docs until you enable them.
P.S. I know, this is a mess. This is how they did it.

Is it possible to implement emacs style keybindings in all Qt programs (probably as a qt plugin)?

Gtk programs can have different keybinding themes by binding different keys to gtk signals, but afaik, qt programs cannot do that now.
Since Qt support plugins (as most of this kind of library do, and what I mean here is High Level Plugin or Qt Extension) and at least some of them (High Level Plugins) can be loaded automatically by all qt programs according to sth like ENV, is it possible to have global (Emacs or other style) keybindings (at least in all input area) using qt plugin? Or in an other word, does anyone know which kind of (High Level) plugin this should be?
My guess is a inputcontext plugin or a accessible(bridge) plugin.
For input context plugin, I wonder if this can work with input method since afaik only one inputmethod backend can be enabled at one time.
For accessible plugin, I haven't find out how to make it loaded automatically.
Thanks.
You could install an event filter to intercept key events, and use that to convert them to other events.
I think you're using the word "plug-in" in a different sense to Qt. It has various specific plugins -- for image codecs, SQL drivers, etc -- but no general-purpose "do this to all widgets" mechanism. For that, you would have to catch all the creation-points of the top-level widgets in your application and add code to install the filter for each case.
I somehow solve the problem (along with this one) using xkb, i.e. redirect C-npfbae to proper keys, although I haven't made C-d redirection compatible with terminal EOF.
I still think the problem (in Qt) can be solved with qtaccessible plugins but I haven't find out how to make that work.

VIM Key bindings for Adobe Flash Builder 4

I was curious if anyone knew of a way to get VI/VIM key bindings in Flash Builder 4. I know that I can just edit the files in VIM directly, but as I am just getting started in Flex - I would prefer to use the IDE until I get my feet about me.
I am running Flash Builder 4 on OSX Snow Leopard.
Any help would be greatly appreciated.
I haven't used Flash Builder 4, but I am under the impression it is basically a plugin for the Eclipse IDE. If this is the case, then the easiest way to get Vim key bindings might be to install the Vrapper plugin. The site for the plugin is: http://vrapper.sourceforge.net/home/
The site provides links that can be
used within Eclipse to install the
plugin. I'd probably start with this
one:
http://vrapper.sourceforge.net/update-site/stable
To install the plugin from within the
IDE, click the Help menu, then
"Install New Software..."
In the "Work with:" text box, insert
the link provided by the site.
In the table presented below the
text box Vrapper should appear
which a checkbox next to it.
Check the checkbox and click next.
You should now be able to click the
Finish button and the plugin should
be installed. You will probably be
prompted to restart the IDE. I would
do so.
Upon restart, there will probably be
a vim icon on the toolbar that you
can use to enable/disable the Vrapper
plugin. If there isn't, you should
still be able to enable/disable it
through Edit->Toggle Vrapper.
You may also want to check out http://eclim.org/ which rather than emulate Vim, allows it to be used directly with Eclipse in several ways. I think Vrapper is probably closer to what you are looking for at the moment, but eclim might be useful to you in the future.
Hope this helps.

Resources