Inkscape.org
Beginners' Questions Inkscape Portable
  1. #1
    ultima_prime ultima_prime @ultima_prime

    Hi, is it possible to use Inkscape in the portable version?

    So that he would save ALL his settings in his own directory

    So instead of storing settings in:

    % userprofile% \ Application Data \ Inkscape \ preferences.xml

    He could read them, for example, from:

    Inkscape \ Config \ preferences.xml


    ?

    Alternatively, an appropriate directory or file must be created in the Inkscape directory that enables this functionality?


    Please don't write to me about the PortableApps.com version because I hate their versions.

    So to sum up:
    I am asking if the original Inkscape can save settings in its directory, so that I can transfer it between computers with all my settings saved?

  2. #2
    Freezr Freezr @freezr

    I think in the preference panel you can decide where storing your preference file. And you could be also creating a symbolic link if that should not work.

  3. #3
    ultima_prime ultima_prime @ultima_prime

    Many thanks Gnuserland for your answer.

    But unfortunately it doesn't work as you wrote.

    You mean this window:


    http://tcup.pl/download/inkscape_system.png


    But only paths are given there, you can't change their location.


    Even if it could be, there would be no solution.

    Because every time You change your computer, You would have to enter the settings and change the path.


    I add Inkscape to my Total Commander Ultima Prime project ( http://tcup.pl ) few years ago - but I have to use a version that is specially converted to portable (http://www.winpenpack.com/en/download.php?view.39)


    TC UP is a collection of programs that keep their settings in their directory - thanks to which I can do the initial configuration of the programs and do not have to rummage in the user's system.

    I would like TC UP to have the original Inkscape version, without any modifications.


    Could someone show me a place where I could suggest Inkscape Creator to add such functionality, if it does not really exist?


    As it is done, e.g. in SK1 - which stores its settings in its own directory.


    http://tcup.pl/download/sk1_portable.png


    Or, if the program finds a directory in its catalog, e.g. ".Config" by default reads the setting first from it instead of from

    AppData\Roaming\inkscape\

  4. #4
    Freezr Freezr @freezr

    You right you cannot change those directories, I mean you could if you compile the software by yourself.

    The way how that folders are handled is inherited from the Linux file system, but have you tried to use a linked file? 

  5. #5
    ultima_prime ultima_prime @ultima_prime

    "but have you tried to use a linked file?"

    Please explain what you mean?

     

  6. #6
    Patrick Storz Patrick Storz @Ede_123

    One does not have to recompile Inkscape to change the location of the profile directory. It can be changed at runtime by setting the environment variable INKSCAPE_PROFILE_DIR, see Wiki article.

    Inkscape is mostly portable on it's own, i.e. no installation is required (except for creating a program shortcut) and it won't modify the registry or similar.

    If you want these steps automated, there's also a semi-official portable version compiled by a third-party project ("portableapps").

  7. #7
    ultima_prime ultima_prime @ultima_prime

    Thank you Patrick for the answer


    It can be changed at runtime by setting the environment variable INKSCAPE_PROFILE_DIR, see Wiki article.

    I know about this variable and I was looking for information on how to use it, but nowhere did I find accurate information, except for a slight mention that such a variable exists.

    Maybe you can describe to me step by step how I can make Inkscape portable thanks to it?

     

    Inkscape is mostly portable on it's own, i.e. no installation is required (except for creating a program shortcut) and it won't modify the registry or similar.

    I will not agree with this statement, that you can download the packed version .7z and the program after running, does not make registry entries, does not mean that it is portable (if, for example, I would like to run, for example, 3 copies of Inkscape on the same computer with different settings - it can't be done, because they will all use the same configuration files (AppData\Roaming\inkscape\) and the program in the real portable version works independently of the others - it only reads its own configuration files from its own directory.

     

    That is why I am asking if it is possible to offer such functionality to the creators in some way, because it does not seem to me that adding such functionality requires a lot of work.

     

    If you want these steps automated, there's also a semi-official portable version compiled by a third-party project ("portableapps")

    as I wrote in the first post:

    "Please don't write to me about the PortableApps.com version because I hate their versions."

  8. #8
    Freezr Freezr @freezr

    @ultima_prime I meant this: https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/

  9. #9
    ultima_prime ultima_prime @ultima_prime

    @Gnuserland

    Again, thank you very much for your commitment, but unfortunately this way is not good for me.


    @Patrick Storz

    I already know what's going on with INKSCAPE_PROFILE_DIR

    This solution works, but unfortunately it is not good because I would have to bury the user on the system by installing TC UP (www.tcup.pl) containing Inkscape
    And the second thing is that if he would use Inkscape on a pendrive and transfer it to another computer - each time it would be necessary to add this environment variable on the computer to which the pendrive is connected.

    Patrick, You are an Inkscape developer, could You or someone on the team add an option in future versions that Inkscape will be really portable?

    This can be done in many simple ways.

    For example, by adding to the main directory a file called "Portable", which would change the default path to save configuration files


    from:

    c:\Users\...\AppData\Roaming\inkscape\preferences.xml


    to the path in the Inkscape directory


    e.g. on:

    Inkscape\config\inkscape\preferences.xml


    Or giving priority to places from which settings are to be read, and if, e.g. Inkscape would find at home directory (for example, the "Config" directory first reads the settings from it, and if it does not find such a directory, it reads them as it has been so far, i.e. from "AppData\Roaming\inkscape\preferences.xml")


    The form in which it works depends on You, but please add options so that without various weird combinations Inkscape can be portable in itself.

    Is it possible Patrick?

  10. #10
    Patrick Storz Patrick Storz @Ede_123
    *

    There are plenty of solutions, see for example https://stackoverflow.com/questions/3036325/can-i-set-an-environment-variable-for-an-application-using-a-shortcut-in-windows

    If you don't like any of those use Inkscape Portable from portable apps, compile Inkscape yourself, compile a wrapper for Inkscape, use a tool that can spawn another process with modified environment (I'm sure such a thing exists), ...

    I'm sure you'll be able to find a suitable solution that does not need any additional (and overly specific) functionality in Inkscape.

  11. #11
    ultima_prime ultima_prime @ultima_prime

    Gentlemen, thank you for all the advice, but all your suggestions are additional "combinations" and not a native solution.

    I like how the program works "as it should" originally.


    I did not think that the additional functionality in the form of adding a portable mode will be a "superfluous" functionality, but you are probably right Patrick - Artists creating projects in this wonderful program, not interested in where the settings are saved, They are interested in creating.

    To tell the truth, I'm probably the only person who asked about such functionality, because searching the forum did not find such a topic.


    I thought that if there is a Portable option in the similar "SK1" program - then adding it, for Inkscape Creators will be very simple - I was wrong.

    I will remain in the TC UP project (www.tcup.pl) with the older version, whose modification from www.winpenpack.com works as portable.

    VERY thank you for all your valuable advice and devoted to me.

    Best Regards
    Robert

  12. #12
    trueblue trueblue @trueblue

    FWIW, I would also like to see a native portable (self-contained) mode. I don't like the PortableApps versions for various reasons and I don't have the skills to compile a new Inkscape version.

     

    All the best!

  13. #13
    Paweł Paweł @PawelPepe
    **

    Hi,
    My name is Pawel. 
    I am author of Ultimate File Manager Project

    I wrote simple launcher that uses Inkscape Environment Variables described in this document: Environment_variables
    My Inkscape launcher allows You to run Inkscape application in FULLY PORTABLE mode.

    Launcher was written in Delphi. It was designed for @ultima_prime and his TC UP Project, but can be used by anyone!

    - How to use?
    Just copy Inkscape.exe and Inkscape.ini into main directory. 

    - What are this strange config options?
    Here is a short description of INI configuration file. You can use default settings.
    If you want, you can change launcher behavior by editing below entries.

    [LAUNCHER]
    AskForDirCreation=1  ; If config files directories are missing, Launcher will ask to create it (or will abort)
    ShowErrorMsg=1 ; If any error occur, launcher will display error message (or not)

    [APPLICATION]
    PATH=bin\inkscape.exe ; this option set relative path to Inkscape application executable

    [ENVIRONMENT]
    INKSCAPE_PROFILE_DIR=user\inkscape ; User Profile Dir Location
    INKSCAPE_DATADIR=share ; Inkscape Data Directory Location
    INKSCAPE_LOCALEDIR=share\locale ; Inkscape Translation Directory

    Here are detailed description of Inkscape Environments:

    INKSCAPE_PROFILE_DIR
    Specifies a different location for the user profile directory (i.e. the folder where preferences and user data are saved).
    By default this equals to something like ~/.config/inkscape (*nix) or %appdata%/inkscape (Windows)

    INKSCAPE_DATADIR
    Specifies a different location for the Inkscape data directory (i.e. the system folder where Inkscape looks for shared files).
    By default this equals to something like /usr/share/ (*nix) or %ProgramFiles%/Inkscape/share (Windows).
    Make sure there's a share/inkscape folder present in this location that contains system-wide Inkscape data like extensions, filters, gradients, icons, etc.

    INKSCAPE_LOCALEDIR
    Specifies a different location for the folder where Inkscape looks for the translation catalog (i.e. binary inkscape.mo files).
    By default this equals to something like /usr/share/locale (*nix) or %ProgramFiles%/Inkscape/share/locale (Windows).


    Inkscape Team - Thank you for great application!
    Best regards,
    Pawel
     

  14. #14
    Martin Owens Martin Owens @doctormo🌹🧀

    Hi Pawel, because of the risks of having unvetted installers, I've removed the attachment to your post. It's part of our moderation rules here.

    Your work seems very interesting and I think it would be great if you could come to chat.inkscape.org and present your work to the developer community, hopefully with the idea that if the windows developers see the same potential that I do, they will be able to work with you to incorporate it into a distribution of Inkscape.

     

  15. #15
    Paweł Paweł @PawelPepe

    @doctormo I made it public as I thought someone can be interested... I understand, that there are rules... however, now people can not use it as there is no link to app... If you want, show it to your friends. Everyone can use it via TC UP project.

    -Pawel

     

     

  16. #16
    Martin Owens Martin Owens @doctormo🌹🧀

    @PawelPepe Yes, sorry about that. Windows executables are really very risky. If it was python, I could at least vet it manually. (which I do for many extensions posted).