You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If you are looking for a git client that works cross-platform we recommend to use https://git-fork.com/[Fork].
8
+
9
+
=== Browser Plugins
10
+
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 https://github.com/buunguyen/octotree#octotree[octotree].
11
+
In case you also work with ZenHub you might want to install the https://www.zenhub.com/extension[Zenhub Browser Extension].
This folder contains configurations to improve support for external (non-apple) keyboards into MacOS. While some users might be born with MacOS and are happy with all the defaults some users come from Windows or Linux and are used to their current keyboard layout and shortcuts. As this issue of MacOS was driving me entirely nuts, I digged very deep for solutions and provide them here to help others. This documentation therefore aims to give ultimate guidance and rescue for all such people that want to make their (external) keyboard behave more like on Windows or Linux.
6
+
== Finder
7
7
8
-
== Keyboard Layouts
8
+
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.
9
+
10
+
image::images/finder-integration.png["devonfw-ide integration in MacOS Finder"]
11
+
12
+
So after installing (see below) the integration(s) provided here, you can easily open a terminal ready for your `devonfw-ide`:
13
+
14
+
* right click (`[control]` + click) on file or folder in `Finder`
15
+
* Expand the `Quick-Actions` sub-menu
16
+
* Click on the desired action (e.g. `Open devonfw-Terminal here`)
17
+
* Verify that you environment is properly initialized by invoking:
18
+
+
19
+
```
20
+
mvn -v
21
+
```
22
+
23
+
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` (can be installed from `App Store`) do the same with `system/mac/iterm/Open_devonfw-iTerm_here.workflow`.
24
+
25
+
== Keyboard
26
+
27
+
Keyboard support is not an integration but however, some users coming from other platforms may struggle with the way MacOS deals with (external non-apple) keyboards.
28
+
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 cure for your pain!
29
+
To get all automated you can just run the script `system/mac/keyboard/install-mac-keyboard-support.sh` (in `${DEVON_IDE_HOME}`). In case you want to understand what is going on, you want to customizer the keyboard settings to your needs or you do not use German ISO keyboard layout, please read on.
30
+
31
+
=== Keyboard Layouts
9
32
10
33
Keyboard-Layouts allow a find grained mapping of each key on your keyboard to its resulting input character or behaviour. They are a MacOS native features and do not need to have software running as background service to make the keyboard mapping work (see Karabiner section below as alternative).
11
34
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 that define the exact mapping for the keyboard. As an example we provide a `Keyboard Layouts` folder containing a `bundle` for a German keyboard mapping.
12
35
13
-
To install keyboard layouts simply copy the `bundle` 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.
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` as example is called `German-ISO` and can be found in the `Others` section at the end of the list.
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, what is very handy when you switch from your native MacBook keyboard to an external USB keyboard or vice versa.
18
41
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.
@@ -22,35 +45,38 @@ In our German keyboard mapping example you can use the keys like `Alt Gr`, etc.
22
45
In case you want to create your own keyboard layout you can of course edit the `*.keylayout` files in a text editor. However, to make this much more comfortalbe, you can use the graphical editor tool https://scripts.sil.org/ukelele[Ukelele].
23
46
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.
24
47
25
-
== Switch Control and Command
26
-
27
-
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.
28
-
Open `System Preferences` and select `Keyboard`. Then in the first tab you 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.
Still various keyboard shortcuts might not work as expected for you. Therefore we provide you with a folder named `KeyBindings` that you can copy to your `~/Library` folder:
50
+
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:
38
51
```
52
+
cd system/mac/keyboard/
39
53
cp -r KeyBindings ~/Library
40
54
```
41
-
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` (if switched as described above always use `Control` instead starting from here). Also you can use `Command` together with left or right arrow key to move between words and combined with `Shift` for selection. As an example for further customization you can press `Command` + `<` to type the unicode character `«`.
55
+
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 left or right arrow key to move between words and combined with `Shift` for selection. As an example for further customization you can press `Command` + `<` to type the unicode character `«`.
42
56
43
57
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.
44
58
45
-
=== Eclipse
59
+
=== Switch Control and Command
60
+
61
+
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.
62
+
Open `System Preferences` and select `Keyboard`. Then in the first tab you 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.
In Eclipse move and select by word as described above is not working. Even worse the most important shortcut does not work: `Control` + `Space` for code completion (content assist). You can manually redefine the keybindings 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.
48
-
We have done all this for you so you can just import the file located in `Eclipse/eclipse-mac-keybindings.epf` into your Eclipse. Happy coding.
73
+
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.
49
74
50
-
== Karabiner
75
+
=== Karabiner
51
76
52
77
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 https://pqrs.org/osx/karabiner/[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:
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 popup. Select the rules you want to add (e.g. add all) and you are done. Unlike other solutions here you can quickly tweak your keyboard without the need to logout and restart apps what gives faster trial and error turn-arounds. Furhter, 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.
After you have link:setup.asciidoc[setup] your `devonfw-ide` on a windows machine,
9
+
you already have windows-explorer integration out-of-the-box.
10
+
Just right-click on the folder you would like to open in a terminal and choose from the context menu:
11
+
12
+
* `Git Bash`
13
+
* `Open devonfw CMD shell here`
14
+
* `Open devonfw PowerShell here`
15
+
* `Open devonfw Cygwin Bash Here` (only if cygwin was installed during setup)
16
+
17
+
== Tabs everywhere
18
+
Many people got used to _tabs_ that have been introduced by all major browsers:
19
+
20
+
.Tabs in Firefox
21
+
image::images/tools-tabs-firefox.png["tabs in firefox"]
22
+
23
+
This nice feature can be added to many other tools.
24
+
25
+
=== Tabs for Windows Explorer
26
+
If you want to have tabs for windows explorer simply install http://en.ejie.me/[Clover]
27
+
28
+
.Tabs in Windows Explorer
29
+
image::images/tools-tabs-explorer.png["tabs in windows explorer"]
30
+
31
+
=== Tabs for SSH
32
+
If you want to have tabs for your SSH client http://www.putty.org/[Putty] (or even better http://www.9bis.net/kitty/[Kitty] that comes with https://winscp.net/[WinSCP] integration) you simply install https://github.com/jimradford/superputty#superputty-application[SuperPutty]
33
+
34
+
.Tabs for SSH
35
+
image::images/tools-tabs-ssh.png["tabs for SSH sessions"]
36
+
37
+
=== Tabs for CMD
38
+
If you want to have tabs for your windows command-line you simply install https://conemu.github.io/[ConEmu]
39
+
40
+
.Tabs for CMD
41
+
image::images/tools-tabs-cmd.png["tabs for windows shells"]
42
+
43
+
See link:guide-integration.asciidoc[] for integration of ConEmu with `devonfw-ide`.
44
+
45
+
== Windows Helpers
46
+
47
+
=== Handle passwords
48
+
For security you want complex passwords that differ for each account? For simplicity you only want to remember a single password? Want to have both? Then you need to install https://keepass.info/[KeePass] right now.
49
+
50
+
=== Real text editor
51
+
A real developer needs a real text editor and not windows build in `notepad`.
52
+
The most common choice is https://notepad-plus-plus.org/[Notepad++].
53
+
54
+
=== Real compression tool
55
+
You need to deal with ZIP files, TGZ, dpkg, etc.? Just install http://www.7-zip.org/[7zip] and forget about windows build-in ZIP support (that is buggy with long file paths, etc.).
56
+
57
+
=== Smarter clipboard
58
+
You want to paste something from the clipboard but meanwhile you had to copy something else? Just one of many things you can easily do with http://ditto-cp.sourceforge.net/[ditto].
59
+
60
+
=== Sysinternals Tools
61
+
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 want is the https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite[Sysinternals-Suite]. Make process-explorer your https://www.ricksdailytips.com/make-process-explorer-default-task-manager/[default task manager] asap. Use autoruns to prevent nasty background things to be started automatically. Use tcpview to figure out which process is blocking port 8080, etc.
62
+
63
+
=== Cope with file locks
64
+
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?
65
+
Then you might love https://www.iobit.com/en/iobit-unlocker.php[IoBit Unlocker].
66
+
See also https://www.howtogeek.com/128680/HOW-TO-DELETE-MOVE-OR-RENAME-LOCKED-FILES-IN-WINDOWS/[this article].
67
+
68
+
=== Create symbolic links
69
+
You are used to symbolic and hard links in Linux? You have to work with Windows? You would also like to have such links in Windows? Why not? Windows https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/[supports real links] (not these stupid shortcuts).
70
+
If you even want to have it integrated in windows explorer you might want to install http://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html[linkshellextension]. However, you might want to disable `SmartMove` in the http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#configuration[configuration] if you face strange performance issues when moving folders.
71
+
72
+
=== Linux
73
+
Install https://www.cygwin.com/[Cygwin] and get your bash in windows with ssh-agent, awk, sed, tar, and all the tools you love (or hate).
74
+
75
+
=== X11
76
+
Want to connect via SSH and need to open an X11 app from the server? Want to see the GUI on your windows desktop?
77
+
No problem: Install https://sourceforge.net/projects/vcxsrv/[VcXsrv].
78
+
79
+
=== Keyboard Freak
80
+
Are you the keyboard shortcut guy? Want to have shortcuts for things like « and » ?
81
+
Then you should try https://www.autohotkey.com/[AutoHotKey].
82
+
For the example (« and ») you can simply use this script to get started:
83
+
```
84
+
^<::Send {U+00AB}
85
+
^+<::Send {U+00BB}
86
+
```
87
+
Now just press `[ctrl][<]` and `[ctrl][>]` (`[ctrl][shift][<]`). Next create shortcuts to launch your IDE, to open your favorite tool, etc.
88
+
89
+
=== Paint anywhere on your desktop
90
+
Do you collaborate sharing your screen, and want to mark a spot on top of what you see? Use http://epic-pen.com/[Epic Pen] to do just that.
91
+
92
+
=== analyze graphs
93
+
Need to visualise complex graph structures? Convert them to https://en.wikipedia.org/wiki/Trivial_Graph_Format[Trivial Graph Format] (.tgf) an run https://www.yworks.com/products/yed[yEd] to get an interactive visualization of your graph.
94
+
95
+
=== up your screen capture game
96
+
Capture any part of your screen with a single click, directly upload to dropbox, or run an svn commit (oops sorry git ;-) ) all in one go with http://getgreenshot.org/[Greenshot].
97
+
98
+
=== Fast Search in Windows
99
+
https://voidtools.com/[Everything] is a desktop search utility for Windows that can rapidly find files and folders by name.
0 commit comments