Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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('^' + ".*" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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('^' + ".*" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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('^' + ".*" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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('^' + ".*" + '
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 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); } })(); })();
Skip to content

Repository files navigation

sakura

sakura is a simple gtk and vte based terminal emulator. It uses tabs to provide several terminals in one window and allows to change configuration options via a contextual menu. No more no less.

Installation

How to compile and install this beast ?

$ cmake .
$ make
$ sudo 'make install'

sakura now uses the CMake building system (RIP our old system MOBS, we'll remember you ;)).

To install sakura with a different prefix, cmake needs to be invoked with the proper environment variables, so for example, to install sakura in /usr, you must type:

$ cmake -DCMAKE_INSTALL_PREFIX=/usr .

Use CMAKE_BUILD_TYPE=Debug if you need debug symbols. Default type is "Release".

Usage

sakura has several command line options. Run sakura --help for a full list.

Keybindings

sakura supports keyboard bindings in its config file (~/.config/sakura/sakura.conf), but there's no GUI to edit them, so please use your favourite editor to change the following values. Keybindings are a combination of an accelerator+key.

Accelerators

Accelerators can be set to any GdkModifierType mask value. The full list of GdkModifierType values is available here

Mask values can be combined by ORing them. For example, to set the delete tab accelerator to Ctrl+Shift, change the option "del_tab_accelerator" value to "5". This number comes from ORing GDK_SHIFT_MASK and GDK_CONTROL_MASK.

I realise that this configuration is not user-friendly, but... :-P

Quick reference: Shift(1), Cps-Lock(2), Ctrl(4), Alt(8), Ctrl-S(5), Ctrl-A(12), Ctrl-A-S(13)

Keys

To change default keys, set the key value you want to modify to your desired key. For example, if you want to use the "D" key instead of the "W" key to delete a tab, set "del_tab_key" to "D" in the config file.

Default keybindings

Ctrl + Shift + T -> New tab
Ctrl + Shift + W -> Close current tab
Ctrl + Shift + C -> Copy selected text
Ctrl + Shift + V -> Paste selected text
Ctrl + Shift + N -> Set tab name
Ctrl + Left cursor -> Previous tab
Ctrl + Right cursor -> Next tab
Ctrl + Shift + Left cursor -> Move tab to the left
Ctrl + Shift + Right cursor -> Move tab to the right
Ctrl + [1-9] -> Switch to tab N (1-9)
Ctrl + Shift + S -> Toggle/Untoggle scrollbar
Ctrl + Shift + Mouse left button -> Open link
F11 -> Fullscreen
Shift + PageUp -> Move up through scrollback by page
Shift + PageDown -> Move down through scrollback by page
Ctrl + Shift + Up -> Move up through scrollback by line
Ctrl + Shift + Down -> Move down through scrollback by line
Ctrl + Shift + [F1-F6] -> Select the colorset for the current tab

You can also increase and decrease the font size in the GTK standard way:

Ctrl + '+' -> Increase font size
Ctrl + '-' -> Decrease font size

By default, mouse buttons are bound to the following:

Button1 -> No action
Button2 -> Paste
Button3 -> Context menu

Behavior can be changed with the following config settings:

copy_on_select -> set to true to automatically copy selected text
paste_button -> set to desired mouse button (default: 2)
menu_button -> set to desired mouse button (default: 3)

Contributing

Pull requests are welcome. But please, create first a bug report in Launchpad, particularly if you plan to make major changes, to make sure your patch will be merged into sakura. If you'd like to contribute with translations, use the translations framework in Launchpad or send me directly the translated po file.

License

GPL 2.0


Enjoy sakura!

About

GTK/VTE based terminal emulator

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages