Compare commits

...

2 Commits

Author SHA1 Message Date
55a575ee34 unfuck LFS shit 2025-11-08 12:43:55 +01:00
33a66fc273 updates 2025-11-08 12:35:53 +01:00
9 changed files with 230 additions and 81 deletions

2
.gitattributes vendored Normal file
View File

@@ -0,0 +1,2 @@
*.png filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text

File diff suppressed because one or more lines are too long

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2025-11-07 -->
<!-- 2025-11-08 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Journal Week 45, 2025</title>
@@ -240,9 +240,9 @@ Went to see <a href="https://en.wikipedia.org/wiki/TEKE::TEKE">TEKE::TEKE</a> li
</p>
</div>
</div>
<div id="outline-container-orgc9be62c" class="outline-4">
<h4 id="orgc9be62c">Habits&#xa0;&#xa0;&#xa0;<span class="tag"><span class="autocollapse">autocollapse</span></span></h4>
<div class="outline-text-4" id="text-orgc9be62c">
<div id="outline-container-org49adc56" class="outline-4">
<h4 id="org49adc56">Habits&#xa0;&#xa0;&#xa0;<span class="tag"><span class="autocollapse">autocollapse</span></span></h4>
<div class="outline-text-4" id="text-org49adc56">
</div>
<div id="outline-container-dailies-meditation" class="outline-5">
<h5 id="dailies-meditation"><span class="todo NO">NO</span> Meditation</h5>
@@ -293,9 +293,9 @@ Tired, so tired.
</p>
</div>
</div>
<div id="outline-container-org49adc56" class="outline-4">
<h4 id="org49adc56">Habits&#xa0;&#xa0;&#xa0;<span class="tag"><span class="autocollapse">autocollapse</span></span></h4>
<div class="outline-text-4" id="text-org49adc56">
<div id="outline-container-org5db4820" class="outline-4">
<h4 id="org5db4820">Habits&#xa0;&#xa0;&#xa0;<span class="tag"><span class="autocollapse">autocollapse</span></span></h4>
<div class="outline-text-4" id="text-org5db4820">
</div>
<div id="outline-container-dailies-meditation" class="outline-5">
<h5 id="dailies-meditation"><span class="todo NO">NO</span> Meditation</h5>
@@ -334,10 +334,63 @@ Tired, so tired.
</div>
</div>
</div>
<div id="outline-container-orgf10584a" class="outline-3">
<h3 id="orgf10584a">Saturday, 8th November</h3>
<div class="outline-text-3" id="text-orgf10584a">
</div>
<div id="outline-container-dailies-blogging" class="outline-4">
<h4 id="dailies-blogging"><span class="done YES">YES</span> Journal</h4>
<div class="outline-text-4" id="text-dailies-blogging">
<p>
Many chores today.
</p>
</div>
</div>
<div id="outline-container-org64f957c" class="outline-4">
<h4 id="org64f957c">Habits&#xa0;&#xa0;&#xa0;<span class="tag"><span class="autocollapse">autocollapse</span></span></h4>
<div class="outline-text-4" id="text-org64f957c">
</div>
<div id="outline-container-dailies-meditation" class="outline-5">
<h5 id="dailies-meditation"><span class="todo NO">NO</span> Meditation</h5>
<div class="outline-text-5" id="text-dailies-meditation">
</div>
</div>
<div id="outline-container-dailies-drawing" class="outline-5">
<h5 id="dailies-drawing"><span class="todo NO">NO</span> Drawing</h5>
<div class="outline-text-5" id="text-dailies-drawing">
</div>
</div>
<div id="outline-container-dailies-engineering" class="outline-5">
<h5 id="dailies-engineering"><span class="todo NO">NO</span> Engineering</h5>
<div class="outline-text-5" id="text-dailies-engineering">
</div>
</div>
<div id="outline-container-dailies-french" class="outline-5">
<h5 id="dailies-french"><span class="todo NO">NO</span> French</h5>
<div class="outline-text-5" id="text-dailies-french">
</div>
</div>
<div id="outline-container-dailies-social" class="outline-5">
<h5 id="dailies-social"><span class="todo NO">NO</span> Social</h5>
<div class="outline-text-5" id="text-dailies-social">
</div>
</div>
<div id="outline-container-dailies-exercise" class="outline-5">
<h5 id="dailies-exercise"><span class="todo NO">NO</span> Exercise</h5>
<div class="outline-text-5" id="text-dailies-exercise">
</div>
</div>
<div id="outline-container-dailies-reading" class="outline-5">
<h5 id="dailies-reading"><span class="todo NO">NO</span> Reading</h5>
<div class="outline-text-5" id="text-dailies-reading">
</div>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<div id='footer'><div id='modified-date'>Last modified: 2025-11-07</div><hr>
<div id='footer'><div id='modified-date'>Last modified: 2025-11-08</div><hr>
If you have any comments about this page, you can email me at: <br>
<b>akk0</b> <i>{at}</i> <b>webbieweb</b> <i>{dot}</i> <b>org</b><br>
Proudly built using <a href="/posts/blog-tech.html">org-mode</a>. <br>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2025-11-07 -->
<!-- 2025-11-08 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Framework Laptop Review</title>
@@ -308,7 +308,7 @@ This required setting up a swap file and setting a kernel command line parameter
<h5 id="org3b37e14"><a href="http://guake-project.org/">Guake</a>-like transient terminal</h5>
<div class="outline-text-5" id="text-org3b37e14">
<p>
Using some <code>fish</code> scripts, <code>bspwm</code>, <code>picom</code> and <code>xst</code> I rigged up a transient, transparent terminal to use for quick shell jobs. I used the scripts and config file in <a href="#org5a139df">Appendix A</a> to do this. The implementation is a bit hacky, and it&rsquo;s not impossible to break, but it serves my purposes well (and more important, it was fun to make)!
Using some <code>fish</code> scripts, <code>bspwm</code>, <code>picom</code> and <code>xst</code> I rigged up a transient, transparent terminal to use for quick shell jobs. I used the scripts and config file in <a href="#orgf32d0b4">Appendix A</a> to do this. The implementation is a bit hacky, and it&rsquo;s not impossible to break, but it serves my purposes well (and more important, it was fun to make)!
</p>
</div>
</div>
@@ -320,22 +320,7 @@ I wrote a script to set a random wallpaper.
</p>
<div class="org-src-container">
<pre class="src src-python"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/env python3</span>
<span class="org-keyword">import</span> os
<span class="org-keyword">from</span> random <span class="org-keyword">import</span> choice
<span class="org-variable-name">pape_path</span> <span class="org-operator">=</span> os.path.expandvars(<span class="org-string">"$HOME/Pictures/Wallpapers"</span>)
<span class="org-keyword">def</span> <span class="org-function-name">set_wallpaper</span>():
<span class="org-variable-name">files</span> <span class="org-operator">=</span> os.popen(f<span class="org-string">"ls </span>{pape_path}<span class="org-string">"</span>).read().split(<span class="org-string">'</span><span class="org-constant">\n</span><span class="org-string">'</span>)
<span class="org-variable-name">pape</span> <span class="org-operator">=</span> choice(files)
<span class="org-variable-name">pp</span> <span class="org-operator">=</span> os.path.join(pape_path, pape)
os.popen(f<span class="org-string">"hsetroot -full </span>{pp}<span class="org-string">"</span>)
os.popen(f<span class="org-string">"echo </span>{pp}<span class="org-string"> &gt; /tmp/wallpaper"</span>)
<span class="org-keyword">if</span> <span class="org-builtin">__name__</span> <span class="org-operator">==</span> <span class="org-string">"__main__"</span>:
set_wallpaper()
<pre class="src src-python">
</pre>
</div>
</div>
@@ -344,7 +329,7 @@ I wrote a script to set a random wallpaper.
<h5 id="orgcbd89f5">Lockscreen</h5>
<div class="outline-text-5" id="text-orgcbd89f5">
<p>
I hacked together some <a href="#orgb04aa39">pretty crappy code</a> to lock the screen using <code>i3lock</code>, with my wallpaper composed with a little lock icon as the background. Very overengineered.
I hacked together some <a href="#org3ee9b02">pretty crappy code</a> to lock the screen using <code>i3lock</code>, with my wallpaper composed with a little lock icon as the background. Very overengineered.
</p>
<p width="60%" class="center">
@@ -456,9 +441,9 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
</div>
</div>
</div>
<div id="outline-container-org5a139df" class="outline-2">
<h2 id="org5a139df">Appendix A: Transient Terminal Sources</h2>
<div class="outline-text-2" id="text-org5a139df">
<div id="outline-container-orgf32d0b4" class="outline-2">
<h2 id="orgf32d0b4">Appendix A: Transient Terminal Sources</h2>
<div class="outline-text-2" id="text-orgf32d0b4">
<p>
<code>togglescratch</code>
</p>
@@ -481,6 +466,7 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
</pre>
</div>
<p>
<code>makescratch</code>
</p>
@@ -493,9 +479,11 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
<span class="org-keyword">set</span> <span class="org-variable-name">decid</span> (<span class="org-builtin">printf</span> <span class="org-string">'%d'</span> <span class="org-string">$</span><span class="org-variable-name">nid</span>)
<span class="org-builtin">xdotool</span> set_window --name <span class="org-string">"scratchterminal"</span> <span class="org-string">$</span><span class="org-variable-name">decid</span>
<span class="org-builtin">exec</span> <span class="org-string">"$HOME/Scripts/cleanscratch"</span>
</pre>
</div>
<p>
<code>cleanscratch</code>
</p>
@@ -508,6 +496,7 @@ Personally, I&rsquo;m getting a rare chance to critically examine all the little
</pre>
</div>
<p>
<code>picom.conf</code>
</p>
@@ -523,36 +512,36 @@ opacity-rule=["90:name = 'scratchterminal'"];
</div>
</div>
</div>
<div id="outline-container-orgb04aa39" class="outline-2">
<h2 id="orgb04aa39">Appendix B: lock.py</h2>
<div class="outline-text-2" id="text-orgb04aa39">
<div id="outline-container-org3ee9b02" class="outline-2">
<h2 id="org3ee9b02">Appendix B: lock.py</h2>
<div class="outline-text-2" id="text-org3ee9b02">
<div class="org-src-container">
<pre class="src src-python"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/python3</span>
<span class="org-keyword">import</span> os
<span class="org-keyword">import</span> sys
<span class="org-keyword">import</span> time
<pre class="src src-fish"><span class="org-comment-delimiter">#</span><span class="org-comment">!/usr/bin/python3</span>
<span class="org-builtin">import</span> os
<span class="org-builtin">import</span> sys
<span class="org-builtin">import</span> time
<span class="org-keyword">if</span> <span class="org-builtin">__name__</span> <span class="org-operator">==</span> <span class="org-string">"__main__"</span>:
<span class="org-variable-name">width</span>, <span class="org-variable-name">height</span>, <span class="org-variable-name">lwidth</span>, <span class="org-variable-name">lheight</span> <span class="org-operator">=</span> <span class="org-highlight-numbers-number">2256</span>, <span class="org-highlight-numbers-number">1504</span>, <span class="org-highlight-numbers-number">320</span>, <span class="org-highlight-numbers-number">320</span>
<span class="org-variable-name">icon</span> <span class="org-operator">=</span> <span class="org-string">"$HOME/Pictures/lock_small.png"</span>
<span class="org-variable-name">pape</span> <span class="org-operator">=</span> os.popen(<span class="org-string">"cat /tmp/wallpaper"</span>).read()[:<span class="org-operator">-</span><span class="org-highlight-numbers-number">1</span>]
<span class="org-variable-name">cache</span> <span class="org-operator">=</span> os.popen(<span class="org-string">"cat /tmp/lockscreen_cache"</span>).read()[:<span class="org-operator">-</span><span class="org-highlight-numbers-number">1</span>]
<span class="org-keyword">if</span> <span class="org-builtin">__name__</span> == <span class="org-string">"__main__"</span>:
<span class="org-builtin">width</span>, height, lwidth, lheight = <span class="org-highlight-numbers-number">2256</span>, <span class="org-highlight-numbers-number">1504</span>, <span class="org-highlight-numbers-number">320</span>, <span class="org-highlight-numbers-number">320</span>
<span class="org-builtin">icon</span> = <span class="org-string">"$HOME/Pictures/lock_small.png"</span>
<span class="org-builtin">pape</span> = os.popen(<span class="org-string">"cat /tmp/wallpaper"</span>).<span class="org-builtin">read</span>()[:<span class="org-constant">-1</span>]
<span class="org-builtin">cache</span> = os.popen(<span class="org-string">"cat /tmp/lockscreen_cache"</span>).<span class="org-builtin">read</span>()[:<span class="org-constant">-1</span>]
<span class="org-keyword">if</span> pape <span class="org-operator">!=</span> cache <span class="org-keyword">or</span> <span class="org-string">'--ignore-cache'</span> <span class="org-keyword">in</span> sys.argv:
os.popen(f<span class="org-string">"convert </span>{pape}<span class="org-string"> -resize </span>{width}<span class="org-string">x</span>{height}<span class="org-string"> -background black -gravity center -extent </span>{width}<span class="org-string">x</span>{height}<span class="org-string"> /tmp/wallpaper.png"</span>).read()
os.popen(f<span class="org-string">"convert -composite /tmp/wallpaper.png </span>{icon}<span class="org-string"> -geometry +</span>{width<span class="org-operator">//</span>2 <span class="org-operator">-</span> lwidth<span class="org-operator">//</span>2}<span class="org-string">+</span>{height<span class="org-operator">//</span>2 <span class="org-operator">-</span> lheight<span class="org-operator">//</span>2}<span class="org-string"> /tmp/wallpaper.png"</span>).read()
os.popen(f<span class="org-string">"echo </span>{pape}<span class="org-string"> &gt; /tmp/lockscreen_cache"</span>)
<span class="org-keyword">if</span> <span class="org-builtin">pape</span> != cache <span class="org-keyword">or</span> <span class="org-string">'--ignore-cache'</span> in sys.argv:
<span class="org-builtin">os</span>.popen(f<span class="org-string">"convert {pape} -resize {width}x{height} -background black -gravity center -extent {width}x{height} /tmp/wallpaper.png"</span>).<span class="org-builtin">read</span>()
<span class="org-builtin">os</span>.popen(f<span class="org-string">"convert -composite /tmp/wallpaper.png {icon} -geometry +{width//2 - lwidth//2}+{height//2 - lheight//2} /tmp/wallpaper.png"</span>).<span class="org-builtin">read</span>()
<span class="org-builtin">os</span>.popen(f<span class="org-string">"echo {pape} &gt; /tmp/lockscreen_cache"</span>)
os.popen(<span class="org-string">"i3lock -u -i /tmp/wallpaper.png"</span>)
time.sleep(<span class="org-highlight-numbers-number">0.5</span>)
os.popen(<span class="org-string">"loginctl suspend"</span>)
<span class="org-builtin">os</span>.popen(<span class="org-string">"i3lock -u -i /tmp/wallpaper.png"</span>)
<span class="org-builtin">time</span>.sleep(<span class="org-highlight-numbers-number">0.5</span>)
<span class="org-builtin">os</span>.popen(<span class="org-string">"loginctl suspend"</span>)
</pre>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<div id='footer'><div id='publish-date'>Published: 2022-03-17</div><div id='modified-date'>Last modified: 2023-01-10</div><hr>
<div id='footer'><div id='publish-date'>Published: 2022-03-17</div><div id='modified-date'>Last modified: 2025-11-08</div><hr>
If you have any comments about this page, you can email me at: <br>
<b>akk0</b> <i>{at}</i> <b>webbieweb</b> <i>{dot}</i> <b>org</b><br>
Proudly built using <a href="/posts/blog-tech.html">org-mode</a>. <br>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html lang="en">
<head>
<!-- 2025-11-07 -->
<!-- 2025-11-08 -->
<meta charset="utf-8" />
<meta name="viewport" content="width=100%, initial-scale=0.7" />
<title>Sitemap for project pages</title>
@@ -288,7 +288,7 @@
</ul>
</div>
<div id="postamble" class="status">
<div id='footer'><div id='modified-date'>Last modified: 2025-11-07</div><hr>
<div id='footer'><div id='modified-date'>Last modified: 2025-11-08</div><hr>
If you have any comments about this page, you can email me at: <br>
<b>akk0</b> <i>{at}</i> <b>webbieweb</b> <i>{dot}</i> <b>org</b><br>
Proudly built using <a href="/posts/blog-tech.html">org-mode</a>. <br>

View File

@@ -12,7 +12,7 @@ Here's this week's [[./journal/w44-2025.org][journal]]!
** Habits
#+BEGIN_CENTER
/Today is Friday, 7th November./
/Today is Saturday, 8th November./
#+END_CENTER
#+BEGIN_SRC emacs-lisp :exports results :results value html :cache no
(defun akk0/org-to-html (org-string)
@@ -191,7 +191,7 @@ Rows are custom-ids, columns are days."
html))
(akk0/habits-to-html-table habit-alist 310 30 5)
(akk0/habits-to-html-table habit-alist 312 30 5)
#+END_SRC
#+BEGIN_EXPORT html

View File

@@ -86,3 +86,42 @@ Tired, so tired.
:PROPERTIES:
:CUSTOM_ID: dailies-reading
:END:
** Saturday, 8th November
:PROPERTIES:
:DAILIES-YEAR: 2025
:DAILIES-DAY: 312
:END:
*** YES Journal
:PROPERTIES:
:CUSTOM_ID: dailies-blogging
:END:
Many chores today.
*** Habits :autocollapse:
**** NO Meditation
:PROPERTIES:
:CUSTOM_ID: dailies-meditation
:END:
**** NO Drawing
:PROPERTIES:
:CUSTOM_ID: dailies-drawing
:END:
**** NO Engineering
:PROPERTIES:
:CUSTOM_ID: dailies-engineering
:END:
**** NO French
:PROPERTIES:
:CUSTOM_ID: dailies-french
:END:
**** NO Social
:PROPERTIES:
:CUSTOM_ID: dailies-social
:END:
**** NO Exercise
:PROPERTIES:
:CUSTOM_ID: dailies-exercise
:END:
**** NO Reading
:PROPERTIES:
:CUSTOM_ID: dailies-reading
:END:

View File

@@ -97,16 +97,79 @@ Personally, I'm getting a rare chance to critically examine all the little confi
* Appendix A: Transient Terminal Sources
=togglescratch=
#+INCLUDE: "~/Scripts/togglescratch" src fish
#+BEGIN_SRC fish
#!/usr/bin/env fish
if test ! -e /tmp/scratch_id
exec xst -e makescratch
end
set nid (cat /tmp/scratch_id)
if test -e /tmp/scratch_on
rm /tmp/scratch_on
bspc node $nid --to-desktop z
else
touch /tmp/scratch_on
bspc node $nid --to-desktop focused --focus --state fullscreen --flag private=on
end
#+END_SRC
=makescratch=
#+INCLUDE: "~/Scripts/makescratch" src fish
#+BEGIN_SRC fish
#!/bin/fish
set nid (xdo id)
echo $nid > /tmp/scratch_id
bspc node $nid --state fullscreen --flag private=on --to-desktop focused
touch /tmp/scratch_on
set decid (printf '%d' $nid)
xdotool set_window --name "scratchterminal" $decid
exec "$HOME/Scripts/cleanscratch"
#+END_SRC
=cleanscratch=
#+INCLUDE: "~/Scripts/cleanscratch" src fish
#+BEGIN_SRC fish
#!/usr/bin/env fish
$SHELL
rm /tmp/scratch_id
rm /tmp/scratch_on
#+END_SRC
=picom.conf=
#+INCLUDE: "~/.config/picom.conf" src
#+BEGIN_SRC
fading = true;
no-fading-openclose = true;
fade-delta = 5;
vsync = true;
backend="glx";
opacity-rule=["90:name = 'scratchterminal'"];
#opacity-rule=["90:class_g = 'xst-256color'"];
#+END_SRC
* Appendix B: lock.py
#+INCLUDE: "~/Scripts/lock.py" src python
#+BEGIN_SRC fish
#!/usr/bin/python3
import os
import sys
import time
if __name__ == "__main__":
width, height, lwidth, lheight = 2256, 1504, 320, 320
icon = "$HOME/Pictures/lock_small.png"
pape = os.popen("cat /tmp/wallpaper").read()[:-1]
cache = os.popen("cat /tmp/lockscreen_cache").read()[:-1]
if pape != cache or '--ignore-cache' in sys.argv:
os.popen(f"convert {pape} -resize {width}x{height} -background black -gravity center -extent {width}x{height} /tmp/wallpaper.png").read()
os.popen(f"convert -composite /tmp/wallpaper.png {icon} -geometry +{width//2 - lwidth//2}+{height//2 - lheight//2} /tmp/wallpaper.png").read()
os.popen(f"echo {pape} > /tmp/lockscreen_cache")
os.popen("i3lock -u -i /tmp/wallpaper.png")
time.sleep(0.5)
os.popen("loginctl suspend")
#+END_SRC

3
static/.gitattributes vendored Normal file
View File

@@ -0,0 +1,3 @@
*.ttf filter=lfs diff=lfs merge=lfs -text
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.webm filter=lfs diff=lfs merge=lfs -text