| |
— | software:cygwin [2022/03/02 12:48] (current) – created - external edit 127.0.0.1 |
---|
| ====== Cygwin ====== |
| |
| ===== Getting the Cygwin Installer ===== |
| |
| The Cygwin installer executable is available at [[https://cygwin.com/setup-x86_64.exe|https://cygwin.com/setup-x86_64.exe]]. You will need it again later on, as it is also the package manager for Cygwin. So make sure you save it (instead of just executing it this once). |
| |
| ===== Spaces in Path ===== |
| |
| Cygwin does not play well when installed in a path that contains spaces. In this context, be aware that not all Windows paths are equal; e.g. the German "C:\Programme" is actually an alias for "C:\Program Files" (which contains a space). Ideally (if you have the necessary permissions), install to "C:\Cygwin" to avoid any problems. |
| |
| ===== First Install ===== |
| |
| For the first installation, do not make any package selections. I have experienced problems with too heavily customized package selections for the initial installation in the past. Just go with the default package selection (but //do// select a mirror close to you as package source). |
| |
| This will not include any X11 functionality yet. We will fix that in a later step. |
| |
| ===== Home Path ===== |
| |
| Once you are done with the installation, and **before** you start the Cygwin shell the first time, adjust your home path. |
| |
| By default Cygwin will create your user's home directory in ''<InstallPath>/home/<UserName>''. But it is much more convenient to work from your ''%USERPROFILE%'' directory -- you know, where //Windows// already created your directories for Documents, Pictures, Videos, Downloads etc. |
| |
| To change the home location, navigate to ''<InstallPath>/etc/'' and open the file ''nsswitch.conf'' in your favorite text editor. Among other things, you will find this line: |
| |
| ''# db_home: /home/%U'' |
| |
| Change it to: |
| |
| ''db_home: /%H'' |
| |
| Save the file, and from now on your Cygwin ''$HOME'' will be your Windows ''%USERPROFILE%''. |
| |
| ===== Startup Files ===== |
| |
| Cygwin would usually provide a set of startup files when setting up a new user directory, copying the files in ''/etc/skel/''. This, however, is only done if the directory itself did not already exist -- i.e., when setting the home path as in the previous section, you will not have those skeleton files. You should copy them yourself: |
| |
| ''cp /etc/skel/.[a-z]* ~'' |
| |
| They do not do much, but contain a lot of useful tips and documentation. You are urged to look through those files to get an idea of what they could do for you. |
| |
| While the files in ''/etc/skel/'' might be updated by Cygwin, the copies in your home directory are yours alone and will not be touched by the system. |
| |
| ===== Invocation ===== |
| |
| When a new bash login shell is started (see below for the meaning of "login shell"), it sources setup files in the following order: |
| |
| * ''/etc/profile'' -- which sets up certain Cygwin specifics and therefore looks a bit different than your average Linux ''/etc/profile'' |
| * The **first** of |
| * ''~/.bash_profile'' (which, when you use the one from ''/etc/skel/'', will source ''~/.bashrc'') |
| * ''~/.bash_login'' |
| * ''~/.profile'' (which is also sourced if some other shell than bash is started) |
| |
| If a non-login shell is started, it loads ''~/.bashrc''. |
| |
| ===== Setting up Setup ===== |
| |
| Installing additional Cygwin software is done by starting the installer executable again. My recommendation is to move ''setup-x86_64.exe'' to your Cygwin directory, and creating an alias for easy access. The best place to set up aliases would be ''~/.bashrc'' -- unless you would like to uncomment the part in ''~/.bashrc'' that sources ''~/.bash_aliases'' and use //that// file for that alias: |
| |
| ''alias setup=/cygdrive/c/<InstallPath>/setup-x86_64.exe'' |
| |
| ===== X11 Basics ===== |
| |
| Start a new shell, or source the file that sets the ''setup'' alias (see above). Then call ''setup'' to bring up the Cygwin package manager. |
| |
| Now we will install the packages ''xinit'' and ''xorg-server'', which provide basic X11 support for Cygwin, and ''alacarte'', which will allow customization of the XDG menu provided by Cygwin/X. |
| |
| After installation, you will find in your start menu the group "Cygwin-X", and in it the shortcut "XWin Server". Copy this shortcut to ''%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup'' to have X11 start automatically for your user. Copy the shortcut to ''%PROGRAMDATA%\Microsoft\Windows\Start Menu\Programs\StartUp'' to have X11 start automatically for **every** user on your machine. |
| |
| If you want some special keyboard setup, call up the properties of the shortcut, and add the necessary options -- in my case, I added ''-xkbmodel pc105 -xkblayout us -xkbvariant altgr-intl''. |
| ===== Recommended Packages ===== |
| |
| * alacarte |
| * vim, gvim |
| * ctags |
| * openssh |
| * perl |
| * git, gitk |
| * curl |
| * cmake, make, ninja |
| * dos2unix |
| * unzip |
| * rcs |
| * bash-completion, chere |
| * gnome-terminal |
| * dialog, zenity |
| * dia, dia-shapes |
| * shutdown |
| * audacity |