b3nj5m1n / dotfiles

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

banner

Behold, the dots

Overview

I keep all my dotfiles in this repository. I tried my best to organise them in a way that makes sense, so here's a quick rundown of the general structure.

If you're looking for the config files for a specific program, you're going to want to look in files/. Most notably, here you'll find my config for neovim, my window manager, tmux and my shell.

If you're looking for my NixOS configuration, unsuprisingly, you'll find it in nix/.

If you're looking for my scripts, also unsuprisingly, you'll find them in scripts/.

You can't just copy paste a lot of these files.

I use dotter to manage my dotfiles, so some of my config files have placeholders that will be replaced by a dotter deploy. Generally, these look like {{ variable }}, and I use them for colors, to disable modules in my statusbar based on the host (for example, display a battery module on my laptop, but not on my desktop), and a bunch of other stuff.

You can look in .dotter/ to see my config for different hosts, all the variables, where the config files actually get copied to, etc.

Finally, I keep some documentation in docs/. Here, you'll find my arch install guide, for example, and some general notes about stuff that was unnecessarily difficult to set up.

Current Setup

I'm currently using Arch Linux on my desktop and NixOS on my laptop. I've been using Arch as my daily driver for more than 2 years now, and it's definitely a great distro, but NixOS is very promising so far, so we'll see if I switch to it completely.

On my desktop, I'm running bspwm. I've been using it forever and honestly wouldn't really recommend it. There's a lot of things you have to manually do with shell scripts to get it working well, and I've had several of my scripts randomly stop working in the past. It's also not actively developed (it's considered feature complete, so this is not necessarily a bad thing) and, in my experience, not very performant. If I were to start over, I'd probably choose awesome instead. Since I'm planning to over move to wayland anyways though, I haven't bothered to set up awesome properly myself.

On my laptop, I'm running sway. My first tiling WM was i3, so it's quite familiar, and my experience so far has been very good. I'll probably try out other wayland compositors though before I fully switch to wayland on my desktop. I'm considering trying out hyprland and river, but they're both not very mature software.

There's some tools that are specific to X (bspwm) or wayland (sway), like rofi/wofi/tofi, but for the most part, the rest of my setup is shared across both of my machines, as well as my raspberry pi.

I use neovim as my texteditor. I've used emacs in the past, I liked it, but I prefer something more lightweight. I use a ton of plugins for neovim, you can find my full configuration in files/nvim/. My config is currently written in fennel. I wrote my entire config in neorg, but unfortunately, getting the required dependencies to extract all code blocks using tree-sitter is a bit of a hassle, so for now I've copied everything over to config.fnl and commented out the norg parts.

I use the terminal for almost everything, so I have a fairly extensive shell configuration. files/shrc/shrc.sh is shared across bash and zsh, bash and zsh each have a little bit of their own config as well though. You'll find all of my aliases, enviornment variables and some of the cli tools I use in these files. Most notably, I use atuin to manage my shell history, I use zoxide to make cd more powerful, and I use starship to generate my shell's prompt. I highly recommend all 3 of those.

I've also recently started using eww for my status bar, and I wrote a little helper program called pfui to generate some of the data for my statusbar.

Finally, I'd like to congratulate myself on 1000 commits. Here's to a 1000 more 🥂.

History

Here, you'll find a gallery of screenshots from past setups.

Old screenshots


Bspwm - 2021-01-03


Bspwm - 2020-12-11


Bspwm - 2020-11-24


Bspwm - 2020-07-20


Bspwm - 2020-06-20


Bspwm - 2020-06-02


i3-gaps - 2020-05-10

About

License:GNU Affero General Public License v3.0


Languages

Language:Nix 30.9%Language:Shell 30.4%Language:Fennel 21.7%Language:CSS 5.6%Language:Emacs Lisp 3.4%Language:GLSL 2.6%Language:Lua 1.4%Language:Python 1.3%Language:SCSS 0.9%Language:Vim Script 0.5%Language:Makefile 0.5%Language:JavaScript 0.5%Language:Scheme 0.2%Language:Common Lisp 0.1%Language:Macaulay2 0.0%