rugk / unicodify

✍️ A browser add-on (Firefox, Chrome, Thunderbird) that allows you to autocorrect common text sequences and convert text characters to a look like a special font.
https://addons.mozilla.org/firefox/addon/unicodify-text-transformer/?utm_source=github.com&utm_medium=git&utm_content=repo-about-description&utm_campaign=github
Other
11 stars 2 forks source link

Making Toggle Case optionnal #88

Closed tDeContes closed 7 months ago

tDeContes commented 7 months ago

Background

I never use Toggle Case. (I've already disabled anything else I never use.)

Proposed solution

A checkbox to en/disable Toggle Case.

tdulcet commented 7 months ago

This is probably a duplicate of #30. Note that I just added support for a nested context menu in #84, which if enabled, reduces the number of top level menu items (including Toggle Case).

rugk commented 7 months ago

Hmm https://github.com/rugk/unicodify/issues/30 is about disabling autocorrections, not about the context menu options to disable. This here seems to be about the context menu.

tDeContes commented 7 months ago

Hmm #30 is about disabling autocorrections, not about the context menu options to disable. This here seems to be about the context menu.

But ... you speak about the context menu inside, aren't you ? That's not very clear because it's just after a line where is "For" alone. It seems to be a mistake.

This is probably a duplicate of #30.

Sorry I didn't see it before. It's a subset. But I need only Toggle Case, nothing else. (I use only Change casing, I've already disabled all concerning special characters.) So it's much less work.

Note that I just added support for a nested context menu in #84, which if enabled, reduces the number of top level menu items (including Toggle Case).

No, that's not a solution, because the other Change casing menu items are further too. (And I still have Toggle Case as a 4th choice that I never use.)

tdulcet commented 7 months ago

Hmm #30 is about disabling autocorrections, not about the context menu options to disable.

I believe this is part of the "font styles" described in that issue.

But I need only Toggle Case, nothing else.

I suspect we would make everything configurable in #30. Pull requests are welcome. You might be interested that I just added a bunch of coding cases in #85 and I am planning to add a new "Sentence case" option soon.

tDeContes commented 7 months ago

But I need only Toggle Case, nothing else.

I suspect we would make everything configurable in #30.

That's also what I've understood.

Pull requests are welcome.

I'm sorry, I don’t know write extensions, I’m an Ada dev.

You might be interested that I just added a bunch of coding cases in #85

Yes, nice :-)

But I understand that one checkbox will no longer be enough! :-D No matter, it's not high priority :-)

and I am planning to add a new "Sentence case" option soon.

I don't think I need that, but I forgot to tell I would like Pascal_Snake_Case.

tdulcet commented 7 months ago

But I understand that one checkbox will no longer be enough! :-D

The new coding cases have a separate checkbox on the options page.

I forgot to tell I would like Pascal_Snake_Case

It supports Pascal case (called upper camel case) and snake case, but not both at the same time. Feel free to open a separate issue if you want to request a new coding case.

tDeContes commented 7 months ago

I forgot to tell I would like Pascal_Snake_Case

It supports Pascal case (called upper camel case) and snake case, but not both at the same time. Feel free to open a separate issue if you want to request a new coding case.

OK :-) Maybe it's better to wait for code casing being available, then I can test it before requesting anything more. :-) (Unless it's not coming soon ?)

tdulcet commented 7 months ago

Maybe it's better to wait for code casing being available, then I can test it before requesting anything more. :-)

No need to wait, you could side load the extension and provide feedback on the new features before the next update. There are instructions here to download the development version of the extension from GitHub and then temporarily load it into Firefox (Thunderbird is similar).

tDeContes commented 7 months ago

There are instructions here to download the development version of the extension from GitHub and then temporarily load it into Firefox (Thunderbird is similar).

It's not very clear for me, considering I want only run the extension from sources but not develop it. No time to investigate it yet. (No matter, I'll wait. :-) )

If I want to investigate it later, is there a place to ask questions, or can I ask them here?

tdulcet commented 7 months ago

It's not very clear for me, considering I want only run the extension from sources but not develop it.

Just follow the steps in the "Cloning" section and then the first bullet of "Getting started". There are also more detailed instructions with screenshots here for installing in Firefox and in Thunderbird.

If I want to investigate it later, is there a place to ask questions, or can I ask them here?

Please feel free to ask them here or you could open a new discussion in the discussions section.

tDeContes commented 7 months ago

It's not very clear for me, considering I want only run the extension from sources but not develop it.

Just follow the steps in the "Cloning" section

and then the first bullet of "Getting started".

There's still missing a detail: git clone --recurse-submodules <project> What is <project>? It seems to be neither unicodify nor rugk/unicodify.

and then the first bullet of "Getting started". There are also more detailed instructions with screenshots here for installing in Firefox and in Thunderbird.

Thank you :-) They are both useful when one do it for the 1st time!

tdulcet commented 7 months ago

What is <project>? It seems to be neither unicodify nor rugk/unicodify.

You would need to use the full URL of the repository, so run:

git clone --recurse-submodules https://github.com/rugk/unicodify.git
tDeContes commented 7 months ago

you could open a new discussion in the discussions section.

I made #91, is it right ? :-) Not sure to have chosen the right category.

It does not work on Thunderbird, but I get a warning at the install time. How should I do? Should I create a new issue and paste the warning there?

tdulcet commented 7 months ago

I made #91, is it right ? :-)

Yes, that looks great! Thanks for writing that up, as I am sure it will be helpful to other users testing the add-on. @rugk should probably update their documentation as well.

Note that users would need to also run git pull to update the repository itself (separate from the submodules).

It does not work on Thunderbird, but I get a warning at the install time.

I should have mentioned before that each program needs a different manifest.json file, so when installing in Thunderbird you would also need to rename the src/manifest.json file to anything else (such as firefoxmanifest.json) and then copy the scripts/manifests/thunderbirdmanifest.json file to src/manifest.json.

tDeContes commented 6 months ago

I made #91, is it right ? :-)

Yes, that looks great! Thanks for writing that up, as I am sure it will be helpful to other users testing the add-on.

Thank you :-)

Note that users would need to also run git pull to update the repository itself (separate from the submodules).

Do you mean that instructions are incomplete, and to update sources I have to run: $ cd unicodify/ && git submodule update --init --recursive && git pull not only: $ cd unicodify/ && git submodule update --init --recursive ?

It does not work on Thunderbird, but I get a warning at the install time.

I should have mentioned before that each program needs a different manifest.json file,

The best would be Mozilla apps allow to make an unique manifest.json file for all, with parts specific to Firefox and parts specific to Thunderbird inside.

so when installing in Thunderbird you would also need to rename the src/manifest.json file to anything else (such as firefoxmanifest.json) and then copy the scripts/manifests/thunderbirdmanifest.json file to src/manifest.json.

Waiting for that, is it possible to make sth static? If the name manifest.json is unmovable, maybe is it possible to make it playing with paths? src/firefox/manifest.json / src/thunderbird/manifest.json?

If not, I would find a lot easier to have src/firefox/manifest.json and src/thunderbird/manifest.json, even if I can't use them directly, so it's easy to move them to their parent without renaming the files.

Waiting for sth to make it static, does that mean I can't test it for both Firefox and Thunderbird (at the same time) without having downloaded sources twice?

tdulcet commented 6 months ago

Do you mean that instructions are incomplete, and to update sources I have to run

The instructions are correct. It means if one runs the git clone command without the needed --recurse-submodules argument, they can then run that git submodule update command to download the submodules separately, which would also update them if they were already downloaded. Anyway, to update the repository itself you would need to run git pull, which would need to be done before updating the submodules. Here is the updated version of your one liner:

cd unicodify && git pull && git submodule update --init --recursive

The best would be Mozilla apps allow to make an unique manifest.json file for all, with parts specific to Firefox and parts specific to Thunderbird inside.

I believe that is the goal, but there are of course features only supported by Firefox or only by Thunderbird. In this case, the manifest.json files are nearly identical, except Thunderbird requires more find grained permissions.

Waiting for that, is it possible to make sth static?

You can copy the manifest.json files wherever is convenient for you, but when installing the add-on the one for the program you are using does need to be located in src/manifest.json. Personally, I copy all three (For Firefox, Thunderbird and Chrome) into the src directory and then rename them as needed. If you do not want to rename the files and you are on Linux or macOS, you could create a symbolic link instead (adjust the paths as necessary):

ln -s scripts/manifests/thunderbirdmanifest.json src/manifest.json

Waiting for sth to make it static, does that mean I can't test it for both Firefox and Thunderbird (at the same time) without having downloaded sources twice?

No, you should be able to test in both Firefox and Thunderbird at the same time, just do not click the "Reload" button after changing the manifest.json file. If you are not modifying the source code, that should not be an issue.

tDeContes commented 6 months ago

I made #91, is it right ? :-)

Updated. Hope this time it's right. :-)

Do you mean that instructions are incomplete, and to update sources I have to run

The instructions are correct. It means if one runs the git clone command without the needed --recurse-submodules argument, they can then run that git submodule update command to download the submodules separately, which would also update them if they were already downloaded. Anyway, to update the repository itself you would need to run git pull, which would need to be done before updating the submodules.

I don't understand everything. But no matter ...

Here is the updated version of your one liner:

cd unicodify && git pull && git submodule update --init --recursive

... I retain that. Thank you. :-)

The best would be Mozilla apps allow to make an unique manifest.json file for all, with parts specific to Firefox and parts specific to Thunderbird inside.

I believe that is the goal,

Do you mean it's planned? :-)

but there are of course features only supported by Firefox or only by Thunderbird.

Then, each app has to know how to recognize what's specific to an other app, to be able to ignore it.

Waiting for that, is it possible to make sth static?

You can copy the manifest.json files wherever is convenient for you,

you could create a symbolic link instead (adjust the paths as necessary):

Thank you for symbolic links, but it's not perfectly fine in the situation.

I understand that it's not possible to make sth static for the moment. I tried it, and it looks for _locales in the parent dir. it could be resolved making a setting to tell where to find _locales, or, if there are several dirs like that, what's the root dir (for ex .. or ../..).

Waiting for sth to make it static, does that mean I can't test it for both Firefox and Thunderbird (at the same time) without having downloaded sources twice?

No, you should be able to test in both Firefox and Thunderbird at the same time, just do not click the "Reload" button after changing the manifest.json file. If you are not modifying the source code, that should not be an issue.

Thank you. :-)

tdulcet commented 6 months ago

Updated. Hope this time it's right. :-)

Yes, that looks great! Thanks again for writing it up. You might want to consider creating an issue in https://github.com/TinyWebEx/common about updating the documentation.

I don't understand everything. But no matter ...

The submodules are libraries used by this add-on. Specifically, they are @rugk's TinyWebEx libraries.

Do you mean it's planned? :-)

I know they are working on removing differences between Firefox and Chrome, but I am not sure about Firefox and Thunderbird. It is more difficult in the latter case, as their are obviously major differences between a browser and a e-mail/calendaring/chat client. I was recently elected to the Thunderbird Council, so this is something I could advocate for.

I understand that it's not possible to make sth static for the moment.

If you really want to put the manifest files in src/firefox/manifest.json and src/thunderbird/manifest.json, I suppose you could create symbolic links to all of the other files/directories in src (Bash syntax):

cd unicodify/src
for dir in firefox thunderbird chrome; do
    mkdir "$dir"
    ln -s -- * "$dir"
done
ln -sf {../scripts/manifests/thunderbird,thunderbird/}manifest.json
ln -sf {../scripts/manifests/chrome,chrome/}manifest.json

This could be written as a long one liner if needed.

rugk commented 6 months ago

As for the installation/dev guides, feel free to create a PR on/for https://github.com/TinyWebEx/common/blob/master/CONTRIBUTING.md. It is also just a git repository you can contribute to.

I would keep it short as I expect some CLI knowledge and having the guides just as a starter, but yeah. Sure improvements may be made, especially yeah "project" as a term is confusing.