Updated README, added guide to install my distro’s default state
This commit is contained in:
		
							parent
							
								
									2654774293
								
							
						
					
					
						commit
						153a710437
					
				
							
								
								
									
										304
									
								
								README.org
									
									
									
									
									
								
							
							
						
						
									
										304
									
								
								README.org
									
									
									
									
									
								
							| @ -1,62 +1,280 @@ | ||||
| #+TITLE: Phundrak’s dotfiles | ||||
| #+AUTHOR: Lucien "Phundrak” Cartier-Tilet | ||||
| #+EMAIL: phundrak@phundrak.fr | ||||
| 
 | ||||
| [[http://spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]] | ||||
| 
 | ||||
| * P’undrak’s dotfiles | ||||
| * Presentation | ||||
|   This is my collection of dotfiles  for my daily GNU/Linux environment, tweaked | ||||
|   to  my  liking. If  you  wish  to  get the  same  setup  as mine,  follow  the | ||||
|   instructions below. | ||||
| 
 | ||||
| ** Presentation | ||||
|   As you can see,  I personally use [[https://fishshell.com/][fish]] as my shell of  choice, and [[https://www.gnu.org/software/emacs/][Emacs]] using | ||||
|   [[http://spacemacs.org][Spacemacs]] (still with Emacs keybinding) as my main text editor. | ||||
| 
 | ||||
|    This is my collection of dotfiles for my daily GNU/Linux environment, tweaked | ||||
|    to  my liking.  If  you  wish to  get  the same  setup  as  mine, follow  the | ||||
|    instructions below. | ||||
|   I also  use [[https://github.com/resloved/i3][Resloved]]’s [[https://github.com/resloved/i3][fork]] of  [[https://github.com/Airblader/i3][i3-gaps]] with two [[https://github.com/jaagr/polybar][polybar]]  bars and [[https://github.com/tryone144][Tryone144]]’s | ||||
|   [[https://github.com/tryone144/compton][fork]] of [[https://github.com/chjj/compton][Compton]]. The colors scheme for [[https://github.com/davatorium/rofi][rofi]], Emacs and polybar are chosen from | ||||
|   the wallpapers using [[https://github.com/dylanaraps/pywal][pywal]]. | ||||
| 
 | ||||
|    As you can see, I personally use [[https://fishshell.com/][fish]]  as my shell of choice, and [[https://www.gnu.org/software/emacs/][Emacs]] using | ||||
|    [[http://spacemacs.org][Spacemacs]] (still with Emacs keybinding) as my main text editor. | ||||
| * Features | ||||
|   - Emacs configuration perfectly tailored for my own use | ||||
|   - Beautiful and comfy i3 and polybar configuration | ||||
|   - And enough information  below to get basically the same  distro install as I | ||||
|     have on my main computer and my travel laptop. | ||||
| 
 | ||||
|    I also use  [[https://github.com/resloved/i3][Resloved]]’s [[https://github.com/resloved/i3][fork]] of [[https://github.com/Airblader/i3][i3-gaps]] with two  [[https://github.com/jaagr/polybar][polybar]] bars and [[https://github.com/tryone144][Tryone144]]’s | ||||
|    [[https://github.com/tryone144/compton][fork]] of  [[https://github.com/chjj/compton][Compton]]. The colors  scheme for [[https://github.com/davatorium/rofi][rofi]],  Emacs and polybar  are chosen | ||||
|    from the wallpapers using [[https://github.com/dylanaraps/pywal][pywal]]. | ||||
| * Screenshots | ||||
| 
 | ||||
| ** Features | ||||
|   [[./img/neofetch.png]] | ||||
| 
 | ||||
|    - Emacs configuration perfectly tailored for my own use | ||||
|    - Beautiful and comfy i3 and polybar configuration | ||||
|   [[./img/emacs.png]] | ||||
| 
 | ||||
| ** Screenshots | ||||
|   [[./img/rofi.png]] | ||||
| 
 | ||||
|    [[./img/neofetch.png]] | ||||
| * Dependencies | ||||
|   Of course, some dependencies are needed for  my dotfiles to work well. Here is | ||||
|   a non-exhaustive list of software needed by these configuration files: | ||||
|   - [[https://www.gnu.org/software/emacs/][GNU/Emacs]] >= 26.2 | ||||
|     - [[http://spacemacs.org][Spacemacs]] (develop branch) | ||||
|     - My [[https://labs.phundrak.fr/phundrak/conlang-layer][conlanging layer]] | ||||
|     - [[https://github.com/venmos/w3m-layer][Venmos]]’ [[https://github.com/venmos/w3m-layer][w3m layer]] | ||||
|   - The [[https://fishshell.com/][Fish shell]], using [[https://github.com/jorgebucaran/fisher][fisher]] | ||||
|   - [[https://lukesmith.xyz/][Luke Smith]]’s [[https://github.com/LukeSmithxyz/st][fork]] of [[https://st.suckless.org/][st]] | ||||
|   - [[https://resloved.info/][Resloved]]’s [[https://github.com/resloved/i3][i3-gaps-rounded]] fork of [[https://github.com/Airblader/i3][Airblader]]’s [[https://github.com/Airblader/i3][i3-gaps]], itself a fork of [[https://i3wm.org/][i3]] | ||||
|   - [[https://github.com/yshui/compton][Compton]], more specificaly [[https://github.com/tryone144/compton][Tryone]]’s [[https://github.com/tryone144/compton][fork]] | ||||
|   - [[https://github.com/dylanaraps/pywal/][pywal]] | ||||
|   - [[https://tools.suckless.org/dmenu/][dmenu]] | ||||
|   - [[https://github.com/enkore/j4-dmenu-desktop][j4-dmenu-desktop]] | ||||
|   - [[https://github.com/davatorium/rofi][Rofi]] | ||||
|   - [[https://github.com/gpoore/minted][minted]] | ||||
|   - [[https://www.rust-lang.org/][Rust]] (stable and nightly) | ||||
|   - [[https://www.latex-project.org/][LaTeX]] and [[http://xetex.sourceforge.net/][XeTeX]] (=texlive= packages on Arch Linux) | ||||
|   - [[https://github.com/tmux/tmux][tmux]], based on [[https://github.com/gpakosz/.tmux][this repo]]’s configuration by [[https://pempek.net/][Grégory Pakosz]]. | ||||
|   - And a bunch of other stuff, see below | ||||
|   And some other stuff scattered around in my dotfiles. | ||||
| 
 | ||||
|    [[./img/emacs.png]] | ||||
|   BTW, I use Arch. | ||||
| 
 | ||||
|    [[./img/rofi.png]] | ||||
| * Installation | ||||
|   Here will be  presented what I do to  get my system up and running  on a fresh | ||||
|   Arch Linux install.  These installation instructions were written  in order to | ||||
|   get an Arch  Linux distribution up and running with  the same configuration as | ||||
|   my main computer’s and my travelling laptop’s configuration. | ||||
| 
 | ||||
| ** Dependencies | ||||
| ** Update the system | ||||
|    First of all, let’s update the system in  order to be sure to have the latest | ||||
|    version. | ||||
|    #+BEGIN_SRC fish /sudo:localhost:~ :exports code | ||||
|      sudo pacman -Syu | ||||
|      sudo pacman -S git emacs --needed | ||||
|    #+END_SRC | ||||
| 
 | ||||
|    Of course, some dependencies are needed for my dotfiles to work well. Here is | ||||
|    a non-exhaustive list of software needed by these configuration files: | ||||
|    - Emacs >= 26.2 | ||||
|      - Spacemacs (develop branch) | ||||
|    - fish | ||||
|    - [[https://st.suckless.org/][st]] ([[https://lukesmith.xyz/][Luke Smith]]’s [[https://github.com/LukeSmithxyz/st][fork]]) | ||||
|    - i3-gaps | ||||
|    - compton | ||||
|    - pywal | ||||
|    - j4-dmenu-desktop | ||||
|    - minted | ||||
|    - Rust nightly | ||||
|    - texlive-core | ||||
|    And some other stuff scattered around in my dotfiles. | ||||
| ** Install =yay= | ||||
|    Next step  is to install  the AUR  helper =yay= (DO  NOT use =yaourt=,  it is | ||||
|    discontinued,  seriously updated  and  represents a  serious security  flaw). | ||||
|    Let’s clone it in a folder =fromGIT= that will be in our home folder. This is | ||||
|    also where we’ll download every other packages we’ll install from git. | ||||
|    #+BEGIN_SRC fish :dir ~ :exports code | ||||
|      mkdir -p fromGIT | ||||
|      cd fromGIT | ||||
|      git clone https://aur.archlinux.org/yay.git | ||||
|      cd yay | ||||
|      makepkg -si --noconfirm | ||||
|    #+END_SRC | ||||
| 
 | ||||
|    I also use my own layer for conlanging when within org-mode in Emacs, you can | ||||
|    find it [[https://labs.phundrak.fr/phundrak/conlang-layer][here]]. I also use [[https://github.com/venmos][Venmos]]’ [[https://github.com/venmos/w3m-layer][w3m layer]]. | ||||
|    Now, we can install all the packages I usually have installed on my computer. | ||||
|    #+BEGIN_SRC fish /sudo:localhost:~ :exports code | ||||
|      yay -S --needed --noconfirm asar ascii aspell-en aspell-fr assimp \ | ||||
|      autoconf automake awesome-terminal-fonts bash bat biber binutils bison \ | ||||
|      bleachbit bluez-firmware bluez-utils bookworm boost bzip2 chromium clisp \ | ||||
|      compton-tryone-git coreutils cppcheck cppreference cppreference-devhelp \ | ||||
|      cpupower cronie cryptsetup cups device-mapper dhcpcd diffutils\ | ||||
|      discord-canary discount ditaa dmenu dmenu-lpass docker docker-compose \ | ||||
|      doxygen dwarffortress e2fsprogs emacs exfat-utils fakeroot feh \ | ||||
|      ffmpegthumbnailer file filesystem findutils fingerprint-gui firefox fish \ | ||||
|      flake8 flex font-mathematica fontforge freeglut fzf gawk gcc gcc-libs gdb \ | ||||
|      gettext gimp git glibc gnome-disk-utility gnome-epub-thumbnailer \ | ||||
|      gnu-free-fonts gnuplot go-tools grep gzip htop i3-gaps i3lock-blur \ | ||||
|      i3status icecat-bin igdm-bin inetutils intel-ucode iproute2 iputils \ | ||||
|      j4-dmenu-desktop jfsutils lastpass-cli less libnewt libtool licenses \ | ||||
|      light linux linux-firmware linux-headers lldb logrotate lsof lvm2 m4 make \ | ||||
|      man-db man-pages mate-polkit mdadm meson minted mpc mpd \ | ||||
|      mpd-rich-presence-discord-git mpv mupdf-tools nano nasm ncdu ncmpcpp \ | ||||
|      nemo-fileroller nemo-preview neofetch netctl networkmanager \ | ||||
|      networkmanager-openvpn nm-connection-editor nnn nomacs noto-fonts-emoji \ | ||||
|      npm ntfs-3g openmp openssh p7zip pacman pacman-contrib pandoc-bin patch \ | ||||
|      pavucontrol pciutils pcurses pdfpc perl pkgconf polybar procps-ng psmisc \ | ||||
|      pulseaudio-bluetooth python-envtpl-git python-pip python-pywal qemu r \ | ||||
|      raw-thumbnailer redshift refind-efi reflector reiserfsprogs rofi \ | ||||
|      rofi-wifi-menu-git rsync rtv rustup s-nail samba scrot sdl2_gfx \ | ||||
|      sdl2_image sdl2_mixer sdl2_ttf sed sent shadow siji-git \ | ||||
|      simplescreenrecorder speedcrunch sshfs st-luke-git sudo sysfsutils \ | ||||
|      systemd-sysvcompat tar texinfo texlive-bibtexextra texlive-bin \ | ||||
|      texlive-core texlive-fontsextra texlive-formatsextra texlive-games \ | ||||
|      texlive-humanities texlive-langchinese texlive-langcyrillic \ | ||||
|      texlive-langextra texlive-langgreek texlive-langjapanese \ | ||||
|      texlive-langkorean texlive-latexextra texlive-music texlive-pictures \ | ||||
|      texlive-pstricks texlive-publishers texlive-science tmux tree \ | ||||
|      ttf-arphic-uming ttf-baekmuk ttf-bitstream-vera ttf-dejavu \ | ||||
|      ttf-google-fonts-opinionated-git ttf-joypixels ttf-liberation | ||||
|      ttf-material-design-icons-git ttf-ms-fonts ttf-symbola \ | ||||
|      ttf-tibetan-machine ttf-twemoji-color ttf-unifont unicode unicode-emoji \ | ||||
|      unrar usbutils util-linux valgrind vi vim vulkan-headers w3m wget which \ | ||||
|      whois x11-ssh-askpass xclip xdg-user-dirs-gtk xf86-input-wacom \ | ||||
|      xf86-video-intel xfce4-power-manager xfsprogs xorg-server xorg-xinit | ||||
|      xss-lock | ||||
|    #+END_SRC | ||||
| 
 | ||||
| ** Installation | ||||
|    Given how many packages  will be install from the AUR,  I’ll probably have to | ||||
|    type my password a few times. | ||||
| 
 | ||||
|    To have the same install as I  do, simply symlink your configuration files to | ||||
|    the files in this git repository. | ||||
| ** Set up Emacs | ||||
|    The first thing to do after setting up our system is setting up Emacs. | ||||
| 
 | ||||
| ** Licence | ||||
| *** Download Spacemacs | ||||
|     First, let’s download Spacemacs. | ||||
|     #+BEGIN_SRC fish :dir ~ :exports code | ||||
|     git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d | ||||
|     #+END_SRC | ||||
| 
 | ||||
|    All of my dotfiles  (and my dotfiles only) are available  under the GNU GPLv3 | ||||
|    Licence. Please consult  [[file:LICENCE.md]] for more information.  In short: you | ||||
|    are free to access,  edit and redistribute all of my  dotfiles under the same | ||||
|    licence and  as allowed by  the licence, and if  you fuck up  something, it’s | ||||
|    your own responsibility. | ||||
|     Let’s switch Spacemacs’ branch to =develop=. | ||||
|     #+BEGIN_SRC fish :dir ~/.emacs.d :exports code | ||||
|     git checkout develop | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Set the custom layers | ||||
|     As mentionned  above, I use some  custom layers. Let’s symlink  these to the | ||||
|     private folder of our =.emacs.d/= folder. | ||||
|     #+BEGIN_SRC fish :dir ~/.emacs.d/private :exports code | ||||
|       for d in ~/dotfiles/spacemacs-layers/* | ||||
|           ln -s $d | ||||
|       end | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Symlink the Emacs config | ||||
|     Let’s not  forget our Spacemacs/Emacs config,  we’ll symlink it to  our home | ||||
|     directory. | ||||
|     #+BEGIN_SRC fish :dir ~ :exports code | ||||
|       ln -s ~/dotfiles/.spacemacs | ||||
|     #+END_SRC | ||||
| 
 | ||||
| ** Install the Fish shell | ||||
|     As mentionned above, I  use the fish shell as my main shell.  And I use some | ||||
|     extensions too that I installed from fisher, and custom functions. | ||||
| 
 | ||||
| *** Install fisher | ||||
|     Let’s install fisher: | ||||
|     #+BEGIN_SRC fish :exports code | ||||
|       curl https://git.io/fisher --create-dirs -sLo \ | ||||
|            ~/.config/fish/functions/fisher.fish | ||||
|     #+END_SRC | ||||
| 
 | ||||
|     Awesome! Now, onto the fisher packages: | ||||
|     #+BEGIN_SRC fish :exports code | ||||
|       fisher add edc/bass franciscolourenco/done jethrokuan/fzf jethrokuan/z \ | ||||
|                  jorgebucaran/fish-getopts laughedelic/pisces \ | ||||
|                  matchai/spacefish tuvistavie/fish-ssh-agent | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Install the fish config and custom functions | ||||
|     I will be symlinking my fishfile to its location =~/.config=. | ||||
|     #+BEGIN_SRC fish :dir ~/.config/ :exports code | ||||
|     ln -s ~/dotfiles/config.fish | ||||
|     #+END_SRC | ||||
| 
 | ||||
|     Now,  in  the =functions=  subdirectory,  let’s  symlink  all of  my  custom | ||||
|     functions. | ||||
|     #+BEGIN_SRC fish :dir ~/.config/fish/functions :exports code | ||||
|       for f in ~/dotfiles/fishfunctions/*.fish | ||||
|           ln -s $f | ||||
|       end | ||||
|     #+END_SRC | ||||
| 
 | ||||
| ** Install the dotfiles | ||||
| *** Update the submodules | ||||
|     Alright, let’s do  something about all these dotfiles  laying around. First, | ||||
|     let’s symlink those that are in our home directory. | ||||
|     #+BEGIN_SRC fish :exports code | ||||
|       yadm submodule update | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Update the remotes | ||||
|     Now, let’s make sure we have the correct remotes set up for the dotfiles. | ||||
|     #+BEGIN_SRC fish :exports code :dir ~/dotfiles | ||||
|       yadm remote set-url origin "git@labs.phundrak.fr:phundrak/dotfiles.git" | ||||
|       yadm remote set-url github "git@github.com:phundrak/dotfiles.git" | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Symlink the dotfiles | ||||
|     Let’s now symlink our dotfiles. First,  we’ll take care of those that should | ||||
|     be symlinked to our home directory. | ||||
|     #+BEGIN_SRC fish :dir ~ :exports code | ||||
|       ln -s ~/dotfiles/.Xresources | ||||
|       ln -s ~/dotfiles/.gitignore_global | ||||
|       ln -s ~/dotfiles/.nanorc | ||||
|       ln -s ~/dotfiles/rustfmt.toml | ||||
|       ln -s ~/dotfiles/.signature | ||||
|       ln -s ~/dotfiles/.tmux.conf.local | ||||
|       ln -s ~/dotfiles/tmux/.tmux.conf | ||||
|       ln -s ~/dotfiles/.config/i3 .i3 | ||||
|     #+END_SRC | ||||
| 
 | ||||
|     Finally, let’s symlink everything that belongs to the =~/.config= folder. | ||||
|     #+BEGIN_SRC fish :dir ~/.config :exports code | ||||
|       for elem in ~/dotfiles/.config/* | ||||
|           ln -s $elem | ||||
|       end | ||||
|     #+END_SRC | ||||
| 
 | ||||
| ** Install packages from git | ||||
|    Now, we move on to the installation of git-based packages. | ||||
| 
 | ||||
| *** Install =i3-gaps-rounded= | ||||
|     I know we already installed =i3-gaps=  from the AUR, why reinstall it? Well, | ||||
|     that is  certainly bad practices,  but this allowed  me to already  have the | ||||
|     needed dependencies for building =i3=  installed. Now, let’s clone it, build | ||||
|     it,  and  install it.  It  will  required  the  password during  the  actual | ||||
|     installation. | ||||
|     #+BEGIN_SRC fish :dir ~/fromGIT :exports code | ||||
|       git clone https://github.com/resloved/i3.git i3-gaps-rounded | ||||
|       cd i3-gaps-rounded | ||||
|       rm -rf build | ||||
|       autoreconf --force --install | ||||
|       mkdir build && cd build | ||||
|       ../configure --prefix=/usr --sysconfdir=/etc --disable-sanitizers | ||||
|       make | ||||
|       sudo make install | ||||
|     #+END_SRC | ||||
| 
 | ||||
| *** Install Polybar Battery | ||||
|     I use a custom  tool for my battery indicator which  also launches a warning | ||||
|     when  the battery  is low.  However, I  need to  build it,  since it  is not | ||||
|     available in the repos nor the AUR. | ||||
|     #+BEGIN_SRC fish :dir ~/fromGIT :exports code | ||||
|       git clone https://github.com/drdeimos/polybar_another_battery.git | ||||
|       cd polybar_another_battery | ||||
|       go get -u github.com/distatus/battery/cmd/battery | ||||
|       make build | ||||
|     #+END_SRC | ||||
| 
 | ||||
|     Let’s also  create the =~/.local/bin/=  directory in  which I will  put some | ||||
|     custom executables, including the executable we just built. | ||||
| 
 | ||||
| *** Download Reveal.JS | ||||
|     Now, let’s  download [[https://revealjs.com/#/][Reveal.JS]]. I use  it for some of  my Org presentations, | ||||
|     and I set it so it is found in =~/fromGIT=. | ||||
|     #+BEGIN_SRC fish :dir ~/fromGIT :exports code | ||||
|       git clone https://github.com/hakimel/reveal.js.git | ||||
|     #+END_SRC | ||||
| 
 | ||||
| ** Clean the =pacman= and =yay= cache | ||||
|    Finally, we are almost done! Let’s clean the cache of =pacman= and =yay= | ||||
|    #+BEGIN_SRC fish :dir /sudo:localhost:~ :exports code | ||||
|      yay -Sc --noconfirm | ||||
|    #+END_SRC | ||||
| 
 | ||||
| * Licence | ||||
|   All of my  dotfiles (and my dotfiles  only) are available under  the GNU GPLv3 | ||||
|   Licence. Please  consult [[file:LICENCE.md]] for  more information. In  short: you | ||||
|   are free to  access, edit and redistribute  all of my dotfiles  under the same | ||||
|   licence and as allowed by the licence, and if you fuck up something, it’s your | ||||
|   own responsibility. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user