Add support for .title files, migrate update posts to markdown

This commit is contained in:
Jacob 2023-08-28 17:14:43 +02:00
parent e7eb69b6f1
commit dba8d24f14
80 changed files with 1539 additions and 535 deletions

View file

@ -0,0 +1 @@
Normies are destroying GNU/Linux

View file

@ -105,6 +105,17 @@ function getDateForPost($postName, $postDate) {
}
}
function getNameForPost($postName) {
$file = BLOG_PATH . "/$postName." . BLOG_EXT . ".title";
$title = $postName;
if (file_exists($file)) {
return rtrim(file_get_contents($file));
}
return $postName;
}
function getAllPostNames($path = "") {
$filenames = array();
$dir = opendir(BLOG_PATH . "/$path" );
@ -241,7 +252,7 @@ if ( $action === 'home') {
// Print text before blog itself
$html .= "<h2>Blog</h2>\n";
$html .= " <p>This is a list of all my blog posts. If you prefer, you can also read them using your favorite RSS reader through <a href=\"rss.xml\">my feed.</a>\n";
$html .= " <p>If you wish, you can also get site updates, through the <a href=\"updates.xml\">updates feed.</a> The feed is updated whenever there are important things to announce with the site, or a new release for my software is out.</p>\n";
$html .= " <p>If you wish, you can also get site updates, through the <a href=\"updates.xml\">updates feed</a> or <a href=\"updates.php\"> your web browser.</a> The feed is updated whenever there are important things to announce with the site, or a new release for my software is out.</p>\n";
$html .= " <ul>\n";
$f = "0";
@ -260,9 +271,10 @@ if ( $action === 'home') {
$pubDate = date('r', strtotime(getDateForPost($postName, $postDate)));
$link = postURL($postName, $postName);
$description = toHTML(file_get_contents(fileNameForPost($postName)));
$title = getNameForPost($postName);
$rss .= "<item>\n";
$rss .= " <title>$postName</title>\n";
$rss .= " <title>$title</title>\n";
$rss .= " <link>$link</link>\n";
$rss .= " <guid>$link</guid>\n";
$rss .= " <pubDate>$pubDate</pubDate>\n";
@ -276,10 +288,10 @@ if ( $action === 'home') {
$html .= "<li>";
if (!$f) {
$html .= " <p class=\"latest\"><strong>$num</strong>".BLOG_LATEST_TEXT.postLink($postName, $postName).", written ".getDateForPost($postName, $postDate)."</p>";
$html .= " <p class=\"latest\"><strong>$num</strong>".BLOG_LATEST_TEXT.postLink($postName, $title).", written ".getDateForPost($postName, $postDate)."</p>";
$f = 1;
} else {
$html .= " <p><strong>$num</strong> ".postLink($postName, $postName).", written ".getDateForPost($postName, $postDate)."</p>";
$html .= " <p><strong>$num</strong> ".postLink($postName, $title).", written ".getDateForPost($postName, $postDate)."</p>";
}
$html .= "</li>\n";

View file

@ -2217,7 +2217,7 @@ free on Codeberg so you can still have that if you want.</p>
</description>
</item>
<item>
<title>Normies are destroying GNU Linux</title>
<title>Normies are destroying GNU/Linux</title>
<link>/blog.php/Normies+are+destroying+GNU+Linux</link>
<guid>/blog.php/Normies+are+destroying+GNU+Linux</guid>
<pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>

325
updates.php Normal file
View file

@ -0,0 +1,325 @@
<?php
/*
* speedie-blog
*
* Copyright (C) 2007-2011 Steven Frank <http://stevenf.com/>
* Copyright (C) 2023 speedie <speedie@speedie.site>
*
* See LICENSE.blog file for copyright and license details.
*/
// some settings
define('BLOG_EXT', "md");
define('BLOG_TITLE', "speedie.site updates");
define('BLOG_DESC', "Update feed, for quick short updates.");
define('BLOG_URL', "https://speedie.site/updates");
define('BLOG_LATEST_TEXT', "Latest update: ");
define('BLOG_DIR', "/updates");
define('DISPLAY_NUM', false);
define('DISPLAY_ID', false);
define('ENABLE_TITLE', true);
define('ENABLE_HEAD', true);
define('ENABLE_FOOTER', true);
define('META_DESC', true);
define('META_ENC', true);
spl_autoload_register(function($class) {
require str_replace('\\', DIRECTORY_SEPARATOR, ltrim($class, '\\')).'.php';
});
define('SELF', $_SERVER['SCRIPT_NAME']);
define('VIEW', '');
define('BASE_URI', str_replace('/index.php', '', $_SERVER['SCRIPT_NAME']));
define('BLOG_PATH', dirname(__FILE__). BLOG_DIR);
use md\MarkdownExtra;
function isntNull( $label, $alt_word = null ) {
return is_null($alt_word) ? $label : $alt_word;
}
function truncate($text, $chars) {
if (strlen($text) <= $chars) {
return $text;
}
$text = $text." ";
$text = substr($text,0,$chars);
$text = substr($text,0,strrpos($text,' '));
$text = $text."...";
return $text;
}
function printHeader($title, $action, $html) {
// TODO: Improve this garbage, I suck at PHP and this is just stuff I found on the internet.
if (META_DESC) {
$nhtml = $html;
$nhtml = preg_replace( '@<p\b[^>]*>(?=.*?<a\b[^>]*>).*?<\@p>@si', '', $nhtml);
$nhtml = preg_replace( '@<(li)[^>]*?>.*?</\\1>@si', '', $nhtml);
$nhtml = preg_replace( '@<(ul)[^>]*?>.*?</\\1>@si', '', $nhtml);
$nhtml = strip_tags($nhtml);
$nhtml = preg_replace('/\s*$^\s*/m', "\n", $nhtml);
$nhtml = truncate($nhtml, 512);
}
if (ENABLE_HEAD) {
print "<!DOCTYPE html>\n";
print "<head>\n";
if (META_DESC && $action != 'home') {
print "<meta name=\"description\" content=\"$nhtml\">\n";
} else if (META_DESC) {
print "<meta name=\"description\" content=". BLOG_DESC .">\n";
}
if (ENABLE_TITLE) {
print "<title>$title</title>\n";
}
include("php/header.php");
print " </head>\n";
}
print " <body>\n";
print "<div class=\"content\">\n\n";
}
function printFooter() {
if (ENABLE_FOOTER) {
print " </body>\n";
print "<footer>\n";
include("php/footer.php");
print "</footer>\n";
}
}
function getDateForPost($postName, $postDate) {
$file = BLOG_PATH . "/$postName." . BLOG_EXT . ".date";
if (file_exists($file)) {
return file_get_contents($file);
} else {
return 0;
}
}
function getNameForPost($postName) {
$file = BLOG_PATH . "/$postName." . BLOG_EXT . ".title";
$title = $postName;
if (file_exists($file)) {
return rtrim(file_get_contents($file));
}
return $postName;
}
function getAllPostNames($path = "") {
$filenames = array();
$dir = opendir(BLOG_PATH . "/$path" );
while ( $filename = readdir($dir) ) {
if ( $filename[0] == "." ) {
continue;
}
if ( is_dir( BLOG_PATH . "/$path/$filename" ) ) {
array_push($filenames, ...getAllPostNames( "$path/$filename" ) );
continue;
}
if ( preg_match("/".BLOG_EXT."$/", $filename) != 1) {
continue;
}
$filename = substr($filename, 0, -(strlen(BLOG_EXT)+1) );
$filenames[] = substr("$path/$filename", 1);
}
closedir($dir);
return $filenames;
}
function fileNameForPost($post) {
return BLOG_PATH . "/$post." . BLOG_EXT;
}
function dateForPost($post) {
$file = BLOG_PATH . "/$post." . BLOG_EXT . ".date";
if (file_exists($file)) {
return file_get_contents($file);
}
}
function numForPost($post) {
$file = BLOG_PATH . "/$post." . BLOG_EXT . ".num";
if (file_exists($file)) {
return file_get_contents($file);
} else {
return 0;
}
}
function sanitizeFilename($inFileName) {
return str_replace(array('~', '..', '\\', ':', '|', '&', '.', '+', '!'), '-', $inFileName);
}
function postURL($post) {
return SELF . VIEW . "/".str_replace("%2F", "/", str_replace("%23", "#", urlencode(sanitizeFilename($post))));
}
function postLink($post, $title, $attributes="") {
return "<a href=\"" . postURL($post) ."\"$attributes>$title</a>";
}
function toHTMLID($noid) {
return str_replace(" ", "-", $noid);
}
function toHTML($inText) {
$parser = new MarkdownExtra;
$parser->no_markup = true;
$outHTML = $parser->transform($inText);
preg_match_all("/\[\[(.*?)\]\]/", $outHTML, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[0]); $i++) {
$fullLinkText = $matches[1][$i];
$linkTitleSplit = explode('|', $fullLinkText);
$linkedPost = $linkTitleSplit[0]; // split away an eventual link text
$linkText = (count($linkTitleSplit) > 1) ? $linkTitleSplit[1] : $linkedPost;
$postPart = explode('#', $linkedPost)[0]; // split away an eventual anchor part
$linkedFilename = fileNameForPost(sanitizeFilename($postPart));
$exists = file_exists($linkedFilename);
}
preg_match_all("/<h([1-4])>(.*?)<\/h\\1>/", $outHTML, $matches, PREG_PATTERN_ORDER);
for ($i = 0; $i < count($matches[0]); $i++) {
$prefix = "<h".$matches[1][$i].">";
$caption = $matches[2][$i];
$suffix = substr_replace($prefix, "/", 1, 0);
}
return $outHTML;
}
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'view';
$newPost = "";
$text = "";
$html = "";
$rss = "";
$post = preg_match('@^/@', @$_SERVER["PATH_INFO"]) ?
urldecode(substr($_SERVER["PATH_INFO"], 1)) : urldecode(@$_REQUEST['post']);
$post = sanitizeFilename($post);
if ($post != '') {
$filename = fileNameForPost($post);
if ( file_exists($filename) ) {
$text = file_get_contents($filename);
} else {
$newPost = NULL;
include('php/404.php');
die();
}
} else {
$action = 'home';
}
if ( $action === 'home') {
$postNames = getAllPostNames();
$filelist = array();
$sortBy = isset($_REQUEST['sortBy']) ? $_REQUEST['sortBy'] : 'name';
foreach($postNames as $post) {
$filelist[$post] = strtotime(dateForPost($post));
}
arsort($filelist, SORT_NUMERIC);
// Create the RSS feed
$rss .= "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n";
$rss .= "<channel>\n";
$rss .= " <title>". BLOG_TITLE ."</title>\n";
$rss .= " <description>". BLOG_DESC ."</description>\n";
$rss .= " <atom:link href=\"". BLOG_URL ."\" rel=\"self\" type=\"application/updates.xml\" />\n";
$html .= "<h2>Updates</h2>\n";
$html .= " <p>This is a list of all my update posts. If you prefer, you can also read them using your favorite RSS reader through <a href=\"updates.xml\">my feed.</a>\n";
$html .= " <ul>\n";
$f = "0";
$num = "";
foreach ($filelist as $postName => $postDate) {
if (DISPLAY_NUM) {
$i += 1;
$num = "$i ";
}
if (DISPLAY_ID) {
$i = numForPost($postName);
$num = "$i";
}
$pubDate = date('r', strtotime(getDateForPost($postName, $postDate)));
$link = postURL($postName, $postName);
$description = toHTML(file_get_contents(fileNameForPost($postName)));
$title = getNameForPost($postName);
$rss .= "<item>\n";
$rss .= " <title>$title</title>\n";
$rss .= " <link>$link</link>\n";
$rss .= " <guid>$link</guid>\n";
$rss .= " <pubDate>$pubDate</pubDate>\n";
$rss .= " <description>\n";
$rss .= " <![CDATA[\n";
$rss .= " $description\n";
$rss .= " ]]>\n";
$rss .= " </description>\n";
$rss .= "</item>\n";
$html .= "<li>";
if (!$f) {
$html .= " <p class=\"latest\"><strong>$num</strong>".BLOG_LATEST_TEXT.postLink($postName, $title).", written ".getDateForPost($postName, $postDate)."</p>";
$f = 1;
} else {
$html .= " <p><strong>$num</strong> ".postLink($postName, $title).", written ".getDateForPost($postName, $postDate)."</p>";
}
$html .= "</li>\n";
}
$html .= "</ul>\n";
// End the RSS feed
$rss .= "</channel>\n";
$rss .= "</rss>\n";
if (file_get_contents('updates.xml') != $rss) {
file_put_contents('updates.xml', $rss);
}
} else { // convert the post and view it
$html .= empty($text) ? '' : toHTML($text);
}
// All blog posts
if (($action === 'home')) {
$title = isntNull("Update posts");
} else if ($filename != '') {
$title = $post;
}
// print text
printHeader($title, $action, $html);
print " $html\n";
print " </div>\n";
printFooter();
print "</html>\n";

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,10 @@
# Forwarder Factory repositories are being migrated
Because I don't trust GitHub, I have decided to host the
[wii](https://github.com/ForwarderFactory/wii) and
[hbc-archive](https://github.com/ForwarderFactory/hbc-archive) repositories
on my own Git server. The chance of a DMCA takedown request is **very** low,
but I want these projects completely preserved.
Also, the Forwarder Factory Discord server which has been archived for many
months now is being deleted today. RIP.

View file

@ -0,0 +1 @@
2023-08-10

6
updates/Git issues.md Normal file
View file

@ -0,0 +1,6 @@
# Git issues
I am unable to update the Git repository
[speedie-aur](https://git.speedie.site/speedie/speedie-aur) due to
its massive size. Because of this, I will be migrating the repository.
I will update you on this soon.

View file

@ -0,0 +1 @@
2023-08-19

View file

@ -0,0 +1,9 @@
# Gitea migration
Today I migrated from Gitea to Forgejo. It's pretty much a drop in replacement,
but please let me know about any issues you may discover. Note that the theme
may have changed for you from a bright green color to a dark orange color.
This is completely fine.
None of your repositories should have been affected by this in any way, and
if they were I have backups of them. In that case, let me know.

View file

@ -0,0 +1 @@
2023-08-07

View file

@ -0,0 +1,10 @@
# Important: Update your pacman.conf
The migration has been completed. Change `Server = https://git.speedie.site...`
in your pacman.conf for speedie-aur to `https://aur.speedie.site` and update as
normal. There are still some things to be done, such as a web interface for
searching for packages.
Note that it may be a bit unstable, and I am going to be rebuilding all of the
packages in the repository. This means some may not be included. Feel free to
email me if you have any questions or issues.

View file

@ -0,0 +1 @@
2023-08-19

View file

@ -0,0 +1 @@
Important: Update your pacman.conf

View file

@ -0,0 +1,11 @@
# Introducing aur.speedie.site
This is an update to yesterday's update post. I have now finished
the web interface for the speedie-aur Arch Linux repository. You can
check it out [here](https://aur.speedie.site). It allows you to view
all packages as well as information about them, similar to
packages.archlinux.org.
Please note that some packages have been removed, and all packages have
been rebuilt. Notably `spde` has been removed from the repositories
along with other broken packages.

View file

@ -0,0 +1 @@
2023-08-28

View file

@ -0,0 +1 @@
Introducing aur.speedie.site

View file

@ -0,0 +1,5 @@
# New project: swiki
I have started a new project. Derived from the spmenu wiki is a separate
project containing simply the wiki code - swiki. You can now try out swiki
if you want [here](https://git.speedie.site/speedie/swiki).

View file

@ -0,0 +1 @@
2023-08-10

View file

@ -0,0 +1 @@
New project: swiki

View file

@ -0,0 +1,6 @@
# fontctrl 1.3 release
fontctrl 1.3 release. This release fixes some small bugs.
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the updated version [here](https://git.speedie.site/speedie/fontctrl).

View file

@ -0,0 +1 @@
2023-06-06

View file

@ -0,0 +1 @@
fontctrl 1.3 release

View file

@ -0,0 +1,8 @@
# speedie.site update
I am now using Gentoo on my desktop and FreeBSD on my laptop.
For you, this means the Gentoo overlay is back up and maintained again, and
you may end up seeing some FreeBSD software and support.
It is worth noting though that the Arch Linux repository will be maintained
as well, because I use Arch quite often.

View file

@ -0,0 +1 @@
2023-07-30

View file

@ -0,0 +1 @@
speedie.site update

View file

@ -0,0 +1,30 @@
# spmenu 1.1 release
spmenu 1.1 release. There are many changes, such as:
- New theme.conf. Support for legacy themes also removed
- spmenu\_profile removed, a separate program must now be used for managing themes
- Meson is now used to build the project, although it should be noted that you
can still use the build.sh.
- Add option to return item index
- Fix color emojis crashing in case the user is using an old libXft version
- Desktop entries are now validated before being displayed/cached
- Caching is no longer optional, this allows a better codebase, and no one in
their right mind would want it disabled anyway
- Add option to read entries from a file allowing entries to be auto updated
when the file has been changed.
- Add Arc-Dark theme to themes/
- Clean up warnings when -Ofast is used
- Replace suckless coding style with my own
- Properly indent all C code
- Use pascal case for clicks in the keybinds.h and mouse.h headers as well
as the spmenu.conf
- No longer use PDFs
- Fix -nxrdb/xrdb arguments
- Fix duplicate entries in spmenu\_run when using the -cc argument caused by
arrays not being cleared before reuse
- Add 256 colors to the sgrcolors array by default
- And much more.
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-05-08

View file

@ -0,0 +1 @@
spmenu 1.1 release

View file

@ -0,0 +1,18 @@
# spmenu 1.1.1 release
spmenu 1.1.1 release. Very small release, but it fixes small issues with 1.1,
such as:
- Don't use stupid sed/variable jank in meson.build, as one good sir pointed
out to me it's not necessary
- Optimization is now set by the buildconf
- Debloat build.sh script
- Fix a bug where the caret may be moved if an item to the left/right is selected
- Enable highlighting for entries that use SGR sequences
- Add option to not allow typing if what is being typed doesn't have any
matches. spmenuify uses this.
- Rename some headers to more fitting names
- Change some default keybinds (your existing spmenu.conf will still work)
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-05-10

View file

@ -0,0 +1 @@
spmenu 1.1.1 release

View file

@ -0,0 +1,13 @@
# spmenu 1.1.2 release
spmenu 1.1.2 release. Minor release, fixing small issues with 1.1.1, such as:
- Fix Pango markup bug
- Use img:// prefix rather than IMG:
- Allow UTF-8 text to be toggled
- Don't draw images until KeyRelease
- Fix arch package
- Change some default keybinds (your existing spmenu.conf will still work)
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-05-12

View file

@ -0,0 +1 @@
spmenu 1.1.2 release

View file

@ -0,0 +1,20 @@
# spmenu 1.2 release
spmenu 1.2 release. Minor release, fixing small issues with 1.1.1, such as:
- spmenu_test displays 256 colors now and overall looks nicer
- Add option to override image cache directory
- Add .desktop entries
- Add basic vector logo
- Add rofi like 'next' colors
- Add option to not validate desktop entries
- Add function to fullscreen an image
- Add Ctrl+Alt+Shift+Delete keybind to kill spmenu if the keybind is removed
- Add separate man page for spmenu\_run
- Add multi selection (marking) to spmenu
- Add script for generating themes
- Improve pacman PKGBUILD
- Improve meson.build and meson.options
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-05-19

View file

@ -0,0 +1 @@
spmenu 1.2 release

View file

@ -0,0 +1,15 @@
# spmenu 2.0 release
spmenu 2.0 release. This release fixes many bugs, but notably adds in
experimental Wayland support. It is enabled by default.
- Add Wayland support
- Code cleanup
- Remove UTF-8 toggle
- Use Cairo for everything, no more X11 specific libraries for drawing. This
also means arrows look much better.
- Remove colorschemes, colors are now passed directly to drw\_text.
- Add bind.conf file, which can be used to configure keybinds individually
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-02

View file

@ -0,0 +1 @@
spmenu 2.0 release

View file

@ -0,0 +1,20 @@
# spmenu 2.0.1 release
spmenu 2.0.1 release. This release fixes some issues with release 2.0.
- Fix alpha option for Wayland
- Fix X11 support. It would work under Xwayland but not a real X11 window manager
- Update URLs after the cgit to gitea migration
- Add license notice to all the scripts
- Remove old and outdated comments from the example .Xresources file
- Disable broken X11 only features under Wayland.
- Remove old USEPANGO code
- Fix typo in `die()` call
- Bash is now a dependency in the PKGBUILD, as it should be
- Freetype is no longer a dependency in the PKGBUILD, it's not necessary
- Move the code for opening the display to `readstdin()`, so .Xresources can
be used if Wayland as the primary protocol is enabled, but X11 is actually used.
- Don't remove spmenu-VERSION.tar.gz when creating a pacman package.
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-03

View file

@ -0,0 +1 @@
spmenu 2.0.1 release

View file

@ -0,0 +1,24 @@
# spmenu 2.1 release
spmenu 2.1 release. This release is once again mostly a bug fix update, but
introduces some pretty cool stuff.
- Add X11 toggle, so now spmenu can run 100% on Wayland without any X libraries installed.
- Add option to override path to theme file, useful for Pywal.
- Drop official macOS support (it will most likely still work though).
- Massive documentation improvements
- Remove old preview image, add new screenshots including some animated gifs.
- Add rounded variant of the powerline
- Add support for images on Wayland too.
- Keybinds in the config file are now one liners, so the default config is a
lot more user friendly.
- Indent lines in the default config file
- Fix previously undiscovered bugs with the keybind handling
- Replace the spmenu colorscheme with a new colorscheme
- Enable rounded powerlines and indentitems by default
- Update spmenu(1) and spmenu\_run(1) to point to this repository instead.
- Fix one instance of a keybind conflict causing multiple keybinds to be activated.
- Move the rest of the headers to libs/
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-09

View file

@ -0,0 +1 @@
spmenu 2.1 release

View file

@ -0,0 +1,27 @@
# spmenu 2.1.1 release
spmenu 2.1.1 release. Some cleanup and fixes after the 2.1 release, nothing too major.
- Replace deprecated MD5() function (yay!)
- Remove unused cursor code from (now) draw.c
- Move libs/libdrw/drw.c to libs/draw/draw.c and libs/libdrw/drw.h to libs/draw/draw.h
- Move libs/sl/main.c to libs/main.c and libs/sl/main.h to libs/main.h
- Add slightly safer strncpy() function to main.c and use it everywhere
- Fix keybind conflict in the Wayland keybind array, 2.1 forgot this.
- Add options to the config allowing width, height and padding for the
cursor/caret to be set in the config file.
- Cleanup menu height setting by calling a single function instead
- Fix a freeze when certain parts of spmenu is hidden and an image is drawn
- Fix compiling when !USEIMAGE
- Massively clean up image drawing code
- Don't include Xlib in draw.c if !USEX
- Fix fullscreen image mode height
- Fix typo causing image gaps to set the image height in the config file
- Simplify .gitignore, much of what it used to contain is no longer useful
- Add -fl or --feature-list argument allowing you to see what features were
compiled in
- Allow forcing xdg directory if $XDG\_CACHE\_DIR is unset, mostly useful for debugging
- Add image resizing toggle, in case you want the menu height to never change
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-13

View file

@ -0,0 +1 @@
spmenu 2.1.1 release

View file

@ -0,0 +1,25 @@
# spmenu 2.2 release
spmenu 2.2 release. Adds a few features, but more importantly fixes a lot of
bugs with mouse clicks and images.
- Add powerline for items
- Support the Terminal specification in .desktop entries
- Add option and argument to not allow setting lines/columns using keybinds
- Fix margin-horizontal when lines are used
- Fix margin-vertical when full screen images are used
- Fix loading from file on Wayland
- Change Ctrl+Shift+h keybind to simply Shift+h
- Switch to Ctrl modifier from Alt modifier for navhistory keys
- Add check for GNOME Wayland, to make the experience a little less bad for
the people using Mutter.
- Fix far too many bugs to count with mouse clicks
- Better screenshots in the README
- Set cache size on Wayland too, could fix some issues with very big images
- Combine the many make scripts into a single script, spmenu\_make
- Remove broken single line clicks
- Remove example scripts, those can now be found in a separate repository
- Improve documentation a bit
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-21

View file

@ -0,0 +1 @@
spmenu 2.2 release

View file

@ -0,0 +1,32 @@
# spmenu 2.3 release
spmenu 2.3 release. Adds bookmarking, fixes BSD support and some bugs.
- Default to the default value of $XDG\_CACHE\_DIR in case $XDG\_CACHE\_DIR
isn't set
- Simplify caching of desktop entries
- Remove entry validation, not very useful and breaks several features
- Replace `read -r` code with `mapfile`
- Add some functions that can be defined in the user's config file
- Enable auto refreshing entries by default, it doesn't seem to cause any
issues anymore
- Clean up the codebase by using structs
- Rename libdrw, because it doesn't resemble upstream anymore
- Remove useless `else continue` at the end of loops
- Remove fullscreen functionality, it's not useful and you can just
scale the image up. It caused several bugs, none of which were worth fixing
- Remove duplicate Xinerama code, now only get window width/height once and
assign it to a variable
- Replace `sed -i` for non-GNU support
- Add man page for spmenu\_test
- Add bookmarking to spmenu\_run
- Don't include Wayland headers in the build, wayland-scanner should do the
job on the user's machine
- Fix spmenu\_run history on BSD
- Return exit code 1 if no item is selected using the -fm spmenu\_run argument
- Fix spmenu\_run -x argument on BSD by using compgen
- Fix infinite loop on non-GNU systems caused by `wc -l` being used to break
in a while true loop
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-06-28

View file

@ -0,0 +1 @@
spmenu 2.3 release

View file

@ -0,0 +1,25 @@
# spmenu 3.0 release
spmenu 3.0 release. Adds icons, Regex matching, and fixes some
bugs with highlighting and tab completion. Major version bump as well,
because why not.
- Added icon support, images can now (optionally) be displayed as icons
- Added Regex matching for items
- Added ClickImage click type
- Added option to always use insert mode to the configuration file
- Added screenshot feature, allowing you to screenshot spmenu (and only spmenu)
using a keybind
- Fix weird line/column window resizing
- Move binds configuration to another function, fixing a weird bug with binds.conf
- Tab completion now completes the ENTIRE item, and doesn't skip over colored text
- Change default word delimiters, now deleting words is much nicer
- Remove many keybinds to make the default config less overwhelming. You
can (of course) add those back if you want
- Change default cache, history and bookmark paths in spmenu\_run
- Fix -cc argument in spmenu\_run
- Fix segmentation fault when tab completing nothing
- Fix highlighting for colored entries
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-07-05

View file

@ -0,0 +1 @@
spmenu 3.0 release

View file

@ -0,0 +1,22 @@
# spmenu 3.0.2 release
spmenu 3.0.2 release. Nothing major with this release, but it fixes some bugs
with the last release.
- Fix \`-b\` argument
- Cleanup \`drawitemtext()\`
- Fix pango markup highlighting
- Make regex matching a separate mode inside insert mode
- Use \`oleftpadding\` in \`drawhighlights()\`
- Improve incremental feature
- Stream code cleanup
- meson\_options.txt improvements
- spmenu now caches icons too, not just standard images
- Add more documentation
- Remove example.Xresources and all non color/font preferences (who cares)
- Remove \`spmenu:\` syntax,it's basically useless
- Fix segmentation fault when \`-NF\` and \`-pri.\` are combined
- Fix \`-F\` and \`-pri\`
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-07-11

View file

@ -0,0 +1 @@
spmenu 3.0.2 release

View file

@ -0,0 +1,38 @@
# spmenu 3.1 release
spmenu 3.1 release. This release fixes some issues and cleans up the codebase,
but doesn't really add much new.
- Regenerate cache if spmenu width/height has changed. This fixes issues (and
potential segmentation faults) when drawing
- Make sure menu height cannot exceed monitor height
- Remove/change some key and mouse binds
- Significantly improve documentation for keybinds
- Remove \`pango\_highlight\` option, it's useless because Pango isn't being highlighted.
- Fix powerline cutoff for big images
- Change default alpha value from 200 to 222, making it more (but not fully) opaque
- Fix massive argument typos caused by \`sed\` misuse. This won't happen again
- Replace a lot of outdated information in the man pages
- Move up/down on left/right when !lines
- spmenu\_run now respects NoDisplay and OnlyShowIn
- spmenu\_run now supports Desktop Action headers in .desktop entries
- spmenu\_run will now display the \`Comment\` rather than the \`GenericName\`
if available
- Add Swedish translations for spmenu desktop entries
- Move \`spmenu\_run\` functions into separate scripts loaded in as necessary.
This results in major speed improvements but isn't noticeable to the user
- Cleanup spmenu\_run code significantly
- Add \`ClickNone\`, which will simply allow clicking anywhere.
- Don't merge the end powerline with the start powerline of the next item when !lines
- Simplify SGR sequence handling, fixing width weirdness
- Replace many variable names with simple ones
- Caret height is now dynamic based on \`sp.bh\`
- Fix incorrect color usage in the config file
- Simplify and speed up reading of standard input
- Now generate SHA256 and MD5 hash for tarballs and pacman packages
- Remove \`ClickSelItem\`. You should now replace it with \`ClickItem\` and set
the function to \`selecthover\` with any argument
- Fix bug in package creation
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-07-19

View file

@ -0,0 +1 @@
spmenu 3.1 release

View file

@ -0,0 +1,15 @@
# spmenu 3.1.1 release
spmenu 3.1.1 release. This one fixes bugs with the last release and adds a few features.
- Add true color (24 bit) SGR sequence support
- Add 39 and 49 sequence support
- Add better SGR sequence documentation to man page(s)
- Add clipboard support for Wayland (requires wl-clipboard on runtime)
- Add scrolldistance option (Wayland only)
- Add true color to spmenu\_test
- Add togglefuzzy() function, allowing fuzzy matching to be toggled on runtime
- Fix scrolling on Wayland (now uses a listener instead)
You can get the new release through pacman if you're using my Arch repository,
or you can simply get the source code and compile it yourself.

View file

@ -0,0 +1 @@
2023-07-22

View file

@ -0,0 +1 @@
spmenu 3.1.1 release

View file

@ -0,0 +1,6 @@
# spmenu 3.2 release
spmenu 3.2 has been released. You can get the latest release
[here](https://ls.speedie.site/?b=releases%2Fspmenu).
If you use Arch or Gentoo you can get distro packages from my repositories.

View file

@ -0,0 +1 @@
2023-07-29

View file

@ -0,0 +1 @@
spmenu 3.2 release

View file

@ -0,0 +1,6 @@
# spmenu 3.2.1 release
spmenu 3.2.1 has been released. You can get the latest release
[here](https://ls.speedie.site/?b=releases%2Fspmenu).
If you use Arch or Gentoo you can get distro packages from my repositories.

View file

@ -0,0 +1 @@
2023-07-29

View file

@ -0,0 +1 @@
spmenu 3.2.1 release

View file

@ -0,0 +1,7 @@
# spmenu 3.3 release
spmenu 3.3 has been released. You can get the latest release
[here](https://ls.speedie.site/?b=releases%2Fspmenu).
If you use Arch or Gentoo you can get distro packages
from my repositories.

View file

@ -0,0 +1 @@
2023-08-12

View file

@ -0,0 +1 @@
spmenu 3.3 release

View file

@ -0,0 +1,7 @@
# spmenu 3.3.1 release
spmenu 3.3.1 has been released. You can get the latest release
[here](https://ls.speedie.site/?b=releases%2Fspmenu).
If you use Arch or Gentoo you can get distro packages
from my repositories.

View file

@ -0,0 +1 @@
2023-08-24

View file

@ -0,0 +1 @@
spmenu 3.3.1 release