(Note: this page is under construction.)
This page describes the setup I have on blueberry and raspberry. The configuration files and scripts (i.e. the text in pre
environments), as well as the bnoise.png
image below, are placed under the Creative Commons CC0 1.0 Universal license.
Name, link to homepage | Debian package(s) |
---|---|
Debian | N/A |
debootstrap | debootstrap |
Fcitx | fcitx5 |
fish | fish |
i3 | i3-wm |
Limine | N/A |
Neovim | neovim |
xinit | xinit |
XTerm | xterm |
I use the unstable distribution of Debian. On both blueberry and raspberry, Debian was installed with the debootstrap script.
On both, I have an EFI system partition, which is not ordinarily mounted (during system upgrades I mount it at /root/real-boot
); btrfs partitions mounted at /
and /home/benji
; and a tmpfs pseudo-filesystem mounted at /tmp
. On raspberry, I have a btrfs partition mounted at /home/benji/.local/share/Steam
.
I use the Limine bootloader. I have /boot
symlinked to /root/real-boot/kernels/debian
(see the Partitioning section) and I manually update my Limine configuration whenever there is a kernel upgrade to point to the new kernel.
limine.cfg
on raspberry at the time of writing:
TERM_FONT_SCALE=2x2 TERM_BACKGROUND=3f000000 TERM_WALLPAPER=boot:///bg/bnoise.png TERM_WALLPAPER_STYLE=tiled TIMEOUT=2 :Debian PROTOCOL=linux KERNEL_PATH=boot:///kernels/debian/vmlinuz-6.7.9-amd64 MODULE_PATH=boot:///kernels/debian/initrd.img-6.7.9-amd64 CMDLINE=root=/dev/nvme0n1p6 ro quiet
/dev/nvme0n1p6
in there is the root partition, and bnoise.png
is the following image (click on it to see it tiled at full size).
That image was created by me early into experimenting with adapting the void-and-cluster algorithm for blue noise generation to contexts other than square grids (in this case, the Voronoi diagram of some points independently placed uniformly randomly onto a flat torus).
On blueberry, I have Limine configured to load straight into Linux with no delay. On raspberry, I used to have multiple operating systems installed, sharing the same /home/benji
partition but different root partitions, but now I only use the Debian install. There isn't really any reason to keep the bootloader screen on raspberry, aside from the fact that I like looking at the bnoise.png
texture.
I log in on a tty. For tty1, the i3 window manager is started when I log in.
I use the fish shell, and ~/.config/fish/config.fish
contains the following:
if test "$(tty)" = /dev/tty1 exec startx end set -gx EDITOR nvim
The first three lines (and xinit) are responsible for starting i3 when I log into tty1, and the last line makes my default text editor Neovim.
~/.xinitrc
contains the following:
export XMODIFIERS=@im=fcitx export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx exec dbus-launch --exit-with-session i3
~/.config/i3/config
contains the following (click to expand):set $mod Mod4 set $term xterm set $scripts ~/scripts font pango: Source Code Pro 14px exec gnome-keyring-daemon -r exec $scripts/set-res exec xrdb -merge ~/.Xresources exec xset s off exec xset -dpms #exec setxkbmap -layout 'us,us(intl)' -option grp:shifts_toggle exec fcitx5 floating_modifier $mod workspace_layout tabbed default_border pixel 3 hide_edge_borders smart #class border backg text indic child client.focused #bfbfbf #bfbfbf #000000 #bfbfbf #bfbfbf client.focused_inactive #000000 #000000 #7f7f7f #000000 #000000 client.unfocused #000000 #000000 #7f7f7f #000000 #000000 bindsym --release $mod+a exec $scripts/sshot bindsym --release $mod+q exec $scripts/sshot-full bindsym $mod+l exec $scripts/lock bindsym $mod+b exec $scripts/battery bindsym $mod+w exec $scripts/workspace bindsym $mod+t exec $term bindsym $mod+s exec $term -e pulsemixer mode "run" { bindsym a exec anki; mode "default" bindsym d exec discord --no-sandbox; mode "default" bindsym s exec steam; mode "default" bindsym Escape mode "default" } bindsym $mod+o mode "run" mode "games" { bindsym m exec mc; mode "default" bindsym Escape mode "default" } bindsym $mod+g mode "games" mode "firefox" { bindsym space exec firefox -new-window; mode "default" bindsym u exec firefox -new-window uncc.instructure.com; mode "default" bindsym Escape mode "default" } bindsym $mod+f mode "firefox" bindsym $mod+Shift+Tab kill bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right bindsym $mod+Tab focus next bindsym $mod+comma focus parent bindsym $mod+period focus child bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right bindsym $mod+Return fullscreen toggle bindsym $mod+z split h bindsym $mod+c split v bindsym $mod+x layout toggle split bindsym $mod+v layout tabbed bindsym $mod+grave workspace next bindsym $mod+Shift+a workspace a; mode "default" bindsym $mod+Shift+b workspace b; mode "default" bindsym $mod+Shift+c workspace c; mode "default" bindsym $mod+Shift+d workspace d; mode "default" bindsym $mod+Shift+e workspace e; mode "default" bindsym $mod+Shift+f workspace f; mode "default" bindsym $mod+Shift+g workspace g; mode "default" bindsym $mod+Shift+h workspace h; mode "default" bindsym $mod+Shift+i workspace i; mode "default" bindsym $mod+Shift+j workspace j; mode "default" bindsym $mod+Shift+k workspace k; mode "default" bindsym $mod+Shift+l workspace l; mode "default" bindsym $mod+Shift+m workspace m; mode "default" bindsym $mod+Shift+n workspace n; mode "default" bindsym $mod+Shift+o workspace o; mode "default" bindsym $mod+Shift+p workspace p; mode "default" bindsym $mod+Shift+q workspace q; mode "default" bindsym $mod+Shift+r workspace r; mode "default" bindsym $mod+Shift+s workspace s; mode "default" bindsym $mod+Shift+t workspace t; mode "default" bindsym $mod+Shift+u workspace u; mode "default" bindsym $mod+Shift+v workspace v; mode "default" bindsym $mod+Shift+w workspace w; mode "default" bindsym $mod+Shift+x workspace x; mode "default" bindsym $mod+Shift+y workspace y; mode "default" bindsym $mod+Shift+z workspace z; mode "default" mode "move" { bindsym Left move workspace to output left; mode "default" bindsym Right move workspace to output right; mode "default" bindsym a move container to workspace a; workspace a; mode "default" bindsym b move container to workspace b; workspace b; mode "default" bindsym c move container to workspace c; workspace c; mode "default" bindsym d move container to workspace d; workspace d; mode "default" bindsym e move container to workspace e; workspace e; mode "default" bindsym f move container to workspace f; workspace f; mode "default" bindsym g move container to workspace g; workspace g; mode "default" bindsym h move container to workspace h; workspace h; mode "default" bindsym i move container to workspace i; workspace i; mode "default" bindsym j move container to workspace j; workspace j; mode "default" bindsym k move container to workspace k; workspace k; mode "default" bindsym l move container to workspace l; workspace l; mode "default" bindsym m move container to workspace m; workspace m; mode "default" bindsym n move container to workspace n; workspace n; mode "default" bindsym o move container to workspace o; workspace o; mode "default" bindsym p move container to workspace p; workspace p; mode "default" bindsym q move container to workspace q; workspace q; mode "default" bindsym r move container to workspace r; workspace r; mode "default" bindsym s move container to workspace s; workspace s; mode "default" bindsym t move container to workspace t; workspace t; mode "default" bindsym u move container to workspace u; workspace u; mode "default" bindsym v move container to workspace v; workspace v; mode "default" bindsym w move container to workspace w; workspace w; mode "default" bindsym x move container to workspace x; workspace x; mode "default" bindsym y move container to workspace y; workspace y; mode "default" bindsym z move container to workspace z; workspace z; mode "default" bindsym Escape mode "default" } bindsym $mod+m mode "move" mode "resize" { bindsym Left resize shrink width 50 bindsym Right resize grow width 50 bindsym Up resize grow height 50 bindsym Down resize shrink height 50 bindsym Shift+Left resize shrink width 10 bindsym Shift+Right resize grow width 10 bindsym Shift+Up resize grow height 10 bindsym Shift+Down resize shrink height 10 bindsym Return mode "default" } bindsym $mod+r mode "resize"
Some of the programs and scripts in there will be described later.
I use XTerm with the following in ~/.Xresources
(loaded by i3):
xterm*borderWidth: 0 *VT100*foreground: #e6e6e6 *VT100*background: #000000 *VT100*color0: #000000 *VT100*color1: #8c0000 *VT100*color2: #008c00 *VT100*color3: #8c8c00 *VT100*color4: #00558c *VT100*color5: #8c558c *VT100*color6: #008c8c *VT100*color7: #8c8c8c *VT100*color8: #333333 *VT100*color9: #e63333 *VT100*color10: #33e633 *VT100*color11: #e6e633 *VT100*color12: #338ce6 *VT100*color13: #e68ce6 *VT100*color14: #33e6e6 *VT100*color15: #e6e6e6 *VT100*faceName: Source Code Pro:pixelsize=14 xterm*decTerminalID: vt340 xterm*termName: xterm-256color
Those colors look like this:
as text on #000000 background | |||||||
---|---|---|---|---|---|---|---|
#000000 |
#8c0000 |
#8c8c00 |
#008c00 |
#008c8c |
#00558c |
#8c558c |
#8c8c8c |
#333333 |
#e63333 |
#e6e633 |
#33e633 |
#33e6e6 |
#338ce6 |
#e68ce6 |
#e6e6e6 |
as text on #e6e6e6 background | |||||||
#000000 |
#8c0000 |
#8c8c00 |
#008c00 |
#008c8c |
#00558c |
#8c558c |
#8c8c8c |
#333333 |
#e63333 |
#e6e633 |
#33e633 |
#33e6e6 |
#338ce6 |
#e68ce6 |
#e6e6e6 |
as background for #000000 text | |||||||
#000000 |
#8c0000 |
#8c8c00 |
#008c00 |
#008c8c |
#00558c |
#8c558c |
#8c8c8c |
#333333 |
#e63333 |
#e6e633 |
#33e633 |
#33e6e6 |
#338ce6 |
#e68ce6 |
#e6e6e6 |
as background for #e6e6e6 text | |||||||
#000000 |
#8c0000 |
#8c8c00 |
#008c00 |
#008c8c |
#00558c |
#8c558c |
#8c8c8c |
#333333 |
#e63333 |
#e6e633 |
#33e633 |
#33e6e6 |
#338ce6 |
#e68ce6 |
#e6e6e6 |