mirror of
https://github.com/sayanarijit/xplr
synced 2024-11-18 09:26:05 +00:00
390 lines
36 KiB
HTML
390 lines
36 KiB
HTML
<!DOCTYPE HTML>
|
|
<html lang="en" class="sidebar-visible no-js light">
|
|
<head>
|
|
<!-- Book generated using mdBook -->
|
|
<meta charset="UTF-8">
|
|
<title>Upgrade Guide - xplr book</title>
|
|
|
|
|
|
<!-- Custom HTML head -->
|
|
|
|
|
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
<meta name="description" content="A hackable, minimal, fast TUI file explorer">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#ffffff" />
|
|
|
|
<link rel="icon" href="favicon.svg">
|
|
<link rel="shortcut icon" href="favicon.png">
|
|
<link rel="stylesheet" href="css/variables.css">
|
|
<link rel="stylesheet" href="css/general.css">
|
|
<link rel="stylesheet" href="css/chrome.css">
|
|
<link rel="stylesheet" href="css/print.css" media="print">
|
|
|
|
<!-- Fonts -->
|
|
<link rel="stylesheet" href="FontAwesome/css/font-awesome.css">
|
|
<link rel="stylesheet" href="fonts/fonts.css">
|
|
|
|
<!-- Highlight.js Stylesheets -->
|
|
<link rel="stylesheet" href="highlight.css">
|
|
<link rel="stylesheet" href="tomorrow-night.css">
|
|
<link rel="stylesheet" href="ayu-highlight.css">
|
|
|
|
<!-- Custom theme stylesheets -->
|
|
|
|
</head>
|
|
<body>
|
|
<!-- Provide site root to javascript -->
|
|
<script type="text/javascript">
|
|
var path_to_root = "";
|
|
var default_theme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "navy" : "light";
|
|
</script>
|
|
|
|
<!-- Work around some values being stored in localStorage wrapped in quotes -->
|
|
<script type="text/javascript">
|
|
try {
|
|
var theme = localStorage.getItem('mdbook-theme');
|
|
var sidebar = localStorage.getItem('mdbook-sidebar');
|
|
|
|
if (theme.startsWith('"') && theme.endsWith('"')) {
|
|
localStorage.setItem('mdbook-theme', theme.slice(1, theme.length - 1));
|
|
}
|
|
|
|
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
|
|
localStorage.setItem('mdbook-sidebar', sidebar.slice(1, sidebar.length - 1));
|
|
}
|
|
} catch (e) { }
|
|
</script>
|
|
|
|
<!-- Set the theme before any content is loaded, prevents flash -->
|
|
<script type="text/javascript">
|
|
var theme;
|
|
try { theme = localStorage.getItem('mdbook-theme'); } catch(e) { }
|
|
if (theme === null || theme === undefined) { theme = default_theme; }
|
|
var html = document.querySelector('html');
|
|
html.classList.remove('no-js')
|
|
html.classList.remove('light')
|
|
html.classList.add(theme);
|
|
html.classList.add('js');
|
|
</script>
|
|
|
|
<!-- Hide / unhide sidebar before it is displayed -->
|
|
<script type="text/javascript">
|
|
var html = document.querySelector('html');
|
|
var sidebar = 'hidden';
|
|
if (document.body.clientWidth >= 1080) {
|
|
try { sidebar = localStorage.getItem('mdbook-sidebar'); } catch(e) { }
|
|
sidebar = sidebar || 'visible';
|
|
}
|
|
html.classList.remove('sidebar-visible');
|
|
html.classList.add("sidebar-" + sidebar);
|
|
</script>
|
|
|
|
<nav id="sidebar" class="sidebar" aria-label="Table of contents">
|
|
<div class="sidebar-scrollbox">
|
|
<ol class="chapter"><li class="chapter-item expanded "><a href="introduction.html"><strong aria-hidden="true">1.</strong> Introduction</a></li><li class="chapter-item expanded "><a href="quickstart.html"><strong aria-hidden="true">2.</strong> Quickstart</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="install.html"><strong aria-hidden="true">2.1.</strong> Install</a></li><li class="chapter-item expanded "><a href="post-install.html"><strong aria-hidden="true">2.2.</strong> Post Install</a></li></ol></li><li class="chapter-item expanded "><a href="configuration.html"><strong aria-hidden="true">3.</strong> Configuration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="general-config.html"><strong aria-hidden="true">3.1.</strong> General Config</a></li><li class="chapter-item expanded "><a href="modes.html"><strong aria-hidden="true">3.2.</strong> Modes</a></li><li class="chapter-item expanded "><a href="message.html"><strong aria-hidden="true">3.3.</strong> Message</a></li><li class="chapter-item expanded "><a href="layouts.html"><strong aria-hidden="true">3.4.</strong> Layouts</a></li><li class="chapter-item expanded "><a href="node_types.html"><strong aria-hidden="true">3.5.</strong> Node Types</a></li><li class="chapter-item expanded "><a href="style.html"><strong aria-hidden="true">3.6.</strong> Style</a></li><li class="chapter-item expanded "><a href="sorting.html"><strong aria-hidden="true">3.7.</strong> Sorting</a></li><li class="chapter-item expanded "><a href="filtering.html"><strong aria-hidden="true">3.8.</strong> Filtering</a></li></ol></li><li class="chapter-item expanded "><a href="default-key-bindings.html"><strong aria-hidden="true">4.</strong> Default Key Bindings</a></li><li class="chapter-item expanded "><a href="plugin.html"><strong aria-hidden="true">5.</strong> Plugin</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="installing-plugins.html"><strong aria-hidden="true">5.1.</strong> Installing Plugins</a></li><li class="chapter-item expanded "><a href="writing-plugins.html"><strong aria-hidden="true">5.2.</strong> Writing Plugins</a></li><li class="chapter-item expanded "><a href="awesome-plugins.html"><strong aria-hidden="true">5.3.</strong> Awesome Plugins</a></li></ol></li><li class="chapter-item expanded "><a href="integration.html"><strong aria-hidden="true">6.</strong> Integration</a></li><li><ol class="section"><li class="chapter-item expanded "><a href="awesome-integrations.html"><strong aria-hidden="true">6.1.</strong> Awesome Integrations</a></li></ol></li><li class="chapter-item expanded "><a href="todo.html"><strong aria-hidden="true">7.</strong> TODO</a></li><li class="chapter-item expanded "><a href="alternatives.html"><strong aria-hidden="true">8.</strong> Alternatives</a></li><li class="chapter-item expanded "><a href="upgrade-guide.html" class="active"><strong aria-hidden="true">9.</strong> Upgrade Guide</a></li><li class="chapter-item expanded "><a href="community.html"><strong aria-hidden="true">10.</strong> Community</a></li><li class="chapter-item expanded "><a href="contribute.html"><strong aria-hidden="true">11.</strong> Contribute</a></li></ol> </div>
|
|
<div id="sidebar-resize-handle" class="sidebar-resize-handle"></div>
|
|
</nav>
|
|
|
|
<div id="page-wrapper" class="page-wrapper">
|
|
|
|
<div class="page">
|
|
|
|
<div id="menu-bar-hover-placeholder"></div>
|
|
<div id="menu-bar" class="menu-bar sticky bordered">
|
|
<div class="left-buttons">
|
|
<button id="sidebar-toggle" class="icon-button" type="button" title="Toggle Table of Contents" aria-label="Toggle Table of Contents" aria-controls="sidebar">
|
|
<i class="fa fa-bars"></i>
|
|
</button>
|
|
<button id="theme-toggle" class="icon-button" type="button" title="Change theme" aria-label="Change theme" aria-haspopup="true" aria-expanded="false" aria-controls="theme-list">
|
|
<i class="fa fa-paint-brush"></i>
|
|
</button>
|
|
<ul id="theme-list" class="theme-popup" aria-label="Themes" role="menu">
|
|
<li role="none"><button role="menuitem" class="theme" id="light">Light (default)</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="rust">Rust</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="coal">Coal</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="navy">Navy</button></li>
|
|
<li role="none"><button role="menuitem" class="theme" id="ayu">Ayu</button></li>
|
|
</ul>
|
|
<button id="search-toggle" class="icon-button" type="button" title="Search. (Shortkey: s)" aria-label="Toggle Searchbar" aria-expanded="false" aria-keyshortcuts="S" aria-controls="searchbar">
|
|
<i class="fa fa-search"></i>
|
|
</button>
|
|
</div>
|
|
|
|
<h1 class="menu-title">xplr book</h1>
|
|
|
|
<div class="right-buttons">
|
|
<a href="print.html" title="Print this book" aria-label="Print this book">
|
|
<i id="print-button" class="fa fa-print"></i>
|
|
</a>
|
|
<a href="https://github.com/sayanarijit/xplr" title="Git repository" aria-label="Git repository">
|
|
<i id="git-repository-button" class="fa fa-github"></i>
|
|
</a>
|
|
<a href="https://github.com/sayanarijit/xplr/edit/main/docs/en/src/upgrade-guide.md" title="Suggest an edit" aria-label="Suggest an edit">
|
|
<i id="git-edit-button" class="fa fa-edit"></i>
|
|
</a>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div id="search-wrapper" class="hidden">
|
|
<form id="searchbar-outer" class="searchbar-outer">
|
|
<input type="search" id="searchbar" name="searchbar" placeholder="Search this book ..." aria-controls="searchresults-outer" aria-describedby="searchresults-header">
|
|
</form>
|
|
<div id="searchresults-outer" class="searchresults-outer hidden">
|
|
<div id="searchresults-header" class="searchresults-header"></div>
|
|
<ul id="searchresults">
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Apply ARIA attributes after the sidebar and the sidebar toggle button are added to the DOM -->
|
|
<script type="text/javascript">
|
|
document.getElementById('sidebar-toggle').setAttribute('aria-expanded', sidebar === 'visible');
|
|
document.getElementById('sidebar').setAttribute('aria-hidden', sidebar !== 'visible');
|
|
Array.from(document.querySelectorAll('#sidebar a')).forEach(function(link) {
|
|
link.setAttribute('tabIndex', sidebar === 'visible' ? 0 : -1);
|
|
});
|
|
</script>
|
|
|
|
<div id="content" class="content">
|
|
<main>
|
|
<h1 id="upgrade-guide"><a class="header" href="#upgrade-guide">Upgrade Guide</a></h1>
|
|
<p>When you upgrade xplr, you might see an error like this</p>
|
|
<pre><code>Incompatible script version in: /home/sayanarijit/.config/xplr/init.lua. The script version is: 0.9.0, the required version is: 0.10.1. Visit https://github.com/sayanarijit/xplr/wiki/Upgrade-Guide
|
|
</code></pre>
|
|
<p>All you need to do is follow the <a href="#instructions">instructions</a> starting from
|
|
your config version, all the way to the required version.</p>
|
|
<details>
|
|
<summary>Expand for more information</summary>
|
|
<p>With every update, we either implement a <code>major</code> breaking change (e.g.
|
|
deprecating or replacing messages), or a <code>minor</code> feature addition (e.g. adding
|
|
new messages) or <code>patch</code>, fixes, and optimization (e.g. performance
|
|
optimization).</p>
|
|
<p>Knowing that we use the <code>{major}.{minor}.{patch}</code> versioning format,</p>
|
|
<ul>
|
|
<li>Major version mismatch are generally incompatible. xplr will fail
|
|
with error.</li>
|
|
<li>Minor version upgrades (not downgrades) and patch fixes are backwards
|
|
compatible. You might get notified by log a message which you can disable by
|
|
updating the version in your config file.</li>
|
|
<li>However, if the config file has a higher value for the minor version
|
|
than the app, then also xplr will fail with error, suggesting you
|
|
to visit this page.
|
|
Though in that case, you will be downgrading your config file based on your
|
|
app version.</li>
|
|
</ul>
|
|
<p>e.g.</p>
|
|
<ul>
|
|
<li><code>1.0.0</code> -> <code>1.0.x</code>: Bug fix (fully compatible).</li>
|
|
<li><code>1.0.0</code> -> <code>1.x.x</code>: Only backwards compatible. You can't generally use for
|
|
e.g. <code>app-1.0.0</code> with <code>config-1.1.0</code>. But vice versa is fine.</li>
|
|
<li><code>1.0.0</code> -> <code>x.x.x</code>: Not compatible at all.</li>
|
|
</ul>
|
|
<p>Note that until we're <code>v1</code>, we'll be using the <code>{minor}</code> version number as
|
|
<code>{major}</code>, and the <code>{patch}</code> fix number as <code>{minor}</code> to determine
|
|
compatibility.</p>
|
|
</details>
|
|
<h3 id="instructions"><a class="header" href="#instructions">Instructions</a></h3>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0137v0137a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0144v0144a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0137v0137a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0144v0144a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.13.7">v0.13.7</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.14.4">v0.14.4</a></a></h4>
|
|
<ul>
|
|
<li>macOS users need to place their config file (<code>init.lua</code>) in
|
|
<code>$HOME/.config/xplr/</code> or <code>/etc/xplr/</code>.</li>
|
|
<li>Library users please refer to the latest API docs.</li>
|
|
<li>Check out the new messages: <code>{Start|Stop|Toggle}Fifo</code>. These enable support
|
|
for <a href="https://github.com/sayanarijit/xplr/pull/229#issue-662426960">FIFO based file previews</a>.</li>
|
|
<li>You can disable the recover mode using <code>config.general.disable_recover_mode = true</code>.</li>
|
|
<li>Try running <code>xplr --help</code>. Yes, CLI has been implemented.</li>
|
|
<li>Since version <code>v0.14.3</code>, <code>StartFifo</code> and <code>ToggleFifo</code> will write to the FIFO
|
|
path when called. So, there's no need to pipe the focus path explicitely.</li>
|
|
<li>Since version <code>v0.14.3</code>, general config <code>xplr.config.start_fifo</code> is available
|
|
which can be set to a file path to start a fifo when xplr starts.</li>
|
|
<li>Since version <code>v0.14.4</code>, <code>$XPLR_SESSION_PATH</code> can be used to dump session
|
|
related data.</li>
|
|
</ul>
|
|
<p><sub>Like this project so far? <strong><a href="contribute.html">Please consider contributing</a></strong>.</sub></p>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0121v0121a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0137v0137a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0121v0121a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0137v0137a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.12.1">v0.12.1</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.13.7">v0.13.7</a></a></h4>
|
|
<ul>
|
|
<li>Lua functions called using <a href="https://docs.rs/xplr/latest/xplr/app/enum.ExternalMsg.html#variant.CallLua"><code>CallLua</code></a> and <a href="https://docs.rs/xplr/latest/xplr/app/enum.ExternalMsg.html#variant.CallLuaSilently"><code>CallLuaSilently</code></a> messages will receive <a href="https://docs.rs/xplr/latest/xplr/app/struct.CallLuaArg.html"><code>CallLuaArg</code></a> object as the function argument (instead of the <a href="https://docs.rs/xplr/latest/xplr/app/struct.App.html"><code>App</code></a> object).</li>
|
|
<li>Each <code>node_types</code> config will inherit defaults from matching less specifig <code>node_types</code> config and overwrite them.</li>
|
|
<li>Since version <code>v0.13.2</code>, you don't need to use/send <code>Refresh</code> anymore. It will be auto-handled by xplr.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0111v0111a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0121v0121a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0111v0111a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0121v0121a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.11.1">v0.11.1</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.12.1">v0.12.1</a></a></h4>
|
|
<ul>
|
|
<li><code>xplr.config.node_types.mime_essence</code> has split into type and subtype. Hence, instead of <code>xplr.config.node_types.mime_essence["text/plain"] = ..</code> use <code>xplr.config.node_types.mime_essence["text"] = { plain = .. }</code>.</li>
|
|
<li>You can also define <code>xplr.config.node_types.mime_essence["text"]["*"]</code> that will match all text types (<code>text/*</code>).</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0102v0102a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0111v0111a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0102v0102a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0111v0111a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.10.2">v0.10.2</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.11.1">v0.11.1</a></a></h4>
|
|
<ul>
|
|
<li><code>remaps:</code> has been removed to avoid confusion. Use lua assignments instead.
|
|
For e.g.
|
|
<pre><code>xplr.config.modes.builtin.default.key_bindings.on_key["v"] = xplr.config.modes.builtin.default.key_bindings.on_key.space
|
|
</code></pre>
|
|
</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv091v091a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0102v0102a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv091v091a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0102v0102a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.9.1">v0.9.1</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.10.2">v0.10.2</a></a></h4>
|
|
<ul>
|
|
<li><a href="https://github.com/sayanarijit/xplr/blob/85696ded7a/src/config.yml"><code>config.yml</code></a> has been fully replaced with <a href="https://github.com/sayanarijit/xplr/blob/main/src/init.lua"><code>init.lua</code></a>. If you have a lot of customization in your <code>config.yml</code>, <a href="https://github.com/sayanarijit/xplr-yml2lua">xplr-yml2lua</a> can help you with migrating it to <code>init.lua</code>.</li>
|
|
<li><code>Handlebars</code> templates has been replaced with <a href="https://github.com/sayanarijit/xplr/blob/bfdb7736b99bc3c5ae53e7d621ba0e7ca2299b14/src/init.lua#L2005-L2064">Lua functions</a>. You can either remove the customizations or overwrite the functions accordingly.</li>
|
|
<li>Added new messages <code>CallLua</code> and <code>CallLuaSilently</code> to call lua functions. The app state will be passed as input to the functions, and the returned messages will be handled by xplr. <code>CallLua</code> and <code>CallLuaSilently</code> are more flexible (and probably faster) alternatives to <code>Call</code>, <code>CallSilently</code>, <code>BashExec</code> and <code>BashExecSilently</code>. <a href="https://github.com/sayanarijit/xplr/pull/177#issue-650643573">e.g.</a></li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv090v090a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv091v091a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv090v090a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv091v091a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.9.0">v0.9.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.9.1">v0.9.1</a></a></h4>
|
|
<ul>
|
|
<li>You can now set <code>remaps: {key: null}</code> to un-map a key.</li>
|
|
<li><code>gx</code> will open the item under focus.</li>
|
|
<li>New key map <code>:sx</code> will open the selected items.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv080v080a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv090v090a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv080v080a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv090v090a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.8.0">v0.8.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.9.0">v0.9.0</a></a></h4>
|
|
<p>Your previous config should mostly work fine. However, in case you are using <code>SwitchMode</code> heavily in your custom config, follow along.</p>
|
|
<ul>
|
|
<li>Introduced new message <code>PopMode</code>. You might want to use this message instead of <code>SwitchMode*</code> when returning back to the previous mode.</li>
|
|
<li>After using (the group of) <code>PopMode</code> and <code>SwitchMode*</code> messages, you are now required to <code>Refresh</code> manually to avoid the UI lag.</li>
|
|
<li>Pressing any invalid key will now lead you to the <code>recover</code> mode and will protect you from typing further invalid keys. Press <code>esc</code> to escape the <code>recover</code> mode.</li>
|
|
<li>Introduced new message <code>LogWarning</code>, similar to other <code>Log*</code> messages.</li>
|
|
<li>Creating files and directories has been optimized for batch creation.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv072v072a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv080v080a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv072v072a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv080v080a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.7.2">v0.7.2</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.8.0">v0.8.0</a></a></h4>
|
|
<p>If you have made changes to the config file,</p>
|
|
<ul>
|
|
<li>Replace message <code>Explore</code> with <code>ExplorePwd</code> or <code>ExplorePwdAsync</code> or probably <code>ExploreParentsAsync</code>.</li>
|
|
<li>Pipe <code>$XPLR_PIPE_FOCUS_OUT</code> has been removed. Use <code>$XPLR_FOCUS_PATH</code> env var instead.</li>
|
|
<li>You might want to review your path escaping logics. For e.g. use <code>echo FocusPath: "'"$PWD"'" >> $PIPE</code> instead of <code>echo "FocusPath: $PWD" >> $PIPE</code>.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv070v070a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv072v072a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv070v070a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv072v072a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.7.0">v0.7.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.7.2">v0.7.2</a></a></h4>
|
|
<ul>
|
|
<li>Just update the <code>version</code> in your config file.</li>
|
|
<li>For version >= <code>v0.7.1</code>, you might want to free up or remap the <code>tab</code> key in <code>search</code> mode to enable easy selection during search.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv060v060a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv070v070a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv060v060a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv070v070a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.6.0">v0.6.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.7.0">v0.7.0</a></a></h4>
|
|
<p>If you haven't made any changes in the config file, you should be fine just updating the version number. Else,</p>
|
|
<ul>
|
|
<li>You can make the <code>Table: ...</code>, <code>InputAndLogs: ...</code> layout values null and define the common properties in the <code>general.panel_ui</code> instead.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0513v0513a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv060v060a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0513v0513a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv060v060a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.5.13">v0.5.13</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.6.0">v0.6.0</a></a></h4>
|
|
<p>If you haven't made any changes in the config file, you should be fine just updating the version number. Else,</p>
|
|
<ul>
|
|
<li>Rename <code>add_modifier: {bits: 1}</code> to <code>add_modifiers: [Bold]</code>, <code>sub_modifier: {bits: 1}</code> to <code>sub_modifiers: [Bold]</code> and so on.</li>
|
|
<li>Rename <code>percentage: 10</code> to <code>Percentage: 10</code>, <code>ratio: 1</code> to <code>Ratio: 1</code> and so on.</li>
|
|
<li>You might want to free up or remap the <code>ctrl-w</code> key binding in <code>default</code> mode to enable layout switching.</li>
|
|
</ul>
|
|
<p>Optionally, checkout this new theme to learn more about what's new.</p>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv050v050a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0513v0513a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv050v050a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0513v0513a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.5.0">v0.5.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.5.13">v0.5.13</a></a></h4>
|
|
<ul>
|
|
<li>Just update the <code>version</code> in your config file.</li>
|
|
<li>For versions >= <code>v0.5.8</code>, you can set <code>$OPENER</code> env var to declare a global GUI file opener (to open files using keys <code>gx</code>).</li>
|
|
<li>You might also want to update other mappings to handle files with names starting with <code>-</code> (hiphen). For example, instead of <code>rm ${filename}</code> use <code>rm -- ${filename}</code>. Same goes for <code>cp</code>, <code>mv</code>, <code>cat</code>, <code>touch</code> etc.</li>
|
|
<li>For version >= <code>v0.5.13</code>, you might want to use the more specific <code>SwitchModeBuiltin</code> and <code>SwitchModeCustom</code> messages instead of the general <code>SwitchMode</code> message.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv043v043a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv050v050a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv043v043a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv050v050a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.3">v0.4.3</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.5.0">v0.5.0</a></a></h4>
|
|
<p>If you haven't have any changes in the config file, you should be fine just updating the version number.</p>
|
|
<p>Else do the following</p>
|
|
<ul>
|
|
<li>Replace <code>{RelativePathIs, case_sensitive: true}</code> with <code>RelativePathIs</code>.</li>
|
|
<li>Replace <code>{RelativePathIs, case_sensitive: false}</code> with <code>IRelativePathIs</code>.</li>
|
|
<li>Do the same with other filters you are using.</li>
|
|
<li>You might want to update your <code>backspace</code> handling to use the <code>RemoveInputBufferLastCharacter</code> message.</li>
|
|
<li>You might want to free-up <code>f</code>, <code>s</code>, <code>ctrl-r</code> and <code>ctrl-u</code> key bindings in the default mode, or remap them.</li>
|
|
<li>You might want to use the new UI variables.</li>
|
|
<li>Update your config version to <code>v0.5.0</code>.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv042v042a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv043v043a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv042v042a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv043v043a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.2">v0.4.2</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.3">v0.4.3</a></a></h4>
|
|
<p>If you have customized <code>general.table.row.cols</code>, you might want to <a href="https://github.com/sayanarijit/xplr/blob/af1cda5762/src/config.yml#L46-L48">update it</a> to use the new variables with better symlink support.</p>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv041v041a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv042v042a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv041v041a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv042v042a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.1">v0.4.1</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.2">v0.4.2</a></a></h4>
|
|
<p>In case you have mapped the keys <code>q</code>, <code>ctrl-i</code> and <code>ctrl-o</code>, you may want to revisit the default mode key bindings and remap accordingly to use the new functionalities.</p>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0313v0313a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv041v041a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0313v0313a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv041v041a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.13">v0.3.13</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.4.1">v0.4.1</a></a></h4>
|
|
<p>A lot has changed (apologies). But I promise from now on, upgrading will be much less painful (thanks to <a href="https://github.com/maximbaz">@maximbaz</a>'s valuable <a href="https://github.com/sayanarijit/xplr/issues/45#issue-854447104">inputs</a> and <a href="https://github.com/sayanarijit/xplr/pull/47">code reviews</a>).</p>
|
|
<p>So, to start with the upgrade, let's remove everything from your config file except the <code>version</code> field and your custom modifications. If <code>version</code> is the only thing remaining, update it to <code>v0.4.1</code> and you are done.</p>
|
|
<p>Else, do the following</p>
|
|
<ul>
|
|
<li>Rename <code>general.focused_ui</code> to <code>general.focus_ui</code> (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L124">see here</a>).</li>
|
|
<li>Rename <code>filetypes</code> to <code>node_types</code>. (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L145">see here</a>)</li>
|
|
<li>Rename <code>custom</code> field to <code>meta</code>. (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L154-L155">see here</a>)</li>
|
|
<li>Move <code>icon</code> to <code>meta.icon</code>. (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L45">see here</a>)</li>
|
|
<li>Rename <code>normal_ui</code> to <code>default_ui</code>. (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L114">see here</a>)</li>
|
|
<li>Split <code>modes</code> into <code>modes.builtin</code> and <code>modes.custom</code> (<a href="https://github.com/sayanarijit/xplr/blob/055c1083d6/src/config.yml#L180-L181">see here</a>). Migrate your custom modes to <code>modes.custom</code>. And copy only the changes in the in-built modes in <code>modes.builtin</code>.</li>
|
|
<li>Finally, update the <code>version</code> to <code>v0.4.1</code>.</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv038v038a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0313v0313a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv038v038a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv0313v0313a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.8">v0.3.8</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.13">v0.3.13</a></a></h4>
|
|
<p>Your current config should work fine. However, you might want to replace some <code>Call</code> and <code>BashExec</code> messages with <code>CallSilently</code> and <code>BashExecSilently</code> to remove the flickering of the screen.</p>
|
|
<p>If you haven't made any changes to the configuration, you can delete and regenerate it.</p>
|
|
<p>Else, do the following</p>
|
|
<ul>
|
|
<li>Check the new default config by temporarily removing your current config (with backup) and dumping the new config.</li>
|
|
<li>Search for <code>Call</code> and <code>BashExec</code> in the new config.</li>
|
|
<li>Compare and probably replace the associated actions in your current config</li>
|
|
</ul>
|
|
<h4 id="a-hrefhttpsgithubcomsayanarijitxplrreleasestagv030v030a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv038v038a"><a class="header" href="#a-hrefhttpsgithubcomsayanarijitxplrreleasestagv030v030a---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv038v038a"><a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.0">v0.3.0</a> -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.8">v0.3.8</a></a></h4>
|
|
<p>Your current config should work fine. However, you might want to replace some <code>ResetNodeFilters</code> messages with <code>RemoveNodeFilter</code> and <code>RemoveNodeFilterFromInput</code> to get a better search and filter experience.</p>
|
|
<p>If you haven't made any changes to the configuration, you can delete and regenerate it.</p>
|
|
<p>Else, do the following</p>
|
|
<ul>
|
|
<li>Check the new default config by temporarily removing your current config (with backup) and dumping the new config.</li>
|
|
<li>Search for <code>RemoveNodeFilterFromInput</code> in the new config.</li>
|
|
<li>Compare and probably replace the associated actions in your current config.</li>
|
|
</ul>
|
|
<h4 id="v0214---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv030v030a"><a class="header" href="#v0214---a-hrefhttpsgithubcomsayanarijitxplrreleasestagv030v030a">v0.2.14 -> <a href="https://github.com/sayanarijit/xplr/releases/tag/v0.3.0">v0.3.0</a></a></h4>
|
|
<p>If you haven't made any changes to the configuration, you can delete and regenerate it.</p>
|
|
<p>Else do the following:</p>
|
|
<ul>
|
|
<li><code>$XPLR_APP_YAML</code> has been removed. You can use <code>Debug</code> to export the app state.</li>
|
|
<li><code>$XPLR_RESULT</code> has been ported to file <code>$XPLR_PIPE_RESULT_OUT</code>. Use <code>cat</code> instead of <code>echo</code>, <code><</code> instead of <code><<<</code> etc.</li>
|
|
<li><code>$XPLR_GLOBAL_HELP_MENU</code> has been ported to
|
|
file <code>$XPLR_PIPE_GLOBAL_HELP_MENU_OUT</code>. Use <code>cat</code> instead of <code>echo</code>, <code><</code> instead of <code><<<</code> etc.</li>
|
|
<li><code>$XPLR_DIRECTORY_NODES</code> has been ported to
|
|
file <code>$XPLR_PIPE_DIRECTORY_NODES_OUT</code>. Use <code>cat</code> instead of <code>echo</code>, <code><</code> instead of <code><<<</code> etc.</li>
|
|
<li><code>$XPLR_LOGS</code> has been ported to file <code>$XPLR_PIPE_LOGS_OUT</code>. Use <code>cat</code> instead of <code>echo</code>, <code><</code> instead of <code><<<</code> etc.</li>
|
|
<li><code>$XPLR_PIPE_RESULT</code> has been ported to file <code>$XPLR_PIPE_RESULT_OUT</code>. Use <code>cat</code> instead of <code>echo</code>, <code><</code> instead of <code><<<</code> etc.</li>
|
|
<li>Finally, update the <code>version</code> in your config file.</li>
|
|
</ul>
|
|
|
|
</main>
|
|
|
|
<nav class="nav-wrapper" aria-label="Page navigation">
|
|
<!-- Mobile navigation buttons -->
|
|
<a rel="prev" href="alternatives.html" class="mobile-nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
<a rel="next" href="community.html" class="mobile-nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
|
|
<div style="clear: both"></div>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
|
|
<nav class="nav-wide-wrapper" aria-label="Page navigation">
|
|
<a rel="prev" href="alternatives.html" class="nav-chapters previous" title="Previous chapter" aria-label="Previous chapter" aria-keyshortcuts="Left">
|
|
<i class="fa fa-angle-left"></i>
|
|
</a>
|
|
|
|
<a rel="next" href="community.html" class="nav-chapters next" title="Next chapter" aria-label="Next chapter" aria-keyshortcuts="Right">
|
|
<i class="fa fa-angle-right"></i>
|
|
</a>
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
window.playground_copyable = true;
|
|
</script>
|
|
|
|
|
|
<script src="elasticlunr.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="mark.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="searcher.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
<script src="clipboard.min.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="highlight.js" type="text/javascript" charset="utf-8"></script>
|
|
<script src="book.js" type="text/javascript" charset="utf-8"></script>
|
|
|
|
<!-- Custom JS scripts -->
|
|
|
|
|
|
</body>
|
|
</html>
|