SavingGoogleCode / tint2

tint2 is a lightweight panel/taskbar.
GNU General Public License v2.0
0 stars 0 forks source link

launcher_apps_dir needs to adhere to $Home variable #474

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?

When using launcher_apps_dir as a variable, an absolute path must be used or 
the fucntion does not work

What is the expected output? What do you see instead?

If you use 

launcher_apps_dir = $Home/.config/tint2/launchers (example) it does not work. 

If you use 

launcher_apps_dir = /home/username/.config/tint2/launchers it does work

What version of the product are you using? On what operating system?

0.11 VSIDO OS (Debian)

Which window manager (e.g. openbox, xfwm, metacity, mutter, kwin) or
which desktop environment (e.g. Gnome 2, Gnome 3, LXDE, XFCE, KDE)
are you using?

FluxBox

Please provide any additional information below. It might be helpful
to attach your tint2rc file (usually located at ~/.config/tint2/tint2rc).

launcher_apps_dir = /usr/local/bin/tint2launchers/ 

is the only line that matters

What I want to be able to do is have it as 

launcher_apps_dir = ~/.config/tint2lanuchers

or 

launcher_apps_dir = $HOME/.config/tint2lanuchers

Original issue reported on code.google.com by vast...@gmail.com on 25 Feb 2015 at 7:15

GoogleCodeExporter commented 9 years ago
Although I do remember a discussion about launcher_item_app, as far as I can 
see currently tint2 does not have such an option at all.

The only supported way to add launchers is to use the launcher_item_app option.

The reasons are the following:
* launcher_apps_dir cannot specify an order for the icons; naming the files as 
001-blah.desktop etc. and sorting by name is a solution but in the end it 
requires more work and is less elegant than just supplying a list of 
launcher_item_app;
* It is not clear what to do if there are subdirectories in that directory; 
should we explore recursively? Should we follow links?

If you need to add/remove launchers programatically, I suggest using a base 
tint2rc file written by hand, a suffix tint2rc file written automatically by a 
program containing the launcher_item_app lines and you can generate the final 
tint2rc by concatenating the two. If you use a shell script to do this, there 
is no need to expand $HOME in tint2, as you can do it in the script.

What do you think?

Original comment by mrovi9...@gmail.com on 26 Feb 2015 at 6:51

GoogleCodeExporter commented 9 years ago
I think that the addition of launcher_apps_dir was one of the best code 
additions provided for tint2 and simplified how to add and sort the launchers.  
Using naming conventions based on how you want it sorted, 001-blah.desktop, is 
a one time setup and done

I am not sure what the issue is adhering to standards.  I have no desire to 
write or concatenate scripts when it can be done from a non standard location.  
I will move all tint2 files to the users home directories and only keep the 
launchers in the specific location.

Thanks

Original comment by vast...@gmail.com on 26 Feb 2015 at 10:11

GoogleCodeExporter commented 9 years ago
I am guessing (without testing) that launcher_item_app does not adhere to $HOME 
as well so that makes it the same issue

Original comment by vast...@gmail.com on 26 Feb 2015 at 10:16

GoogleCodeExporter commented 9 years ago
They seem equivalent to me -- isn't editing the tint2rc file a one time thing 
too? Here is a one-liner that can generate the config for you from your 
directory:

for f in /usr/share/applications/* ; do echo "launcher_item_app = $f" ; done

Having a list of shortcuts is the simplest possible thing to do while also 
being more flexible than the directory option, that is why I prefer it. Also, 
tint2 has well over 100 options at the moment, and every new option adds more 
code that needs support and more bugs that appear. Adding redundant 
functionality is simply not smart from an engineering point of view, because on 
long term it will do more harm than good.

Original comment by mrovi9...@gmail.com on 26 Feb 2015 at 10:42

GoogleCodeExporter commented 9 years ago
Regarding arbitrary environment variable expansion, it is too complicated. 
However we could probably expand only "~" without hitting many problems. I 
think "~" can actually used in file names but it is unlikely that people would 
add such strangely named files to tint2rc. I need to think about this before 
making a decision.

To understand better why you need this: you have multiple computers with 
different user names and custom .desktop files somewhere in your home directory 
and you want to keep the tint2rc files in sync over all these computers?

Original comment by mrovi9...@gmail.com on 26 Feb 2015 at 10:54

GoogleCodeExporter commented 9 years ago
I am the DEV of VSIDO and tint2 is a standard on every users installation 

vsido.org

I want to simply be able to control the environment... There is no way I can 
know every users home directory name, so a variable of ~ or $HOME is paramount 
in standard first time install (etc/skel) setups and that way I would not have 
to use a root setting of /usr/local/bin ... We have been doing it this way for 
several years so it is no real BIG deal, but would be nice to have

I have since changed the default to the users home directory and only have the 
launchers in /usr/local/bin  ... It is only the variables of launcher_apps_dir 
and launcher_item_app that do not understand ~ or $HOME

I do appreciate your looking into this, and we value the hell out of tint2. I 
am also not trying to be an arse about it.. :D If it is to much to drop in, 
then it is what it is... We have work arounds and solutions.. :)

Original comment by vast...@gmail.com on 27 Feb 2015 at 1:26

GoogleCodeExporter commented 9 years ago
Thanks for the explanation, now I understand what you mean.

I will definitely do the "~" expansion in launcher_item_app. "~" will be 
expanded only if it occurs at the beginning of the string and is either alone 
or followed by "/" (i.e. the first two cases in 
https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html ) 

If you already have a user base that has config files using launcher_apps_dir, 
maybe it would make sense to merge the patch from issue 381. I will take a look 
and see how I can integrate it with tint2conf, because for the next release we 
would like to provide a complete configuration GUI.

Original comment by mrovi9...@gmail.com on 27 Feb 2015 at 8:34

GoogleCodeExporter commented 9 years ago
Issue 381 has been merged into this issue.

Original comment by mrovi9...@gmail.com on 27 Feb 2015 at 8:35

GoogleCodeExporter commented 9 years ago
vastone, do you use as 001-blah.desktop links or regular files? If they are 
links, where are the .desktop files stored, in /usr/share/applications ?

Original comment by mrovi9...@gmail.com on 1 Mar 2015 at 10:25

GoogleCodeExporter commented 9 years ago
Adding support for launcher_apps_dir in r727. The code does also "~" expansion.

Let me rephrase the question in #9:

1. I would like to know where you store the 001-*.desktop files, i.e. what is 
the value of launcher_apps_dir in your config files?
2. Are you storing .desktop files in any location other than 
/usr/share/applications and ~/.local/share/applications ?

Original comment by mrovi9...@gmail.com on 1 Mar 2015 at 11:13

GoogleCodeExporter commented 9 years ago

Original comment by mrovi9...@gmail.com on 20 Mar 2015 at 8:42