commit 7d00c8350c3b1d4e5701fd25af93ebfd11fec7e2
parent e8e07c1273b41f6c011053cd300148396214f351
Author: Jack Sangdahl <jack@pngu.org>
Date: Fri, 20 Feb 2026 12:42:56 -0700
Add Gentook Desktop page & related data
Also...
- Update .gitignore
- Add a couple additional links to content.html & index.html
- Tidy up template
Diffstat:
9 files changed, 386 insertions(+), 21 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1 +1,2 @@
staging
+.DS_Store
diff --git a/content.html b/content.html
@@ -11,8 +11,10 @@
<h3>Content & Postings</h3>
<h4>Computers</h4>
<ul>
- <li><a href="https://git.pngu.org/dots/commit/?h=pluto" target="_blank">Gentoo Desktop</a></li>
- <li><a href="https://git.pngu.org/dots/commit/?h=kepler" target="_blank">Artix Laptop</a></li>
+ <li>
+ <a href="gentoo_desktop.html">Gentoo Desktop</a>
+ </li>
+ <li><a href="artix_laptop.html">Artix Laptop</a></li>
<li><a href="https://git.pngu.org/dots/commit/?h=xena" target="_blank">macOS Laptop</a></li>
<li><a href="https://git.pngu.org/server">Debian Server</a></li>
<li><a href="programs.html">Programs & Utilities</a></li>
@@ -22,6 +24,7 @@
<ul>
<li>QMK Firmware</li>
<li><a href="keyboard_design.html">Designs</a></li>
+ <li>Collection (some of...)</li>
</ul>
<h4>Projects</h4>
<ul>
diff --git a/data/desktop.jpg b/data/desktop.jpg
Binary files differ.
diff --git a/data/desktop_lscpu b/data/desktop_lscpu
@@ -0,0 +1,56 @@
+Architecture: x86_64
+ CPU op-mode(s): 32-bit, 64-bit
+ Address sizes: 43 bits physical, 48 bits virtual
+ Byte Order: Little Endian
+CPU(s): 16
+ On-line CPU(s) list: 0-15
+Vendor ID: AuthenticAMD
+ Model name: AMD Ryzen 7 3700X 8-Core Processor
+ CPU family: 23
+ Model: 113
+ Thread(s) per core: 2
+ Core(s) per socket: 8
+ Socket(s): 1
+ Stepping: 0
+ Frequency boost: enabled
+ CPU(s) scaling MHz: 51%
+ CPU max MHz: 4426.1709
+ CPU min MHz: 2200.0000
+ BogoMIPS: 7189.22
+ Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtsc
+ p lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 mo
+ vbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce to
+ poext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 c
+ qm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsave
+ erptr rdpru wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vm
+ load vgif v_spec_ctrl umip rdpid overflow_recov succor smca sev sev_es
+Virtualization features:
+ Virtualization: AMD-V
+Caches (sum of all):
+ L1d: 256 KiB (8 instances)
+ L1i: 256 KiB (8 instances)
+ L2: 4 MiB (8 instances)
+ L3: 32 MiB (2 instances)
+NUMA:
+ NUMA node(s): 1
+ NUMA node0 CPU(s): 0-15
+Vulnerabilities:
+ Gather data sampling: Not affected
+ Ghostwrite: Not affected
+ Indirect target selection: Not affected
+ Itlb multihit: Not affected
+ L1tf: Not affected
+ Mds: Not affected
+ Meltdown: Not affected
+ Mmio stale data: Not affected
+ Old microcode: Not affected
+ Reg file data sampling: Not affected
+ Retbleed: Mitigation; untrained return thunk; SMT enabled with STIBP protection
+ Spec rstack overflow: Mitigation; Safe RET
+ Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
+ Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
+ Spectre v2: Mitigation; Retpolines; IBPB conditional; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
+ Srbds: Not affected
+ Tsa: Not affected
+ Tsx async abort: Not affected
+ Vmscape: Mitigation; IBPB before exit to userspace
diff --git a/data/desktop_lspci b/data/desktop_lspci
@@ -0,0 +1,107 @@
+00:00.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Root Complex
+00:00.2 IOMMU: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse IOMMU
+00:01.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:01.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Device 1453
+ Kernel driver in use: pcieport
+00:01.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Device 1453
+ Kernel driver in use: pcieport
+00:02.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:03.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:03.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse GPP Bridge
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Device 1453
+ Kernel driver in use: pcieport
+00:04.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:05.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:07.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:07.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
+ Kernel driver in use: pcieport
+00:08.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Host Bridge
+00:08.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Internal PCIe GPP Bridge 0 to bus[E:B]
+ Kernel driver in use: pcieport
+00:14.0 SMBus: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller (rev 61)
+ Subsystem: Gigabyte Technology Co., Ltd Device 5001
+ Kernel modules: i2c_piix4, sp5100_tco
+00:14.3 ISA bridge: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge (rev 51)
+ Subsystem: Gigabyte Technology Co., Ltd Device 5001
+00:18.0 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 0
+00:18.1 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 1
+00:18.2 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 2
+00:18.3 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 3
+ Kernel driver in use: k10temp
+ Kernel modules: k10temp
+00:18.4 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 4
+00:18.5 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 5
+00:18.6 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 6
+00:18.7 Host bridge: Advanced Micro Devices, Inc. [AMD] Matisse/Vermeer Data Fabric: Device 18h; Function 7
+01:00.0 Non-Volatile memory controller: Sandisk Corp SanDisk Extreme Pro / WD Black SN750 / PC SN730 / Red SN700 NVMe SSD
+ Subsystem: Sandisk Corp SanDisk Extreme Pro / WD Black SN750 / PC SN730 / Red SN700 NVMe SSD
+ Kernel driver in use: nvme
+ Kernel modules: nvme
+02:00.0 USB controller: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset USB 3.1 XHCI Controller
+ Subsystem: ASMedia Technology Inc. ASM1042A USB 3.0 Host Controller
+ Kernel driver in use: xhci_hcd
+02:00.1 SATA controller: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset SATA Controller
+ Subsystem: ASMedia Technology Inc. ASM1062 Serial ATA Controller
+ Kernel driver in use: ahci
+02:00.2 PCI bridge: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Upstream Port
+ Subsystem: ASMedia Technology Inc. Device 0201
+ Kernel driver in use: pcieport
+03:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Downstream Port
+ Subsystem: ASMedia Technology Inc. Device 3308
+ Kernel driver in use: pcieport
+03:04.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Downstream Port
+ Subsystem: ASMedia Technology Inc. Device 3308
+ Kernel driver in use: pcieport
+03:08.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Downstream Port
+ Subsystem: ASMedia Technology Inc. Device 3308
+ Kernel driver in use: pcieport
+03:09.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] 500 Series Chipset Switch Downstream Port
+ Subsystem: ASMedia Technology Inc. Device 3308
+ Kernel driver in use: pcieport
+05:00.0 Non-Volatile memory controller: Intel Corporation SSD 660P Series (rev 03)
+ Subsystem: Intel Corporation Device 390d
+ Kernel driver in use: nvme
+ Kernel modules: nvme
+06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
+ DeviceName: RTL8111E Giga LAN
+ Subsystem: Gigabyte Technology Co., Ltd Device e000
+ Kernel driver in use: r8169
+ Kernel modules: r8169
+07:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
+ Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
+ Kernel driver in use: iwlwifi
+ Kernel modules: iwlwifi
+08:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Upstream Port of PCI Express Switch (rev c1)
+ Kernel driver in use: pcieport
+09:00.0 PCI bridge: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
+ Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 10 XL Downstream Port of PCI Express Switch
+ Kernel driver in use: pcieport
+0a:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6600/6600 XT/6600M] (rev c1)
+ Subsystem: ASUSTeK Computer Inc. Device 05d3
+ Kernel driver in use: amdgpu
+ Kernel modules: amdgpu
+0a:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
+ Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21/23 HDMI/DP Audio Controller
+ Kernel driver in use: snd_hda_intel
+ Kernel modules: snd_hda_intel
+0b:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse PCIe Dummy Function
+0c:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Reserved SPP
+0c:00.1 Encryption controller: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
+ Subsystem: Advanced Micro Devices, Inc. [AMD] Starship/Matisse Cryptographic Coprocessor PSPCPP
+ Kernel driver in use: ccp
+0c:00.3 USB controller: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
+ Subsystem: Gigabyte Technology Co., Ltd Device 5007
+ Kernel driver in use: xhci_hcd
+0c:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Starship/Matisse HD Audio Controller
+ DeviceName: Realtek ALC1220
+ Subsystem: Gigabyte Technology Co., Ltd Device a0c3
+ Kernel driver in use: snd_hda_intel
+ Kernel modules: snd_hda_intel
diff --git a/gentoo_desktop.html b/gentoo_desktop.html
@@ -0,0 +1,207 @@
+<!doctype html>
+<html lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
+ <title>Gentoo Desktop</title>
+ <script src="header.js"></script>
+ </head>
+ <body>
+ <a style="text-decoration: none" href="content.html"><--</a>
+ <h2>Gentoo Desktop</h2>
+ <p><i>2021-12-20</i></p>
+ <hr />
+ <p>
+ This page covers various features and notes of my AMD Desktop running Gentoo Linux, where the
+ majority of my time is spent. My system configuration can be found
+ <a href="https://git.pngu.org/dots/tree/?h=pluto" target="_blank">here</a>. The programs I use
+ on this system can mostly be found <a href="programs.html">here</a>.
+ </p>
+ <h3>Hardware Overview</h3>
+ <ul>
+ <li>Ryzen 7 3700X 8-core @ 3.6GHz</li>
+ <li>Radeon RX 6600/6600 XT/6600M</li>
+ <li>16 GiB Memory</li>
+ <li>MSI B550i Motherboard</li>
+ <li>Intel AX200 Network/Bluetooth Controller</li>
+ <li>
+ <a href="data/desktop_lspci" target="_blank"><code>lspci</code></a
+ >, <a href="data/desktop_lscpu" target="_blank"><code>lscpu</code></a>
+ </li>
+ </ul>
+ <img class="inline-image" src="data/desktop.jpg" alt="desktop.jpg" />
+ <h3>System</h3>
+ <h4>Profile</h4>
+ <p>
+ This system uses a combined <code>llvm</code> and <code>no-multilib</code> profile. I came to
+ this decision after having spent a few years working out what software I use on a day-to-day
+ basis, and learned I have no need for any 32-bit programs, and thus can omit support for them
+ entirely from my system. A non-multilib system mostly provides security benefits in the sense
+ that 32-bit support can be disabled in the kernel, significantly reducing vulnerability
+ surface area. This also means 32-bit libraries don't need to (cannot) be compiled when
+ building packages. This helps reduce the compile time needed for
+ <code>sys-devel/gcc</code> and <code>sys-libs/glibc</code> by quite a bit. <br /><br />
+ In addition to this, I have opted for an LLVM system profile. This means that by default,
+ Portage will build packages with Clang(++). The LLVM toolchain has become more widely
+ supported and rarely runs into issues compiling software. On occasion however, a package may
+ fail to compile under Clang. In this case, a GCC fallback environment can be used:
+ </p>
+ <pre><code class="language-shell"># /etc/portage/env/compiler-gcc
+
+COMMON_FLAGS="-march=znver2 -O2 -pipe"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+LDFLAGS="-Wl,--as-needed"
+
+CC="gcc"
+CXX="g++"
+CPP="gcc -E"
+AR="ar"
+NM="nm"
+RANLIB="ranlib"</code></pre>
+ <p>And then applied to a package as such:</p>
+ <pre><code class="language-shell"># /etc/portage/package.env
+
+sci-electronics/verilator compiler-gcc
+net-libs/libtirpc compiler-gcc</code></pre>
+ <p>
+ Most benefits of Clang its counterparts of negligible in most ways, but one may notice
+ slightly quicker compile times and reduced memory usage with some programs. Clang is also
+ capable of compiling the Linux kernel, and is known to also produce slightly more secure
+ binaries. I primarily opted for this setup, as I use LLVM tooling across all my systems, and
+ appreciate consistency.
+ </p>
+ <h4>Portage</h4>
+ <p>
+ Despite a slightly complex setup of combing profiles, my <code>make.conf</code> is fairly
+ simple. This is a graphical desktop system that primarily runs under Wayland, but still has
+ some X dependencies unfortunately.
+ </p>
+ <pre><code class="language-shell"># /etc/portage/make.conf
+
+COMMON_FLAGS="-march=znver2 -O2 -pipe"
+CFLAGS="${COMMON_FLAGS}"
+CXXFLAGS="${COMMON_FLAGS}"
+FCFLAGS="${COMMON_FLAGS}"
+FFLAGS="${COMMON_FLAGS}"
+USE="wayland X elogind bluetooth"
+VIDEO_CARDS="amdgpu radeonsi"
+ACCEPT_LICENSE="*"
+ACCEPT_KEYWORDS="~amd64"</code></pre>
+ <p>
+ Global USE flags really should only be set if multiple packages make use of them. Hence the
+ small number of them above. Prior to installing a package, I prefer to take a quick look at
+ its USE flags and set them appropriate. This greatly helps in reducing dependency packages for
+ functionality that may not be needed.
+ </p>
+ <pre><code class="language-shell"># /etc/portage/package.use
+
+app-admin/doas persist # persist functionality, like that of sudo
+dev-lang/rust system-llvm # do not build a separate llvm toolchain for only rust
+x11-libs/libdrm video_cards_radeon
+gui-apps/waybar network pipewire # needed to show wireless network and pipewire audio statuses
+media-video/pipewire flatpak pipewire-alsa sound-server dbus
+media-gfx/imv jpeg png svg
+media-sound/spotify local-playback pulseaudio libnotify # local-playback allows for playing local audio files
+media-fonts/noto cjk
+net-libs/nodejs npm
+net-wireless/iwd standalone # configure iwd to use built-in dhcp client
+sys-kernel/installkernel dracut uki
+sys-apps/systemd-utils boot kernel-install</code></pre>
+ <h4>Bootloader</h4>
+ <p>
+ This system does not have a traditional bootloader, such as GRUB. My "boot requirements" are
+ fairly minimal, meaning I prefer to use BIOS to boot alternate operating systems, and I
+ believe my system is stable enough I do not need multiple kernels or an emergency command
+ line. As such, a unified kernel image (<a
+ href="https://uapi-group.org/specifications/specs/unified_kernel_image"
+ target="_blank"
+ >UKI</a
+ >) can be used instead. Creates a bootable image that bundles microcode, initramfs, kernel
+ image, etc. into one binary that can be exposed to BIOS or another bootloader like GRUB.
+ <br /><br />
+ Configuring this is fairly straight forward.
+ </p>
+ <ol>
+ <li>
+ <p>
+ A "stub loader" is required, which is in the form of Systemd software. The
+ <code>sys-apps/systemd-utils</code> package can be install with the <code>boot</code> and
+ <code>kernel-install</code> USE flags.
+ </p>
+ </li>
+ <li>
+ <p>
+ Assuming <code>sys-kernel/installkernel</code> is used to handle the kernel installation
+ process, add the <code>dracut</code> and <code>uki</code> USE flags to this package. This
+ will instruct <code>installkernel</code> to use Dracut to generate the UKI.
+ </p>
+ </li>
+ <li>
+ <p>
+ Dracut's default layout settings should work for most, however the root partition needs to
+ be passed to the kernel command line. Find the UUID with <code>blkid</code>.
+ </p>
+ <pre><code class="language-shell"># /etc/dracut.conf.d/uki.conf
+uefi="yes"
+kernel_cmdline="root=UUID=883b14d7-d9aa-4b1f-b3ef-7eec02c6c5c0 ro"</code></pre>
+ </li>
+ <li>
+ <p>
+ After <code>installkernel</code> executes (i.e. after installing/updating a kernel), an
+ EFI stub can be created to boot directly from BIOS. It is important that the ESP is
+ mounted, so the EFI stub can be installed.
+ </p>
+ <pre><code>efibootmgr --create --disk /dev/sdX --part partition_number --label "Gentoo Linux x.y.z" --loader 'EFI\Linux\linux-x.y.z-gentoo.efi'</code></pre>
+ <p>
+ In the above, the <code>disk</code> parameter should be only the identifier of the entire
+ disk (e.g. <code>nvme0n1</code>), and the <code>part</code> parameter is the partition
+ number (e.g. simply "1" if the ESP is on <code>nvme0n1p1</code>).
+ </p>
+ </li>
+ </ol>
+ <h4>Kernel</h4>
+ <p>
+ On this system, I simply use the
+ <a href="https://packages.gentoo.org/packages/sys-kernel/gentoo-kernel"
+ ><code>gentoo-kernel</code></a
+ >. This works well for me and does not require following kernel releases to adjust my personal
+ configuration appropriately. I update the kernel when I have a reason to, or about every 6
+ months. To avoid building a new kernel every time a patch revision is released, I pin the
+ kernel-related packages in <code>package.mask</code>.
+ </p>
+ <pre><code># /etc/portage/package.mask
+
+sys-kernel/gentoo-kernel
+sys-kernel/gentoo-kernel-bin
+sys-kernel/vanilla-kernel
+virtual/dist-kernel</code></pre>
+ <h3>Screenshots</h3>
+ <img
+ class="inline-image"
+ src="https://raw.githubusercontent.com/waffle87/dots/refs/heads/pluto/.img/fetch.png"
+ alt="fetch.png"
+ />
+ <img
+ class="inline-image"
+ src="https://raw.githubusercontent.com/waffle87/dots/refs/heads/pluto/.img/nvim.png"
+ alt="nvim.png"
+ />
+ <img
+ class="inline-image"
+ src="https://raw.githubusercontent.com/waffle87/dots/refs/heads/pluto/.img/zathura.png"
+ alt="zathura.png"
+ />
+ <img
+ class="inline-image"
+ src="https://raw.githubusercontent.com/waffle87/dots/refs/heads/pluto/.img/fuzzel.png"
+ alt="fuzzel.png"
+ />
+ <img
+ class="inline-image"
+ src="https://raw.githubusercontent.com/waffle87/dots/refs/heads/pluto/.img/fuzzel.png"
+ alt="fuzzel.png"
+ />
+ <script src="frame.js"></script>
+ </body>
+</html>
diff --git a/index.html b/index.html
@@ -16,17 +16,12 @@
style="vertical-align: middle"
/>
</a>
- | <a href="https://git.pngu.org">git</a> |
- <a href="https://vault.pngu.org">vault</a> |
- <a href="https://uptime.pngu.org">status</a> |
+ | <a href="https://git.pngu.org">git</a>(<a href="https://github.com/waffle87">hub</a>) |
+ <a href="https://vault.pngu.org">vault</a> | <a href="https://uptime.pngu.org">status</a> |
<a href="https://calendar.pngu.org">calendar</a> |
<a href="https://webmail.pngu.org">mail</a> |
<a href="https://www.vim.org" style="text-decoration: none">
- <img
- src="data/with_emacs.png"
- alt="Made with Emacs..."
- style="vertical-align: middle"
- />
+ <img src="data/with_emacs.png" alt="Made with Emacs..." style="vertical-align: middle" />
</a>
</div>
<hr />
diff --git a/style.css b/style.css
@@ -91,3 +91,9 @@ pre {
overflow-y: hidden;
display: block;
}
+
+.inline-image {
+ display: block;
+ margin: 10px 0px;
+ width: 100%;
+}
diff --git a/template.html b/template.html
@@ -11,17 +11,7 @@
<h2>Page Header</h2>
<p><i>2026-01-14</i></p>
<hr />
- <p>Some text on a web page00.</p>
- <p>Along with a <code>function()</code>.</p>
- <pre class="language-c"><code>int function(int x) {
- return x * x;
-}
-
-int main() {
- int x = 42;
- printf("%d\n", function(x) + function(x) + function(x) + function(x) + function(x) + function(x));
- return 0;
-}</code></pre>
+ <p>Some text on a web page.</p>
<script src="frame.js"></script>
</body>
</html>