refactor(fastfetch): merge the mac and kde configs into common
One Fastfetch package now serves both platforms. The logo is sent inline through the kitty graphics protocol from a pre-encoded albedo.kitty, which works in Ghostty and Kwi alike, so the separate kitty-direct (mac) and Konsole (kde) variants are no longer needed.
This commit is contained in:
1 parent
84e96f175c
commit
fa77bc2514
15 files changed
+62
-183
No files matched your search
@@ -11,9 +11,9 @@ cd "$HOME/.dotfiles"
|
|||||||
|
|
||||||
The packages are split into three groups:
|
The packages are split into three groups:
|
||||||
|
|
||||||
- [common/](common/README.md) has Git, Micro, mpv, npm, Starship and Zsh.
|
- [common/](common/README.md) has Fastfetch, Git, Micro, mpv, npm, Starship and Zsh.
|
||||||
- [mac/](mac/README.md) has Ghostty and the original Fastfetch config.
|
- [mac/](mac/README.md) has Ghostty.
|
||||||
- [kde/](kde/README.md) has the Darwin Breeze theme, Helium, Konsole Fastfetch, Spectacle and tray icons.
|
- [kde/](kde/README.md) has the Darwin Breeze theme, Helium, Spectacle and tray icons.
|
||||||
|
|
||||||
Install all of `common`, then the group for your platform:
|
Install all of `common`, then the group for your platform:
|
||||||
|
|
||||||
@@ -32,10 +32,10 @@ You don't have to install everything. List only the packages you want:
|
|||||||
```sh
|
```sh
|
||||||
stow -d common -t "$HOME" git zsh starship
|
stow -d common -t "$HOME" git zsh starship
|
||||||
stow -d mac -t "$HOME" ghostty
|
stow -d mac -t "$HOME" ghostty
|
||||||
stow -d kde -t "$HOME" spectacle fastfetch
|
stow -d kde -t "$HOME" spectacle
|
||||||
```
|
```
|
||||||
|
|
||||||
`-d` tells Stow which group to read from. `-t` puts the symlinks in your home directory. You can mix packages from different groups. Fastfetch is the exception. Install `mac/fastfetch` or `kde/fastfetch`, never both.
|
`-d` tells Stow which group to read from. `-t` puts the symlinks in your home directory. You can mix packages from different groups.
|
||||||
|
|
||||||
### Previewing and removing
|
### Previewing and removing
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
# Common packages
|
# Common packages
|
||||||
|
|
||||||
Shared configuration for Git, Micro, mpv, npm, Starship, and Zsh.
|
Shared configuration for Fastfetch, Git, Micro, mpv, npm, Starship, and Zsh.
|
||||||
From the repository root, install all shared packages:
|
From the repository root, install all shared packages:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
@@ -14,5 +14,5 @@ stow -d common -t "$HOME" git
|
|||||||
stow -d common -t "$HOME" zsh starship
|
stow -d common -t "$HOME" zsh starship
|
||||||
```
|
```
|
||||||
|
|
||||||
Choose any of `git`, `micro`, `mpv`, `npm`, `starship`, and `zsh`.
|
Choose any of `fastfetch`, `git`, `micro`, `mpv`, `npm`, `starship`, and `zsh`.
|
||||||
Reload Zsh with `exec zsh` after installing its configuration.
|
Reload Zsh with `exec zsh` after installing its configuration.
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
_Ga=T,f=100,t=d,c=20,r=10,q=2,m=1;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\_Gm=1;R+I1tGnTxpUIALupermOJgMSCAQCocgRAEVRUABcUMncKQEgIgA4GU8z+1WrBo888gjLdf/xh+gubA7cBZ8+fRpWr14No0ePhnvvvReSk5PB39/Wc1902jOKAUwTNG7QRosKsLbBpaSkUJs2mDOYVT14e/tqEYBOnTq5JACkCMByagdMIBAIBGciAJUA4KQrPQAEgV26dIl1vhs5ciScPXvWlOiR8LBMEC9vRH67du2CMWPGsEhBpUqVDJEBb53BMDAgFOJjmrESvNIkBPAxMUqRmdqDmR/Fc8YIiIsmQFEFME/u6UAgEAgEQmEFQAAAbBcc7UoVgBFI9GI0rkgVOFpGcWC8P4wQfPvtt3DrrbeyUjpblYEneEkTBNE8iBP7cGCPo7bCxSsAsFPgEDZSWK4EePrpp7Vj5GQKQEwFnCJXdBAIBAKBUJROgD+rZHK1qGkAYx8AmfTlv9/obo3lhEIUCEEg49ChQ/DOO+9Aw4YN7aIC4jqO7MWIAEsNqK16izsaICYJ4uMnJbbWPccvvvjCFQGgSAObvlD7AFAjIAKBQCAUeQ7A2yqZFLkRkBmRuzDtzu6+xKWZGMDfz5o1Czp27OhQCGBqIKVhtq65UHFGAjD6gJEIjErIfRHmzp1rNyypaIdGa9r0P2oFTCAQCARnBUBHlUxEHwBrGNwiGKMM8nhhARy927NnT10PAjk1gB0Ic1v3ZYa84hIBokSxS/5QqFa5jvZc/Pz8YNu2ba6UAcqNgIaRACAQCASCsymA8gBw3NVhQMUBo3fAGBVYv3498wnIZYTCeY8dB9EkKEcC3C0AhA8gJChce05YLnn58mXt9ThxDGQB0E54AOjjTyAQCARLine truncated
|
||||||
File renamed without changes.
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
+1
-1
@@ -11,7 +11,7 @@
|
|||||||
},
|
},
|
||||||
"logo": {
|
"logo": {
|
||||||
"type": "raw",
|
"type": "raw",
|
||||||
"source": "~/.config/fastfetch/albedo-konsole.kitty",
|
"source": "~/.config/fastfetch/albedo.kitty",
|
||||||
"width": 20,
|
"width": 20,
|
||||||
"height": 10
|
"height": 10
|
||||||
},
|
},
|
||||||
File renamed without changes.
@@ -0,0 +1,17 @@
|
|||||||
|
# Fastfetch
|
||||||
|
|
||||||
|
```sh
|
||||||
|
stow -d common -t "$HOME" fastfetch
|
||||||
|
```
|
||||||
|
|
||||||
|
The logo is `albedo.png`, sent inline through the kitty graphics protocol from
|
||||||
|
the pre-encoded `albedo.kitty`. This works in Ghostty and Kwi. The
|
||||||
|
`kitty-direct` logo type is not used because Kwi ignores images passed as a
|
||||||
|
file path.
|
||||||
|
|
||||||
|
After changing `albedo.png` or the logo size in `config.jsonc`, regenerate the
|
||||||
|
logo from the repository root:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
python3 common/fastfetch/build.py
|
||||||
|
```
|
||||||
Executable
+33
@@ -0,0 +1,33 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Encode albedo.png as kitty graphics escapes for fastfetch's "raw" logo.
|
||||||
|
|
||||||
|
fastfetch's "kitty-direct" logo sends the terminal a file path (t=f), which
|
||||||
|
Kwi ignores. This file carries the PNG inline (t=d) instead, so it works in
|
||||||
|
any terminal with the kitty graphics protocol, Ghostty and Kwi included. q=2
|
||||||
|
keeps the terminal from answering. Rerun after changing the image or the
|
||||||
|
logo size.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import base64
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
DIR = Path(__file__).resolve().parent / ".config/fastfetch"
|
||||||
|
# Logo size in cells; keep in sync with "width" and "height" in config.jsonc.
|
||||||
|
COLS, ROWS = 20, 10
|
||||||
|
|
||||||
|
|
||||||
|
def encode(png: bytes) -> bytes:
|
||||||
|
data = base64.b64encode(png)
|
||||||
|
chunks = [data[i : i + 4096] for i in range(0, len(data), 4096)]
|
||||||
|
out = bytearray()
|
||||||
|
for n, chunk in enumerate(chunks):
|
||||||
|
more = int(n < len(chunks) - 1)
|
||||||
|
if n == 0:
|
||||||
|
keys = b"a=T,f=100,t=d,c=%d,r=%d,q=2,m=%d" % (COLS, ROWS, more)
|
||||||
|
else:
|
||||||
|
keys = b"m=%d" % more
|
||||||
|
out += b"\x1b_G" + keys + b";" + chunk + b"\x1b\\"
|
||||||
|
return bytes(out)
|
||||||
|
|
||||||
|
|
||||||
|
(DIR / "albedo.kitty").write_bytes(encode((DIR / "albedo.png").read_bytes()))
|
||||||
+2
-4
@@ -9,14 +9,13 @@ From the repository root, install all KDE packages:
|
|||||||
Or choose individual packages:
|
Or choose individual packages:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
stow -d kde -t "$HOME" spectacle fastfetch
|
stow -d kde -t "$HOME" spectacle helium
|
||||||
```
|
```
|
||||||
|
|
||||||
| Package | Details |
|
| Package | Details |
|
||||||
| ---------------------------------- | -------------------------------------------------------- |
|
| ---------------------------------- | -------------------------------------------------------- |
|
||||||
| [theme](theme/README.md) | Darwin Breeze KDE colors and generated app themes |
|
| [theme](theme/README.md) | Darwin Breeze KDE colors and generated app themes |
|
||||||
| [helium](helium/README.md) | Browser flags; colors come from GTK |
|
| [helium](helium/README.md) | Browser flags; colors come from GTK |
|
||||||
| [fastfetch](fastfetch/README.md) | Konsole configuration and a pre-scaled inline image logo |
|
|
||||||
| [spectacle](spectacle/README.md) | Screenshots to clipboard with a notification, no preview |
|
| [spectacle](spectacle/README.md) | Screenshots to clipboard with a notification, no preview |
|
||||||
| [tray-icons](tray-icons/README.md) | Ngó Sen and qBittorrent tray icons |
|
| [tray-icons](tray-icons/README.md) | Ngó Sen and qBittorrent tray icons |
|
||||||
|
|
||||||
@@ -33,5 +32,4 @@ The apply scripts require a running KDE Plasma 6 session. Ngó Sen icons need
|
|||||||
an additional install step described in the tray-icons README.
|
an additional install step described in the tray-icons README.
|
||||||
|
|
||||||
Packages can be selected independently; Helium follows the Darwin Breeze
|
Packages can be selected independently; Helium follows the Darwin Breeze
|
||||||
colors only when the theme is applied. Choose either `kde/fastfetch` or
|
colors only when the theme is applied.
|
||||||
`mac/fastfetch`; both own `~/.config/fastfetch/`.
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
_Ga=T,f=100,t=d,c=20,r=10,q=2,m=1;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\_Gm=1;2CzUiM53eKtBKKIrpLeyTzEjo54ifjUgpOfqaqxO8jgVGiX/zaZiv5kqvU+SQXJkYerUqQJ8bk6hBL52goHe22igSfbziCfL1U+A8b9pkDCguZ5MtWrGcHcPISB6wdTUCXr61qhS1Rz2toGIDGqAGlFZwkXD+4cTY/IXjiLOeTM831+7dm21Fl2BxbgZUkSoUB/8bzWV3tdEXvGvMd+K5SvE5Lg6hgi3xttErq7O+mFsWCNYmDoTAzUv4DbR7n+PHaXP107qKAyh0qXLw9HBCdUTYpDZpB6aZ9ZH3TopiAyPgJuzn9g34ukcj7jwTGGps69QKvHRVBgnHPbj+xw+fPhrIFQtyh7yeBUvBOH/salErz6t8qvyAL9UxBC348dPoHyFcrCx8JCYjybrP2Eq1v9sLN0RHZqB9MR2mjow7MvjRyk5obWUavXe39mCgN0E5sZuSEtNxoK543Ht4l48fXCeqJtu5/lVvHx6GfdvncTp45sxb/ZvaNemOXy9Auh+fIk5U4mdvxTxaV5UzM5erlEoUvRTsSdZ1v00RCg/chkuJW5cWBD9/9KQ73IZqV7liv7z+PETeHl7okpFY3lL5N93JitAqZvSCa4OoQQWD3g4xcLO0o9A4AVbKy/xaGflD3vrELKY676zFIfCqjGhjeDjGYgFc8YJsL14fAkP75zBnZzjuHXzGPWjot/JPYFHd8/i1VMC5YvruHFlP2ZMHY60Wsn0+x5wc4ghADanhdBKLA5jA3tYWVvi9u3bUI+HDELFKf+TAsBCnfA/aMhPnXeHnL2srHJl1Xfu0lmUPpOUeEXk/T3gsd4V7FubAOdPYtATdWun4MeBvTBn1hisXTUTmzfLine truncated
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# Fastfetch for Konsole
|
|
||||||
|
|
||||||
From the repository root:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
stow -d kde -t "$HOME" fastfetch
|
|
||||||
```
|
|
||||||
|
|
||||||
The configuration, source PNG, and generated logo live in
|
|
||||||
`kde/fastfetch/.config/fastfetch/`. The generated logo is included, so a new
|
|
||||||
machine does not need to run the build script.
|
|
||||||
|
|
||||||
Choose either this package or `mac/fastfetch`; both own `~/.config/fastfetch/`.
|
|
||||||
|
|
||||||
Konsole needs inline image data instead of the original `kitty-direct` file
|
|
||||||
transfer. The committed `albedo-konsole.kitty` logo is pre-scaled to 20 × 10
|
|
||||||
cells to avoid grainy terminal scaling.
|
|
||||||
|
|
||||||
After changing `albedo.png`, the logo dimensions, or Konsole's font, update
|
|
||||||
the cell size in `build.py` and regenerate the logo from the repository root:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
python3 kde/fastfetch/build.py
|
|
||||||
```
|
|
||||||
|
|
||||||
The build script requires `vipsthumbnail` from libvips.
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/usr/bin/env python3
|
|
||||||
"""Encode albedo.png as kitty graphics escapes for fastfetch's "raw" logo.
|
|
||||||
|
|
||||||
fastfetch's "kitty-direct" logo sends the terminal a file path (t=f). Konsole
|
|
||||||
only accepts inline data (t=d) and answers t=f with ENOTSUPPORTED, which lands
|
|
||||||
on the prompt as typed input. These files carry the PNG inline instead, with
|
|
||||||
q=2 so the terminal never answers at all.
|
|
||||||
|
|
||||||
.config/fastfetch/albedo-konsole.kitty pre-scaled for Konsole
|
|
||||||
|
|
||||||
Konsole stretches the image to the c x r cell box with nearest-neighbour
|
|
||||||
scaling, at logical (not device) pixel size, so a 512px source turns grainy.
|
|
||||||
The Konsole copy is resized with Lanczos to exactly that box, which leaves
|
|
||||||
Konsole nothing to scale. Rerun after changing the image, the logo size or the
|
|
||||||
Konsole font.
|
|
||||||
"""
|
|
||||||
|
|
||||||
import base64
|
|
||||||
import subprocess
|
|
||||||
import tempfile
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
PKG = Path(__file__).resolve().parent
|
|
||||||
DIR = PKG / ".config/fastfetch"
|
|
||||||
SOURCE = DIR / "albedo.png"
|
|
||||||
# Logo size in cells; keep in sync with "width" and "height" in config.jsonc.
|
|
||||||
COLS, ROWS = 20, 10
|
|
||||||
# Konsole's cell size in logical pixels for JetBrainsMono Nerd Font 10pt
|
|
||||||
# (QFontMetrics: average advance of Konsole's REPCHAR, and height()).
|
|
||||||
KONSOLE_CELL = 8, 17
|
|
||||||
|
|
||||||
|
|
||||||
def encode(png: bytes, dst: Path) -> None:
|
|
||||||
data = base64.b64encode(png)
|
|
||||||
chunks = [data[i : i + 4096] for i in range(0, len(data), 4096)]
|
|
||||||
out = bytearray()
|
|
||||||
for n, chunk in enumerate(chunks):
|
|
||||||
more = int(n < len(chunks) - 1)
|
|
||||||
if n == 0:
|
|
||||||
keys = b"a=T,f=100,t=d,c=%d,r=%d,q=2,m=%d" % (COLS, ROWS, more)
|
|
||||||
else:
|
|
||||||
keys = b"m=%d" % more
|
|
||||||
out += b"\x1b_G" + keys + b";" + chunk + b"\x1b\\"
|
|
||||||
dst.write_bytes(out)
|
|
||||||
|
|
||||||
|
|
||||||
def resize(width: int, height: int) -> bytes:
|
|
||||||
with tempfile.TemporaryDirectory() as tmp:
|
|
||||||
out = Path(tmp) / "out.png"
|
|
||||||
subprocess.run(
|
|
||||||
["vipsthumbnail", SOURCE, "--size", f"{width}x{height}!", "-o", out],
|
|
||||||
check=True,
|
|
||||||
)
|
|
||||||
return out.read_bytes()
|
|
||||||
|
|
||||||
|
|
||||||
encode(resize(COLS * KONSOLE_CELL[0], ROWS * KONSOLE_CELL[1]), DIR / "albedo-konsole.kitty")
|
|
||||||
+1
-7
@@ -6,16 +6,10 @@ From the repository root, install all macOS packages:
|
|||||||
(cd mac && stow -t "$HOME" */)
|
(cd mac && stow -t "$HOME" */)
|
||||||
```
|
```
|
||||||
|
|
||||||
Or choose individual packages:
|
Install the package:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
stow -d mac -t "$HOME" ghostty
|
stow -d mac -t "$HOME" ghostty
|
||||||
stow -d mac -t "$HOME" fastfetch
|
|
||||||
```
|
```
|
||||||
|
|
||||||
- `ghostty`: JetBrainsMono Nerd Font and Ghostty's bundled SpaceGray Eighties theme.
|
- `ghostty`: JetBrainsMono Nerd Font and Ghostty's bundled SpaceGray Eighties theme.
|
||||||
- `fastfetch`: the original configuration, with a `kitty-direct` image logo.
|
|
||||||
Its source PNG is included in `fastfetch/.config/fastfetch/`.
|
|
||||||
|
|
||||||
These packages are independent. Choose either `mac/fastfetch` or
|
|
||||||
`kde/fastfetch`; both own `~/.config/fastfetch/`.
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 138 KiB |
@@ -1,80 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/master/doc/json_schema.json",
|
|
||||||
"display": {
|
|
||||||
"key": {
|
|
||||||
"width": 10
|
|
||||||
},
|
|
||||||
"size": {
|
|
||||||
"binaryPrefix": "jedec"
|
|
||||||
},
|
|
||||||
"separator": ""
|
|
||||||
},
|
|
||||||
"logo": {
|
|
||||||
"type": "kitty-direct",
|
|
||||||
"source": "~/.config/fastfetch/albedo.png",
|
|
||||||
"width": 20,
|
|
||||||
"height": 10
|
|
||||||
},
|
|
||||||
"modules": [
|
|
||||||
"break",
|
|
||||||
{
|
|
||||||
"type": "os",
|
|
||||||
"key": "os",
|
|
||||||
"keyColor": "yellow",
|
|
||||||
"format": "{name}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "kernel",
|
|
||||||
"key": "ker",
|
|
||||||
"keyColor": "green"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "packages",
|
|
||||||
"key": "pkgs",
|
|
||||||
"keyColor": "cyan"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "shell",
|
|
||||||
"key": "sh",
|
|
||||||
"keyColor": "blue",
|
|
||||||
"format": "{pretty-name}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "wm",
|
|
||||||
"key": "wm",
|
|
||||||
"keyColor": "red",
|
|
||||||
"format": "{pretty-name}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "uptime",
|
|
||||||
"key": "up",
|
|
||||||
"keyColor": "green"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "cpu",
|
|
||||||
"key": "cpu",
|
|
||||||
"keyColor": "red",
|
|
||||||
"format": "{name}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "memory",
|
|
||||||
"key": "ram",
|
|
||||||
"keyColor": "yellow",
|
|
||||||
"format": "{used} / {total}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "disk",
|
|
||||||
"key": "disk",
|
|
||||||
"keyColor": "cyan",
|
|
||||||
"folders": [
|
|
||||||
"/"
|
|
||||||
],
|
|
||||||
"format": "{size-used} / {size-total}"
|
|
||||||
},
|
|
||||||
"break",
|
|
||||||
{
|
|
||||||
"type": "custom",
|
|
||||||
"format": "\u001b[33m \u001b[32m \u001b[34m \u001b[31m \u001b[36m \u001b[35m \u001b[37m \u001b[97m"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Reference in new issue
Block a user