diff --git a/TODO b/TODO index 95a8961..630e93e 100644 --- a/TODO +++ b/TODO @@ -1,10 +1,9 @@ # TODO for spmenu - Mouse bind array (mouse.h) -- Add configuration file using (probably) libconfig +- Add configuration file using (probably) libconfig, allowing keybinds to be configured without recompiling spmenu - Use higher level libraries, MD5() is deprecated as of OpenSSL 3 but it has been temporarily silenced. This might also improve compatibility for people who don't use OpenSSL. - Contextual completions - Use cairo for text drawing over Xft - MAYBE wayland support, but only if it doesn't require writing any extra code which as of now seems unlikely -- Write documentation about profiles - FIFO, used to dynamically refresh diff --git a/docs/docs.md b/docs/docs.md index d3dbfb3..adce8f2 100644 --- a/docs/docs.md +++ b/docs/docs.md @@ -525,6 +525,37 @@ operating system. You can also use wildcards (such as `*`) to achieve a global colorscheme. Programs like `pywal` do this to apply universal colorschemes. +Profiles +======== + +spmenu supports profiles. Profiles are like configuration +files (See `Configuration`) that can be switched between quickly using a keybind. + +Pressing (by default) Ctrl+Shift+p will list out profiles, and also +allow you to add/remove existing profiles. Selecting a profile will switch +to that profile. The selected profile will now be loaded on startup just +like the spmenurc until another profile is selected. + +Selecting 'Add' allows you to create a new profile. When a new profile is +created it is going to use the spmenu defaults (copied from `/usr/share/spmenu/example.Xresources`). +Profiles are going to be in `~/.config/spmenu/profiles/` and the current profile +is in `~/.config/spmenu/.profile`. The profile can simply be edited using +any text editor and be configured in .Xresources syntax. + +Selecting `Remove` will allow you to pick a profile which will be permanently +removed. Selecting `Default` will simply load `spmenurc` and nothing +else on startup, as if this feature did not exist. + +Not only can profiles be used to configure color schemes and fonts, allowing you +to swap color schemes quickly, but also any other options you may want. + +Note that any profiles are applied ON TOP of the default profile, meaning if +any options are missing from the selected profile, the setting in +the default profile will be used in place. + +There are a few color schemes for spmenu included in the repository, see +the `themes/` directory. Feel free to copy those to your profile directory. + Run launcher ============ diff --git a/spmenu.1 b/spmenu.1 index 687913f..e969bee 100644 --- a/spmenu.1 +++ b/spmenu.1 @@ -548,6 +548,42 @@ This requires that \f[V]xrdb\f[R] is available on your operating system. You can also use wildcards (such as \f[V]*\f[R]) to achieve a global colorscheme. Programs like \f[V]pywal\f[R] do this to apply universal colorschemes. +.SH Profiles +.PP +spmenu supports profiles. +Profiles are like configuration files (See \f[V]Configuration\f[R]) that +can be switched between quickly using a keybind. +.PP +Pressing (by default) Ctrl+Shift+p will list out profiles, and also +allow you to add/remove existing profiles. +Selecting a profile will switch to that profile. +The selected profile will now be loaded on startup just like the +spmenurc until another profile is selected. +.PP +Selecting `Add' allows you to create a new profile. +When a new profile is created it is going to use the spmenu defaults +(copied from \f[V]/usr/share/spmenu/example.Xresources\f[R]). +Profiles are going to be in \f[V]\[ti]/.config/spmenu/profiles/\f[R] and +the current profile is in \f[V]\[ti]/.config/spmenu/.profile\f[R]. +The profile can simply be edited using any text editor and be configured +in .Xresources syntax. +.PP +Selecting \f[V]Remove\f[R] will allow you to pick a profile which will +be permanently removed. +Selecting \f[V]Default\f[R] will simply load \f[V]spmenurc\f[R] and +nothing else on startup, as if this feature did not exist. +.PP +Not only can profiles be used to configure color schemes and fonts, +allowing you to swap color schemes quickly, but also any other options +you may want. +.PP +Note that any profiles are applied ON TOP of the default profile, +meaning if any options are missing from the selected profile, the +setting in the default profile will be used in place. +.PP +There are a few color schemes for spmenu included in the repository, see +the \f[V]themes/\f[R] directory. +Feel free to copy those to your profile directory. .SH Run launcher .PP spmenu includes a shell script called spmenu_run.