1
0
Fork 0
mirror of https://github.com/Cloudef/bemenu synced 2024-05-09 17:16:20 +02:00

Compare commits

...

5 Commits

Author SHA1 Message Date
MouadCharradi 3e8e784b73
Merge c19b0003e7 into c0c608cad7 2024-03-10 14:51:40 -06:00
Andrei E c0c608cad7 Move SIGCHLD to client launch 2024-03-09 23:46:46 +09:00
Andrei E 9a7b736dd9 Remove SIGCHLD handler
SIG_DFL on SIGCHLD prevents proper functioning of pclose, which the new version of the pasting functionality requires.

Closes Cloudef#385

Ref: https://stackoverflow.com/questions/54189212/popen-returns-1-unexpectedly
2024-03-09 23:46:46 +09:00
Mouad Charradi c19b0003e7
Move more default values to `config.h`.
Signed-off-by: Mouad Charradi <charradimouad58@gmail.com>
2023-11-21 21:34:02 +01:00
Mouad Charradi 010bde743e
Split configuration variables to a `config.h` file. (suckless style)
Signed-off-by: Mouad Charradi <charradimouad58@gmail.com>
2023-11-19 13:28:16 +01:00
4 changed files with 68 additions and 55 deletions

View File

@ -5,13 +5,7 @@
#include <unistd.h>
#include <dirent.h>
#include <assert.h>
#include "common/common.h"
static struct client client = {
.filter_mode = BM_FILTER_MODE_DMENU,
.title = "bemenu-run",
.monitor = -1,
};
#include "../lib/config.h"
struct paths {
char *path;
@ -133,6 +127,14 @@ static inline void ignore_ret(int useless, ...) { (void)useless; }
static void
launch(const struct client *client, const char *bin)
{
struct sigaction action = {
.sa_handler = SIG_DFL,
.sa_flags = SA_NOCLDWAIT
};
// do not care about childs
sigaction(SIGCHLD, &action, NULL);
if (!bin)
return;
@ -166,25 +168,17 @@ item_cb(const struct client *client, struct bm_item *item)
int
main(int argc, char **argv)
{
struct sigaction action = {
.sa_handler = SIG_DFL,
.sa_flags = SA_NOCLDWAIT
};
// do not care about childs
sigaction(SIGCHLD, &action, NULL);
if (!bm_init())
return EXIT_FAILURE;
parse_args(&client, &argc, &argv);
parse_args(&default_bmenu_run_client, &argc, &argv);
struct bm_menu *menu;
if (!(menu = menu_with_options(&client)))
if (!(menu = menu_with_options(&default_bmenu_run_client)))
return EXIT_FAILURE;
read_items_to_menu_from_path(menu);
const enum bm_run_result status = run_menu(&client, menu, item_cb);
const enum bm_run_result status = run_menu(&default_bmenu_run_client, menu, item_cb);
bm_menu_free(menu);
return (status == BM_RUN_RESULT_SELECTED ? EXIT_SUCCESS : EXIT_FAILURE);
}

View File

@ -4,11 +4,6 @@
#include <assert.h>
#include "common/common.h"
static struct client client = {
.filter_mode = BM_FILTER_MODE_DMENU,
.title = "bemenu",
.monitor = -1,
};
static void
read_items_to_menu_from_stdin(struct bm_menu *menu)
@ -46,20 +41,23 @@ item_cb(const struct client *client, struct bm_item *item)
printf("%s\n", (text ? text : ""));
}
#include "../lib/config.h"
int
main(int argc, char **argv)
{
if (!bm_init())
return EXIT_FAILURE;
parse_args(&client, &argc, &argv);
parse_args(&default_bmenu_client, &argc, &argv);
struct bm_menu *menu;
if (!(menu = menu_with_options(&client)))
if (!(menu = menu_with_options(&default_bmenu_client)))
return EXIT_FAILURE;
read_items_to_menu_from_stdin(menu);
const enum bm_run_result status = run_menu(&client, menu, item_cb);
const enum bm_run_result status = run_menu(&default_bmenu_client, menu, item_cb);
bm_menu_free(menu);
switch (status) {
case BM_RUN_RESULT_SELECTED:

49
lib/config.h Normal file
View File

@ -0,0 +1,49 @@
#include "../client/common/common.h"
/**
* Default font.
*/
static const char *default_font = "monospace 10";
/**
* Default hexadecimal colors.
*/
static const char *default_colors[BM_COLOR_LAST] = {
"#121212FF", // BM_COLOR_TITLE_BG
"#D81860FF", // BM_COLOR_TITLE_FG
"#121212FF", // BM_COLOR_FILTER_BG
"#CACACAFF", // BM_COLOR_FILTER_FG
"#121212FF", // BM_COLOR_CURSOR_BG
"#CACACAFF", // BM_COLOR_CURSOR_FG
"#121212FF", // BM_COLOR_ITEM_BG
"#CACACAFF", // BM_COLOR_ITEM_FG
"#121212FF", // BM_COLOR_HIGHLIGHTED_BG
"#D81860FF", // BM_COLOR_HIGHLIGHTED_FG
"#D81860FF", // BM_COLOR_FEEDBACK_BG
"#121212FF", // BM_COLOR_FEEDBACK_FG
"#121212FF", // BM_COLOR_SELECTED_BG
"#D81860FF", // BM_COLOR_SELECTED_FG
"#121212FF", // BM_COLOR_ALTERNATE_BG
"#CACACAFF", // BM_COLOR_ALTERNATE_FG
"#121212FF", // BM_COLOR_SCROLLBAR_BG
"#D81860FF", // BM_COLOR_SCROLLBAR_FG
"#D81860FF", // BM_COLOR_BORDER
};
/**
* Default title/prompt for the bmenu client (Can be changed with `-p` option).
*/
static struct client default_bmenu_client = {
.filter_mode = BM_FILTER_MODE_DMENU,
.title = "bemenu",
.monitor = -1,
};
/**
* Default title/prompt for the bmenu-run client (Can be changed with `-p` option).
*/
static struct client default_bmenu_run_client = {
.filter_mode = BM_FILTER_MODE_DMENU,
.title = "bemenu-run",
.monitor = -1,
};

View File

@ -8,35 +8,7 @@
#include "vim.h"
/**
* Default font.
*/
static const char *default_font = "monospace 10";
/**
* Default hexadecimal colors.
*/
static const char *default_colors[BM_COLOR_LAST] = {
"#121212FF", // BM_COLOR_TITLE_BG
"#D81860FF", // BM_COLOR_TITLE_FG
"#121212FF", // BM_COLOR_FILTER_BG
"#CACACAFF", // BM_COLOR_FILTER_FG
"#121212FF", // BM_COLOR_CURSOR_BG
"#CACACAFF", // BM_COLOR_CURSOR_FG
"#121212FF", // BM_COLOR_ITEM_BG
"#CACACAFF", // BM_COLOR_ITEM_FG
"#121212FF", // BM_COLOR_HIGHLIGHTED_BG
"#D81860FF", // BM_COLOR_HIGHLIGHTED_FG
"#D81860FF", // BM_COLOR_FEEDBACK_BG
"#121212FF", // BM_COLOR_FEEDBACK_FG
"#121212FF", // BM_COLOR_SELECTED_BG
"#D81860FF", // BM_COLOR_SELECTED_FG
"#121212FF", // BM_COLOR_ALTERNATE_BG
"#CACACAFF", // BM_COLOR_ALTERNATE_FG
"#121212FF", // BM_COLOR_SCROLLBAR_BG
"#D81860FF", // BM_COLOR_SCROLLBAR_FG
"#D81860FF", // BM_COLOR_BORDER
};
#include "config.h"
/**
* Filter function map.