pyratelog

personal blog
git clone git://git.pyratebeard.net/pyratelog.git
Log | Files | Refs | README

20170711-setting_up_arch.md (5469B)


      1 _Note_ This guide assumes you have a working Arch Linux installation. See my [previous post](/content/20161105-arch_linux_install.html) for how to get started.
      2 
      3 If you followed my Arch Linux install guide you should have rebooted your system and have a login prompt. If you enter the username and password you set you will log in to the system, but it's looking a bit plain. Now some people do work in the TTY ([nixers](https://nixers.net/showthread.php?tid=1669) has an annual "Week in the TTY") but most of us prefer a graphical environment... even a minimal one.
      4 
      5 To get started we need to install some packages. We will be installing the [X Window System](https://www.x.org/wiki/), a window manager, and a terminal emulator.
      6 ```
      7 sudo pacman -S xorg xorg-xinit awesome rxvt-unicode
      8 ```
      9 
     10 I have chosen to install the [awesome](https://awesomewm.org/) window manager and the [urxvt](http://software.schmorp.de/pkg/rxvt-unicode.html) terminal emulator. There are so many combinations of software, which is one of the reasons I enjoy the Linux community, so don't worry if you prefer other tools. Install and use whatever works for you and don't be ashamed of your choices. Although I would say to try out other tools, you never know when you'll come across something better.
     11 
     12 Now we need to get the window manager running. Copy some template configuration files and make some changes. The filenames begin with a dot '.' which in Linux indicates a hidden file. Most configuration files in your home directory will be hidden, and are known as 'dotfiles'. More on this later.
     13 ```
     14 cp /etc/X11/xinit/xserverrc ~/.xserverrc
     15 cp /etc/X11/xinit/xinitrc ~/.xinitrc
     16 vi ~/.xinitrc
     17 ```
     18 
     19 Comment out the following lines by entering a # at the start of the line
     20 ```
     21 twm &
     22 xclock -geometry 50x50-1+1 &
     23 xterm -geometry 80x50+494+51 &
     24 xterm -geometry 80x20+494-0 &
     25 exec xterm -geometry 80x66_0_0 -name login
     26 ```
     27 
     28 Write the following at the end of the file
     29 ```
     30 exec awesome
     31 ```
     32 
     33 Save and quit.
     34 
     35 Now run the command
     36 ```
     37 startx
     38 ```
     39 
     40 And you should see the window manager start up. If you press the keys Win-r and type in _urxvt_ then a terminal will appear. If you ever need to drop out of the graphical environment for press the keys Win-Shift-Q to exit to the TTY.
     41 
     42 The default awesome environment is nice enough, but I am what is known as a ricer. This means that I spend far too much time altering my dotfiles to customise my environment so that it works for me, and looks however I want it to. I store all my dotfiles in a git repository and use a tool called 'stow' to easily enable and disable them as required. A lot of this is personal preference, so as mentioned before don't feel compelled to copy exactly.
     43 
     44 To set up my dotfiles I need a few more packages. I need git, so I can pull my repository down, and stow.
     45 ```
     46 sudo pacman -S git stow
     47 git clone "https://github.com/pyratebeard/dotfiles"
     48 cd dotfiles
     49 ```
     50 
     51 If you take a look at the README file it will quickly explain the tools I have files for and how to use stow to enable them. Let's install some more packages so we can get comfortable 
     52 ```
     53 sudo pacman -S vicious zsh vim tmux qutebrowser ranger irssi mutt mpd ncmpcpp
     54 ```
     55 
     56 Here is a quick run down of the applications that have just been installed
     57 ```
     58   vicious     >   plugins used by my awesome config
     59   zsh         >   z shell
     60   vim         >   text editor
     61   tmux        >   terminal multiplexer
     62   qutebrowser >   web browser
     63   ranger      >   file manager
     64   irssi       >   irc client
     65   mutt        >   email client
     66   mpd         >   audio player daemon
     67   ncmpcpp     >   audio player interface
     68 ```
     69 
     70 Most of the applications I use are based in the terminal. If you're not use to working in the terminal it may be a big learning curve, but once you get the hang of it you may find it improves your workflow.
     71 
     72 We're ready to enable our dotfiles.
     73 ```
     74 stow {awesome,urxvt,zsh,vim,tmux,qutebrowser,ranger,irssi,mutt,mpd,ncmpcpp}
     75 cd ~
     76 ls -la
     77 ```
     78 
     79 You should now see lots of hidden files which are pointing to the dotfiles. These are known as symbolic links or symlinks and are basically pointers to the file you want to use.
     80 
     81 Before I restart awesome I need to install the font that I prefer, and is in the configs.
     82 ```
     83 git clone "https://aur.archlinux.org/tamzen-font-git.git"
     84 cd tamzen-font-git/
     85 makepkg
     86 ```
     87 
     88 Set the default shell to zsh
     89 ```
     90 chsh -s /usr/bin/zsh
     91 ```
     92 
     93 Now restart awesome by pressing Win-Ctrl-r, and open a new terminal with Win-Return. I'm not going to go through using all the applications in this post, maybe I'll write some guides if people are interested. Read the all important man pages for information on how to use the tools.
     94 
     95 So that's it pretty much. You should now be able to get online, write some code, and listen to some music. What more do you need? Oh yeah, coffee...
     96 ```
     97 curl -Ls git.io/hotcoffee | sh
     98 ```
     99 
    100 Happy now?
    101 
    102 Here is a list of other software I use on a regular basis
    103 
    104 ```
    105   openssh     >   ssh connection tool
    106   keychain    >   ssh-agent manager
    107   hub         >   git enhancement
    108   mpv         >   video player
    109   calcurse    >   calendar & todo list
    110   freerdp     >   remote desktop protocol client
    111   docker      >   container platform
    112   bind-tools  >   dns tools
    113   htop        >   interactive process viewer
    114   sxiv        >   image viewer
    115   snownews    >   rss newsreader
    116   scrot       >   screen capturing application
    117   keybase     >   keybase.io client
    118 ```
    119 
    120 If you have any other recommendations for software let me know!