Port Requests


It works, fully works. Opens apps, auto completes. This is fantastic. I use it in /home/d0/dmenu, not media, just for clarity.

So, again, can I ask what the PATH string is doing in this situation, just for my own education? Will it need to be invoked everytime I use this executable? Will it factor into packaging this app into PND?


*edit:

I notice it doesn't seem to recognize any of the PNDs I have in my menu, I suppose since the PND system is different from the standard method of installing programs dmenu will have to be modified?
 
the PATH environnement variable list all the folders where program are looked for. So you need, in a way or in an other, to add the folder that have dmenu and all it's componant in it.

Using a command like
Code:
PATH=$(pwd):$PATH ./dmenu_path
means that:
1. Your are changing the PATH env. variable temporary, just for that command (here "./dmenu_path")
2. You are are adding the result of the program "pwd" (with $(ANYCOMMAND) ) to the current content of PATH (with $PATH), sepearte by ":"

Now, the program copy itself in a Cache somewhere, I haven't anaylised what it does in detail, but I understand that PATH command is not required?
 
@ptitSeb Okay thats a great primer, I'll do more research on my own. Thank you

@canseco Thank you for the link, I'll study that as well.

So I think I'm going to start over, just for my own practice. I'll clone it onto my SD card instead of NAND and do each step individually again.
 
I fixed the chmod commands in my above post. Would the following have correctly changed the group away from root?

Code:
sudo chown -R <insert your user name here>:<insert your group name here> .
 
I re-cloned on my SD card just to make sure I know what I'm doing. Compiles fine. I'm at the step where I change the ownership of all the files

Code:
Acanthus:/media/RUBICON/test/dmenu$ sudo chown -R d0 .

Password:

chown: changing ownership of `./.git/refs/heads/master': Operation not permitted

chown: changing ownership of `./.git/refs/heads': Operation not permitted

chown: changing ownership of `./.git/refs/tags': Operation not permitted

chown: changing ownership of `./.git/refs/remotes/origin/HEAD': Operation not permitted

chown: changing ownership of `./.git/refs/remotes/origin': Operation not permitted

chown: changing ownership of `./.git/refs/remotes': Operation not permitted

chown: changing ownership of `./.git/refs': Operation not permitted

chown: changing ownership of `./.git/info/exclude': Operation not permitted

chown: changing ownership of `./.git/info': Operation not permitted

chown: changing ownership of `./.git/hooks/commit-msg.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/pre-rebase.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/post-update.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/update.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/applypatch-msg.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/pre-commit.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/post-receive.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/pre-applypatch.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/prepare-commit-msg.sample': Operation not permitted

chown: changing ownership of `./.git/hooks/post-commit.sample': Operation not permitted

chown: changing ownership of `./.git/hooks': Operation not permitted

chown: changing ownership of `./.git/description': Operation not permitted

chown: changing ownership of `./.git/branches': Operation not permitted

chown: changing ownership of `./.git/objects/pack/pack-771489359f245e05e8c1dce68a57251f46f9d6ca.pack': Operation not permitted

chown: changing ownership of `./.git/objects/pack/pack-771489359f245e05e8c1dce68a57251f46f9d6ca.idx': Operation not permitted

chown: changing ownership of `./.git/objects/pack': Operation not permitted

chown: changing ownership of `./.git/objects/info': Operation not permitted

chown: changing ownership of `./.git/objects': Operation not permitted

chown: changing ownership of `./.git/HEAD': Operation not permitted

chown: changing ownership of `./.git/config': Operation not permitted

chown: changing ownership of `./.git/logs/refs/heads/master': Operation not permitted

chown: changing ownership of `./.git/logs/refs/heads': Operation not permitted

chown: changing ownership of `./.git/logs/refs': Operation not permitted

chown: changing ownership of `./.git/logs/HEAD': Operation not permitted

chown: changing ownership of `./.git/logs': Operation not permitted

chown: changing ownership of `./.git/packed-refs': Operation not permitted

chown: changing ownership of `./.git/index': Operation not permitted

chown: changing ownership of `./.git': Operation not permitted

chown: changing ownership of `./LICENSE': Operation not permitted

chown: changing ownership of `./Makefile': Operation not permitted

chown: changing ownership of `./README': Operation not permitted

chown: changing ownership of `./arg.h': Operation not permitted

chown: changing ownership of `./config.def.h': Operation not permitted

chown: changing ownership of `./config.mk': Operation not permitted

chown: changing ownership of `./dmenu.1': Operation not permitted

chown: changing ownership of `./dmenu.c': Operation not permitted

chown: changing ownership of `./dmenu_path': Operation not permitted

chown: changing ownership of `./dmenu_run': Operation not permitted

chown: changing ownership of `./drw.c': Operation not permitted

chown: changing ownership of `./drw.h': Operation not permitted

chown: changing ownership of `./stest.1': Operation not permitted

chown: changing ownership of `./stest.c': Operation not permitted

chown: changing ownership of `./util.c': Operation not permitted

chown: changing ownership of `./util.h': Operation not permitted

chown: changing ownership of `./config.h': Operation not permitted

chown: changing ownership of `./dmenu.o': Operation not permitted

chown: changing ownership of `./drw.o': Operation not permitted

chown: changing ownership of `./util.o': Operation not permitted

chown: changing ownership of `./dmenu': Operation not permitted

chown: changing ownership of `./stest.o': Operation not permitted

chown: changing ownership of `./stest': Operation not permitted

chown: changing ownership of `.': Operation not permitted

Why would it give me grief on my SD card?

Well regardless. It works and I can get it working. So what are the next steps? How can I go about getting dmenu to recognize PND apps? Should I begin assembling things necessary for the PND?
 
Last edited:
@directive0 : better to first create a folder, take ownership of that folder, then put all your sources there. So based of what I uderstand of your setup
Code:
cd /media/RUBICON/
mkdir sources
sudo chown d0:d0 sources
cd sources
git blablabla....
 
@ptitSeb

Okay, will try right now. Thank you.

edit: Ugh, it's giving me problems again.

Code:
Acanthus:/media/RUBICON$ sudo chown d0:d0 sources

Password: 

chown: changing ownership of `sources': Operation not permitted

I guess my card isn't properly set up with the right permissions/ownership.
 
Last edited:
Why would it give me grief on my SD card?
If you can't change file rights and ownership as root, it's either because they can't be changed (e.g. mounted read-only) or they don't even exist in the first place - FAT32 has no support for such attributes.
 
If you can't change file rights and ownership as root, it's either because they can't be changed (e.g. mounted read-only) or they don't even exist in the first place - FAT32 has no support for such attributes.

The card is definitely FAT32, should I make a new EXT* card for this purpose?
 
For developping, you should have an EXT partition yes. Yes can split your current card and make a small Ext2 partition if you want. Depending on what you expect to do, it doesn't have to be too big...
 
For PND detection, maybe looking at the search methods used by PND_utils would be helpful.

The cleanest option would probably be to expand dmenu's C code to detect and launch PND's.

A less clean, but perhaps easier option would be to have an optional "refresh" script in the dmenu PND that searches for PND files (using ideas from PND_utils) and creates launch scripts for them in dmenu's appdata /bin/ folder. Then dmenu should just detect them like it normally detects other programs as long as your PATH is set up correctly.

This would require no modification of dmenu's source, at least. It would probably be a pretty inefficient way to do it too.
 
Okay just wanted to report that I have the compiled dmenu on an ext4 card for the purpose of developing, everything looks good.

Code:
Acanthus:/media/workbench/sources/dmenu$ ls -l 
total 152
-rw-r--r-- 1 d0 d0  1442 Jul 28 11:48 LICENSE
-rw-r--r-- 1 d0 d0  2130 Jul 28 11:48 Makefile
-rw-r--r-- 1 d0 d0   475 Jul 28 11:48 README
-rw-r--r-- 1 d0 d0  1011 Jul 28 11:48 arg.h
-rw-r--r-- 1 d0 d0   892 Jul 28 11:48 config.def.h
-rw-r--r-- 1 d0 d0   892 Jul 28 11:52 config.h
-rw-r--r-- 1 d0 d0   846 Jul 28 11:52 config.mk
-rwxr-xr-x 1 d0 d0 19504 Jul 28 11:52 dmenu
-rw-r--r-- 1 d0 d0  2765 Jul 28 11:48 dmenu.1
-rw-r--r-- 1 d0 d0 16724 Jul 28 11:48 dmenu.c
-rw-r--r-- 1 d0 d0 13404 Jul 28 11:52 dmenu.o
-rwxr-xr-x 1 d0 d0   294 Jul 28 11:48 dmenu_path
-rwxr-xr-x 1 d0 d0    58 Jul 28 11:48 dmenu_run
-rw-r--r-- 1 d0 d0  9902 Jul 28 11:48 drw.c
-rw-r--r-- 1 d0 d0  1659 Jul 28 11:48 drw.h
-rw-r--r-- 1 d0 d0  6632 Jul 28 11:52 drw.o
-rwxr-xr-x 1 d0 d0  5960 Jul 28 11:52 stest
-rw-r--r-- 1 d0 d0  1530 Jul 28 11:48 stest.1
-rw-r--r-- 1 d0 d0  3229 Jul 28 11:48 stest.c
-rw-r--r-- 1 d0 d0  3304 Jul 28 11:52 stest.o
-rw-r--r-- 1 d0 d0   482 Jul 28 11:48 util.c
-rw-r--r-- 1 d0 d0   305 Jul 28 11:48 util.h
-rw-r--r-- 1 d0 d0  1236 Jul 28 11:52 util.o


I will look into those methods you mentioned @edgex004
 
Last edited:
@Magic Sam
Maybe XMBC/KODI is anything for you?

I tried to port a newer mplayer/smplayer but had too many scaling Problems and Videooutput like omapfb did not work good.
Thats because i disabled the smplayer2016 PND @ the Repo :(

Edit:
have you tried the Panplayer2 from the Repo?
It work fine with nearly all Videos.
Maybe i can put the newer mplayer into that after recompiling with the newer Codeblocks :)
 
@directive0

As you are working on dmenu, have a look here.

PND files generate .desktop files on the Pandora and this is how XFCE or openbox recognizes and launches them. So perhaps the best way to make PND files launch from dmenu is to extend dmenu support to .desktop files using i3-dmenu-desktop script or some similar method.

EDIT: Actually, it looks like j4-dmenu-desktop would be better: here. It is based on i3-dmenu-desktop, but does not depend on using i3wm as your window manager.
 
Last edited:
@edgex004

Okay, reading up on i3-dmenu-desktop and j4-dmen-desktop is a little confusing for such a noob as I, but I will soldier on with your wonderful help.

I read the links and have begun to assemble a plan of action. From what I understand these are scripts that add functionality to dmenu. So I clone them, compile them and somehow integrate them with my existing compile of dmenu? OR do I compile and use stand alone? From what you've provided I think j4-dmenu-desktop is the better way to go.

I will attempt to compile it, but this source seems different. There is no config.mk to alter to select specific CPU and architecture. I will also assume that cmake is part of codeblocks, but I'm unsure.

Will try and report back. Thanks again!
 
Back
Top