diff --git a/.ignore b/.ignore
index 155ebcb..980c851 100644
--- a/.ignore
+++ b/.ignore
@@ -1,2 +1 @@
-themes/
static/
diff --git a/content/posts/what-do-you-want-in-a-phone.md b/content/posts/what-do-you-want-in-a-phone.md
index 00bdfb2..c39ea24 100644
--- a/content/posts/what-do-you-want-in-a-phone.md
+++ b/content/posts/what-do-you-want-in-a-phone.md
@@ -2,14 +2,14 @@
date: 2026-02-24T23:45:11-07:00
description: "I just dropped my phone in my dog's water bowl -- I'm thinking what I want from my phone"
image: ""
-lastmod: 2026-02-25T00:42:51-07:00
-showTableOfContents: false
+lastmod: 2026-02-25T12:06:38-07:00
+showTableOfContents: true
tags: ["phone", "technology"]
title: "What Do You Want in a Phone"
type: "post"
---
-#
+# Phone Woes
I only moments ago dropped my Pixel Fold into a freshly cleaned stainless steel bowl of water.
@@ -35,13 +35,31 @@ I'm almost hoping my fold is broken just so I can pursue this self experimentati
I have tried quite a few different phones over the last five-ish years.
+### Linux In My Pocket!
+
I purchased [the original PinePhone (pine64)](https://pine64.org/devices/pinephone/) when it launched, even got the keyboard case. It was barely usable as a linux computer, let alone a phone. I wanted it to work so badly I persisted despite my wife's pleas to have a way to be contacted consistently. I relented after a month or so.
+### Google Normie
+
Then a Pixel 4. It was fine. I ran [CalyxOS](https://calyxos.org/) on it at first and then [GrapheneOS (homepage)](https://grapheneos.org/) I think. Both custom flavors of Android that have a privacy focus, spoofing or sandboxing required Google services to respect your data just a bit more.
-I jumped back in the mobile linux pool for another month about a year ago with a OnePlus 6T. It was much more usable, phone calls worked fairly well (provided you weren't doing any bluetooth tomfoolery), and once I compiled a custom VoLTE package I was even able to make calls on 4G networks! (Oh yeah, I'm remembering, if I wanted to receive calls, I had to be sure to set my phone to 2G networks only, so having the VoLTE setup was super convenient. Data was a "only turn on when using" sort of thing).
+### Linux In My Pocket! Continued...
+
+I jumped back in the mobile linux pool for another month about a year ago with a OnePlus 6T. It was much more usable, phone calls worked fairly well (provided you weren't doing any bluetooth tomfoolery), and once I compiled a custom VoLTE package I was even able to make calls on 4G networks!
+
+{{< aside caption="Oh yeah..." >}} I'm remembering, if I wanted to receive calls, I had to be sure to set my phone to 2G networks only, so having the VoLTE setup was super convenient. I desperately wanted mobile linux to work. I dropped many calls, missed group chats, my family for a while thought they couldn't call me :sob: so I'm not a linux-hater, I think the people at [PostMarketOS (homepage)](https://postmarketos.org/) are doing awesome stuff, it just needs more time in the oven, and ALOT more love AKA money / donated development.
+{{< /aside >}}
+
+{{< aside >}}
+Looks like they have made lots of improvements since I last used my OP 6T! (which is not surprising) The [wiki page (postmarket wiki)](https://wiki.postmarketos.org/wiki/OnePlus_6_(oneplus-enchilada)) has a good summary of functional parts
+{{< /aside >}}
+
+### Flip Minimalism
+
I also tried a flip phone for a minute. I ended up purchasing a [TCL Flip 2 (product page)](https://us.tcl.com/products/flip-2). Incredible how cheap it was, and it worked surprisingly well! I put some custom software on it, unfortunately I didn't document the process, but managed to install a custom cursor tool to set a button to toggle controlling a cursor on its 2.5" screen. This made using some of the apps much easier / possible than using the simple ^ v <- -> controls. It got me detoxed off my phone and showed me just how much time I can spend on it. Then, I switched back, telling myself I could handle the raw power of these internet-connected, eye-catching attention bricks.
+### Flip Maxxing
+
Back to my Pixel. Until I dropped it and it wouldn't keep a charge. The phone would only power on while plugged in, essentially unusable as a mobile device.
I then got my favorite phone to date, the Pixel Fold! Second hand from a chap in my area for $400. Not a bad deal if you ask me.
@@ -88,7 +106,7 @@ Its so apparent when watching other people how locked in they seem on their devi
[Fairphone (home page)](https://www.fairphone.com/en/)
-
+---
It doesn't make sense to me to purchase any other phones at this point.
diff --git a/layouts/shortcodes/aside.html b/layouts/shortcodes/aside.html
new file mode 100644
index 0000000..eefbe92
--- /dev/null
+++ b/layouts/shortcodes/aside.html
@@ -0,0 +1,8 @@
+
+ {{ with .Get "caption" }}
+
{{ . }}
+ {{ end }}
+
+ {{ .Inner | strings.TrimSpace | .Page.RenderString }}
+
+
diff --git a/themes/gokarna/assets/css/dark.css b/themes/gokarna/assets/css/dark.css
index dc438e5..f4f520b 100644
--- a/themes/gokarna/assets/css/dark.css
+++ b/themes/gokarna/assets/css/dark.css
@@ -1,24 +1,69 @@
:root {
- --dark-primary-color: 34, 34, 34; /* Kimber base00 #222222 */
- --dark-secondary-color: #313131; /* Kimber base01 */
- --dark-tertiary-color: #555D55; /* Kimber base02 */
- --dark-text-color: #DEDEE7; /* Kimber base05 */
- --dark-muted-color: #C3C3B4; /* Kimber base06 dates/blockquotes */
- --dark-shadow-color: 49, 49, 49; /* Kimber base01 as RGB triplet */
+ /* Kimber base00 #222222 */
+ /* Kimber base01 */
+ /* Kimber base02 */
+ /* Kimber base05 */
+ /* Kimber base06 dates/blockquotes */
+ /* Kimber base01 as RGB triplet */
+
+ /* Slightly dimmed vs base05 #DEDEE7 text */
+
+ /* Kimber base00 background */
+ --color-00: #222222;
+ --dark-background-color: #222222;
+ /* Kimber base01 borders/dividers */
+ --color-01: #313131;
+ --dark-secondary-color: #313131;
+ --dark-shadow-color: #313131;
+ /* Kimber base 02 */
+ --color-02: #555d55;
+ --dark-tertiary-color: #555D55;
+ /* Kimber base 03 */
+ --color-03: #644646;
+ /* Kimber base04 */
+ --color-04: #5a5a5a;
+ /* Kimber base05 text/code */
+ --color-05: #dedee7;
+ --dark-text-color: #DEDEE7;
+ /* Kimber base06 */
+ --color-06: #c3c3b4;
+ --dark-muted-color: #C3C3B4;
+ /* --link-color: #c3c3b4; */
+ --link-font-weight: 500;
+ /*Kimber base07 */
+ --color-07: #ffffe6;
+ /*Kimber base08 */
+ --color-08: #c88c8c;
+ /*Kimber base09 */
+ --color-09: #476c88;
+ /*Kimber base0A */
+ --color-0A: #d8b56d;
+ /*Kimber base0B */
+ --color-0B: #99c899;
+ /*Kimber base0C */
+ --color-0C: #78b4b4;
+ /*Kimber base0D */
+ --color-0D: #537c9c;
+ --link-color-dark: #537c9c;
+ /*Kimber base0E */
+ --color-0E: #86cacd;
+ /*Kimber base0F */
+ --color-0F: #704f4f;
+ --aside-block-highlight: #704f4f;
}
html {
- background-color: rgb(var(--dark-primary-color));
+ background-color: var(--dark-background-color);
color: var(--dark-text-color);
fill: var(--dark-text-color);
}
.header {
- background-color: rgba(var(--dark-primary-color), 0.95);
+ background-color: var(--dark-background-color);
}
.nav-hamburger-list {
- background: rgba(var(--dark-primary-color), 1);
+ background: var(--dark-background-color);
}
.nav-links .nav-icons-divider {
@@ -31,7 +76,7 @@ a:hover .feather-moon {
}
.gk-social-icons-list .gk-social-icon,
-.gk-social-icons-list .gk-social-icon a:visited {
+.gk-social-icons-list .gk-social-icon a:visited {
fill: var(--dark-text-color);
}
@@ -41,16 +86,17 @@ a:hover .feather-moon {
.post-tags .post-tag:hover {
background-color: var(--dark-text-color);
- color: rgb(var(--dark-primary-color));
+ color: var(--dark-background-color);
}
.post-title-tag {
border-color: var(--dark-tertiary-color);
color: var(--dark-muted-color);
}
+
.post-title-tag:hover {
background-color: var(--dark-text-color);
- color: rgb(var(--dark-primary-color));
+ color: var(--dark-background-color);
border-color: var(--dark-text-color);
}
@@ -60,7 +106,7 @@ a:hover .feather-moon {
.tags-list .post-tags .post-tag:hover a .tag-posts-count {
background-color: var(--dark-text-color);
- color: rgb(var(--dark-primary-color));
+ color: var(--dark-background-color);
}
.footer {
@@ -90,16 +136,18 @@ pre {
background-color: var(--dark-secondary-color) !important;
}
-:not(pre) > code {
+:not(pre)>code {
background-color: var(--dark-tertiary-color) !important;
color: var(--dark-text-color);
}
.header-shadow {
- box-shadow: rgb(var(--dark-shadow-color)) 0px -1px 0px 0px inset;
+ box-shadow: var(--dark-shadow-color) 0px -1px 0px 0px inset;
}
-.post .post-date, .prev-post-date, .next-post-date {
+.post .post-date,
+.prev-post-date,
+.next-post-date {
color: var(--dark-muted-color);
}
@@ -125,10 +173,32 @@ pre {
}
/* TODO: Check if this is needed or not */
+
+/* Content links: dark mode color override */
+.post-content a:not(.post-tag):not(.post-title-tag),
+.markdown-content a {
+ color: var(--link-color-dark);
+}
+
+.post-content a:not(.post-tag):not(.post-title-tag):hover,
+.markdown-content a:hover {
+ color: var(--accent-color);
+}
+
+/* Aside blocks: dark mode overrides */
+.aside-block {
+ background-color: var(--dark-secondary-color);
+ border-color: var(--aside-block-highlight);
+}
+
+.aside-caption {
+ color: var(--dark-background-color);
+}
+
/*
img,
video {
filter: hue-rotate(180deg) contrast(100%) invert(100%);
-webkit-filter: hue-rotate(180deg) contrast(100%) invert(100%);
}
-*/
+*/
\ No newline at end of file
diff --git a/themes/gokarna/assets/css/main.css b/themes/gokarna/assets/css/main.css
index 1406f68..febe433 100644
--- a/themes/gokarna/assets/css/main.css
+++ b/themes/gokarna/assets/css/main.css
@@ -2,13 +2,48 @@
--content-width: 1120px;
--container-width: 810px;
- --light-primary-color: 255, 255, 230; /* Kimber base07 #FFFFE6 warm cream */
- --light-secondary-color: #C3C3B4; /* Kimber base06 borders/dividers */
- --light-tertiary-color: #222222; /* Kimber base00 code block bg */
- --light-text-color: #222222; /* Kimber base00 primary text */
- --light-muted-color: #5A5A5A; /* Kimber base04 dates/blockquotes */
- --light-code-color: #DEDEE7; /* Kimber base05 code foreground */
- --light-shadow-color: 195, 195, 180; /* Kimber base06 as RGB triplet */
+ /* Kimber base00 background */
+ --light-color-00: #222222;
+ --light-background-alt-color: #222222;
+ /* Kimber base01 borders/dividers */
+ --light-color-01: #313131;
+ --light-text-color: #313131;
+ /* Kimber base 02 */
+ --light-color-02: #555d55;
+ --link-color: #555d55;
+ /* Kimber base 03 */
+ --light-color-03: #644646;
+ /* Kimber base04 */
+ --light-color-04: #5a5a5a;
+ --light-shadow-color: #5a5a5a;
+ --light-muted-color: #5a5a5a;
+ /* Kimber base05 text/code */
+ --light-color-05: #dedee7;
+ --light-code-color: #dedee7;
+ /* Kimber base06 */
+ --light-color-06: #c3c3b4;
+ --light-secondary-color: #c3c3b4;
+ /* --link-color: #c3c3b4; */
+ --link-font-weight: 500;
+ /*Kimber base07 */
+ --light-color-07: #ffffe6;
+ --light-background-color: #ffffe6;
+ /*Kimber base08 */
+ --light-color-08: #c88c8c;
+ /*Kimber base09 */
+ --light-color-09: #476c88;
+ /*Kimber base0A */
+ --light-color-0A: #d8b56d;
+ /*Kimber base0B */
+ --light-color-0B: #99c899;
+ /*Kimber base0C */
+ --light-color-0C: #78b4b4;
+ /*Kimber base0D */
+ --light-color-0D: #537c9c;
+ /*Kimber base0E */
+ --light-color-0E: #86cacd;
+ /*Kimber base0F */
+ --light-color-0F: #704f4f;
}
@font-face {
@@ -24,7 +59,7 @@
}
html {
- background-color: rgb(var(--light-primary-color));
+ background-color: var(--light-background-color);
color: var(--light-text-color);
font-family: "Lato", sans-serif;
font-size: var(--font-size);
@@ -61,7 +96,7 @@ main#content {
width: var(--content-width);
}
-main#content > .container {
+main#content>.container {
margin: auto;
width: 75%;
max-width: var(--container-width);
@@ -131,7 +166,7 @@ img {
/* HEADER */
.header {
- background-color: rgba(var(--light-primary-color), 0.95);
+ background-color: color-mix(in srgb, var(--light-background-color) 95%, transparent);
color: inherit;
height: 50px;
left: 0;
@@ -145,6 +180,7 @@ img {
.header a {
text-decoration: none;
}
+
.header .header-nav {
height: 50px;
margin-top: 0;
@@ -156,6 +192,7 @@ img {
height: 100%;
margin-left: 15px;
}
+
.header-nav .avatar img {
border-radius: 100%;
display: block;
@@ -164,49 +201,59 @@ img {
overflow: hidden;
width: 38px;
}
+
.header-nav .nav-title {
display: inline-block;
height: 100%;
line-height: 50px;
padding-left: 15px;
}
+
.nav-title a {
height: 50px;
}
+
.header-nav .nav-links {
float: right;
line-height: 50px;
margin-right: 10px;
}
+
.nav-links .nav-link {
display: inline-block;
padding: 0 2px;
}
+
.nav-links .nav-link a {
display: block;
padding: 0 6px;
}
+
.nav-link a svg {
height: 20px;
margin: -3px auto;
stroke-width: 2;
width: 20px;
}
+
.nav-item a svg {
height: 20px;
margin: -3px auto;
stroke-width: 2;
width: 20px;
}
+
.nav-links .nav-link.icon a {
padding: 0 8px;
}
+
.nav-links .nav-icons-divider {
border-color: inherit;
border-left: 1.5px solid;
color: var(--light-secondary-color);
margin: 0 10px;
}
+
.nav-links .dark-theme-toggle:hover {
cursor: pointer;
}
@@ -222,17 +269,20 @@ a:hover .feather-sun {
stroke-linejoin: round;
width: 22px;
}
+
#hamburger-menu-toggle {
display: none;
}
+
#hamburger-menu-toggle .feather {
height: 24px;
stroke-linecap: round;
stroke-linejoin: round;
width: 24px;
}
+
.nav-hamburger-list {
- background: rgb(var(--light-primary-color));
+ background: var(--light-background-color);
border-bottom: solid 1.5px var(--light-secondary-color);
border-top: solid 1.5px var(--light-secondary-color);
list-style-type: none;
@@ -244,6 +294,7 @@ a:hover .feather-sun {
width: 100%;
z-index: 5;
}
+
.nav-hamburger-list a:hover {
text-decoration: underline;
}
@@ -280,7 +331,7 @@ a:hover .feather-sun {
}
.header-shadow {
- box-shadow: rgb(var(--light-shadow-color)) 0px 1px 5px;
+ box-shadow: var(--light-shadow-color) 0px 1px 5px;
}
/* TAGS */
@@ -288,6 +339,7 @@ a:hover .feather-sun {
list-style-type: none;
padding: 0;
}
+
.post-tags .post-tag {
border: 1.5px solid;
border-radius: 4px;
@@ -296,10 +348,12 @@ a:hover .feather-sun {
display: inline-block;
font-size: 14px;
}
+
.post-tags .post-tag:hover {
background-color: var(--light-text-color);
- color: rgb(var(--light-primary-color));
+ color: var(--light-background-color);
}
+
.post-tag a {
color: inherit;
display: block;
@@ -311,6 +365,7 @@ a:hover .feather-sun {
.post-title-tags {
margin-top: 4px;
}
+
.post-title-tag {
display: inline-block;
font-size: 0.7rem;
@@ -322,16 +377,17 @@ a:hover .feather-sun {
margin-right: 4px;
margin-bottom: 2px;
}
+
.post-title-tag:hover {
background-color: var(--light-text-color);
- color: rgb(var(--light-primary-color));
+ color: var(--light-background-color);
border-color: var(--light-text-color);
}
/* CODE BLOCKS */
code,
pre {
- background-color: var(--light-tertiary-color);
+ background-color: var(--light-background-alt-color);
box-sizing: border-box;
color: var(--light-code-color);
}
@@ -348,7 +404,7 @@ code {
font-size: 0.8em;
}
-:not(pre) > code {
+:not(pre)>code {
background-color: var(--light-secondary-color) !important;
color: var(--light-text-color);
padding: 1px 4px;
@@ -492,43 +548,53 @@ table td {
margin: 0 auto;
align-items: center;
}
+
.home-grid .home-posts {
width: auto;
}
+
.home-posts-column {
flex: 3;
min-width: 0;
}
+
.home-projects-card {
flex: 1;
min-width: 200px;
border: 1px solid var(--light-secondary-color);
border-radius: 8px;
padding: 1rem 1.2rem;
- background-color: rgba(var(--light-primary-color), 0.5);
+ background-color: var(--light-background-color);
}
+
.home-projects-card h2 {
margin-top: 0;
font-size: 1.1rem;
}
+
.home-project-entry {
margin-bottom: 0.9rem;
}
+
.home-project-entry:last-of-type {
margin-bottom: 0.5rem;
}
+
.home-project-entry a {
text-decoration: none;
font-weight: 500;
}
+
.home-project-entry a:hover {
text-decoration: underline;
}
+
.home-project-meta {
font-size: 0.8rem;
color: var(--light-muted-color);
margin-top: 0.15rem;
}
+
.home-project-status {
display: inline-block;
padding: 1px 6px;
@@ -537,6 +603,7 @@ table td {
font-weight: 500;
vertical-align: middle;
}
+
.home-projects-card .view-all {
display: block;
margin-top: 0.8rem;
@@ -546,6 +613,7 @@ table td {
border-top: 1px solid var(--light-secondary-color);
padding-top: 0.6rem;
}
+
.home-projects-card .view-all:hover {
text-decoration: underline;
}
@@ -555,59 +623,131 @@ table td {
font-size: 1.1em;
font-style: italic;
}
+
.post {
/* Prevent long strings from overflowing */
overflow-wrap: break-word;
}
-.post .post-date, .prev-post-date, .next-post-date {
+
+.post .post-date,
+.prev-post-date,
+.next-post-date {
color: var(--light-muted-color);
}
+
.post .post-content {
line-height: 1.7;
margin-top: 50px;
letter-spacing: 0.5px;
}
-.post-content h1, .post-content h2, .post-content h3, .post-content h4 {
+
+.post-content h1,
+.post-content h2,
+.post-content h3,
+.post-content h4 {
scroll-margin-top: 55px;
}
+
.post-content h1 {
margin-top: 40px;
}
+
.post-content h2 {
margin-top: 35px;
}
+
.post-content h3 {
margin-top: 30px;
}
+
.post-content h4 {
margin-top: 25px;
}
+
.post-content h5 {
margin-top: 20px;
}
+
.post-content img {
display: block;
margin-left: auto;
margin-right: auto;
}
+/* Content links: slightly bolder and dimmed vs body text */
+.post-content a:not(.post-tag):not(.post-title-tag),
+.markdown-content a {
+ font-weight: var(--link-font-weight);
+ color: var(--link-color);
+}
+
+.post-content a:not(.post-tag):not(.post-title-tag):hover,
+.markdown-content a:hover {
+ color: var(--accent-color);
+}
+
+/* ASIDE BLOCKS */
+.aside-block {
+ border-left: 4px solid var(--light-color-08);
+ border-bottom: 4px solid var(--light-color-08);
+ border-radius: 10px;
+ background-color: color-mix(in srgb, var(--light-shadow-color) 15%, transparent);
+ margin: 1.5rem 0;
+ padding: 0.8rem 1rem 0.6rem;
+}
+
+.aside-caption {
+ display: inline-block;
+ background-color: var(--accent-color);
+ color: var(--light-background-alt-color);
+ font-size: 1.1rem;
+ font-weight: 700;
+ padding: 1px 10px;
+ border-radius: 10px;
+ position: relative;
+ top: -1.5em;
+ margin-bottom: -2em;
+ margin-left: 0.2rem;
+}
+
+.aside-caption+.aside-content {
+ margin-top: -1em;
+}
+
+.aside-content {
+ line-height: 1.25;
+}
+
+.aside-content>*:first-child {
+ margin-top: 0;
+}
+
+.aside-content>*:last-child {
+ margin-bottom: 0;
+}
+
/* LIST */
.list-posts .list-title {
text-align: center;
}
+
.list-posts .posts-year {
margin-top: 70px;
}
+
.list-posts .post-title {
margin: 18px 0 0 15px;
}
+
.list-posts .post-title a {
text-decoration: none;
}
+
.post-title .post-link,
.post-title .post-date {
display: inline-block;
}
+
.post-title .post-link {
/* This magic number is the largest width that keeps the post-date div from
* causing the line to wrap with the longest possible date string
@@ -615,23 +755,29 @@ table td {
*/
width: 73%;
}
+
.tags-list .post-tags {
margin-top: 50px;
}
+
.tags-list .post-tags .post-tag {
margin: 2px 5px;
padding: 0;
}
+
.tags-list .post-tags .post-tag a {
border-radius: inherit;
padding: 0;
}
+
.tags-list .post-tags .post-tag a div {
display: inline-block;
}
+
.tags-list .post-tags .post-tag a .tag-name {
padding: 5px 8px;
}
+
.tags-list .post-tags .post-tag a .tag-posts-count {
background-color: var(--light-secondary-color);
border-radius: inherit;
@@ -641,9 +787,10 @@ table td {
position: relative;
z-index: 0;
}
+
.tags-list .post-tags .post-tag:hover a .tag-posts-count {
background-color: var(--light-text-color);
- color: rgb(var(--light-primary-color));
+ color: var(--light-background-color);
}
.text-404 {
@@ -687,7 +834,8 @@ table td {
width: auto;
}
- .home-content, .home-posts {
+ .home-content,
+ .home-posts {
width: auto;
margin: 0;
}
@@ -716,7 +864,7 @@ table td {
}
#toc {
- display:none;
+ display: none;
}
.list-posts {
@@ -769,7 +917,8 @@ table td {
text-align: right;
}
-.prev-post, .next-post {
+.prev-post,
+.next-post {
max-width: 33%;
}
@@ -786,21 +935,21 @@ table td {
position: fixed;
right: 20px;
z-index: 5;
- background-color: var(--light-tertiary-color);
+ background-color: var(--light-background-alt-color);
width: 25px;
height: 25px;
}
-.arrow-logo path{
+.arrow-logo path {
fill: var(--light-secondary-color)
}
.arrow-logo:hover {
- fill: var(--accent-color);
+ fill: var(--accent-color);
}
@media screen and (max-width: 600px) {
#btt-button {
- visibility: hidden;
+ visibility: hidden;
}
-}
+}
\ No newline at end of file