You are not logged in.

#1 2020-04-22 18:52:03

DAMO238
Member
Registered: 2020-02-25
Posts: 51

[SOLVED] Rofi does not run unless run in terminal.

I have modified some wrapper scripts (https://gitlab.com/vahnrr/rofi-menus for base version, my modifications are purely aesthetic) for rofi. I can run all these rofi commands from the terminal just fine, but if I run them from i3-keybinding, they don't work. They also don't run if I try to start them from dmenu. Just to check if i3 is trying to start rofi, I enabled debugging and it seems it is:

04/22/20 19:42:58 - commands_parser.c:parse_command:266 - COMMAND: *exec --no-startup-id "rofi-power"*
04/22/20 19:42:58 - commands.c:cmd_criteria_init:153 - Initializing criteria, current_match = 0x5579f343e460
04/22/20 19:42:58 - commands.c:cmd_exec:1225 - should execute rofi-power, no_startup_id = 1
04/22/20 19:42:58 - executing: rofi-power
04/22/20 19:42:58 - commands.c:cmd_criteria_init:153 - Initializing criteria, current_match = 0x5579f343e460
04/22/20 19:42:58 - ipc.c:ipc_send_binding_event:1663 - Issue IPC binding run event (sym = Escape, code = 0)
04/22/20 19:42:58 - handlers.c:handle_event:1358 - event type 3, xkb_base 85
04/22/20 19:42:58 - key_press.c:handle_key_press:23 - KeyRelease 9, state raw = 0x40
04/22/20 19:42:58 - bindings.c:get_binding_from_xcb_event:316 - (removed capslock, state = 0x40)
04/22/20 19:42:58 - bindings.c:get_binding_from_xcb_event:341 - (transformed keyboard group, state = 0x10040)

This suggests to me that there is some subtle difference between my login shell and my interactive shell, but I am not sure what could be causing this discrepancy. I have also tried putting a short delay infront of the rofi call, to no avail.

Last edited by DAMO238 (2020-04-28 12:51:11)

Offline

#2 2020-04-22 19:57:02

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

Do the unmodified versions run?
If yes, post your modifications. If no, are the scripts in a global $PATH?

Offline

#3 2020-04-22 20:18:44

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

No, I can't even run 'rofi -show run' outside of a terminal. All the scripts are in my $PATH and this is how I run the scripts in terminal as opposed to finding the exact path of each script. The problem seems to lie with rofi itself.

Offline

#4 2020-04-22 20:29:41

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

Grabbed keyboard issue? What if you run "sleep 0.5; rofi -show run" (so you can release the key before running rofi)?

Offline

#5 2020-04-22 21:11:35

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

Already tried that, didn't work unfortunately.

Offline

#6 2020-04-23 07:19:46

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

Wild guess, output of "localectl"?

Offline

#7 2020-04-23 13:14:07

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

   System Locale: LANG=en_US.UTF-8
       VC Keymap: uk
      X11 Layout: gb

Offline

#8 2020-04-23 14:18:53

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

Nope…

You could bind a key to "env > /tmp.i3wm.env" and compare that w/ "env" in an interactive shell.

Offline

#9 2020-04-23 15:35:57

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

Sorry, I'm not quite sure what you mean / how to do that?
Do you mean?:

xmodmap -e "Keycode <number I want to use> = env > /tmp.i3wm.env"

Offline

#10 2020-04-23 15:39:20

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

No, an entry in your i3wm config that has "exec env > /tmp.i3wm.env" as action.
If i3 exec doesn't support redirections, you could also dump

tr '\0' '\n' < /proc/<PID OF I3 HERE>/environ

to inspect it's environment, eg.

tr '\0' '\n' < /proc/123456/environ

Offline

#11 2020-04-23 16:15:06

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

I see, thanks for clarifying. This is the output:

SHELL=/bin/zsh
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
DESKTOP_SESSION=i3
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/home/damien
XDG_SESSION_DESKTOP=i3
LOGNAME=damien
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
XAUTHORITY=/home/damien/.Xauthority
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/damien
HOME=/home/damien
LANG=en_US.UTF-8
XDG_CURRENT_DESKTOP=i3
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
USER=damien
CUDA_PATH=/opt/cuda
DISPLAY=:0
SHLVL=0
XDG_VTNR=7
XDG_SESSION_ID=2
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_RUNTIME_DIR=/run/user/1000
MKLROOT=/opt/intel/mkl
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/opt/cuda-10.0/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/damien/mycroft-core/bin
GDMSESSION=i3
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/damien

Offline

#12 2020-04-27 22:18:49

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

Not sure if this is the case, but I have noticed that my terminal environment is slightly different, which may be the cause, but I am not sure which parts would matter here:

konsole(works):

COLORFGBG=15;0
COLORTERM=truecolor
CUDA_PATH=/opt/cuda
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=i3
DISPLAY=:0
GDMSESSION=i3
GTK_MODULES=canberra-gtk-module
HOME=/home/damien
I3SOCK=/run/user/1000/i3/ipc-socket.1120
KONSOLE_DBUS_SERVICE=:1.1225
KONSOLE_DBUS_SESSION=/Sessions/1
KONSOLE_DBUS_WINDOW=/Windows/1
KONSOLE_VERSION=200400
LANG=en_GB.UTF-8
LANGUAGE=
LOGNAME=damien
MAIL=/var/spool/mail/damien
MKLROOT=/opt/intel/mkl
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/opt/cuda-10.0/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/damien/mycroft-core/bin
PROFILEHOME=
PWD=/home/damien
QT_QPA_PLATFORMTHEME=
SHELL=/bin/zsh
SHELL_SESSION_ID=e4c8f00f3c8443d5aab522fcc46d797d
SHLVL=1
TERM=xterm-256color
USER=damien
WINDOWID=69206023
XAUTHORITY=/home/damien/.Xauthority
XDG_CURRENT_DESKTOP=i3
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/damien
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=i3
XDG_SESSION_ID=2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
XDG_SESSION_TYPE=x11
XDG_VTNR=7
_=/usr/bin/env
OLDPWD=/home/damien
TERMINAL=xterm
EDITOR=vim

xterm(works):

SHELL=/bin/zsh
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
I3SOCK=/run/user/1000/i3/ipc-socket.1120
DESKTOP_SESSION=i3
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/home/damien
XDG_SESSION_DESKTOP=i3
LOGNAME=damien
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
_=/usr/bin/env
XAUTHORITY=/home/damien/.Xauthority
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/damien
HOME=/home/damien
LANG=en_GB.UTF-8
XDG_CURRENT_DESKTOP=i3
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
USER=damien
CUDA_PATH=/opt/cuda
DISPLAY=:0
SHLVL=2
XDG_VTNR=7
XDG_SESSION_ID=2
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_RUNTIME_DIR=/run/user/1000
MKLROOT=/opt/intel/mkl
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/opt/cuda-10.0/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/damien/mycroft-core/bin
GDMSESSION=i3
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/damien
OLDPWD=/home/damien
TERM=xterm
WINDOWID=69206050
XTERM_VERSION=XTerm(353)
XTERM_LOCALE=C
XTERM_SHELL=/bin/zsh
TERMINAL=xterm
EDITOR=vim

urxvt(works):

SHELL=/bin/zsh
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
I3SOCK=/run/user/1000/i3/ipc-socket.1120
DESKTOP_SESSION=i3
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/home/damien
XDG_SESSION_DESKTOP=i3
LOGNAME=damien
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
_=/usr/bin/env
XAUTHORITY=/home/damien/.Xauthority
DESKTOP_STARTUP_ID=i3/dmenu_run/1120-2-Damien-Laptop_TIME30239207
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/damien
HOME=/home/damien
LANG=en_GB.UTF-8
XDG_CURRENT_DESKTOP=i3
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
USER=damien
CUDA_PATH=/opt/cuda
DISPLAY=:0
SHLVL=2
XDG_VTNR=7
XDG_SESSION_ID=2
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_RUNTIME_DIR=/run/user/1000
MKLROOT=/opt/intel/mkl
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/opt/cuda-10.0/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/damien/mycroft-core/bin
GDMSESSION=i3
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/damien
OLDPWD=/home/damien
WINDOWID=69206026
COLORFGBG=0;15
COLORTERM=rxvt
TERM=rxvt-unicode-256color
TERMINAL=xterm
EDITOR=vim

dmenu(not working):

SHELL=/bin/zsh
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0
I3SOCK=/run/user/1000/i3/ipc-socket.1120
DESKTOP_SESSION=i3
GTK_MODULES=canberra-gtk-module
XDG_SEAT=seat0
PWD=/home/damien
XDG_SESSION_DESKTOP=i3
LOGNAME=damien
QT_QPA_PLATFORMTHEME=qt5ct
XDG_SESSION_TYPE=x11
_=/usr/bin/env
XAUTHORITY=/home/damien/.Xauthority
DESKTOP_STARTUP_ID=i3/dmenu_run/1120-6-Damien-Laptop_TIME30358427
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/damien
HOME=/home/damien
LANG=en_US.UTF-8
XDG_CURRENT_DESKTOP=i3
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
USER=damien
CUDA_PATH=/opt/cuda
DISPLAY=:0
SHLVL=1
XDG_VTNR=7
XDG_SESSION_ID=2
MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins
XDG_RUNTIME_DIR=/run/user/1000
MKLROOT=/opt/intel/mkl
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/opt/cuda-10.0/bin:/opt/cuda/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/damien/mycroft-core/bin
GDMSESSION=i3
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
MAIL=/var/spool/mail/damien
OLDPWD=/home/damien

And the i3 environment is in my comment above. Note that the dmenu and urxvt environments are almost the same except for SHLVL and some terminal specific variables that should not affect external programs.

Offline

#13 2020-04-28 05:19:45

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 77,822

Re: [SOLVED] Rofi does not run unless run in terminal.

LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_GB.UTF-8
LANG=en_US.UTF-8

Spot the difference.

locale -a

?

Offline

#14 2020-04-28 12:50:56

DAMO238
Member
Registered: 2020-02-25
Posts: 51

Re: [SOLVED] Rofi does not run unless run in terminal.

Ah, yes, great spot! My locale.conf was set to en_US.UTF-8 while my locale.gen was set to en_GB.UTF-8. Manually setting the locale back to GB fixed the issue! Thanks for the help!

Offline

Board footer

Powered by FluxBB