Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] the -display-columns option of -dmenu seems to resulting in extraneous leading whitespace #1834

Closed
2 tasks done
sentriz opened this issue Apr 12, 2023 · 7 comments
Closed
2 tasks done
Labels
Milestone

Comments

@sentriz
Copy link

sentriz commented Apr 12, 2023

Rofi version (rofi -v)

1.7.5

Configuration

configuration
configuration {
/*	modes: "window,drun,run,ssh";*/
/*	font: "mono 12";*/
/*	location: 0;*/
/*	yoffset: 0;*/
/*	xoffset: 0;*/
/*	fixed-num-lines: true;*/
/*	show-icons: false;*/
/*	terminal: "rofi-sensible-terminal";*/
/*	ssh-client: "ssh";*/
/*	ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/
/*	run-command: "{cmd}";*/
/*	run-list-command: "";*/
/*	run-shell-command: "{terminal} -e {cmd}";*/
/*	window-command: "wmctrl -i -R {window}";*/
/*	window-match-fields: "all";*/
/*	icon-theme: ;*/
/*	drun-match-fields: "name,generic,exec,categories,keywords";*/
/*	drun-categories: ;*/
/*	drun-show-actions: false;*/
/*	drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";*/
/*	drun-url-launcher: "xdg-open";*/
/*	disable-history: false;*/
/*	ignored-prefixes: "";*/
/*	sort: false;*/
/*	sorting-method: "normal";*/
/*	case-sensitive: false;*/
/*	cycle: true;*/
/*	sidebar-mode: false;*/
/*	hover-select: false;*/
/*	eh: 1;*/
/*	auto-select: false;*/
/*	parse-hosts: false;*/
/*	parse-known-hosts: true;*/
/*	combi-modes: "window,run";*/
/*	matching: "normal";*/
/*	tokenize: true;*/
/*	m: "-5";*/
/*	filter: ;*/
/*	dpi: -1;*/
/*	threads: 0;*/
/*	scroll-method: 0;*/
/*	window-format: "{w}    {c}   {t}";*/
/*	click-to-exit: true;*/
/*	max-history-size: 25;*/
/*	combi-hide-mode-prefix: false;*/
/*	combi-display-format: "{mode} {text}";*/
/*	matching-negate-char: '-' /* unsupported */;*/
/*	cache-dir: ;*/
/*	window-thumbnail: false;*/
/*	drun-use-desktop-cache: false;*/
/*	drun-reload-desktop-cache: false;*/
/*	normalize-match: false;*/
/*	steal-focus: false;*/
/*	application-fallback-icon: ;*/
/*	refilter-timeout-limit: 8192;*/
/*	xserver-i300-workaround: false;*/
/*	pid: "/run/user/1000/rofi.pid";*/
/*	display-window: ;*/
/*	display-windowcd: ;*/
/*	display-run: ;*/
/*	display-ssh: ;*/
/*	display-drun: ;*/
/*	display-combi: ;*/
/*	display-keys: ;*/
/*	display-filebrowser: ;*/
/*	kb-primary-paste: "Control+V,Shift+Insert";*/
/*	kb-secondary-paste: "Control+v,Insert";*/
/*	kb-clear-line: "Control+w";*/
/*	kb-move-front: "Control+a";*/
/*	kb-move-end: "Control+e";*/
/*	kb-move-word-back: "Alt+b,Control+Left";*/
/*	kb-move-word-forward: "Alt+f,Control+Right";*/
/*	kb-move-char-back: "Left,Control+b";*/
/*	kb-move-char-forward: "Right,Control+f";*/
/*	kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/
/*	kb-remove-word-forward: "Control+Alt+d";*/
/*	kb-remove-char-forward: "Delete,Control+d";*/
/*	kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/
/*	kb-remove-to-eol: "Control+k";*/
/*	kb-remove-to-sol: "Control+u";*/
/*	kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/
/*	kb-accept-custom: "Control+Return";*/
/*	kb-accept-custom-alt: "Control+Shift+Return";*/
/*	kb-accept-alt: "Shift+Return";*/
/*	kb-delete-entry: "Shift+Delete";*/
/*	kb-mode-next: "Shift+Right,Control+Tab";*/
/*	kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/
/*	kb-mode-complete: "Control+l";*/
/*	kb-row-left: "Control+Page_Up";*/
/*	kb-row-right: "Control+Page_Down";*/
/*	kb-row-up: "Up,Control+p";*/
/*	kb-row-down: "Down,Control+n";*/
/*	kb-row-tab: "";*/
/*	kb-element-next: "Tab";*/
/*	kb-element-prev: "ISO_Left_Tab";*/
/*	kb-page-prev: "Page_Up";*/
/*	kb-page-next: "Page_Down";*/
/*	kb-row-first: "Home,KP_Home";*/
/*	kb-row-last: "End,KP_End";*/
/*	kb-row-select: "Control+space";*/
/*	kb-screenshot: "Alt+S";*/
/*	kb-ellipsize: "Alt+period";*/
/*	kb-toggle-case-sensitivity: "grave,dead_grave";*/
/*	kb-toggle-sort: "Alt+grave";*/
/*	kb-cancel: "Escape,Control+g,Control+bracketleft";*/
/*	kb-custom-1: "Alt+1";*/
/*	kb-custom-2: "Alt+2";*/
/*	kb-custom-3: "Alt+3";*/
/*	kb-custom-4: "Alt+4";*/
/*	kb-custom-5: "Alt+5";*/
/*	kb-custom-6: "Alt+6";*/
/*	kb-custom-7: "Alt+7";*/
/*	kb-custom-8: "Alt+8";*/
/*	kb-custom-9: "Alt+9";*/
/*	kb-custom-10: "Alt+0";*/
/*	kb-custom-11: "Alt+exclam";*/
/*	kb-custom-12: "Alt+at";*/
/*	kb-custom-13: "Alt+numbersign";*/
/*	kb-custom-14: "Alt+dollar";*/
/*	kb-custom-15: "Alt+percent";*/
/*	kb-custom-16: "Alt+dead_circumflex";*/
/*	kb-custom-17: "Alt+ampersand";*/
/*	kb-custom-18: "Alt+asterisk";*/
/*	kb-custom-19: "Alt+parenleft";*/
/*	kb-select-1: "Super+1";*/
/*	kb-select-2: "Super+2";*/
/*	kb-select-3: "Super+3";*/
/*	kb-select-4: "Super+4";*/
/*	kb-select-5: "Super+5";*/
/*	kb-select-6: "Super+6";*/
/*	kb-select-7: "Super+7";*/
/*	kb-select-8: "Super+8";*/
/*	kb-select-9: "Super+9";*/
/*	kb-select-10: "Super+0";*/
/*	ml-row-left: "ScrollLeft";*/
/*	ml-row-right: "ScrollRight";*/
/*	ml-row-up: "ScrollUp";*/
/*	ml-row-down: "ScrollDown";*/
/*	me-select-entry: "MousePrimary";*/
/*	me-accept-entry: "MouseDPrimary";*/
/*	me-accept-custom: "Control+MouseDPrimary";*/
  timeout {
      action: "kb-cancel";
      delay:  0;
  }
  filebrowser {
      directories-first: true;
      sorting-method:    "name";
  }
}

Theme

theme
/**
 * rofi -dump-theme output.
 * Rofi version: 1.7.5
 **/
* {
    red:                         rgba ( 220, 50, 47, 100 % );
    selected-active-foreground:  var(background);
    lightfg:                     rgba ( 88, 104, 117, 100 % );
    separatorcolor:              var(foreground);
    urgent-foreground:           var(red);
    alternate-urgent-background: var(lightbg);
    lightbg:                     rgba ( 238, 232, 213, 100 % );
    background-color:            transparent;
    border-color:                var(foreground);
    normal-background:           var(background);
    selected-urgent-background:  var(red);
    alternate-active-background: var(lightbg);
    spacing:                     2;
    blue:                        rgba ( 38, 139, 210, 100 % );
    alternate-normal-foreground: var(foreground);
    urgent-background:           var(background);
    selected-normal-foreground:  var(lightbg);
    active-foreground:           var(blue);
    background:                  rgba ( 253, 246, 227, 100 % );
    selected-active-background:  var(blue);
    active-background:           var(background);
    selected-normal-background:  var(lightfg);
    alternate-normal-background: var(lightbg);
    foreground:                  rgba ( 0, 43, 54, 100 % );
    selected-urgent-foreground:  var(background);
    normal-foreground:           var(foreground);
    alternate-urgent-foreground: var(red);
    alternate-active-foreground: var(blue);
}
element {
    padding: 1px ;
    cursor:  pointer;
    spacing: 5px ;
    border:  0;
}
element normal.normal {
    background-color: var(normal-background);
    text-color:       var(normal-foreground);
}
element normal.urgent {
    background-color: var(urgent-background);
    text-color:       var(urgent-foreground);
}
element normal.active {
    background-color: var(active-background);
    text-color:       var(active-foreground);
}
element selected.normal {
    background-color: var(selected-normal-background);
    text-color:       var(selected-normal-foreground);
}
element selected.urgent {
    background-color: var(selected-urgent-background);
    text-color:       var(selected-urgent-foreground);
}
element selected.active {
    background-color: var(selected-active-background);
    text-color:       var(selected-active-foreground);
}
element alternate.normal {
    background-color: var(alternate-normal-background);
    text-color:       var(alternate-normal-foreground);
}
element alternate.urgent {
    background-color: var(alternate-urgent-background);
    text-color:       var(alternate-urgent-foreground);
}
element alternate.active {
    background-color: var(alternate-active-background);
    text-color:       var(alternate-active-foreground);
}
element-text {
    background-color: transparent;
    cursor:           inherit;
    highlight:        inherit;
    text-color:       inherit;
}
element-icon {
    background-color: transparent;
    size:             1.0000em ;
    cursor:           inherit;
    text-color:       inherit;
}
window {
    padding:          5;
    background-color: var(background);
    border:           1;
}
mainbox {
    padding: 0;
    border:  0;
}
message {
    padding:      1px ;
    border-color: var(separatorcolor);
    border:       2px dash 0px 0px ;
}
textbox {
    text-color: var(foreground);
}
listview {
    padding:      2px 0px 0px ;
    scrollbar:    true;
    border-color: var(separatorcolor);
    spacing:      2px ;
    fixed-height: 0;
    border:       2px dash 0px 0px ;
}
scrollbar {
    width:        4px ;
    padding:      0;
    handle-width: 8px ;
    border:       0;
    handle-color: var(normal-foreground);
}
sidebar {
    border-color: var(separatorcolor);
    border:       2px dash 0px 0px ;
}
button {
    cursor:     pointer;
    spacing:    0;
    text-color: var(normal-foreground);
}
button selected {
    background-color: var(selected-normal-background);
    text-color:       var(selected-normal-foreground);
}
num-filtered-rows {
    expand:     false;
    text-color: Gray;
}
num-rows {
    expand:     false;
    text-color: Gray;
}
textbox-num-sep {
    expand:     false;
    str:        "/";
    text-color: Gray;
}
inputbar {
    padding:    1px ;
    spacing:    0px ;
    text-color: var(normal-foreground);
    children:   [ "prompt","textbox-prompt-colon","entry","num-filtered-rows","textbox-num-sep","num-rows","case-indicator" ];
}
case-indicator {
    spacing:    0;
    text-color: var(normal-foreground);
}
entry {
    text-color:        var(normal-foreground);
    cursor:            text;
    spacing:           0;
    placeholder-color: Gray;
    placeholder:       "Type to filter";
}
prompt {
    spacing:    0;
    text-color: var(normal-foreground);
}
textbox-prompt-colon {
    margin:     0px 0.3000em 0.0000em 0.0000em ;
    expand:     false;
    str:        ":";
    text-color: inherit;
}

Timing report

No response

Launch command

rofi -dmenu -display-columns 2

Step to reproduce

printf "first col\t%s\n" "second col a" "second col b" "second col c" | rofi -dmenu -display-columns 2

this is basically just a simple table that has two columns separated by a single tab char

image

Expected behavior

only first column printed with no leading whitespace

image

Actual behavior

only first column printed with leading whitespace with -display-columns 2

image

Additional information

No response

Using wayland display server protocol

  • No, I don't use the wayland display server protocol

I've checked if the issue exists in the latest stable release

  • Yes, I have checked the problem exists in the latest stable version
@DaveDavenport
Copy link
Collaborator

yeah, silly issue. very very quick look at it. This might fix it:

diff --git a/source/modes/dmenu.c b/source/modes/dmenu.c
index 85dda8e5..27b6097d 100644
--- a/source/modes/dmenu.c
+++ b/source/modes/dmenu.c
@@ -391,7 +391,7 @@ static gchar *dmenu_format_output_string(const DmenuModePrivateData *pd,
     unsigned int index =
         (unsigned int)g_ascii_strtoull(pd->columns[i], NULL, 10);
     if (index <= ns && index > 0) {
-      if (index == 1) {
+      if (i == 0) {
         g_string_append(str_retv, splitted[index - 1]);
       } else {
         g_string_append_c(str_retv, '\t');

@DaveDavenport DaveDavenport added the Incomplete Report - Please follow the guidelines Your report is incomplete and does not follow the guidelines, you may not expect an answer label Apr 12, 2023
@DaveDavenport
Copy link
Collaborator

DaveDavenport commented Apr 12, 2023

I have no idea what 'default X from arch repo is'.. please don't just assume things instead of following the very simple questions asked.

From start of issue:
If you ask a
question, enter dummy information in required fields to get passed the
checks
or in general completely ignore the guidelines, the issue will
be closed and locked as spam.

So be consistent, I should lock it..

@sentriz
Copy link
Author

sentriz commented Apr 12, 2023

sure, added the configs

@DaveDavenport DaveDavenport removed the Incomplete Report - Please follow the guidelines Your report is incomplete and does not follow the guidelines, you may not expect an answer label Apr 12, 2023
@DaveDavenport
Copy link
Collaborator

thanks.

@sentriz
Copy link
Author

sentriz commented Apr 12, 2023

can confirm it seems to be fixed with 71570a9 thanks 👍

@DaveDavenport DaveDavenport added this to the 1.7.6 milestone Apr 12, 2023
@DaveDavenport
Copy link
Collaborator

thx for testing.

@github-actions
Copy link

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators May 24, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants