2021-05-21 12:35:37 +00:00
# -*- org-confirm-babel-evaluate: nil -*-
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.
2021-10-20 12:03:24 +00:00
#+include : sitemap.org
As you can see, I personally use [[https://fishshell.com/ ][fish ]] as my shell of choice, and [[https://www.gnu.org/software/emacs/ ][Emacs ]]
29.0 as my main text editor.
2020-11-13 14:18:43 +00:00
2021-09-01 19:44:51 +00:00
When it comes to my graphical UI, I do not have any desktop
2021-10-20 12:03:24 +00:00
environment. Instead, I have a tiling window managers, [[https://stumpwm.github.io/ ][StumpWM ]]. 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, and then I used
2022-02-12 11:50:07 +00:00
[[file:Deprecated/awesome.org ][Awesome ]]. But now, as said above, I prefer to use StumpWM. It has a
2021-10-20 12:03:24 +00:00
built-in status bar (called a mode-line, like in Emacs) 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
2022-02-12 11:54:43 +00:00
- Beautiful and comfy StumpWM configuration
2021-09-01 19:44:51 +00:00
- And enough information below to get basically the same distro
2022-02-12 11:54:43 +00:00
install as I have on computer.
2020-11-13 14:18:43 +00:00
2021-09-01 19:44:51 +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:bootstrap.org ][bootstrap.org ]] exports almost all of its code snippets to
2022-02-12 11:50:07 +00:00
~$HOME/.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:
2021-09-01 19:44:51 +00:00
*** StumpWM
:PROPERTIES:
:CUSTOM_ID: Features-Tiling-Window-Managers-StumpWM-u9kdbd6137j0
:END:
2021-10-20 12:03:24 +00:00
StumpWM is the tiling window manager I use at the moment. It is
written and configured in Common Lisp, which I enjoy a lot since it
2021-09-01 19:44:51 +00:00
has a syntax quite close to Elisp, the Lisp dialect used in Emacs. I’ m
currently still in the process of figuring out my config, so please
consider it as a kind of work in progress. You can find the
configuration [[file:stumpwm.org ][here ]].
2021-10-20 12:03:24 +00:00
*** AwesomeWM (Deprecated)
2020-12-10 09:20:21 +00:00
:PROPERTIES:
:CUSTOM_ID: Features-Tiling_Window_Managers-AwesomeWM-2eac61a9
:END:
2021-09-01 19:44:51 +00:00
AwesomeWM is the TWM I used for quite some time after switching from
i3. This is an automatic tiling window manager written and configured
mostly in Lua, with its core written in C (this is originally a dwm
fork). My configuration for it is documented in detail in its
2022-02-12 11:50:07 +00:00
corresponding document, which you can find [[file:Deprecated/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-09-01 19:44:51 +00:00
The i3 configuration is detailed in its corresponding README which you
2022-02-12 11:50:07 +00:00
can find [[file:Deprecated/i3.org ][here ]]. Be aware I do not use i3 anymore, and I will not update
2021-09-01 19:44:51 +00:00
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:
2022-02-12 11:50:07 +00:00
My annotated polybar config can be found [[file:Deprecated/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
** 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-09-01 19:44:51 +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-10-20 12:03:24 +00:00
My current configuration is a vanilla config, meaning I do not rely on
another configuration or framework such as Spacemacs or DoomEmacs to
configure Emacs. You can find its configuration [[file:emacs.org ][here ]].
I used to use a Spacemacs-based configuration, however I deprecated it
on October 20th 2021. You can find it [[file:Deprecated/spacemacs.org ][here ]].
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
2022-02-12 11:50:07 +00:00
customization. Mine can be found in my [[file:Deprecated/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-09-01 19:44:51 +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:
2022-02-12 11:50:07 +00:00
You can also find in my Fish shell configuration in my [[file: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
*** 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:
2022-02-12 11:50:07 +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 ~$HOME/.gitignore_global~ file.
First, we don’ t want nano’ s backup files.
#+BEGIN_SRC fundamental
,*~
2020-11-13 14:18:43 +00:00
#+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.
2022-02-12 11:50:07 +00:00
#+BEGIN_SRC fundamental
2021-10-12 09:31:20 +00:00
,*.out
,*.o
2020-11-13 14:18:43 +00:00
#+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-09-01 19:44:51 +00:00
#+BEGIN_SRC conf :tangle ~/.config/paru/paru.conf
2021-10-12 09:31:20 +00:00
[options]
BottomUp
Devel
DevelSuffixes = -git -cvs -svn -bzr -darcs -always
NewsOnUpgrade
PgpFetch
Provides
RemoveMake
SudoLoop
UpgradeMenu
[bin]
FileManager = dired
2021-01-27 18:03:11 +00:00
#+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-09-01 19:44:51 +00:00
For an installation walkthrough of my Arch Linux installation, check
out my [[file:bootstrap.org ][bootstrap ]] 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
2022-02-12 11:50:07 +00:00
* License
2020-12-10 09:20:21 +00:00
:PROPERTIES:
2022-02-12 11:50:07 +00:00
:CUSTOM_ID: License-48911096
2020-12-10 09:20:21 +00:00
:END:
2022-02-12 11:50:07 +00:00
All of my dotfiles (and my dotfiles only) are available under the GNU
GPLv3 License. Please consult [[https://labs.phundrak.com/phundrak/dotfiles/src/branch/master/LICENSE.md ][the license file ]] for more information.
In short: you are free to access, edit and redistribute all of my
dotfiles under the same license and as allowed by the license, and if
you fuck up something, it’ s your own responsibility.