updates
This commit is contained in:
@@ -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’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’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"> > /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’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’m getting a rare chance to critically examine all the little
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
<code>makescratch</code>
|
||||
</p>
|
||||
@@ -493,9 +479,11 @@ Personally, I’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’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"> > /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} > /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>
|
||||
|
||||
Reference in New Issue
Block a user