6. Advanced Features
6.1. Cross-Plattform Tooling
6.1.1. Git Client
If you are looking for a git client that works cross-platform we recommend to use Fork.
6.1.2. Browser Plugins
There are tons of helpful browser plugins out there and it might be a matter of personal taste what you like to have installed. However, as we are heavily using github we want to promote octotree. In case you also work with ZenHub you might want to install the Zenhub Browser Extension.
6.2. Windows Tooling
6.2.1. Integration into Windows-Explorer
After you have set up your devonfw-ide
on a windows machine,
you already have windows-explorer integration out-of-the-box.
Just right-click on the folder you would like to open in a terminal and choose from the context menu:
-
Git Bash
-
Open devonfw CMD shell here
-
Open devonfw PowerShell here
-
Open devonfw Cygwin Bash Here
(only if cygwin was installed during setup)
6.2.2. Tabs everywhere
Many people got used to tabs that have been introduced by all major browsers:

This nice feature can be added to many other tools.
Tabs for Windows Explorer
If you want to have tabs for windows explorer simply install Clover

Tabs for SSH
If you want to have tabs for your SSH client Putty (or even better Kitty that comes with WinSCP integration) you simply install SuperPutty BTW: Windows 10 has already an SSH client included.

Tabs for CMD
If you want to have tabs for your windows command-line you simply install ConEmu. Here you can also add other shells like Putty. Also you should have a look at the new Windows Terminal which also supports tabs.

See integration to make ConEmu work flawless with devonfw-ide
.
6.2.3. Windows Helpers
Handle passwords
Do you want complex passwords that differ for each account for security? Do you only want to remember a single password for simplicity? Do you want to have both? Then, you need to install KeePass right now.
Real text editor
A real developer needs a real text editor and not windows build in notepad
.
The most common choice is Notepad++.
Real compression tool
Do you need to deal with ZIP files, TGZ, dpkg, etc.? Just install 7zip and forget about windows build-in ZIP support (that is buggy with long file paths, etc.).
Smarter clipboard
Do you want to paste something from the clipboard but meanwhile you had to copy something else? Just, one of the many things you can easily do with ditto.
Sysinternals Tools
A real developer will quickly notice that windows build in tools to analyze processes, network connections, autostarts, etc. are quite poor. So, what you really would like is the Sysinternals-Suite. You can make process-explorer your default task manager. Use autoruns to prevent nasty background things to be started automatically. Use tcpview to figure out which process is blocking port 8080, etc.
Cope with file locks
Did you ever fail to delete a file or directory that was locked by some process and you did not even know which one it was? Then you might love IoBit Unlocker. See also this article.
Create symbolic links
Are you are used to symbolic and hard links in Linux? Do you have to work with Windows? Would you also like to have such links in Windows? Why not? Windows supports real links (not shortcuts like in other cases).
If you even want to have it integrated in windows explorer you might want to install linkshellextension. However, you might want to disable SmartMove
in the configuration if you face strange performance issues when moving folders.
Linux
Install Cygwin and get your bash in windows with ssh-agent, awk, sed, tar, and all the tools you love (or hate). Windows 10 has already a Linux as an installable feature included: WSL and from Version 2004 on WSL2, which is a native Linux Kernel running on Windows (an a light weight VM).
X11
Do you want to connect via SSH and need to open an X11 app from the server? Do you want to see the GUI on your windows desktop? No problem: Install VcXsrv.
Keyboard Freak
Are you a keyboard shortcut person? Do you want to have shortcuts for things like « and » ? Then you should try AutoHotKey. For the example (« and ») you can simply use this script to get started:
^<::Send {U+00AB}
^+<::Send {U+00BB}
First, just press [ctrl][<]
and [ctrl][>]
([ctrl][shift][<]
). Next, create shortcuts to launch your IDE, to open your favorite tool, etc.
If you like a GUI to easily configure the scrips, that comes with a lot of extensions preinstalled, you should have a look at Ac’tive Aid.
Paint anywhere on your desktop
Do you collaborate sharing your screen, and want to mark a spot on top of what you see? Use Epic Pen to do just that.
Analyze graphs
Do you need to visualise complex graph structures? Convert them to Trivial Graph Format (.tgf), a run yEd to get an interactive visualization of your graph.
Up your screen capture game
Capture any part of your screen with a single click, directly upload to dropbox, or run a svn commit all in one go with Greenshot. Another screen capture tool where you can easily manage and edit your screenshots and also do screen recordings with is Screenpresso.
Fast Search in Windows
Everything is a desktop search utility for Windows that can rapidly find files and folders by name.
6.3. MacOS Tooling
6.3.1. Finder
If you want to open a terminal from a folder in Finder
and automatically get your environment set properly for devonfw-ide
you will find the perfect solution here.

So after installing (see below) the integration(s) provided here, you can easily open a terminal ready for your devonfw-ide
:
-
right click (
[control]
+ click) on file or folder inFinder
-
Expand the
Quick-Actions
sub-menu -
Click on the desired action (e.g.
Open devonfw-Terminal here
) -
Verify that you environment is properly initialized by invoking:
mvn -v
To get this feature for MacOS Terminal.app
open Finder
and run the workflow system/mac/terminal/Open_devonfw-Terminal_here.workflow
(in ${DEVON_IDE_HOME}
). For iTerm2.app
(that can be installed from App Store
) do the same with system/mac/iterm/Open_devonfw-iTerm_here.workflow
.
6.3.2. Keyboard
Keyboard support is not an integration however, some users coming from other platforms may struggle with the way MacOS deals with (external non-apple) keyboards.
So to make it short: if you are happy with your keyboard and shortcuts, you can skip all the following. Otherwise, if you think that pressing keys like Home
, End
, etc. should just work as expected or pressing Alt Gr
should allow you to type the special characters as printed on your German keyboard then here you will find a solution to your problems!
To get all automated you can just run the script system/mac/keyboard/install-mac-keyboard-support.sh
(in ${DEVON_IDE_HOME}
). If you would like to understand what is going on, you want to customize the keyboard settings to your needs, or you want a keyboard layout other than German ISO, please read on.
Keyboard Layouts
Keyboard layouts allow a find-grained mapping of each key on your keyboard to its resulting input character or behaviour. They are MacOS native features and do not need to have software running as a background service to make the keyboard mapping work (see Karabiner section below as an alternative).
They are provided as so called bundle
(white lego brick icon). Like a MacOS app this is a folder containing a Contents
folder with a specific sub-folder structure. In the Resources
subfolder *.keylayout
files are placed and define the exact mapping for the keyboard. As an example we provide a Keyboard Layouts
folder containing a bundle
for a German keyboard mapping.
To install keyboard layouts simply doubleclick the bundle
or copy it to ~/Library/Keyboard Layouts
. To actually use them go to System Preferences
and select Keyboard
. Then, select the tab Input Sources
. With the +
button you can add a keyboard layout for your daily usage with your mac. Please note that the keyboard layout shipped with devonfw-ide
is called German-ISO
and can be found in the Others
section at the end of the list. It can be used as an example or template, if you want to create your own layout.

When you have multiple mappings in place, on the top menu bar you will find a little icon next to the current time that allows you to switch between the keyboard layouts, which is very handy when you switch from your native MacBook keyboard to an external USB keyboard or vice versa. Even for a pure MacOS geek this can be helpful in case a friend coming from Windows/Linux is supposed to type something on the Mac in a pair-programming session.
In our German keyboard mapping example you can use the keys like Alt Gr
, etc. to type special characters as you would expect and as printed on your keyboard. To make Pos1
, End
, etc. work properly accross all apps please read on to the next section(s).
In case you would like to create your own keyboard layout you can of course edit the *.keylayout
files in a text editor. However, to make this much more comfortable, you can use the graphical editor tool Ukelele.
Besides, the app itself, the Ukelele dmg
file, also contains a Documentation
and a Resources
folder. The latter contains many keyboard layouts that you can use as a starting point.
Key Bindings
Still, various keyboard shortcuts might not work as expected for you. Therefore, we provide you with an advanced configuration in the folder system/mac/keyboard/KeyBindings
that you can copy to your ~/Library
folder:
cd system/mac/keyboard/
cp -r KeyBindings ~/Library
To make the changes work you need to log out and log in again or you can reboot. After that, your Home
(Pos1
) and End
buttons should work as expected including with selection via Shift
and/or Command
. Also, you can use Command
together with the left or right arrow key to move between words and combined it with Shift
for selection. As an example, for further customization you can press Command
+ <
to type the unicode character «
.
However, still some apps listen to keyboard events on a lower level and come with their own keyboard mappings. In these apps you might still experience unexpected behaviour. Solutions can be found in the following sub-sections.
Switch Control and Command
If you are used to windows or linux and get easily confused by the apple keyboard behaviour you might want to switch the Control
and the Option
key.
Open System Preferences
and select Keyboard
. Then, in the first tab, click on the button Modifier Keys…
. For every keyboard you can customize the behaviour of your modifier keys and therefore switch Control
and Option
as illustrated in the screenshot:

Programmers now should also disable that Control
+ Space
is opening Spotlight Search
as otherwise this shortcut can not be redifined in other apps like common IDEs.

Eclipse
In Eclipse, move and select by word as described above does not work. Even worse, the most important shortcut does not work: Control
+ Space
for code completion (content assist). You can manually redefine the key bindings in Preferences
under General > Keys
. However, with multiple IDE installations and workspaces this will quickly get tedious. Therefore, you can Export
and Import
specific Preferences
such as Keys Preferences
to/from a *.epf
(Eclipse PreFerences) file.
We have done all this for you so you can just import the file located in system/mac/keyboard/Eclipse/eclipse-mac-keybindings.epf
into your Eclipse. Happy coding.
Karabiner
If you want more dynamics and do not worry about an app that has to run in the background to make your keyboard work as you like (no relevant performance overhead), you can try Karabiner Elements. This is a powerful tool to remap your keyboard shortcuts. In the UI you can only directly create and edit Simple Modifications
that are too limited for most use-cases. However, using Complex Modifications
you can do a lot of magic to customize the keyboard behaviour to your personal needs. A key with any combination of modifiers can be mapped to any key with arbitrary modifiers. This can also be bound to conditions based on the frontmost application or the keyboard model. These complex modifications are configured as *.json
files. We have included a set with useful rules for external keyboards, programmer shortcuts, etc. If you have Karabiner installed, you only need to copy the contents of the karabiner
folder located in this directory to your ~/.config
folder:
cd system/mac/keyboard/
cp karabiner/assets/complex_modifications/*.json ~/.config/karabiner/assets/complex_modifications/
Now, if you open the Complex Modifications
in the Karabiner
app, you can click on the + Add rule
button and will see these mappings in the pop up. Select the rules you want to add (e.g. add all) and you are done. Unlike other solutions, you can quickly tweak your keyboard without the need to log out and restart apps, which gives faster trial and error turnarounds. Further, if you want to tweak your own configs, Karabiner comes with a secondary app called Karabiner-EventViewer
that shows you the names of the keys, modifiers, and apps for the events you are triggering. This is very helpful to get the config right.
6.4. Linux Tooling
There is nothing in this section so far. If you are a Linux user, please share your experience and provide your valuable hints.
6.5. Lombok
Even though not officially recommended by devon4j
some projects want to use lombok in their project.
As this requires some tweaks for IDEs we do support you with this guide in case you want to use it.
6.5.1. Lombok in Eclipse
For eclipse there is a plugin to activate lombok support in eclipse. We have this already preconfigured for you in our default settings. So for manual installation after setup, you can get it via this command:
devon eclipse add-plugin lombok
However, to avoid manual extra effort for lombok based projects you only need to activate this plugin in your project specific settings in lombok.properties for eclipse (replace false
with true
for plugin_active
).
6.5.2. Lombok for VS-Code
For VisualStudio Code there is an extension to activate lombok support in VS-Code. We have this already preconfigured for you in our default settings. So for manual installation after setup, you can get it via this command:
devon vscode add-plugin lombok
However, to avoid manual extra effort for lombok based projects you only need to activate this plugin in your project specific settings in lombok.properties for vscode (replace false
with true
for plugin_active
).
6.5.3. Lombok for IntelliJ
For IntelliJ there is a plugin to activate lombok support in IntelliJ.
Currently we have not yet configured or automated this in devonfw-ide
.
Please contribute to change this. See issues #453 and #491.