Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - RamonQuerol/script-launcher: Small CLI tool to store and easily run scripts from anywhere in the system. · GitHub
Skip to content

Latest commit

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Script Launcher - SLA

Small CLI tool to store and easily run scripts from anywhere in the system.

Capabilities

The tool allows the user to:

  • Add scripts to the database (sla add)
  • Run scripts from the database (sla run)
  • Delete scripts from the database (sla del)
  • Copy scripts from the database (sla cp)
  • List all the scripts in the database (sla ls)

The tool works for any kind of script, no matter if its shell, python or an executable. This is possible because the user sets the "launcher command" (for example, python3 script.py) when they add a script to the database.

To know how to use the tool properly use the "sla help" command. There you should find all the necessary information on how to use all the subcommands (It's quite simple to be honest, but contact me if there are issues).

Installation

I personally recommend making a symlink to the command in a directory that is inside PATH and named it sla:

ln -s sla.sh path/to/directory/inside/PATH/sla

The autocompletion script sla_completion_install.sh installation depends a bit on the linux distribution you are using. However, it usually involves either using some bash-completion directory or making so that the following command is run when bash starts:

source /absolute/path/to/sla_completion_install.sh

Reasons and purposes

The reason behind this little project was mainly that I was a bit tired of having my scripts on some obscure directory I have to write the path to every time I wanted to run them. So I just made a command that stores and launches any script from anywhere in the system without too much boilerplate. To achieve this I made the following decisions:

Written in bash

Mainly because that way I can easily run it in any Unix based system without having to do processes like recompiling. But also because that way I force myself to keep it simple.

Simple to write

I named the command "sla" because these letters are pretty easy to write in a normal keyboard (and because as far as I know there is no other command named this way). I also added autocomplete so that you can easily tab your way through the command.

Prioritized run over other functionalities

The main goal of the tool is to make running scripts as easy as possible. That comes at the cost of making the experience of adding scripts a little more clumsy. By making the user do all the heavy lifting on "sla add", the "sla run" command ends up being quite simple to use.

Future improvements

Although I want to keep the command simple and I will not add this features unless I find a script that need them, these improvements are:

  • Rename feature and making it so that you can add custom names to the script on "sla add" (Currently takes the basename of the file you added).

About

Small CLI tool to store and easily run scripts from anywhere in the system.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages