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]]
|
[[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
|
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
|
||||||
to my liking. If you wish to get the same setup as mine, follow the
|
[[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
|
||||||
instructions below.
|
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
|
* Features
|
||||||
[[http://spacemacs.org][Spacemacs]] (still with Emacs keybinding) as my main text editor.
|
- 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
|
* Screenshots
|
||||||
[[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]].
|
|
||||||
|
|
||||||
** Features
|
[[./img/neofetch.png]]
|
||||||
|
|
||||||
- Emacs configuration perfectly tailored for my own use
|
[[./img/emacs.png]]
|
||||||
- Beautiful and comfy i3 and polybar configuration
|
|
||||||
|
|
||||||
** 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
|
** Install =yay=
|
||||||
a non-exhaustive list of software needed by these configuration files:
|
Next step is to install the AUR helper =yay= (DO NOT use =yaourt=, it is
|
||||||
- Emacs >= 26.2
|
discontinued, seriously updated and represents a serious security flaw).
|
||||||
- Spacemacs (develop branch)
|
Let’s clone it in a folder =fromGIT= that will be in our home folder. This is
|
||||||
- fish
|
also where we’ll download every other packages we’ll install from git.
|
||||||
- [[https://st.suckless.org/][st]] ([[https://lukesmith.xyz/][Luke Smith]]’s [[https://github.com/LukeSmithxyz/st][fork]])
|
#+BEGIN_SRC fish :dir ~ :exports code
|
||||||
- i3-gaps
|
mkdir -p fromGIT
|
||||||
- compton
|
cd fromGIT
|
||||||
- pywal
|
git clone https://aur.archlinux.org/yay.git
|
||||||
- j4-dmenu-desktop
|
cd yay
|
||||||
- minted
|
makepkg -si --noconfirm
|
||||||
- Rust nightly
|
#+END_SRC
|
||||||
- texlive-core
|
|
||||||
And some other stuff scattered around in my dotfiles.
|
|
||||||
|
|
||||||
I also use my own layer for conlanging when within org-mode in Emacs, you can
|
Now, we can install all the packages I usually have installed on my computer.
|
||||||
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]].
|
#+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
|
** Set up Emacs
|
||||||
the files in this git repository.
|
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
|
Let’s switch Spacemacs’ branch to =develop=.
|
||||||
Licence. Please consult [[file:LICENCE.md]] for more information. In short: you
|
#+BEGIN_SRC fish :dir ~/.emacs.d :exports code
|
||||||
are free to access, edit and redistribute all of my dotfiles under the same
|
git checkout develop
|
||||||
licence and as allowed by the licence, and if you fuck up something, it’s
|
#+END_SRC
|
||||||
your own responsibility.
|
|
||||||
|
*** 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…
Reference in New Issue
Block a user