My dotfiles.
The commit history isn't the best, as I started this repository as a private repo just to sync my dotfiles.
Installation requirements: git
and stow
(GNU Stow)
git clone [email protected]:yrjarv/.dotfiles ~/.dotfiles
cd ~/.dotfiles
stow */
Directory name has a dot in front of it so that the *
in stow *
doesn't make
stow
try to stow the scripts.
I previously tried to create a script for after-install setup of my arch installations, but that failed.
Now, the directory only contains devilry_colors.js
- a script made by Johann
Tveranger to make the Devilry
UI a little bit less confusing. I have modified it
slightly, so that there is even less visual clutter. To use the script, install
Tampermonkey in your browser.
I only keep this around for historical purposes, as I have now (hopefully) fully
made the switch to Zsh. My .bashrc
file is a mess, but it served me well.
Only contains a very simple .clang-format
file, that clang
uses when trying
to automatically format my c
programs.
.config/btop
and.config/htop
contain config files forhtop
andbtop
, but they are mainly modified through thebtop
andhtop
TUIs. I track them with git because misclicks happen, and especially inbtop
I find it really hard to reverse any changes I made to the config when I don't have the config file version controlled..config/hypr
is where I have the config file for Hyprland.hyprland.conf
is mostly the automatically generated file that every new install comes with, but I have made quite a few changes - especially to the keybinds..config/kitty
is a very simple config file for kitty, mostly to make it look even more minimalistic than it is by default..config/waybar
contains my very minimalistic Waybar config: It is black great bash configuration, I haven't really tried to make the switch yet. with white text, and absolutely no icons.
I am still trying to figure out if I should use neovim or emacs. In my nvim
repository I am currently setting up
neovim, but this is where I keep a somewhat functioning emacs config - so I have
something to fall back on if I need to do something important while I configure
neovim.
This can't be copied without changing the email and name (unless you want me to be a contributor to all your repositories...).
The main purpose of my .gitconfig
file is to have a few aliases:
last -X
, whereX
is the number of commits to show, limits the amount of commits shown withgit log
: You might not want all the commits, only e.g. the hash of the previous one - in which case you can rungit last -1
.oneline
is the same asgit log --oneline
, but slightly quicker to write.aco "MESSAGE"
- my most used alias, it stages all modified files and commits them with the message you choose.word-diff
: just likeoneline
it is a shortening ofgit diff --word-diff
, for no other reason than that it is quicker to write.graph
is one of the most interesting ones. It prints a nice graph of all commits on all branches, with better formatting thangit log --graph
.contributors
isn't very much used, byt still quite useful. It lists all the contributors (if the email addresses are different, they are separated) alongside the number of commits they have made.
Additionally, all commits are should automatically get signed.
My .ssh/config
file probably isn't very useful for anyone else, except maybe
a few people at ifi: It is very repetetive, but allows me to run ssh guanin
instead of ssh [email protected] -J [email protected]
when I want to
acces the department's guanin
server.
I have set the default jumphost for ifi servers to be morgoth
, for two
reasons:
- It is physically located in the department's basement, so it's about 100
meters away from me - compared to
gothmog
, which is in the city center. - When I use
ssh
at home, I need to use 2fa to get into the jumphost. But: UiO servers are configured to cache 2fa for a while. So if I concistently use the same jumphost server, I can utilize the 2fa caching fully.
I am trying to learn to use tmux, so this is where I am trying to create a tmux configuration.
This is my slightly messy shell config.
Additionally, there are some weird quirks with how I deal with Ifi servers: I
have a few binaries in ~/.binaries/bin
, because I can neither install nor
upgrade with dnf
on them (no sudo permissions), which is why I prepend
~/.binaries/bin
to PATH.
There are also a few aliases that won't work for anyone else without
modification, such as my uio-sftp
function - which uses my username to ssh
into the UiO SFTP servers.
I also have a few aliases and functions for simplifying my git workflow: I have
one repository for each of the courses I take, and cd
-ing between all of them
just to make sure all my changes are pushed would take too long. So I have three
aliases: push
, pull
, and status
, all of which run their respective git
commands in all the git repositories directly inside ~
.
An additional "weird" thing I have done with my .zshrc
: I have a command ((ll -L=2 &) > /dev/null
) at the bottom. This is pretty much the same as tree
-
except with a lot fewer files being loaded. The reason for this is that the file
system on the Ifi servers is very slow (all the files are on one physical
server, which is connected to all the computing servers), so by accessing most
of my files in the background when logging in, the files I am most likely to
need are cached. I have zero proof that that's what happens, but the access
times are dramatically reduced after adding that line - so I assume that it
helps.