jackyalciné jackyalciné

Got an app idea or need some coding done? I can help! Learn more about how you & I can work together.

Updating My Shell Configuration

I use the terminal a lot. I also use different operating systems a lot. Here I talk about how I’ve managed to handle these shifts and how I’m excepting the future of my shell configuration will look like.

:book: shell :bookmark: bash, tooling, personal, env :clock7: :clock3: about 2 minutes

If there’s one thing I spend a good amount of time in, it’s my terminal emulator. Or shell. Or prompt. Whatever. For me, it’s konsole.

I write my blog posts, journal, chat with people and do a lot of my code editing from this place. Of course, some things I do in other applications like Firefox or an IntelliJ-based IDE1 but even then, those applications tend to have experiences tailored for a user who’s a bit like me: spending loads of time in Vim and swapping I/O between panes.

My leaning to Vim and tmux isn’t something of a religious thing - though I do joke in that favor. It’s more so of a feeling of efficiency. I occassionally hit ESC whilst in text entry fields on the Web out of habit - Vim uses that key to denotate the exiting of the current editing state (INSERT) into one of its modal one (NORMAL).

Getting Them On My Machines

Alas, whilst working at Clef and side projects, the needed differences in my personal laptop’s configuration and my work machine has forced me to consider creating multiple sets of configuration for each one. Initially, I made use of a Bash-based framework for this but in my efforts to get a better understanding of Bash itself and the nuances between macOS and Ubuntu, I’ve removed it from my configuration and made my own.

The splitting away mentioned before led to a bunch of “smaller” repositories that I use for focused aspects of life. At the time of writing, the repositories that I have (all hosted on Github):

  • dotfiles: Holds the core components.
  • kderc: KDE-specific aspects.
  • osxrc: macOS-specific aspects.
  • vimrc: Vim-related files and configuration.
  • gitrc: Git addons and base configuration.
  • tmuxrc: Tmux-based configuration.

Each of these repositories are homes(h)ick-powered repositories. This allows me to run something like:

$ homeshick clone git://github.com/jalcine/dotfiles

That command would clone and link the configuration stored in dotfiles/home at my $HOME directory. There’s a matter of unlinking files that hasn’t been solved yet but for the moment, I have a few broken symbolic links that are harmless.

Getting My Language Tools In There

I work with quite a few languages. Languages like JavaScript and C++ have become my bread and butter, as well as Python and now Rust. Other languages like Elixir, Swift2 and PHP are either hanging around or things I’m trying to get a better hold of.

  1. This is usually as a last-resort, in the case of Android. 

  2. Yes, you can run swift on Linux.