More literary programming \o/
This commit is contained in:
parent
37830b579a
commit
5627854856
4
.gitignore_global
Normal file → Executable file
4
.gitignore_global
Normal file → Executable file
@ -1 +1,3 @@
|
|||||||
*~
|
~*
|
||||||
|
|
||||||
|
*.out
|
||||||
|
34
.rustfmt.toml
Normal file → Executable file
34
.rustfmt.toml
Normal file → Executable file
@ -1,3 +1,33 @@
|
|||||||
reorder_imports = true
|
edition = "2018"
|
||||||
binop_separator = "Back"
|
|
||||||
|
enum_discrim_align_threshold = 20
|
||||||
|
|
||||||
|
fn_single_line = true
|
||||||
|
|
||||||
|
format_code_in_doc_comments = true
|
||||||
|
|
||||||
|
format_strings = true
|
||||||
|
|
||||||
|
hard_tabs = true
|
||||||
|
|
||||||
max_width = 80
|
max_width = 80
|
||||||
|
|
||||||
|
merge_imports = true
|
||||||
|
|
||||||
|
newline_style = Unix
|
||||||
|
|
||||||
|
normalize_comments = true
|
||||||
|
|
||||||
|
normalize_doc_attributes = true
|
||||||
|
|
||||||
|
reorder_impl_items = true
|
||||||
|
|
||||||
|
report_fixme = "Always"
|
||||||
|
|
||||||
|
todo = "Always"
|
||||||
|
|
||||||
|
struct_field_align_threshold = 20
|
||||||
|
|
||||||
|
tab_spaces = 2
|
||||||
|
|
||||||
|
wrap_comments = true
|
||||||
|
6
.signature
Normal file → Executable file
6
.signature
Normal file → Executable file
@ -2,7 +2,5 @@ Lucien “Phundrak” Cartier-Tilet
|
|||||||
https://phundrak.fr (Français)
|
https://phundrak.fr (Français)
|
||||||
https://en.phundrak.fr (English)
|
https://en.phundrak.fr (English)
|
||||||
|
|
||||||
Pensez à notre planète, avez-vous vraiment besoin d’imprimer
|
Pensez à notre planète, avez-vous vraiment besoin d’imprimer ce courriel ?
|
||||||
ce courriel ?
|
Please mind our planet, do you really need to print this email?
|
||||||
Please mind our planet, do you really need to print this
|
|
||||||
email?
|
|
||||||
|
0
.yadm/bootstrap
Normal file → Executable file
0
.yadm/bootstrap
Normal file → Executable file
234
README.org
234
README.org
@ -44,6 +44,9 @@
|
|||||||
- [[#presentation][Presentation]]
|
- [[#presentation][Presentation]]
|
||||||
- [[#screenshots][Screenshots]]
|
- [[#screenshots][Screenshots]]
|
||||||
- [[#features][Features]]
|
- [[#features][Features]]
|
||||||
|
- [[#email-signature][Email signature]]
|
||||||
|
- [[#global-gitignore][Global gitignore]]
|
||||||
|
- [[#rustfmt][Rustfmt]]
|
||||||
- [[#xresources][Xresources]]
|
- [[#xresources][Xresources]]
|
||||||
- [[#dependencies][Dependencies]]
|
- [[#dependencies][Dependencies]]
|
||||||
- [[#installation][Installation]]
|
- [[#installation][Installation]]
|
||||||
@ -134,10 +137,143 @@
|
|||||||
comment some of my short config files which do not deserve to have a full org
|
comment some of my short config files which do not deserve to have a full org
|
||||||
file dedicated to them.
|
file dedicated to them.
|
||||||
|
|
||||||
|
** Email signature
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-f6c48286-a320-493f-b330-ee0a697e6d79
|
||||||
|
:HEADER-ARGS: :tangle ~/.signature
|
||||||
|
:END:
|
||||||
|
This file gets inserted automatically at the end of my emails.
|
||||||
|
#+BEGIN_SRC text
|
||||||
|
Lucien “Phundrak” Cartier-Tilet
|
||||||
|
https://phundrak.fr (Français)
|
||||||
|
https://en.phundrak.fr (English)
|
||||||
|
|
||||||
|
Pensez à notre planète, avez-vous vraiment besoin d’imprimer ce courriel ?
|
||||||
|
Please mind our planet, do you really need to print this email?
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** Global gitignore
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-4f92eb29-7cfa-48ec-b39d-39037ace3682
|
||||||
|
:HEADER-ARGS: :tangle ~/.gitignore_global
|
||||||
|
:END:
|
||||||
|
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.
|
||||||
|
#+BEGIN_SRC text
|
||||||
|
~*
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
And output binaries generated by =gcc= and the likes aren’t welcome either.
|
||||||
|
#+BEGIN_SRC text
|
||||||
|
,*.out
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
** Rustfmt
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: h-0ae9005c-76a6-49f6-947c-0c8464616e10
|
||||||
|
:HEADER-ARGS: :tangle ~/.rustfmt.toml
|
||||||
|
:END:
|
||||||
|
In my [[file:.rustfmt.toml][.rustfmt.toml]], you can find some custom rules on how my Rust code
|
||||||
|
should be formatted.
|
||||||
|
|
||||||
|
First, we are using the 2018 edition of Rust.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
edition = "2018"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
The maximum length of enum variant having discriminant, that gets vertically
|
||||||
|
aligned with others. Variants without discriminants would be ignored for the
|
||||||
|
purpose of alignment.
|
||||||
|
|
||||||
|
Note that this is not how much whitespace is inserted, but instead the
|
||||||
|
longest variant name that doesn't get ignored when aligning.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
enum_discrim_align_threshold = 20
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Put single-expression functions on a single line.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
fn_single_line = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Format code snippet included in doc comments.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
format_code_in_doc_comments = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Format string literals where necessary.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
format_strings = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Use tab characters for indentation, spaces for alignment.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
hard_tabs = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Maximum width of each line
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
max_width = 80
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Merge multiple imports into a single nested import.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
merge_imports = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
My newline style will always be Unix.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
newline_style = Unix
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Convert =/* */= comments to =//= comments where possible.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
normalize_comments = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Convert =#![doc]= and =#[doc]= attributes to =//!= and =///= doc comments.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
normalize_doc_attributes = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Reorder impl items. =type= and =const= are put first, then macros and
|
||||||
|
methods.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
reorder_impl_items = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Report =FIXME= items in comments.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
report_fixme = "Always"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Report =TODO= items in comments.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
todo = "Always"
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
The maximum diff of width between struct fields to be aligned with each
|
||||||
|
other.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
struct_field_align_threshold = 20
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Number of spaces per tab.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
tab_spaces = 2
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
Break comments to fit on the line.
|
||||||
|
#+BEGIN_SRC toml
|
||||||
|
wrap_comments = true
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
** Xresources
|
** Xresources
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: h-e6f48975-3b86-4a75-a7e5-5cc9edbd9869
|
:CUSTOM_ID: h-e6f48975-3b86-4a75-a7e5-5cc9edbd9869
|
||||||
:HEADER-ARGS: :tangle ~/.Xresources
|
:HEADER-ARGS: :tangle ~/.Xresources :exports code
|
||||||
:END:
|
:END:
|
||||||
My Xresources file is very short. Indeed, it only contains two lines which
|
My Xresources file is very short. Indeed, it only contains two lines which
|
||||||
are dedicated to my =st= terminal to set its font and shell. The font is set
|
are dedicated to my =st= terminal to set its font and shell. The font is set
|
||||||
@ -214,7 +350,7 @@
|
|||||||
:CUSTOM_ID: h-da7951ee-e39a-4a59-a05d-7b7fffdc7825
|
:CUSTOM_ID: h-da7951ee-e39a-4a59-a05d-7b7fffdc7825
|
||||||
:END:
|
:END:
|
||||||
When you boot into the live ISO, execute the following command:
|
When you boot into the live ISO, execute the following command:
|
||||||
#+BEGIN_SRC sh :exports code :tangle no
|
#+BEGIN_SRC sh :exports code
|
||||||
pacman -Sy reflector
|
pacman -Sy reflector
|
||||||
reflector --country France --country Germany --latest 200 \
|
reflector --country France --country Germany --latest 200 \
|
||||||
--protocol http --protocol https --sort rate \
|
--protocol http --protocol https --sort rate \
|
||||||
@ -232,7 +368,7 @@
|
|||||||
not wish to do it manually. Personally, I’ve done it several times already,
|
not wish to do it manually. Personally, I’ve done it several times already,
|
||||||
I know how the distro works, I just want to be able to install my distro
|
I know how the distro works, I just want to be able to install my distro
|
||||||
quickly now.
|
quickly now.
|
||||||
#+BEGIN_SRC sh :exports code :tangle no
|
#+BEGIN_SRC sh :exports code
|
||||||
wget archfi.sf.net/archfi
|
wget archfi.sf.net/archfi
|
||||||
# Or from matmoul.github.io/archfi if SourceForge is down
|
# Or from matmoul.github.io/archfi if SourceForge is down
|
||||||
sh archfi
|
sh archfi
|
||||||
@ -251,24 +387,24 @@
|
|||||||
:END:
|
:END:
|
||||||
We will need some basic packages in order to run the bootstrap file. So,
|
We will need some basic packages in order to run the bootstrap file. So,
|
||||||
let’s install =fish= (our shell running the script) and =git=.
|
let’s install =fish= (our shell running the script) and =git=.
|
||||||
#+BEGIN_SRC sh :exports code :tangle no
|
#+BEGIN_SRC sh :exports code
|
||||||
sudo pacman -Sy fish git yadm
|
sudo pacman -Sy fish git yadm
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
** Execute bootstrap
|
** Execute bootstrap
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: h-c13d132f-9e69-4bb0-838b-29c7c5611f11
|
:CUSTOM_ID: h-c13d132f-9e69-4bb0-838b-29c7c5611f11
|
||||||
:HEADER-ARGS: :tangle ~/.yadm/bootstrap
|
:HEADER-ARGS: :tangle ~/.yadm/bootstrap :exports code
|
||||||
:END:
|
:END:
|
||||||
=yadm= comes with a very handy feature: its bootstrap script. We can
|
=yadm= comes with a very handy feature: its bootstrap script. We can
|
||||||
execute it by running the following command:
|
execute it by running the following command:
|
||||||
#+BEGIN_SRC fish :exports code :tangle no
|
#+BEGIN_SRC fish :tangle no
|
||||||
yadm bootstrap
|
yadm bootstrap
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Notice these two header files, we can see this is a fish script, hence why we
|
Notice these two header files, we can see this is a fish script, hence why we
|
||||||
need fish (which is my daily shell anyway).
|
need fish (which is my daily shell anyway).
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
#!/usr/bin/fish
|
#!/usr/bin/fish
|
||||||
# -*- mode: fish -*-
|
# -*- mode: fish -*-
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -283,7 +419,7 @@
|
|||||||
AZERTY or the American QWERTY layout, so I make it so the Menu key switches
|
AZERTY or the American QWERTY layout, so I make it so the Menu key switches
|
||||||
for me my layout between these three. This makes it so my xorg configuration
|
for me my layout between these three. This makes it so my xorg configuration
|
||||||
of my keyboard looks like this:
|
of my keyboard looks like this:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
set keyboardconf \
|
set keyboardconf \
|
||||||
'Section "InputClass"
|
'Section "InputClass"
|
||||||
Identifier "system-keyboard"
|
Identifier "system-keyboard"
|
||||||
@ -295,7 +431,7 @@
|
|||||||
EndSection'
|
EndSection'
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
So, let’s set it as our keyboard configuration.
|
So, let’s set it as our keyboard configuration.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Set keyboard layout #########################################################\n\n"
|
printf "\n# Set keyboard layout #########################################################\n\n"
|
||||||
echo $keyboardconf | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf
|
echo $keyboardconf | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -306,11 +442,11 @@
|
|||||||
:END:
|
:END:
|
||||||
I use two main locales, the French and US UTF-8 locales, and I like to keep
|
I use two main locales, the French and US UTF-8 locales, and I like to keep
|
||||||
the Japanese locale activated just in case.
|
the Japanese locale activated just in case.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8"
|
set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8"
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Let’s enable these.
|
Let’s enable these.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Set our locale ##############################################################\n\n"
|
printf "\n# Set our locale ##############################################################\n\n"
|
||||||
for item in $mylocales
|
for item in $mylocales
|
||||||
if test (grep -e "#$item" /etc/locale.gen)
|
if test (grep -e "#$item" /etc/locale.gen)
|
||||||
@ -320,7 +456,7 @@
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
This is my configuration I usually use when it comes to my locale.
|
This is my configuration I usually use when it comes to my locale.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
set localeconf "LANG=en_US.UTF-8
|
set localeconf "LANG=en_US.UTF-8
|
||||||
LC_COLLATE=C
|
LC_COLLATE=C
|
||||||
LC_NAME=fr_FR.UTF-8
|
LC_NAME=fr_FR.UTF-8
|
||||||
@ -334,11 +470,11 @@
|
|||||||
LC_MEASUREMENT=fr_FR.UTF-8"
|
LC_MEASUREMENT=fr_FR.UTF-8"
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Let’s set it as our system’s locale.
|
Let’s set it as our system’s locale.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
echo $localeconf | sudo tee /etc/locale.conf
|
echo $localeconf | sudo tee /etc/locale.conf
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Now we can generate our locale!
|
Now we can generate our locale!
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Generate locale #############################################################\n\n"
|
printf "\n# Generate locale #############################################################\n\n"
|
||||||
sudo locale-gen
|
sudo locale-gen
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -349,14 +485,14 @@
|
|||||||
:END:
|
:END:
|
||||||
Let’s create some folders we might need for mounting our drives, Android
|
Let’s create some folders we might need for mounting our drives, Android
|
||||||
devices and CDs.
|
devices and CDs.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Create directories for mounting #############################################\n\n"
|
printf "\n# Create directories for mounting #############################################\n\n"
|
||||||
sudo mkdir -p /mnt/{USB,CD,Android}
|
sudo mkdir -p /mnt/{USB,CD,Android}
|
||||||
sudo chown $USER:(id -g $USER) /mnt/{USB,CD,Android}
|
sudo chown $USER:(id -g $USER) /mnt/{USB,CD,Android}
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
We also need the following folder for our nano backups.
|
We also need the following folder for our nano backups.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
mkdir -p $HOME/.cache/nano/backups
|
mkdir -p $HOME/.cache/nano/backups
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -365,7 +501,7 @@
|
|||||||
:CUSTOM_ID: h-c1a78394-c156-4a03-ae82-e5e9d4090dab
|
:CUSTOM_ID: h-c1a78394-c156-4a03-ae82-e5e9d4090dab
|
||||||
:END:
|
:END:
|
||||||
First of all, the bootstrap shell will set the user’s shell to fish.
|
First of all, the bootstrap shell will set the user’s shell to fish.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Set fish as the default shell ###############################################\n\n"
|
printf "\n# Set fish as the default shell ###############################################\n\n"
|
||||||
chsh -s /usr/bin/fish
|
chsh -s /usr/bin/fish
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -377,7 +513,7 @@
|
|||||||
Now we’ll need to be sure =yay=, our AUR helper, is installed on our system.
|
Now we’ll need to be sure =yay=, our AUR helper, is installed on our system.
|
||||||
If it is, we don’t need to to anything. However, if it isn’t, we’ll install
|
If it is, we don’t need to to anything. However, if it isn’t, we’ll install
|
||||||
it manually.
|
it manually.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
if ! test which yay
|
if ! test which yay
|
||||||
printf "\n# Installing yay ##############################################################\n\n"
|
printf "\n# Installing yay ##############################################################\n\n"
|
||||||
cd
|
cd
|
||||||
@ -401,17 +537,17 @@
|
|||||||
cloned within our =~/.emacs.d= directory, and git won’t let us clone
|
cloned within our =~/.emacs.d= directory, and git won’t let us clone
|
||||||
Spacemacs in an already existing and non-empty directory. To make sure it
|
Spacemacs in an already existing and non-empty directory. To make sure it
|
||||||
isn’t one, let’s delete any potentially existing =~/.emacs.d= directory:
|
isn’t one, let’s delete any potentially existing =~/.emacs.d= directory:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Installing Spacemacs ########################################################\n\n"
|
printf "\n# Installing Spacemacs ########################################################\n\n"
|
||||||
rm -rf ~/.emacs.d
|
rm -rf ~/.emacs.d
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Now we can clone Spacemacs:
|
Now we can clone Spacemacs:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
|
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
And we can restore what might have been deleted in our =~/.emacs.d/private=
|
And we can restore what might have been deleted in our =~/.emacs.d/private=
|
||||||
directory:
|
directory:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
yadm checkout -- ~/.emacs.d/private/
|
yadm checkout -- ~/.emacs.d/private/
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -425,23 +561,23 @@
|
|||||||
:END:
|
:END:
|
||||||
This line in the bootstrap script will test if the current user is using my
|
This line in the bootstrap script will test if the current user is using my
|
||||||
username. If yes, it’s probably me.
|
username. If yes, it’s probably me.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
if ! test (echo "phundrak" | sed -e "s/^.*$USER//I")
|
if ! test (echo "phundrak" | sed -e "s/^.*$USER//I")
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
If it is me installing and using these dotfiles, I want the remotes of my
|
If it is me installing and using these dotfiles, I want the remotes of my
|
||||||
dotfiles to be set to ssh remotes using my ssh keys.
|
dotfiles to be set to ssh remotes using my ssh keys.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Update yadm’s remotes #######################################################\n\n"
|
printf "\n# Update yadm’s remotes #######################################################\n\n"
|
||||||
yadm remote set-url origin git@labs.phundrak.fr:phundrak/dotfiles.git
|
yadm remote set-url origin git@labs.phundrak.fr:phundrak/dotfiles.git
|
||||||
yadm remote add github git@github.com:phundrak/dotfiles.git
|
yadm remote add github git@github.com:phundrak/dotfiles.git
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
I will also want to decrypt my encrypted files, such as said ssh keys.
|
I will also want to decrypt my encrypted files, such as said ssh keys.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Decrypt encrypted dotfiles ##################################################\n\n"
|
printf "\n# Decrypt encrypted dotfiles ##################################################\n\n"
|
||||||
yadm decrypt
|
yadm decrypt
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Finally, let’s close this =if= statement.
|
Finally, let’s close this =if= statement.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
end
|
end
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -451,7 +587,7 @@
|
|||||||
:END:
|
:END:
|
||||||
Before we set our dotfiles up, let’s make sure =envtpl= is correctly
|
Before we set our dotfiles up, let’s make sure =envtpl= is correctly
|
||||||
installed. This package will be needed for generating our alt dotfiles.
|
installed. This package will be needed for generating our alt dotfiles.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf '\n# Install envtpl ##############################################################\n\n'
|
printf '\n# Install envtpl ##############################################################\n\n'
|
||||||
yay -Syu python-envtpl-git
|
yay -Syu python-envtpl-git
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -462,7 +598,7 @@
|
|||||||
:END:
|
:END:
|
||||||
Now we can download the various dependencies of our dotfiles. To do so,
|
Now we can download the various dependencies of our dotfiles. To do so,
|
||||||
let’s run the following command:
|
let’s run the following command:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Getting yadm susbmodules ####################################################\n\n"
|
printf "\n# Getting yadm susbmodules ####################################################\n\n"
|
||||||
yadm submodule update --init --recursive
|
yadm submodule update --init --recursive
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -473,7 +609,7 @@
|
|||||||
:END:
|
:END:
|
||||||
Now this should be the last manipulation on our dotfiles: let’s create our
|
Now this should be the last manipulation on our dotfiles: let’s create our
|
||||||
alternate files:
|
alternate files:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Generating alt files ########################################################\n\n"
|
printf "\n# Generating alt files ########################################################\n\n"
|
||||||
yadm alt
|
yadm alt
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -483,7 +619,7 @@
|
|||||||
:CUSTOM_ID: h-b14d7d03-da49-4a7b-ba05-1c0848bd8e44
|
:CUSTOM_ID: h-b14d7d03-da49-4a7b-ba05-1c0848bd8e44
|
||||||
:END:
|
:END:
|
||||||
We have some files in [[file:ect/][etc/]] that are to be symlinked to =/etc=.
|
We have some files in [[file:ect/][etc/]] that are to be symlinked to =/etc=.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
for f in (find ~/.etc -type f)
|
for f in (find ~/.etc -type f)
|
||||||
set dest (echo $f | sed -n 's/^.*etc\(.*\)$/\/etc\1/p')
|
set dest (echo $f | sed -n 's/^.*etc\(.*\)$/\/etc\1/p')
|
||||||
sudo ln -s $f $dest
|
sudo ln -s $f $dest
|
||||||
@ -492,7 +628,7 @@
|
|||||||
|
|
||||||
We may also want to symlink our [[file:.nanorc][nanorc]] to the =/root= directory for when we
|
We may also want to symlink our [[file:.nanorc][nanorc]] to the =/root= directory for when we
|
||||||
use =nano= as =sudo=.
|
use =nano= as =sudo=.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
read --prompt "echo 'Symlink .nanorc to root’s .nanorc? (Y/n): ' " -l nanoroot
|
read --prompt "echo 'Symlink .nanorc to root’s .nanorc? (Y/n): ' " -l nanoroot
|
||||||
if test $nanoroot = 'y' || test $nanoroot = "Y" || test $nanoroot = ''
|
if test $nanoroot = 'y' || test $nanoroot = "Y" || test $nanoroot = ''
|
||||||
printf "\n# Symlinking .nanorc to root’s .nanorc ########################################\n\n"
|
printf "\n# Symlinking .nanorc to root’s .nanorc ########################################\n\n"
|
||||||
@ -505,7 +641,7 @@
|
|||||||
:CUSTOM_ID: h-887ec6d4-535d-4363-a0a7-884717b87a47
|
:CUSTOM_ID: h-887ec6d4-535d-4363-a0a7-884717b87a47
|
||||||
:END:
|
:END:
|
||||||
Let’s set in a custom varible what packages we’ll be needing.
|
Let’s set in a custom varible what packages we’ll be needing.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
set PACKAGES \
|
set PACKAGES \
|
||||||
asar ascii aspell-en aspell-fr assimp awesome-terminal-fonts base-devel bat \
|
asar ascii aspell-en aspell-fr assimp awesome-terminal-fonts base-devel bat \
|
||||||
biber bleachbit bluez-firmware bluez-utils bookworm boost bzip2 chromium clisp \
|
biber bleachbit bluez-firmware bluez-utils bookworm boost bzip2 chromium clisp \
|
||||||
@ -538,7 +674,7 @@
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
These are the minimum I would have in my own installation. You can edit it
|
These are the minimum I would have in my own installation. You can edit it
|
||||||
however you want. Let’s install those.
|
however you want. Let’s install those.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Installing needed packages ##################################################\n\n"
|
printf "\n# Installing needed packages ##################################################\n\n"
|
||||||
yay -S --needed $PACKAGES
|
yay -S --needed $PACKAGES
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -550,7 +686,7 @@
|
|||||||
For some reason, I found installing directly this fork does not work, and I
|
For some reason, I found installing directly this fork does not work, and I
|
||||||
need to install it after I installed the regular compton packages.
|
need to install it after I installed the regular compton packages.
|
||||||
=compton-tryone-git= will replace =compton= which will be removed.
|
=compton-tryone-git= will replace =compton= which will be removed.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Installing tryone’s compton fork ############################################\n\n"
|
printf "\n# Installing tryone’s compton fork ############################################\n\n"
|
||||||
yay -S compton-tryone-git
|
yay -S compton-tryone-git
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -567,14 +703,14 @@
|
|||||||
:CUSTOM_ID: h-429cb31a-fccb-420f-a5aa-21054c45fb38
|
:CUSTOM_ID: h-429cb31a-fccb-420f-a5aa-21054c45fb38
|
||||||
:END:
|
:END:
|
||||||
First, let’s activate Docker.
|
First, let’s activate Docker.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Enabling and starting Docker ################################################\n\n"
|
printf "\n# Enabling and starting Docker ################################################\n\n"
|
||||||
sudo systemctl enable --now docker
|
sudo systemctl enable --now docker
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
Now, if we wish it, we can be added to the =docker= group so we won’t have
|
Now, if we wish it, we can be added to the =docker= group so we won’t have
|
||||||
to type =sudo= each time we call Docker or Docker Compose.
|
to type =sudo= each time we call Docker or Docker Compose.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
read --prompt "echo 'Do you wish to be added to the `docker` group? (Y/n): ' " -l adddockergroup
|
read --prompt "echo 'Do you wish to be added to the `docker` group? (Y/n): ' " -l adddockergroup
|
||||||
if test $adddockergroup = 'y' || test $adddockergroup = "Y" || test $adddockergroup = ''
|
if test $adddockergroup = 'y' || test $adddockergroup = "Y" || test $adddockergroup = ''
|
||||||
sudo usermod -aG docker $USER
|
sudo usermod -aG docker $USER
|
||||||
@ -587,7 +723,7 @@
|
|||||||
:END:
|
:END:
|
||||||
Emacs will run as a user service, which means it won’t be launched until we
|
Emacs will run as a user service, which means it won’t be launched until we
|
||||||
log in.
|
log in.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Enabling Emacs as user service ##############################################\n\n"
|
printf "\n# Enabling Emacs as user service ##############################################\n\n"
|
||||||
systemctl --user enable --now emacs
|
systemctl --user enable --now emacs
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -598,7 +734,7 @@
|
|||||||
:END:
|
:END:
|
||||||
Maybe we want to activate an SSH server on our machine. If so, we can
|
Maybe we want to activate an SSH server on our machine. If so, we can
|
||||||
enable it. Let’s ask the question.
|
enable it. Let’s ask the question.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
read --prompt "echo 'Do you want to activate the ssh server? (Y/n): ' " -l sshdserver
|
read --prompt "echo 'Do you want to activate the ssh server? (Y/n): ' " -l sshdserver
|
||||||
if test $sshdserver = 'y' || test $sshdserver = "Y" || test $sshdserver = ''
|
if test $sshdserver = 'y' || test $sshdserver = "Y" || test $sshdserver = ''
|
||||||
printf "\n# Enabling ssh server #########################################################\n\n"
|
printf "\n# Enabling ssh server #########################################################\n\n"
|
||||||
@ -613,7 +749,7 @@
|
|||||||
Ly is a display manager based on ncurses which I find nice enough for me to
|
Ly is a display manager based on ncurses which I find nice enough for me to
|
||||||
use (I generally don’t like using display managers). Let’s enable it, and
|
use (I generally don’t like using display managers). Let’s enable it, and
|
||||||
let’s disable tty2 while we’re at it (Ly uses it to run X).
|
let’s disable tty2 while we’re at it (Ly uses it to run X).
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
sudo systemctl enable --now ly
|
sudo systemctl enable --now ly
|
||||||
sudo systemctl disable getty@tty2
|
sudo systemctl disable getty@tty2
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -628,7 +764,7 @@
|
|||||||
:END:
|
:END:
|
||||||
We will be using =fisher= as our extensions manager for Fish. Let’s install
|
We will be using =fisher= as our extensions manager for Fish. Let’s install
|
||||||
it.
|
it.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Installing fisher ###########################################################\n\n"
|
printf "\n# Installing fisher ###########################################################\n\n"
|
||||||
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
|
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -638,14 +774,14 @@
|
|||||||
:CUSTOM_ID: h-3d540273-bdfb-4c63-a05f-2374a010dc29
|
:CUSTOM_ID: h-3d540273-bdfb-4c63-a05f-2374a010dc29
|
||||||
:END:
|
:END:
|
||||||
I generally use the following extensions in my Fish shell.
|
I generally use the following extensions in my Fish shell.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
set FISHEXTENSIONS \
|
set FISHEXTENSIONS \
|
||||||
edc/bass franciscolourenco/done jethrokuan/fzf jethrokuan/z \
|
edc/bass franciscolourenco/done jethrokuan/fzf jethrokuan/z \
|
||||||
jorgebucaran/fish-getopts laughedelic/pisces matchai/spacefish \
|
jorgebucaran/fish-getopts laughedelic/pisces matchai/spacefish \
|
||||||
tuvistavie/fish-ssh-agent
|
tuvistavie/fish-ssh-agent
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Let’s install these:
|
Let’s install these:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
fisher add $FISHEXTENSIONS
|
fisher add $FISHEXTENSIONS
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -664,7 +800,7 @@
|
|||||||
needed dependencies for building =i3= installed. Now, let’s clone it, build
|
needed dependencies for building =i3= installed. Now, let’s clone it, build
|
||||||
it, and install it. Doing this is probably very bad practices though, be
|
it, and install it. Doing this is probably very bad practices though, be
|
||||||
warned.
|
warned.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Install i3-gaps-rounded #####################################################\n\n"
|
printf "\n# Install i3-gaps-rounded #####################################################\n\n"
|
||||||
cd ~/fromGIT
|
cd ~/fromGIT
|
||||||
git clone https://github.com/resloved/i3.git i3-gaps-rounded
|
git clone https://github.com/resloved/i3.git i3-gaps-rounded
|
||||||
@ -684,7 +820,7 @@
|
|||||||
Now let’s install =polybar-battery=. This is a binary that I’ll use in my
|
Now let’s install =polybar-battery=. This is a binary that I’ll use in my
|
||||||
[[file:.config/i3/config][i3 config]] to indicate my battery level. It also sends a notification on low
|
[[file:.config/i3/config][i3 config]] to indicate my battery level. It also sends a notification on low
|
||||||
battery and on charging completed.
|
battery and on charging completed.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Install polybar-battery #####################################################\n\n"
|
printf "\n# Install polybar-battery #####################################################\n\n"
|
||||||
cd ~/fromGIT
|
cd ~/fromGIT
|
||||||
git clone https://github.com/drdeimos/polybar_another_battery.git
|
git clone https://github.com/drdeimos/polybar_another_battery.git
|
||||||
@ -695,7 +831,7 @@
|
|||||||
|
|
||||||
Now, we have our binary, let’s symlink it in our local binary directory,
|
Now, we have our binary, let’s symlink it in our local binary directory,
|
||||||
=~/.local/bin=.
|
=~/.local/bin=.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
ln -s polybar-ab ~/.local/bin/polybar-ab
|
ln -s polybar-ab ~/.local/bin/polybar-ab
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -705,7 +841,7 @@
|
|||||||
:END:
|
:END:
|
||||||
I sometimes use Reveal.JS to make presentations, and I set its location in
|
I sometimes use Reveal.JS to make presentations, and I set its location in
|
||||||
my [[file:.spacemacs][dotspacemacs]] file to be in =~/fromGIT=, so let’s clone it there.
|
my [[file:.spacemacs][dotspacemacs]] file to be in =~/fromGIT=, so let’s clone it there.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Install Reveal.JS ###########################################################\n\n"
|
printf "\n# Install Reveal.JS ###########################################################\n\n"
|
||||||
cd ~/fromGIT
|
cd ~/fromGIT
|
||||||
git clone https://github.com/hakimel/reveal.js.git
|
git clone https://github.com/hakimel/reveal.js.git
|
||||||
@ -722,14 +858,14 @@
|
|||||||
When using rust, I bounce between two toolchains, the =stable= toolchain
|
When using rust, I bounce between two toolchains, the =stable= toolchain
|
||||||
and the =nightly= toolchain. To install them, I will use =rustup= which has
|
and the =nightly= toolchain. To install them, I will use =rustup= which has
|
||||||
already been installed.
|
already been installed.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Install the rust toolchains, nightly is the default one #####################\n\n"
|
printf "\n# Install the rust toolchains, nightly is the default one #####################\n\n"
|
||||||
rustup default nightly
|
rustup default nightly
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
This will both download the nightly toolchain and set it as the default
|
This will both download the nightly toolchain and set it as the default
|
||||||
one. Yup, I like to live dangerously. Now to install the stable toolchain,
|
one. Yup, I like to live dangerously. Now to install the stable toolchain,
|
||||||
let’s run this:
|
let’s run this:
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
rustup toolchain install stable
|
rustup toolchain install stable
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
@ -739,7 +875,7 @@
|
|||||||
:END:
|
:END:
|
||||||
We’ll need some utilities when developing Rust from Emacs, namely =rustfmt=
|
We’ll need some utilities when developing Rust from Emacs, namely =rustfmt=
|
||||||
and =racer=. Let’s install them with =cargo=.
|
and =racer=. Let’s install them with =cargo=.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Add rust utilities ##########################################################\n\n"
|
printf "\n# Add rust utilities ##########################################################\n\n"
|
||||||
cargo install rustfmt racer
|
cargo install rustfmt racer
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
@ -749,7 +885,7 @@
|
|||||||
:CUSTOM_ID: h-fa5307ec-065b-4d06-9d47-05ccde0da8ac
|
:CUSTOM_ID: h-fa5307ec-065b-4d06-9d47-05ccde0da8ac
|
||||||
:END:
|
:END:
|
||||||
Finally, we are almost done! Let’s clean the cache of =pacman= and =yay=.
|
Finally, we are almost done! Let’s clean the cache of =pacman= and =yay=.
|
||||||
#+BEGIN_SRC fish :exports code
|
#+BEGIN_SRC fish
|
||||||
printf "\n# Clean the pacman and yay cache ##############################################\n\n"
|
printf "\n# Clean the pacman and yay cache ##############################################\n\n"
|
||||||
yay -Sc --noconfirm
|
yay -Sc --noconfirm
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
Loading…
Reference in New Issue
Block a user