# Linux Essentials
This repository contains everything essential to getting a running Linux installation going with xmonad, tmux,
lemonbar, and many other configurations. The current flavor of the month for me is Nix OS. For Nix specific configuration instructions and configuration files, please go to the *nix* directory and ignore everything else here - which is left for historical Arch Linux install reasons.
The directory structure is as follows:
1. *dotfiles/* - This contains any related dotfiles
2. *scripts/* - This directory contains most of the important things to get the installation running
1. *scripts/sysinstall/* - This directory contains a number of scripts for configuring the system
2. *scripts/sysinit/* - This directory contains anything needed for system initialization
3. *scripts/solutions/* - This directory contains any fixes that can be run for various packages - SteelSeries Arctis 7 activation script is in here
4. *scripts/lemonbar/* - This directory contains any related lemonbar scripts
5. *scripts/diagnostics/* - This directory contains scripts for helping to diagnose problems
3. *installation_instructions* - This file contains a series of command you copy and paste during install of Arch
4. *nix/* - This contains all the stuff needed to get up and running with my nix configuration
5. *arch_configs* - Deprecated Arch Linux configurations
6. *iterm2* - Files related to iterm2
7. *xfce_themes* - Theming for Xfce.
8. *t400_color_profile* - Color profile for the LEN4033 (and more) WXGA+ 1440x900 screen upgrade for the T400.
## Terminal
I am back to `zsh` after a long time with `bash` . See the `dotfiles/zsh` directory. You only need to
symlink `.zprofile` and `.zshrc` to your home directory. Refer to the `README.md` in the directory
for more information.
My `.zshrc` installs a lot of nice conveniences. For example, fish-shell-like syntax highlighting and
git completion.
## Vim
Right now I use Neovim.
To install plugins on first run, put the `.config/nvim` folder in your `.config` directory and run `nvim` . Then
run `PlugInstall` .
Make sure you run `./install.py --all` in the YouCompleteMe Directory. Additionally you will want to run:
To rebind capslock and escape in XFCE paste the following command in your terminal:
`/usr/bin/setxkbmap -option "caps:swapescape"`
To make it permanent, add it to your XFCE startup items via:
`xfce4-settings-manager`
and then `Session and Startup > Application autostart` using an `onlogin` trigger.
```
pip install pynvim
```
In order to bring Python integration to Vim for certain plugins.
## Patched Fonts
There are a series of patched inconsolata fonts designed for work with the plugins I have for
icons in nerd tree. These are not Windows compatible.
## Emacs Specific Things
Before programming C, install `global` and `libclang` in your distro. After doing that, run `M-x irony-install-server` to install the server in the emacs directory.
Finally, `cd` to the root of your project and run `gtags` . You now have functioning irony C completion.
Before programming Java, install `eclim` , and `eclipse` .
### Ruby
Ruby makes using emacs a challenge.
Flycheck likes to complain about `bundle exec` even on emacs 27.1+. There are a few things you need to do to make things work nicely:
1. Use `lsp-mode` instead of robe and launch a ruby server with that. For some reason robe gets in the way of things like `.dir-locals.el` .
2. On a per-project basis, put a `.dir-locals.el` file with the following in it:
```
((ruby-mode . ((eval . (setq flycheck-command-wrapper-function
(lambda (command)
(append '("bundle" "exec") command)))))))
```
Which will allow bundle exec to work with flycheck.
## Joe Editor
Always build from source to get the latest features. You will need at least
version 4.5 for themes.
Copy `joe-colors/output` to `$USER/.joe/colors` in order to use themes.
## XFCE Themes
In the root there is a themes folder with a nice theme called `Nord` . Run the provided
`install.sh` .
## Swapping Caps Lock and Escape in XFCE
```sh
/usr/bin/setxkbmap -option "caps:swapescape"
```
## T400 Stuff
### Colors
The default colors for XFCE on Manjaro are pretty washed out on the T400 upgraded WXGA+ screens. To improve this,
there is a color profile in the `t400_color_profile` folder that you can install using Gnome Color Profiles. The
improvement is subtle, but the screen definitely looks better.
The particular model I am running is a LEN4033. This color profile works for many other monitors, however if your
EDID does not indicate you have a LEN4033 you should confirm this profile works for you monitor. There are many guides
on color calibration for the T4xx series of laptops online.