Code Monkey home page Code Monkey logo

j4-dmenu-desktop's People

Contributors

0mp avatar adrian17 avatar archshift avatar bill-kolokithas avatar cinemast avatar concatime avatar dav1dk avatar dgaw avatar diogocp avatar electrickite avatar enkore avatar hritik14 avatar ibotty avatar jazzpi avatar kevinoid avatar kishorkunal-raj avatar kittydoor avatar linkdd avatar matt-snider avatar meator avatar nabakolu avatar physkets avatar shkrt avatar thesamesam avatar vincentbernat avatar zopieux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

j4-dmenu-desktop's Issues

Console being flooded & no job contol?

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

Core dumping?

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!

fzf support?

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.

Native program names are not shown

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.

Application not showing up through i3

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.

Cannot install

Hi there :)
I was fallowing these steps

cmake .

make

make install

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

doesn't pass hex colors on to dmenu?

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

Print to standard output instead of passing to dmenu

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:

  1. uses temporary file
  2. loses relation between element name and .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?

Option to display binary name only

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.

Search by GenericName

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.

Cannot launch 'KDE systemsettings'

$ 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.

Sort entries by usage frequency

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.

Usage log cache arguments too

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

Respect/use "Path" from desktop 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.

Compile error on Arch x86_64

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;

Can't get normal binaries to work

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.

Items/Apps given to dmenu are not sorted

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.

Segfault on lines without '='

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. :)

broken command on archlinux

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

Unable to compile on Ubuntu 14.04 after pull request #55

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.

Issues launching ubuntu-control-center

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:

image

If I use i3-dmenu-desktop, I get the full iconset

image

Make locale code more solid

It shouldn't crash - or at least provide a clear error message - if the locale settings are wrong/inconsistent/broken.

display binary name break dmenu when launching from i3 key binding

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

Segfault after reading a (large?) number of files

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) +++

Debian packaging

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]

  • sign your releases using gpg (described here: LibVNC/libvncserver#65)
  • add a manpage (I can help you with that)

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 👍

basic_string::_M_construct null not valid

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)

Support case insensitive input.

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.

High CPU use / program doesn't open

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.

Is there a reason applications run with $SHELL -i?

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.

"Recent" / "Most use" feature

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?

Using zsh On Top Of Bash j4-dmenu-desktop not working

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 #################################################################

dependencies for multithreaded build

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)

Request: To Change 'SearchPath' Compile Flags

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.

Change colours of dmenu.

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?

Support for custom aliases

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

Xft support

Hi,

Does j4-dmenu-desktop support xft fonts? Would like to replace dmenu-xft in ArchBang with j4-dmenu-desktop.

MrG

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.