CINXE.COM
[Feature request] Set custom app files (plugins) folder - Paint.NET Discussion and Questions - Paint.NET Forum
<!DOCTYPE html> <html lang="en-US" dir="ltr"> <head> <meta charset="utf-8"> <title>[Feature request] Set custom app files (plugins) folder - Paint.NET Discussion and Questions - Paint.NET Forum</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="twitter:card" content="summary_large_image" /> <meta property="og:title" content="[Feature request] Set custom app files (plugins) folder"> <meta property="og:type" content="website"> <meta property="og:url" content="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/"> <meta name="description" content="I use Paint.NET on multiple machines where I put app files (plugins) in my personal OneDrive, so I don't have to maintain this manually on all the devices. For machines without Known Folder Move (KFM) with OneDrive for Business, it has worked fine to create a directory symbolic link from "%USERPR..."> <meta property="og:description" content="I use Paint.NET on multiple machines where I put app files (plugins) in my personal OneDrive, so I don't have to maintain this manually on all the devices. For machines without Known Folder Move (KFM) with OneDrive for Business, it has worked fine to create a directory symbolic link from "%USERPR..."> <meta property="og:updated_time" content="2021-09-23T19:46:29Z"> <meta property="og:image" content="https://media.invisioncic.com/r125076/monthly_2021_09/Capture.PNG.1894a0763e3ba7fb0d3bcf31bd8ed37e.PNG"> <meta property="og:site_name" content="Paint.NET Forum"> <meta property="og:locale" content="en_US"> <link rel="canonical" href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" /> <link as="style" rel="preload" href="https://forums.getpaint.net/applications/core/interface/ckeditor/ckeditor/skins/ips/editor.css?t=OAEF" /> <link rel="manifest" href="https://forums.getpaint.net/manifest.webmanifest/"> <meta name="msapplication-config" content="https://forums.getpaint.net/browserconfig.xml/"> <meta name="msapplication-starturl" content="/"> <meta name="application-name" content="paint.net Forum"> <meta name="apple-mobile-web-app-title" content="paint.net Forum"> <meta name="theme-color" content="#000000"> <meta name="msapplication-TileColor" content="#000000"> <link rel="icon" sizes="36x36" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-36x36.png?v=1710272723"> <link rel="icon" sizes="48x48" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-48x48.png?v=1710272723"> <link rel="icon" sizes="72x72" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-72x72.png?v=1710272723"> <link rel="icon" sizes="96x96" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-96x96.png?v=1710272723"> <link rel="icon" sizes="144x144" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-144x144.png?v=1710272723"> <link rel="icon" sizes="192x192" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-192x192.png?v=1710272723"> <link rel="icon" sizes="256x256" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-256x256.png?v=1710272723"> <link rel="icon" sizes="384x384" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-384x384.png?v=1710272723"> <link rel="icon" sizes="512x512" href="//media.invisioncic.com/r125076/monthly_2021_06/android-chrome-512x512.png?v=1710272723"> <meta name="msapplication-square70x70logo" content="//media.invisioncic.com/r125076/monthly_2021_06/msapplication-square70x70logo.png?v=1710272723"/> <meta name="msapplication-TileImage" content="//media.invisioncic.com/r125076/monthly_2021_06/msapplication-TileImage.png?v=1710272723"/> <meta name="msapplication-square150x150logo" content="//media.invisioncic.com/r125076/monthly_2021_06/msapplication-square150x150logo.png?v=1710272723"/> <meta name="msapplication-wide310x150logo" content="//media.invisioncic.com/r125076/monthly_2021_06/msapplication-wide310x150logo.png?v=1710272723"/> <meta name="msapplication-square310x310logo" content="//media.invisioncic.com/r125076/monthly_2021_06/msapplication-square310x310logo.png?v=1710272723"/> <link rel="apple-touch-icon" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-57x57.png?v=1710272723"> <link rel="apple-touch-icon" sizes="60x60" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-60x60.png?v=1710272723"> <link rel="apple-touch-icon" sizes="72x72" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-72x72.png?v=1710272723"> <link rel="apple-touch-icon" sizes="76x76" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-76x76.png?v=1710272723"> <link rel="apple-touch-icon" sizes="114x114" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-114x114.png?v=1710272723"> <link rel="apple-touch-icon" sizes="120x120" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-120x120.png?v=1710272723"> <link rel="apple-touch-icon" sizes="144x144" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-144x144.png?v=1710272723"> <link rel="apple-touch-icon" sizes="152x152" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-152x152.png?v=1710272723"> <link rel="apple-touch-icon" sizes="180x180" href="//media.invisioncic.com/r125076/monthly_2021_06/apple-touch-icon-180x180.png?v=1710272723"> <link rel="preload" href="//forums.getpaint.net/applications/core/interface/font/fontawesome-webfont.woff2?v=4.7.0" as="font" crossorigin="anonymous"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet"> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/341e4a57816af3ba440d891ca87450ff_framework.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/05e81b71abe4f22d6eb8d1a929494829_responsive.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/90eb5adf50a8c640f633d47fd7eb1778_core.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/5a0da001ccc2200dc5625c3f3934497d_core_responsive.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/62e269ced0fdab7e30e026f1d30ae516_forums.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/76e62c573090645fb99a15a363d8620e_forums_responsive.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/ebdea0c6a7dab6d37900b9190d3ac77b_topics.css?v=d815db93211733131667' media='all'> <link rel='stylesheet' href='//media.invisioncic.com/r125076/css_built_1/258adbb6e4f3e83cd3b355f84e3fa002_custom.css?v=d815db93211733131667' media='all'> <link rel='shortcut icon' href='//media.invisioncic.com/r125076/monthly_2019_02/PaintDotNet.ico.f2fde4a27ade8f2cd6229dd66e318036.ico' type="image/x-icon"> </head> <body class='ipsApp ipsApp_front ipsJS_none ipsClearfix' data-controller='core.front.core.app,cloud.front.realtime.viewingService' data-message="" data-pageApp='forums' data-pageLocation='front' data-pageModule='forums' data-pageController='topic' data-pageID='118583' > <a href='#ipsLayout_mainArea' class='ipsHide' title='Go to main content on this page' accesskey='m'>Jump to content</a> <div id='ipsLayout_header' class='ipsClearfix'> <header> <div class='ipsLayout_container'> <a href='https://forums.getpaint.net/' id='elLogo' accesskey='1'><img src="//media.invisioncic.com/r125076/monthly_2020_08/getpaint_blacktext.png.5e2669ddda3d7a5f9c5af66188e317c7.png" alt='Paint.NET Forum'></a> <ul id='elUserNav' class='ipsList_inline cSignedOut ipsResponsive_showDesktop'> <li id='elSignInLink'> <a href='https://forums.getpaint.net/login/' data-ipsMenu-closeOnClick="false" data-ipsMenu id='elUserSignIn'> Existing user? Sign In <i class='fa fa-caret-down'></i> </a> <div id='elUserSignIn_menu' class='ipsMenu ipsMenu_auto ipsHide'> <form accept-charset='utf-8' method='post' action='https://forums.getpaint.net/login/'> <input type="hidden" name="csrfKey" value="3a9202e24f251c6e1ce19b587b55a730"> <input type="hidden" name="ref" value="aHR0cHM6Ly9mb3J1bXMuZ2V0cGFpbnQubmV0L3RvcGljLzExODU4My1mZWF0dXJlLXJlcXVlc3Qtc2V0LWN1c3RvbS1hcHAtZmlsZXMtcGx1Z2lucy1mb2xkZXIv"> <div data-role="loginForm"> <div class="ipsPad ipsForm ipsForm_vertical"> <h4 class="ipsType_sectionHead">Sign In</h4> <br><br> <ul class='ipsList_reset'> <li class="ipsFieldRow ipsFieldRow_noLabel ipsFieldRow_fullWidth"> <input type="email" placeholder="Email Address" name="auth" autocomplete="email"> </li> <li class="ipsFieldRow ipsFieldRow_noLabel ipsFieldRow_fullWidth"> <input type="password" placeholder="Password" name="password" autocomplete="current-password"> </li> <li class="ipsFieldRow ipsFieldRow_checkbox ipsClearfix"> <span class="ipsCustomInput"> <input type="checkbox" name="remember_me" id="remember_me_checkbox" value="1" checked aria-checked="true"> <span></span> </span> <div class="ipsFieldRow_content"> <label class="ipsFieldRow_label" for="remember_me_checkbox">Remember me</label> <span class="ipsFieldRow_desc">Not recommended on shared computers</span> </div> </li> <li class="ipsFieldRow ipsFieldRow_fullWidth"> <button type="submit" name="_processLogin" value="usernamepassword" class="ipsButton ipsButton_primary ipsButton_small" id="elSignIn_submit">Sign In</button> <p class="ipsType_right ipsType_small"> <a href='https://forums.getpaint.net/lostpassword/' data-ipsDialog data-ipsDialog-title='Forgot your password?'> Forgot your password?</a> </p> </li> </ul> </div> </div> </form> </div> </li> <li> <a href='https://forums.getpaint.net/register/' id='elRegisterButton' class='ipsButton ipsButton_normal ipsButton_primary'>Sign Up</a> </li> </ul> <ul class='ipsMobileHamburger ipsList_reset ipsResponsive_hideDesktop'> <li data-ipsDrawer data-ipsDrawer-drawerElem='#elMobileDrawer'> <a href='#' > <i class='fa fa-navicon'></i> </a> </li> </ul> </div> </header> <nav data-controller='core.front.core.navBar' class=' ipsResponsive_showDesktop'> <div class='ipsNavBar_primary ipsLayout_container '> <ul data-role="primaryNavBar" class='ipsClearfix'> <li class='ipsNavBar_active' data-active id='elNavSecondary_1' data-role="navBarItem" data-navApp="core" data-navExt="CustomItem"> <a href="https://forums.getpaint.net" data-navItem-id="1" data-navDefault> Browse<span class='ipsNavBar_active__identifier'></span> </a> <ul class='ipsNavBar_secondary ' data-role='secondaryNavBar'> <li class='ipsNavBar_active' data-active id='elNavSecondary_8' data-role="navBarItem" data-navApp="forums" data-navExt="Forums"> <a href="https://forums.getpaint.net" data-navItem-id="8" data-navDefault> Forums<span class='ipsNavBar_active__identifier'></span> </a> </li> <li id='elNavSecondary_11' data-role="navBarItem" data-navApp="core" data-navExt="Guidelines"> <a href="http://forums.getpaint.net/index.php?/topic/2932-read-first-the-rules-yes-you-read-this-2010-3-15/" data-navItem-id="11" > Guidelines<span class='ipsNavBar_active__identifier'></span> </a> </li> <li id='elNavSecondary_12' data-role="navBarItem" data-navApp="core" data-navExt="StaffDirectory"> <a href="https://forums.getpaint.net/staff/" data-navItem-id="12" > Staff<span class='ipsNavBar_active__identifier'></span> </a> </li> <li class='ipsHide' id='elNavigationMore_1' data-role='navMore'> <a href='#' data-ipsMenu data-ipsMenu-appendTo='#elNavigationMore_1' id='elNavigationMore_1_dropdown'>More <i class='fa fa-caret-down'></i></a> <ul class='ipsHide ipsMenu ipsMenu_auto' id='elNavigationMore_1_dropdown_menu' data-role='moreDropdown'></ul> </li> </ul> </li> <li id='elNavSecondary_2' data-role="navBarItem" data-navApp="core" data-navExt="CustomItem"> <a href="https://forums.getpaint.net/discover/" data-navItem-id="2" > Activity<span class='ipsNavBar_active__identifier'></span> </a> <ul class='ipsNavBar_secondary ipsHide' data-role='secondaryNavBar'> <li id='elNavSecondary_3' data-role="navBarItem" data-navApp="core" data-navExt="AllActivity"> <a href="https://forums.getpaint.net/discover/" data-navItem-id="3" > All Activity<span class='ipsNavBar_active__identifier'></span> </a> </li> <li id='elNavSecondary_7' data-role="navBarItem" data-navApp="core" data-navExt="Search"> <a href="https://forums.getpaint.net/search/" data-navItem-id="7" > Search<span class='ipsNavBar_active__identifier'></span> </a> </li> <li class='ipsHide' id='elNavigationMore_2' data-role='navMore'> <a href='#' data-ipsMenu data-ipsMenu-appendTo='#elNavigationMore_2' id='elNavigationMore_2_dropdown'>More <i class='fa fa-caret-down'></i></a> <ul class='ipsHide ipsMenu ipsMenu_auto' id='elNavigationMore_2_dropdown_menu' data-role='moreDropdown'></ul> </li> </ul> </li> <li id='elNavSecondary_14' data-role="navBarItem" data-navApp="core" data-navExt="Leaderboard"> <a href="https://forums.getpaint.net/leaderboard/" data-navItem-id="14" > Leaderboard<span class='ipsNavBar_active__identifier'></span> </a> </li> <li class='ipsHide' id='elNavigationMore' data-role='navMore'> <a href='#' data-ipsMenu data-ipsMenu-appendTo='#elNavigationMore' id='elNavigationMore_dropdown'>More</a> <ul class='ipsNavBar_secondary ipsHide' data-role='secondaryNavBar'> <li class='ipsHide' id='elNavigationMore_more' data-role='navMore'> <a href='#' data-ipsMenu data-ipsMenu-appendTo='#elNavigationMore_more' id='elNavigationMore_more_dropdown'>More <i class='fa fa-caret-down'></i></a> <ul class='ipsHide ipsMenu ipsMenu_auto' id='elNavigationMore_more_dropdown_menu' data-role='moreDropdown'></ul> </li> </ul> </li> </ul> <div id="elSearchWrapper"> <div id='elSearch' data-controller="core.front.core.quickSearch"> <form accept-charset='utf-8' action='//forums.getpaint.net/search/?do=quicksearch' method='post'> <input type='search' id='elSearchField' placeholder='Search...' name='q' autocomplete='off' aria-label='Search'> <details class='cSearchFilter'> <summary class='cSearchFilter__text'></summary> <ul class='cSearchFilter__menu'> <li><label><input type="radio" name="type" value="all" ><span class='cSearchFilter__menuText'>Everywhere</span></label></li> <li><label><input type="radio" name="type" value='contextual_{"type":"forums_topic","nodes":4}' checked><span class='cSearchFilter__menuText'>This Forum</span></label></li> <li><label><input type="radio" name="type" value='contextual_{"type":"forums_topic","item":118583}' checked><span class='cSearchFilter__menuText'>This Topic</span></label></li> <li><label><input type="radio" name="type" value="core_statuses_status"><span class='cSearchFilter__menuText'>Status Updates</span></label></li> <li><label><input type="radio" name="type" value="forums_topic"><span class='cSearchFilter__menuText'>Topics</span></label></li> <li><label><input type="radio" name="type" value="core_members"><span class='cSearchFilter__menuText'>Members</span></label></li> </ul> </details> <button class='cSearchSubmit' type="submit" aria-label='Search'><i class="fa fa-search"></i></button> </form> </div> </div> </div> </nav> <ul id='elMobileNav' class='ipsResponsive_hideDesktop' data-controller='core.front.core.mobileNav'> <li id='elMobileBreadcrumb'> <a href='https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/'> <span>Paint.NET Discussion and Questions</span> </a> </li> <li > <a data-action="defaultStream" href='https://forums.getpaint.net/discover/'><i class="fa fa-newspaper-o" aria-hidden="true"></i></a> </li> <li class='ipsJS_show'> <a href='https://forums.getpaint.net/search/'><i class='fa fa-search'></i></a> </li> </ul> </div> <main id='ipsLayout_body' class='ipsLayout_container'> <div id='ipsLayout_contentArea'> <div id='ipsLayout_contentWrapper'> <nav class='ipsBreadcrumb ipsBreadcrumb_top ipsFaded_withHover'> <ul class='ipsList_inline ipsPos_right'> <li > <a data-action="defaultStream" class='ipsType_light ' href='https://forums.getpaint.net/discover/'><i class="fa fa-newspaper-o" aria-hidden="true"></i> <span>All Activity</span></a> </li> </ul> <ul data-role="breadcrumbList"> <li> <a title="Home" href='https://forums.getpaint.net/'> <span>Home <i class='fa fa-angle-right'></i></span> </a> </li> <li> <a href='https://forums.getpaint.net/forum/13-paintnet/'> <span>Paint.NET <i class='fa fa-angle-right' aria-hidden="true"></i></span> </a> </li> <li> <a href='https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/'> <span>Paint.NET Discussion and Questions <i class='fa fa-angle-right' aria-hidden="true"></i></span> </a> </li> <li> [Feature request] Set custom app files (plugins) folder </li> </ul> </nav> <div id='ipsLayout_mainArea'> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4343851330510276" crossorigin="anonymous"></script> <!-- Forums, Below Nav, 728x90, created 4/17/10 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-4343851330510276" data-ad-slot="8650545473" data-ad-format="auto"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class='ipsPageHeader ipsResponsive_pull ipsBox ipsPadding sm:ipsPadding:half ipsMargin_bottom'> <div class='ipsFlex ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:4'> <div class='ipsFlex-flex:11'> <h1 class='ipsType_pageTitle ipsContained_container'> <span class='ipsType_break ipsContained'> <span>[Feature request] Set custom app files (plugins) folder</span> </span> </h1> </div> </div> <hr class='ipsHr'> <div class='ipsPageHeader__meta ipsFlex ipsFlex-jc:between ipsFlex-ai:center ipsFlex-fw:wrap ipsGap:3'> <div class='ipsFlex-flex:11'> <div class='ipsPhotoPanel ipsPhotoPanel_mini ipsPhotoPanel_notPhone ipsClearfix'> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_mini" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <div> <p class='ipsType_reset ipsType_blendLinks'> <span class='ipsType_normal'> <strong>By <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a></strong><br /> <span class='ipsType_light'><time datetime='2021-08-29T10:30:20Z' title='08/29/2021 10:30 AM' data-short='3 yr'>August 29, 2021</time> in <a href="https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/">Paint.NET Discussion and Questions</a></span> </span> </p> </div> </div> </div> <div class='ipsFlex-flex:01 ipsResponsive_hidePhone'> <div class='ipsShareLinks'> <a href='#elShareItem_1601224832_menu' id='elShareItem_1601224832' data-ipsMenu class='ipsShareButton ipsButton ipsButton_verySmall ipsButton_link ipsButton_link--light'> <span><i class='fa fa-share-alt'></i></span> Share </a> <div class='ipsPadding ipsMenu ipsMenu_normal ipsHide' id='elShareItem_1601224832_menu' data-controller="core.front.core.sharelink"> <span data-ipsCopy data-ipsCopy-flashmessage> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" class="ipsButton ipsButton_light ipsButton_small ipsButton_fullWidth" data-role="copyButton" data-clipboard-text="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" data-ipstooltip title='Copy Link to Clipboard'><i class="fa fa-clone"></i> https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/</a> </span> <ul class='ipsShareLinks ipsMargin_top:half'> <li> <a href="https://x.com/share?url=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" class="cShareLink cShareLink_x" target="_blank" data-role="shareLink" title='Share on X' data-ipsTooltip rel='nofollow noopener'> <i class="fa fa-x"></i> </a></li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" class="cShareLink cShareLink_facebook" target="_blank" data-role="shareLink" title='Share on Facebook' data-ipsTooltip rel='noopener nofollow'> <i class="fa fa-facebook"></i> </a></li> <li> <a href="https://www.reddit.com/submit?url=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F&title=%5BFeature+request%5D+Set+custom+app+files+%28plugins%29+folder" rel="nofollow noopener" class="cShareLink cShareLink_reddit" target="_blank" title='Share on Reddit' data-ipsTooltip> <i class="fa fa-reddit"></i> </a></li> <li> <a href="mailto:?subject=%5BFeature%20request%5D%20Set%20custom%20app%20files%20%28plugins%29%20folder&body=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" rel='nofollow' class='cShareLink cShareLink_email' title='Share via email' data-ipsTooltip> <i class="fa fa-envelope"></i> </a></li> <li> <a href="https://pinterest.com/pin/create/button/?url=https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/&media=" class="cShareLink cShareLink_pinterest" rel="nofollow noopener" target="_blank" data-role="shareLink" title='Share on Pinterest' data-ipsTooltip> <i class="fa fa-pinterest"></i> </a></li> </ul> <hr class='ipsHr'> <button class='ipsHide ipsButton ipsButton_verySmall ipsButton_light ipsButton_fullWidth ipsMargin_top:half' data-controller='core.front.core.webshare' data-role='webShare' data-webShareTitle='[Feature request] Set custom app files (plugins) folder' data-webShareText='[Feature request] Set custom app files (plugins) folder' data-webShareUrl='https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/'>More sharing options...</button> </div> <!-- --> <div data-followApp='forums' data-followArea='topic' data-followID='118583' data-controller='core.front.core.followButton'> <a href='https://forums.getpaint.net/login/' rel="nofollow" class="ipsFollow ipsPos_middle ipsButton ipsButton_light ipsButton_verySmall ipsButton_disabled" data-role="followButton" data-ipsTooltip title='Sign in to follow this'> <span>Followers</span> <span class='ipsCommentCount'>0</span> </a> </div> </div> </div> </div> </div> <div class='ipsClearfix'> <ul class="ipsToolList ipsToolList_horizontal ipsClearfix ipsSpacer_both "> <li class='ipsToolList_primaryAction'> <span data-controller='forums.front.topic.reply'> <a href='#replyForm' rel="nofollow" class='ipsButton ipsButton_important ipsButton_medium ipsButton_fullWidth' data-action='replyToTopic'>Reply to this topic</a> </span> </li> <li class='ipsResponsive_hidePhone'> <a href="https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/?do=add" rel="nofollow" class='ipsButton ipsButton_link ipsButton_medium ipsButton_fullWidth' title='Start a new topic in this forum'>Start new topic</a> </li> </ul> </div> <div id='comments' data-controller='core.front.core.commentFeed,forums.front.topic.view, core.front.core.ignoredComments' data-autoPoll data-baseURL='https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/' data-lastPage data-feedID='topic-118583' class='cTopic ipsClear ipsSpacer_top'> <div data-controller='core.front.core.recommendedComments' data-url='https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/?recommended=comments' class='ipsRecommendedComments ipsHide'> <div data-role="recommendedComments"> <h2 class='ipsType_sectionHead ipsType_large ipsType_bold ipsMargin_bottom'>Recommended Posts</h2> </div> </div> <div id="elPostFeed" data-role='commentFeed' data-controller='core.front.core.moderation' > <form action="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/?csrfKey=3a9202e24f251c6e1ce19b587b55a730&do=multimodComment" method="post" data-ipsPageAction data-role='moderationTools'> <a id="findComment-585903"></a> <a id="comment-585903"></a> <article id="elComment_585903" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <a href="https://forums.getpaint.net/profile/142796-olavrb/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-585903" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-08-29T10:30:20Z' title='08/29/2021 10:30 AM' data-short='3 yr'>August 29, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </div> </li> <li data-role="group">Members</li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/142796-olavrb/content/" rel="nofollow" title="27 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 27 </a> </li> </ul> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-585903_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="585903" data-quoteData='{"userid":142796,"username":"olavrb","timestamp":1630233020,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":585903}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_585903_menu' class='ipsComment_ellipsis' id='elControls_585903' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-585903_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_585903_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-08-29T10:30:20Z' title='08/29/2021 10:30 AM' data-short='3 yr'>August 29, 2021</time> <span class='ipsResponsive_hidePhone'> (edited) </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <p> I use Paint.NET on multiple machines where I put app files (plugins) in my personal OneDrive, so I don't have to maintain this manually on all the devices. </p> <p> 聽 </p> <p> For machines without Known Folder Move (KFM) with OneDrive for Business, it has worked fine to create a directory symbolic link from聽"%USERPROFILE%\Documents\Paint.NET App Files" to聽"%ONEDRIVECONSUMER%\_Share\AppData\Paint.net\AppFiles", where I have the folders "Effects", "FileTypes" and "Shapes". </p> <ul><li> The "_Share" folder in my OneDrive is set to always be available offline, so no "Files on-deman" causing issues here. </li> <li> Running聽v4.2.16 from Microsoft Store, but don't think that's relevant here. </li> <li> Here is the CMD (as admin) command I used, if anyone is interested: <pre class="ipsCode">mklink /D "%USERPROFILE%\Documents\Paint.NET App Files" "%ONEDRIVECONSUMER%\_Share\AppData\Paint.net\AppFiles"</pre> <p> 聽 </p> </li> </ul><p> <em>I think this failed this time due to my company using known folder move (KFM) with OneDrive for Business, as I see Paint.NET have created a "paint.net App Files" folder inside "%ONEDRIVECOMMERCIAL%\Documents". But symbolic linking from one OneDrive to another makes changes one place being uploaded to both OneDrives, so I'd rather avoid that if I could.</em> </p> <p> 聽 </p> <p> Then I thought: It would be nice if it was possible to set a different directory for Paint.NET app files. Then I could just set this settings to the folder in my OneDrive. </p> <span class='ipsType_reset ipsType_medium ipsType_light' data-excludequote> <strong>Edited <time datetime='2021-08-29T10:42:03Z' title='08/29/2021 10:42 AM' data-short='3 yr'>August 29, 2021</time> by olavrb</strong> </span> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585903' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq585903' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585903' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> </div> </div> </div> </article> <a id="findComment-585911"></a> <a id="comment-585911"></a> <article id="elComment_585911" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break"><span style='font-weight:500;color:#d14545;'>Rick Brewster</span></a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-585911" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-08-29T16:50:48Z' title='08/29/2021 04:50 PM' data-short='3 yr'>August 29, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break">Rick Brewster</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </div> </li> <li data-role="group"><span style='font-weight:500;color:#d14545;'>Administrator</span></li> <li data-role="group-icon"><img src="//media.invisioncic.com/r125076/team_admin.png" alt="" class="cAuthorGroupIcon"></li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/content/" rel="nofollow" title="21,356 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 21.4k </a> </li> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/solutions/" rel="nofollow" title="163 solutions" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-check-circle"></i> 163 </a> </li> </ul> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <p><strong>Paint.NET Author and Developer</strong></p> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <span class='ft'>Location:</span><span class='fc'> Seattle Area, WA</span> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-585911_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="585911" data-quoteData='{"userid":44714,"username":"Rick Brewster","timestamp":1630255848,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":585911}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_585911_menu' class='ipsComment_ellipsis' id='elControls_585911' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-585911_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_585911_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-08-29T16:50:48Z' title='08/29/2021 04:50 PM' data-short='3 yr'>August 29, 2021</time> <span class='ipsResponsive_hidePhone'> </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <p> I looked into this, as I got several request for it when I added the聽<strong>paint.net App Files</strong>聽plugin loading. IIRC, I couldn't find a good API for determining the right OneDrive folder. Maybe I'm remembering wrong. </p> <p> 聽 </p> <p> Does anyone know what OneDrive API to use the get the location(s) of its folder(s)? Or maybe it's just the %ONEDRIVE*% environment variables... </p> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585911' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq585911' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585911' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> <div data-role="memberSignature" class='ipsResponsive_hidePhone ipsBorder_top ipsPadding_vertical'> <div class='ipsType_light ipsType_richText' data-ipsLazyLoad> <p> <span style="font-size:8px;"><em>The Paint.NET Blog: </em></span><a href="https://blog.getpaint.net/" rel="external nofollow"><span style="font-size:8px;"><em>https://blog.getpaint.net/</em></span></a> </p> <p> <span style="font-size:8px;"><em>Donations are always appreciated! </em></span><a href="https://www.getpaint.net/donate.html" rel="external nofollow"><span style="font-size:8px;"><em>https://www.getpaint.net/donate.html</em></span></a> </p> <p> <a href="https://www.getpaint.net/" rel="external nofollow"><img alt="forumSig_bmwE60.jpg" src="https://www.getpaint.net/users/rick/forumSig_teslaS.jpg"></a> </p> </div> </div> </div> </div> </div> </article> <a id="findComment-585924"></a> <a id="comment-585924"></a> <article id="elComment_585924" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/48727-ego-eram-reputo/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/48727-ego-eram-reputo/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Ego Eram Reputo's profile"> <img src='//media.invisioncic.com/r125076/profile/photo-thumb-48727.jpg' alt='Ego Eram Reputo' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Ego Eram Reputo is a moderator"></span> <a href="https://forums.getpaint.net/profile/48727-ego-eram-reputo/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/48727-ego-eram-reputo/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/48727-ego-eram-reputo/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Ego Eram Reputo's profile" class="ipsType_break"><span style='font-weight:500;color:#d14545;'>Ego Eram Reputo</span></a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-585924" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-08-30T03:06:19Z' title='08/30/2021 03:06 AM' data-short='3 yr'>August 30, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/48727-ego-eram-reputo/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/48727-ego-eram-reputo/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Ego Eram Reputo's profile" class="ipsType_break">Ego Eram Reputo</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/48727-ego-eram-reputo/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/48727-ego-eram-reputo/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Ego Eram Reputo's profile"> <img src='//media.invisioncic.com/r125076/profile/photo-thumb-48727.jpg' alt='Ego Eram Reputo' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Ego Eram Reputo is a moderator"></span> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </div> </li> <li data-role="group"><span style='font-weight:500;color:#d14545;'>Administrator</span></li> <li data-role="group-icon"><img src="//media.invisioncic.com/r125076/team_admin.png" alt="" class="cAuthorGroupIcon"></li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/48727-ego-eram-reputo/content/" rel="nofollow" title="14,750 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 14.8k </a> </li> <li> <a href="https://forums.getpaint.net/profile/48727-ego-eram-reputo/solutions/" rel="nofollow" title="43 solutions" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-check-circle"></i> 43 </a> </li> </ul> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <span class='ft'>Location:</span><span class='fc'> North Canterbury, New Zealand</span> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-585924_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="585924" data-quoteData='{"userid":48727,"username":"Ego Eram Reputo","timestamp":1630292779,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":585924}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_585924_menu' class='ipsComment_ellipsis' id='elControls_585924' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-585924_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_585924_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-08-30T03:06:19Z' title='08/30/2021 03:06 AM' data-short='3 yr'>August 30, 2021</time> <span class='ipsResponsive_hidePhone'> </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <blockquote class="ipsQuote" data-gramm="false" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="585903" data-ipsquote-contentid="118583" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1630233020" data-ipsquote-userid="142796" data-ipsquote-username="olavrb"> <div class="ipsQuote_citation"> 16 hours ago, olavrb said: </div> <div class="ipsQuote_contents ipsClearfix" data-gramm="false"> <p> I use Paint.NET on multiple machines where I put app files (plugins) in my personal OneDrive, so I don't have to maintain this manually on all the devices. </p> </div> </blockquote> <p> 聽 </p> <p> Woah. I did not realize you could do that. </impressed> <span class="ipsEmoji">馃く</span> </p> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585924' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq585924' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-585924' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> <div data-role="memberSignature" class='ipsResponsive_hidePhone ipsBorder_top ipsPadding_vertical'> <div class='ipsType_light ipsType_richText' data-ipsLazyLoad> <p style="text-align:center;"> 聽 </p> <p style="text-align:center;"> <img class="ipsImage ipsImage_thumbnailed" data-fileid="25627" data-ratio="23.40" data-unique="k4f5gsro7" width="500" alt="thx5.jpg" src="//media.invisioncic.com/r125076/monthly_2024_09/thx5.jpg.b1a626507d11e0dae549a408de53332f.jpg"> </p> <p style="text-align:center;"> <span style="font-size:12px;"><span style="font-family:Calibri;"><span style="color:#808080;">ebook: <a href="http://www.amazon.com/gp/product/B009IFBA5W" rel="external nofollow">Mastering Paint.NET</a> | resources: <a href="https://forums.getpaint.net/index.php?/topic/15260-plugin-index/" rel="">Plugin Index</a> | <a href="https://forums.getpaint.net/index.php?/topic/14336-stereogram-autostereogram-tutorial/" rel="">Stereogram Tut</a> | proud supporter of </span><a href="http://boltbait.com/pdn/codelab" rel="external nofollow"><span style="color:#808080;">Codelab</span></a><br> plugins: <a href="https://forums.getpaint.net/index.php?/topic/110145-eers-plugin-pack/" rel="">EER's Plugin Pack</a> | <a href="https://forums.getpaint.net/index.php?/topic/28713-planetoid-make-your-own-planets/" rel="">Planetoid</a> | <a href="https://forums.getpaint.net/index.php?/topic/108546-stickman/" rel="">StickMan</a> | <a href="https://forums.getpaint.net/index.php?/topic/10684-whichsymbolplus-updated-12-dec-2010/" rel="">WhichSymbol+</a> | <a href="https://forums.getpaint.net/index.php?/topic/31446-dr-scott39s-markup-renderer/" rel="">Dr Scott's Markup Renderer</a> | <a href="https://forums.getpaint.net/index.php?/topic/31674-csv-comma-separated-values-filetype/" rel="">CSV Filetype</a> | dwarf horde plugins: <a href="https://forums.getpaint.net/index.php?/topic/110458-plugin-browser" rel="">Plugin Browser</a> | <a href="https://forums.getpaint.net/index.php?/topic/110677-shapemaker-by-the-dwarf-horde/" rel="">ShapeMaker</a></span></span> </p> </div> </div> </div> </div> </div> </article> <a id="findComment-586013"></a> <a id="comment-586013"></a> <article id="elComment_586013" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break"><span style='font-weight:500;color:#d14545;'>Rick Brewster</span></a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-586013" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-09-03T01:31:03Z' title='09/03/2021 01:31 AM' data-short='3 yr'>September 3, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break">Rick Brewster</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </div> </li> <li data-role="group"><span style='font-weight:500;color:#d14545;'>Administrator</span></li> <li data-role="group-icon"><img src="//media.invisioncic.com/r125076/team_admin.png" alt="" class="cAuthorGroupIcon"></li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/content/" rel="nofollow" title="21,356 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 21.4k </a> </li> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/solutions/" rel="nofollow" title="163 solutions" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-check-circle"></i> 163 </a> </li> </ul> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <p><strong>Paint.NET Author and Developer</strong></p> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <span class='ft'>Location:</span><span class='fc'> Seattle Area, WA</span> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-586013_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="586013" data-quoteData='{"userid":44714,"username":"Rick Brewster","timestamp":1630632663,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":586013}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_586013_menu' class='ipsComment_ellipsis' id='elControls_586013' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-586013_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_586013_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-09-03T01:31:03Z' title='09/03/2021 01:31 AM' data-short='3 yr'>September 3, 2021</time> <span class='ipsResponsive_hidePhone'> </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <p> I think I've come up with a workable solution that isn't also a Lovecraftian security disaster waiting to happen. </p> <p> 聽 </p> <p> The problem with adding the ability to install/load plugins via OneDrive is that a remote attacker/hacker who got control of your OneDrive account could literally push malware onto your system. No need to get access to your physical system, they could be anywhere in the world. So, this definitely can't be enabled by default. </p> <p> 聽 </p> <p> Here's what I'm implementing for 4.3, which involves 2 registry keys (there's no UI for this): </p> <ol><li> Set <strong>HKEY_LOCAL_MACHINE \ Software \ paint.net \ "Plugins/AllowAdditionalPluginDirectoryRoots"</strong> (without the quotes) to聽<strong>true</strong> (as a string / REG_SZ). </li> <li> Set聽<strong>HKEY_CURRENT_USER \ Software \ paint.net \ "Plugins/AdditionalPluginDirectoryRoots"</strong>聽to a semicolon-delimited list of directories (just like setting PATH). Within those directories you can then create the usual subdirectories of聽FileTypes, Effects, and Shapes. You can use environment variables here, so聽something like聽<strong>%OneDrive%\Documents\paint.net Plugins</strong>聽is perfectly valid. </li> </ol><p> Having the enablement of this tucked behind a registry key that requires administrator privilege helps ensure that local malware can't enable a remote attacker to have the ability to push code to your system. </p> <p> 聽 </p> <p> The portable version of the app can't participate in this, as it has no notion of a SystemWide settings hive (JSON file), but that's okay because you can just package your plugins next to the app itself.聽 </p> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ' data-role='reactionBlurb'> <ul class='ipsReact_reactions'> <li class='ipsReact_reactCount'> <span data-ipsTooltip title="Like"> <span> <img src='//media.invisioncic.com/r125076/reactions/react_like.png' alt="Like" loading="lazy"> </span> <span> 1 </span> </span> </li> </ul> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586013' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq586013' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586013' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> <div data-role="memberSignature" class='ipsResponsive_hidePhone ipsBorder_top ipsPadding_vertical'> <div class='ipsType_light ipsType_richText' data-ipsLazyLoad> <p> <span style="font-size:8px;"><em>The Paint.NET Blog: </em></span><a href="https://blog.getpaint.net/" rel="external nofollow"><span style="font-size:8px;"><em>https://blog.getpaint.net/</em></span></a> </p> <p> <span style="font-size:8px;"><em>Donations are always appreciated! </em></span><a href="https://www.getpaint.net/donate.html" rel="external nofollow"><span style="font-size:8px;"><em>https://www.getpaint.net/donate.html</em></span></a> </p> <p> <a href="https://www.getpaint.net/" rel="external nofollow"><img alt="forumSig_bmwE60.jpg" src="https://www.getpaint.net/users/rick/forumSig_teslaS.jpg"></a> </p> </div> </div> </div> </div> </div> </article> <a id="findComment-586020"></a> <a id="comment-586020"></a> <article id="elComment_586020" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break"><span style='font-weight:500;color:#d14545;'>Rick Brewster</span></a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-586020" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-09-03T04:10:57Z' title='09/03/2021 04:10 AM' data-short='3 yr'>September 3, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break">Rick Brewster</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </div> </li> <li data-role="group"><span style='font-weight:500;color:#d14545;'>Administrator</span></li> <li data-role="group-icon"><img src="//media.invisioncic.com/r125076/team_admin.png" alt="" class="cAuthorGroupIcon"></li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/content/" rel="nofollow" title="21,356 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 21.4k </a> </li> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/solutions/" rel="nofollow" title="163 solutions" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-check-circle"></i> 163 </a> </li> </ul> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <p><strong>Paint.NET Author and Developer</strong></p> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <span class='ft'>Location:</span><span class='fc'> Seattle Area, WA</span> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-586020_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="586020" data-quoteData='{"userid":44714,"username":"Rick Brewster","timestamp":1630642257,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":586020}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_586020_menu' class='ipsComment_ellipsis' id='elControls_586020' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-586020_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_586020_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-09-03T04:10:57Z' title='09/03/2021 04:10 AM' data-short='3 yr'>September 3, 2021</time> <span class='ipsResponsive_hidePhone'> </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <p> I just published a new alpha of 4.3 which has this functionality. Try it out and let me know how it goes:聽 </p> <iframe allowfullscreen="" class="ipsEmbed_finishedLoading" data-embedauthorid="44714" data-embedcontent="" data-embedid="embed5508472434" scrolling="no" src="https://forums.getpaint.net/topic/118596-paintnet-43-alpha-build-7916/?do=embed" style="overflow: hidden; height: 212px; max-width: 502px;"></iframe> <p> 聽 </p> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586020' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq586020' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586020' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> <div data-role="memberSignature" class='ipsResponsive_hidePhone ipsBorder_top ipsPadding_vertical'> <div class='ipsType_light ipsType_richText' data-ipsLazyLoad> <p> <span style="font-size:8px;"><em>The Paint.NET Blog: </em></span><a href="https://blog.getpaint.net/" rel="external nofollow"><span style="font-size:8px;"><em>https://blog.getpaint.net/</em></span></a> </p> <p> <span style="font-size:8px;"><em>Donations are always appreciated! </em></span><a href="https://www.getpaint.net/donate.html" rel="external nofollow"><span style="font-size:8px;"><em>https://www.getpaint.net/donate.html</em></span></a> </p> <p> <a href="https://www.getpaint.net/" rel="external nofollow"><img alt="forumSig_bmwE60.jpg" src="https://www.getpaint.net/users/rick/forumSig_teslaS.jpg"></a> </p> </div> </div> </div> </div> </div> </article> <ul class='ipsTopicMeta'> <li class="ipsTopicMeta__item ipsTopicMeta__item--time"> 3 weeks later... </li> </ul> <a id="findComment-586609"></a> <a id="comment-586609"></a> <article id="elComment_586609" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <a href="https://forums.getpaint.net/profile/142796-olavrb/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-586609" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-09-23T19:40:20Z' title='09/23/2021 07:40 PM' data-short='3 yr'>September 23, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </div> </li> <li data-role="group">Members</li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/142796-olavrb/content/" rel="nofollow" title="27 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 27 </a> </li> </ul> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-586609_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="586609" data-quoteData='{"userid":142796,"username":"olavrb","timestamp":1632426020,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":586609}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> <li><strong class="ipsBadge ipsBadge_large ipsComment_authorBadge">Author</strong></li> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_586609_menu' class='ipsComment_ellipsis' id='elControls_586609' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-586609_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_586609_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-09-23T19:40:20Z' title='09/23/2021 07:40 PM' data-short='3 yr'>September 23, 2021</time> <span class='ipsResponsive_hidePhone'> (edited) </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <p> <span><a contenteditable="false" data-ipshover="" data-ipshover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" data-mentionid="44714" href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="">@Rick Brewster</a></span> </p> <p> 聽 </p> <p> Just saw 4.3 got installed through Microsoft Store today. Then had to check the forums. Then saw that you've implemented this feature request. Sweet. <span><img alt=":)" data-emoticon="" height="15" src="//media.invisioncic.com/r125076/emoticons/pdn4icons_boltbait.smile.png" srcset="//media.invisioncic.com/r125076/emoticons/smile@2x.png 2x" title=":)" width="15"></span> </p> <p> 聽 </p> <p> <span>I then went ahead to try it. Made following PowerShell script:</span> </p> <p> 聽 </p> <div class="ipsSpoiler" data-ipsspoiler=""> <div class="ipsSpoiler_header"> <span>Spoiler</span> </div> <div class="ipsSpoiler_contents"> <pre class="ipsCode prettyprint lang-c prettyprinted"><span class="com">#Requires -RunAsAdministrator</span><span class="pln"> </span><span class="com">#Requires -Version 5.1</span><span class="pln"> </span><span class="pun"><#</span><span class="pln"> </span><span class="pun">.</span><span class="pln">SYNOPSIS </span><span class="typ">Sets</span><span class="pln"> additional plugin directories </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">Paint</span><span class="pun">.</span><span class="pln">NET </span><span class="pun">.</span><span class="pln">NOTES </span><span class="typ">Author</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Olav</span><span class="pln"> R</span><span class="pun">酶</span><span class="pln">nnestad </span><span class="typ">Birkeland</span><span class="pln"> </span><span class="typ">Created</span><span class="pun">:</span><span class="pln"> </span><span class="lit">210923</span><span class="pln"> </span><span class="typ">Modified</span><span class="pun">:</span><span class="pln"> </span><span class="lit">210923</span><span class="pln"> </span><span class="pun">.</span><span class="pln">EXAMPLE </span><span class="pun">&</span><span class="pln"> $psISE</span><span class="pun">.</span><span class="str">'CurrentFile'</span><span class="pun">.</span><span class="str">'FullPath'</span><span class="pln"> </span><span class="com">#></span><span class="pln"> </span><span class="com"># Input parameters</span><span class="pln"> </span><span class="pun">[</span><span class="typ">OutputType</span><span class="pun">(</span><span class="pln">$null</span><span class="pun">)]</span><span class="pln"> </span><span class="typ">Param</span><span class="pun">()</span><span class="pln"> </span><span class="com"># PowerShell preferences</span><span class="pln"> $ErrorActionPreference </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Stop'</span><span class="pln"> $InformationPreference </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Continue'</span><span class="pln"> </span><span class="com"># Assets</span><span class="pln"> $RegistryValues </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\paint.net'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Plugins/AllowAdditionalPluginDirectoryRoots'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">byte</span><span class="pun">]</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="str">'Registry::HKEY_CURRENT_USER\SOFTWARE\paint.net'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Plugins/AdditionalPluginDirectoryRoots'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">string</span><span class="pun">](</span><span class="pln"> </span><span class="str">'{0}\_Share\AppData\Paint.net\AppFiles'</span><span class="pln"> </span><span class="pun">-</span><span class="pln">f $env</span><span class="pun">:</span><span class="typ">OneDriveConsumer</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="com"># Set registry values</span><span class="pln"> $RegistryValues</span><span class="pun">.</span><span class="typ">GetEnumerator</span><span class="pun">().</span><span class="typ">ForEach</span><span class="pun">{</span><span class="pln"> $Path </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">string</span><span class="pun">]</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Name'</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="pln">not </span><span class="pun">(</span><span class="typ">Test</span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">PathType</span><span class="pln"> </span><span class="str">'Container'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> $null </span><span class="pun">=</span><span class="pln"> </span><span class="typ">New</span><span class="pun">-</span><span class="typ">Item</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">ItemType</span><span class="pln"> </span><span class="str">'Directory'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Force</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Value'</span><span class="pun">.</span><span class="typ">GetEnumerator</span><span class="pun">().</span><span class="typ">ForEach</span><span class="pun">{</span><span class="pln"> $null </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Set</span><span class="pun">-</span><span class="typ">ItemProperty</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Name'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Value'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Type</span><span class="pln"> </span><span class="pun">(</span><span class="pln">$</span><span class="pun">(</span><span class="kwd">if</span><span class="pun">(</span><span class="pln">$_</span><span class="pun">.</span><span class="str">'Value'</span><span class="pln"> </span><span class="pun">-</span><span class="pln">is </span><span class="pun">[</span><span class="pln">byte</span><span class="pun">]){</span><span class="str">'DWord'</span><span class="pun">}</span><span class="kwd">else</span><span class="pun">{</span><span class="str">'String'</span><span class="pun">}))</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Force</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">}</span></pre> <p> 聽 </p> </div> </div> <p> 聽 </p> <p> 聽 </p> <p> My "%OneDriveConsumer%\_Share\AppData\Paint.net\AppFiles" looks like attached picture. Inside there I have the MozJpeg plugins (<a href="https://github.com/0xC0000054/pdn-mozjpeg" rel="external nofollow">https://github.com/0xC0000054/pdn-mozjpeg</a>) amongst others. </p> <p> 聽 </p> <p> But I can't save to Mozjpeg. So don't think I've done it right. Settings don't mention any errors in "Plugin Errors". Except the already reported "PaintDotNet.Effects.dll. </p> <p> 聽 </p> <p> Do you see anything obious? </p> <p> 聽 </p> <ul><li> I assume the name for each registry key is like you wrote it "Plugins/AdditionalPluginDirectoryRoots", with forward slash and all. </li> <li> For HKLM, you say true, registry don't have booleans, so I went with DWord. </li> <li> For HKCU, I have absolute path, as you can see from the screenshot. </li> </ul><p> 聽 </p> <div class="ipsSpoiler" data-ipsspoiler=""> <div class="ipsSpoiler_header"> <span>Spoiler</span> </div> <div class="ipsSpoiler_contents"> <p> The folder HKCU points to </p> <p> <a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19772" href="//media.invisioncic.com/r125076/monthly_2021_09/image.png.6559a512ec724bae631fc4c675dc714a.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19772" data-ratio="28.60" width="1000" src="//media.invisioncic.com/r125076/monthly_2021_09/image.thumb.png.f560a868a0562577ca5440db7dcc3d98.png"></a> </p> <p> HKCU </p> <p> <a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19775" href="//media.invisioncic.com/r125076/monthly_2021_09/image.png.b494d126d54383471c4a65f7b7080dae.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19775" data-ratio="10.50" width="1000" src="//media.invisioncic.com/r125076/monthly_2021_09/image.thumb.png.065e37256c43143b4d4d9eb761180bff.png"></a> </p> <p> HKLM </p> <p> <a class="ipsAttachLink ipsAttachLink_image" data-fileext="png" data-fileid="19774" href="//media.invisioncic.com/r125076/monthly_2021_09/image.png.493fd688ca976806d3b70cd15cf31679.png" rel=""><img alt="image.png" class="ipsImage ipsImage_thumbnailed" data-fileid="19774" data-ratio="13.20" width="1000" src="//media.invisioncic.com/r125076/monthly_2021_09/image.thumb.png.bbd593e8e5265f9ad26a67f2545445fb.png"></a> </p> <p> 聽 </p> </div> </div> <p> 聽 </p> <span class='ipsType_reset ipsType_medium ipsType_light' data-excludequote> <strong>Edited <time datetime='2021-09-23T19:44:18Z' title='09/23/2021 07:44 PM' data-short='3 yr'>September 23, 2021</time> by olavrb</strong> </span> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586609' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq586609' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586609' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> </div> </div> </div> </article> <a id="findComment-586610"></a> <a id="comment-586610"></a> <article id="elComment_586610" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break"><span style='font-weight:500;color:#d14545;'>Rick Brewster</span></a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-586610" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-09-23T19:44:32Z' title='09/23/2021 07:44 PM' data-short='3 yr'>September 23, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/44714-rick-brewster/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to Rick Brewster's profile" class="ipsType_break">Rick Brewster</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/44714-rick-brewster/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to Rick Brewster's profile"> <img src='//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png' alt='Rick Brewster' loading="lazy"> </a> <span class="cAuthorPane_badge cAuthorPane_badge--moderator" data-ipstooltip title="Rick Brewster is a moderator"></span> <img src='//media.invisioncic.com/r125076/monthly_2021_06/14_GrandMaster.svg' loading="lazy" alt="Grand Master" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Grand Master (14/14)"> </div> </li> <li data-role="group"><span style='font-weight:500;color:#d14545;'>Administrator</span></li> <li data-role="group-icon"><img src="//media.invisioncic.com/r125076/team_admin.png" alt="" class="cAuthorGroupIcon"></li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/content/" rel="nofollow" title="21,356 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 21.4k </a> </li> <li> <a href="https://forums.getpaint.net/profile/44714-rick-brewster/solutions/" rel="nofollow" title="163 solutions" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-check-circle"></i> 163 </a> </li> </ul> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <p><strong>Paint.NET Author and Developer</strong></p> </li> <li data-role='custom-field' class='ipsResponsive_hidePhone ipsType_break'> <span class='ft'>Location:</span><span class='fc'> Seattle Area, WA</span> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-586610_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="586610" data-quoteData='{"userid":44714,"username":"Rick Brewster","timestamp":1632426272,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":586610}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_586610_menu' class='ipsComment_ellipsis' id='elControls_586610' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-586610_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_586610_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-09-23T19:44:32Z' title='09/23/2021 07:44 PM' data-short='3 yr'>September 23, 2021</time> <span class='ipsResponsive_hidePhone'> </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <blockquote class="ipsQuote" data-gramm="false" data-ipsquote=""> <div class="ipsQuote_citation"> Quote </div> <div class="ipsQuote_contents ipsClearfix" data-gramm="false"> <p> For HKLM, you say true, registry don't have booleans, so I went with DWord. </p> </div> </blockquote> <p> 聽 </p> <p> No; it needs to be a string (REG_SZ) whose value is "true" (without the quotes) </p> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ipsHide' data-role='reactionBlurb'> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586610' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq586610' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586610' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> <div data-role="memberSignature" class='ipsResponsive_hidePhone ipsBorder_top ipsPadding_vertical'> <div class='ipsType_light ipsType_richText' data-ipsLazyLoad> <p> <span style="font-size:8px;"><em>The Paint.NET Blog: </em></span><a href="https://blog.getpaint.net/" rel="external nofollow"><span style="font-size:8px;"><em>https://blog.getpaint.net/</em></span></a> </p> <p> <span style="font-size:8px;"><em>Donations are always appreciated! </em></span><a href="https://www.getpaint.net/donate.html" rel="external nofollow"><span style="font-size:8px;"><em>https://www.getpaint.net/donate.html</em></span></a> </p> <p> <a href="https://www.getpaint.net/" rel="external nofollow"><img alt="forumSig_bmwE60.jpg" src="https://www.getpaint.net/users/rick/forumSig_teslaS.jpg"></a> </p> </div> </div> </div> </div> </div> </article> <a id="findComment-586611"></a> <a id="comment-586611"></a> <article id="elComment_586611" class="cPost ipsBox ipsResponsive_pull ipsComment ipsComment_parent ipsClearfix ipsClear ipsColumns ipsColumns_noSpacing ipsColumns_collapsePhone "> <div class="cAuthorPane_mobile ipsResponsive_showPhone"> <div class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <a href="https://forums.getpaint.net/profile/142796-olavrb/badges/" rel="nofollow"> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </a> </div> </div> <div class="cAuthorPane_content"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_break ipsType_blendLinks ipsFlex ipsFlex-ai:center"> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a> </h3> <div class="ipsType_light ipsType_reset"> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#findComment-586611" rel="nofollow" class="ipsType_blendLinks">Posted <time datetime='2021-09-23T19:46:29Z' title='09/23/2021 07:46 PM' data-short='3 yr'>September 23, 2021</time></a> </div> </div> </div> <aside class="ipsComment_author cAuthorPane ipsColumn ipsColumn_medium ipsResponsive_hidePhone"> <h3 class="ipsType_sectionHead cAuthorPane_author ipsType_blendLinks ipsType_break"> <strong> <a href='https://forums.getpaint.net/profile/142796-olavrb/' rel="nofollow" data-ipsHover data-ipsHover-width='370' data-ipsHover-target='https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard&referrer=https%253A%252F%252Fforums.getpaint.net%252Ftopic%252F118583-feature-request-set-custom-app-files-plugins-folder%252F' title="Go to olavrb's profile" class="ipsType_break">olavrb</a></strong> </h3> <ul class="cAuthorPane_info ipsList_reset"> <li data-role="photo" class="cAuthorPane_photo"> <div class="cAuthorPane_photoWrap"> <a href="https://forums.getpaint.net/profile/142796-olavrb/" rel="nofollow" data-ipsHover data-ipsHover-width="370" data-ipsHover-target="https://forums.getpaint.net/profile/142796-olavrb/?do=hovercard" class="ipsUserPhoto ipsUserPhoto_large" title="Go to olavrb's profile"> <img src='//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg' alt='olavrb' loading="lazy"> </a> <img src='//media.invisioncic.com/r125076/monthly_2021_06/4_Contributor.svg' loading="lazy" alt="Contributor" class="cAuthorPane_badge cAuthorPane_badge--rank ipsOutline ipsOutline:2px" data-ipsTooltip title="Rank: Contributor (5/14)"> </div> </li> <li data-role="group">Members</li> <li data-role="stats" class="ipsMargin_top"> <ul class="ipsList_reset ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:center ipsGap_row:2 cAuthorPane_stats"> <li> <a href="https://forums.getpaint.net/profile/142796-olavrb/content/" rel="nofollow" title="27 posts" data-ipstooltip class="ipsType_blendLinks"> <i class="fa fa-comment"></i> 27 </a> </li> </ul> </li> </ul> </aside> <div class="ipsColumn ipsColumn_fluid ipsMargin:none"> <div id='comment-586611_wrap' data-controller='core.front.core.comment' data-commentApp='forums' data-commentType='forums' data-commentID="586611" data-quoteData='{"userid":142796,"username":"olavrb","timestamp":1632426389,"contentapp":"forums","contenttype":"forums","contentid":118583,"contentclass":"forums_Topic","contentcommentid":586611}' class='ipsComment_content ipsType_medium'> <div class='ipsComment_meta ipsType_light ipsFlex ipsFlex-ai:center ipsFlex-jc:between ipsFlex-fd:row-reverse'> <div class='ipsType_light ipsType_reset ipsType_blendLinks ipsComment_toolWrap'> <div class='ipsResponsive_hidePhone ipsComment_badges'> <ul class='ipsList_reset ipsFlex ipsFlex-jc:end ipsFlex-fw:wrap ipsGap:2 ipsGap_row:1'> <li><strong class="ipsBadge ipsBadge_large ipsComment_authorBadge">Author</strong></li> </ul> </div> <ul class='ipsList_reset ipsComment_tools'> <li> <a href='#elControls_586611_menu' class='ipsComment_ellipsis' id='elControls_586611' title='More options...' data-ipsMenu data-ipsMenu-appendTo='#comment-586611_wrap'><i class='fa fa-ellipsis-h'></i></a> <ul id='elControls_586611_menu' class='ipsMenu ipsMenu_narrow ipsHide'> </ul> </li> </ul> </div> <div class='ipsType_reset ipsResponsive_hidePhone'> Posted <time datetime='2021-09-23T19:46:29Z' title='09/23/2021 07:46 PM' data-short='3 yr'>September 23, 2021</time> <span class='ipsResponsive_hidePhone'> (edited) </span> </div> </div> <div class='cPost_contentWrap'> <div data-role='commentContent' class='ipsType_normal ipsType_richText ipsPadding_bottom ipsContained' data-controller='core.front.core.lightboxedImages'> <blockquote class="ipsQuote" data-ipsquote="" data-ipsquote-contentapp="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentcommentid="586610" data-ipsquote-contentid="118583" data-ipsquote-contenttype="forums" data-ipsquote-timestamp="1632426272" data-ipsquote-userid="44714" data-ipsquote-username="Rick Brewster"> <div class="ipsQuote_citation"> 2 minutes ago, Rick Brewster said: </div> <div class="ipsQuote_contents"> <p> 聽 </p> <p> No; it needs to be a string (REG_SZ) whose value is "true" (without the quotes) </p> </div> </blockquote> <p> 聽 </p> <p> Ahh. That did it. Sweet. Thank you. <span><img alt=":)" data-emoticon="" height="15" src="//media.invisioncic.com/r125076/emoticons/pdn4icons_boltbait.smile.png" srcset="//media.invisioncic.com/r125076/emoticons/smile@2x.png 2x" title=":)" width="15">聽</span> </p> <p> <a class="ipsAttachLink ipsAttachLink_image" href="//media.invisioncic.com/r125076/monthly_2021_09/Capture.PNG.1894a0763e3ba7fb0d3bcf31bd8ed37e.PNG" data-fileid="19776" data-fileext="PNG" rel=""><img alt="Capture.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="19776" data-ratio="49.88" width="812" src="//media.invisioncic.com/r125076/monthly_2021_09/Capture.PNG.1894a0763e3ba7fb0d3bcf31bd8ed37e.PNG"></a> </p> <p> 聽 </p> <p> Corrected PowerShell if anyone is interested. </p> <p> 聽 </p> <div class="ipsSpoiler" data-ipsspoiler=""> <div class="ipsSpoiler_header"> <span>Spoiler</span> </div> <div class="ipsSpoiler_contents"> <pre class="ipsCode prettyprint lang-c prettyprinted"><span class="com">#Requires -RunAsAdministrator</span><span class="pln"> </span><span class="com">#Requires -Version 5.1</span><span class="pln"> </span><span class="pun"><#</span><span class="pln"> </span><span class="pun">.</span><span class="pln">SYNOPSIS </span><span class="typ">Sets</span><span class="pln"> additional plugin directories </span><span class="kwd">for</span><span class="pln"> </span><span class="typ">Paint</span><span class="pun">.</span><span class="pln">NET </span><span class="pun">.</span><span class="pln">NOTES </span><span class="typ">Author</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Olav</span><span class="pln"> R</span><span class="pun">酶</span><span class="pln">nnestad </span><span class="typ">Birkeland</span><span class="pln"> </span><span class="typ">Created</span><span class="pun">:</span><span class="pln"> </span><span class="lit">210923</span><span class="pln"> </span><span class="typ">Modified</span><span class="pun">:</span><span class="pln"> </span><span class="lit">210923</span><span class="pln"> </span><span class="pun">.</span><span class="pln">EXAMPLE </span><span class="pun">&</span><span class="pln"> $psISE</span><span class="pun">.</span><span class="str">'CurrentFile'</span><span class="pun">.</span><span class="str">'FullPath'</span><span class="pln"> </span><span class="com">#></span><span class="pln"> </span><span class="com"># Input parameters</span><span class="pln"> </span><span class="pun">[</span><span class="typ">OutputType</span><span class="pun">(</span><span class="pln">$null</span><span class="pun">)]</span><span class="pln"> </span><span class="typ">Param</span><span class="pun">()</span><span class="pln"> </span><span class="com"># PowerShell preferences</span><span class="pln"> $ErrorActionPreference </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Stop'</span><span class="pln"> $InformationPreference </span><span class="pun">=</span><span class="pln"> </span><span class="str">'Continue'</span><span class="pln"> </span><span class="com"># Assets</span><span class="pln"> $RegistryValues </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\paint.net'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Plugins/AllowAdditionalPluginDirectoryRoots'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">string</span><span class="pun">]</span><span class="pln"> </span><span class="str">'true'</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="str">'Registry::HKEY_CURRENT_USER\SOFTWARE\paint.net'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">ordered</span><span class="pun">]@{</span><span class="pln"> </span><span class="str">'Plugins/AdditionalPluginDirectoryRoots'</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">string</span><span class="pun">](</span><span class="pln"> </span><span class="str">'{0}\_Share\AppData\Paint.net\AppFiles'</span><span class="pln"> </span><span class="pun">-</span><span class="pln">f $env</span><span class="pun">:</span><span class="typ">OneDriveConsumer</span><span class="pln"> </span><span class="pun">)</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="com"># Set registry values</span><span class="pln"> $RegistryValues</span><span class="pun">.</span><span class="typ">GetEnumerator</span><span class="pun">().</span><span class="typ">ForEach</span><span class="pun">{</span><span class="pln"> $Path </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">string</span><span class="pun">]</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Name'</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(-</span><span class="pln">not </span><span class="pun">(</span><span class="typ">Test</span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">PathType</span><span class="pln"> </span><span class="str">'Container'</span><span class="pun">))</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> $null </span><span class="pun">=</span><span class="pln"> </span><span class="typ">New</span><span class="pun">-</span><span class="typ">Item</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">ItemType</span><span class="pln"> </span><span class="str">'Directory'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Force</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Value'</span><span class="pun">.</span><span class="typ">GetEnumerator</span><span class="pun">().</span><span class="typ">ForEach</span><span class="pun">{</span><span class="pln"> $null </span><span class="pun">=</span><span class="pln"> </span><span class="typ">Set</span><span class="pun">-</span><span class="typ">ItemProperty</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Path</span><span class="pln"> $Path </span><span class="pun">-</span><span class="typ">Name</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Name'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Value</span><span class="pln"> $_</span><span class="pun">.</span><span class="str">'Value'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Type</span><span class="pln"> </span><span class="str">'String'</span><span class="pln"> </span><span class="pun">-</span><span class="typ">Force</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">}</span></pre> <p> 聽 </p> </div> </div> <p> 聽 </p> <span class='ipsType_reset ipsType_medium ipsType_light' data-excludequote> <strong>Edited <time datetime='2021-09-23T19:47:47Z' title='09/23/2021 07:47 PM' data-short='3 yr'>September 23, 2021</time> by olavrb</strong> </span> </div> <div class='ipsItemControls'> <div data-controller='core.front.core.reaction' class='ipsItemControls_right ipsClearfix '> <div class='ipsReact ipsPos_right'> <div class='ipsReact_blurb ' data-role='reactionBlurb'> <ul class='ipsReact_reactions'> <li class='ipsReact_reactCount'> <span data-ipsTooltip title="Like"> <span> <img src='//media.invisioncic.com/r125076/reactions/react_like.png' alt="Like" loading="lazy"> </span> <span> 1 </span> </span> </li> </ul> </div> </div> </div> <ul class='ipsComment_controls ipsClearfix ipsItemControls_left' data-role="commentControls"> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586611' class='ipsJS_show'> <button class='ipsButton ipsButton_light ipsButton_verySmall ipsButton_narrow cMultiQuote ipsHide' data-action='multiQuoteComment' data-ipsTooltip data-ipsQuote-multiQuote data-mqId='mq586611' title='MultiQuote'><i class='fa fa-plus'></i></button> </li> <li data-ipsQuote-editor='topic_comment' data-ipsQuote-target='#comment-586611' class='ipsJS_show'> <a href='#' data-action='quoteComment' data-ipsQuote-singleQuote>Quote</a> </li> <li> <!-- --></li> <li class='ipsHide' data-role='commentLoading'> <span class='ipsLoading ipsLoading_tiny ipsLoading_noAnim'></span> </li> </ul> </div> </div> </div> </div> </article> <input type="hidden" name="csrfKey" value="3a9202e24f251c6e1ce19b587b55a730" /> </form> <script> // Add copy button to code blocks document.querySelectorAll("pre.ipsCode").forEach(preElement => { const copyButton = document.createElement("button"); copyButton.type = "button"; copyButton.dataset.ipstooltip = ""; copyButton.setAttribute("_title", "Copy to clipboard"); copyButton.classList.add("ipsButton", "ipsButton_veryLight", "ipsPos_right"); copyButton.addEventListener("click", (e) => { const codeToCopy = Array.from(preElement.childNodes).slice(1).map(x => x.textContent).join(""); navigator.clipboard.writeText(codeToCopy).then( () => { ips.ui.flashMsg.show("Copied to clipboard"); }, (error) => { ips.ui.flashMsg.show(error.message); console.error(error); } ); }); const faSpan = document.createElement("span"); faSpan.classList.add("fa", "fa-copy"); copyButton.appendChild(faSpan); preElement.insertAdjacentElement("afterbegin", copyButton); }); // fix up forumer links Array.from(document.links) .filter(anchor => anchor.host === "paintdotnet.12.forumer.com" || anchor.host === "paintdotnet.forumer.com") .forEach(anchor => { if (anchor.host === "paintdotnet.12.forumer.com") { anchor.host = "paintdotnet.forumer.com"; } const waybackParams = new URLSearchParams(); waybackParams.append("url", anchor.href); waybackParams.append("status_code", "200"); const waybackUrl = "https://archive.org/wayback/available?" + waybackParams.toString(); fetch(waybackUrl) .then(waybackResponse => waybackResponse.json()) .then(waybackJson => { if (waybackJson.archived_snapshots.closest) { anchor.href = waybackJson.archived_snapshots.closest.url; anchor.protocol = "https:"; } else { // Was not found in Archive; link to a page that says this anchor.href = "https://web.archive.org/web/*/" + anchor.href; anchor.classList.add("not-archived"); } }) .catch(err => { console.error("Error with Wayback API -", err); // Something went wrong; Change link at minimum anchor.href = "https://web.archive.org/web/*/" + anchor.href; }); }); // Attempt to fix broken images function fixBrokenImage(img) { function fixBrokenImageImpl(img, newSrc) { // fix broken image img.src = newSrc; // if image is in a lightbox, fix that link too if (img.parentElement.tagName == "A" && img.parentElement.attributes.getNamedItem("data-ipslightbox")) { img.parentElement.href = newSrc; } } if (img.src.includes('.postimg.org')) { fixBrokenImageImpl(img, img.src.replace('.postimg.org', '.postimg.cc')); } else { const waybackParams = new URLSearchParams(); waybackParams.append("url", img.src); waybackParams.append("status_code", "200"); const waybackUrl = "https://archive.org/wayback/available?" + waybackParams.toString(); fetch(waybackUrl) .then(waybackResponse => waybackResponse.json()) .then(waybackJson => { if (waybackJson.archived_snapshots.closest) { // Wayback returns http URLs; change to https const archivedUrl = new URL(waybackJson.archived_snapshots.closest.url); archivedUrl.protocol = "https:" fixBrokenImageImpl(img, archivedUrl.toString()); } }) .catch(err => { console.error(err); }); } }; Array.from(document.images) .filter(img => !img.src.includes("invisioncic.com") && !img.src.includes("forums.getpaint.net") && !img.src.startsWith("data:")) .forEach(img => { if (img.complete) { if (img.naturalHeight == 0 && img.naturalWidth == 0) { fixBrokenImage(img); } } else { img.addEventListener("error", (event) => fixBrokenImage(img), {once: true}); } }); </script> </div> <a id='replyForm'></a> <div data-role='replyArea' class='cTopicPostArea ipsBox ipsResponsive_pull ipsPadding ipsSpacer_top' > <div class='ipsPadding_bottom ipsBorder_bottom ipsMargin_bottom cGuestTeaser'> <h2 class='ipsType_pageTitle'>Join the conversation</h2> <p class='ipsType_normal ipsType_reset'> You can post now and register later. If you have an account, <a class='ipsType_brandedLink' href='https://forums.getpaint.net/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>sign in now</a> to post with your account. </p> </div> <form accept-charset='utf-8' class="ipsForm ipsForm_vertical" action="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" method="post" enctype="multipart/form-data"> <input type="hidden" name="commentform_118583_submitted" value="1"> <input type="hidden" name="csrfKey" value="3a9202e24f251c6e1ce19b587b55a730"> <input type="hidden" name="_contentReply" value="1"> <input type="hidden" name="captcha_field" value="1"> <input type="hidden" name="MAX_FILE_SIZE" value="20971520"> <input type="hidden" name="plupload" value="9774cf71ef1ca7a454d1bb583cc3205c"> <div class='ipsComposeArea ipsComposeArea_withPhoto ipsClearfix ipsContained'> <div data-role='whosTyping' class='ipsHide ipsMargin_bottom'></div> <div class='ipsPos_left ipsResponsive_hidePhone ipsResponsive_block'> <span class='ipsUserPhoto ipsUserPhoto_small '> <img src='//media.invisioncic.com/r125076/set_resources_1/84c1e40ea0e759e3f1505eb1788ddf3c_default_photo.png' alt='Guest' loading="lazy"> </span> </div> <div class='ipsComposeArea_editor'> <ul class='ipsForm ipsForm_horizontal ipsMargin_bottom:half' data-ipsEditor-toolList> <li class='ipsFieldRow ipsFieldRow_fullWidth'> <input type="email" name="guest_email" id="elInput_guest_email" aria-required='true' placeholder='Enter your email address (this is not shown to other users)' autocomplete="email" > </li> </ul> <div class='ipsType_normal ipsType_richText ipsType_break' data-ipsEditor data-ipsEditor-controller="https://forums.getpaint.net/index.php?app=core&module=system&controller=editor" data-ipsEditor-minimized data-ipsEditor-toolbars='{"desktop":[{"name":"row1","items":["Bold","Italic","Underline","Strike","RemoveFormat","-","ipsLink","Ipsquote","ipsCode","Ipsspoiler","ipsEmoticon","-","BulletedList","NumberedList","-","JustifyLeft","JustifyCenter","JustifyBlock","JustifyRight","Indent","Outdent","-","TextColor","Font","FontSize","-","custom-192826d668d3de9477c044d435030675","custom-08d0c4d7ebc06a5001ab48cd0f588db6","custom-c58d777a3d40ede607fce6c52b764773","custom-8e6b11bc45cf6ba7d5586d3d222d1335","-","ipsPreview","-"]},"\/"],"tablet":[{"name":"row1","items":["Bold","Italic","Underline","-","ipsLink","Ipsquote","ipsEmoticon","-","BulletedList","NumberedList","-","ipsPreview"]},"\/"],"phone":[{"name":"row1","items":["Bold","Italic","Underline","-","ipsEmoticon","-","ipsLink","-","ipsPreview"]},"\/"]}' data-ipsEditor-extraPlugins='custom-08d0c4d7ebc06a5001ab48cd0f588db6,custom-8e6b11bc45cf6ba7d5586d3d222d1335,custom-daa00eaff2dbc9f05a5d2fa01656b4f7,custom-2a862e93961e904a2177b46529e12542,custom-ebd5bdea970784d57c46767b3a0e5a69,codemirror,table,custom-bb7df7677533c90f591a52c2d1f330b0,custom-b0b7ead758475de9045d6ca0015fc72b' data-ipsEditor-postKey="ede8dd1b6d8b90996084cb1a4880ce4c" data-ipsEditor-autoSaveKey="reply-forums/forums-118583" data-ipsEditor-skin="ips" data-ipsEditor-name="topic_comment_118583" data-ipsEditor-pasteBehaviour='rich' data-ipsEditor-ipsPlugins="ipsautolink,ipsautosave,ipsctrlenter,ipscode,ipscontextmenu,ipsemoticon,ipsimage,ipslink,ipsmentions,ipspage,ipspaste,ipsquote,ipsspoiler,ipsautogrow,ipssource,removeformat,ipspreview,ipsstockreplies" data-ipsEditor-contentClass='IPS\forums\Topic' data-ipsEditor-contentId='118583'> <div data-role='editorComposer'> <noscript> <textarea name="topic_comment_118583_noscript" rows="15"></textarea> </noscript> <div class="ipsHide norewrite" data-role="mainEditorArea"> <textarea name="topic_comment_118583" data-role='contentEditor' class="ipsHide" tabindex='1'></textarea> </div> <div class='ipsComposeArea_dummy ipsJS_show' tabindex='1'><i class='fa fa-comment-o'></i> Reply to this topic...</div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="pasteMessage"> <p class='ipsType_reset ipsPad_half'> <a class="ipsPos_right ipsType_normal ipsCursor_pointer ipsComposeArea_editorPasteSwitch" data-action="keepPasteFormatting" title='Keep formatting' data-ipsTooltip>×</a> <i class="fa fa-info-circle"></i> Pasted as rich text. <a class='ipsCursor_pointer' data-action="removePasteFormatting">Paste as plain text instead</a> </p> </div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="emoticonMessage"> <p class='ipsType_reset ipsPad_half'> <i class="fa fa-info-circle"></i> Only 75 emoji are allowed. </p> </div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="embedMessage"> <p class='ipsType_reset ipsPad_half'> <a class="ipsPos_right ipsType_normal ipsCursor_pointer ipsComposeArea_editorPasteSwitch" data-action="keepEmbeddedMedia" title='Keep embedded content' data-ipsTooltip>×</a> <i class="fa fa-info-circle"></i> Your link has been automatically embedded. <a class='ipsCursor_pointer' data-action="removeEmbeddedMedia">Display as a link instead</a> </p> </div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="embedFailMessage"> <p class='ipsType_reset ipsPad_half'> </p> </div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="autoSaveRestoreMessage"> <p class='ipsType_reset ipsPad_half'> <a class="ipsPos_right ipsType_normal ipsCursor_pointer ipsComposeArea_editorPasteSwitch" data-action="keepRestoredContents" title='Keep restored contents' data-ipsTooltip>×</a> <i class="fa fa-info-circle"></i> Your previous content has been restored. <a class='ipsCursor_pointer' data-action="clearEditorContents">Clear editor</a> </p> </div> <div class="ipsHide ipsComposeArea_editorPaste" data-role="imageMessage"> <p class='ipsType_reset ipsPad_half'> <a class="ipsPos_right ipsType_normal ipsCursor_pointer ipsComposeArea_editorPasteSwitch" data-action="removeImageMessage">×</a> <i class="fa fa-info-circle"></i> You cannot paste images directly. Upload or insert images from URL. </p> </div> <div data-ipsEditor-toolList class="ipsAreaBackground_light ipsClearfix"> <div data-role='attachmentArea'> <div class="ipsComposeArea_dropZone ipsComposeArea_dropZoneSmall ipsClearfix ipsClearfix" id='elEditorDrop_topic_comment_118583'> <div> <ul class='ipsList_inline ipsClearfix'> <div> <ul class='ipsList_inline ipsClearfix'> <li class='ipsPos_right'> <a class="ipsButton ipsButton_veryLight ipsButton_verySmall" href='#' data-ipsDialog data-ipsDialog-forceReload data-ipsDialog-title='Insert image from URL' data-ipsDialog-url="https://forums.getpaint.net/index.php?app=core&module=system&controller=editor&do=link&image=1&postKey=ede8dd1b6d8b90996084cb1a4880ce4c&editorId=topic_comment_118583&csrfKey=3a9202e24f251c6e1ce19b587b55a730">Insert image from URL</a></li> </li> </ul> </div> </ul> </div> </div> </div> </div> </div> <div data-role='editorPreview' class='ipsHide'> <div class='ipsAreaBackground_light ipsPad_half' data-role='previewToolbar'> <a href='#' class='ipsPos_right' data-action='closePreview' title='Return to editing mode' data-ipsTooltip>×</a> <ul class='ipsButton_split'> <li data-action='resizePreview' data-size='desktop'><a href='#' title='View at approximate desktop size' data-ipsTooltip class='ipsButton ipsButton_verySmall ipsButton_primary'>Desktop</a></li> <li data-action='resizePreview' data-size='tablet'><a href='#' title='View at approximate tablet size' data-ipsTooltip class='ipsButton ipsButton_verySmall ipsButton_light'>Tablet</a></li> <li data-action='resizePreview' data-size='phone'><a href='#' title='View at approximate phone size' data-ipsTooltip class='ipsButton ipsButton_verySmall ipsButton_light'>Phone</a></li> </ul> </div> <div data-role='previewContainer' class='ipsAreaBackground ipsType_center'></div> </div> </div> <ul class='ipsToolList ipsToolList_horizontal ipsClear ipsClearfix ipsJS_hide' data-ipsEditor-toolList> <li class='ipsPos_left ipsResponsive_noFloat ipsType_medium ipsType_light'> <div data-ipsCaptcha data-ipsCaptcha-service='recaptcha_invisible' data-ipsCaptcha-key="6LcH7UEUAAAAAIGWgOoyBKAqjLmOIKzfJTOjyC7z" data-ipsCaptcha-lang="en_US"> <noscript> <div style="width: 302px; height: 352px;"> <div style="width: 302px; height: 352px; position: relative;"> <div style="width: 302px; height: 352px; position: absolute;"> <iframe src="https://www.google.com/recaptcha/api/fallback?k=6LcH7UEUAAAAAIGWgOoyBKAqjLmOIKzfJTOjyC7z" style="width: 302px; height:352px; border-style: none;"> </iframe> </div> <div style="width: 250px; height: 80px; position: absolute; border-style: none; bottom: 21px; left: 25px; margin: 0px; padding: 0px; right: 25px;"> <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 80px; border: 1px solid #c1c1c1; margin: 0px; padding: 0px; resize: none;"></textarea> </div> </div> </div> </noscript> </div> </li> <li> <button type="submit" class="ipsButton ipsButton_primary" tabindex="2" accesskey="s" role="button">Submit Reply</button> </li> </ul> </div> </div> </form> </div> <div class='ipsBox ipsPadding ipsResponsive_pull ipsResponsive_showPhone ipsMargin_top'> <div class='ipsShareLinks'> <a href='#elShareItem_1663774167_menu' id='elShareItem_1663774167' data-ipsMenu class='ipsShareButton ipsButton ipsButton_verySmall ipsButton_light '> <span><i class='fa fa-share-alt'></i></span> Share </a> <div class='ipsPadding ipsMenu ipsMenu_normal ipsHide' id='elShareItem_1663774167_menu' data-controller="core.front.core.sharelink"> <span data-ipsCopy data-ipsCopy-flashmessage> <a href="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" class="ipsButton ipsButton_light ipsButton_small ipsButton_fullWidth" data-role="copyButton" data-clipboard-text="https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" data-ipstooltip title='Copy Link to Clipboard'><i class="fa fa-clone"></i> https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/</a> </span> <ul class='ipsShareLinks ipsMargin_top:half'> <li> <a href="https://x.com/share?url=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" class="cShareLink cShareLink_x" target="_blank" data-role="shareLink" title='Share on X' data-ipsTooltip rel='nofollow noopener'> <i class="fa fa-x"></i> </a></li> <li> <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" class="cShareLink cShareLink_facebook" target="_blank" data-role="shareLink" title='Share on Facebook' data-ipsTooltip rel='noopener nofollow'> <i class="fa fa-facebook"></i> </a></li> <li> <a href="https://www.reddit.com/submit?url=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F&title=%5BFeature+request%5D+Set+custom+app+files+%28plugins%29+folder" rel="nofollow noopener" class="cShareLink cShareLink_reddit" target="_blank" title='Share on Reddit' data-ipsTooltip> <i class="fa fa-reddit"></i> </a></li> <li> <a href="mailto:?subject=%5BFeature%20request%5D%20Set%20custom%20app%20files%20%28plugins%29%20folder&body=https%3A%2F%2Fforums.getpaint.net%2Ftopic%2F118583-feature-request-set-custom-app-files-plugins-folder%2F" rel='nofollow' class='cShareLink cShareLink_email' title='Share via email' data-ipsTooltip> <i class="fa fa-envelope"></i> </a></li> <li> <a href="https://pinterest.com/pin/create/button/?url=https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/&media=" class="cShareLink cShareLink_pinterest" rel="nofollow noopener" target="_blank" data-role="shareLink" title='Share on Pinterest' data-ipsTooltip> <i class="fa fa-pinterest"></i> </a></li> </ul> <hr class='ipsHr'> <button class='ipsHide ipsButton ipsButton_verySmall ipsButton_light ipsButton_fullWidth ipsMargin_top:half' data-controller='core.front.core.webshare' data-role='webShare' data-webShareTitle='[Feature request] Set custom app files (plugins) folder' data-webShareText='[Feature request] Set custom app files (plugins) folder' data-webShareUrl='https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/'>More sharing options...</button> </div> <!-- --> <div data-followApp='forums' data-followArea='topic' data-followID='118583' data-controller='core.front.core.followButton'> <a href='https://forums.getpaint.net/login/' rel="nofollow" class="ipsFollow ipsPos_middle ipsButton ipsButton_light ipsButton_verySmall ipsButton_disabled" data-role="followButton" data-ipsTooltip title='Sign in to follow this'> <span>Followers</span> <span class='ipsCommentCount'>0</span> </a> </div> </div> </div> </div> <div class='ipsPager ipsSpacer_top'> <div class="ipsPager_prev"> <a href="https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/" title="Go to Paint.NET Discussion and Questions" rel="parent"> <span class="ipsPager_type">Go to topic listing</span> </a> </div> </div> </div> <nav class='ipsBreadcrumb ipsBreadcrumb_bottom ipsFaded_withHover'> <ul class='ipsList_inline ipsPos_right'> <li > <a data-action="defaultStream" class='ipsType_light ' href='https://forums.getpaint.net/discover/'><i class="fa fa-newspaper-o" aria-hidden="true"></i> <span>All Activity</span></a> </li> </ul> <ul data-role="breadcrumbList"> <li> <a title="Home" href='https://forums.getpaint.net/'> <span>Home <i class='fa fa-angle-right'></i></span> </a> </li> <li> <a href='https://forums.getpaint.net/forum/13-paintnet/'> <span>Paint.NET <i class='fa fa-angle-right' aria-hidden="true"></i></span> </a> </li> <li> <a href='https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/'> <span>Paint.NET Discussion and Questions <i class='fa fa-angle-right' aria-hidden="true"></i></span> </a> </li> <li> [Feature request] Set custom app files (plugins) folder </li> </ul> </nav> </div> </div> </main> <footer id='ipsLayout_footer' class='ipsClearfix'> <div class='ipsLayout_container'> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- Forums, Below Nav, 728x90, created 4/17/10 --> <ins class="adsbygoogle" style="display:inline-block;width:728px;height:90px" data-ad-client="ca-pub-4343851330510276" data-ad-slot="8650545473"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <ul class='ipsList_inline ipsType_center ipsSpacer_top' id="elFooterLinks"> <li> <a href='#elNavTheme_menu' id='elNavTheme' data-ipsMenu data-ipsMenu-above>Theme <i class='fa fa-caret-down'></i></a> <ul id='elNavTheme_menu' class='ipsMenu ipsMenu_selectable ipsHide'> <li class='ipsMenu_item ipsMenu_itemChecked'> <form action="//forums.getpaint.net/theme/?csrfKey=3a9202e24f251c6e1ce19b587b55a730" method="post"> <input type="hidden" name="ref" value="aHR0cHM6Ly9mb3J1bXMuZ2V0cGFpbnQubmV0L3RvcGljLzExODU4My1mZWF0dXJlLXJlcXVlc3Qtc2V0LWN1c3RvbS1hcHAtZmlsZXMtcGx1Z2lucy1mb2xkZXIv"> <button type='submit' name='id' value='1' class='ipsButton ipsButton_link ipsButton_link_secondary'>Default (Default)</button> </form> </li> <li class='ipsMenu_item'> <form action="//forums.getpaint.net/theme/?csrfKey=3a9202e24f251c6e1ce19b587b55a730" method="post"> <input type="hidden" name="ref" value="aHR0cHM6Ly9mb3J1bXMuZ2V0cGFpbnQubmV0L3RvcGljLzExODU4My1mZWF0dXJlLXJlcXVlc3Qtc2V0LWN1c3RvbS1hcHAtZmlsZXMtcGx1Z2lucy1mb2xkZXIv"> <button type='submit' name='id' value='4' class='ipsButton ipsButton_link ipsButton_link_secondary'>Dark </button> </form> </li> <li class='ipsMenu_item'> <form action="//forums.getpaint.net/theme/?csrfKey=3a9202e24f251c6e1ce19b587b55a730" method="post"> <input type="hidden" name="ref" value="aHR0cHM6Ly9mb3J1bXMuZ2V0cGFpbnQubmV0L3RvcGljLzExODU4My1mZWF0dXJlLXJlcXVlc3Qtc2V0LWN1c3RvbS1hcHAtZmlsZXMtcGx1Z2lucy1mb2xkZXIv"> <button type='submit' name='id' value='5' class='ipsButton ipsButton_link ipsButton_link_secondary'>Goodnight Nurse </button> </form> </li> </ul> </li> <li><a rel="nofollow" href='https://forums.getpaint.net/cookies/'>Cookies</a></li> <!-- Added by EER 5 Sept 2020. += top of page and home links --> <li><a href=# class='ipsType_light' style="font-size:14px;" title="Return to the top of this page"><i class='fa fa-arrow-circle-up'> </i>Top of page</a></li> <li><a href='https://forums.getpaint.net/' title="Return to the Forum home page"> <span ><i class='fa fa-home'></i> Home </span></a></li> </ul> <p id='elCopyright'> <span id='elCopyright_userLine'></span> <a rel='nofollow' title='Invision Community' href='https://www.invisioncommunity.com/'>Powered by Invision Community</a> </p> </div> </footer> <div id='elMobileDrawer' class='ipsDrawer ipsHide'> <div class='ipsDrawer_menu'> <a href='#' class='ipsDrawer_close' data-action='close'><span>×</span></a> <div class='ipsDrawer_content ipsFlex ipsFlex-fd:column'> <div class='ipsPadding ipsBorder_bottom'> <ul class='ipsToolList ipsToolList_vertical'> <li> <a href='https://forums.getpaint.net/login/' id='elSigninButton_mobile' class='ipsButton ipsButton_light ipsButton_small ipsButton_fullWidth'>Existing user? Sign In</a> </li> <li> <a href='https://forums.getpaint.net/register/' id='elRegisterButton_mobile' class='ipsButton ipsButton_small ipsButton_fullWidth ipsButton_important'>Sign Up</a> </li> </ul> </div> <ul class='ipsDrawer_list ipsFlex-flex:11'> <li class='ipsDrawer_itemParent'> <h4 class='ipsDrawer_title'><a href='#'>Browse</a></h4> <ul class='ipsDrawer_list'> <li data-action="back"><a href='#'>Back</a></li> <li> <a href='https://forums.getpaint.net' > Forums </a> </li> <li> <a href='http://forums.getpaint.net/index.php?/topic/2932-read-first-the-rules-yes-you-read-this-2010-3-15/' > Guidelines </a> </li> <li> <a href='https://forums.getpaint.net/staff/' > Staff </a> </li> </ul> </li> <li class='ipsDrawer_itemParent'> <h4 class='ipsDrawer_title'><a href='#'>Activity</a></h4> <ul class='ipsDrawer_list'> <li data-action="back"><a href='#'>Back</a></li> <li> <a href='https://forums.getpaint.net/discover/' > All Activity </a> </li> <li> <a href='https://forums.getpaint.net/search/' > Search </a> </li> </ul> </li> <li><a href='https://forums.getpaint.net/leaderboard/' >Leaderboard</a></li> </ul> </div> </div> </div> <div id='elMobileCreateMenuDrawer' class='ipsDrawer ipsHide'> <div class='ipsDrawer_menu'> <a href='#' class='ipsDrawer_close' data-action='close'><span>×</span></a> <div class='ipsDrawer_content ipsSpacer_bottom ipsPad'> <ul class='ipsDrawer_list'> <li class="ipsDrawer_listTitle ipsType_reset">Create New...</li> </ul> </div> </div> </div> <script type='text/javascript'> var ipsDebug = false; var CKEDITOR_BASEPATH = '//forums.getpaint.net/applications/core/interface/ckeditor/ckeditor/'; var ipsSettings = { cookie_path: "/", cookie_prefix: "ips4_", cookie_ssl: true, essential_cookies: ["oauth_authorize","member_id","login_key","clearAutosave","lastSearch","device_key","IPSSessionFront","loggedIn","noCache","hasJS","cookie_consent","cookie_consent_optional","forumpass_*"], upload_imgURL: "", message_imgURL: "", notification_imgURL: "", baseURL: "//forums.getpaint.net/", jsURL: "//forums.getpaint.net/applications/core/interface/js/js.php", csrfKey: "3a9202e24f251c6e1ce19b587b55a730", antiCache: "d815db93211733131667", jsAntiCache: "d815db93211734080325", disableNotificationSounds: true, useCompiledFiles: true, links_external: true, memberID: 0, lazyLoadEnabled: false, blankImg: "//forums.getpaint.net/applications/core/interface/js/spacer.png", googleAnalyticsEnabled: false, matomoEnabled: false, viewProfiles: true, mapProvider: 'none', mapApiKey: '', pushPublicKey: "BDyKvPnAy62__UxpsU0_nsFZL22Qm9kkWSTGlTM61DkRZ0psMy1kF5_8gpEldqBWvNXM627bXt6PvvWh344YEKk", relativeDates: true }; ipsSettings['maxImageDimensions'] = { width: 1000, height: 750 }; </script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_global/root_library.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_global/root_js_lang_1.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_global/root_framework.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_core/global_global_core.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_global/root_front.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_core/front_front_core.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_forums/front_front_topic.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_cloud/front_front_realtime.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_cloud/front_app.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript' src='//media.invisioncic.com/r125076/javascript_global/root_map.js?v=d815db93211734080325' data-ips></script> <script type='text/javascript'> ips.setSetting( 'date_format', jQuery.parseJSON('"mm\/dd\/yy"') ); ips.setSetting( 'date_first_day', jQuery.parseJSON('0') ); ips.setSetting( 'ipb_url_filter_option', jQuery.parseJSON('"black"') ); ips.setSetting( 'url_filter_any_action', jQuery.parseJSON('"allow"') ); ips.setSetting( 'bypass_profanity', jQuery.parseJSON('0') ); ips.setSetting( 'emoji_style', jQuery.parseJSON('"native"') ); ips.setSetting( 'emoji_shortcodes', jQuery.parseJSON('true') ); ips.setSetting( 'emoji_ascii', jQuery.parseJSON('true') ); ips.setSetting( 'emoji_cache', jQuery.parseJSON('1680665776') ); ips.setSetting( 'image_jpg_quality', jQuery.parseJSON('85') ); ips.setSetting( 'cloud2', jQuery.parseJSON('true') ); ips.setSetting( 'isAnonymous', jQuery.parseJSON('false') ); ips.setSetting( 'features', {"analytics_full":false} ); </script> <script type='application/ld+json'> { "name": "[Feature request] Set custom app files (plugins) folder", "headline": "[Feature request] Set custom app files (plugins) folder", "text": "I use Paint.NET on multiple machines where I put app files (plugins) in my personal OneDrive, so I don\u0027t have to maintain this manually on all the devices.\n \n\n\n\t\u00a0\n \n\n\n\tFor machines without Known Folder Move (KFM) with OneDrive for Business, it has worked fine to create a directory symbolic link from\u00a0\"%USERPROFILE%\\Documents\\Paint.NET App Files\" to\u00a0\"%ONEDRIVECONSUMER%\\_Share\\AppData\\Paint.net\\AppFiles\", where I have the folders \"Effects\", \"FileTypes\" and \"Shapes\".\n \n\n\n\t\tThe \"_Share\" folder in my OneDrive is set to always be available offline, so no \"Files on-deman\" causing issues here.\n\t \n\t\n\t\tRunning\u00a0v4.2.16 from Microsoft Store, but don\u0027t think that\u0027s relevant here.\n\t \n\t\n\t\tHere is the CMD (as admin) command I used, if anyone is interested:\n\t\tmklink /D \"%USERPROFILE%\\Documents\\Paint.NET App Files\" \"%ONEDRIVECONSUMER%\\_Share\\AppData\\Paint.net\\AppFiles\"\n\n\t\t\n\t\t\t\u00a0\n\t\t \n\t \n\n\tI think this failed this time due to my company using known folder move (KFM) with OneDrive for Business, as I see Paint.NET have created a \"paint.net App Files\" folder inside \"%ONEDRIVECOMMERCIAL%\\Documents\". But symbolic linking from one OneDrive to another makes changes one place being uploaded to both OneDrives, so I\u0027d rather avoid that if I could.\n \n\n\n\t\u00a0\n \n\n\n\tThen I thought: It would be nice if it was possible to set a different directory for Paint.NET app files. Then I could just set this settings to the folder in my OneDrive.\n \n", "dateCreated": "2021-08-29T10:30:20+0000", "datePublished": "2021-08-29T10:30:20+0000", "dateModified": "2021-09-23T19:46:29+0000", "image": "//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg", "author": { "@type": "Person", "name": "olavrb", "image": "//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg", "url": "https://forums.getpaint.net/profile/142796-olavrb/" }, "interactionStatistic": [ { "@type": "InteractionCounter", "interactionType": "http://schema.org/ViewAction", "userInteractionCount": 18000 }, { "@type": "InteractionCounter", "interactionType": "http://schema.org/CommentAction", "userInteractionCount": 7 }, { "@type": "InteractionCounter", "interactionType": "http://schema.org/FollowAction", "userInteractionCount": 0 } ], "@context": "http://schema.org", "@type": "DiscussionForumPosting", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/", "isPartOf": { "@id": "https://forums.getpaint.net/#website" }, "publisher": { "@id": "https://forums.getpaint.net/#organization", "member": { "@type": "Person", "name": "olavrb", "image": "//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg", "url": "https://forums.getpaint.net/profile/142796-olavrb/" } }, "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/", "discussionUrl": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/" }, "pageStart": 1, "pageEnd": 1, "comment": [ { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-585911", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-585911", "author": { "@type": "Person", "name": "Rick Brewster", "image": "//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png", "url": "https://forums.getpaint.net/profile/44714-rick-brewster/" }, "dateCreated": "2021-08-29T16:50:48+0000", "text": "I looked into this, as I got several request for it when I added the\u00a0paint.net App Files\u00a0plugin loading. IIRC, I couldn\u0027t find a good API for determining the right OneDrive folder. Maybe I\u0027m remembering wrong.\n \n\n\n\t\u00a0\n \n\n\n\tDoes anyone know what OneDrive API to use the get the location(s) of its folder(s)? Or maybe it\u0027s just the %ONEDRIVE*% environment variables...\n \n", "upvoteCount": 0 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-585924", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-585924", "author": { "@type": "Person", "name": "Ego Eram Reputo", "image": "//media.invisioncic.com/r125076/profile/photo-thumb-48727.jpg", "url": "https://forums.getpaint.net/profile/48727-ego-eram-reputo/" }, "dateCreated": "2021-08-30T03:06:19+0000", "text": "Woah. I did not realize you could do that. \u0026lt;/impressed\u0026gt; \ud83e\udd2f\n \n", "upvoteCount": 0 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586013", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586013", "author": { "@type": "Person", "name": "Rick Brewster", "image": "//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png", "url": "https://forums.getpaint.net/profile/44714-rick-brewster/" }, "dateCreated": "2021-09-03T01:31:03+0000", "text": "I think I\u0027ve come up with a workable solution that isn\u0027t also a Lovecraftian security disaster waiting to happen.\n \n\n\n\t\u00a0\n \n\n\n\tThe problem with adding the ability to install/load plugins via OneDrive is that a remote attacker/hacker who got control of your OneDrive account could literally push malware onto your system. No need to get access to your physical system, they could be anywhere in the world. So, this definitely can\u0027t be enabled by default.\n \n\n\n\t\u00a0\n \n\n\n\tHere\u0027s what I\u0027m implementing for 4.3, which involves 2 registry keys (there\u0027s no UI for this):\n \n\n\n\t\tSet HKEY_LOCAL_MACHINE \\ Software \\ paint.net \\ \"Plugins/AllowAdditionalPluginDirectoryRoots\" (without the quotes) to\u00a0true (as a string / REG_SZ).\n\t \n\t\n\t\tSet\u00a0HKEY_CURRENT_USER \\ Software \\ paint.net \\ \"Plugins/AdditionalPluginDirectoryRoots\"\u00a0to a semicolon-delimited list of directories (just like setting PATH). Within those directories you can then create the usual subdirectories of\u00a0FileTypes, Effects, and Shapes. You can use environment variables here, so\u00a0something like\u00a0%OneDrive%\\Documents\\paint.net Plugins\u00a0is perfectly valid.\n\t \n\n\tHaving the enablement of this tucked behind a registry key that requires administrator privilege helps ensure that local malware can\u0027t enable a remote attacker to have the ability to push code to your system.\n \n\n\n\t\u00a0\n \n\n\n\tThe portable version of the app can\u0027t participate in this, as it has no notion of a SystemWide settings hive (JSON file), but that\u0027s okay because you can just package your plugins next to the app itself.\u00a0\n \n", "upvoteCount": 1 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586020", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586020", "author": { "@type": "Person", "name": "Rick Brewster", "image": "//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png", "url": "https://forums.getpaint.net/profile/44714-rick-brewster/" }, "dateCreated": "2021-09-03T04:10:57+0000", "text": "I just published a new alpha of 4.3 which has this functionality. Try it out and let me know how it goes:\u00a0\n \n\n\n\n\t\u00a0\n \n", "upvoteCount": 0 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586609", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586609", "author": { "@type": "Person", "name": "olavrb", "image": "//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg", "url": "https://forums.getpaint.net/profile/142796-olavrb/" }, "dateCreated": "2021-09-23T19:40:20+0000", "text": "@Rick Brewster\n \n\n\n\t\u00a0\n \n\n\n\tJust saw 4.3 got installed through Microsoft Store today. Then had to check the forums. Then saw that you\u0027ve implemented this feature request. Sweet. \n \n\n\n\t\u00a0\n \n\n\n\tI then went ahead to try it. Made following PowerShell script:\n \n\n\n\t\u00a0\n \n\n\n\n\n\t\u00a0\n \n\n\n\t\u00a0\n \n\n\n\tMy \"%OneDriveConsumer%\\_Share\\AppData\\Paint.net\\AppFiles\" looks like attached picture. Inside there I have the MozJpeg plugins (https://github.com/0xC0000054/pdn-mozjpeg) amongst others.\n \n\n\n\t\u00a0\n \n\n\n\tBut I can\u0027t save to Mozjpeg. So don\u0027t think I\u0027ve done it right. Settings don\u0027t mention any errors in \"Plugin Errors\". Except the already reported \"PaintDotNet.Effects.dll.\n \n\n\n\t\u00a0\n \n\n\n\tDo you see anything obious?\n \n\n\n\t\u00a0\n \n\n\n\t\tI assume the name for each registry key is like you wrote it \"Plugins/AdditionalPluginDirectoryRoots\", with forward slash and all.\n\t \n\t\n\t\tFor HKLM, you say true, registry don\u0027t have booleans, so I went with DWord.\n\t \n\t\n\t\tFor HKCU, I have absolute path, as you can see from the screenshot.\n\t \n\n\t\u00a0\n \n\n\n\n\n\t\u00a0\n \n", "upvoteCount": 0 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586610", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586610", "author": { "@type": "Person", "name": "Rick Brewster", "image": "//media.invisioncic.com/r125076/monthly_2023_03/centeredPDN.thumb.png.3b0fb62cbbb3700ecfc2ebe3469b7e37.png", "url": "https://forums.getpaint.net/profile/44714-rick-brewster/" }, "dateCreated": "2021-09-23T19:44:32+0000", "text": "No; it needs to be a string (REG_SZ) whose value is \"true\" (without the quotes)\n \n", "upvoteCount": 0 }, { "@type": "Comment", "@id": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586611", "url": "https://forums.getpaint.net/topic/118583-feature-request-set-custom-app-files-plugins-folder/#comment-586611", "author": { "@type": "Person", "name": "olavrb", "image": "//media.invisioncic.com/r125076/monthly_2020_04/olav-3_648x648.thumb.jpg.9968b30cdd1de5b437daa83afb9d648c.jpg", "url": "https://forums.getpaint.net/profile/142796-olavrb/" }, "dateCreated": "2021-09-23T19:46:29+0000", "text": "Ahh. That did it. Sweet. Thank you. \u00a0\n \n\n\n\t\n \n\n\n\t\u00a0\n \n\n\n\tCorrected PowerShell if anyone is interested.\n \n\n\n\t\u00a0\n \n\n\n\n\n\t\u00a0\n \n", "upvoteCount": 1 } ] } </script> <script type='application/ld+json'> { "@context": "http://www.schema.org", "publisher": "https://forums.getpaint.net/#organization", "@type": "WebSite", "@id": "https://forums.getpaint.net/#website", "mainEntityOfPage": "https://forums.getpaint.net/", "name": "Paint.NET Forum", "url": "https://forums.getpaint.net/", "potentialAction": { "type": "SearchAction", "query-input": "required name=query", "target": "https://forums.getpaint.net/search/?q={query}" }, "inLanguage": [ { "@type": "Language", "name": "English (USA)", "alternateName": "en-US" } ] } </script> <script type='application/ld+json'> { "@context": "http://www.schema.org", "@type": "Organization", "@id": "https://forums.getpaint.net/#organization", "mainEntityOfPage": "https://forums.getpaint.net/", "name": "Paint.NET Forum", "url": "https://forums.getpaint.net/", "logo": { "@type": "ImageObject", "@id": "https://forums.getpaint.net/#logo", "url": "//media.invisioncic.com/r125076/monthly_2020_08/getpaint_blacktext.png.5e2669ddda3d7a5f9c5af66188e317c7.png" } } </script> <script type='application/ld+json'> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "item": { "name": "Paint.NET", "@id": "https://forums.getpaint.net/forum/13-paintnet/" } }, { "@type": "ListItem", "position": 2, "item": { "name": "Paint.NET Discussion and Questions", "@id": "https://forums.getpaint.net/forum/4-paintnet-discussion-and-questions/" } }, { "@type": "ListItem", "position": 3, "item": { "name": "[Feature request] Set custom app files (plugins) folder" } } ] } </script> <script type='text/javascript'> (() => { let gqlKeys = []; for (let [k, v] of Object.entries(gqlKeys)) { ips.setGraphQlData(k, v); } })(); </script> <!--ipsQueryLog--> <!--ipsCachingLog--> </body> </html>