====== 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 ''/home/''. 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 ''/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//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