Add final PHP and images, pretty much ready to set up the site now.

This commit is contained in:
speedie 2022-11-23 18:16:09 +01:00
parent 33244631c3
commit b161c0865c
39 changed files with 425 additions and 24 deletions

0
.gitignore vendored Normal file
View file

42
articles/guide01.php Normal file
View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<?php include '../php/header.php';?>
<title>Guide: Upgrading your Gentoo kernel to 5.17.4/absolute latest Linux kernel </title>
<meta charset="UTF-8">
<meta name="description" content="This text based, but easy to follow guide goes over upgrading your Gentoo Linux kernel from your existing version to 5.17.0 or later.">
<meta name="author" content="speedie">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="content">
<h2>Guide: Upgrading your Gentoo kernel to 5.17.0</h2>
<h4>2022-03-23</h4>
<p>This guide will go over how to upgrade your kernel on Gentoo GNU/Linux to 5.17.0. If we check the <a href="https://packages.gentoo.org/packages/sys-kernel/gentoo-sources">sys-kernel/gentoo-sources</a> package we can see that 5.17.0 is now available as of 2022-03-23. However it is not stable so we will need to unmask it.</p>
<p>First, lets use the su command to change our user to root since many commands will require root permissions. You could use sudo/doas for each command but thats painful.</p>
<p>Now, one pretty unstable way to do this is to simply have <code>ACCEPT_KEYWORDS="~amd64"</code> in /etc/portage/make.conf but this is not stable and will ALWAYS allow “untested” packages to be installed on your system. I and others prefer this but its not something you should use if you care about a stable system.</p>
<p>So instead, lets individually unmask this package. Create /etc/portage/package.unmask and add <code>sys-kernel/gentoo-sources</code> to the file.</p>
<img src="../img/guide-01-img-1.png" alt="image">
<p>Now, your sources are likely outdated so we will need to update them. To do this, run <code>emerge --sync; emerge-webrsync</code></p>
<p>Once weve synced our repositories, lets try running <code>emerge --ask gentoo-sources</code>. If the version is 5.17.0 or later then youve correctly unmasked and synced your repositories.</p>
<img src="../img/guide-01-img-2.png" alt="image">
<p>Now emerge this and wait.</p>
<img src="../img/guide-01-img-3.png" alt="image">
<p>Once the emerge is complete its time to back up our kernel configuration. cd /usr/src/linux and <code>cp kernel /home/user</code> where <code>kernel</code> is the name of your kernel config and <code>user</code> is your user account. You dont have to back it up to this place but you need a backup of your kernel configuration unless you wanna configure a new one. Now <code>cd /home/user</code>.</p>
<img src="../img/guide-01-img-4.png" alt="image">
<p>Now that we have a backup of our previous configuration, its time to change our symlink. Run <code>eselect kernel list</code></p>
<p>Then run <code>eselect kernel set number</code> where <code>number</code> is the number of the kernel you will be using (should be 5.17.0)</p>
<img src="../img/guide-01-img-5.png" alt="image">
<p><code>cd /usr/src/linux; cp /home/user/kernel /usr/src/linux/.config; make olddefconfig</code>.</p>
<p>This string of commands will copy the kernel config to the 5.17.0 kernel directory. The make olddefconfig will use your old kernel and set the new settings newer kernels offer to the defaults. This should be fine unless you NEED to change them.</p>
<p>Once this is complete, make sure your /boot is mounted and then run <code>make -j$(nproc); make install</code> to compile the kernel and copy it over to your /boot partition.</p>
<p>Finally, lets make sure our bootloader can find it. For Grub, you need to <code>grub-mkconfig -o /boot/grub/grub.cfg</code> but if youre not using Grub then you will have to use <a href="https://searx.space">searx</a> to find out what to do.
<p>IMPORTANT: If you are using an initramfs then you need to create a new one. To do this you can use either genkernel or dracut. To use genkernel, run <code>genkernel --install --kernel-config=/usr/src/linux/.config initramfs</code>. Then just repeat the previous step.</p>
<p>Now youre done. Now reboot and make sure your kernel boots. If you cannot boot, you will have to do some troubleshooting..</p>
<p>Have a good day and good luck with Gentoo.</p>
</div>
</body>
<footer>
<?php include '../php/footer.php';?>
</footer>
</html>

223
articles/guide02.php Normal file
View file

@ -0,0 +1,223 @@
<!DOCTYPE html>
<html>
<head>
<?php include '../php/header.php';?>
<title>Guide: Installing Arch Linux (The chad way) </title>
<meta charset="UTF-8">
<meta name="description" content="In this short text-based guide I will be going over a full Arch Linux install. I will also be going over installing dwm, the window manager but you can of course install any window manager you want. I try to explain everything carefully so that anyone can follow this guide. I do not recommend installing Arch Linux with no Linux experience, however.">
<meta name="author" content="speedie">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="content">
<h2>Guide: Installing Arch Linux (The chad way)</h2>
<img src="../img/guide-02-img-1.png" alt="image">
<h4>2022-05-05</h4>
<p>This simple to follow guide for chads will be going over an Arch Linux installation. We will also be going through setting up a window manager and X environment so that you can actually use it.</p>
<p>Before you get started, I'd like to explain why you should install Arch Linux and I'd also like to warn you that you're going to do this at your own risk. I'm not responsible for any data loss caused by this guide.</p>
<p>Once you've taken a deep breath and understand the risks, let's get started with installing Arch Linux.</p>
<p>First step is to make sure you meet the requirements below.</p>
<ul>
<li><h5>64-bit machine with Intel/AMD processor.</h5></li>
<li><h5>USB drive with at least 1GB of storage.</h5></li>
<li><h5>Patience.</h5></li>
<li><h5>Reasonable amount of Linux experience.</h5></li>
<li><h5>Responsibility for your own actions. (You're installing, not me)</h5></li>
</ul>
<p>Before we get started, why would you want to install Arch Linux?</p>
<ul>
<li><h5>Pacman, Arch's package manager is better than most other distros.</h5></li>
<li><h5>Arch is a minimalist Linux distribution. This means you get to pick everything that get installed. This prevents you from having a bloated system.</h5></li>
<li><h5>"I use Arch btw" So you can brag about it.</h5></li>
</ul>
<p>I will be installing in a virtual machine but the steps are identical. Just a few minor differences that I will be explaining later on.</p>
<h4>Part 1: Creating the USB drive</h4>
<p>First, let's head over to the <a href="https://archlinux.org">Arch Linux</a> website and download the latest ISO.</p>
<img src="../img/guide-02-img-2.png" alt="image">
<p>If you've already got an ISO, you don't need to download a new once since we will be using the <code>pacstrap</code> command anyway which will download the latest packages.</p>
<p>You can choose how to download the ISO. I prefer using the torrent because:</p>
<ul>
<li><h5>It tends to be faster</li></h5>
<li><h5>It saves their bandwidth</li></h5>
</ul>
<p>If you don't have a torrent client set up, just download the ISO using your web browser. Arch Linux will not come to your house asking for money, don't worry.</p>
<p>Now that we have your ISO file it's time to write it to a USB drive.</p>
<p>If you're going to be installing in a VM then you can skip this part since you can boot directly off the ISO.</p>
<h3>Creating the USB drive (Windows)</h3>
<p>To create the USB drive on Windows, you can use the free software tool "Rufus".</p>
<img src="../img/guide-02-img-3.png" alt="image">
<p>(Not my image, I don't use Microhard Binbow$ which steals all my data)</p>
<p>Rufus looks something like this. You'll want to select the Arch Linux image. Then select whether your computer supports UEFI/BIOS.</p>
<p>Most modern machines released ~2012 or later should support UEFI. If you use an Intel Mac from 2007-2019 then you'll want UEFI (EFI). If you're unsure you can go with the default option (BIOS) since it supports both.</p>
<p>Then just write it. There are other ways to write on Windows such as using WSL with 'dd' which you can do or by using balenaEtcher (Which you shouldn't be using since it's not free software, it's open source spyware which is extremely bloated and uses Electron)</p>
<h3>Creating the USB drive (Linux/macOS)</h3>
<p>On Linux or macOS, writing the image is a lot easier. We're going to do this from the command line without installing any additional software using the <code>dd</code> command.</p>
<p>Make sure your Linux/macOS box is able to run commands as root (ie. sudo/doas). Finally, make sure you have the Arch Linux ISO.</p>
<p>To write it, fire up a terminal (I use st) and change your user to root using the <code>su</code> command.</p>
<p>Now, to check what devices are available on your system, run <code>lsblk</code>. Make note of the devices and make sure to not pick the wrong one. If you do then you WILL lose data.</p>
<p>I'm pretty sure macOS won't let you erase your drives due to SIP but this command is nicknamed 'disk destroyer' for a reason. PLEASE be careful when using it.</p>
<p>Now, <code>lsblk</code> should return something like this.</p>
<img src="../img/guide-02-img-4.png" alt="image">
<p>If you're on macOS, it's going to be diskXsY instead of sdXY.</p>
<p>Now, run the command <code>dd if=X of=Y</code> as root <b>where X is the path to your Arch Linux ISO and Y is your drive (For example, /dev/sdb).</b></p>
<p>Be extremely careful and hope you didn't enter the wrong drive.</p>
<p>If you did, then I feel slightly bad for you because you may have just lost your massive collection of anime porn.</p>
<p>Now, the <code>dd</code> command will by itself not output anything. But be patient and <b>do not close down your terminal</b>.</p>
<p>Once you can enter commands into your terminal and see your prompt, it's all done and you can reboot your computer.</p>
<h4>Part 1.5: Booting from the USB drive</h4>
<p>Now that we have a USB drive, we need to use it. Stick it into your soon-to-be Arch box and reboot/power it on. You'll need to get into your BIOS/UEFI. If you have enough computer knowledge to get into the BIOS then you can follow on with the guide. Simply boot from the USB. Else, simply go back to using Windows like a normie, this guide is for chads only.</p>
<p>Also while you're at it, take your computer to the Microsoft Store and ask them to fix it for you.</p>
<p>Now, let's continue.</p>
<h4>Part 2: Partitioning</h4>
<p>Now, let's install Arch Linux. Upon booting, you should see something like this</p>
<img src="../img/guide-02-img-5.png" alt="image">
<p>Simply press enter on the first option UNLESS you have specific needs.</p>
<p>The second option is good if you're blind and need speech.</p>
<p>The third option is good if you only have one USB port but need another for.. say a USB WIFI dongle. This will allow you to remove your USB drive and run the installer from your RAM.</p>
<img src="../img/guide-02-img-6.png" alt="image">
<p>Once it's done booting from the USB you'll see this fancy message. It tells you to RTFM but obviously since you're reading <i>my guide</i> you're too based for that.</p>
<p>It also tells you that there's a fancy """EASY JUST WERKS""" Arch installer but it's really just harder.</p>
<p>Now, run <code>lsblk</code> to see how many drives you have and their <b>NAME</b>.</p>
<img src="../img/guide-02-img-7.png" alt="image">
<p>From my image, we can tell that <i>sda</i> is my only drive. So this is the one we will be installing Arch Linux to.</p>
<p>Now, run <code>cfdisk /dev/sdX</code> where X is your drive NAME.</p>
<img src="../img/guide-02-img-8.png" alt="image">
<p>Then you'll get a few options.</p>
<ul>
<li><p>If your machine supports UEFI and you want to use GPT then pick GPT.</p></li>
<li><p>If your machine only supports BIOS or you want to use MBR then pick MBR.</p></li>
</ul>
<p>The other options are completely irrelevant for us.</p>
<img src="../img/guide-02-img-9.png" alt="image">
<p>If you picked MBR then it's going to look slightly different. You will have a <i>bootable</i> option which.. makes your partition bootable. You will want to have this selected for your boot partitions.</p>
<p>Other than that, you can follow along.</p>
<p>Press enter on [NEW] and enter how big your boot partition should be. This is where your kernel, initramfs and bootloader is going to be. For this guide we will be using Grub but there are other bootloaders that can be used with Arch Linux. You might choose to use the systemd bootloader since it comes with your init system.</p>
<img src="../img/guide-02-img-10.png" alt="image">
<p>A good size unless you'll have many kernels is 128MB. If you need more, I'd go up to 256MB. More than that is probably not necessary.</p>
<p>If you're using EFI then set the Type to 'EFI system'. Otherwise leave it as default.</p>
<p>Now it's time to add Swap. If you have 8GB or more RAM then you probably don't need swap. How much swap you wanna add is fully up to you. I prefer having no swap personally.</p>
<p>Again press enter on [NEW] and set the size to however much swap you have. I'd recommend double your RAM unless you have a lot of RAM in which case you probably don't need swap anyway.</p>
<p>The type for swap should be 'Linux swap'.</p>
<p>I won't be setting swap because I think it's useless.</p>
<p>Now unless you have specific needs such as having a separate /home partition or something, we can allocate the rest to our root partition.</p>
<p>The [Type] for your root partition should be 'Linux filesystem'. Once you're sure it all looks correct, you can [Write] the changes.</p>
<p>Here's what a setup might look like.</p>
<img src="../img/guide-02-img-11.png" alt="image">
<h4>Part 2.5: Creating file systems and mounting</h4>
<p>This part is really easy. We need to begin by again running <code>lsblk</code>.</p>
<img src="../img/guide-02-img-12.png" alt="image">
<p>In my case, /dev/sda1 is our /boot partition and /dev/sda2 is our root partition</p>
<p>Now, we need to decide what file system to use. I recommend either <i>ext4</i> or <i>BTRFS</i>. I will personally be going with BTRFS.</p>
<p>We also need a file system for our boot partition. I will be using <i>FAT32</i> aka <i>VFAT</i> for this.</p>
<ul>
<li><h5>To create a FAT32 file system, run <code>mkfs.vfat -F 32 /dev/sdXY</code> where X is your drive and Y is your partition. So in my case, <code>mkfs.vfat -F 32 /dev/sda1</code>.</h5></li>
<li><h5>To create a EXT4 file system, run <code>mkfs.ext4 /dev/sdXY</code> where X is your drive and Y is your partition. So in my case, <code>mkfs.ext4 /dev/sda2</code>.</h5></li>
<li><h5>To create a BTRFS file system, run <code>mkfs.btrfs -f /dev/sdXY</code> where X is your drive and Y is your partition. So in my case, <code>mkfs.btrfs -f /dev/sda2</code>.</h5></li>
</ul>
<p>Output of these commands should be something like this:</p>
<img src="../img/guide-02-img-13.png" alt="image">
<p>Now, if you created a swap partition, we'll need to set that up as well.</p>
<h5>To create a swap file system, run <code>mkfs.swap /dev/sdXY</code> where X is your drive and Y is your partition.</h5>
<p>That wasn't so hard was it? We just created Arch Linux partitions and set them up.</p>
<p>With that done, let's mount our drives so we can begin actually installing Arch.</p>
<p>To mount your root partition, type <code>mount /dev/sdXY /mnt</code> where X is your drive and Y is your partition.</p>
<p>For EFI: Then, to mount your /boot partition, type <code>mkdir /mnt ; mount /dev/sdXY /mnt/boot</code> where X is your drive and Y is your partition. This will create /boot and mount our boot partition to it.</p>
<p>If a swap partition was created, type <code>swapon /dev/sdXY /dev/sdXY</code> where X is your drive and Y is your partition.</p>
<p>Congratulations, we're done mounting and partitioning your drives. Now, we just need to make sure we have a connection to the internet so we can download our packages.</p>
<h4>Part 2.5: Connecting to the internetz</h4>
<p> The internetz are useful for two things; Installing Arch Linux and bragging about having installed Arch Linux</p>
<p>If your computer is connected using Ethernet, it should <i>just work</i> with absolutely no setup required. If you are using WIFI then it will not work out of the box.</p>
<p>To set up WIFI on your Arch box, type <code>iwctl station list</code>. Make note of the output. For example, it may be <code>wlan0</code> or <code>wlan1</code>.</p>
<p>Once you're sure which device it is, type <code>iwctl station 'station' connect SSID</code> where <code>station</code> is the WIFI device we got earlier and SSID is the name of your WIFI network.</p>
<p>Press enter and type in the password your network has. If it doesn't ask you for a password then it probably doesn't need one or you entered the wrong SSID.</p>
<h4>Part 3: Installing base system</h4>
<p>Now we're connected to the internet. How fancy is that? To actually use this, we need to install some packages. This would normally be pretty painful but Arch Linux has a command called <code>pacstrap</code> which will basically do the entire process for us. Arch Linux also offers a few bundles of packages like <code>base</code> and <code>base-devel</code> which contain essential packages.</p>
<p>Now, to install packages to our Arch system, we'll need to decide what packages to use. <code>base</code> is basically essential. It contains the base Arch Linux system. Then, if you're going to be using development tools (Required for compiling dwm which we'll do later on) then you'll also want to install <code>base-devel</code>. Keep in mind this also comes with Sudo which you might not want (I certainly don't). But these can later easily be removed using <code>pacman -R <package></code></p>
<p>Now, we need a kernel. The Linux kernel is obviously what we want since it's Arch <i>Linux</i>. There are many different variations of the Linux kernel. You can run <code>pacman -Ss linux</code> to see all that are available in the Arch Linux repositories. Here is a small list of them.</p>
<ul>
<li><h5>linux</h5></li>
<h5>The standard Arch Linux kernel.</h5>
<li><h5>linux-hardened</h5></li>
<h5>Kernel optimized for Security.</h5>
<li><h5>linux-zen</h5></li>
<h5>Linux kernel optimized for speed.</h5>
</ul>
<img src="../img/guide-02-img-15.png" alt="image">
<p>If your hardware configuration requires proprietary blobs then you'll also wanna add the <code>linux-firmware</code> package.</p>
<p>If you're going to use WIFI then you'll want to add <code>iwd</code> to your list. There are other ways to manage WIFI but <code>iwd</code> is the one we used during Part 2.5 and it's also the easiest to set up.</p>
<p>If you're going to use Ethernet, you'll need some way to manage networks. I tend to just install <code>dhcpcd</code> though but you can use <code>NetworkManager</code> or something if you want</p>
<p>You'll also need some way to edit text. The <code>base</code> package might come with Nano or something but Nano is unusable so we're gonna install <code>vim</code> as well.</p>
<p>You can use something else like <code>nano</code> or <code>pico</code> to edit your text but they're terrible text editors that only people who wanna make their life harder use.</p>
<p>Finally, we'll need our bootloader which for this guide will be <code>Grub</code>. If you're going to be dual-booting then you'll also want the <code>os-prober</code> package. If you're on an EFI system then you'll want the <code>efibootmgr</code> package.</p>
<h4>Now, our package list looks like this: <code>base base-devel linux linux-firmware dhcpcd grub efibootmgr vim</code></h4>.
<h4>And the command we wanna run is: <code>pacstrap /mnt base base-devel linux linux-firmware dhcpcd grub efibootmgr vim</code>.</h4>.
<img src="../img/guide-02-img-14.png" alt="image">
<p>Wait unless the command finishes installing packages to your new root</p>
<h4>Part 3.5: Creating an fstab</h4>
<p>Arch Linux requires an fstab to boot. An fstab is really just a file with a list of partitions to mount and how to mount them.</p>
<p>Writing one manually isn't hard but Arch Linux made it easier by including a nice command called <code>genfstab</code>.</p>
<p>All we need to do is run <code>genfstab -U /mnt > /mnt/etc/fstab</code></p>
<p>The <code>-U</code> flag uses UUIDs instead of the disk identifier. This is important to make sure our fstab is always correct.</p>
<p>The <code>></code> points it to /mnt/etc/fstab.</p>
<p>Now, finally we need to chroot into our new root. Do this by running <code>arch-chroot /mnt</code>.</p>
<h4>Part 4: Setting time zone and locale</h4>
<p>Now that we're in our new root we need to set our timezone and then locale.</p>
<p>First, run <code>ls /usr/share/zoneinfo</code></p>
<p>Then run that previous command but with your region. In my case Europe. <code>/Europe</code></p>
<p>Finally, run <code>ln -sf /usr/share/zoneinfo/Region/City /etc/localtime</code> where Region is.. your region (for example Europe) and where City is your city. (for example Stockholm).</p>
<p>Now, you'll want to edit /etc/locale.gen. Uncomment the locale you need. Edit it using your editor of choice, for example <code>vim /etc/locale.gen</code>. For en_US, uncomment <code>en_US.UTF-8 UTF-8</code>. You can use </code>/</code> to quickly find text in Vim. For example, <code>sv_SE.UTF-8 UTF-8</code> would be the locale for Sweden.</p>
<h4>Part 4.5: Setting your hostname</h4>
<p>Now we need to set our hostname. To do this, run the following command. Replace <code>archbox</code> with what you want your hostname to be. <code>echo "archbox" > /etc/hostname</code>.
<h4>Part 5: Installing a bootloader</h4>
<p>In order to boot Arch Linux after we're done installing, we need to install a bootloader. If you followed this guide exactly as it's written you should have Grub as your bootloader.</p>
<h5>For GPT users</h5>
<p><code>grub-install --target=x86_64-efi --efi-directory=/boot ; grub-mkconfig -o /boot/grub/grub.cfg</code></p>
<h5>For MBR users</h5>
<p><code>grub-install /dev/sdX</code> where X is your drive.</p>
<h4>Part 5.5: Enabling services and setting your root password</h4>
<p>Enable the services. If you installed dhcpcd, run <code>systemctl enable dhcpcd</code>. If you installed iwd, run <code>systemctl enable iwd</code>. Now, the final part before we can reboot and begin setting up our Arch Linux box. Setting the root password. By default, the root password isn't set so you can't actually log in. You can set it yourself by running the <code>passwd</code> command. Once you've set the password, it's time to reboot. To do this, simply type <code>exit</code> to exit the chroot environment and then <code>reboot</code> to reboot the system.</p>
<h4>Part 6: Setting up users and permissions</h4>
<img src="../img/guide-02-img-16.png" alt="image">
<p>Now that we've got a base Arch Linux install set up, log in as <code>root</code> with the password you set earlier.</p>
<p>Once you're logged in, run <code>useradd -mG wheel,audio,video,users user</code> where user is your user name. I will name my user 'speedie'.</p>
<p>The <code>-m</code> flag creates a home directory for the user. The <code>-G</code> flag will add it to the groups. wheel is the group that we will allow <code>sudo</code> or <code>doas</code> to give root access to. <code>audio</code> will allow us to use ALSA (Advanced Linux Sound Architecture) for audio. <code>video</code> will allow us to start an X session. <code>users</code> is a group all users should be in.</p>
<p>Now let's set his/her password by running <code>passwd user</code> where user is the account we created. Once you have access to this account you can set the <code>root</code> account password to random text if you want security.</p>
<p>If you wanna use <code>sudo</code>, you can do so by editing <code>/etc/sudoers</code> using your favorite editor.</p>
<img src="../img/guide-02-img-17.png" alt="image">
<p>Above is an example of how to set up <code>sudo</code>
<p>If you installed <code>base-devel</code> then <code>sudo</code>is already installed. Otherwise you can install it if you want.</p>
<p>I will be using <code>doas</code> instead however because <code>sudo</code> is more bloated than it needs to be.</p>
<p>If you wanna use <code>doas</code>, you can install it using <code>pacman -Sy doas</code>.</p>
<p>To set up <code>doas</code>, simply run <code>echo "permit :wheel" > /etc/doas.conf</code> or alternatively <code>echo "permit nopass :wheel" > /etc/doas.conf</code> if you don't want to enter your password every time you try to run a command as root. It's not very secure but I personally prefer it.</p>
<p>Now that we have set up our account and permissions, run <code>exit</code> and log in with your new account.</p>
<h4>Part 7: Setting up dwm</h4>
<p>Let's set up Xorg and then the window manager which will be <a href="https://dwm.suckless.org">dwm</a>. Start by installing Git. Do this by running <code>pacman -S git libXinerama</code>. libXinerama will be used to compile dwm with support for multiple monitors. We also need libXft but we will be installing libXft-bgra since otherwise dwm will crash if it sees a color emoji.</p>
<p>Run <code>cd</code> to change directory to ~. Now we can <code>mkdir -pv .config</code> and <code>cd .config</code>.<p>
<p>Before we can install dwm, we need libXft. To do this, run the following command <code>git clone https://aur.archlinux.org/libxft-bgra ; cd libxft-bgra ; makepkg -i</code>. This will install libXft-bgra. Now you can go ahead and cd back into ~/.config.</p>
<p>If you've already got a build of dwm, go ahead and clone that instead. If you don't, <code>git clone https://git.suckless.org/dwm ; cd dwm</code>. Now that we're inside the dwm source code, simply run <code>make clean install</code> as root. This should install dwm. If you're using my build you also need <code>imlib2</code> and <code>harfbuzz</code>.</p>
<p>You'll also likely want <code>dmenu</code> for our run launcher and <code>st</code> for our terminal. Otherwise you'll need to edit the dwm source code.</p>
<p>To install dmenu, <code>cd ~/.config ; git clone https://git.suckless.org/dmenu ; cd dmenu ; doas make clean install</code>.</p>
<p>To install st, <code>cd ~/.config ; git clone https://git.suckless.org/st ; cd st ; doas make clean install</code>.</p>
<h4>Part 8: Setting up Xorg</h4>
<p>The 8th and final part of this guide; setting up Xorg.</p>
<p>First, run <code>pacman -S xorg-server xorg-xinit xf86-input-libinput</code> as root. This will install our server, xinit and xf86-input-libinput necessary to use our keyboard and mouse with Xorg. Then also run <code>pacman -Ss xf86-video</code> as root and look at the output. You don't technically need xorg-xinit, you can use sx which I covered in my RSS post. However it's not very good for new users and not very well documented so I suggest you use xinit.</p>
<img src="guide-02-img-18.png" alt="image">
<p>These are display drivers. You'll want to install the one you need. If you're in a VM like me, it's <code>xf86-video-vmware</code> for VirtualBox or VMware and <code>xf86-video-qxl</code> for QEMU/KVM. These are correct for everyone except <strong>nvidia</strong> users who will want the <code>nvidia</code> package instead. Run it for yourself and install the driver you need.</p>
<p>We need to set up <code>xclip</code> for our clipboard and <code>picom</code> for our compositor. You can also choose to install <code>xorg-xrdb</code> if your software supports .Xresources however I will not be covering that in this guide.</p>
<p>You can do this by running <code>pacman -S xclip picom</code> as root.</p>
<p>Finally, let's edit our <code>.xinitrc</code> file. This file will run every time you run the command <code>startx</code>.</p>
<p><code>vim ~/.xinitrc</code></p>
<p>Now add these three lines to the file:</p>
<h5>picom</h5>
<h5>xclip</h5>
<h5>dwm</h5>
<p>Then save the file using ':wq' and run <code>startx</code>. That should be everything. If you did it correctly you should be in dwm. If it fails to start then you're probably missing fonts. I suggest installing <code>terminus-font</code>. It's a nice font.</p>
<img src="../img/guide-02-img-19.png" alt="image">
<p>Now you can install <code>maim</code> and <code>neofetch</code> so you can brag about having installed Arch on r/unixporn or whatever. Thanks for reading this guide, I hope it helped you set up Arch Linux. Have a good day!</p>
</div>
</body>
<footer>
<?php include '../php/footer.php';?>
</footer>
</html>

38
articles/guide03.php Normal file
View file

@ -0,0 +1,38 @@
<!DOCTYPE html>
<html>
<head>
<?php include '../php/header.php';?>
<title>Guide: Upgrading Suckless software (gigachad edition) </title>
<meta charset="UTF-8">
<meta name="description" content="In this guide I tell you how to upgrade Suckless software like dwm, st, dmenu, surf, etc. to a new version without starting from scratch.">
<meta name="author" content="speedie">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="content">
<h2>Guide: Upgrading Suckless software (gigachad edition)</h2>
<h4>2022-05-09</h4>
<p>In this guide I tell you how to upgrade Suckless software like dwm, st, dmenu, surf and more to a newer version without abandoning your fork and starting from scratch.</p>
<p>I'm not sure if I'm the only one who's used this method but it works great. It even works if you have 30+ patches like I had with my build of dwm. I was still able to easily upgrade from 6.2 to 6.3 in around 10 minutes.</p>
<p>First, create a directory anywhere on your system. I created mine in my home directory. Then open a web browser and navigate over to the <a href="https://suckless.org">suckless</a> website.</p>
<p>Then select the software you're using. For this guide I will be using dwm. Now copy the link to the latest tarball and open up a terminal and change directory into the new folder.</p>
<p>Download the latest tarball using the <code>wget</code> command. Now download the tarball for the release <i>your</i> build of dwm is on. You can see this by looking at <code>config.mk</code>. It has a version variable at the top which is the version of the software you're on.</p>
<img src="../img/guide-03-img-1.png" alt="image">
<p>Now, you can unpack both of these tarballs using <code>tar -xpvf tarball</code>.</p>
<img src="../img/guide-03-img-2.png" alt="image">
<p>If you did it correctly you should have two folders with two different versions.</p>
<p>In my case, there's <code>dwm-6.2</code> and <code>dwm-6.3</code>. Now, what we're going to do is create a patch that we can apply to our riced fork of (in this case) dwm.</p>
<p>In this case you can do this by running <code>diff -up dwm-6.2 dwm-6.3 > dwm-patch.diff</code>. Obviously change the names if yours are different. If we run this command we should get a patch. We can apply this to any dwm build which is exactly what we're going to do.</p>
<p>Copy the .diff to your dwm/st/whatever source code folder and then change directory into it.</p>
<img src="../img/guide-03-img-3.png" alt="image">
<p>Now, run <code>patch < patch1.diff</code> where patch1.diff is your patch. If you're on a relatively clean build, it should apply just fine. If it doesn't, you'll want to manually add in the chunks. If you're not familiar with patching then it may be slightly difficult for you. What you'll want to do is look at the .rej files and copy them into the regular files. Once you're sure everything looks good and it patched properly then you can go ahead and <code>make clean install</code> as root.</p>
<img src="../img/guide-03-img-4.png" alt="image">
<p>As you can see, it compiled just fine and if you look at the <code>config.mk</code> you'll see that we've suck-less-ly upgraded our dwm version from 6.2 to 6.3. Again, this can be applied to any of their software.</p>
<p>Hope this guide helped you out. If it did, feel free to share it around or <a href="donate.html">donate some Monero</a>.</p>
<p>Have a great day suckless chad!</p>
</div>
</body>
<footer>
<?php include '../php/footer.php';?>
</footer>
</html>

23
guides.php Normal file
View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<?php include 'php/header.php';?>
<title>Guides </title>
<meta charset="UTF-8">
<meta name="description" content="This page has a list of all my text guides. Some may be out of date but they should be marked as such.">
<meta name="author" content="speedie">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="content">
<h2>Guides</h2>
<p>These are text guides I've written.</p>
<h5><a href="articles/guide03.php">Guide: Upgrading Suckless software</a>, written 2022-05-09</h5>
<h5><a href="articles/guide02.php">Guide: Installing Arch Linux</a>, written 2022-05-05</h5>
<h5><a href="articles/guide01.php">Guide: Upgrading your Gentoo kernel to 5.17.0 (and later)</a>, written 2022-03-23</h5>
</div>
</body>
<footer>
<?php include 'php/footer.php';?>
</footer>
</html>

BIN
img/guide-01-img-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

BIN
img/guide-01-img-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
img/guide-01-img-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
img/guide-01-img-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
img/guide-01-img-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
img/guide-02-img-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 KiB

BIN
img/guide-02-img-10.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
img/guide-02-img-11.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
img/guide-02-img-12.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
img/guide-02-img-13.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
img/guide-02-img-14.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 206 KiB

BIN
img/guide-02-img-15.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

BIN
img/guide-02-img-16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

BIN
img/guide-02-img-17.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
img/guide-02-img-18.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
img/guide-02-img-19.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

BIN
img/guide-02-img-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

BIN
img/guide-02-img-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
img/guide-02-img-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

BIN
img/guide-02-img-5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
img/guide-02-img-6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
img/guide-02-img-7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
img/guide-02-img-8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
img/guide-02-img-9.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
img/guide-03-img-1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
img/guide-03-img-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

BIN
img/guide-03-img-3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

BIN
img/guide-03-img-4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

View file

@ -10,18 +10,20 @@
</head>
<body>
<div class="content">
<h2>Notice: This page is <strong>completely new</strong> and because of this, expect missing images, CSS, and pages or links that don't work. Please report such issues, but do expect them.</h2>
<h1>Hello world, I'm speedie!</h1>
<p>Hello world, I'm speedie, a free software enthusiast.</p>
<p>The website you stumbled upon is a personal blog, and all opinions are all my own, honest opinions. It's not just a blog, however my blog is the main part of this website. Feel free to take a look around!</p>
<h2>About me</h2>
<p>I'm go by the online name 'speedie'. I live in Sweden and have an interest in technology and free software. I work on small programming projects sometimes but I don't consider myself a serious programmer, I just write code sometimes on the side to get the most of my technology and do things efficiently.</p>
<p>I live in Sweden and have an interest in technology and free software. I'm not <em>really</em> a programmer, I just write code sometimes to get the most of my technology and do things efficiently.</p>
<p>I work on projects sometimes such as:</p>
<ul>
<li><a href="/projects/speedwm.php">speedwm</a></li>
<li><a href="/projects/libspeedwm.php">libspeedwm</a></li>
<li><a href="/projects/fontctrl.php">fontctrl</a></li>
<li><a href="/projects/elevendebloater.php">elevendebloater</a></li>
<li><a href="/projects/iron.php">iron</a></li>
<li><a href="/projects/rchat.php">rchat</a></li>
<li><a href="/projects/elevendebloater.php">elevendebloater</a></li>
<li><a href="/projects/project081.php">Project 081</a></li>
</ul>
<p>I've also preserved old (previously) rare channels and other media for the Wii through a now dead community called 'Forwarder Factory' although nowadays I'm not really doing Wii things anymore. See the links below for that.</p>
@ -46,7 +48,7 @@
<p>List of text guides I have written. Most of them are about various GNU/Linux topics.</p>
<li><a href="projects.php">Projects</a></li>
<p>My projects. I am not really a programmer however I do work on some small projects which they can be found here.</p>
<li><a href="overlay.php">Overlay</a></li>
<li><a href="projects/overlay.php">Overlay</a></li>
<p>I maintain a Gentoo overlay, that is an unofficial Gentoo repository with custom packages written by myself which extend the packages you can install on a Gentoo system.</p>
</ul>
<h2>About this page</h2>

12
overlay.xml Normal file
View file

@ -0,0 +1,12 @@
<repositories version="1.1" encoding="unicode">
<repo quality="experimental" priority="50">
<name>speedie-overlay</name>
<description>speedie's Gentoo GNU/Linux overlay</description>
<homepage>https://codeberg.org/speedie/speedie-overlay</homepage>
<owner>
<email>speedie@duck.com</email>
<name>speedie</name>
</owner>
<source type="git">https://codeberg.org/speedie/speedie-overlay.git</source>
</repo>
</repositories>

View file

@ -11,13 +11,40 @@
<body>
<div class="content">
<h1>Projects</h1>
<div class="pjlist">
<div class="iron">
<h3>iron</h3>
<p>Here's a list of most software projects I've worked on/currently work on or people still use.</p>
<p>Note that it is not a full list, for a full list see <a href="https://github.com/speediegq">my GitHub</a> and <a href="https://codeberg.org/speedie">my Codeberg</a>.</p>
<ul>
<li>speedwm</li>
<p>speedwm is a window manager forked from suckless.org's dwm or dynamic window manager. Unlike dwm, speedwm tries to be minimal just like dwm but also has functionality and aesthetics as a goal. It is also much more minimal than other window managers like i3-gaps while offering many more features.</p>
<p><a href="projects/speedwm.php">More information</a></p>
<li>libspeedwm</li>
<p>libspeedwm is a minimal program for interacting with speedwm through the shell. It allows you to run signals but also perform actions. It is written in C because speedwm itself is written in C. It only has one dependency; libX11 used to set the root window name.</p>
<p><a href="projects/libspeedwm.php">More information</a></p>
<li>speedwm-extras</li>
<p>speedwm-extras is a package of scripts that were originally part of speedwm. In an attempt to follow the unix philosophy further, these scripts eventually got their own repository. speedwm-extras contains scripts for volume, wifi, bluetooth, alt+tab, and more.</p>
<p><a href="https://codeberg.org/speedie/speedwm-extras">More information</a></p>
<li>iron</li>
<p>iron is a minimal, customizable, hackable rautafarmi textboard client for GNU/Linux written in Bash. iron is the successor to rchat, and is the first client to support the new, faster, JSON rautafarmi API.</p>
<a href="/iron.php">About iron</a>
</div>
</div>
<p><a href="projects/iron.php">More information</a></p>
<li>rchat</li>
<p>rchat is a discontinued, minimal, customizable, hackable rautafarmi textboard client for GNU/Linux written in Bash. Unlike iron, rchat only supports the old messages.txt method.</p>
<p><a href="projects/rchat.php">More information</a></p>
</ul>
<ul>
<li>fontctrl</li>
<p>fontctrl is a minimal, symlink based font manager for GNU/Linux. It handles installation, removal, and management of fonts, keeping your custom fonts easy to install, remove and manage.</p>
<p><a href="projects/fontctrl.php">More information</a></p>
</ul>
<ul>
<li>elevendebloater</li>
<p>Elevendebloater is a minimal, hackable free software Windows 10 and 11 debloater. It removes most bloatware Microsoft added to the new Windows 11 operating system through winget.</p>
<p><a href="projects/elevendebloater.php">More information</a></p>
</ul>
<ul>
<li>Project 081</li>
<p>Project 081 is a modification of Apple's Mac OS X 10.4 Tiger operating system adding better hardware support for the unofficially supported but mostly functional Late 2007 and Early 2008 Apple Macs. </p>
<p><a href="projects/project081.php">More information</a></p>
</ul>
</div>
</body>
<footer>

View file

@ -17,6 +17,11 @@
<h2>What are the downsides of libspeedwm?</h2>
<p>This does come with a few downsides though. First is that libspeedwm will be a dependency for your script/project. It is an external dependency and is not bundled with speedwm itself.</p>
<p>Secondly, if the user is on an old speedwm version, the libspeedwm version must also be old or scripts will break just the same as using signals normally. This comes with a huge problem: there are bugs in the old libspeedwm version.</p>
<h2>Usage</h2>
<p>See <code>libspeedwm --help</code>
<h2>Download</h2>
<a href="https://codeberg.org/attachments/6a069fd6-a407-4318-a170-afb0a38062c5">libspeedwm-1.4.tar.gz</a>
<p>The latest and previous releases of libspeedwm can be found <a href="https://codeberg.org/speedie/libspeedwm">here</a></p>
</div>
</body>
<footer>

View file

@ -13,21 +13,23 @@
<h2>speedie's gentoo overlay</h2>
<p>Since I maintain forks of software as well as some of my own, I decided to create a Gentoo overlay so that you can install my dotfiles and software using <code>portage</code>.</p>
<p>As of now, this requires <code>layman</code>. This can be installed using <code>portage</code> as well.</p>
<h3>📎What is an overlay?</h3>
<h2>What is an overlay?</h2>
<p>An overlay is pretty much a third party Gentoo repository with other ebuilds not normally found in the regular Gentoo repositories. Often it's the only way to install software other than compiling from source yourself.</p>
<h3>📦What packages does this overlay offer?</h3>
<h2>What packages does this overlay offer?</h2>
<p>See 'Ebuild list' further down this page.</p>
<h3>🐧What distributions can I install this on?</h3>
<h2>What distributions can I install this on?</h2>
<p>Gentoo is the only distro I've tested this on. It might work on other Gentoo based distributions that use the <code>portage</code> package manager but it will NOT work on Arch, Debian or other distros that are not Gentoo based.</p>
<h3>How can I add this overlay?</h3>
<h2>How can I add this overlay?</h2>
<p>Using either eselect-repository or layman. Layman is no longer maintained so I do not recommend you use it.</p>
<p>For layman: <code>layman -o https://speedie.gq/overlay.xml -f -a speedie-overlay</code></p>
<p>For eselect-repository: <code>eselect-repository --add speedie-overlay git https://speedie.gq/overlay.xml</code></p>
<p>To sync with layman: <code>layman -s speedie-overlay</code></p>
<p>To sync with eselect-repository: <code>emaint -r speedie-overlay sync</code></p>
<h3>🔨Ebuild list</h3>
<h2>Ebuild list</h2>
<p>See the repository for a full list.</p>
<h3>💰Support me</h3>
<h2>Where are the ebuilds hosted?</h2>
<p>The ebuilds are all hosted on <a href="https://codeberg.org/speedie/speedie-overlay">my Codeberg repository</a>.</p>
<h2>Support me</h2>
<p>If this overlay was useful, consider donating.</p>
<p>XMR: <code>43yssh8scu2PxtnrumQEjJ4zcqc2ND87zWipRUb9mkufAb6Zn1mcP8f7zAkopNSdymHWMkEU43nJSgiBVQvW5Y8zEdSqa3W</code></p>
</div>

27
projects/spde.php Normal file
View file

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html>
<head>
<?php include '../php/header.php';?>
<title>spDE</title>
<meta charset="UTF-8">
<meta name="description" content="spDE is a Gentoo metapackage which installs all software I use on my computers. It comes with USE flags so you can disable what you don't need/use. After installing this package you should end up with a system fairly close to mine. It can be compared to a post install script like LARBS but cleaner because it uses your existing package manager to install the system.">
<meta name="author" content="speedie">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="content">
<h1>spDE</h1>
<p>spDE is a Gentoo metapackage which installs all software I use on my computers. It comes with USE flags so you can disable what you don't need/use. After installing this package you should end up with a system fairly close to mine. It can be compared to a post install script like LARBS but cleaner because it uses your existing package manager to install the system.</p>
<p>It is a "sequel" to the now dead original spDE project, which like LARBS was a post-install script which installs my configuration files and packages. Problem with that approach is that it is a lot of work to maintain and there are way too many points of failure. Not to mention it is hard to reverse the process.</p>
<p>I started creating this ebuild after all my builds of software got ebuilds to save time setting up a Gentoo system. It also takes less work to maintain an ebuild because all you need to do is add the programs to the DEPEND variable.</p>
<h2>What packages does spDE install?</h2>
<p>Read the <code>DEPEND</code> variable in <a href="https://codeberg.org/speedie/speedie-overlay/raw/commit/fe101174cfb5d47c8cb331820f68cd291fe1e638/x11-misc/spde/spde-9999.ebuild">the spDE ebuild.</a></p>
<h2>How do I install spDE?</h2>
<p>First off, <a href="overlay.php">add my overlay</a>. Then simply run <code>emerge x11-misc/spde</code> as root. Apply required USE changes using <code>dispatch-conf</code> and then <code>U (use)</code>.</p>
<p>Then simply <code>startx /usr/bin/speedwm_run</code> provided speedwm is used.</p>
</div>
</body>
<footer>
<?php include '../php/footer.php';?>
</footer>
</html>