This commit is contained in:
Kristofers Solo
2023-01-19 17:11:47 +02:00
parent a565762f65
commit 17e3e9bda9
7 changed files with 67 additions and 69 deletions

View File

@@ -0,0 +1,73 @@
{% extends "layout.html" %}
{% load static %}
{% block title %}{{ title }}{% endblock %}
{% block meta %}
<link rel="stylesheet"
type="text/css"
href="{% static 'projects/css/karbs/karbs.css' %}"/>
{% endblock %}
{% block content %}
<h1>Kristofers Auto-Rice Bootsrapping Script (KARBS)</h1>
<hr>
<p>
KARBS is an efficient shell script that will install a fully-featured tiling window manager-based system on any
<a href="https://archlinux.org/" target="_blank">Arch</a> or
<a href="https://artixlinux.org/" target="_blank">Artix</a>
Linux-based system, without any of the routine of manual post-install processes and configuration.
</p>
<p>
By default, KARBS installs and deploys
<a href="https://github.com/kristoferssolo/solorice" targer="_blank">my own personal dotfiles</a>.
</p>
<h2>Installation</h2>
<hr>
<p>
On any (preferrably fresh) install of an
<a href="https://archlinux.org/" target="_blank">Arch</a> or
<a href="https://artixlinux.org/" target="_blank">Artix</a>
Linux, make sure <code>curl</code> is installed and just run the following as the root user:
</p>
<pre><code>curl -LO krisrofers.xyz/karbs
sh karbs</code></pre>
<p>
Note that the KARBS scripts will not partition any drives or wipe anything, <strong>but</strong> when it deploys the dotfiles, it will overwrite any preexisting files: e.g. the KARBS .zshrc will replace your old .zshrc, etc.
</p>
<h2>What does KARBS install?</h2>
<hr>
<p>
You can check out the programs list that KARBS parses for installation <a href="https://github.com/kristoferssolo/karbs/blob/main/pkg-files/X11-pkgs"
target="_blank">right here</a>!
</p>
<p>Here is some idea of the programs installed:</p>
<aside>
If you don't know any of these programs and this is all Greek to you, don't worry because it's all done automatically for you and you will learn as you use the system.
</aside>
<ul class="list upper">
<li>
<a href="https://awesomewm.org/" target="_blank">awesome</a> - a highly configurable, next generation framework window manager for X
</li>
<li>
Minimalist and keyboard-centric programs for:
<ul class="list sub">
<li>
file management (<a href="https://github.com/gokcehan/lf" target="_blank">lf</a>),
</li>
<li>
video (<a href="https://mpv.io/" target="_blank">mpv</a>),
</li>
<li>
image viewer (<a href="https://github.com/nsxiv/nsxiv" target="_blank">nsxiv</a>),
</li>
<li>
pdf/djvu/epub reader (<a href="https://pwmt.org/projects/zathura/" target="_blank">zathura</a>).
</li>
</ul>
<li>
A well featured and configured shell (<a href="https://www.zsh.org/" target="_blank">zsh</a>) and other core programs.
</li>
</li>
</ul>
<p>
Note that making your own fork of KARBS is as easy as using your own dotfiles, making a programs file like the one above, and making any other direct changes to the script you want.
</p>
{% endblock %}

64
templates/projects/karbs/karbs Executable file
View File

@@ -0,0 +1,64 @@
#!/bin/sh
# Kristofers Auto Rice Bootsrapping Script (KARBS)
# by Kristofers Solo
# License: MIT
echo "Choose display server (X11 / Wayland)[1/2]: "
read -r USER_INPUT
# Get display server type from user
if [ "$USER_INPUT" = 1 ]; then
DISPLAY_SERVER="X11"
elif [ "$USER_INPUT" = 2 ]; then
DISPLAY_SERVER="wayland"
else
echo "Wrong input. Please try again."
exit
fi
# Install paru
if pacman -Q paru; then
:
else
sudo pacman -S --noconfirm rust-src git wget fakeroot
git clone https://aur.archlinux.org/paru-bin
cd paru-bin || exit
makepkg -si
cd ..
rm -rf paru-bin
fi
FILE="pkg-files/$DISPLAY_SERVER-pkgs"
if [ -f "$FILE" ]; then
paru -Syu --noconfirm --needed - <$FILE
else
curl -LO https://raw.githubusercontent.com/kristoferssolo/karbs/main/$FILE
paru -Syu --noconfirm --needed - <$DISPLAY_SERVER-pkgs
rm -f $DISPLAY_SERVER-pkgs
fi
git clone https://github.com/kristoferssolo/solorice "$HOME/solorice"
cp -raf "$HOME"/solorice/{./config,./local,.zshenv} "$HOME"
git clone https://github.com/kristoferssolo/SoloVim "$HOME"/.config/nvim
rm -rf "$HOME"/solorice
mkdir -p "$HOME"/{Downloads,Documents,Videos,Music,Pictures/screenshots}
if [ $DISPLAY_SERVER = "wayland" ]; then
rm -rf "$HOME"/.config/{awesome,picom,sx,zsh/.zprofile-X11}
mv "$HOME"/.config/zsh/.zprofile-wayland "$HOME"/.config/zsh/.zprofile
chsh -s /bin/zsh
zsh
Hyprland
else
rm -rf "$HOME"/.config/{hypr,waybar,zsh/.zprofile-wayland}
mv "$HOME"/.config/zsh/.zprofile-X11 "$HOME"/.config/zsh/.zprofile
git clone https://github.com/streetturtle/awesome-wm-widgets "$HOME"/.config/awesome/awesome-wm-widgets
chsh -s /bin/zsh
zsh
echo -e "\n\n\033[1;31mFor weather widget to work, enter API-key from https://openweathermap.org, latitude and longitude in '~/.config/awesome/weather' file, each on separate line.\033[0m"
echo "API-key"
echo "latitude"
echo "longitude"
echo -e "\nEverything else is ready to go. You can run 'sx' or reboot."
fi

View File

@@ -0,0 +1,75 @@
{% extends "layout.html" %}
{% load static %}
{% block title %}{{ title }}{% endblock %}
{% block meta %}
<link rel="stylesheet"
type="text/css"
href="{% static 'projects/css/projects.css' %}"/>
<script src="{% static 'projects/js/projects.js' %}" defer></script>
{% endblock %}
{% block content %}
<div class="body">
<div id="cards">
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
<div class="card">
<div class="card-content">
<div class="card-info-wrapper">
<div class="card-info-title">
<h3>Apartments</h3>
<p>Places to be apart. Wait, what?</p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}