enkore / j4-dmenu-desktop Goto Github PK
View Code? Open in Web Editor NEWA fast desktop menu
License: GNU General Public License v3.0
A fast desktop menu
License: GNU General Public License v3.0
Hi,
Does j4-dmenu-desktop support xft fonts? Would like to replace dmenu-xft in ArchBang with j4-dmenu-desktop.
MrG
Because it is very small and hard to read. I know the regular dmenu can use xftfonts.
A lot of my programs show up twice, because they specify a Name and a GenericName in their .desktop file.
Would be nice if there was an argument to disable this and read just one of the two.
Hi,
In a term :
# my old conf
j4-dmenu-desktop --dmenu="dmenu -fn 'hack-10' -h 20 -nb '#202020' -nf '#FFFFFF' -sf '#dc322f' -sb '#202020' -p '>' -b -w 400 -q -o 0.9"
# new conf by adding diplay binary part
j4-dmenu-desktop --dmenu="(cat ; (stest -flx $(echo $PATH | tr : ' ') | sort -u)) | dmenu -fn 'hack-10' -h 20 -nb '#202020' -nf '#FFFFFF' -sf '#dc322f' -sb '#202020' -p '>' -b -w 400 -q -o 0.9"
Are working !
In my .i3/config, actual configuration which is working
#without displaying binary names
bindsym $mod+d exec --no-startup-id j4-dmenu-desktop --dmenu="dmenu -fn 'hack-10' -h 20 -nb '#202020' -nf '#FFFFFF' -sf '#dc322f' -sb '#202020' -p '>' -b -w 400 -q -o 0.9"
but the same cmd with binary name displaying is not working
bindsym $mod+d exec --no-startup-id j4-dmenu-desktop --dmenu="(cat ; (stest -flx $(echo $PATH | tr : ' ') | sort -u)) | dmenu -fn 'hack-10' -h 20 -nb '#202020' -nf '#FFFFFF' -sf '#dc322f' -sb '#202020' -p '>' -b -w 400 -q -o 0.9"
dmenu doesnt show
Running with --dmenu="dmenu -nb #002233"
produces the "usage" hint in terminal, passing in color names or omitting the -nb
option entirely however works as expected.
The same issue happens with all color-setting dmenu options.
OS: Manjaro Linux
WM: i3-gaps
DE: LightDM
Kernel: 4.9.24
compozitor: compton
The font I am using in i3 is
-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
Is there any option to use lower case to match application (generic) name?
I want to have desktop files first and executables after. Is this possible?
I wonder if it is possible to print everything that j4-dmenu-desktop
passes to dmenu to standard output.
I am trying to integrate j4-dmenu-desktop
with rofi so it can be used as one of it's so-called "modis" instead of be executed via j4-dmenu-desktop
's --dmenu
argument.
The best I've come so far is using temporary file, as simple cat
does not work (tries to execute first element, interpreting new line character as a user interaction):
j4-dmenu-desktop --dmenu="cat > /tmp/elements.txt" 2>&1 1>/dev/null
This, however, is just a half way to the success, because:
.desktop
file it is related with; this is how temporary file looks like:Atom Zombie Smasher
Bastion
Cogs
Legend of Grimrock
Half-Life 2 (Beta)
Portal (Beta)
How this could be accomplished, if at all?
Hi,
I learned a trick a while back on being able to run bash as the shell but use zsh for it's features without having to switch to zsh as your shell.
In order to do this, all you have to do is place in your .bashrc;
exec /bin/zsh
And then of course you have a zsh config file ~/.zshrc placed in your $HOME
When I run j4 from the terminal this is all I see for any application I try and run, there are no errors, but nothing will start.
j4-dmenu-desktop
SearchPath: /home/foo/.local/share/applications/
LocaleSuffix: en
LocaleSuffix: en_US
Read 4 .desktop files, found 3 apps.
User input is: Firefox
firefox
/bin/bash -i -c 'firefox '
Also in case it caught your eye, don't worry I changed the source SearchPath only for my $HOME :)
I hope you can fix this, I really like using my terminal with bash this way.
Here is my .bashrc;
#.bashrc
# colors & char ########################################################
alias 256colors='for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done'
case $TERM in (xterm|screen) TERM=$TERM-256color;; esac
# reset color
NC='\e[0m'
# Add color
eval `dircolors -b`
# alias ################################################################
# ls & grep ------------------------------------------------------------
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias diff='colordiff'
alias cls='clear && ls -hal'
alias xpropc='xprop | grep "WM_WINDOW_ROLE\|WM_CLASS" && echo "WM_CLASS(STRING) = \"NAME\", \"CLASS\""'
alias xevc='xev | grep -A2 --line-buffered '\''^KeyRelease'\'' | sed -n '\''/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'\'
# end of alias #########################################################
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# Add bin to path
export PATH="$PATH:/usr/sbin"
# echo -en "\e[1;31mSlackware64 \e[1;31m14.0 \e[0;32m(GNU/Linux)\e[m\n\n"
PS1="\[\e[00;33m\]\A \[\e[00;35m\]\[\e[1;35m\]\u\e[m \w> "
#PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#export DESKTOP_SESSION="gnome"
export EDITOR="nano"
export BROWSER="firefox"
export PAGER="most"
exec /bin/zsh
# Set the environment variable to force a specific style for QT5
export QT_STYLE_OVERRIDE=gtk
# Set desktop to use for QT5
export DESKTOP_SESSION=gnome
Here is my .zshrc
##############################
## zsh config file ~/.zshrc ##
## ##
##############################
## variables -----------------------------------------------------------
export BROWSER="firefox"
export EDITOR="nano"
export PAGER="most"
export NMON=cmdn
# text normal colors
alias 256colors='for code in {0..255}; do echo -e "\e[38;05;${code}m $code: Test"; done'
case $TERM in (xterm|screen) TERM=$TERM-256color;; esac
# reset color
NC='\e[0m'
########################################################################
## options #############################################################
########################################################################
# misc -----------------------------------------------------------------
# use vi keybinds
bindkey -v
# no beep
unsetopt beep
unsetopt hist_beep
unsetopt list_beep
# display errors
#setopt print_exit_value
# confirm 'rm *'
unsetopt rm_star_silent
# no error on search
setopt nullglob
# completion menu
setopt auto_menu
# confirm 'rm *' etc
setopt rm_star_wait
# don't &proc kill on exit
setopt auto_continue
# don’t nice &proc
setopt no_bg_nice
# keys -----------------------------------------------------------------
typeset -A key
key[Home]=${terminfo[khome]}
key[End]=${terminfo[kend]}
key[Insert]=${terminfo[kich1]}
key[Delete]=${terminfo[kdch1]}
key[Up]=${terminfo[kcuu1]}
key[Down]=${terminfo[kcud1]}
key[Left]=${terminfo[kcub1]}
key[Right]=${terminfo[kcuf1]}
key[PageUp]=${terminfo[kpp]}
key[PageDown]=${terminfo[knp]}
# setup key accordingly
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
# history --------------------------------------------------------------
# history size
HISTSIZE=5000
SAVEHIST=5000
# history file
HISTFILE=~/.zsh_history
# history without double entry
setopt hist_ignore_all_dups
# all zsh instance share same file
setopt share_history
# update history
setopt inc_append_history
########################################################################
## alias ###############################################################
########################################################################
# ls & grep ------------------------------------------------------------
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
########################################################################
## file type alias #####################################################
########################################################################
alias -s html=$BROWSER
alias -s pdf=epdfview
alias -s svg=inkscape
alias -s png=viewnior
alias -s jpg=viewnior
alias -s gif=viewnior
alias -s txt=$EDITOR
alias -s conf=$EDITOR
alias -s py=$EDITOR
alias -s php=$EDITOR
alias -s mp3=deadbeef
alias -s ogg=deadbeef
alias -s ogv=smplayer
alias -s flv=smplayer
alias -s avi=smplayer
alias -s mp4=smplayer
alias -s mkv=smplayer
alias -s m3u=deadbeef
alias -s zip=dtrx
alias -s tar=dtrx
alias -s tar.gz=dtrx
alias -s tar.bz2=dtrx
alias -s xz=dtrx
alias -s rar=dtrx
########################################################################
## completion ##########################################################
########################################################################
autoload -Uz compinit
compinit
zstyle ':completion:*' auto-description 'specify: %d'
zstyle ':completion:*' completer _expand _complete _correct _approximate
zstyle ':completion:*' format 'Completing %d'
zstyle ':completion:*' group-name ''
zstyle ':completion:*' menu select=1
eval "$(dircolors -b)"
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
zstyle ':completion:*' list-colors ''
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
zstyle ':completion:*' matcher-list '' 'm:{a-z}={A-Z}' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=* l:|=*'
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
zstyle ':completion:*' use-compctl false
zstyle ':completion:*' verbose true
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
########################################################################
## prompt ##############################################################
########################################################################
autoload -Uz promptinit
autoload -U colors && colors
promptinit
RPROMPT="%{$reset_color%}< %{$fg[blue]%}%M%{$reset_color%}:%{$fg[cyan]%}%y%{$reset_color%}:%{$fg[yellow]%}%~%{$reset_color%}"
PROMPT="%{$reset_color%}%{$fg[yellow]%} %T%{$reset_color%} %{$fg[green]%}%n%{$reset_color%} > "
## EOF #################################################################
I was getting the following error while trying to compile from master:
[ 50%] Built target catch
[ 56%] Building CXX object CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o
In file included from /home/tim/j4-dmenu-desktop/src/main.cc:2:0:
/home/tim/j4-dmenu-desktop/src/Main.hh: In member function ‘int Main::main(int, char**)’:
/home/tim/j4-dmenu-desktop/src/Main.hh:60:43: error: no matching function for call to ‘std::locale::locale(std::string&)’
std::locale locale(suffixes.locale);
^
/home/tim/j4-dmenu-desktop/src/Main.hh:60:43: note: candidates are:
In file included from /usr/include/c++/4.8/bits/ios_base.h:41:0,
from /usr/include/c++/4.8/ios:42,
from /usr/include/c++/4.8/istream:38,
from /usr/include/c++/4.8/fstream:38,
from /home/tim/j4-dmenu-desktop/src/Main.hh:1,
from /home/tim/j4-dmenu-desktop/src/main.cc:2:
/usr/include/c++/4.8/bits/locale_classes.h:311:5: note: std::locale::locale(std::locale::_Impl*)
locale(_Impl*) throw();
^
/usr/include/c++/4.8/bits/locale_classes.h:311:5: note: no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘std::locale::_Impl*’
/usr/include/c++/4.8/bits/locale_classes.h:178:7: note: template<class _Facet> std::locale::locale(const std::locale&, _Facet*)
locale(const locale& __other, _Facet* __f);
^
/usr/include/c++/4.8/bits/locale_classes.h:178:7: note: template argument deduction/substitution failed:
In file included from /home/tim/j4-dmenu-desktop/src/main.cc:2:0:
/home/tim/j4-dmenu-desktop/src/Main.hh:60:43: note: cannot convert ‘((Main*)this)->Main::suffixes.LocaleSuffixes::locale’ (type ‘std::string {aka std::basic_string<char>}’) to type ‘const std::locale&’
std::locale locale(suffixes.locale);
^
In file included from /usr/include/c++/4.8/bits/ios_base.h:41:0,
from /usr/include/c++/4.8/ios:42,
from /usr/include/c++/4.8/istream:38,
from /usr/include/c++/4.8/fstream:38,
from /home/tim/j4-dmenu-desktop/src/Main.hh:1,
from /home/tim/j4-dmenu-desktop/src/main.cc:2:
/usr/include/c++/4.8/bits/locale_classes.h:164:5: note: std::locale::locale(const std::locale&, const std::locale&, std::locale::category)
locale(const locale& __base, const locale& __add, category __cat);
^
/usr/include/c++/4.8/bits/locale_classes.h:164:5: note: candidate expects 3 arguments, 1 provided
/usr/include/c++/4.8/bits/locale_classes.h:151:5: note: std::locale::locale(const std::locale&, const char*, std::locale::category)
locale(const locale& __base, const char* __s, category __cat);
^
/usr/include/c++/4.8/bits/locale_classes.h:151:5: note: candidate expects 3 arguments, 1 provided
/usr/include/c++/4.8/bits/locale_classes.h:137:5: note: std::locale::locale(const char*)
locale(const char* __s);
^
/usr/include/c++/4.8/bits/locale_classes.h:137:5: note: no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘const char*’
/usr/include/c++/4.8/bits/locale_classes.h:126:5: note: std::locale::locale(const std::locale&)
locale(const locale& __other) throw();
^
/usr/include/c++/4.8/bits/locale_classes.h:126:5: note: no known conversion for argument 1 from ‘std::string {aka std::basic_string<char>}’ to ‘const std::locale&’
/usr/include/c++/4.8/bits/locale_classes.h:117:5: note: std::locale::locale()
locale() throw();
^
/usr/include/c++/4.8/bits/locale_classes.h:117:5: note: candidate expects 0 arguments, 1 provided
In file included from /home/tim/j4-dmenu-desktop/src/main.cc:2:0:
/home/tim/j4-dmenu-desktop/src/Main.hh: In member function ‘void Main::collect_files()’:
/home/tim/j4-dmenu-desktop/src/Main.hh:187:33: warning: ignoring return value of ‘char* getcwd(char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
getcwd(original_wd, 384);
^
/home/tim/j4-dmenu-desktop/src/Main.hh:195:32: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
chdir(path.c_str());
^
/home/tim/j4-dmenu-desktop/src/Main.hh:204:27: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
chdir(original_wd);
^
In file included from /home/tim/j4-dmenu-desktop/src/Main.hh:15:0,
from /home/tim/j4-dmenu-desktop/src/main.cc:2:
/home/tim/j4-dmenu-desktop/src/Application.hh: In member function ‘bool Application::read(const char*, char**, size_t*)’:
/home/tim/j4-dmenu-desktop/src/Application.hh:94:29: warning: ignoring return value of ‘char* getcwd(char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
getcwd(pwd, 100);
^
In file included from /home/tim/j4-dmenu-desktop/src/Main.hh:14:0,
from /home/tim/j4-dmenu-desktop/src/main.cc:2:
/home/tim/j4-dmenu-desktop/src/Dmenu.hh: In member function ‘void Dmenu::write(const string&)’:
/home/tim/j4-dmenu-desktop/src/Dmenu.hh:19:61: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
::write(this->outpipe[1], what.c_str(), what.size());
^
/home/tim/j4-dmenu-desktop/src/Dmenu.hh:20:43: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]
::write(this->outpipe[1], "\n", 1);
^
In file included from /home/tim/j4-dmenu-desktop/src/main.cc:2:0:
/home/tim/j4-dmenu-desktop/src/Main.hh: In member function ‘std::string Main::get_command()’:
/home/tim/j4-dmenu-desktop/src/Main.hh:247:37: warning: ignoring return value of ‘int chdir(const char*)’, declared with attribute warn_unused_result [-Wunused-result]
chdir(app->path.c_str());
^
make[2]: *** [CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o] Error 1
make[1]: *** [CMakeFiles/j4-dmenu-desktop.dir/all] Error 2
make: *** [all] Error 2
I'm running GCC version 4.84. I was however able to build when I checked out r2.14.
After last system upgrade, j4-dmenu-desktop
command is broken.
% j4-dmenu-desktop --help
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
zsh: abort (core dumped) j4-dmenu-desktop --help
I can run "Firefox example.com"
But the usage log only remembers "Firefox". Please allow a caching of arguments passed to each program, too!
Thanks
Hi!
j4-dmenu-desktop is a great tool. I would like to package it for debian. However there are some things that I would need you to change before I can package it into debian:
["please" implied for all of the following]
Even if you make all these changes, I cannot promise you that it will end up in debian soon, but I will do my best to get an upload.
Please let me know what you think of this... and again, great project 👍
Would it be possible to put entries that are more frequently used in the front?
For example you have 2 entries "File Manager" and "Firefox". Alphabetically "File Manager" should come before "Firefox". But if I launch "Firefox" more often it would be nice to take that into account. Meaning that it should prefer entries that are used more frequently.
Hello.
Even thought it was working some time ago, i tried to use it again today and noticed it was segfaulting.
I built with debug symbols to investigate a bit with gdb and found out that it was crashing on those lines (61-63) from desktop.cc
value = strchr(line, '=');
value[0] = 0;
value++;
There is a stray newline in the Catalan translation file (``po/ca.po`) of gmpc (which i installed recently)
"Client de reproducció\n"
"de música del GNOME"
resulting in a .desktop file with a line having de música del GNOME
by itself
Name[ca]=Client de reproducció
de música del GNOME
I added a check on strstr to prevent actions on a NULL pointer.
Maybe you can add an error message about a malformed .desktop file or just silently continue, your call. :P
A better fix of course would be for gmpc to ship with a correct translation / desktop file.
Relevant debian bug report from some months ago. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=694547
I'm also the maintainer to the package in Archlinux's AUR. https://aur.archlinux.org/packages/j4-dmenu-desktop-git/
Thanks for the software. :)
In order to compile I had to change -Wpedantic to -pedantic in CMakeLists.txt. I am using Debian with gcc 4.7.3
i3-dmenu-desktop shows not only parsed .desktop files, but their native names, too.
For example I want to filter for gmpc
and not Gnome Music Playing Client
.
It would be even nicer if I could enter gmpc
and Gnome Music Playing Client
was shown.
$ j4-dmenu-desktop
User input is: KDE System Settings
systemsettings -caption KDE System Settings
/bin/bash -i -c 'systemsettings -caption KDE System Settings '
systemsettings: Unexpected argument 'System'.
systemsettings: Use --help to get a list of available command line options.
Available .desktop files:
/usr/share/applications/kde4/kdesystemsettings.desktop:Exec=systemsettings -caption %c %i
/usr/share/applications/kde4/systemsettings.desktop:Exec=systemsettings -caption %c %i
/usr/share/applications/kde4/systemsettings.desktop:X-DocPath=systemsettings/index.html
KDE 4.13.0.
Hello,
Is it possible to find files with j4-dmenu-desktop? I'm currently using dmenu-extended (https://github.com/markjones112358/dmenu-extended) which supports what I want. I wonder if j4-dmenu-desktop could do the same thing?
This issue came up with the AUR package, most Arch users have enabled multiple parallel make jobs.
cmake generally tries to be clever with dependencies between project files when the build process is multithreaded (make -j2
or higher).
However, with external projects this does not work because cmake does not know what files will be generated and such.
In this case the git checkout of catch
may be slow and the test source files will be compiled too soon, so it can not find catch.hpp and aborts.
The fix is to set an explicit dependency on catch for the test program so cmake waits until catch is ready:
diff -Naur j4-dmenu-desktop-r2.11.old/CMakeLists.txt j4-dmenu-desktop-r2.11/CMakeLists.txt
--- j4-dmenu-desktop-r2.11.old/CMakeLists.txt 2014-04-20 23:44:21.000000000 +0200
+++ j4-dmenu-desktop-r2.11/CMakeLists.txt 2014-05-26 17:47:26.409342495 +0200
@@ -64,6 +64,8 @@
src/TestFileFinder.cc
src/TestFormatters.cc
)
+
+ add_dependencies(j4-dmenu-tests catch)
endif(NOT DEFINED NO_TESTS)
Upper or lower case should not matter.. I usually write lower case but the app names are upper case. I don't know if j4-dmenu support this as I couldn't find a manual file.
boinc-manager ships with a desktop file, which contains Path=/var/lib/boinc-client
, and will only work properly, when started from this directory.
To adhere to the desktop file standard, j4-demu-desktop should change to the specified directory before executing the program.
Hi,
I noticed for every application you click on, the console is being flooded with this information like below;
SearchPath: /home/foo/.local/share/applications/
LocaleSuffix: en
LocaleSuffix: en_US
Read 26 .desktop files, found 25 apps.
User input is: BleachBit
bleachbit
/bin/bash -i -c 'bleachbit'
info: starting BleachBit version 0.9.6
bash: no job control in this shell
Also I noticed at the bottom of every section it says this;
bash: no job control in this shell
Is this normal or something wrong?
I truly hope you will please fix this flooding to the console, I really need to use my console for various things. If it needs to log the output, then please have it logged to it's own file in the users $HOME as an example, and then it gets deleted at some point in time to keep the size down when it's filling up...
thanks
Hi,
An idea,
It is possible to use log option for get more recent/use program if the list if no typing, mixed with alphanum ordering?
Trying to build on a new Arch boxen. Get error: ‘function’ in namespace ‘std’ does not name a template type
even though clearly -std=c++11
is passed to compiler.
[100%] /usr/bin/cmake -E cmake_echo_color --switch= --green "Building CXX object CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o"
Building CXX object CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o
/usr/bin/c++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -std=c++11 -std=c++11 -Wall -pedantic -Wextra -O2 -o CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o -c /home/rbellamy/Development/packages/j4-dmenu-desktop-git/src/j4-dmenu-desktop/src/main.cc
In file included from /home/rbellamy/Development/packages/j4-dmenu-desktop-git/src/j4-dmenu-desktop/src/Main.hh:17:0,
from /home/rbellamy/Development/packages/j4-dmenu-desktop-git/src/j4-dmenu-desktop/src/main.cc:2:
/home/rbellamy/Development/packages/j4-dmenu-desktop-git/src/j4-dmenu-desktop/src/Formatters.hh:26:14: error: ‘function’ in namespace ‘std’ does not name a template type
typedef std::function<std::string(const Application &)> application_formatter;
On Ubuntu 14.04, with the latest git version of j4-dmenu-desktop, set up as bindsym $mod+Escape exec --no-startup-id j4-dmenu-desktop --dmenu="/usr/local/bin/dmenu -i -fn 'System San Francisco Display-12'"
, running under i3 version 4.13 (2016-11-08), whenever I try to use j4-dmenu-destop to launch unity-control-center (through /usr/share/applications/unity-control-center.desktop), unity control center launches with some icons missing:
If I use i3-dmenu-desktop, I get the full iconset
Hi,
First let me say thank you very much for j4-dmenu-desktop this is really nice.
I don't know if this option exists already, but in the SearchPath.hh I just changed it so it only uses .desktop I place in my $HOME;
xdg_data_dirs = "/.local/share/";
I personally don't want to load them from /usr/share/applications, to many there I really don't need.
Do you think on your next release you could create a comple flag to change this so the end-user could just pick their $HOME instead, like the below example at compile time;
-DCMAKE_SEARCH_PREFIX=/.local/share/
Thank you for your time and consideration on this.
Hi there :)
I was fallowing these steps
in order to install j4-dmenu-desktop on my system:
ubuntu server 12.04 LTS
gnome-classic
some user programs.
I just have installed cmake.
cmake passes but make didn't make it
An error appears:
[ 60%] Building CXX object CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o
cc1plus: error: unrecognized command line option ‘-std=c++11’
make[2]: *** [CMakeFiles/j4-dmenu-desktop.dir/src/main.cc.o] Error 1
make[1]: *** [CMakeFiles/j4-dmenu-desktop.dir/all] Error 2
make: *** [all] Error 2
Hi there,
Thanks a lot for j4-dmenu-desktop! Whilst having support for .desktop
files is great, not every single command is worth a desktop file. Thus it would be even better if custom user aliases, such as provided by a ~/.bash_aliases
or ~/.zsh_aliases
, could be supported alike.
What do you think?
Bests,
Robert
The Items printed from app
-object are not sorted. In my item-list these are the first two items:
CMake
CaesarIA
This not a big problem at the beginning. But after typing your keywords and dmenu gives the following suggestions:
Firefox Developer
Firefox Nightly - Safe Mode
Firefox Nightly
Firefox
So if I type in dmenu the word fire
and press Return, it will execute Firefox Developer
. This behavior is crappy. To execute the program, which my search-term matches best (Firefox
) is at the last position.
I propose to sort the App-list lexicographically.
Firefox
Firefox Developer
Firefox Nightly
Firefox Nightly - Safe Mode
Additionally, you can then use the tab-completion properly from the dmenu.
But anyway, your program is fucking fast. This bug is the only thing which hinders me to use it.
It doesn’t open the ones where the binary name is different from the .desktop name.
I guess you forgot to re-format the string that is returned by dmenu?
This would be a nice improvement if it would respect fonts.conf.
Is that possible for you?
Thanks
Maybe this could be used as a reference?
http://lists.suckless.org/dev/att-2320/dmenu-4.0-xft2.diff
I think it would be nice to have an option where only binaries with desktop files are shown (with the name of the binary only). Currently I only see a way to print the binary name in parentheses after the desktop file.
This would be useful to filter out all of the commandline-only programs that a user is unlikely to use dmenu to launch, while keeping the binary names.
So, I used script from readme, and when I run it from terminal everything is fine.
But, after adding a shortcut into xbindkey normal binaries are not executed. I tried to add "term" command but it does nothing.
Hi, I have this weird exception which occurs when string constructor is called with NULL
I call j4-dmenu-desktop like this
j4-dmenu-desktop --dmenu="dmenu -i -l 10 -sb black -sf red -nb black -nf darkgray -p Run: -fn '-*-terminus-*-*-*-*-14-*-*-*-*-*-*-*'"
the output when run is:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Aborted (core dumped)
To be more specific, could you please add the full license text to the repository?
Hello, I'm using j4-dmenu-desktop-git from the AUR in Openbox and I'm noticing that after I've been logged in for a few minutes, I can no longer open programs through dmenu (it works for a little bit before this starts happening), and when I try to, my CPU load shoots up to above 100% until I go and kill the process (it's either the 'j4-dmenu-desktop' command or the /bin/bash -i -c 'program name'
command that's showing high cpu).
This happens no matter what program I try to open, even on small programs like gnome-calculator. I can only replicate the issue when I use the openbox keybinding to use dmenu, when I run the command in the terminal the error doesn't show and programs start up fine.
The command I'm running is j4-dmenu-desktop --dmenu='dmenu -i -nb "#3D3D3D"' --term="gnome-terminal"
I can't get any output when I try to redirect stdout or stderr from the keybinding command, so I'm completely in the dark about why this would be happening. I'll try to update with more information when I find it, but any ideas would be a big help.
Hi!
Could you please sign your releases the way you did for 2.14?
Hello
I was using this app happily for a day or 2 until I switched from gdm to lightdm as a Display Manager and since than I can't run it through i3. But if I call it straight from a terminal it works without problems.
I have this in the i3 logs executing: j4-dmenu-desktop
while my configuration looks like this: bindsym $mod+d exec j4-dmenu-desktop
I tried with a full path to the binary to no avail.
This is a new problem -- I'm thinking it may have something to do with my OS (Arch) -- but today when I try to run:
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_S_construct null not valid
Any idea what's going on? Thanks!
The program should consider an app's description when doing the search. For example, I always search for "vector" instead of "Inkscape" because I (and I think most people as well) have poor memory and cannot remember an app's specific name but only what it does.
I'm wondering if there's anyway to change the colour of text, background and highlight. If not would it be possible to add that feature?
I get a segfault when running j4-dmenu-desktop
. I tried to debug and it seems to read in a large number of desktop files but then suddenly crashes. If I remove the desktop file on which it crashes, it just crashes on the next one. Is there some implicit limit on the number of files? Could it be a memory issue?
Here are the last few lines of strace ./j4-dmenu-desktop
:
read(8, "", 4096) = 0
close(8) = 0
munmap(0x7fc2b6e60000, 4096) = 0
stat("./app-install/desktop/stopwatch:stopwatch.desktop", {st_mode=S_IFREG|0644, st_size=348, ...}) = 0
open("./app-install/desktop/stopwatch:stopwatch.desktop", O_RDONLY) = 8
fstat(8, {st_mode=S_IFREG|0644, st_size=348, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fc2b6e60000
read(8, "[Desktop Entry]\nX-AppInstall-Pac"..., 4096) = 348
--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
+++ killed by SIGSEGV (core dumped) +++
It shouldn't crash - or at least provide a clear error message - if the locale settings are wrong/inconsistent/broken.
Would be great if one could do fuzzy search. Maybe you can detect and perform fuzzy search if fzf
is present in the system. The implementation should be as easy as adding two pipes, around fzf
.
Desktop files with 'Hidden=false' in them are not shown in the launch list.
See subject line. I'm using bash as my $SHELL, but I'm using fish for interactive shells. Thus, running "$SHELL -i -c <command>"
drops me into a fish shell without actually running the command.
When I drop the "-i" from the command invocation, things work fine. It also seems to me that this is actually the "proper" way to run a command, since the shell isn't supposed to be interactive.
This isn't meant to be inciteful or anything, I'm honestly just curious. If this is intended behavior, I'll see if I can work around it myself.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.