Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Notepad++ Can't Install Plugin #279

Open
archit9169 opened this issue Aug 14, 2020 · 4 comments
Open

Notepad++ Can't Install Plugin #279

archit9169 opened this issue Aug 14, 2020 · 4 comments
Labels
bug Something isn't working

Comments

@archit9169
Copy link

Okay, so turns out that we cannot modify the files inside the implementation dir at all. And some apps like notepad++ requires that to install plugins. Is it possible to allow junctions to be created to specific locations so that we can utilize plugins with harming the core functionality of implementations?

@bastianeicher
Copy link
Member

In the specific case of Notepad++ I've found a solution: 6c3fccd

Allowing junction links to be created inside implementation directories could be problematic when implementation caches are shared between users. One user's junction links wouldn't work for another.

@archit9169
Copy link
Author

archit9169 commented Aug 15, 2020

That's right i forgot about that. I have been so focused on local usages that i forgot about other users.
And will this solution works with other apps, if some apps requires installation of additional files in their root dir or something similar?

Edit: I just updated the app and tried installing plugins, however it showed the same error as before. Do i need to do something else? I have not yet tried importing plugins instead of installing them.

@bastianeicher
Copy link
Member

Sorry for the long delay.

Turns out I was too quick in my claim of a fix. Notepad++ has dropped support for allowAppDataPlugins.xml in recent versions.

Haven't found a nice solution for Notepad++ plugins with 0install yet.

@archit9169
Copy link
Author

The other package manager that i use (scoop) have implemented persistent directories. All the data that is created after installation like plugins in case of notepad++ are stored in another directory. After each update a junction is created to link persistent directory to the one present inside application. I think a similar concept can be applied here.

  1. Cache the implementation.
  2. Link the junction.
  3. Create manifest and/or xbit files? [Make exception for junction links]
  4. Close the directory from being edited?

Besides junction are more or less objects so i think it can be handled very easily. Or maybe use symbolic links? It might required some research before it can be implemented and will require additional fields in feed.xml file. But this is the most basic and generalized way this can be achieved. And it works for every application that requires this type of feature?

User Specific Apps:
implementation :- %appdata%/0install/implementation/
persistent data :- %appdata%/0install/persist-or-something-else/

User Shared Apps:
implementation :- C:/programdata/0install/implementation/
persistent data :- %appdata%/0install/persist-or-something-else/

User Shared Apps+Data:
implementation :- C:/programdata/0install/implementation/
persistent data :- C:/programdata/0install/persist-or-something-else/

Junctions can be relative too so i think if %userdata% is used then maybe it will work for different users? Like i said it might require some research but scoop is using similar concept too for global apps [apps that are shared b/w users]

@bastianeicher bastianeicher transferred this issue from 0install/0install-dotnet Nov 30, 2020
@bastianeicher bastianeicher added the bug Something isn't working label Aug 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants