[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde
Subject:    Re: start menu icon
From:       Eike Hein <hein () kde ! org>
Date:       2017-08-30 12:59:50
Message-ID: 782252FD-26E1-4C30-887B-9257AED5F2C9 () kde ! org
[Download RAW message or body]

On August 30, 2017 6:59:30 PM GMT+09:00, Franklin Weng <franklin@goodhorse.idv.tw> \
wrote:
> Hi,
> 
> Thanks for René and Duncan's reply.
> 
> Honestly it's not because *I change the menu so frequently*.  It's
> something what I've presented in the Akademy 2017 about Plasma 5
> customization, without changing any existing file.  We used our own
> start menu icon and I set it in the desktop scripts which uses kicker
> launcher.  But when I change the launcher the settings was gone (and
> back to the KDE default).
> 
> I know that kicker, kickoff and kickerdash are different plasmoids and
> the icons are set in their .desktop files.  I ask here to see if
> there's
> any other way to achieve the goal so that I can study how to customize
> it in our system.  Anyway, IMHO saving plasmoids (not only launchers)
> settings in a separate file as an override to default setting values
> should make sense, just like look-n-feel packages.
> 
> Thanks for the developers for your work, and I wish it can be
> considered
> to implement.
> 
> 
> Franklin
> 
> 
> René J.V. Bertin 於 2017年08月30日 16:18 寫道:
> > On Wednesday August 30 2017 05:20:53 Duncan wrote:
> > 
> > 
> > Echoing this to the plasma-devel list so that at least they're aware
> of the use-case (with apologies for top-replying to those who take
> offense).
> > 
> > If indeed each launcher is a separate plasmoid and each plasmoid has
> its own settings one could expect those to be saved in an application
> (pardon, plasmoid) specific rc file. If that is not the case that
> probably means that plasmoids don't run as individual processes but as
> are instead run (as scripts) by a host application (the plasma shell),
> and settings are stored in that host application's settings file.
> > 
> > I don't think it'd be very difficult to store individual plasmoid
> settings in such a way that they don't overwrite each other, given how
> the config file APIs are designed. In this particular case though it
> may well be that the launcher/kicker settings are stored for/under the
> plasmoid category instead of name so that you can change launchers and
> find most of your settings in the new one.
> > 
> > Even so that would evidently also apply to the icon setting, so my
> guess is that this is not being stored as a plasmoid property, but as a
> setting for how (where, etc) individual plasmoids are displayed. That
> still doesn't mean that the icon *has* to be reset (the other
> properties like launcher location don't, right?) but it seems a bit
> less surprising that it would be the case.
> > 
> > In short, I don't think it'd be a huge change to implement a sticky
> custom icon feature, but do think like Duncan that it will probably not
> be considered worth the effort (besides, do as the VDG tells you and
> use Breeze already ;) )
> > 
> > Duncan proposed the approach I also thought of, but that may not be
> feasible because of how settings files are used (typically rewritten as
> soon as you change something, and rarely if ever monitored for external
> changes). Apparently you (Franklin) change your launcher often enough
> for the icon issue to become one, so maybe there's yet another
> workaround. Myself I use Lancelot on my Plasma4 desktop, but sometimes
> need the standard kicker to save an updated session configuration. If
> that happens I just add the standard kicker to my secondary panel, and
> do what I want to do. If I needed this frequently I'd leave the kicker
> there.
> > You could try the same thing: add 1 or 2 additional launchers and set
> them to kickoff and/or kickerdash. With luck the plasma shell will
> remember all settings you configure for each of those launchers - if it
> doesn't you could probably report that as a bug that ought to be
> considered more seriously than your original issue.
> > 
> > R.
> > 
> > 
> > > Franklin Weng posted on Tue, 29 Aug 2017 20:26:39 +0800 as
> excerpted:
> > > 
> > > > In Plasma 5 we can right-click on the start menu and set our own
> icon.
> > > > However when I switch my menu from kicker to kickoff or kickerdash,
> the
> > > > menu icon changed to the default one and when I switch back to the
> > > > kicker, my own icon was gone and the default one is used.  Would
> anyone
> > > > please tell me how to keep my own icon in the kicker mode, or even
> when
> > > > switching to different menu mode?
> > > Good question.
> > > 
> > > Unfortunately, as implemented it's not possible (except for source 
> > > patching[1]), and I'm not sure the plasma devs would consider it
> worth 
> > > the very likely rather large effort to make it possible.
> > > 
> > > The problem is that each of the different types of "application
> launcher" 
> > > is its own separate "plasmoid", that is, component-widget, complete
> with 
> > > its own settings.
> > > 
> > > For most plasmoids, switching from one to another is a process of 
> > > deleting the one, selecting add widget, and in the resulting
> plasmoid/
> > > widget-explorer dialog, dragging the one you want to replace the one
> you 
> > > just deleted to the appropriate location.  Then, depending on the 
> > > plasmoid, you may have to configure the new one to do what you want.
> > > 
> > > Now it so happens that with the "launcher" plasmoids, they've
> created a 
> > > shortcut to all that, that lets you replace the one launcher with
> another 
> > > one without going thru the whole delete/add process manually.  But
> the 
> > > different types of launcher are still entirely different plasmoids,
> each 
> > > with their own settings and defaults, and replacing one with another
> 
> > > deletes the configuration for the replaced one and sets the
> configuration 
> > > of the new one to all defaults.
> > > 
> > > So as I said, you can patch the sources to change those defaults and
> then 
> > > you'll get your patch-altered defaults every time you switch, but
> other 
> > > than that, there's no real way to do it.
> > > 
> > > Wait... I actually just thought of another way, that I use sometimes
> 
> > > myself.
> > > 
> > > You can backup the config file before you make your change.  Then
> make 
> > > your change, configure the new one as you like, and do a second
> backup, 
> > > keeping copies of both.  Then when you need to switch, you can
> simply 
> > > kill plasmashell so it doesn't overwrite your changes, restore the 
> > > appropriate backup with your desired settings, and restart
> plasmashell so 
> > > it sees the altered component, along with the settings you had
> previously 
> > > configured for it.
> > > 
> > > The file with all the activity/desktop, panel, and plasmoid
> settings, is
> > > 
> > > $XDG_CONFIG_HOME/plasma-org.kde.plasma.desktop-appletsrc [2]
> > > 
> > > This file, like most kde/plasma config files, is organized much like
> the 
> > > standard INI file from the MS-Windows-3 era.  Unfortunately, while 
> > > there's a section hierarchy, the sections are numbered rather than
> named, 
> > > so you have to read the settings and deduce what container or
> plasmoid 
> > > each number represents, making hand editing possible but rather more
> 
> > > difficult than it might be.
> > > 
> > > Which is why I suggested using the plasma GUI to configure things
> and 
> > > simply backing up the file when it has a set of settings you want to
> 
> > > save, so you can switch between multiple configurations by simply
> killing 
> > > plasmashell, switching the config file, and restarting it.
> > > 
> > > ---
> > > [1] Not possible except for source patching:  It's always possible
> to 
> > > modify the sources to set your own default.  Plasma is of course 
> > > freedomware with the sources available in ordered to /encourage/ 
> > > patching, and while I don't claim to be a dev, I do run gentoo so
> already 
> > > build from sources, and if I'm motivated enough I sometimes surprise
> 
> > > myself at what sort of patches I can hack up!  Were I motivated
> enough, 
> > > I'm sure this one would not be an issue, since at least in theory
> it's 
> > > simply replacing one image with another, so the biggest issue would
> be 
> > > actually looking at the code long enough to find the image to
> replace, 
> > > and that shouldn't be difficult at all, only requiring time, which
> is why 
> > > I have to be motivated enough to prioritize finding the location
> /to/ 
> > > patch and creating and testing the patch above whatever else I'd 
> > > otherwise be doing with that time.
> > > 
> > > [2] $XDG_CONFIG_HOME:  If this variable isn't set, the default is 
> > > ~/.config, ~ of course being your user's home dir.  So the complete 
> > > default path would be:
> ~/.config/plasma-org.kde.plasma.desktop-appletsrc
> > > 
> > > 

This is already implemented and the correct way is to ship an applet config \
initialization script in your look and feel package. The config will then be \
initialized with your values every time the applet is created. Various distros use \
them for e.g. the launcher default icon. Netunner is an example.

Marco, we have docs for this somewhere right? :)

Cheers,
Eike
-- 
Plasma, apps developer
KDE e.V. vice president, treasurer
Seoul, South Korea


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic