2020-01-30 12:12:09 +00:00
#+TITLE : Phundrak’ s dotfiles
2020-07-16 12:25:18 +00:00
#+setupfile : headers
2020-05-28 09:55:40 +00:00
#+OPTIONS : auto-id:t
#+HTML_HEAD_EXTRA : <meta name="description" content="Phundrak's dotfiles" />
#+HTML_HEAD_EXTRA : <meta property="og:title" content="Phundrak's dotfiles" />
#+HTML_HEAD_EXTRA : <meta property="og:description" content="Description of the dotfiles of Phundrak" />
2020-01-30 12:12:09 +00:00
* Presentation
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Presentation-981f2f04
:END:
2021-02-04 13:43:09 +00:00
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.
2020-11-13 14:18:43 +00:00
2021-02-04 13:43:09 +00:00
For starters, here is the link to all the pages on my website that you might
find interesting. I’ ll describe them in more details below.
2020-11-13 14:18:43 +00:00
- [[file:installation.org ][Arch Linux bootstrap script ]]
- [[file:awesome.org ][AwesomeWM configuration ]]
- [[file:bin.org ][Custom scripts ]]
- [[file:spacemacs.org ][Emacs (Spacemacs) configuration ]]
- [[file:fish.org ][Fish shell configuration ]]
2020-12-21 13:47:57 +00:00
- [[file:Deprecated/i3.org ][i3 configuration ]] (deprecated)
- [[file:Deprecated/nano.org ][Nano configuration ]] (deprecated)
- [[file:WIP/ncmpcpp.org ][ncmpcpp configuration ]] (work in progress)
- [[file:WIP/neofetch.org ][Neofetch configuration ]] (work in progress)
- [[file:picom.org ][Picom configuration ]] (replacement of Compton)
- [[file:Deprecated/polybar.org ][Polybar configuration ]] (deprecated)
2020-11-13 14:18:43 +00:00
- [[file:rustfmt.org ][Rustfmt configuration ]]
- [[file:tmux.org ][Tmux configuration ]]
2021-02-04 13:43:09 +00:00
As you can see, I personally use [[https://fishshell.com/ ][fish ]] as my shell of choice, and [[https://www.gnu.org/software/emacs/ ][Emacs ]] 28.0
(using the ~native-comp~ branch) using [[http://spacemacs.org ][Spacemacs ]] (still with Emacs keybinding in
Insert mode but with Evil in Normal mode) as my main text editor.
2020-11-13 14:18:43 +00:00
2021-02-04 13:43:09 +00:00
When it comes to my graphical UI, I do not have any desktop environment.
Instead, I have a tiling window manager, [[https://awesomewm.org/ ][Awesome ]]. I used to use [[https://github.com/Airblader/i3 ][i3-gaps ]], an [[https://i3wm.org/ ][i3 ]]
fork by [[https://github.com/Airblader/i3 ][Airblader ]], with which I used [[https://polybar.github.io/ ][Polybar ]] as well as [[https://github.com/dylanaraps/pywal ][pywal ]] to define my
system’ s color scheme. But now, as said above, I prefer to use Awesome. It has a
built-in status bar which I use, and I settled on the dark [[https://www.nordtheme.com/ ][Nord theme ]] for pretty
much everything I use.
2020-11-13 14:18:43 +00:00
2021-02-04 13:43:09 +00:00
Finally, you can find my configuration for my ErgodoxEZ keyboard [[https://configure.ergodox-ez.com/ergodox-ez/layouts/5WrVw/latest/0 ][here ]]. It is
optimized for usage with the Bépo layout set as a software layout. It has also a
layer set to emulate a Qwerty layout when using the Bépo software layout due to
some games that do not offer to remap keys (I’ m looking at you, Among Us).
2020-04-10 14:20:17 +00:00
2020-01-30 12:12:09 +00:00
* Features
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-5ab2a2c0
:END:
2020-11-13 14:18:43 +00:00
- Emacs configuration perfectly tailored for my own use
- Beautiful and comfy i3 and polybar configuration
2021-02-04 13:43:09 +00:00
- And enough information below to get basically the same distro install as I
have on my main computer and my travel laptop.
2020-11-13 14:18:43 +00:00
2021-02-04 13:43:09 +00:00
Most of the org files you will find in this repos are the actual source code of
much of my config files. For instance, the bootstrap found in [[file:installation.org ][installation.org ]]
exports almost all of its code snippets to [[file:.config/yadm/bootstrap ][.config/yadm/bootstrap ]] thanks to =M-x
org-babel-tangle= from within Emacs. Below I will also present and comment some
of my short config files which do not deserve to have a full org file dedicated
to them.
2020-01-30 12:12:09 +00:00
2020-04-10 17:34:31 +00:00
** Tiling Window Managers
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-da221e37
:END:
2020-04-10 17:34:31 +00:00
*** AwesomeWM
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-AwesomeWM-2eac61a9
:END:
2021-02-04 13:43:09 +00:00
AwesomeWM is the TWM I use the most on my computer between itself and i3. My
configuration for it is documented in detail in its corresponding document,
which you can find [[file:awesome.org ][here ]].
2020-04-10 17:34:31 +00:00
2020-08-22 14:08:44 +00:00
*** i3 configuration (Deprecated)
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-i3_configuration-9c92e43c
:END:
2021-02-04 13:43:09 +00:00
The i3 configuration is detailed in its corresponding README which you can find
[[file:i3.org ][here ]]. Be aware I do not use i3 anymore, and I will not update it until I may
someday use it again. This was deprecated on August 22nd, 2020.
2020-08-22 14:08:44 +00:00
2021-01-27 18:03:11 +00:00
**** Polybar config (Deprecated)
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Polybar_config_ (Deprecated)-c8f95774
:END:
2021-02-04 13:43:09 +00:00
My annotated polybar config can be found [[file:polybar.org ][here ]], if you wish to use it. Be aware I
do not use polybar anymore, and I will not update it until I may someday use it
again. This was deprecated on August 22nd, 2020.
2020-04-10 17:34:31 +00:00
2021-01-27 18:03:11 +00:00
** Theme and graphical tweaks
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Graphical_tweaks-9879f6b0
:END:
2020-04-21 10:56:56 +00:00
*** GTK Settings
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-752e9916
:END:
2020-04-21 10:56:56 +00:00
**** GTK2
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-74c9de24
:END:
2020-08-24 12:44:35 +00:00
***** General configuration
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.gtkrc-2.0
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-General_configuration-eb1f1f3c
:END:
2021-02-04 13:43:09 +00:00
This file is tangled at ~$HOME/.gtkrc-2.0~ . This is an equivalent for the GTK3
configuration file you will see below, and it shares most of its settings.
First, let’ s select the Nordic theme for GTK2. Let’ s also set the icon theme.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
# -*- mode: unix-config -* -
gtk-theme-name="Nordic"
gtk-icon-theme-name="Flat-Remix-Dark"
#+END_SRC
#+BEGIN_SRC conf-unix
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle="hintslight"
#+END_SRC
This changes the shortcuts in menu, let’ s also make the menus snappier.
#+BEGIN_SRC conf-unix
gtk-can-change-accels=1
gtk-menu-bar-popup-delay=0
gtk-menu-popdown-delay=0
gtk-menu-popup-delay=0
#+END_SRC
2020-08-24 12:44:35 +00:00
***** Filechooser
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-2.0/gtkfilechooser.ini
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK2-Filechooser-389f040d
:END:
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
[Filechooser Settings]
#+END_SRC
2021-02-04 13:43:09 +00:00
The first option alows me to open the file chooser in the current working
directory:
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
StartupMode=cwd
#+END_SRC
2021-02-04 13:43:09 +00:00
Next, setting the location mode to ~path-bar~ will show the path as buttons that
can be clicked rather than the full path.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
LocationMode=path-bar
#+END_SRC
With this configuration, by default we won’ t see hidden files.
#+BEGIN_SRC conf-unix
ShowHidden=true
#+END_SRC
And we'll also see the size of the visible files.
#+BEGIN_SRC conf-unix
ShowSizeColumn=true
#+END_SRC
2021-02-04 13:43:09 +00:00
Now, let’ s choose the geometry of our file picker. These two first lines set
where the file picker appears:
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
GeometryX=566
GeometryY=202
#+END_SRC
And these two describe the size of the window:
#+BEGIN_SRC conf-unix
GeometryWidth=800
GeometryHeight=400
#+END_SRC
2021-02-04 13:43:09 +00:00
With these two lines, we set how our files are sorted: by name, and in the
ascending order.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
SortColumn=name
SortOrder=ascending
#+END_SRC
Our default view mode is a list of files:
#+BEGIN_SRC conf-unix
ViewMode=list-view
#+END_SRC
2021-02-04 13:43:09 +00:00
And finally, setting our icon view scale to ~-1~ sets the icon view to the max
size.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
IconViewScale=-1
#+END_SRC
2020-04-21 10:56:56 +00:00
**** GTK3
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.config/gtk-3.0/settings.ini
:CUSTOM_ID: Features-Graphical_tweaks-GTK_Settings-GTK3-3d6cba86
:END:
2021-02-04 13:43:09 +00:00
The following file helps me choosing the aspect of various GTK+ 3 software,
including their theme and icons. First, let’ s declare the header:
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
[Settings]
#+END_SRC
2021-02-04 13:43:09 +00:00
Now, let’ s hint to GTK that I prefer dark themes. This can have an influence
also on some websites that can detect this preference and therefore set their
own theme to dark by themselves.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
gtk-application-prefer-dark-theme = true
#+END_SRC
Next, the icon theme is the Flat Remix Dark icon theme:
#+BEGIN_SRC conf-unix
gtk-icon-theme-name = Flat-Remix-Dark
#+END_SRC
Now, the general theme for GTK3 is Nordic.
#+BEGIN_SRC conf-unix
gtk-theme-name = Nordic
#+END_SRC
#+BEGIN_SRC conf-unix
gtk-can-change-accels=1
gtk-menu-bar-popup-delay=0
gtk-menu-popdown-delay=0
gtk-menu-popup-delay=0
#+END_SRC
#+BEGIN_SRC conf-unix
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
# gtk-xft-rgba=rgb
#+END_SRC
2021-02-04 13:43:09 +00:00
Since window decorations are handled by my WMs, I will leave this variable
empty.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf-unix
gtk-decoration-layout=
#+END_SRC
2020-04-21 10:56:56 +00:00
2020-08-22 14:08:44 +00:00
*** Picom (Compton)
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Graphical_tweaks-Picom-b5b9a4dd
:END:
2021-02-04 13:43:09 +00:00
Picom is a standalone compositor for Xorg, and the successor to Compton, itself
successor to xcompmgr-dana, itself a fork of xcompmgr. You can find my Picom
configuration [[file:picom.org ][here ]].
2020-04-10 17:34:31 +00:00
*** Xresources
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.Xresources :exports code
:CUSTOM_ID: Features-Graphical_tweaks-Xresources-8b622de1
:END:
2021-02-09 16:00:51 +00:00
The main body in my Xresources declaration is the declaration of my color theme.
It is based on the [[https://www.nordtheme.com/ ][Nord ]] theme, from their [[https://github.com/arcticicestudio/nord-xresources/ ][Git repository ]].
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC conf
#define nord0 #2E3440
#define nord1 #3B4252
#define nord2 #434C5E
#define nord3 #4C566A
#define nord4 #D8DEE9
#define nord5 #E5E9F0
#define nord6 #ECEFF4
#define nord7 #8FBCBB
#define nord8 #88C0D0
#define nord9 #81A1C1
#define nord10 #5E81AC
#define nord11 #BF616A
#define nord12 #D08770
#define nord13 #EBCB8B
#define nord14 #A3BE8C
#define nord15 #B48EAD
,*.foreground: nord4
,*.background: nord0
,*.cursorColor: nord4
,*fading: 35
,*fadeColor: nord3
,*.color0: nord1
,*.color1: nord11
,*.color2: nord14
,*.color3: nord13
,*.color4: nord9
,*.color5: nord15
,*.color6: nord8
,*.color7: nord5
,*.color8: nord3
,*.color9: nord11
,*.color10: nord14
,*.color11: nord13
,*.color12: nord9
,*.color13: nord15
,*.color14: nord7
,*.color15: nord6
#+END_SRC
2020-04-10 17:34:31 +00:00
** Text and source code editing
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-63cc66d5
:END:
2020-04-10 17:34:31 +00:00
*** Emacs configuration
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Emacs_configuration-ef937102
:END:
2021-02-04 13:43:09 +00:00
Emacs is my main text editor, which I use for almost everything. Because, you
know…
2020-11-13 14:18:43 +00:00
#+begin_quote
Emacs is a great operating system, it just lacks a good text editor.
#+end_quote
2020-04-10 17:34:31 +00:00
2021-02-04 13:43:09 +00:00
You can find my Emacs config, based on Spacemacs, in my [[https://labs.phundrak.com/phundrak/dotfiles/src/branch/master/.spacemacs ][.spacemacs ]] file, and my
user configuration in my [[file:emacs.org ][emacs.org ]] file.
2020-04-10 17:34:31 +00:00
2020-08-28 14:34:20 +00:00
*** Nano (deprecated)
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Nano-a9d4839f
:END:
2021-02-04 13:43:09 +00:00
Although it is a very simple piece of software, nano does offer some
customization. Mine can be found in my [[file:~/org/config-website/nano.org ][nano.org ]] file. Be aware I do not use nano
anymore, and I will not update it until I may someday use it again. This was
deprecated on August 28th, 2020.
2020-04-10 17:34:31 +00:00
*** Rustfmt
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Text_and_source_code_editing-Rustfmt-2c4ac0b3
:END:
2020-11-13 14:18:43 +00:00
You can find my Rustfmt configuration [[file:rustfmt.org ][here ]].
2020-04-10 17:34:31 +00:00
2020-01-30 12:12:09 +00:00
** Custom scripts in =PATH=
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Custom_scripts_in_ =PATH= -043e8c8e
:END:
2021-02-04 13:43:09 +00:00
I have written some scripts that help me daily accomplish some simple tasks,
like mounting and unmounting a drive or Android device, an emoji picker, a
utility to set up my Wacom tablet, and so on. You can find them stored in my
[[file:bin.org ][bin.org ]] file along with their detailed explanation in the README placed in the
same folder —which is actually their source code once the org-mode file gets
tangled.
2020-01-30 12:12:09 +00:00
2021-01-27 18:03:11 +00:00
** Terminal configuration
:PROPERTIES:
:CUSTOM_ID: Features-Terminal-configuration-9662b145
:END:
*** Fish configuration with useful abbreviations
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Fish_configuration_with_useful_abbreviations-c71ffba0
:END:
2021-02-04 13:43:09 +00:00
You can also find in my Fish shell configuration in my [[file:~/org/config-website/fish.org ][fish.org ]] file, which
contains my usual abbreviations.
2020-01-30 12:12:09 +00:00
2021-01-27 18:03:11 +00:00
*** Tmux configuration
:PROPERTIES:
:CUSTOM_ID: Features-Tmux_configuration-ce76e030
:END:
2021-02-04 13:43:09 +00:00
You can find my tmux configuration in [[file:tmux.org ][tmux.org ]]. It depends on the submodule
[[https://github.com/gpakosz/.tmux.git ][.tmux ]] by [[https://pempek.net/ ][Gregory Pakosz ]].
2021-01-27 18:03:11 +00:00
2020-04-10 17:34:31 +00:00
** And some minor configuration files
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-And_some_minor_configuration_files-d5cec319
:END:
2020-04-10 17:34:31 +00:00
*** Email signature
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.signature
:CUSTOM_ID: Features-And_some_minor_configuration_files-Email_signature-8c5f2218
:END:
2020-11-13 14:18:43 +00:00
This file gets inserted automatically at the end of my emails.
#+BEGIN_SRC text
Lucien “Phundrak” Cartier-Tilet
Étudiant en Master Informatique, Tuteur, Université Paris 8
https://phundrak.com (Français)
https://phundrak.com/en (English)
2020-04-10 17:34:31 +00:00
2020-11-13 14:18:43 +00:00
Sent from GNU/Emacs
#+END_SRC
2020-04-10 17:34:31 +00:00
*** Global gitignore
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:HEADER-ARGS: :mkdirp yes :tangle ~/.gitignore_global
:CUSTOM_ID: Features-And_some_minor_configuration_files-Global_gitignore-42467108
:END:
2021-02-04 13:43:09 +00:00
Sometimes, there are some lines that always reappear in gitignores. So, instead
of always adding them, let git now that some elements are to be ignored by
default, hence the [[file:.gitignore_global ][~/.gitignore_global ]] file. First, we don’ t want nano’ s backup
files.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC text
~*
#+END_SRC
2021-02-04 13:43:09 +00:00
And object files and output binaries generated by =gcc= and the likes aren’ t
welcome either.
2020-11-13 14:18:43 +00:00
#+BEGIN_SRC text
,*.out
,*.o
#+END_SRC
2020-04-06 12:23:57 +00:00
2021-01-27 18:03:11 +00:00
*** Paru
2020-12-10 09:20:21 +00:00
:PROPERTIES:
2021-01-27 18:03:11 +00:00
:CUSTOM_ID: Features-And-some-minor-configuration-files-Paru-1f3ef49e
2020-12-10 09:20:21 +00:00
:END:
2021-02-04 13:43:09 +00:00
~paru~ is an AUR helper for Arch Linux which aims to be a replacement for ~yay~ .
A couple of the options you will see below aim at restoring the behavior of
~yay~ in ~paru~ . I also activated the sudo loop so I don’ t have to enter my
password if one package takes too much time to compile and/or compress. I know
it can be a security issue if someone ever get access to my computer while paru
is running, but if it ever happens it will be already concerning enough they
managed to. I also make use of [[file:bin.org::#Emacs-stuff-Dired-2eeca9da ][my custom script dired ]] so I can use Emacs’ Dired
as the file manager for ~paru~ .
2021-01-27 18:03:11 +00:00
#+BEGIN_SRC conf-space :tangle ~/.config/paru/paru.conf
[options]
BottomUp
Devel
DevelSuffixes = -git -cvs -svn -bzr -darcs -always
NewsOnUpgrade
PgpFetch
Provides
RemoveMake
SudoLoop
UpgradeMenu
[bin]
FileManager = dired
#+END_SRC
2020-01-30 12:12:09 +00:00
* Installation
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Installation-9ec2ae86
:END:
2021-02-04 13:43:09 +00:00
For an installation walkthrough of my Arch Linux installation, check out my
[[file:installation.org ][installation.org ]] file where I walk you through the first manual steps and
through the bootstrap you can execute to automatically take care of a lot of
elements.
2020-01-30 12:12:09 +00:00
* Licence
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Licence-48911096
:END:
2021-02-04 13:43:09 +00:00
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.