Compare commits

..

2 Commits

Author SHA1 Message Date
f4a84d9358
feat(blogv): Add blogv
Add blogv the dumb build log viewer to the repo
NOTE: I also remove the extraneous readme.html that accidentally got
committed
2024-08-16 02:09:41 +01:00
8285e62178 feat(WallChooser): Allow choosing between light and dark theme
Finally it is possible to create both light and dark themes. This
feature is of no use except for the odd occasion where it gets really
bright around me and I can't see the screen.
2024-08-16 02:02:00 +01:00
4 changed files with 51 additions and 216 deletions

View File

@ -1,215 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Readme</title>
<style>
html {
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12px;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
svg {
height: auto;
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
</style>
</head>
<body>
<h1 id="gscripts">GScripts</h1>
<p>A set of scripts which I use in my current Gentoo system, all are
installed through portage and of course are tested to work on my system
and my system alone. Where possible I only use dependencies available in
the main Gentoo repo and each script has the dependencies listed.</p>
<p>All scripts are licensed under the MIT (Expat) License (for more
information on why I give two names for one license please see <a
href="https://www.gnu.org/licenses/license-list.en.html#Expat">what the
GNU project has to say on the matter</a>) I intentionally use the term
MIT license as that is the accepted SPDX license identifier.</p>
<p><em>Coming Eventually:</em> A portage repo that contains my ebuilds
(where I am certain of the accuracy of the license data).</p>
<p>Where scripts have configuration all environment variables are
pseudo-namespaced by <code>$GScripts_&lt;OPTION&gt;</code></p>
<h2 id="the-scripts">The Scripts</h2>
<h3 id="wallchooser">WallChooser</h3>
<p>A simple script that lets you pick a new wallpaper, it automatically
runs all the required steps to generate a new <code>pywal</code> theme
and set the wallpaper using <code>swww</code></p>
<h4 id="requirements">Requirements</h4>
<ul>
<li><code>fzf</code></li>
<li><code>swww</code></li>
<li><code>wal</code></li>
</ul>
<h3 id="barrunner">BarRunner</h3>
<p>A tool to run <code>waybar</code>, Automatically restarting the bar
if any of the required config files are changed. NOTE: This tool is very
much designed around my system and will likely fail to operate properly
for you. It is designed with special handling for different compositors.
And compatibility with <code>pywal</code></p>
<h4 id="arguments">Arguments</h4>
<ul>
<li><code>$1</code> The name of the compositor</li>
<li><code>$2</code> Use <code>pywal</code>? (y|Y|yes triggers pywal
support)</li>
</ul>
<h4 id="requirements-1">Requirements</h4>
<ul>
<li><code>waybar</code></li>
<li><code>inotifywait</code></li>
</ul>
</body>
</html>

View File

@ -30,6 +30,7 @@ wallpaper using `swww`
- `fzf`
- `swww`
- `wal`
- `bemenu`
### BarRunner
A tool to run `waybar`, Automatically restarting the bar if any of the
@ -46,3 +47,25 @@ compatibility with `pywal`
#### Requirements
- `waybar`
- `inotifywait`
### blogv
A simple and naive script to read build log entries.
Really just a bunch of pipes in a shellscript file so it has a name.
Heavily depends on portage build logs being done in a specific way
```bash
## Portage logging
PORTAGE_ELOG_CLASSES="info warn error log qa"
PORTAGE_ELOG_SYSTEM="echo save"
PORTAGE_LOGDIR="/var/log/portage"
PORTAGE_LOG_FILTER_FILE_CMD="bash -c \"ansifilter; exec cat\""
PORTAGE_LOGDIR_CLEAN="find "${PORTAGE_LOGDIR}" -type f ! -name "summary.log*" -mtime +30 -delete"
## Change some features
FEATURES="clean-logs \
split-elog \
split-log "
```
#### Requirements
- `fzf`
- `xargs`
- `bat`

View File

@ -12,6 +12,7 @@ depcheck fzf
depcheck swww
depcheck wal
depcheck foot
depcheck bemenu
## Get wallpaper of choice.
# The single quoted argument of fzf is like that to preserve the variable
@ -27,9 +28,15 @@ WALLPAPER="$(cat /tmp/WallChooserChoice)"
## First set the wallpaper
swww img "$WALLPAPER" &
THEMETYPE="$(printf "light\ndark" | bemenu -c -l2 -W 0.1)"
## Now trigger pywal to update theme data to match
# -n as we don't need to set the wallpaper
if [ "$THEMETYPE" == "light" ]; then
wal -i "$WALLPAPER" -lnq
else
wal -i "$WALLPAPER" -nq
fi
## Now Set the "default" wallpaper symlink
ln -sf "$WALLPAPER" "${GSCRIPTS_WALLPAPERS:-${HOME}/.local/share/backgrounds}/default"

20
blogv Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
# +SPDX:MIT
# A dumb portage build log viewer
# Currently relies on logging being done in a specific way.
# all arguments are sent to bat
## WE NEED SOME DEPENDENCIES
depcheck() {
if ! command -v "$1" &> /dev/null ; then
echo "Missing dependency $1"
exit 1
fi
}
depcheck fzf
depcheck bat
depcheck xargs
# in true unix style this is just a long pipe of pipes
# shellcheck disable=2068
find /var/log/portage/build -type f -iname "*.log" | sed -e 's|/var/log/portage/build/||' -e 's/:.*//' | sort | uniq | fzf | xargs --no-run-if-empty --replace={} find /var/log/portage/build -iwholename "*{}*" | sort | xargs bat ${@}