themix-project / themix-gui

Graphical application for generating different color variations of Oomox (Numix-based) and Materia (ex-Flat-Plat) themes (GTK2, GTK3, Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus and Suru++ icon themes. Have a hack for HiDPI in gtk2. Its Base16 plugin also allowing a lot of app themes support like Alacritty, Emacs, GTK4, KDE, VIM and many more.
GNU General Public License v3.0
2.09k stars 67 forks source link

Writing Custom Plugin - Hurdles #147

Closed ohnonot closed 6 years ago

ohnonot commented 6 years ago

two things.

1

I have started making my own templates.
To use them, I need to copy an existing plugin to ~/.config/oomox/plugins and edit change_colors.sh to include my new templates.
I also need to make some changes to oomox_plugin.py so that the modified plugin actually shows up in the gui and becomes usable:

So far so good (not ideal, but good enough).

But, if I change name from oomox to, say, oomox-mine, certain options do not show up anymore!
So far this seems only to affect the "Text input caret" option.
If i don't change name, I cannot use the plugin because the gui sees it as identical to the oomox-gtk-theme plugin (i think i see what causes this, but I haven't found what then causes the Text Input Caret options to disappear).

2

It would be nice if change_colors.sh would not destroy the complete theme folder before recreating it, but only the files and folders that the plugin actually creates.
That way plugins could complement each others with the same theme name; this could improve alround desktop integration (a theme change changes not only gtk, but also other apps like tint2, i3, dmenu, dunst etc.).

actionless commented 6 years ago

1) regarding caret and other theme-specific options, see how it's implemented using the filter: https://github.com/themix-project/oomox/blob/master/oomox_gui/theme_model.py#L471-L473

but the example above is actually a legacy (and should be fixed), but for most of the other theme values filters are specified right in the theme plugin by enabling those theme values: https://github.com/themix-project/oomox/blob/master/plugins/theme_oomox/oomox_plugin.py#L73-L96

you could also introduce new options right inside your theme plugin: https://github.com/themix-project/oomox/blob/master/plugins/theme_oomox/oomox_plugin.py#L98-L137

2) that's the reason why i did recommended you improving one of the existing (oomox, materia) theme plugins

actionless commented 6 years ago

i think to workaroud pt.2 you could just change here https://github.com/themix-project/oomox/blob/master/plugins/theme_oomox/oomox_plugin.py#L26 self.theme_name to smth like self.theme_name + '-<YOUR_PLUGIN_NAME>'

ohnonot commented 6 years ago

but the example above is actually a legacy (and should be fixed)

fixed in oomox code itself, not the plugin, yes?
i think i prefer to wait for that.

the other things i am already implementing (and i will publish that plugin soon); but i needed to understand why the caret option is disappearing.

that's the reason why i did recommended you improving one of the existing (oomox, materia) theme plugins

if you mean, copying it completely, then making additions, that means dragging unchanged code around, which also won't receive updates from the git repo anymore. not so good imo.
or, editing the repo itself, i would destroy it, no? and would need to re-patch it with every release or update. at least i don't know of any other way, version control is not my strength...

i think to workaroud pt.2 you could just change here https://github.com/themix-project/oomox/blob/master/plugins/theme_oomox/oomox_plugin.py#L26 self.theme_name to smth like self.theme_name + '-'

have to wrap my head around this one; thanks for the suggestion.

btw, not sure i said it already, i think this is a great project! i hope it will remain the best maintained "unified desktop styling" tool for linux!
i hope you don't mind me raising all these issues; i would have at least one more which is an actual bug, i think...

actionless commented 6 years ago

fixed in oomox code itself, not the plugin, yes?

yup, i'll try to address that before the weekend

or, editing the repo itself, i would destroy it, no? and would need to re-patch it with every release or update. at least i don't know of any other way,

i meant to make a PR with missing theme (let's say for i3) to the existing theme plugin

btw, not sure i said it already, i think this is a great project! i hope it will remain the best maintained "unified desktop styling" tool for linux! i hope you don't mind me raising all these issues; i would have at least one more which is an actual bug, i think...

thanks! nope, i am interested in more plugins being developed for oomox and since plugin API is not documented yet (going to happen for version 2.0) raising tickets is actually the only way to get there

actionless commented 6 years ago

@ohnonot i fixed the thing with caret

actionless commented 6 years ago

have you got something nice to show? :-)