deprecate build.sh script
This commit is contained in:
parent
3ddb0f50dd
commit
94af79720f
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,4 +4,5 @@
|
|||
*sig*
|
||||
spmenu
|
||||
buildconf_dev
|
||||
buildconf
|
||||
build
|
||||
|
|
183
README.html
183
README.html
|
@ -165,148 +165,114 @@
|
|||
<![endif]-->
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="spmenu">spmenu</h1>
|
||||
<figure>
|
||||
<img src="docs/preview.png" alt="image" />
|
||||
<figcaption aria-hidden="true">image</figcaption>
|
||||
<img src="docs/spmenu.svg" title="spmenu" style="width:25.0%"
|
||||
alt="spmenu logo" />
|
||||
<figcaption aria-hidden="true">spmenu logo</figcaption>
|
||||
</figure>
|
||||
<h1 id="spmenu">spmenu</h1>
|
||||
<h2 id="what-is-spmenu">What is spmenu?</h2>
|
||||
<p>spmenu is an X11 menu application based on <a
|
||||
href="https://tools.suckless.org/dmenu">dmenu</a> which takes standard
|
||||
input, parses it, and lets the user choose an option and sends the
|
||||
selected option to standard output.</p>
|
||||
<p>spmenu is an X11 menu application which takes standard input, parses
|
||||
it, and lets the user choose an option and sends the selected option to
|
||||
standard output.</p>
|
||||
<p>In addition to this, it also serves as a run launcher through the
|
||||
included shell script <code>spmenu_run</code>, which handles both $PATH
|
||||
listing, .desktop entries and file listing.</p>
|
||||
<p>It is designed to integrate well with my <a
|
||||
href="https://dwm.suckless.org">dwm</a> fork, <a
|
||||
href="https://git.speedie.site/speedwm">speedwm</a>.</p>
|
||||
<h2 id="improvements-over-dmenu">Improvements over dmenu</h2>
|
||||
<ul>
|
||||
<li>Proper configuration file, including keybinds.</li>
|
||||
<li>dwm-like key/mouse bind array (See keybinds.h and mouse.h)</li>
|
||||
<li>Vim-like modes, including indicator.</li>
|
||||
<li>The ability to move around items with keybinds.</li>
|
||||
<li>Customizable/dynamic line/column size.</li>
|
||||
<li>Ability to update entries dynamically by reading from file</li>
|
||||
<li>IME support
|
||||
<ul>
|
||||
<li>Was removed from suckless dmenu years ago due to issues I’ve
|
||||
resolved</li>
|
||||
</ul></li>
|
||||
<li>Powerlines</li>
|
||||
<li>Web browser like keybindings.</li>
|
||||
<li>256 color support through SGR codes.</li>
|
||||
<li>Image support
|
||||
<ul>
|
||||
<li>Somewhat based on <a
|
||||
href="https://github.com/Cloudef/dmenu-pango-imlib">this
|
||||
repository</a></li>
|
||||
</ul></li>
|
||||
<li>Option to block typing.</li>
|
||||
<li>Rewritten arguments, old arguments still work though.</li>
|
||||
<li>Hiding each part of the menu.</li>
|
||||
</ul>
|
||||
<p>..and more! Note that spmenu is still <strong>compatible</strong>
|
||||
with dmenu. Just pass the original arguments.</p>
|
||||
<p>While spmenu is based on dmenu, and is also fully compatible with
|
||||
dmenu, spmenu introduces many new features which can be useful in shell
|
||||
scripting. There are way too many to list, but spmenu has a <a
|
||||
href="https://spmenu.speedie.site">wiki</a> which goes through features
|
||||
in more detail.</p>
|
||||
<h2 id="dependencies">Dependencies</h2>
|
||||
<ul>
|
||||
<li>libX11</li>
|
||||
<li>libX11
|
||||
<ul>
|
||||
<li>If you’re using macOS, XQuartz is a dependency instead.</li>
|
||||
<li>If you’re using Wayland, <code>xorg-xwayland</code> is a
|
||||
dependency.</li>
|
||||
</ul></li>
|
||||
<li>libXrender</li>
|
||||
<li>freetype</li>
|
||||
<li>imlib2
|
||||
<ul>
|
||||
<li>Used for image support, can be disabled if you don’t want this by:
|
||||
<ul>
|
||||
<li>build.sh: Setting <code>imlib2=false</code> in
|
||||
<code>buildconf</code>.</li>
|
||||
</ul></li>
|
||||
<li>Used for image support, can be disabled during compile time.</li>
|
||||
</ul></li>
|
||||
<li>libXinerama
|
||||
<ul>
|
||||
<li>Can be disabled if you don’t want/need multi-monitor support by:
|
||||
<ul>
|
||||
<li>build.sh: Setting <code>xinerama=false</code> in
|
||||
<code>buildconf</code>.</li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li>tcc compiler
|
||||
<ul>
|
||||
<li>You can swap it out for GCC or any other C99 compatible compiler by:
|
||||
<ul>
|
||||
<li>build.sh: Adding <code>CC="gcc"</code> to the
|
||||
<code>buildconf</code>. command if you want)</li>
|
||||
</ul></li>
|
||||
<li>Used for multi-monitor support, can be disabled during compile
|
||||
time.</li>
|
||||
</ul></li>
|
||||
<li>OpenSSL
|
||||
<ul>
|
||||
<li>Used to calculate MD5 of images if image support is enabled, can be
|
||||
disabled if you don’t want this by:
|
||||
<ul>
|
||||
<li>build.sh: Setting <code>imlib2=false</code> and
|
||||
<code>openssl=false</code> in <code>buildconf</code>.</li>
|
||||
</ul></li>
|
||||
disabled during compile time.</li>
|
||||
</ul></li>
|
||||
<li>Pango
|
||||
<ul>
|
||||
<li>Can be disabled if you don’t want/need Pango markup by:
|
||||
<ul>
|
||||
<li>build.sh: Setting <code>pango=false</code> and
|
||||
<code>pangoxft=false</code> in <code>buildconf</code>.</li>
|
||||
</ul></li>
|
||||
<li>Can be disabled if you don’t want/need Pango markup during compile
|
||||
time.</li>
|
||||
</ul></li>
|
||||
<li>libconfig
|
||||
<ul>
|
||||
<li>Can be disabled if you don’t want/need config file support by:
|
||||
<ul>
|
||||
<li>build.sh: Setting <code>libconfig=false</code> in
|
||||
<code>buildconf</code>.</li>
|
||||
</ul></li>
|
||||
<li>Can be disabled if you don’t want/need config file support during
|
||||
compile time.</li>
|
||||
</ul></li>
|
||||
<li>meson
|
||||
<ul>
|
||||
<li>Used to compile spmenu</li>
|
||||
<li>Used to compile spmenu, not optional unless you’re experienced with
|
||||
build systems.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2 id="installation-gnulinux-bsd">Installation (GNU/Linux, *BSD)</h2>
|
||||
<p><code>emerge dev-vcs/git</code>, <code>pacman -S git</code>,
|
||||
<code>apt-get install git</code></p>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<ul>
|
||||
<li><p>If you’re using macOS you may want to consider looking at <a
|
||||
href="https://spmenu.speedie.site/index.php/Using+spmenu+on+macOS">this
|
||||
wiki artic le</a> for more information.</p></li>
|
||||
<li><p>If you are on Arch GNU/Linux, you can add <a
|
||||
href="https://git.speedie.site/speedie-repository">my repository</a>
|
||||
which includes <code>spmenu</code> as well as other useful packages.
|
||||
Then simply <code>pacman -S spmenu</code>.</p></li>
|
||||
<li><p>Or if you are on Gentoo GNU/Linux, you can add <a
|
||||
href="https://git.speedie.site/speedie-overlay">my overlay</a> which
|
||||
includes <code>x11-misc/spmenu</code> as well as other useful packages.
|
||||
Then simply <code>emerge spmenu</code>.</p></li>
|
||||
</ul>
|
||||
<p>If you still need/want to manually compile, follow along with manual
|
||||
compilation.</p>
|
||||
<p>Here we’re manually compiling spmenu. This is likely what you’ll want
|
||||
to do if you’re using any distribution but Arch or Gentoo.</p>
|
||||
<p>Git is required to clone the repository, but you can also use <a
|
||||
href="https://ls.speedie.site">releases</a>. Those can be unpacked using
|
||||
<code>tar -xpvf /path/to/spmenu-version.tar.gz</code>.</p>
|
||||
<p>To install Git:</p>
|
||||
<ul>
|
||||
<li><p>Gentoo: <code>emerge dev-vcs/git</code></p></li>
|
||||
<li><p>Arch: <code>pacman -S git</code></p></li>
|
||||
<li><p>Debian: <code>apt-get install git</code></p></li>
|
||||
</ul>
|
||||
<p>You will also need the dependencies for spmenu. You’ll have to find
|
||||
those packages in your distribution repositories.</p>
|
||||
<p>To clone the repository using Git:</p>
|
||||
<p><code>git clone https://git.speedie.site/spmenu</code></p>
|
||||
<p><code>cd spmenu/</code></p>
|
||||
<p><code>./build.sh # Run as root. Install any missing dependencies.</code></p>
|
||||
<p>Report any issues with the build.sh script.</p>
|
||||
<h2 id="installation-macosos-xmac-os-x">Installation (macOS/OS X/Mac OS
|
||||
X)</h2>
|
||||
<p>NOTE: Adds Xquartz as a dependency. I highly recommend you use
|
||||
Homebrew to install all the dependencies.</p>
|
||||
<p>Follow ‘Installation (GNU/Linux, *BSD)’ for the most part. macOS
|
||||
requires some minor changes though, such as disabling pango, pangoxft,
|
||||
imlib2, and openssl. It is not possible to compile spmenu with these as
|
||||
of now, unless you’re a developer.</p>
|
||||
<p>PREFIX must also be set to /usr/local instead of the default /usr if
|
||||
you’re using macOS Catalina or newer, because Apple made /usr
|
||||
read-only.</p>
|
||||
<p>Configure the build by running these commands:</p>
|
||||
<p><code>mkdir -p build/ # Create a build/ directory, Meson will use this as the working directory</code></p>
|
||||
<p><code>meson setup build # This will check to make sure all dependencies are found. If you're recompiling you may want to pass --reconfigure as an argument</code></p>
|
||||
<p>Now, to build it run <code>ninja -C build</code>. If all went well
|
||||
you should have a binary in the <code>build/</code> directory.</p>
|
||||
<p>Finally, to install it all, run:</p>
|
||||
<p><code>meson install -C build --destdir /usr # /usr may be overriden to /usr/local or anything else if you use macOS or simply want another destination directory</code></p>
|
||||
<p>To generate documentation, which may be necessary if you’re pushing
|
||||
new changes to your Git repository, run
|
||||
<code>scripts/make/generate-docs.sh</code> <strong>in the current
|
||||
directory</strong>.</p>
|
||||
<p>To generate a tarball, run <code>scripts/make/generate-pkg.sh</code>
|
||||
<strong>in the current directory</strong>. If you want to generate a
|
||||
Pacman package, run <code>scripts/make/generate-pacman-pkg.sh</code>
|
||||
instead.</p>
|
||||
<p>See <a
|
||||
href="https://spmenu.speedie.site/index.php/Using+spmenu+on+macOS">this
|
||||
wiki article</a> for more information.</p>
|
||||
<h2 id="installation-gentoo-gnulinux">Installation (Gentoo
|
||||
GNU/Linux)</h2>
|
||||
<p>NOTE: The Gentoo overlay may be out of date. Use at your own
|
||||
risk!</p>
|
||||
<p>If you are on Gentoo GNU/Linux, you can add <a
|
||||
href="https://git.speedie.site/speedie-overlay">my overlay</a> which
|
||||
includes <code>x11-misc/spmenu</code> as well as other useful
|
||||
packages.</p>
|
||||
<h2 id="installation-arch-gnulinux">Installation (Arch GNU/Linux)</h2>
|
||||
<p>If you are on Arch GNU/Linux, you can add <a
|
||||
href="https://git.speedie.site/speedie-repository">my repository</a>
|
||||
which includes <code>spmenu</code> as well as other useful packages.</p>
|
||||
<p>There’s also a PKGBUILD. To use it, simply run
|
||||
<code>scripts/make/generate-pacman-pkg.sh</code> in the directory the
|
||||
PKGBUILD is located. You can then <code>pacman -U</code> this package,
|
||||
or add it to your repository.</p>
|
||||
<p>If you wish to package spmenu for your GNU/Linux distribution, feel
|
||||
free to add it to this list.</p>
|
||||
<h2 id="todo">TODO</h2>
|
||||
<p>Pull requests would be greatly appreciated for any of these
|
||||
issues!</p>
|
||||
|
@ -330,9 +296,6 @@ xprompt</li>
|
|||
to avoid adding more external dependencies unless it’s a common
|
||||
dependency most people already have.</li>
|
||||
</ul></li>
|
||||
<li>Deprecate: build.sh script. It’s not really necessary now that we’re
|
||||
using Meson for building anyway. Will probably be completely removed
|
||||
along with the <code>IMG:</code> syntax in spmenu 2.0.</li>
|
||||
</ul>
|
||||
<h3
|
||||
id="unlikely-but-maybe-at-some-point-in-the-distant-future">Unlikely,
|
||||
|
|
146
README.md
146
README.md
|
@ -1,11 +1,11 @@
|
|||
# spmenu
|
||||
![spmenu logo](docs/spmenu.svg "spmenu"){ width=25% }
|
||||
|
||||
![image](docs/preview.png)
|
||||
spmenu
|
||||
======
|
||||
|
||||
## What is spmenu?
|
||||
|
||||
spmenu is an X11 menu application based on
|
||||
[dmenu](https://tools.suckless.org/dmenu) which takes standard input, parses
|
||||
spmenu is an X11 menu application which takes standard input, parses
|
||||
it, and lets the user choose an option and sends the
|
||||
selected option to standard output.
|
||||
|
||||
|
@ -13,107 +13,98 @@ In addition to this, it also serves as a run launcher through the included
|
|||
shell script `spmenu_run`, which handles both $PATH listing, .desktop entries
|
||||
and file listing.
|
||||
|
||||
It is designed to integrate well with my [dwm](https://dwm.suckless.org) fork, [speedwm](https://git.speedie.site/speedwm).
|
||||
|
||||
## Improvements over dmenu
|
||||
|
||||
- Proper configuration file, including keybinds.
|
||||
- dwm-like key/mouse bind array (See keybinds.h and mouse.h)
|
||||
- Vim-like modes, including indicator.
|
||||
- The ability to move around items with keybinds.
|
||||
- Customizable/dynamic line/column size.
|
||||
- Ability to update entries dynamically by reading from file
|
||||
- IME support
|
||||
- Was removed from suckless dmenu years ago due to issues I've resolved
|
||||
- Powerlines
|
||||
- Web browser like keybindings.
|
||||
- 256 color support through SGR codes.
|
||||
- Image support
|
||||
- Somewhat based on [this repository](https://github.com/Cloudef/dmenu-pango-imlib)
|
||||
- Option to block typing.
|
||||
- Rewritten arguments, old arguments still work though.
|
||||
- Hiding each part of the menu.
|
||||
|
||||
..and more! Note that spmenu is still **compatible** with dmenu.
|
||||
Just pass the original arguments.
|
||||
While spmenu is based on dmenu, and is also fully compatible with dmenu,
|
||||
spmenu introduces many new features which can be useful in shell scripting.
|
||||
There are way too many to list, but spmenu has a
|
||||
[wiki](https://spmenu.speedie.site) which goes through features in more detail.
|
||||
|
||||
## Dependencies
|
||||
|
||||
- libX11
|
||||
- If you're using macOS, XQuartz is a dependency instead.
|
||||
- If you're using Wayland, `xorg-xwayland` is a dependency.
|
||||
- libXrender
|
||||
- freetype
|
||||
- imlib2
|
||||
- Used for image support, can be disabled if you don't want this by:
|
||||
- build.sh: Setting `imlib2=false` in `buildconf`.
|
||||
- Used for image support, can be disabled during compile time.
|
||||
- libXinerama
|
||||
- Can be disabled if you don't want/need multi-monitor support by:
|
||||
- build.sh: Setting `xinerama=false` in `buildconf`.
|
||||
- tcc compiler
|
||||
- You can swap it out for GCC or any other C99 compatible compiler by:
|
||||
- build.sh: Adding `CC="gcc"` to the `buildconf`.
|
||||
command if you want)
|
||||
- Used for multi-monitor support, can be disabled during compile time.
|
||||
- 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`.
|
||||
disabled during compile time.
|
||||
- Pango
|
||||
- Can be disabled if you don't want/need Pango markup by:
|
||||
- build.sh: Setting `pango=false` and `pangoxft=false` in `buildconf`.
|
||||
- Can be disabled if you don't want/need Pango markup during compile time.
|
||||
- libconfig
|
||||
- Can be disabled if you don't want/need config file support by:
|
||||
- build.sh: Setting `libconfig=false` in `buildconf`.
|
||||
- Can be disabled if you don't want/need config file support during compile time.
|
||||
- meson
|
||||
- Used to compile spmenu
|
||||
- Used to compile spmenu, not optional unless you're experienced with build systems.
|
||||
|
||||
## Installation (GNU/Linux, \*BSD)
|
||||
## Installation
|
||||
|
||||
`emerge dev-vcs/git`, `pacman -S git`, `apt-get install git`
|
||||
- If you're using macOS you may want to consider looking at [this wiki artic
|
||||
le](https://spmenu.speedie.site/index.php/Using+spmenu+on+macOS) for more information.
|
||||
|
||||
- If you are on Arch GNU/Linux, you can add
|
||||
[my repository](https://git.speedie.site/speedie-repository) which includes
|
||||
`spmenu` as well as other useful packages. Then simply `pacman -S spmenu`.
|
||||
|
||||
- Or if you are on Gentoo GNU/Linux, you can add
|
||||
[my overlay](https://git.speedie.site/speedie-overlay) which includes
|
||||
`x11-misc/spmenu` as well as other useful packages. Then simply `emerge spmenu`.
|
||||
|
||||
If you still need/want to manually compile, follow along with manual compilation.
|
||||
|
||||
Here we're manually compiling spmenu. This is likely what you'll want to do
|
||||
if you're using any distribution but Arch or Gentoo.
|
||||
|
||||
Git is required to clone the repository, but you can also use
|
||||
[releases](https://ls.speedie.site). Those can be unpacked
|
||||
using `tar -xpvf /path/to/spmenu-version.tar.gz`.
|
||||
|
||||
To install Git:
|
||||
|
||||
- Gentoo: `emerge dev-vcs/git`
|
||||
|
||||
- Arch: `pacman -S git`
|
||||
|
||||
- Debian: `apt-get install git`
|
||||
|
||||
You will also need the dependencies for spmenu. You'll
|
||||
have to find those packages in your distribution repositories.
|
||||
|
||||
To clone the repository using Git:
|
||||
|
||||
`git clone https://git.speedie.site/spmenu`
|
||||
|
||||
`cd spmenu/`
|
||||
|
||||
`./build.sh # Run as root. Install any missing dependencies.`
|
||||
Configure the build by running these commands:
|
||||
|
||||
Report any issues with the build.sh script.
|
||||
`mkdir -p build/ # Create a build/ directory, Meson will use this as the working
|
||||
directory`
|
||||
|
||||
## Installation (macOS/OS X/Mac OS X)
|
||||
`meson setup build # This will check to make sure all dependencies are found.
|
||||
If you're recompiling you may want to pass --reconfigure as an argument`
|
||||
|
||||
NOTE: Adds Xquartz as a dependency. I highly recommend you use Homebrew
|
||||
to install all the dependencies.
|
||||
Now, to build it run `ninja -C build`. If all went well you should have a
|
||||
binary in the `build/` directory.
|
||||
|
||||
Follow 'Installation (GNU/Linux, \*BSD)' for the most part. macOS requires
|
||||
some minor changes though, such as disabling pango, pangoxft, imlib2, and
|
||||
openssl. It is not possible to compile spmenu with these as of now, unless
|
||||
you're a developer.
|
||||
Finally, to install it all, run:
|
||||
|
||||
PREFIX must also be set to /usr/local instead of the default /usr
|
||||
if you're using macOS Catalina or newer, because Apple made /usr read-only.
|
||||
`meson install -C build --destdir /usr # /usr may be overriden to /usr/local
|
||||
or anything else if you use macOS or simply want another destination directory`
|
||||
|
||||
To generate documentation, which may be necessary if you're pushing new changes
|
||||
to your Git repository, run `scripts/make/generate-docs.sh` **in the current
|
||||
directory**.
|
||||
|
||||
To generate a tarball, run `scripts/make/generate-pkg.sh` **in the current
|
||||
directory**. If you want to generate a Pacman package, run
|
||||
`scripts/make/generate-pacman-pkg.sh` instead.
|
||||
|
||||
See [this wiki article](https://spmenu.speedie.site/index.php/Using+spmenu+on+macOS)
|
||||
for more information.
|
||||
|
||||
## Installation (Gentoo GNU/Linux)
|
||||
|
||||
NOTE: The Gentoo overlay may be out of date. Use at your own risk!
|
||||
|
||||
If you are on Gentoo GNU/Linux, you can add
|
||||
[my overlay](https://git.speedie.site/speedie-overlay) which includes
|
||||
`x11-misc/spmenu` as well as other useful packages.
|
||||
|
||||
## Installation (Arch GNU/Linux)
|
||||
|
||||
If you are on Arch GNU/Linux, you can add
|
||||
[my repository](https://git.speedie.site/speedie-repository) which includes
|
||||
`spmenu` as well as other useful packages.
|
||||
|
||||
There's also a PKGBUILD. To use it, simply run
|
||||
`scripts/make/generate-pacman-pkg.sh` in the directory the PKGBUILD is
|
||||
located. You can then `pacman -U` this package, or add it to your repository.
|
||||
|
||||
If you wish to package spmenu for your GNU/Linux distribution, feel free to add
|
||||
it to this list.
|
||||
|
||||
## TODO
|
||||
|
||||
Pull requests would be greatly appreciated for any of these issues!
|
||||
|
@ -133,9 +124,6 @@ have LibreSSL compatibility.
|
|||
- Probably use some minimal public domain library for this, I'd
|
||||
like to avoid adding more external dependencies unless it's a
|
||||
common dependency most people already have.
|
||||
- Deprecate: build.sh script. It's not really necessary now that we're
|
||||
using Meson for building anyway. Will probably be completely removed
|
||||
along with the `IMG:` syntax in spmenu 2.0.
|
||||
|
||||
### Unlikely, but maybe at some point in the distant future
|
||||
|
||||
|
|
|
@ -4,8 +4,7 @@ version="$(grep "version : '" meson.build | awk '{ print $3 }' | sed "s/'\"//g;
|
|||
|
||||
rm -f spmenu spmenu-${version}.tar.gz spmenu-${version}.PKGBUILD *.o *zst*
|
||||
mkdir -p spmenu-${version}
|
||||
cp -rf LICENSE meson.build meson.options *.h *.c scripts/ docs/ libs/ themes/ PKGBUILD build.sh spmenu-${version}
|
||||
[ -f buildconf ] && cp buildconf spmenu-${version} || :
|
||||
cp -rf LICENSE meson.build meson.options *.h *.c scripts/ docs/ libs/ themes/ PKGBUILD spmenu-${version}
|
||||
[ -f Makefile ] && cp Makefile spmenu-${version} || :
|
||||
[ -f host.mk ] && cp host.mk spmenu-${version} || :
|
||||
[ -f toggle.mk ] && cp toggle.mk spmenu-${version} || :
|
||||
|
|
Loading…
Reference in a new issue