some minor changes, add more pages

This commit is contained in:
speedie 2023-04-24 19:33:59 +02:00
parent 5324a17261
commit d7ff6f27f4
11 changed files with 367 additions and 119 deletions

View file

@ -185,6 +185,17 @@ input#gitmsg
color: #f0eee4; color: #f0eee4;
} }
.main a {
color: #89bfff;
text-decoration: none;
transition: 0.1s;
}
.main a:hover {
color: #ccccff;
text-decoration: underline;
}
/* the globe */ /* the globe */
.main a[href^="http"]::after { .main a[href^="http"]::after {
/*content: url('/icons/internet.png');*/ /*content: url('/icons/internet.png');*/
@ -192,11 +203,11 @@ input#gitmsg
.main a.literalMatch { .main a.literalMatch {
font-weight: bold; font-weight: bold;
color: #00f; color: #6666ff;
} }
.main a.noexist { .main a.noexist {
color: #b00 !important; color: #f34000 !important;
} }
.login { .login {
@ -384,5 +395,16 @@ input.search {
.sidebar { .sidebar {
color: #aaaaaa; color: #aaaaaa;
border-color: #aaaaaa; border-color: #aaaaaa;
background-color: #161616; background-color: #262626;
}
.sidebar a {
color: #19bfff;
text-decoration: none;
transition: 0.1s;
}
.sidebar a:hover {
color: #bbbbff;
text-decoration: underline;
} }

View file

@ -0,0 +1,2 @@
A list of spmenu scripts
========================

View file

@ -0,0 +1,2 @@
Configuring spmenu
==================

View file

@ -0,0 +1,174 @@
Extensive code documentation
============================
NOTE: This article was taken from [the spmenu repository](https://git.speedie.site/spmenu/plain/code.pdf). This article therefore be outdated or vice versa. I highly recommend you check out the repository first though.
Some of spmenu's code documented. If you want to hack on the project, this
should be useful. Note that these may be renamed in the future to make the
codebase easier to understand and make changes to. Also note that this is
**definitely not** a complete list.
## Position and width/height variables
- `bh`
- Menu height divided by lines gets you `bh`. The name comes from dwm's `bh`
meaning 'bar height'. This is the height of each item in the list.
- `mh`
- Menu height (or height of the window)
- Use `drw_resize()` and `XResizeWindow()` to adjust this.
- `mw`
- Menu width (or width of the window)
- Use `drw_resize()` and `XResizeWindow()` to adjust this.
- `2 * borderwidth` is removed from `mw` (2* because we have two sides)
- `2 * sp` is removed from `mw` (2* because we have two sides)
- `x`
- X position, functions like `drw_text` use this.
- If you set this in bar drawing functions, you must apply the same
to `buttonpress()`, otherwise clicks will be offset.
- `y`
- Y position, functions like `drw_text` use this.
- If you set this in bar drawing functions, you must apply the same
to `buttonpress()`, otherwise clicks will be offset.
- `ev->x`
- X position where you clicked. This is used in the `buttonpress()` function
to check where you clicked.
- `ev->y`
- Y position where you clicked. This is used in the `buttonpress()` function
to check where you clicked.
- `w`
- Width of something, this is passed to `drw_text()` for example, but you may
override this.
- `plw`
- This is the width of the powerline arrow. It must be added on in
the `buttonpress()` and draw functions.
- `vp`
- Vertical padding, this is initially added on in the `create_window()` function.
- `sp`
- Horizontal padding, this is initially added on in the `create_window()` function.
- `promptw`
- Width of the prompt text, this is going to be the same as `TEXTW(prompt)`.
- `inputw`
- Width of the input text.
- `fh`
- Font height. Used to calculate the height of the cursor. See `drawcaret()`.
- `menuposition`
- Integer the user is meant to configure. If it's set to `0`, spmenu will be
put on the bottom of the screen. If it's set to `1` it will be put on the
top of the screen. If it's `2` it will be put in the center of the screen.
- `wa.width`
- Window width, `wa` is `XWindowAttributes`.
- `wa.height`
- Window height, `wa` is `XWindowAttributes`.
- `imageheight`
- Image height, This is **not** the height of the image, it is the height
that the image will be scaled to fit.
- `imagewidth`
- Image width, This is **not** the width of the image, it is the width
that the image will be scaled to fit.
- `imagegaps`
- Image gaps, this is extra space added around the image.
- `imageh`
- Usually the same as `imageheight`. This is what `imageheight` is initially
set to.
- `imagew`
- Usually the same as `imagewidth`. This is what `imagewidth` is initially
set to.
- `imageg`
- Usually the same as `imagegaps`. This is what `imagegaps` is initially set to.
- `longestedge`
- As the name implies, it is the longest (highest value) of `imageheight` and `imagewidth`.
- `numberWidth`
- Integer set in some functions, it is simply `TEXTW(numbers)` if the match
count isn't hidden.
- `modeWidth`
- Integer set in some functions, it is simply `TEXTW(modetext)` if the mode
indicator isn't hidden.
- `larrowWidth`
- Integer set in some functions, it is simply `TEXTW(leftarrow)` if the left
arrow isn't hidden.
- `rarrowWidth`
- Integer set in some functions, it is simply `TEXTW(rightarrow)` if the right
arrow isn't hidden.
- `powerlinewidth`
- Integer set in some functions, it is simply `plw / 2` if powerlines are enabled.
- `curpos`
- Cursor/caret position. When text is added to the input, the width of that text
is added to this.
## Drawable abstraction functions
Most of these are in `libs/sl/draw.c` and `libs/sl/draw.h`.
- `drw_create(Display *dpy, int screen, Window win, unsigned int w,
unsigned int h, Visual *visual, unsigned int depth, Colormap cmap);`
- This function creates a drawable from `Display *dpy`, `Drw`. Think of
it as a canvas.
- `drw_resize(Drw *drw, unsigned int w, unsigned int h)`
- This function resizes the drawable to the dimensions passed as
arguments (`w`, `h`).
- `drw_free(Drw *drw);`
- This function will free the drawable from memory. It is *usually* called in
cleanup functions like `cleanup()` so most of the time you don't need to use this.
## Font abstraction functions
Most of these are in `libs/sl/draw.c` and `libs/sl/draw.h`.
NOTE: These will differ slightly depending on if Pango is enabled or not.
- `drw_font_create(Drw* drw, char *font[], size_t fontcount);`
- This function will return a font libXft can use.
- `drw_font_free(Fnt *set);`
- This function will free the font from memory.
- `drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n, Bool markup);`
- This function returns the smallest value out of the passed argument `n`
and the length of the text drawn. The text is not actually drawn though.
- `drw_font_getwidth(Drw *drw, const char *text, Bool markup);`
- This function returns the width of drawn text. The text is not actually
drawn though.
- `drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned
int *w, unsigned int *h, Bool markup);`
- This function returns the length of the text with the used font.
## Colorscheme abstraction functions
- `drw_clr_create(Drw *drw, Clr *dest, char *clrname, unsigned int alpha);`
- This function allocates space for a color.
- `drw_scm_create(Drw *drw, char *clrnames[], unsigned int alphas[],
size_t clrcount);`
- This function returns a color scheme from an array of colors and alpha.
## Cursor abstraction functions
- `drw_cur_create(Drw *drw, int shape);`
- This function creates and returns a cursor.
- `drw_cur_free(Drw *drw, Cur *cursor);`
- This function will free the cursor from memory.
## Drawable context functions
- `drw_setscheme(Drw *drw, Clr *scm);`
- Sets the color scheme to `*scm` created by `drw_scm_create()`
## Drawing functions
- `drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled
, int invert);`
- Draws a simple rectangle. Used in other functions to create more useful
shapes, such as a cursor.
- `drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned
int lpad, const char *text, int invert, Bool markup);`
- Draws text on the drawable using the font created. `const char *text`
contains the text itself.
## Map functions
- `drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h);`
- Maps the drawable. (makes it visible)
## Removed functions
Various functions that have been removed for some reason.
- `drw_setfont(Drw *drw, Fnt *set);`
- Sets the font.
- NOTE: Applies only if Pango is disabled.

View file

@ -0,0 +1,2 @@
Functions in spmenu_run
=======================

View file

@ -1,25 +1,11 @@
Getting Started Getting Started
--------------- ---------------
[speedwm](https://speedie.gq/projects/speedwm.php) is a window manager forked spmenu is an X11 menu application based on dmenu which takes standard input, parses it, and lets the user choose an option and sends the selected option to standard output. Options are separated by newlines.
from [dwm](https://dwm.suckless.org) (also known as dynamic window manager).
It manages the user's open windows and tiles them according to a set layout.
This is what makes it dynamic, unlike windows managers like i3 which you may
be used to.
### This is an X11 window manager, you need to use X. In addition to this, it also serves as a run launcher through the included shell script spmenu_run which supports running binaries from $PATH but also file management and .desktop entries.
Yes, this is an X11 window manager. I do not like Wayland and it's At as basic level, it takes standard input, and the selected option is output to standard output. This allows it to be extremely extensible, and I'm sure you can think of many use cases just by reading this. But that's not what we're going to start with.
philosophies, and I will not
support it for multiple reasons. See [[Wayland support]] for my reasoning
behind this. Hate me all you want for it!
If it isn't clear, `xorg-server` as well as `xinit` or `sx` is pretty much
expected. You can also use display managers like `sddm` or `lightdm` although
it should be mentioned that `ly` is **known** to have issues with dwm and
therefore also
speedwm. Do note that setting up X11 is out of the scope of this wiki, and you
need to figure out how to do that yourself.
### Supported operating systems ### Supported operating systems
@ -31,69 +17,75 @@ most likely to run it.
- Nearly all GNU/Linux distributions - Nearly all GNU/Linux distributions
- NixOS and GNU Guix may require separate instructions. I will not provide - NixOS and GNU Guix may require separate instructions. I will not provide
support for these, use the existing documentation to set it up. support for these, use the existing documentation to set it up. Chances are if you use one of these you already know how to compile software for it.
- FreeBSD, OpenBSD, NetBSD - FreeBSD, OpenBSD, NetBSD
- There are likely more BSDs that can run speedwm, but I cannot support all - There are likely more BSDs that can run speedwm, but I cannot support all
of them. Try it and see if it works. of them. Try it and see if it works.
- macOS/Mac OS X
- macOS *should* be supported, however it requires `Xquartz` to be installed on the system. Mac support has not yet been tested, however please report any issues you find on it. `dmenu` also supports macOS, although the guys at suckless surely don't promote it.
### Installation on Gentoo GNU/Linux ### Installation on Gentoo GNU/Linux
Gentoo has slightly different instructions for setting up speedwm. While you Gentoo has slightly different instructions for setting up spmenu. While you
can follow along with the generic installation instructions, I have a Gentoo can follow along with the generic installation instructions, I have a Gentoo
overlay with packages for all speedwm versions. overlay with packages for most if not all spmenu versions.
To get started, add [my To get started, add [my
overlay](https://codeberg.org/speedie/speedie-overlay). Then simply `emerge overlay](https://git.speedie.site/speedie-overlay). Then simply `emerge
x11-wm/speedwm x11-wm/libspeedwm x11-wm/speedwm-extras`. Optionally, you may x11-misc/spmenu`.
`emerge x11-misc/spde` instead, which is a metapackage for a lot of stuff
including fonts, and general programs that work well for me.
If you want to install speedwm using Git, do this by adding the following If you want to install spmenu using Git, do this by adding the following
lines: lines:
`=x11-wm/speedwm-9999 **` `=x11-misc/spmenu-9999 **`
`=x11-wm/libspeedwm-9999 **`
`=x11-wm/speedwm-extras-9999 **`
to `/etc/portage/package.accept_keywords` and then emerging the packages as to `/etc/portage/package.accept_keywords` and then emerging the packages as
per the instructions above. per the instructions above.
### Installation on generic GNU/Linux distributions ### Installation on generic GNU/Linux distributions
Installing speedwm on most GNU/Linux distributions is very simple. First, Installing spmenu on most GNU/Linux distributions is very simple. First,
determine if you want to install it using Git (the absolute latest version) or determine if you want to install it using Git (the absolute latest version) or
using a stable tarball. using a stable tarball.
As of 26/01/2023, 1.8 is the latest tarball release As of 24/04/2023, 0.4.1 is the latest tarball release. While it is stable, it's not going to have any bug fixes or features I'm adding. This software is still pre-1.0 release so issues can be fixed rather often. For this reason, it is recommended that you `git
which is not very stable. For this reason, it is recommended that you `git
clone` the repository. If you do not have `git`, install it using your clone` the repository. If you do not have `git`, install it using your
distribution's package manager. If you're (still) going to be using a 'stable' distribution's package manager. If you're going to be using a 'stable'
tarball, you do not need to install `git`. tarball, you do not need to install `git`.
While the list of dependencies will vary depending on the speedwm version While the list of dependencies will vary depending on the spmenu version
you're going to install (see docs/dependencies.md for your specific version), you're going to install (see README.md for your specific version),
below is a list for the latest release, 1.8 and soon to be 1.9. below is a list for the latest release, 0.4.1.
- libXft - libX11
- libXinerama - libXrender
- Used for multi-monitor support. It can be disabled if you do not need it - freetype
by commenting the XINERAMA libraries in `toggle.mk`.
- imlib2 - imlib2
- Used for tag previews and window icons. It can be disabled if you do not - Used for image support, can be disabled if you don't want this by:
need it. To do this, comment out `IMLIB2LIBS` in `toggle.mk` and set - build.sh: Setting `imlib2=false` in `buildconf`.
`USEIMLIB2`, `USEWINICON` and `USETAGPREVIEW` to `0` in `toggle.h`. - Makefile: Editing `toggle.mk` and commenting out a few lines.
- pango - libXinerama
- yajl - Can be disabled if you don't want/need multi-monitor support by:
- Used for IPC support. It can be disabled if you do not need it. To do - build.sh: Setting `xinerama=false` in `buildconf`.
this, comment out `YAJLINC` and `YAJLLIBS` in `toggle.mk` and set `USEIPC` - Makefile: Editing `toggle.mk` and commenting out a few lines.
to `0` in `toggle.h`. - tcc compiler
- tcc - You can swap it out for GCC or any other C99 compatible compiler by:
- This is a compiler. It is used because it is much faster than `clang` or - Makefile: Passing `CC="gcc"` to the `make` command.
`gcc` (although at the expense of debugging and compatibility). You can - build.sh: Adding `CC="gcc"` to the `buildconf`.
swap it out by passing `CC=cc` to the `make` command later when we compile command if you want)
speedwm. - OpenSSL
- Used to calculate MD5 of images if image support is enabled, can be
disabled if you don't want this by:
- build.sh: Setting `imlib2=false` and `openssl=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- Pango
- Can be disabled if you don't want/need Pango markup by:
- build.sh: Setting `pango=false` and `pangoxft=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
- libconfig
- Can be disabled if you don't want/need config file support by:
- build.sh: Setting `libconfig=false` in `buildconf`.
- Makefile: Editing `toggle.mk` and commenting out a few lines.
#### Installation using `git` #### Installation using `git`
@ -103,81 +95,59 @@ This assumes you have `git` installed.
read and write. Do not clone the speedwm repository in `~/.config` as speedwm read and write. Do not clone the speedwm repository in `~/.config` as speedwm
will write configuration files to that location. will write configuration files to that location.
**Note: Cloning the repository to `~/.config` is fine From here on, we're going to assume you are in the location `~/Documents`. Run
if the speedwm source code directory is **not** `speedwm` but speedwm `git clone https://git.speedie.site/spmenu spmenu` to clone the
will use the `~/.config/speedwm` directory to store configuration files (not repository into a directory named `spmenu`. Provided the repository hasn't
source code).**
From here on, we're going to assume you are in the location `~/Documents`! Run
`git clone https://codeberg.org/speedie/speedwm.git speedwm` to clone the
repository into a directory named `speedwm`. Provided the repository hasn't
moved and you have a working internet connection, you should have received a moved and you have a working internet connection, you should have received a
copy of the speedwm source code. copy of the spmenu source code.
You can now `cd speedwm` into it so we can actually install it. If you need to You can now `cd spmenu` into it so we can actually install it. If you need to
make changes to `toggle.h`, `toggle.mk`, `host.mk` or any other C source code, make changes to the source code for whatever reason, now you want to do that.
now is the time to do it.
Now, it's time to compile it! Provided you have all dependencies installed, Now, it's time to compile it! Provided you have all dependencies installed,
this should be very, very easy and quick. Run `make clean install` as root to install this should be very, very easy and quick. Run `./build.sh` to install spmenu. The binary will be in `/usr/bin/spmenu` if PREFIX wasn't changed. If you need to use a
speedwm. The binary will be in `/usr/bin/speedwm`. If you need to use a different compiler (tcc in Arch repositories has a few issues), you can set the compiler to use in the `buildconf`. The `buildconf` file is loaded by the build script and allows you to set various options. By default the buildconf is identical to what is used to build the Arch packages.
different compiler (tcc in Arch repositories has a few issues), you can run
`make CC=cc clean install` to use the system default compiler. Alternatively
use `gcc` instead of `cc` or whatever you want.
After installation, it is *highly* recommended that you move your source code **Warning: If you lose your source code, you will be unable to add any key/mouse binds. Next version of spmenu will hopefully have keybinds configurable in spmenu.conf.**
directory to a safe place. speedwm is a source based window manager and
**most** (but not all) changes you make to it are going to be done by
recompiling the window manager. This is, of course done with the same `make
clean install` command you used earlier.
I recommend you do this by forking the speedwm repository, and putting it on a Now follow along with 'Using spmenu'.
Git repository somewhere. That way, you can always clone your specific
version.
**Warning: If you lose your source code, you will be
**unable** to make any further changes to speedwm.**
Now follow along with 'Using speedwm'.
#### Installation using a tarball #### Installation using a tarball
Installation using a tarball works pretty much the same. Visit [the releases Installation using a tarball works pretty much the same. Visit [the releases
page](https://codeberg.org/speedie/speedwm/releases) and get the latest page](https://ls.speedie.site/index.php?b=releases%2Fspmenu) and get the latest
(or an old if you want) tarball. Avoid the 'Source Code (ZIP)' and 'Source (or an old if you want) tarball.
Code (TAR.GZ)' options, get the 'speedwm-<version>.tar.gz' file.
`cd` into a location where your normal user (not root) has permission to both `cd` into a location where your normal user (not root) has permission to both
read and write. Make sure `~/.config/speedwm` is not used by anything. read and write.
Now we need to unpack the tarball and get our source code. To do this, you can Now we need to unpack the tarball and get our source code. To do this, you can
use the `tar` command. I will spare you the time reading the man page and the use the `tar` command. I will spare you the time reading the man page and the
command to unpack the tarball is `tar -xpvf command to unpack the tarball is `tar -xpvf
/path/to/the/speedwm/tarball.tar.gz`. The `-x` argument here means extract. /path/to/the/spmenu/tarball.tar.gz`. The `-x` argument here means extract.
`-p` means preserve permissions. The `-v` means verbose, we want to see `-p` means preserve permissions. The `-v` means verbose, we want to see
what's going on. `-f` means file, we want to specify a file to unpack. what's going on. `-f` means file, we want to specify a file to unpack.
After unpacking it, there should be one directory; `speedwm-<version>`. Let's After unpacking it, there should be one directory; `spmenu-<version>`. Let's
`cd speedwm-<version>` into it. Now it's time to compile speedwm! `cd spmenu-<version>` into it. Now it's time to compile spmenu!
Provided you have all dependencies installed, this should be very, very easy Now, it's time to compile it! Provided you have all dependencies installed,
and quick. Run `make clean install` as root to install speedwm. The binary this should be very, very easy and quick. Run `./build.sh` to install spmenu. The binary will be in `/usr/bin/spmenu` if PREFIX wasn't changed. If you need to use a
will be in `/usr/bin/speedwm`. If you need to use a different compiler (tcc in different compiler (tcc in Arch repositories has a few issues), you can set the compiler to use in the `buildconf`. The `buildconf` file is loaded by the build script and allows you to set various options. By default the buildconf is identical to what is used to build the Arch packages.
Arch repostories has a few issues), you can run `make CC=cc clean install` to
use the system default compiler. Alternatively use `gcc` instead of `cc` or
whatever you want.
After installation, it is *highly* recommended that you move your source code **Warning: If you lose your source code, you will be unable to add any key/mouse binds. Next version of spmenu will hopefully have keybinds configurable in spmenu.conf.**
directory to a safe place. speedwm is a source based window manager and
**most** (but not all) changes you make to it are going to be done by
recompiling the window manager. This is, of course done with the same `make
clean install` command you used earlier.
I recommend you do this by putting the source code on a Now follow along with 'Using spmenu'.
Git or subversion repository somewhere. That way, you can always clone your specific
version.
**Warning: If you lose your source code, you will be ### Using spmenu
**unable** to make any further changes to speedwm.**
spmenu accepts standard input. All of spmenu's features **require** standard input to be passed. If you only want to return the input text, you can simply pass nothing to spmenu and a blank menu will open up. The `spmenu_run` script bundled with spmenu which works as a run launcher uses this fact to list out all available executables which are then run. See the article [[Using spmenu as a run launcher]] for more information, this article **only** focuses on spmenu itself.
For example, `printf "Apple\nBanana\nOrange\n" | spmenu` will bring up a basic menu listing with three options, Apple, Banana and Orange. The one the user selects will be returned when (by default) Enter is pressed. You can also press Shift+Enter to select what you have typed in rather than the selected match.
spmenu also has a lot of arguments you can give. `spmenu --help` or if you prefer, `spmenu -h` will return a full list of available arguments. This is not the *only* way to configure spmenu, however it's useful when you want a setting to be applied only to the current instance. Most options are configurable through arguments, but not all of them are.
spmenu also has a config file through libconfig. A default config should be installed at `/usr/share/spmenu/spmenu.conf`. You can copy this to `~/.config/spmenu/spmenu.conf`. You may edit this file using your favorite text editor. Note that .Xresources takes priority over spmenu.conf configuration, as long as `xresources = 1`. You can find a list of accepted .Xresources values in `/usr/share/spmenu/example.Xresources`, and this file should more or less be identical to the defaults. For more information regarding the configuration file, see [[Configuring spmenu]].
Great, you should now know how spmenu works on a basic level. Now, if you are a tiling window manager user or just want a better run launcher, you can check out the article 'Using spmenu as a run launcher'. Alternatively, if you want to use this for scripting you can check out [[Scripting with spmenu]]. There are also many scripts that use spmenu to display items, see [[A list of spmenu scripts]] for that.
Now follow along with 'Using speedwm'.

View file

@ -6,9 +6,7 @@ Welcome to the spmenu wiki!
[spmenu](https://git.speedie.site/spmenu) is an X11 menu application based on [spmenu](https://git.speedie.site/spmenu) is an X11 menu application based on
[dmenu](https://tools.suckless.org/dmenu) which takes standard input, parses [dmenu](https://tools.suckless.org/dmenu) which takes standard input, parses
it, and lets the user choose an option and sends the it, and lets the user choose an option and sends the
selected option to standard output. Options are separated by newlines. selected option to standard output. Options are separated by newlines. In addition to this, it also serves as a run launcher through the included
In addition to this, it also serves as a run launcher through the included
shell script `spmenu_run` which supports running binaries from $PATH but also file management and .desktop entries. shell script `spmenu_run` which supports running binaries from $PATH but also file management and .desktop entries.
What are you waiting for? Check it out! What are you waiting for? Check it out! It is recommended that you start out by following [[Getting Started]].

View file

@ -0,0 +1,2 @@
Scripting with spmenu
=====================

70
pages/User themes.md Normal file
View file

@ -0,0 +1,70 @@
User themes
===========
spmenu has since version 0.3 supported profiles. Profiles allow the user to bring up a list of themes (or options in general) and override options on-the-fly. This in itself is done through a shell script called `spmenu_profile` bundled with spmenu. This script interacts with spmenu. If you press `Ctrl+Shift+p` with the default configuration, a list of profiles should pop up. By default you likely have none, and that's maybe also why you're here.
This wiki article is supposed to be a list of themes for spmenu. Users may edit this article to add their own profiles with credit given of course, and users may download others' profiles to use with spmenu.
There are two different types of profiles. There are config files and profiles. Config files should either be included from your spmenu.conf or simply replace your spmenu.conf (the latter is more common) but profiles are in .Xresources syntax and should be placed in `~/.config/spmenu/profiles/` for the profile list to find it.
Tip: Use `Ctrl+f` to search through the page.
### Rules for editors
- Must be licensed under a free (as in freedom) license.
- No duplicates, we don't need multiple versions of Nord for example.
- Please try to use stable hosting if possible for links. If this is not possible, consider [emailing me](mailto:speedie@speedie.site) so I can host it on my site.
- You may not edit 'Official profiles' or 'Official config files' unless I have forgotten to include a profile or config file
- Outdated profiles may be removed if necessary. Please try to maintain it, if you don't have time to do so a disclaimer would be nice.
### Official profiles
- [Catppuccin](https://git.speedie.site/spmenu/plain/themes/legacy/Catppuccin)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Catppuccin theme](https://github.com/catppuccin/catppuccin) into spmenu which all furries seem to like.
- [Cyberpunk Neon](https://git.speedie.site/spmenu/plain/themes/legacy/Cyberpunk-Neon)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Cyberpunk Neon colorscheme](https://github.com/Roboron3042/Cyberpunk-Neon) into spmenu. This was partially taken from the [st patch](https://st.suckless.org/patches/cyberpunk-neon/), credit where credit is due.
- [Doom One](https://git.speedie.site/spmenu/plain/themes/legacy/Doom-One)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Doom One](https://github.com/doomemacs/themes) colorscheme into spmenu. For those of you that like DistroTube's dmenu, this should get you close to that look.
- [Dracula](https://git.speedie.site/spmenu/plain/themes/legacy/Dracula)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Dracula](https://draculatheme.com/) colorscheme into spmenu.
- [Gruvbox (Dark)](https://git.speedie.site/spmenu/plain/themes/legacy/Gruvbox-Dark)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Gruvbox Dark](https://github.com/morhetz/gruvbox) colorscheme into spmenu.
- [Disable global colors](https://git.speedie.site/spmenu/plain/themes/legacy/No-Global-Colors)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile disables global colors, meaning programs like Pywal will not function with spmenu. This is nice if you want to use Pywal everywhere except spmenu.
- [Nord](https://git.speedie.site/spmenu/plain/themes/legacy/Nord)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Nord](https://www.nordtheme.com/) colorscheme into spmenu.
- [Solarized (Dark)](https://git.speedie.site/spmenu/plain/themes/legacy/Solarized-Dark)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Solarized](https://ethanschoonover.com/solarized/) colorscheme into spmenu. Specifically the 'Dark' variant.
- [Tokyo Night](https://git.speedie.site/spmenu/plain/themes/legacy/Tokyo-Night)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This profile implements the [Tokyo Night](https://github.com/enkia/tokyo-night-vscode-theme) colorscheme into spmenu, ported from the VS Code theme.
### Official config files
- [dmenu](https://git.speedie.site/spmenu/plain/themes/dmenu.conf)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This config tries to match dmenu as closely as possible, even stripping away spmenu only features to an extent.
- [Default](https://git.speedie.site/spmenu/plain/docs/spmenu.conf)
- Author: [speedie](https://speedie.site) ([speedie@speedie.site](mailto:speedie@speedie.site))
- This config is the default configuration for spmenu. This is automatically installed to `/usr/share/spmenu/spmenu.conf` so you *usually* don't need a copy of this.
### User-submitted profiles
### User-submitted config files

View file

@ -0,0 +1,2 @@
Using spmenu as a run launcher
==============================

View file

@ -4,9 +4,13 @@ Basics
- [[Home]] - [[Home]]
- [[Where do I go?]] - [[Where do I go?]]
- [[Getting Started]] - [[Getting Started]]
- [[Using spmenu as a run launcher]]
- [[A list of spmenu scripts]]
- [[Configuring spmenu]]
### Deeper Advanced
========
- [[Client rules]] - [[Scripting with spmenu]]
- [[Keybinds]] - [[Functions in spmenu_run]]
- [[Configuring the bar]] - [[Extensive code documentation]]