1
0
mirror of https://github.com/tiyn/dmenu.git synced 2025-10-18 22:01:20 +02:00

17 Commits

Author SHA1 Message Date
829066cbb2 making tab and shift tab cycle suggestions 2023-11-06 00:54:42 +01:00
b5fe99141e updated repository title in readme 2023-10-24 06:10:39 +02:00
dfc6c11af1 updated config 2023-10-24 04:10:11 +02:00
c27e2fb20e added fuzzymatching to readme 2023-10-22 06:54:03 +02:00
TiynGER
70b41a0fe6 update readme 2020-06-14 22:19:33 +02:00
TiynGER
0395a11ec1 changing colors 2020-05-30 19:53:23 +02:00
TiynGER
9dcf8053a8 adding packages to gitignore 2020-05-30 01:14:27 +02:00
TiynGER
e5ff77ab9c adding .gitignore 2020-05-30 01:09:57 +02:00
TiynGER
9afe2c2b5b fixing PKGBUILD AND SRCINFO Versions 2020-05-30 01:08:20 +02:00
TiynGER
446fd5502f Merge branch 'config' of ssh+git://github/tiynger/dmenu-new into config 2020-05-29 17:29:51 +02:00
TiynGER
7263e134aa new color 2020-05-29 17:29:47 +02:00
Marten Kante
f325b36ae6 Update README.md 2020-05-06 12:30:01 +02:00
TiynGER
1551fa01e1 update readme 2020-05-06 12:26:30 +02:00
TiynGER
5bc1cb0478 adding pkgbuild 2020-05-06 11:59:23 +02:00
TiynGER
3a6a2a8457 new color 2020-04-02 01:28:30 +02:00
TiynGER
3befdc0815 new color 2020-04-02 01:25:45 +02:00
TiynGER
da47fa1f67 no readme in base 2020-03-29 16:24:24 +02:00
6 changed files with 116 additions and 25 deletions

17
.SRCINFO Normal file
View File

@@ -0,0 +1,17 @@
pkgbase = dmenu-tiyn-git
pkgdesc = This is the dmenu build of tiyn. It includes the border, center and password patches.
pkgver = 4.9
pkgrel = 1
url = https://github.com/tiyn/dmenu
arch = x86_64
arch = i686
license = MIT
makedepends = git
provides = dmenu
conflicts = dmenu
replaces = dmenu
source = git+https://github.com/tiyn/dmenu
md5sums = SKIP
pkgname = dmenu-tiyn-git

9
.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
*.o
*.orig
*.1
dmenu
dmenu_run
dmenu_path
stest
pkg
*.pkg.tar.xz

49
PKGBUILD Normal file
View File

@@ -0,0 +1,49 @@
# This is an example PKGBUILD file. Use this as a start to creating your own,
# and remove these comments. For more information, see 'man PKGBUILD'.
# NOTE: Please fill out the license field for your package! If it is unknown,
# then please put 'unknown'.
# Maintainer: Marten Kante <tiyn@martenkante.eu>
pkgname=dmenu-tiyn-git
pkgver=4.9
pkgrel=1
epoch=
pkgdesc="This is the dmenu build of tiyn. It includes the border, center and password patches."
arch=(x86_64 i686)
url="https://github.com/tiyn/dmenu"
license=('MIT')
groups=()
depends=()
makedepends=(git)
checkdepends=()
optdepends=()
provides=(dmenu)
conflicts=(dmenu)
replaces=(dmenu)
backup=()
options=()
install=
changelog=
source=("git+$url")
noextract=()
md5sums=('SKIP')
validpgpkeys=()
pkgver() {
cd "${_pkgname}"
printf "4.9.r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
}
build() {
cd dmenu
make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
}
package() {
cd dmenu
mkdir -p ${pkgdir}/opt/${pkgname}
cp -rf * ${pkgdir}/opt/${pkgname}
make PREFIX=/usr DESTDIR="${pkgdir}" install
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md"
}

View File

@@ -1,11 +1,19 @@
# dmenu
This is my patched version of dmenu.
The base version is directly from suckless.org.
This belongs to my larbs installation script, meaning it's supposed to work in the environment of the larbs-base-installation.
## Patches
The list below shows the currently applied patches to this build.
- dmenu-border-4.9.diff
- dmenu-center-20200111-8cd37e1.diff
- dmenu-password-4.9.diff
- dmenu-xresources-20200302-db6093f.diff
- dmenu-border-4.9.diff (adds a border)
- dmenu-center-20200111-8cd37e1.diff (adds option to center dmenu)
- dmenu-fuzzymatch-4.9.diff (adds option to fuzzy matching)
- dmenu-password-4.9.diff (adds option to hide input)
## Installation
The most basic way is to clone the repository and then invoke make.
- `git clone https://github.com/tiyn/dmenu`
- `make clean install`

View File

@@ -2,6 +2,9 @@
/* Default settings; can be overriden by command line. */
static int topbar = 1; /* -b option; if 0, dmenu appears at bottom */
static int centered = 0; /* -c option; centers dmenu on screen */
static int min_width = 500; /* minimum width when centered */
static int fuzzy = 1; /* -F option; if 0, dmenu doesn't use fuzzy matching */
/* -fn option overrides fonts[0]; default X11 font or font set */
static const char *fonts[] = {
"monospace:size=10"
@@ -9,9 +12,9 @@ static const char *fonts[] = {
static const char *prompt = NULL; /* -p option; prompt to the left of input field */
static const char *colors[SchemeLast][2] = {
/* fg bg */
[SchemeNorm] = { "#ffa500", "#000000" },
[SchemeSel] = { "#000000", "#ffa500" },
[SchemeOut] = { "#000000", "#00ffff" },
[SchemeNorm] = { "#dfdfdf", "#0e0f14" },
[SchemeSel] = { "#eeeeee", "#282828" },
[SchemeOut] = { "#eeeeee", "#282828" },
};
/* -l option; if nonzero, dmenu uses vertical list with given number of lines */
static unsigned int lines = 0;
@@ -21,3 +24,6 @@ static unsigned int lines = 0;
* for example: " /?\"&[]"
*/
static const char worddelimiters[] = " ";
/* Size of the window border */
static const unsigned int border_width = 2;

38
dmenu.c
View File

@@ -444,7 +444,8 @@ insert:
if (lines > 0)
return;
/* fallthrough */
case XK_Up:
// case XK_Up:
case XK_ISO_Left_Tab:
if (sel && sel->left && (sel = sel->left)->right == curr) {
curr = prev;
calcoffsets();
@@ -472,28 +473,29 @@ insert:
if (sel)
sel->out = 1;
break;
case XK_Right:
if (text[cursor] != '\0') {
cursor = nextrune(+1);
break;
}
if (lines > 0)
return;
/* fallthrough */
case XK_Down:
// case XK_Right:
// if (text[cursor] != '\0') {
// cursor = nextrune(+1);
// break;
// }
// if (lines > 0)
// return;
// /* fallthrough */
// case XK_Down:
case XK_Tab:
if (sel && sel->right && (sel = sel->right) == next) {
curr = next;
calcoffsets();
}
break;
case XK_Tab:
if (!sel)
return;
strncpy(text, sel->text, sizeof text - 1);
text[sizeof text - 1] = '\0';
cursor = strlen(text);
match();
break;
// case XK_Tab:
// if (!sel)
// return;
// strncpy(text, sel->text, sizeof text - 1);
// text[sizeof text - 1] = '\0';
// cursor = strlen(text);
// match();
// break;
}
draw: