Compare commits
170 Commits
fc528b203a
...
6d225c7aee
Author | SHA1 | Date |
---|---|---|
Matt Rose | 6d225c7aee | |
Tristan F | 8f8343f95f | |
Tristan F | 7fa87058d5 | |
Matt Rose | a6a0eca553 | |
Matthew Rose | 43c5c55c35 | |
Matthew Rose | 3c2d1ef047 | |
Matt Rose | f3841c640f | |
Matt Rose | cb4d84d52d | |
Matt Rose | 00ec42c7d2 | |
Matt Rose | f537eaabe5 | |
Matt Rose | 1806e583a8 | |
Matt Rose | bf103c2e94 | |
Vishweshwar Saran Singh Deo | bd4e3b3470 | |
Matt Rose | 27814c2386 | |
Matthew Rose | f7b6ea07bc | |
Matt Rose | 9c054ac29e | |
Matt Rose | 2dd7b8ea17 | |
Vishweshwar Saran Singh Deo | 3b4d32cda3 | |
Vishweshwar Saran Singh Deo | d39968ebba | |
xuezhixin | fdfaa80907 | |
Vishweshwar Saran Singh Deo | 64a6e391ac | |
Vishweshwar Saran Singh Deo | 11639159b4 | |
Vishweshwar Saran Singh Deo | d91d017e20 | |
Vishweshwar Saran Singh Deo | a0ed310094 | |
transifex-integration[bot] | 98659bdd8d | |
transifex-integration[bot] | 368666c0af | |
transifex-integration[bot] | 7173bb1c38 | |
Julien Dusser | e61fc1ce60 | |
Tyler Hardin | d0e366ff8d | |
Matt Rose | 0fea7d47e5 | |
Matt Rose | c96ebf7670 | |
Matt Rose | 7023fdc5ab | |
Matt Rose | b7e91b1ede | |
Matt Rose | 1a4921b262 | |
transifex-integration[bot] | 64bccd27b5 | |
transifex-integration[bot] | 635e5338ec | |
transifex-integration[bot] | 685aa75170 | |
transifex-integration[bot] | ea97c21871 | |
Matt Rose | 928a3dc5ec | |
x000zh | cd04443e29 | |
Matt Rose | e0592eaf4f | |
Matt Rose | e8816382fd | |
Vulcalien | f68f288c33 | |
Vulcalien | 20ddb13490 | |
Vulcalien | fec901d09e | |
nautics889 | ed5f1c9b0a | |
Ruslan Kashinin | e2a88a2855 | |
Vulcalien | b0cb125287 | |
Ruslan Kashinin | 1440dd924b | |
Vulcalien | 3a710cd6d6 | |
Vulcalien | 9a63671fe8 | |
Matt Rose | 7a5fc01594 | |
Matt Rose | 03104b791c | |
Thibault Brocheton | beae56f2b8 | |
Vulcalien | 9b93abb8fe | |
Ruslan Kashinin | 468ef23c79 | |
Vulcalien | 0570307ecb | |
Vulcalien | a9c5e18365 | |
Vulcalien | aadb6ebaf9 | |
Matt Rose | 0df00c49e2 | |
Matt Rose | 4ec2add3e3 | |
Vulcalien | 3f30aa58f7 | |
Vulcalien | 8847d635f6 | |
Vulcalien | 1ce3d50069 | |
Vulcalien | dd075a243d | |
Vulcalien | cac4c9e458 | |
Matt Rose | 10e9d04e78 | |
Matt Rose | 2285ceb68b | |
Matt Rose | 6592e2bda1 | |
Matt Rose | 41c9d344b4 | |
Matt Rose | a38152d691 | |
Vulcalien | d8852f1e54 | |
Matt Rose | 3d79ca5072 | |
Matt Rose | 8ae6f93f55 | |
Matt Rose | e4be854668 | |
magical-heyrovsky | bb1ddf3ee5 | |
PF | 599b9b8bf4 | |
Matthew Rose | 9eaf0cbd6b | |
Matt Rose | 380be99c9f | |
Matt Rose | 45a8b4c75c | |
Matt Rose | b0f4463055 | |
Matthew Rose | d6d9cce90c | |
Matthew Rose | ed763df331 | |
Matthew Rose | 066acd779a | |
Kacper Kowalski | c1d9253acc | |
zpalmtree | ca86d083f0 | |
Vulcalien | d52fa5a5d4 | |
Vulcalien | 6cc3052ba7 | |
Vulcalien | df8890199c | |
Vulcalien | 21529cec6c | |
Kacper Kowalski | 39cf34e295 | |
Kacper Kowalski | dd511778c8 | |
Kacper Kowalski | 272328c82d | |
Kacper Kowalski | 6551dba9dc | |
Kacper Kowalski | 3854a7c0e2 | |
zpalmtree | 808d2efaa9 | |
nicbn | c84821e36a | |
Dante Calderon | 285022ef29 | |
Matt Rose | 403bf540d0 | |
Vishweshwar Saran Singh Deo | 98dcd0efec | |
Vishweshwar Saran Singh Deo | 8e5e6d1642 | |
Matt Rose | 857d759485 | |
Vishweshwar Saran Singh Deo | 8edebc6ca5 | |
transifex-integration[bot] | d3d64d406d | |
Vishweshwar Saran Singh Deo | 3e15ae40df | |
Vishweshwar Saran Singh Deo | 7bbb07c993 | |
Matt Rose | 13ff8cdcf5 | |
Matthew Rose | 35e7e026cd | |
Matthew Rose | 3d63c91517 | |
Matt Rose | c939efa5a3 | |
Matt Rose | 4e5e790a81 | |
Vishweshwar Saran Singh Deo | 8802e9b912 | |
Vishweshwar Saran Singh Deo | 0ae2aba167 | |
Matt Rose | a83ee32840 | |
Matt Rose | 2aff8dbf30 | |
Matt Rose | 1d5351ed86 | |
Matt Rose | a6b78bbbf0 | |
Matt Rose | 230e1e5985 | |
Matthew Rose | 0d362fc0f5 | |
Matt Rose | 1d1e57b8f2 | |
Matt Rose | bcb9cbc6ff | |
Matt Rose | a92f675bbc | |
Tobias Farrenkopf | 91cc928f0d | |
Matt Rose | 044b3eaee1 | |
Vishweshwar Saran Singh Deo | 85f57543ed | |
Vishweshwar Saran Singh Deo | 6bdb0c648c | |
Vishweshwar Saran Singh Deo | d08cee42ee | |
Vishweshwar Saran Singh Deo | ffd7ae518e | |
Vishweshwar Saran Singh Deo | fdcf8facf4 | |
Matt Rose | 1aa437d6e3 | |
Vishweshwar Saran Singh Deo | 548a51c6bb | |
Matt Rose | f289b4df33 | |
Matt Rose | 3fa8669050 | |
Vishweshwar Saran Singh Deo | 3aaf54b5de | |
Matt Rose | 6f99890dd3 | |
Matt Rose | df1a433c61 | |
Matt Rose | c512beb993 | |
Matt Rose | 7c83d23e55 | |
Matt Rose | c4d7253d66 | |
Matt Rose | af1ec64c93 | |
flaviosteimacher | 295cfd9f60 | |
Dante Calderon | 2e1dd1f316 | |
Kian-Meng Ang | 25111f2402 | |
Paweł Kotiuk | 270d4afb04 | |
Matt Rose | c447ae0201 | |
Matt Rose | bf3ce6c81e | |
Matt Rose | 6557ad5450 | |
Vishweshwar Saran Singh Deo | e7f9c731e8 | |
Vishweshwar Saran Singh Deo | 5bd81ce478 | |
sabriunal | d8141a86c3 | |
Vulcalien | df0643b1a4 | |
xuezhixin | 6c2e3b8bf7 | |
Mihai Babiac | 3245d671bb | |
Matt Rose | 7b39058b0e | |
Vulcalien | 784dc4946e | |
Vulcalien | 06ada7c655 | |
Matt Rose | d33c145ba8 | |
Matt Rose | 0e04376afb | |
Matt Rose | eb7c2ddf25 | |
amaan khan | 33f7927bfa | |
amaan khan | ed93ccb7e5 | |
Vulcalien | c2f2addf05 | |
Vulcalien | 04bd693586 | |
Matt Rose | 978e0c9fd8 | |
Matthew Rose | 8055e2ae65 | |
Matt Rose | 529d4749ee | |
Jay W | 886412fcf1 | |
Jay W | 967f039e60 | |
Jay W | a41a38bcc9 | |
Phi | e8c366ae54 |
|
@ -20,7 +20,7 @@ jobs:
|
|||
- '3.9'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python ${{ matrix.python }}
|
||||
uses: actions/setup-python@v1
|
||||
|
|
56
AUTHORS
56
AUTHORS
|
@ -5,8 +5,8 @@ This list is generated from the GIT log.
|
|||
* Aaron Faanes <dafrito@gmail.com>
|
||||
* Adrian A <a.adrian.tech@googlemail.com>
|
||||
* Alexey Sokolov <sokolov@google.com>
|
||||
* Andrea Corbellini <corbellini.andrea@gmail.com>
|
||||
* Andre Hilsendeger <Andre.Hilsendeger@gmail.com>
|
||||
* Andrea Corbellini <corbellini.andrea@gmail.com>
|
||||
* Andrew Felske <knopper67@archlinux.us>
|
||||
* Antonio Terceiro <asa@terceiro.xyz>
|
||||
* Antonio Terceiro <terceiro@debian.org>
|
||||
|
@ -25,7 +25,7 @@ This list is generated from the GIT log.
|
|||
* David Caro Estévez <david.caro.estevez@gmail.com>
|
||||
* David Levanon <dvdlevanon@gmail.com>
|
||||
* David Sowder <github.com@david.sowder.com>
|
||||
* dkmvs <67212386+dkmvs@users.noreply.github.com>
|
||||
* Dennis Benzinger | SAP Hybris <dennis.benzinger@sap.com>
|
||||
* Dmitry Soldatov <grapescan@gmail.com>
|
||||
* Douglas Bacon <douglaswbacon@gmail.com>
|
||||
* Edoardo Batini <eodbat@gmail.com>
|
||||
|
@ -33,7 +33,6 @@ This list is generated from the GIT log.
|
|||
* Emilien Klein <emilien@klein.st>
|
||||
* Emilio Pozuelo Monfort <pochu@debian.org>
|
||||
* Emmanuel Bretelle <chantra@debuntu.org>
|
||||
* evandrocoan <evandrocoan@hotmail.com>
|
||||
* Felix Mölder <56774350+Brambleberry4@users.noreply.github.com>
|
||||
* Fernando Basso <fernandobasso.br@gmail.com>
|
||||
* Filip Kilibarda <filipcsc@gmail.com>
|
||||
|
@ -46,51 +45,82 @@ This list is generated from the GIT log.
|
|||
* Ivar Smolin <okul@ivotingcentre.ee>
|
||||
* Jakub Vaněk <vanek.jakub4@seznam.cz>
|
||||
* Jamu Kakar <jkakar@kakar.ca>
|
||||
* Jay W <git.jaydoubleu@gmail.com>
|
||||
* Jean-Sebastien Trottier <strottie@cisco.com>
|
||||
* Joe Peled <joe.peled@vimeo.com>
|
||||
* Jonas L <jooola@users.noreply.github.com>
|
||||
* José Augusto <joseaugusto.881@outlook.com>
|
||||
* Jose Augusto <jose.augusto@chiligum.com.br>
|
||||
* Jose I. Monreal <jmonreal@gmail.com>
|
||||
* judgedreads <pearce@millerdedmon.com>
|
||||
* José Augusto <joseaugusto.881@outlook.com>
|
||||
* Juliano Fischer Naves <julianofischer@gmail.com>
|
||||
* Julien Nicoulaud <julien.nicoulaud@gmail.com>
|
||||
* Julien Thewys <jth@openerp.com>
|
||||
* Kacper Kowalski <kacper.s.kowalski@gmail.com>
|
||||
* Kees Cook <kees@outflux.net>
|
||||
* Kian-Meng Ang <kianmeng@cpan.org>
|
||||
* Leandro Thimóteo <leandro.s.thimoteo@gmail.com>
|
||||
* Lucian Adrian Grijincu <lucian.grijincu@gmail.com>
|
||||
* Mackenzie Morgan <maco.m@ubuntu.com>
|
||||
* Mark Timarev <marktimarev@gmail.com>
|
||||
* Markus Frosch <markus@lazyfrosch.de>
|
||||
* Markus Korn <thekorn@gmx.de>
|
||||
* Matt Rose <mattrose@folkwolf.net>
|
||||
* milotype <43657314+milotype@users.noreply.github.com>
|
||||
* Matthew Rose <mattrose@folkwolf.net>
|
||||
* Mihai Babiac <mihai.babiac@gmail.com>
|
||||
* MuhammadJivani <masad@peekaboo.guru>
|
||||
* Nathan Handler <nhandler@ubuntu.com>
|
||||
* Nathaniel M. Beaver <nathanielmbeaver@gmail.com>
|
||||
* Nathaniel Morck Beaver <nathanielmbeaver@gmail.com>
|
||||
* Neal Fultz <nfultz@neal-1015pe>
|
||||
* Nicolas Valcárcel <nvalcarcel@ubuntu.com>
|
||||
* Pavel Khlebovich <pas.anddev@gmail.com>
|
||||
* Paweł Kotiuk <45544416+pktiuk@users.noreply.github.com>
|
||||
* Paweł Kotiuk <kotiuk@zohomail.eu>
|
||||
* Peter B. Jørgensen <peterbjorgensen@gmail.com>
|
||||
* Peter Bjørn Jørgensen <peterbjorgensen@gmail.com>
|
||||
* Peter Lind <peter.e.lind@gmail.com>
|
||||
* Phi <phi@kernel-tools.com>
|
||||
* planet36 <planet36@users.noreply.github.com>
|
||||
* Przemek Wesolek <jest@luna>
|
||||
* Roberto Aguilar <roberto.c.aguilar@gmail.com>
|
||||
* robertoetcheverryr <yggdrasil.raiker@gmail.com>
|
||||
* R the Troublemaker <5971066+br0kenbuild@users.noreply.github.com>
|
||||
* Rafael Kitover <rkitover@gmail.com>
|
||||
* Roberto Aguilar <roberto.c.aguilar@gmail.com>
|
||||
* Ryan Fonnesbeck <fonz@fonzinc.com>
|
||||
* shiraeeshi <shiraeeshi@mail.ru>
|
||||
* Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
|
||||
* Simeon Simeonov <sgs@pichove.org>
|
||||
* Stephen Boddy <stephen.j.boddy@gmail.com>
|
||||
* thebigs <TheBigS@users.noreply.github.com>
|
||||
* StephenPeringer <StephenPeringer@users.noreply.github.com>
|
||||
* Thomas Hurst <tom@hur.st>
|
||||
* Thomas Meire <blackskad@gmail.com>
|
||||
* Tobias Farrenkopf <tf@emptyset.de>
|
||||
* Tom Yan <tom.ty89@gmail.com>
|
||||
* Tomek Sabała <sabala.tomek@gmail.com>
|
||||
* Tony Baker <frd91gt@gmail.com>
|
||||
* waldner <waldner@katamail.com>
|
||||
* Vishweshwar Saran Singh Deo <vssdeo@gmail.com>
|
||||
* Vojtech Duchon (Ext) <vojtech.duchon@gmail.com>
|
||||
* Vulcalien <vulcalien+github@gmail.com>
|
||||
* Vulcalien <vulcalien@gmail.com>
|
||||
* Yousof <yousofebneddin@yahoo.com>
|
||||
* Yusuf Güngör <yusuf.gungor@hepsiburada.com>
|
||||
* amaan khan <khanamaan827@gmail.com>
|
||||
* caprinux <123jinkai@gmail.com>
|
||||
* coder <none@non.no>
|
||||
* dkmvs <67212386+dkmvs@users.noreply.github.com>
|
||||
* evandrocoan <evandrocoan@hotmail.com>
|
||||
* flaviosteimacher <39162591+flaviosteimacher@users.noreply.github.com>
|
||||
* judgedreads <pearce@millerdedmon.com>
|
||||
* kocho1984 <eblebleo2@gmail.com>
|
||||
* milotype <43657314+milotype@users.noreply.github.com>
|
||||
* nicbn <contact@nicbn.com>
|
||||
* nojhan <nojhan@nojhan.net>
|
||||
* ozzdemir <oguz.ozdemir@ieee.metu.edu.tr>
|
||||
* planet36 <planet36@users.noreply.github.com>
|
||||
* robertoetcheverryr <yggdrasil.raiker@gmail.com>
|
||||
* sabriunal <libreajans@gmail.com>
|
||||
* shiraeeshi <shiraeeshi@mail.ru>
|
||||
* thebigs <TheBigS@users.noreply.github.com>
|
||||
* transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
|
||||
* waldner <waldner@katamail.com>
|
||||
* xuezhixin <xuezhixin@uniontech.com>
|
||||
|
||||
## Other contributors
|
||||
|
||||
|
@ -112,5 +142,7 @@ People that contributed to Terminator in other ways.
|
|||
* Maxim Derkach
|
||||
* Mats Henrikson
|
||||
* Nizar Kerkeni
|
||||
* "Data"
|
||||
* Cristian Grada
|
||||
* "zhuqin"
|
||||
* and many others.
|
||||
|
|
|
@ -151,14 +151,14 @@ terminator 1.90:
|
|||
* Preselect the current layout when opening Prefs window, and also
|
||||
save config after using the layout 'Save' button (Steve Boddy)
|
||||
* Set some default shortcuts based on my preference (Steve Boddy)
|
||||
* Add high contast icons, make the main window icon loading work
|
||||
* Add high contrast icons, make the main window icon loading work
|
||||
better, and respect the theme changes (Steve Boddy, LP#305579)
|
||||
* Additional windows icon loading works better, and respect the
|
||||
theme changes (LP#305579)
|
||||
* Adjust the config section name to InactivityWatch for
|
||||
InactivityWatch class
|
||||
* Add a new setting for ActivityWatch to set the time between
|
||||
activty notifications
|
||||
activity notifications
|
||||
* BIG update to translations, due to additions and changes.
|
||||
* Make the random default group names translatable
|
||||
* Add and improve the mnemonics in the group menu
|
||||
|
@ -170,7 +170,7 @@ terminator 1.90:
|
|||
* A few changes to doc strings to make the autodoc prettier
|
||||
* Added help shortcut, by default F1 to open the local manual
|
||||
* Added button to About tab (in Prefs window) to launch manual
|
||||
* Small tweak to setup.py to seperate build and install, and
|
||||
* Small tweak to setup.py to separate build and install, and
|
||||
always attempt to install manual by default.
|
||||
* Sort entries in config file, so they don't jump around every
|
||||
time config is saved for easier troubleshooting
|
||||
|
@ -258,7 +258,7 @@ terminator 1.90:
|
|||
terminator class
|
||||
* Fix the scroll up/down key bindings to use gtk3 method
|
||||
* Fix getting the handle size (gtk2->gtk3 diff)
|
||||
* Fix scrollbar doubleclick rebalancing (LP#1423686)
|
||||
* Fix scrollbar double-click rebalancing (LP#1423686)
|
||||
* Fix allocations (no longer an attribute) when balancing
|
||||
(gtk2->gtk3 diff)
|
||||
* Fix allocations not having the x,y position just w,h (gtk3 bug?
|
||||
|
@ -351,7 +351,7 @@ terminator 1.90:
|
|||
(Egmont Koblinger, LP#1518108)
|
||||
* Fix copy on selection to work on already open terminals (Egmont
|
||||
Koblinger, LP#1518109)
|
||||
* Fix unwanted seperator size change, and increase granularity of
|
||||
* Fix unwanted separator size change, and increase granularity of
|
||||
dim/transparent sliders (Egmont Koblinger, LP#1518114)
|
||||
* Fix cwd when new term spawned from a symlinked directory (Egmont
|
||||
Koblinger, LP#1518554)
|
||||
|
|
233
CHANGELOG.md
233
CHANGELOG.md
|
@ -1,6 +1,236 @@
|
|||
# Changelog
|
||||
|
||||
## [v2.1.1](https://github.com/gnome-terminator/terminator/tree/v2.1.1) (2021-04-01)
|
||||
## [v2.1.3](https://github.com/gnome-terminator/terminator/tree/v2.1.3) (2023-03-01)
|
||||
|
||||
[Full Changelog](https://github.com/gnome-terminator/terminator/compare/v2.1.2...v2.1.3)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- Option to set split ratio of terminals [\#708](https://github.com/gnome-terminator/terminator/issues/708)
|
||||
- Add option to set given terminal to "read only" [\#649](https://github.com/gnome-terminator/terminator/issues/649)
|
||||
- background image - respect ratio [\#644](https://github.com/gnome-terminator/terminator/issues/644)
|
||||
- Shortcut for autosplit h/v depending on active terminal size [\#613](https://github.com/gnome-terminator/terminator/issues/613)
|
||||
- Feature: Insert terminal name to terminal \(for broadcast\) [\#540](https://github.com/gnome-terminator/terminator/issues/540)
|
||||
- Background image drawing modes and alignment [\#713](https://github.com/gnome-terminator/terminator/pull/713) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Zoom on notebook even if there is only one terminal in the tab + keep tab position and label in notebook rotation [\#589](https://github.com/gnome-terminator/terminator/pull/589) ([Vulcalien](https://github.com/Vulcalien))
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- Resets the tab title on rotation [\#624](https://github.com/gnome-terminator/terminator/issues/624)
|
||||
- - bug context menu \(right click\)-\>layouts-\>"Layout Name" always selec… [\#653](https://github.com/gnome-terminator/terminator/pull/653) ([vssdeo](https://github.com/vssdeo))
|
||||
- Fix missing icons when started with Ctrl-Alt-T [\#628](https://github.com/gnome-terminator/terminator/pull/628) ([MihaiBabiac](https://github.com/MihaiBabiac))
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Terminator not working with latest version of python-cairo [\#711](https://github.com/gnome-terminator/terminator/issues/711)
|
||||
- \[Bug\]\[Fedora 36 KDE\]\[terminator v2.1.1\] "broadcast group" sends each terminal input/keystroke depending on the group's members count to everyone in the group [\#704](https://github.com/gnome-terminator/terminator/issues/704)
|
||||
- reset\_clear doesn't show new prompt [\#703](https://github.com/gnome-terminator/terminator/issues/703)
|
||||
- `-x`/`--execute` still broken [\#702](https://github.com/gnome-terminator/terminator/issues/702)
|
||||
- Make unfocused terminal text transparent instead of blacker [\#694](https://github.com/gnome-terminator/terminator/issues/694)
|
||||
- A translucent separation occurs between terminals [\#687](https://github.com/gnome-terminator/terminator/issues/687)
|
||||
- \[2.1.2\] Foreground processes started in new window close immediately [\#673](https://github.com/gnome-terminator/terminator/issues/673)
|
||||
- Is there a official page to maintain a offical/third-part plugin list? [\#668](https://github.com/gnome-terminator/terminator/issues/668)
|
||||
- What happened to the change terminal titlebar under preferences? [\#664](https://github.com/gnome-terminator/terminator/issues/664)
|
||||
- \[Feature Request\] - In the Context Menu\(Right-Click\) show keyboard shortcuts / accelarators [\#662](https://github.com/gnome-terminator/terminator/issues/662)
|
||||
- terminator: error: unrecognized arguments [\#660](https://github.com/gnome-terminator/terminator/issues/660)
|
||||
- Plugin Submission : SaveLastSessionLayout Uses Layout to Auto-Save Last session and CWD on Terminal Window Close [\#654](https://github.com/gnome-terminator/terminator/issues/654)
|
||||
- Loading layout loads only the last added layout from context menu \(right click\) [\#652](https://github.com/gnome-terminator/terminator/issues/652)
|
||||
- When can we expect a new release? [\#650](https://github.com/gnome-terminator/terminator/issues/650)
|
||||
- Profiles for different Shells - is it possible? how does it work? [\#640](https://github.com/gnome-terminator/terminator/issues/640)
|
||||
- Double input to broadcasted group [\#623](https://github.com/gnome-terminator/terminator/issues/623)
|
||||
- background images only displaying on default profile [\#595](https://github.com/gnome-terminator/terminator/issues/595)
|
||||
- The repository 'https://ppa.launchpadcontent.net/mattrose/terminator/ubuntu jammy Release' does not have a Release file. [\#594](https://github.com/gnome-terminator/terminator/issues/594)
|
||||
- Increase the usage of augmented assignment statements [\#555](https://github.com/gnome-terminator/terminator/issues/555)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Better distinguishing of inactive windows from the active one, by changing the background brightness [\#709](https://github.com/gnome-terminator/terminator/pull/709) ([KKoovalsky](https://github.com/KKoovalsky))
|
||||
- Ctrl+Click on group button automatically creates groups whenever needed [\#691](https://github.com/gnome-terminator/terminator/pull/691) ([nicbn](https://github.com/nicbn))
|
||||
- \[bug 680\] Open up keybindings page on keypress \#680 [\#686](https://github.com/gnome-terminator/terminator/pull/686) ([vssdeo](https://github.com/vssdeo))
|
||||
- Translate '/po/terminator.pot' in 'pt\_BR' [\#684](https://github.com/gnome-terminator/terminator/pull/684) ([transifex-integration[bot]](https://github.com/apps/transifex-integration))
|
||||
- Plugin and Group menu item that inserts the name of the terminal. [\#683](https://github.com/gnome-terminator/terminator/pull/683) ([mattrose](https://github.com/mattrose))
|
||||
- Add Readonly toggle to popup menu [\#679](https://github.com/gnome-terminator/terminator/pull/679) ([mattrose](https://github.com/mattrose))
|
||||
- Fix argument handling of the --execute flag [\#678](https://github.com/gnome-terminator/terminator/pull/678) ([shawn-ogg](https://github.com/shawn-ogg))
|
||||
- Remove all ibus workarounds [\#674](https://github.com/gnome-terminator/terminator/pull/674) ([mattrose](https://github.com/mattrose))
|
||||
- \[bug 613\] - Shortcut for autosplit h/v depending on active terminal … [\#671](https://github.com/gnome-terminator/terminator/pull/671) ([vssdeo](https://github.com/vssdeo))
|
||||
- \[bug 662\] \[Feature Request\] - In the Context Menu\(Right-Click\) show k… [\#666](https://github.com/gnome-terminator/terminator/pull/666) ([vssdeo](https://github.com/vssdeo))
|
||||
- \[bug 559\] Add menu autocomplete \#559 [\#665](https://github.com/gnome-terminator/terminator/pull/665) ([vssdeo](https://github.com/vssdeo))
|
||||
- \[bug 662\] \[Feature Request\] - In the Context Menu\(Right-Click\) show k… [\#663](https://github.com/gnome-terminator/terminator/pull/663) ([vssdeo](https://github.com/vssdeo))
|
||||
- \[bug 654\] - Plugin Submission : SaveLastSessionLayout Uses Layout to … [\#661](https://github.com/gnome-terminator/terminator/pull/661) ([vssdeo](https://github.com/vssdeo))
|
||||
- Update terminal.py [\#659](https://github.com/gnome-terminator/terminator/pull/659) ([flaviosteimacher](https://github.com/flaviosteimacher))
|
||||
- docs: Change number of columns in repology badge [\#657](https://github.com/gnome-terminator/terminator/pull/657) ([pktiuk](https://github.com/pktiuk))
|
||||
- Plugin Submission : SaveLastSessionLayout Uses Layout to Auto-Save Last session and CWD [\#655](https://github.com/gnome-terminator/terminator/pull/655) ([vssdeo](https://github.com/vssdeo))
|
||||
- Fix typos [\#651](https://github.com/gnome-terminator/terminator/pull/651) ([kianmeng](https://github.com/kianmeng))
|
||||
- data: Remove GNOME branding [\#647](https://github.com/gnome-terminator/terminator/pull/647) ([sabriunal](https://github.com/sabriunal))
|
||||
- this line has an extra ';' symbol [\#632](https://github.com/gnome-terminator/terminator/pull/632) ([xuezhixin](https://github.com/xuezhixin))
|
||||
- Use the term 'zero padded' instead of 'padded'. [\#189](https://github.com/gnome-terminator/terminator/pull/189) ([phidebian](https://github.com/phidebian))
|
||||
|
||||
## [v2.1.2](https://github.com/gnome-terminator/terminator/tree/v2.1.2) (2022-10-19)
|
||||
|
||||
[Full Changelog](https://github.com/gnome-terminator/terminator/compare/v2.1.1...v2.1.2)
|
||||
|
||||
**Implemented enhancements:**
|
||||
|
||||
- \[Feature request\] move layout/session definitions into separate files with a dedicated extension in a dedicated directory [\#604](https://github.com/gnome-terminator/terminator/issues/604)
|
||||
- Bash completion [\#495](https://github.com/gnome-terminator/terminator/issues/495)
|
||||
- Changing cursor foreground color [\#467](https://github.com/gnome-terminator/terminator/issues/467)
|
||||
- Wallpaper configuration option from terminal [\#466](https://github.com/gnome-terminator/terminator/issues/466)
|
||||
- Launch a new command in a vertical or horizontal split. [\#446](https://github.com/gnome-terminator/terminator/issues/446)
|
||||
- Separators is wider after upgrading to ubuntu 21.04 [\#445](https://github.com/gnome-terminator/terminator/issues/445)
|
||||
- Broadcast profile changes to existing terminals [\#421](https://github.com/gnome-terminator/terminator/issues/421)
|
||||
- How to deactivate the middle mouse button paste? [\#415](https://github.com/gnome-terminator/terminator/issues/415)
|
||||
- Feature request: expose the window and terminal title setting features in context menu [\#405](https://github.com/gnome-terminator/terminator/issues/405)
|
||||
- Integrate --layout-json command line parameter so that it can be passed to dbus [\#401](https://github.com/gnome-terminator/terminator/issues/401)
|
||||
- Feature request: move titlebar colors config to profiles, rather than global settings [\#379](https://github.com/gnome-terminator/terminator/issues/379)
|
||||
- Visual aids [\#367](https://github.com/gnome-terminator/terminator/issues/367)
|
||||
- Feature Request: detach tab [\#302](https://github.com/gnome-terminator/terminator/issues/302)
|
||||
- Pls add version on OS X [\#283](https://github.com/gnome-terminator/terminator/issues/283)
|
||||
|
||||
**Fixed bugs:**
|
||||
|
||||
- Ctrl+Shift+Mouse-Scroll triggers Ctrl+Mouse Scroll [\#606](https://github.com/gnome-terminator/terminator/issues/606)
|
||||
- None isn't a valid value of keybindings config anymore [\#548](https://github.com/gnome-terminator/terminator/issues/548)
|
||||
- psutil.AccessDenied: psutil.AccessDenied \(pid=1\) [\#539](https://github.com/gnome-terminator/terminator/issues/539)
|
||||
- Find functionality does not show matches on same line [\#511](https://github.com/gnome-terminator/terminator/issues/511)
|
||||
- Ratio and/or position on a config file's layout ignored [\#433](https://github.com/gnome-terminator/terminator/issues/433)
|
||||
- Black background remains after hide\_window [\#425](https://github.com/gnome-terminator/terminator/issues/425)
|
||||
- Cannot create working config file with 5 terminals [\#409](https://github.com/gnome-terminator/terminator/issues/409)
|
||||
- Terminal loses focus versus tab title [\#400](https://github.com/gnome-terminator/terminator/issues/400)
|
||||
- Terminal title-bars are transparent on first start [\#392](https://github.com/gnome-terminator/terminator/issues/392)
|
||||
|
||||
**Closed issues:**
|
||||
|
||||
- Hide window in waybar [\#633](https://github.com/gnome-terminator/terminator/issues/633)
|
||||
- Split window profile incorrect inheritance [\#631](https://github.com/gnome-terminator/terminator/issues/631)
|
||||
- \[Question\] is there a way to prevent Terminator from dereferencing symbolic links? [\#617](https://github.com/gnome-terminator/terminator/issues/617)
|
||||
- Terminator not working on RHEL 9 [\#616](https://github.com/gnome-terminator/terminator/issues/616)
|
||||
- Is there a right-click menu in sway? [\#614](https://github.com/gnome-terminator/terminator/issues/614)
|
||||
- Set Terminator tab title via command line [\#603](https://github.com/gnome-terminator/terminator/issues/603)
|
||||
- Unable to launch KeyError: b'Rss:' [\#601](https://github.com/gnome-terminator/terminator/issues/601)
|
||||
- Cannot view emoji [\#599](https://github.com/gnome-terminator/terminator/issues/599)
|
||||
- Clickable filepath:rownumber [\#598](https://github.com/gnome-terminator/terminator/issues/598)
|
||||
- Feature Request: set initial window size in preferences [\#593](https://github.com/gnome-terminator/terminator/issues/593)
|
||||
- Update the authorship in README [\#586](https://github.com/gnome-terminator/terminator/issues/586)
|
||||
- xbindkeys doesn't work in Terminator, but works in other apps [\#582](https://github.com/gnome-terminator/terminator/issues/582)
|
||||
- Unable to load Keybinder module [\#580](https://github.com/gnome-terminator/terminator/issues/580)
|
||||
- terminator for MacOS user [\#578](https://github.com/gnome-terminator/terminator/issues/578)
|
||||
- UTF-8 character breaks terminator config file [\#577](https://github.com/gnome-terminator/terminator/issues/577)
|
||||
- Terminator need to highlight search string [\#575](https://github.com/gnome-terminator/terminator/issues/575)
|
||||
- Custom Commands NOT Working in Linux Mint 20.3 [\#573](https://github.com/gnome-terminator/terminator/issues/573)
|
||||
- Can't add/remove terminal panes from layout editor [\#572](https://github.com/gnome-terminator/terminator/issues/572)
|
||||
- Language not applied after build [\#569](https://github.com/gnome-terminator/terminator/issues/569)
|
||||
- Moving Cursor Word By Word using ALT + Arrows [\#566](https://github.com/gnome-terminator/terminator/issues/566)
|
||||
- Enabling "putty style paste" causes context menu to be unreachable with 2-button mouse [\#565](https://github.com/gnome-terminator/terminator/issues/565)
|
||||
- Setting stty options [\#564](https://github.com/gnome-terminator/terminator/issues/564)
|
||||
- Switch focus and splits don't work when terminal is zoomed [\#550](https://github.com/gnome-terminator/terminator/issues/550)
|
||||
- Will terminator ever consider picking up ligature support? [\#543](https://github.com/gnome-terminator/terminator/issues/543)
|
||||
- feature request: Implement line spacing as a configuration option [\#542](https://github.com/gnome-terminator/terminator/issues/542)
|
||||
- Change separator color [\#538](https://github.com/gnome-terminator/terminator/issues/538)
|
||||
- remotinator split and execute command — cannot determine uuid [\#537](https://github.com/gnome-terminator/terminator/issues/537)
|
||||
- Split vertical keyboard don't work on debian 11 [\#535](https://github.com/gnome-terminator/terminator/issues/535)
|
||||
- Vte.Terminal\(\).set\_encoding deprecated [\#534](https://github.com/gnome-terminator/terminator/issues/534)
|
||||
- Fix Keyboard Input [\#533](https://github.com/gnome-terminator/terminator/issues/533)
|
||||
- group broadcasting switched on/off for all groups [\#532](https://github.com/gnome-terminator/terminator/issues/532)
|
||||
- Drop a file from nautilus onto terminator window no longer works \(it used to paste the path a la gnome terminal\) [\#530](https://github.com/gnome-terminator/terminator/issues/530)
|
||||
- Crash everytime after encoding is changed to TCVN [\#529](https://github.com/gnome-terminator/terminator/issues/529)
|
||||
- Change the color of the current tab to highlight it better [\#522](https://github.com/gnome-terminator/terminator/issues/522)
|
||||
- Feature: Configuration to colorize split screens from default grey colour, Issue: Remove ability to select 0 and 1 handle\_size from configuration gui [\#518](https://github.com/gnome-terminator/terminator/issues/518)
|
||||
- Error when using "Insert Terminal Number" \(Solved?\) [\#517](https://github.com/gnome-terminator/terminator/issues/517)
|
||||
- Auto-scroll to the cursor position when typing [\#513](https://github.com/gnome-terminator/terminator/issues/513)
|
||||
- hide\_window mapped with Shift+Control+Alt+$an\_alphabet catches Control+Alt+$an\_alphabet instead [\#509](https://github.com/gnome-terminator/terminator/issues/509)
|
||||
- Cursor is blinking on inactive windows [\#508](https://github.com/gnome-terminator/terminator/issues/508)
|
||||
- custom commands are not persisted [\#505](https://github.com/gnome-terminator/terminator/issues/505)
|
||||
- Terminator slow to close if xclip was invoked [\#503](https://github.com/gnome-terminator/terminator/issues/503)
|
||||
- terminator failing to open on ubuntu 21.04 [\#502](https://github.com/gnome-terminator/terminator/issues/502)
|
||||
- Monospace Bold isn't working [\#497](https://github.com/gnome-terminator/terminator/issues/497)
|
||||
- No prompt when closing terminator now, despite say vim running in terminal [\#496](https://github.com/gnome-terminator/terminator/issues/496)
|
||||
- suppor for sixel graphics [\#492](https://github.com/gnome-terminator/terminator/issues/492)
|
||||
- which is deprecated and should not be used [\#488](https://github.com/gnome-terminator/terminator/issues/488)
|
||||
- could tmux Key bindings using in terminator? [\#474](https://github.com/gnome-terminator/terminator/issues/474)
|
||||
- Support OpenType font features [\#473](https://github.com/gnome-terminator/terminator/issues/473)
|
||||
- Crash on Terminal resize when using fish [\#458](https://github.com/gnome-terminator/terminator/issues/458)
|
||||
- Incorrect layout sorting in notebook [\#453](https://github.com/gnome-terminator/terminator/issues/453)
|
||||
- Coloring Tabs / Tabs Appearance [\#449](https://github.com/gnome-terminator/terminator/issues/449)
|
||||
- Option to disable system notifications [\#448](https://github.com/gnome-terminator/terminator/issues/448)
|
||||
- Window vanishes [\#447](https://github.com/gnome-terminator/terminator/issues/447)
|
||||
- Multiple Terminator instances randomly crash on Ubuntu 20.04 [\#444](https://github.com/gnome-terminator/terminator/issues/444)
|
||||
- Option to open URLs with just a click [\#434](https://github.com/gnome-terminator/terminator/issues/434)
|
||||
- Doubled input from keyboard when broadcasting in tabs [\#432](https://github.com/gnome-terminator/terminator/issues/432)
|
||||
- Does this tool support macOS Big Sur? [\#430](https://github.com/gnome-terminator/terminator/issues/430)
|
||||
- terminator is slow [\#426](https://github.com/gnome-terminator/terminator/issues/426)
|
||||
- Add more fundamental "editor-ish" feature [\#424](https://github.com/gnome-terminator/terminator/issues/424)
|
||||
- Allow disabling and resetting keybindings in Preferences [\#423](https://github.com/gnome-terminator/terminator/issues/423)
|
||||
- Project based layout [\#418](https://github.com/gnome-terminator/terminator/issues/418)
|
||||
- Unable to Install from Source [\#412](https://github.com/gnome-terminator/terminator/issues/412)
|
||||
- CTRL+A behaviour abnormal [\#384](https://github.com/gnome-terminator/terminator/issues/384)
|
||||
- regexp/command hyperlink handler [\#381](https://github.com/gnome-terminator/terminator/issues/381)
|
||||
- Update PPA to 2.1.0 [\#374](https://github.com/gnome-terminator/terminator/issues/374)
|
||||
- Create Snap and Flatpak for Terminator [\#206](https://github.com/gnome-terminator/terminator/issues/206)
|
||||
- Remove gtk-update-icon-cache handling in setup [\#102](https://github.com/gnome-terminator/terminator/issues/102)
|
||||
|
||||
**Merged pull requests:**
|
||||
|
||||
- update translations [\#656](https://github.com/gnome-terminator/terminator/pull/656) ([mattrose](https://github.com/mattrose))
|
||||
- Terminal ctrl+mousewheel: do not try to zoom if shift is pressed [\#609](https://github.com/gnome-terminator/terminator/pull/609) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- More fixes to the Color pickers in the Preferences Editor [\#592](https://github.com/gnome-terminator/terminator/pull/592) ([mattrose](https://github.com/mattrose))
|
||||
- Modification in the /terminatorlib/prefseditor.py file [\#590](https://github.com/gnome-terminator/terminator/pull/590) ([amaan211](https://github.com/amaan211))
|
||||
- Various README fixes [\#588](https://github.com/gnome-terminator/terminator/pull/588) ([mattrose](https://github.com/mattrose))
|
||||
- Remove duplicated info in some debug messages [\#576](https://github.com/gnome-terminator/terminator/pull/576) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Added hotfix for \#78 that deletes GTK\_IM\_MODULE environment variable [\#574](https://github.com/gnome-terminator/terminator/pull/574) ([ozzdemir](https://github.com/ozzdemir))
|
||||
- Fix POTFILES.in + update translation files [\#571](https://github.com/gnome-terminator/terminator/pull/571) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Add initial flatpak-spawn support [\#570](https://github.com/gnome-terminator/terminator/pull/570) ([JayDoubleu](https://github.com/JayDoubleu))
|
||||
- Fix: handle\_size treated as cell\_width [\#561](https://github.com/gnome-terminator/terminator/pull/561) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Transifex translations from Dec 20 2021 [\#558](https://github.com/gnome-terminator/terminator/pull/558) ([mattrose](https://github.com/mattrose))
|
||||
- Unzoom terminal on interaction [\#553](https://github.com/gnome-terminator/terminator/pull/553) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Add ability to configure cell width \(font character spacing\) [\#552](https://github.com/gnome-terminator/terminator/pull/552) ([FernandoBasso](https://github.com/FernandoBasso))
|
||||
- Improve and optimize the code for background images [\#551](https://github.com/gnome-terminator/terminator/pull/551) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Fix: 'None' value for keybindings breaks editor [\#549](https://github.com/gnome-terminator/terminator/pull/549) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- don't traceback while searching through /proc [\#546](https://github.com/gnome-terminator/terminator/pull/546) ([mattrose](https://github.com/mattrose))
|
||||
- os.environ does not have LANGUAGE in Centos8. [\#544](https://github.com/gnome-terminator/terminator/pull/544) ([xuezhixin](https://github.com/xuezhixin))
|
||||
- Remove Encoding settings \(deprecated\) [\#536](https://github.com/gnome-terminator/terminator/pull/536) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Allow multiline commands in Custom Commands plugin [\#525](https://github.com/gnome-terminator/terminator/pull/525) ([VDuchon](https://github.com/VDuchon))
|
||||
- Add paste\_selection keybinding. [\#520](https://github.com/gnome-terminator/terminator/pull/520) ([rkitover](https://github.com/rkitover))
|
||||
- Fix terminal separator size setting [\#519](https://github.com/gnome-terminator/terminator/pull/519) ([caprinux](https://github.com/caprinux))
|
||||
- Automatically focus the Keybindings menu [\#516](https://github.com/gnome-terminator/terminator/pull/516) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Fix hide\_window keybinding unset check [\#515](https://github.com/gnome-terminator/terminator/pull/515) ([tomty89](https://github.com/tomty89))
|
||||
- Add 'Disable mouse paste' [\#512](https://github.com/gnome-terminator/terminator/pull/512) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Bug Fix: hide\_window keybinding ignores Shift key [\#510](https://github.com/gnome-terminator/terminator/pull/510) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Improve argument parser + implement bash completion [\#506](https://github.com/gnome-terminator/terminator/pull/506) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- add Set Window Title item to context menu [\#501](https://github.com/gnome-terminator/terminator/pull/501) ([mattrose](https://github.com/mattrose))
|
||||
- BugFix: terminal won't restart if there is no custom command [\#500](https://github.com/gnome-terminator/terminator/pull/500) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Add a "Copy" button to clone profiles [\#499](https://github.com/gnome-terminator/terminator/pull/499) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Make tabs detachable + minor bugfix [\#494](https://github.com/gnome-terminator/terminator/pull/494) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- remove gtk-update-icon-cache from setup.py [\#493](https://github.com/gnome-terminator/terminator/pull/493) ([mattrose](https://github.com/mattrose))
|
||||
- remove vsplit\_cmd and hsplit\_cmd from ipc.py, superseded by newer hsp… [\#491](https://github.com/gnome-terminator/terminator/pull/491) ([mattrose](https://github.com/mattrose))
|
||||
- Update tr.po [\#490](https://github.com/gnome-terminator/terminator/pull/490) ([StephenPeringer](https://github.com/StephenPeringer))
|
||||
- add bg\_img and bg\_img\_all commands to remotinator [\#487](https://github.com/gnome-terminator/terminator/pull/487) ([mattrose](https://github.com/mattrose))
|
||||
- Cursor: make it possible to change foreground color \(\#467\) [\#486](https://github.com/gnome-terminator/terminator/pull/486) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- fixes for --config-json [\#484](https://github.com/gnome-terminator/terminator/pull/484) ([mattrose](https://github.com/mattrose))
|
||||
- GUI: set all CheckButtons off to avoid blinking + remove grid empty rows/columns [\#482](https://github.com/gnome-terminator/terminator/pull/482) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Move titlebar settings to profiles \(\#379\) [\#481](https://github.com/gnome-terminator/terminator/pull/481) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Issue 365 [\#480](https://github.com/gnome-terminator/terminator/pull/480) ([mattrose](https://github.com/mattrose))
|
||||
- Fix typo in `po/de.po` [\#476](https://github.com/gnome-terminator/terminator/pull/476) ([dennis-benzinger-hybris](https://github.com/dennis-benzinger-hybris))
|
||||
- add parameters to remotinator split commands [\#472](https://github.com/gnome-terminator/terminator/pull/472) ([mattrose](https://github.com/mattrose))
|
||||
- add switch\_profile\_all command to remotinator [\#471](https://github.com/gnome-terminator/terminator/pull/471) ([mattrose](https://github.com/mattrose))
|
||||
- Set CAN\_FOCUS to False for notebook widgets [\#470](https://github.com/gnome-terminator/terminator/pull/470) ([marktimarev](https://github.com/marktimarev))
|
||||
- tell titlebar to start focussed out if it does not have focus [\#462](https://github.com/gnome-terminator/terminator/pull/462) ([mattrose](https://github.com/mattrose))
|
||||
- Update translation [\#460](https://github.com/gnome-terminator/terminator/pull/460) ([pktiuk](https://github.com/pktiuk))
|
||||
- Add new plugin for opening current directory using right mouse button [\#459](https://github.com/gnome-terminator/terminator/pull/459) ([pktiuk](https://github.com/pktiuk))
|
||||
- Fixed Issue \#425 \(hide\_window will try to show a destroyed window\) [\#456](https://github.com/gnome-terminator/terminator/pull/456) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Incorrect layout sorting in notebook [\#454](https://github.com/gnome-terminator/terminator/pull/454) ([AsadJivani](https://github.com/AsadJivani))
|
||||
- Closing tab on middle mouse button press [\#451](https://github.com/gnome-terminator/terminator/pull/451) ([kocho1984](https://github.com/kocho1984))
|
||||
- Bug Fix: 'Clear selection on copy' is always unchecked [\#443](https://github.com/gnome-terminator/terminator/pull/443) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Fixed issue \#433 \(layout sometimes ignores ratio\) [\#442](https://github.com/gnome-terminator/terminator/pull/442) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Fix the background image loading exception handling [\#436](https://github.com/gnome-terminator/terminator/pull/436) ([GerbenWelter](https://github.com/GerbenWelter))
|
||||
- Added set\_tab\_title command to remotinator. [\#435](https://github.com/gnome-terminator/terminator/pull/435) ([yusufgungor](https://github.com/yusufgungor))
|
||||
- Ukrainianized by 93% [\#428](https://github.com/gnome-terminator/terminator/pull/428) ([balac-ode](https://github.com/balac-ode))
|
||||
- Fixed geometry hints [\#416](https://github.com/gnome-terminator/terminator/pull/416) ([Vulcalien](https://github.com/Vulcalien))
|
||||
- Feat+run cmd on match [\#399](https://github.com/gnome-terminator/terminator/pull/399) ([nojhan](https://github.com/nojhan))
|
||||
- add feat: config to open links with single click [\#398](https://github.com/gnome-terminator/terminator/pull/398) ([nojhan](https://github.com/nojhan))
|
||||
- Add new vsplit hsplit cmd dbus [\#390](https://github.com/gnome-terminator/terminator/pull/390) ([TheBigS](https://github.com/TheBigS))
|
||||
- Added new get\_focused\_terminal dbus command which returns uuid of current focused terminal [\#389](https://github.com/gnome-terminator/terminator/pull/389) ([TheBigS](https://github.com/TheBigS))
|
||||
|
||||
## [v2.1.1](https://github.com/gnome-terminator/terminator/tree/v2.1.1) (2021-04-02)
|
||||
|
||||
[Full Changelog](https://github.com/gnome-terminator/terminator/compare/v2.1.0...v2.1.1)
|
||||
|
||||
|
@ -43,6 +273,7 @@
|
|||
|
||||
**Merged pull requests:**
|
||||
|
||||
- Release version 2.1.1 [\#413](https://github.com/gnome-terminator/terminator/pull/413) ([mattrose](https://github.com/mattrose))
|
||||
- i18n: pt\_BR: add missing space in translations with shortcuts [\#406](https://github.com/gnome-terminator/terminator/pull/406) ([terceiro](https://github.com/terceiro))
|
||||
- Fixed race condition when calling grab\_focus after underlying vte could be closed [\#388](https://github.com/gnome-terminator/terminator/pull/388) ([TheBigS](https://github.com/TheBigS))
|
||||
- disable 2.7 tests until we can figure out how to run them in GH [\#386](https://github.com/gnome-terminator/terminator/pull/386) ([mattrose](https://github.com/mattrose))
|
||||
|
|
|
@ -117,5 +117,5 @@ Ubuntu | copied from Debian | [launchpad.net/ubuntu] | | [bugs.launchpad.n
|
|||
|
||||
A more extensive list can be found on Repology:
|
||||
|
||||
[![Packaging status](https://repology.org/badge/vertical-allrepos/terminator.svg)](https://repology.org/project/terminator/versions)
|
||||
[![Packaging status](https://repology.org/badge/vertical-allrepos/terminator.svg?columns=3)](https://repology.org/project/terminator/versions)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
Terminator
|
||||
==========
|
||||
|
||||
by Chris Jones <cmsj@tenshu.net> and others.
|
||||
Started by Chris Jones <cmsj@tenshu.net> in 2007, maintained from 2014 to 2020 by Stephen Boddy, currently maintained by Matt Rose. Terminator has had contributions from countless others listed in the [AUTHORS](AUTHORS) file
|
||||
|
||||
## Description
|
||||
|
||||
|
@ -82,6 +82,9 @@ vte-demo.py was not my code and is copyright its original author. While it
|
|||
does not contain any specific licensing information in it, the VTE package
|
||||
appears to be licenced under LGPL v2.
|
||||
|
||||
The original version 0.1 release of Terminator was on Saturday, 28 July 2007.
|
||||
[Here is the archived Terminator 0.1 release announcement](http://cmsj.net/2007/07/28/terminator-01-released.html)
|
||||
|
||||
## Licensing
|
||||
|
||||
The gedit terminal plugin is part of the gedit-plugins package, which is
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
The JSONs files in this directory are example config files used by `--config-json` option.
|
||||
|
||||
Once this feature would be documented officialy this directoy can be removed.
|
||||
Once this feature would be documented officially this directory can be removed.
|
||||
|
||||
Example:
|
||||
```
|
||||
|
|
|
@ -47,4 +47,5 @@
|
|||
</screenshots>
|
||||
<url type="homepage">https://github.com/gnome-terminator/terminator</url>
|
||||
<updatecontact>terminator@lazyfrosch.de</updatecontact>
|
||||
<developer_name>The Terminator Team</developer_name>
|
||||
</component>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
asciidoctor -b manpage terminator.adoc
|
||||
asciidoctor -b manpage terminator_config.adoc
|
697
doc/terminator.1
697
doc/terminator.1
|
@ -1,286 +1,485 @@
|
|||
.TH "TERMINATOR" "1" "Jan 5, 2008" "" ""
|
||||
'\" t
|
||||
.\" Title: terminator
|
||||
.\" Author: [see the "AUTHOR(S)" section]
|
||||
.\" Generator: Asciidoctor 2.0.18
|
||||
.\" Date: 2023-04-01
|
||||
.\" Manual: Manual for Terminator
|
||||
.\" Source: Terminator
|
||||
.\" Language: English
|
||||
.\"
|
||||
.TH "TERMINATOR" "1" "2023-04-01" "Terminator" "Manual for Terminator"
|
||||
.ie \n(.g .ds Aq \(aq
|
||||
.el .ds Aq '
|
||||
.ss \n[.ss] 0
|
||||
.nh
|
||||
.ad l
|
||||
.de URL
|
||||
\fI\\$2\fP <\\$1>\\$3
|
||||
..
|
||||
.als MTO URL
|
||||
.if \n[.g] \{\
|
||||
. mso www.tmac
|
||||
. am URL
|
||||
. ad l
|
||||
. .
|
||||
. am MTO
|
||||
. ad l
|
||||
. .
|
||||
. LINKSTYLE blue R < >
|
||||
.\}
|
||||
.SH "NAME"
|
||||
Terminator \- Multiple GNOME terminals in one window
|
||||
terminator \- multiple GNOME terminals in one window
|
||||
.SH "SYNOPSIS"
|
||||
.B terminator
|
||||
.RI [ options ]
|
||||
.br
|
||||
.sp
|
||||
\fBterminator\fP [\fIoptions\fP]
|
||||
.SH "DESCRIPTION"
|
||||
.sp
|
||||
This manual page documents \fBTerminator\fP, a terminal emulator application.
|
||||
.PP
|
||||
.sp
|
||||
\fBTerminator\fP is a program that allows users to set up flexible
|
||||
arrangements of GNOME terminals. It is aimed at those who normally
|
||||
arrange lots of terminals near each other, but don't want to use a
|
||||
arrange lots of terminals near each other, but don\(cqt want to use a
|
||||
frame based window manager.
|
||||
.SH "OPTIONS"
|
||||
This program follow the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`\-').
|
||||
.sp
|
||||
This program follows the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`\-\*(Aq).
|
||||
A summary of options is included below.
|
||||
.TP
|
||||
.B \-h, \-\-help
|
||||
Show summary of options
|
||||
.TP
|
||||
.B \-v, \-\-version
|
||||
Show the version of the Terminator installation
|
||||
.TP
|
||||
.B \-m, \-\-maximise
|
||||
Start with a maximised window
|
||||
.B \-M, \-\-maximize
|
||||
Start with a maximized window
|
||||
.TP
|
||||
.B \-f, \-\-fullscreen
|
||||
Start with a fullscreen window
|
||||
.TP
|
||||
.B \-b, \-\-borderless
|
||||
Instruct the window manager not to render borders/decoration on the
|
||||
Terminator window (this works well with \-m)
|
||||
.TP
|
||||
.B \-H, \-\-hidden
|
||||
.sp
|
||||
\fB\-h\fP, \fB\-\-help\fP
|
||||
.RS 4
|
||||
Show summary of options.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-v\fP, \fB\-\-version\fP
|
||||
.RS 4
|
||||
Show the version of the Terminator installation.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-m\fP, \fB\-M\fP, \fB\-\-maximise\fP, \fB\-\-maximize\fP
|
||||
.RS 4
|
||||
Start with a maximised window.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-f\fP, \fB\-\-fullscreen\fP
|
||||
.RS 4
|
||||
Start with a fullscreen window.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-b\fP, \fB\-\-borderless\fP
|
||||
.RS 4
|
||||
Instruct the window manager not to render borders/decorations on the
|
||||
Terminator window (this works well with \-\-maximise).
|
||||
.RE
|
||||
.sp
|
||||
\fB\-H\fP, \fB\-\-hidden\fP
|
||||
.RS 4
|
||||
Hide the Terminator window by default. Its visibility can be toggled
|
||||
with the \fBhide_window\fR keyboard shortcut (Ctrl-Shift-Alt-a by default)
|
||||
.TP
|
||||
.B \-T, \-\-title
|
||||
Force the Terminator window to use a specific name rather than updating it dynamically
|
||||
based on the wishes of the child shell.
|
||||
.TP
|
||||
.B \-\-geometry=GEOMETRY
|
||||
Specifies the preferred size and position of Terminator's window; see X(7).
|
||||
.TP
|
||||
.B \-e, \-\-command=COMMAND
|
||||
Runs the specified command instead of your default shell or profile specified command. Note: if
|
||||
Terminator is launched as x-terminal-emulator \-e behaves like \-x, and the longform becomes
|
||||
\-\-execute2=COMMAND
|
||||
.TP
|
||||
.B \-x, \-\-execute COMMAND [ARGS]
|
||||
Runs \fBthe rest of the command line\fR instead of your default shell or profile specified command.
|
||||
.TP
|
||||
.B \-\-working\-directory=DIR
|
||||
Set the terminal's working directory
|
||||
.TP
|
||||
.B \-g, \-\-config FILE
|
||||
Use the specified FILE for configuration
|
||||
.TP
|
||||
.B \-r, \-\-role=ROLE
|
||||
Set a custom WM_WINDOW_ROLE property on the window
|
||||
.TP
|
||||
.B \-l, \-\-layout=LAYOUT
|
||||
with the \fBhide_window\fP keyboard shortcut (Ctrl+Shift+Alt+A by default).
|
||||
.RE
|
||||
.sp
|
||||
\fB\-T\fP \fIFORCEDTITLE\fP, \fB\-\-title\fP=\fIFORCEDTITLE\fP
|
||||
.RS 4
|
||||
Force the Terminator window to use a specific name rather than updating
|
||||
it dynamically based on the wishes of the child shell.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-geometry\fP=\fIGEOMETRY\fP
|
||||
.RS 4
|
||||
Specify the preferred size and position of Terminator\(cqs window;
|
||||
see \fBX\fP(7).
|
||||
.RE
|
||||
.sp
|
||||
\fB\-e\fP \fICOMMAND\fP, \fB\-\-command\fP=\fICOMMAND\fP
|
||||
.RS 4
|
||||
Run the specified command instead of the default shell or profile
|
||||
specified command.
|
||||
.br
|
||||
Note: if Terminator is launched as x\-terminal\-emulator \-e behaves like
|
||||
\-x, and the longform becomes \-\-execute2=COMMAND.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-x\fP \fICOMMAND\fP [\fIARGS\fP], \fB\-\-execute\fP=\fICOMMAND\fP [\fIARGS\fP]
|
||||
.RS 4
|
||||
Run \fBthe rest of the command line\fP instead of the default shell or
|
||||
profile specified command.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-working\-directory\fP=\fIDIR\fP
|
||||
.RS 4
|
||||
Set the terminal\(cqs working directory.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-g\fP \fIFILE\fP, \fB\-\-config\fP=\fIFILE\fP
|
||||
.RS 4
|
||||
Use the specified file for configuration.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-r\fP \fIROLE\fP, \fB\-\-role\fP=\fIROLE\fP
|
||||
.RS 4
|
||||
Set a custom WM_WINDOW_ROLE property on the window.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-l\fP \fILAYOUT\fP, \fB\-\-layout\fP=\fILAYOUT\fP
|
||||
.RS 4
|
||||
Start Terminator with a specific layout. The argument here is the name
|
||||
of a saved layout.
|
||||
.TP
|
||||
.B \-s, \-\-select-layout=LAYOUT
|
||||
.RE
|
||||
.sp
|
||||
\fB\-s\fP \fILAYOUT\fP, \fB\-\-select\-layout\fP=\fILAYOUT\fP
|
||||
.RS 4
|
||||
Open the layout launcher window instead of the normal terminal.
|
||||
.TP
|
||||
.B \-p, \-\-profile=PROFILE
|
||||
Use a different profile as the default
|
||||
.TP
|
||||
.B \-i, \-\-icon=FORCEDICON
|
||||
.RE
|
||||
.sp
|
||||
\fB\-p\fP, \fB\-\-profile\fP=\fIPROFILE\fP
|
||||
.RS 4
|
||||
Use a different profile as the default.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-i\fP, \fB\-\-icon\fP=\fIFORCEDICON\fP
|
||||
.RS 4
|
||||
Set a custom icon for the window (by file or name)
|
||||
.TP
|
||||
.B \-u, \-\-no-dbus
|
||||
Disable DBus
|
||||
.TP
|
||||
.B \-d, \-\-debug
|
||||
Enable debugging output (please use this when reporting bugs). This
|
||||
can be specified twice to enable a built-in python debugging server.
|
||||
.TP
|
||||
.B \-\-debug\-classes=DEBUG_CLASSES
|
||||
.RE
|
||||
.sp
|
||||
\fB\-u\fP, \fB\-\-no\-dbus\fP
|
||||
.RS 4
|
||||
Disable DBus.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-d\fP, \fB\-\-debug\fP
|
||||
.RS 4
|
||||
Enable debugging output (please use this when reporting bugs). This can
|
||||
be specified twice to enable a built\-in python debugging server.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-debug\-classes\fP=\fIDEBUG_CLASSES\fP
|
||||
.RS 4
|
||||
If this is specified as a comma separated list, debugging output will
|
||||
only be printed from the specified classes.
|
||||
.TP
|
||||
.B \-\-debug\-methods=DEBUG_METHODS
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-debug\-methods\fP=\fIDEBUG_METHODS\fP
|
||||
.RS 4
|
||||
If this is specified as a comma separated list, debugging output will
|
||||
only be printed from the specified functions. If this is specified in
|
||||
addition to \-\-debug-classes, only the intersection of the two lists
|
||||
will be displayed
|
||||
.TP
|
||||
.B \-\-new-tab
|
||||
addition to \-\-debug\-classes, only the intersection of the two lists will
|
||||
be displayed.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-new\-tab\fP
|
||||
.RS 4
|
||||
If this is specified and Terminator is already running, DBus will be
|
||||
used to spawn a new tab in the first Terminator window.
|
||||
.RE
|
||||
.sp
|
||||
\fB\-\-toggle\-visibility\fP
|
||||
.RS 4
|
||||
If this is specified and Terminator is already running, DBus will be
|
||||
used to toggle Terminator window visibility. Usable under Wayland to
|
||||
replace hide keyboad shortcut.
|
||||
.RE
|
||||
.SH "KEYBINDINGS"
|
||||
The following default keybindings can be used to control Terminator:
|
||||
.TP
|
||||
.B F1
|
||||
.sp
|
||||
The following default keybindings can be used to control Terminator.
|
||||
Most of these keybindings can be changed in the Preferences.
|
||||
.sp
|
||||
\fBF1\fP
|
||||
.RS 4
|
||||
Launches the full HTML manual.
|
||||
.SS Creation & Destruction
|
||||
.PP
|
||||
.RE
|
||||
.SS "Creation & Destruction"
|
||||
.sp
|
||||
The following items relate to creating and destroying terminals.
|
||||
.TP
|
||||
.B Ctrl+Shift+O
|
||||
Split terminals H\fBo\fRrizontally.
|
||||
.TP
|
||||
.B Ctrl+Shift+E
|
||||
Split terminals V\fBe\fRrtically.
|
||||
.TP
|
||||
.B Ctrl+Shift+T
|
||||
Open new \fBt\fRab.
|
||||
.TP
|
||||
.B Ctrl+Shift+I
|
||||
Open a new window. (Note: Unlike in previous releases, this window is
|
||||
part of the same Terminator process.)
|
||||
.TP
|
||||
.B Super+I
|
||||
.sp
|
||||
\fBCtrl+Shift+O\fP
|
||||
.RS 4
|
||||
Split terminals H\fIo\fPrizontally.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+E\fP
|
||||
.RS 4
|
||||
Split terminals V\fIe\fPrtically.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+T\fP
|
||||
.RS 4
|
||||
Open new \fIt\fPab.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+I\fP
|
||||
.RS 4
|
||||
Open a new window.
|
||||
.br
|
||||
(Note: unlike in previous releases, this window is part of the same
|
||||
Terminator process.)
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+I\fP
|
||||
.RS 4
|
||||
Spawn a new Terminator process.
|
||||
.TP
|
||||
.B Alt+L
|
||||
Open \fBl\fRayout launcher.
|
||||
.TP
|
||||
.B Ctrl+Shift+W
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+L\fP
|
||||
.RS 4
|
||||
Open \fIl\fPayout launcher.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+W\fP
|
||||
.RS 4
|
||||
Close the current terminal.
|
||||
.TP
|
||||
.B Ctrl+Shift+Q
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Q\fP
|
||||
.RS 4
|
||||
Close the current window.
|
||||
.SS Navigation
|
||||
.PP
|
||||
.RE
|
||||
.SS "Navigation"
|
||||
.sp
|
||||
The following items relate to moving between and around terminals.
|
||||
.TP
|
||||
.B Alt+Up
|
||||
Move to the terminal \fBabove\fR the current one.
|
||||
.TP
|
||||
.B Alt+Down
|
||||
Move to the terminal \fBbelow\fR the current one.
|
||||
.TP
|
||||
.B Alt+Left
|
||||
Move to the terminal \fBleft of\fR the current one.
|
||||
.TP
|
||||
.B Alt+Right
|
||||
Move to the terminal \fBright of\fR the current one.
|
||||
.TP
|
||||
.B Ctrl+PageDown
|
||||
Move to next Tab.
|
||||
.TP
|
||||
.B Ctrl+PageUp
|
||||
Move to previous Tab.
|
||||
.TP
|
||||
.B Ctrl+Shift+N or Ctrl+Tab
|
||||
Move to \fBn\fRext terminal within the same tab, use Ctrl+PageDown to move to the next tab.
|
||||
If \fBcycle_term_tab\fR is \fBFalse\fR, cycle within the same tab will be disabled.
|
||||
.TP
|
||||
.B Ctrl+Shift+P or Ctrl+Shift+Tab
|
||||
Move to \fBp\fRrevious terminal within the same tab, use Ctrl+PageUp to move to the previous tab.
|
||||
If \fBcycle_term_tab\fR is \fBFalse\fR, cycle within the same tab will be disabled.
|
||||
.SS Organisation
|
||||
.PP
|
||||
.sp
|
||||
\fBAlt+Up\fP
|
||||
.RS 4
|
||||
Move to the terminal \fBabove\fP the current one.
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+Down\fP
|
||||
.RS 4
|
||||
Move to the terminal \fBbelow\fP the current one.
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+Left\fP
|
||||
.RS 4
|
||||
Move to the terminal \fBleft of\fP the current one.
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+Right\fP
|
||||
.RS 4
|
||||
Move to the terminal \fBright of\fP the current one.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+PageDown\fP
|
||||
.RS 4
|
||||
Move to next tab.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+PageUp\fP
|
||||
.RS 4
|
||||
Move to previous tab.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+N\fP or \fBCtrl+Tab\fP
|
||||
.RS 4
|
||||
Move to the \fIn\fPext terminal within the same tab.
|
||||
.br
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+P\fP or \fBCtrl+Shift+Tab\fP
|
||||
.RS 4
|
||||
Move to the \fIp\fPrevious terminal within the same tab.
|
||||
.br
|
||||
.RE
|
||||
.SS "Organisation"
|
||||
.sp
|
||||
The following items relate to arranging and resizing terminals.
|
||||
.TP
|
||||
.B Ctrl+Shift+Right
|
||||
Move parent dragbar \fBRight\fR.
|
||||
.TP
|
||||
.B Ctrl+Shift+Left
|
||||
Move parent dragbar \fBLeft\fR.
|
||||
.TP
|
||||
.B Ctrl+Shift+Up
|
||||
Move parent dragbar \fBUp\fR.
|
||||
.TP
|
||||
.B Ctrl+Shift+Down
|
||||
Move parent dragbar \fBDown\fR.
|
||||
.TP
|
||||
.B Super+R
|
||||
\fBR\fRotate terminals clockwise.
|
||||
.TP
|
||||
.B Super+Shift+R
|
||||
\fBR\fRotate terminals counter-clockwise.
|
||||
.TP
|
||||
.SH "Drag and Drop"
|
||||
.sp
|
||||
\fBCtrl+Shift+Right\fP
|
||||
.RS 4
|
||||
Move parent dragbar \fBright\fP.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Left\fP
|
||||
.RS 4
|
||||
Move parent dragbar \fBleft\fP.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Up\fP
|
||||
.RS 4
|
||||
Move parent dragbar \fBup\fP.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Down\fP
|
||||
.RS 4
|
||||
Move parent dragbar \fBdown\fP.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+R\fP
|
||||
.RS 4
|
||||
\fIR\fPotate terminals clockwise.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+Shift+R\fP
|
||||
.RS 4
|
||||
\fIR\fPotate terminals counter\-clockwise.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+PageDown\fP
|
||||
.RS 4
|
||||
Swap tab position with next tab.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+PageUp\fP
|
||||
.RS 4
|
||||
Swap tab position with previous tab.
|
||||
.RE
|
||||
.sp
|
||||
\fBDrag and Drop\fP
|
||||
.RS 4
|
||||
The layout can be modified by moving terminals with Drag and Drop.
|
||||
To start dragging a terminal, click and hold on its titlebar.
|
||||
Alternatively, hold down \fBCtrl\fP, click and hold the \fBright\fP mouse button.
|
||||
Then, \fB**Release Ctrl**\fP. You can now drag the terminal to the point in the layout you would like it to be.
|
||||
The zone where the terminal would be inserted will be highlighted.
|
||||
.TP
|
||||
.B Ctrl+Shift+PageDown
|
||||
Swap tab position with next Tab.
|
||||
.TP
|
||||
.B Ctrl+Shift+PageUp
|
||||
Swap tab position with previous Tab.
|
||||
.SS Miscellaneous
|
||||
.PP
|
||||
The following items relate to miscellaneous terminal related functions.
|
||||
.TP
|
||||
.B Ctrl+Shift+C
|
||||
Copy selected text to clipboard.
|
||||
.TP
|
||||
.B Ctrl+Shift+V
|
||||
Paste clipboard text.
|
||||
.TP
|
||||
.B Ctrl+Shift+S
|
||||
Hide/Show \fBS\fRcrollbar.
|
||||
.TP
|
||||
.B Ctrl+Shift+F
|
||||
Search within terminal scrollback.
|
||||
.TP
|
||||
.B Ctrl+Shift+R
|
||||
Reset terminal state.
|
||||
.TP
|
||||
.B Ctrl+Shift+G
|
||||
Reset terminal state and clear window.
|
||||
.TP
|
||||
.B Ctrl+Plus (+)
|
||||
Increase font size. \fBNote:\fP This may require you to press shift, depending on your keyboard.
|
||||
.TP
|
||||
.B Ctrl+Minus (-)
|
||||
Decrease font size. \fBNote:\fP This may require you to press shift, depending on your keyboard.
|
||||
.TP
|
||||
.B Ctrl+Zero (0)
|
||||
Restore font size to original setting.
|
||||
.TP
|
||||
.B Ctrl+Alt+W
|
||||
Rename window title.
|
||||
.TP
|
||||
.B Ctrl+Alt+A
|
||||
Rename tab title.
|
||||
.TP
|
||||
.B Ctrl+Alt+X
|
||||
Rename terminal title.
|
||||
.TP
|
||||
.B Super+1
|
||||
Insert terminal number, i.e. 1 to 12.
|
||||
.TP
|
||||
.B Super+0
|
||||
Insert padded terminal number, i.e. 01 to 12.
|
||||
.SS Grouping & Broadcasting
|
||||
.PP
|
||||
Then, \fB**release Ctrl**\fP. You can now drag the terminal to the point
|
||||
in the layout you would like it to be. The zone where the terminal would
|
||||
be inserted will be highlighted.
|
||||
.RE
|
||||
.SS "Focus"
|
||||
.sp
|
||||
The following items relate to helping to focus on a specific terminal.
|
||||
.TP
|
||||
.B F11
|
||||
.sp
|
||||
\fBF11\fP
|
||||
.RS 4
|
||||
Toggle window to fullscreen.
|
||||
.TP
|
||||
.B Ctrl+Shift+X
|
||||
Toggle between showing all terminals and only showing the current one (maximise).
|
||||
.TP
|
||||
.B Ctrl+Shift+Z
|
||||
Toggle between showing all terminals and only showing a scaled version of the current one (zoom).
|
||||
.TP
|
||||
.B Ctrl+Shift+Alt+A
|
||||
Hide the initial window. Note that this is a global binding, and can only be bound once.
|
||||
.PP
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+X\fP
|
||||
.RS 4
|
||||
Toggle between showing all terminals and only showing the current one
|
||||
(maximise).
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Z\fP
|
||||
.RS 4
|
||||
Toggle between showing all terminals and only showing a scaled version
|
||||
of the current one (zoom).
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+Alt+A\fP
|
||||
.RS 4
|
||||
Hide the initial window. Note that this is a X11 global binding, and can
|
||||
only be bound once. On Wayland use window manager keyboard shortcuts to
|
||||
call \fBterminator \-\-toggle\-visibility\fP.
|
||||
.RE
|
||||
.SS "Grouping & Broadcasting"
|
||||
.sp
|
||||
The following items relate to grouping and broadcasting.
|
||||
.TP
|
||||
.B Super+T
|
||||
Group all terminals in the current tab so input sent to one of them, goes to all terminals in the current tab.
|
||||
.TP
|
||||
.B Super+Shift+T
|
||||
.sp
|
||||
\fBSuper+T\fP
|
||||
.RS 4
|
||||
Group all terminals in the current tab so that any input sent to one of
|
||||
them goes to all of them.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+Shift+T\fP
|
||||
.RS 4
|
||||
Remove grouping from all terminals in the current tab.
|
||||
.TP
|
||||
.B Super+G
|
||||
Group all terminals so that any input sent to one of them, goes to all of them.
|
||||
.TP
|
||||
.B Super+Shift+G
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+G\fP
|
||||
.RS 4
|
||||
Group all terminals so that any input sent to one of them goes to all of
|
||||
them.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+Shift+G\fP
|
||||
.RS 4
|
||||
Remove grouping from all terminals.
|
||||
.TP
|
||||
.B Alt+A
|
||||
Broadcast to All terminals.
|
||||
.TP
|
||||
.B Alt+G
|
||||
Broadcast to Grouped terminals.
|
||||
.TP
|
||||
.B Alt+O
|
||||
Broadcast Off.
|
||||
.PP
|
||||
Most of these keybindings are changeable in the Preferences.
|
||||
.SH "SEE ALSO"
|
||||
.BR terminator_config(5)
|
||||
.SH "AUTHOR"
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+A\fP
|
||||
.RS 4
|
||||
Broadcast to \fIa\fPll terminals.
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+G\fP
|
||||
.RS 4
|
||||
Broadcast to \fIg\fProuped terminals.
|
||||
.RE
|
||||
.sp
|
||||
\fBAlt+O\fP
|
||||
.RS 4
|
||||
Broadcast \fIo\fPff.
|
||||
.RE
|
||||
.SS "Miscellaneous"
|
||||
.sp
|
||||
The following items relate to miscellaneous terminal related functions.
|
||||
.sp
|
||||
\fBCtrl+Shift+C\fP
|
||||
.RS 4
|
||||
Copy selected text to clipboard.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+V\fP
|
||||
.RS 4
|
||||
Paste clipboard text.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+S\fP
|
||||
.RS 4
|
||||
Toggle \fIs\fPcrollbar.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+F\fP
|
||||
.RS 4
|
||||
Search within terminal scrollback.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+R\fP
|
||||
.RS 4
|
||||
Reset terminal state.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Shift+G\fP
|
||||
.RS 4
|
||||
Reset terminal state and clear window.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Plus (+)\fP
|
||||
.RS 4
|
||||
Increase font size.
|
||||
.br
|
||||
Note: this may require you to press shift, depending on your keyboard.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Minus (\-)\fP
|
||||
.RS 4
|
||||
Decrease font size.
|
||||
.br
|
||||
Note: this may require you to press shift, depending on your keyboard.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Zero (0)\fP
|
||||
.RS 4
|
||||
Restore font size to original setting.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Alt+W\fP
|
||||
.RS 4
|
||||
Rename window title.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Alt+A\fP
|
||||
.RS 4
|
||||
Rename tab title.
|
||||
.RE
|
||||
.sp
|
||||
\fBCtrl+Alt+X\fP
|
||||
.RS 4
|
||||
Rename terminal title.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+1\fP
|
||||
.RS 4
|
||||
Insert terminal number, i.e. 1 to 12.
|
||||
.RE
|
||||
.sp
|
||||
\fBSuper+0\fP
|
||||
.RS 4
|
||||
Insert padded terminal number, i.e. 01 to 12.
|
||||
.RE
|
||||
.SH "AUTHORS"
|
||||
.sp
|
||||
Terminator was written by Chris Jones <cmsj@tenshu.net> and others.
|
||||
.PP
|
||||
This manual page was written by Chris Jones <cmsj@tenshu.net>
|
||||
and others.
|
||||
.sp
|
||||
This manual page was written by Chris Jones <cmsj@tenshu.net> and others.
|
||||
.SH "SEE ALSO"
|
||||
.sp
|
||||
\fBterminator_config\fP(5)
|
||||
|
|
|
@ -0,0 +1,312 @@
|
|||
= Terminator(1)
|
||||
:doctype: manpage
|
||||
:manmanual: Manual for Terminator
|
||||
:mansource: Terminator
|
||||
:revdate: 2023-04-01
|
||||
:docdate: {revdate}
|
||||
|
||||
== NAME
|
||||
terminator - multiple GNOME terminals in one window
|
||||
|
||||
== SYNOPSIS
|
||||
*terminator* [_options_]
|
||||
|
||||
== DESCRIPTION
|
||||
This manual page documents *Terminator*, a terminal emulator application.
|
||||
|
||||
*Terminator* is a program that allows users to set up flexible
|
||||
arrangements of GNOME terminals. It is aimed at those who normally
|
||||
arrange lots of terminals near each other, but don't want to use a
|
||||
frame based window manager.
|
||||
|
||||
== OPTIONS
|
||||
This program follows the usual GNU command line syntax, with long
|
||||
options starting with two dashes (`-').
|
||||
A summary of options is included below.
|
||||
|
||||
*-h*, *--help*::
|
||||
Show summary of options.
|
||||
|
||||
*-v*, *--version*::
|
||||
Show the version of the Terminator installation.
|
||||
|
||||
*-m*, *-M*, *--maximise*, *--maximize*::
|
||||
Start with a maximised window.
|
||||
|
||||
*-f*, *--fullscreen*::
|
||||
Start with a fullscreen window.
|
||||
|
||||
*-b*, *--borderless*::
|
||||
Instruct the window manager not to render borders/decoration on the
|
||||
Terminator window (this works well with --maximise).
|
||||
|
||||
*-H*, *--hidden*::
|
||||
Hide the Terminator window by default. Its visibility can be toggled
|
||||
with the *hide_window* keyboard shortcut (Ctrl+Shift+Alt+A by default).
|
||||
|
||||
*-T* _FORCEDTITLE_, **--title**=__FORCEDTITLE__::
|
||||
Force the Terminator window to use a specific name rather than updating
|
||||
it dynamically based on the wishes of the child shell.
|
||||
|
||||
**--geometry**=__GEOMETRY__::
|
||||
Specify the preferred size and position of Terminator's window;
|
||||
see *X*(7).
|
||||
|
||||
*-e* _COMMAND_, **--command**=__COMMAND__::
|
||||
Run the specified command instead of the default shell or profile
|
||||
specified command. +
|
||||
Note: if Terminator is launched as x-terminal-emulator -e behaves like
|
||||
-x, and the longform becomes --execute2=COMMAND.
|
||||
|
||||
*-x* _COMMAND_ [__ARGS__], **--execute**=__COMMAND__ [__ARGS__]::
|
||||
Run *the rest of the command line* instead of the default shell or
|
||||
profile specified command.
|
||||
|
||||
**--working-directory**=__DIR__::
|
||||
Set the terminal's working directory.
|
||||
|
||||
*-g* _FILE_, **--config**=__FILE__::
|
||||
Use the specified file for configuration.
|
||||
|
||||
// TODO --config-json option
|
||||
|
||||
*-r* _ROLE_, **--role**=__ROLE__::
|
||||
Set a custom WM_WINDOW_ROLE property on the window.
|
||||
|
||||
*-l* _LAYOUT_, **--layout**=__LAYOUT__::
|
||||
Start Terminator with a specific layout. The argument here is the name
|
||||
of a saved layout.
|
||||
|
||||
*-s* _LAYOUT_, **--select-layout**=__LAYOUT__::
|
||||
Open the layout launcher window instead of the normal terminal.
|
||||
|
||||
*-p*, **--profile**=__PROFILE__::
|
||||
Use a different profile as the default.
|
||||
|
||||
*-i*, **--icon**=__FORCEDICON__::
|
||||
Set a custom icon for the window (by file or name)
|
||||
|
||||
*-u*, *--no-dbus*::
|
||||
Disable DBus.
|
||||
// Could 'Start Terminator with DBus disabled.' be better?
|
||||
|
||||
*-d*, *--debug*::
|
||||
Enable debugging output (please use this when reporting bugs). This can
|
||||
be specified twice to enable a built-in python debugging server.
|
||||
|
||||
**--debug-classes**=__DEBUG_CLASSES__::
|
||||
If this is specified as a comma separated list, debugging output will
|
||||
only be printed from the specified classes.
|
||||
|
||||
**--debug-methods**=__DEBUG_METHODS__::
|
||||
If this is specified as a comma separated list, debugging output will
|
||||
only be printed from the specified functions. If this is specified in
|
||||
addition to --debug-classes, only the intersection of the two lists will
|
||||
be displayed.
|
||||
|
||||
*--new-tab*::
|
||||
If this is specified and Terminator is already running, DBus will be
|
||||
used to spawn a new tab in the first Terminator window.
|
||||
|
||||
*--toggle-visibility*::
|
||||
If this is specified and Terminator is already running, DBus will be
|
||||
used to toggle Terminator window visibility. Usable under Wayland to
|
||||
replace hide keyboad shortcut.
|
||||
|
||||
== KEYBINDINGS
|
||||
The following default keybindings can be used to control Terminator.
|
||||
Most of these keybindings can be changed in the Preferences.
|
||||
|
||||
*F1*::
|
||||
Launches the full HTML manual.
|
||||
|
||||
=== Creation & Destruction
|
||||
The following items relate to creating and destroying terminals.
|
||||
|
||||
*Ctrl+Shift+O*::
|
||||
Split terminals H__o__rizontally.
|
||||
|
||||
*Ctrl+Shift+E*::
|
||||
Split terminals V__e__rtically.
|
||||
|
||||
*Ctrl+Shift+T*::
|
||||
Open new __t__ab.
|
||||
|
||||
*Ctrl+Shift+I*::
|
||||
Open a new window. +
|
||||
(Note: unlike in previous releases, this window is part of the same
|
||||
Terminator process.)
|
||||
|
||||
*Super+I*::
|
||||
Spawn a new Terminator process.
|
||||
|
||||
*Alt+L*::
|
||||
Open __l__ayout launcher.
|
||||
|
||||
*Ctrl+Shift+W*::
|
||||
Close the current terminal.
|
||||
|
||||
*Ctrl+Shift+Q*::
|
||||
Close the current window.
|
||||
|
||||
=== Navigation
|
||||
The following items relate to moving between and around terminals.
|
||||
|
||||
*Alt+Up*::
|
||||
Move to the terminal *above* the current one.
|
||||
|
||||
*Alt+Down*::
|
||||
Move to the terminal *below* the current one.
|
||||
|
||||
*Alt+Left*::
|
||||
Move to the terminal *left of* the current one.
|
||||
|
||||
*Alt+Right*::
|
||||
Move to the terminal *right of* the current one.
|
||||
|
||||
*Ctrl+PageDown*::
|
||||
Move to next tab.
|
||||
|
||||
*Ctrl+PageUp*::
|
||||
Move to previous tab.
|
||||
|
||||
*Ctrl+Shift+N* or *Ctrl+Tab*::
|
||||
Move to the __n__ext terminal within the same tab. +
|
||||
|
||||
*Ctrl+Shift+P* or *Ctrl+Shift+Tab*::
|
||||
Move to the __p__revious terminal within the same tab. +
|
||||
|
||||
=== Organisation
|
||||
The following items relate to arranging and resizing terminals.
|
||||
|
||||
*Ctrl+Shift+Right*::
|
||||
Move parent dragbar *right*.
|
||||
|
||||
*Ctrl+Shift+Left*::
|
||||
Move parent dragbar *left*.
|
||||
|
||||
*Ctrl+Shift+Up*::
|
||||
Move parent dragbar *up*.
|
||||
|
||||
*Ctrl+Shift+Down*::
|
||||
Move parent dragbar *down*.
|
||||
|
||||
*Super+R*::
|
||||
__R__otate terminals clockwise.
|
||||
|
||||
*Super+Shift+R*::
|
||||
__R__otate terminals counter-clockwise.
|
||||
|
||||
*Ctrl+Shift+PageDown*::
|
||||
Swap tab position with next tab.
|
||||
|
||||
*Ctrl+Shift+PageUp*::
|
||||
Swap tab position with previous tab.
|
||||
|
||||
*Drag and Drop*::
|
||||
The layout can be modified by moving terminals with Drag and Drop.
|
||||
To start dragging a terminal, click and hold on its titlebar.
|
||||
Alternatively, hold down *Ctrl*, click and hold the *right* mouse button.
|
||||
Then, *+**release Ctrl**+*. You can now drag the terminal to the point
|
||||
in the layout you would like it to be. The zone where the terminal would
|
||||
be inserted will be highlighted.
|
||||
|
||||
=== Focus
|
||||
The following items relate to helping to focus on a specific terminal.
|
||||
|
||||
*F11*::
|
||||
Toggle window to fullscreen.
|
||||
|
||||
*Ctrl+Shift+X*::
|
||||
Toggle between showing all terminals and only showing the current one
|
||||
(maximise).
|
||||
|
||||
*Ctrl+Shift+Z*::
|
||||
Toggle between showing all terminals and only showing a scaled version
|
||||
of the current one (zoom).
|
||||
|
||||
*Ctrl+Shift+Alt+A*::
|
||||
Hide the initial window. Note that this is a X11 global binding, and can
|
||||
only be bound once. On Wayland use window manager keyboard shortcuts to
|
||||
call *terminator --toggle-visibility*.
|
||||
|
||||
=== Grouping & Broadcasting
|
||||
The following items relate to grouping and broadcasting.
|
||||
|
||||
*Super+T*::
|
||||
Group all terminals in the current tab so that any input sent to one of
|
||||
them goes to all of them.
|
||||
|
||||
*Super+Shift+T*::
|
||||
Remove grouping from all terminals in the current tab.
|
||||
|
||||
*Super+G*::
|
||||
Group all terminals so that any input sent to one of them goes to all of
|
||||
them.
|
||||
|
||||
*Super+Shift+G*::
|
||||
Remove grouping from all terminals.
|
||||
|
||||
*Alt+A*::
|
||||
Broadcast to __a__ll terminals.
|
||||
|
||||
*Alt+G*::
|
||||
Broadcast to __g__rouped terminals.
|
||||
|
||||
*Alt+O*::
|
||||
Broadcast __o__ff.
|
||||
|
||||
=== Miscellaneous
|
||||
The following items relate to miscellaneous terminal related functions.
|
||||
|
||||
*Ctrl+Shift+C*::
|
||||
Copy selected text to clipboard.
|
||||
|
||||
*Ctrl+Shift+V*::
|
||||
Paste clipboard text.
|
||||
|
||||
*Ctrl+Shift+S*::
|
||||
Toggle __s__crollbar.
|
||||
|
||||
*Ctrl+Shift+F*::
|
||||
Search within terminal scrollback.
|
||||
|
||||
*Ctrl+Shift+R*::
|
||||
Reset terminal state.
|
||||
|
||||
*Ctrl+Shift+G*::
|
||||
Reset terminal state and clear window.
|
||||
|
||||
*Ctrl+Plus (+)*::
|
||||
Increase font size. +
|
||||
Note: this may require you to press shift, depending on your keyboard.
|
||||
|
||||
*Ctrl+Minus (-)*::
|
||||
Decrease font size. +
|
||||
Note: this may require you to press shift, depending on your keyboard.
|
||||
|
||||
*Ctrl+Zero (0)*::
|
||||
Restore font size to original setting.
|
||||
|
||||
*Ctrl+Alt+W*::
|
||||
Rename window title.
|
||||
|
||||
*Ctrl+Alt+A*::
|
||||
Rename tab title.
|
||||
|
||||
*Ctrl+Alt+X*::
|
||||
Rename terminal title.
|
||||
|
||||
*Super+1*::
|
||||
Insert terminal number, i.e. 1 to 12.
|
||||
|
||||
*Super+0*::
|
||||
Insert padded terminal number, i.e. 01 to 12.
|
||||
|
||||
== AUTHORS
|
||||
Terminator was written by Chris Jones <\cmsj@tenshu.net> and others.
|
||||
|
||||
This manual page was written by Chris Jones <\cmsj@tenshu.net> and others.
|
||||
|
||||
== SEE ALSO
|
||||
*terminator_config*(5)
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,927 @@
|
|||
= Terminator_config(5)
|
||||
:doctype: manpage
|
||||
:manmanual: Manual for Terminator
|
||||
:mansource: Terminator
|
||||
:revdate: 2023-04-22
|
||||
:docdate: {revdate}
|
||||
|
||||
== NAME
|
||||
terminator_config - the config file for Terminator terminal emulator
|
||||
|
||||
== DESCRIPTION
|
||||
This file contains the configuration for *terminator*(1).
|
||||
Terminator manages its configuration file via the ConfigObj library to
|
||||
combine flexibility with clear, human editable files. +
|
||||
Terminator offers a full GUI preferences editor which automatically
|
||||
saves its config file so you don't need to write a config file by hand.
|
||||
|
||||
== FILE LOCATION
|
||||
Normally the config file will be *~/.config/terminator/config*, but it
|
||||
may be overridden with *$XDG_CONFIG_HOME* (in which case it will be
|
||||
*$XDG_CONFIG_HOME/terminator/config*).
|
||||
|
||||
== FILE FORMAT
|
||||
This is what a Terminator config file should look like:
|
||||
|
||||
----
|
||||
# This is a comment
|
||||
[global_config]
|
||||
focus = system
|
||||
|
||||
[keybindings]
|
||||
full_screen = <Ctrl><Shift>F11
|
||||
|
||||
[profiles]
|
||||
[[default]]
|
||||
font = Fixed 10
|
||||
background_color = "#000000" # A comment
|
||||
foreground_color = "#FFFFFF" # Note that hex colour values must be quoted
|
||||
scrollback_lines = '500' #More comment. Single quotes are valid too
|
||||
cursor_blink = True
|
||||
custom_command = "echo \"foo#bar\"" #Final comment - this will work as expected.
|
||||
|
||||
[layouts]
|
||||
[[default]]
|
||||
[[[window0]]]
|
||||
type = Window
|
||||
parent = ""
|
||||
[[[child1]]]
|
||||
type = Terminal
|
||||
parent = window0
|
||||
|
||||
[plugins]
|
||||
----
|
||||
|
||||
// ================================================================== \\
|
||||
|
||||
== global_config
|
||||
These are the options Terminator currently supports in the
|
||||
*global_config* section.
|
||||
|
||||
=== Window Behavior & Appearance
|
||||
|
||||
// --- Window behavior ---
|
||||
|
||||
*window_state* = _string_::
|
||||
Control how the Terminator window opens.
|
||||
'normal' to open normally.
|
||||
'maximise' to open in a maximised state.
|
||||
'fullscreen' to open in a fullscreen state.
|
||||
'hidden' to stay hidden. +
|
||||
Default value: *normal*
|
||||
|
||||
*always_on_top* = _boolean_::
|
||||
If set to True, the window will always stay on top of other windows. +
|
||||
Default value: *False*
|
||||
|
||||
*sticky* = _boolean_::
|
||||
If set to True, the window will be visible on all workspaces. +
|
||||
Default value: *False*
|
||||
|
||||
*hide_on_lose_focus* = _boolean_::
|
||||
If set to True, the window will be hidden when focus is lost. +
|
||||
Default value: *False*
|
||||
|
||||
*hide_from_taskbar* = _boolean_::
|
||||
If set to True, the window will be hidden from the taskbar. +
|
||||
Default value: *False*
|
||||
|
||||
*geometry_hinting* = _boolean_::
|
||||
If set to True, the window will resize in step with font sizes. +
|
||||
Default value: *False*
|
||||
|
||||
*suppress_multiple_term_dialog* = _boolean_::
|
||||
If set to True, Terminator will ask for confirmation when closing
|
||||
multiple terminals. +
|
||||
Default value: *False*
|
||||
|
||||
// --- Window appearance ---
|
||||
|
||||
*borderless* = _boolean_::
|
||||
If set to True, the window will be started without window borders. +
|
||||
Default value: *False*
|
||||
|
||||
=== Tab Behavior & Appearance
|
||||
|
||||
*tab_position* = _string_::
|
||||
Specify where tabs are placed.
|
||||
Can be any of: 'top', 'left', 'right', 'bottom', 'hidden'.
|
||||
If set to 'hidden', the tab bar will not be shown. Hiding the tab is not
|
||||
recommended, as it can be very confusing. +
|
||||
Default value: *top*
|
||||
|
||||
*close_button_on_tab* = _boolean_::
|
||||
If set to True, tabs will have a close button on them. +
|
||||
Default value: *True*
|
||||
|
||||
// what is this???
|
||||
*scroll_tabbar* = _boolean_::
|
||||
If set to True, the tab bar will not fill the width of the window.
|
||||
The titlebars of the tabs will only take as much space as is necessary
|
||||
for the text they contain. Except, that is, if the tabs no longer fit
|
||||
the width of the window - in that case scroll buttons will appear to
|
||||
move through the tabs. +
|
||||
Default value: *False*
|
||||
|
||||
=== Terminal Behavior & Appearance
|
||||
|
||||
// --- Terminal behavior ---
|
||||
|
||||
*focus* = _string_::
|
||||
Specify how focus is given to terminals.
|
||||
'click' means the focus only moves to a terminal after you click in it.
|
||||
'sloppy' means the focus will follow the mouse pointer.
|
||||
'system' means the focus will match that used by a GNOME window manager. +
|
||||
Default value: *click*
|
||||
|
||||
*always_split_with_profile* = _boolean_::
|
||||
Specify whether splits/tabs will continue to use the profile of their
|
||||
peer terminal. If set to False, they will always use the default profile. +
|
||||
Default value: *False*
|
||||
|
||||
*link_single_click* = _boolean_::
|
||||
If set to True, clicking a link will open it even if *Ctrl* is not
|
||||
pressed. +
|
||||
Default value: *False*
|
||||
|
||||
// --- Copy & Paste behavior ---
|
||||
|
||||
*putty_paste_style* = _boolean_::
|
||||
If set to True, right-click will paste text, while middle-click will
|
||||
popup the context menu. The source for the pasted text depends on the
|
||||
value of *putty_paste_style_source_clipboard*. +
|
||||
Default value: *False*
|
||||
|
||||
*putty_paste_style_source_clipboard* = _boolean_::
|
||||
If set to True, the Clipboard will be used as source for pasting in
|
||||
PuTTY style. Otherwise, the Primary Selection will be used. +
|
||||
This option is ignored unless *putty_paste_style* is set to True. +
|
||||
Default value: *False*
|
||||
|
||||
*disable_mouse_paste* = _boolean_::
|
||||
If set to True, mouse pasting will be disabled. +
|
||||
Default value: *False*
|
||||
|
||||
*smart_copy* = _boolean_::
|
||||
If set to True, and there is no selection, the shortcut is allowed to
|
||||
pass through. This is useful for overloading Ctrl-C to copy a selection,
|
||||
or send the SIGINT to the current process if there is no selection.
|
||||
If False, the shortcut does not pass through at all, and the SIGINT does
|
||||
not get sent. +
|
||||
Default value: *True*
|
||||
|
||||
*clear_select_on_copy* = _boolean_::
|
||||
If set to True, text selection will be cleared after copying using the
|
||||
*copy* keybinding. +
|
||||
Default value: *False*
|
||||
|
||||
// --- Terminal appearance ---
|
||||
|
||||
*handle_size* = _integer_::
|
||||
Specify the width of the separator between terminals.
|
||||
Anything outside the range 0-20 (inclusive) will be ignored and the
|
||||
default theme value will be used instead. +
|
||||
Default value: *1*
|
||||
|
||||
*inactive_color_offset* = _float_::
|
||||
Specify how much to reduce the color values of fonts in terminals that
|
||||
do not have focus. +
|
||||
Default value: *0.8*
|
||||
|
||||
*inactive_bg_color_offset* = _float_::
|
||||
Specify how much to reduce the color values of the background in
|
||||
terminals that do not have focus. +
|
||||
Default value: *1.0*
|
||||
|
||||
*cell_width* = _float_::
|
||||
Specify the horizontal scale of character cells in the terminal. +
|
||||
Default value: *1.0*
|
||||
|
||||
*cell_height* = _float_::
|
||||
Specify the vertical scale of character cells in the terminal. +
|
||||
Default value: *1.0*
|
||||
|
||||
*title_at_bottom* = _boolean_::
|
||||
If set to True, the terminal's titlebar will be drawn at the bottom
|
||||
instead of the top. +
|
||||
Default value: *False*
|
||||
|
||||
=== Miscellaneous
|
||||
|
||||
*dbus* = _boolean_::
|
||||
Specify whether Terminator will load its DBus server.
|
||||
When this server is loaded, running Terminator multiple times will cause
|
||||
the first Terminator process to open additional windows.
|
||||
If this configuration item is set to False, or the python dbus module is
|
||||
unavailable, running Terminator multiple times will run a separate
|
||||
Terminator process for each invocation. +
|
||||
Default value: *True*
|
||||
|
||||
*extra_styling* = _boolean_::
|
||||
If set to True, Terminator may load an additional CSS styling file,
|
||||
depending on the theme. +
|
||||
Default value: *True*
|
||||
|
||||
*broadcast_default* = _string_::
|
||||
Specify the default broadcast behavior.
|
||||
Can be any of: 'all', 'group', 'off'. +
|
||||
Default value: *group*
|
||||
|
||||
*use_custom_url_handler* = _boolean_::
|
||||
If set to True, URL handling will be given over entirely to the program
|
||||
specified by 'custom_url_handler'. +
|
||||
Default value: *False*
|
||||
|
||||
*custom_url_handler* = _string_::
|
||||
Specify the path to a program which accepts a URI as an argument and
|
||||
does something relevant with it.
|
||||
This option is ignored unless *use_custom_url_handler* is set to True.
|
||||
|
||||
*case_sensitive* = _boolean_::
|
||||
If set to True, uppercase and lowercase characters will be considered
|
||||
different when searching text in the terminal. +
|
||||
Default value: *True*
|
||||
|
||||
*invert_search* = _boolean_::
|
||||
If set to True, the search direction will be inverted (bottom to top)
|
||||
when searching text in the terminal. +
|
||||
Default value: *False*
|
||||
|
||||
*enabled_plugins* = _list of strings_::
|
||||
Specify which plugins will be loaded by default. All other plugin
|
||||
classes will be ignored. +
|
||||
Default value: *['LaunchpadBugURLHandler', 'LaunchpadCodeURLHandler', 'APTURLHandler']*
|
||||
|
||||
// ================================================================== \\
|
||||
|
||||
== keybindings
|
||||
These are the options Terminator currently supports in the *keybindings*
|
||||
section.
|
||||
|
||||
=== Creation & Destruction
|
||||
|
||||
*split_horiz*::
|
||||
Split the current terminal horizontally. +
|
||||
Default value: *<Ctrl><Shift>O*
|
||||
|
||||
*split_vert*::
|
||||
Split the current terminal vertically. +
|
||||
Default value: *<Ctrl><Shift>E*
|
||||
|
||||
*split_auto*::
|
||||
Split the current terminal automatically, along the longer side. +
|
||||
Default value: *<Ctrl><Shift>A*
|
||||
|
||||
*new_tab*::
|
||||
Open a new tab. +
|
||||
Default value: *<Ctrl><Shift>T*
|
||||
|
||||
*new_window*::
|
||||
Open a new window as part of the existing process. +
|
||||
Default value: *<Ctrl><Shift>I*
|
||||
|
||||
*new_terminator*::
|
||||
Spawn a new Terminator process. +
|
||||
Default value: *<Super>I*
|
||||
|
||||
*layout_launcher*::
|
||||
Open the layout launcher. +
|
||||
Default value: *<Alt>L*
|
||||
|
||||
*close_term*::
|
||||
Close the current terminal. +
|
||||
Default value: *<Ctrl><Shift>W*
|
||||
|
||||
*close_window*::
|
||||
Close the current window. +
|
||||
Default value: *<Ctrl><Shift>Q*
|
||||
|
||||
=== Navigation
|
||||
|
||||
*cycle_next*::
|
||||
Focus the next terminal. This is an alias for *go_next*. +
|
||||
Default value: *<Ctrl>Tab*
|
||||
|
||||
*cycle_prev*::
|
||||
Focus the previous terminal. This is an alias for *go_prev*. +
|
||||
Default value: *<Ctrl><Shift>Tab*
|
||||
|
||||
*go_next*::
|
||||
Focus the next terminal. +
|
||||
Default value: *<Ctrl><Shift>N*
|
||||
|
||||
*go_prev*::
|
||||
Focus the previous terminal. +
|
||||
Default value: *<Ctrl><Shift>P*
|
||||
|
||||
*go_up*::
|
||||
Focus the terminal above the current one. +
|
||||
Default value: *<Alt>Up*
|
||||
|
||||
*go_down*::
|
||||
Focus the terminal below the current one. +
|
||||
Default value: *<Alt>Down*
|
||||
|
||||
*go_left*::
|
||||
Focus the terminal to the left of the current one. +
|
||||
Default value: *<Alt>Left*
|
||||
|
||||
*go_right*::
|
||||
Focus the terminal to the right of the current one. +
|
||||
Default value: *<Alt>Right*
|
||||
|
||||
// --- Scroll ---
|
||||
|
||||
*page_up*::
|
||||
Scroll the terminal up one page.
|
||||
|
||||
*page_down*::
|
||||
Scroll the terminal down one page.
|
||||
|
||||
*page_up_half*::
|
||||
Scroll the terminal up half a page.
|
||||
|
||||
*page_down_half*::
|
||||
Scroll the terminal down half a page.
|
||||
|
||||
*line_up*::
|
||||
Scroll the terminal up one line.
|
||||
|
||||
*line_down*::
|
||||
Scroll the terminal down one line.
|
||||
|
||||
// --- Tab ---
|
||||
|
||||
*next_tab*::
|
||||
Move to the next tab. +
|
||||
Default value: *<Ctrl>Page_Down*
|
||||
|
||||
*prev_tab*::
|
||||
Move to the previous tab. +
|
||||
Default value: *<Ctrl>Page_Up*
|
||||
|
||||
*switch_to_tab_1*, *switch_to_tab_2*, ... *switch_to_tab_10*::
|
||||
Move to the **N**th tab.
|
||||
Note that *<Alt><Shift>1* may be provided as *<Alt>!* or similar,
|
||||
depending on the keyboard layout.
|
||||
|
||||
=== Organisation
|
||||
|
||||
*resize_up*::
|
||||
Move the parent dragbar up. +
|
||||
Default value: *<Ctrl><Shift>Up*
|
||||
|
||||
*resize_down*::
|
||||
Move the parent dragbar down. +
|
||||
Default value: *<Ctrl><Shift>Down*
|
||||
|
||||
*resize_left*::
|
||||
Move the parent dragbar left. +
|
||||
Default value: *<Ctrl><Shift>Left*
|
||||
|
||||
*resize_right*::
|
||||
Move the parent dragbar right. +
|
||||
Default value: *<Ctrl><Shift>Right*
|
||||
|
||||
*rotate_cw*::
|
||||
Rotate terminals clockwise. +
|
||||
Default value: *<Super>R*
|
||||
|
||||
*rotate_ccw*::
|
||||
Rotate terminals counter+clockwise. +
|
||||
Default value: *<Super><Shift>R*
|
||||
|
||||
*move_tab_right*::
|
||||
Move the current tab to the right by swapping position with the next
|
||||
tab. +
|
||||
Default value: *<Ctrl><Shift>Page_Down*
|
||||
|
||||
*move_tab_left*::
|
||||
Move the current tab to the left by swapping position with the previous
|
||||
tab. +
|
||||
Default value: *<Ctrl><Shift>Page_Up*
|
||||
|
||||
=== Focus
|
||||
|
||||
*full_screen*::
|
||||
Toggle window to fullscreen. +
|
||||
Default value: *F11*
|
||||
|
||||
*toggle_zoom*::
|
||||
Toggle maximisation of the current terminal. +
|
||||
Default value: *<Ctrl><Shift>X*
|
||||
|
||||
*scaled_zoom*::
|
||||
Toggle maximisation of the current terminal and scale the font when
|
||||
maximised. +
|
||||
Default value: *<Ctrl><Shift>Z*
|
||||
|
||||
*hide_window*::
|
||||
Hide/Show all Terminator windows. +
|
||||
Default value: *<Ctrl><Shift><Alt>A*
|
||||
|
||||
=== Grouping & Broadcasting
|
||||
|
||||
*create_group*::
|
||||
Create a new group.
|
||||
|
||||
// --- Grouping: All ---
|
||||
|
||||
*group_all*::
|
||||
Group all terminals together. +
|
||||
Default value: *<Super>G*
|
||||
|
||||
*ungroup_all*::
|
||||
Ungroup all terminals.
|
||||
|
||||
*group_all_toggle*::
|
||||
Toggle grouping of all terminals.
|
||||
|
||||
// --- Grouping: Window ---
|
||||
|
||||
*group_win*::
|
||||
Group all terminals in the current window together.
|
||||
|
||||
*ungroup_win*::
|
||||
Ungroup all terminals in the current window. +
|
||||
Default value: *<Super><Shift>W*
|
||||
|
||||
*group_win_toggle*::
|
||||
Toggle grouping of all terminals in the current window.
|
||||
|
||||
// --- Grouping: Tab ---
|
||||
|
||||
*group_tab*::
|
||||
Group all terminals in the current tab together. +
|
||||
Default value: *<Super>T*
|
||||
|
||||
*ungroup_tab*::
|
||||
Ungroup all terminals in the current tab. +
|
||||
Default value: *<Super><Shift>T*
|
||||
|
||||
*group_tab_toggle*::
|
||||
Toggle grouping of all terminals in the current tab.
|
||||
|
||||
// Broadcasting
|
||||
|
||||
*broadcast_off*::
|
||||
Turn broadcasting off.
|
||||
|
||||
*broadcast_group*::
|
||||
Broadcast to all terminals in the same group as the current terminal.
|
||||
|
||||
*broadcast_all*::
|
||||
Broadcast to all terminals.
|
||||
|
||||
=== Miscellaneous
|
||||
|
||||
*help*::
|
||||
Open the full HTML manual in the browser. +
|
||||
Default value: *F1*
|
||||
|
||||
*preferences*::
|
||||
Open the Preferences window.
|
||||
|
||||
*preferences_keybindings*::
|
||||
Open the Preferences window and show the Keybindings tab. +
|
||||
Default value: *<Ctrl><Shift>K*
|
||||
|
||||
*copy*::
|
||||
Copy the selected text to the Clipboard. +
|
||||
Default value: *<Ctrl><Shift>C*
|
||||
|
||||
*paste*::
|
||||
Paste the current contents of the Clipboard. +
|
||||
Default value: *<Ctrl><Shift>V*
|
||||
|
||||
*paste_selection*::
|
||||
Paste the current contents of the Primary Selection.
|
||||
|
||||
*toggle_scrollbar*::
|
||||
Toggle the scrollbar. +
|
||||
Default value: *<Ctrl><Shift>S*
|
||||
|
||||
*search*::
|
||||
Search for text in the terminal scrollback history. +
|
||||
Default value: *<Ctrl><Shift>F*
|
||||
|
||||
*reset*::
|
||||
Reset the terminal state. +
|
||||
Default value: *<Ctrl><Shift>R*
|
||||
|
||||
*reset_clear*::
|
||||
Reset the terminal state and clear the terminal window. +
|
||||
Default value: *<Ctrl><Shift>G*
|
||||
|
||||
*zoom_in*::
|
||||
Increase the font size by one unit. +
|
||||
Default value: *<Ctrl>plus*
|
||||
|
||||
*zoom_out*::
|
||||
Decrease the font size by one unit. +
|
||||
Default value: *<Ctrl>minus*
|
||||
|
||||
*zoom_normal*::
|
||||
Restore the original font size. +
|
||||
Default value: *<Ctrl>0*
|
||||
|
||||
*zoom_in_all*::
|
||||
Increase the font size by one unit for all terminals.
|
||||
|
||||
*zoom_out_all*::
|
||||
Decrease the font size by one unit for all terminals.
|
||||
|
||||
*zoom_normal_all*::
|
||||
Restore the original font size for all terminals.
|
||||
|
||||
*edit_window_title*::
|
||||
Rename the current window. +
|
||||
Default value: *<Ctrl><Alt>W*
|
||||
|
||||
*edit_tab_title*::
|
||||
Rename the current tab. +
|
||||
Default value: *<Ctrl><Alt>A*
|
||||
|
||||
*edit_terminal_title*::
|
||||
Rename the current terminal. +
|
||||
Default value: *<Ctrl><Alt>X*
|
||||
|
||||
*insert_number*::
|
||||
Insert the current terminal's number, i.e. 1 to 12. +
|
||||
Default value: *<Super>1*
|
||||
|
||||
*insert_padded*::
|
||||
Insert the current terminal's number, but zero padded, i.e. 01 to 12. +
|
||||
Default value: *<Super>0*
|
||||
|
||||
*next_profile*::
|
||||
Switch to the next profile.
|
||||
|
||||
*previous_profile*::
|
||||
Switch to the previous profile.
|
||||
|
||||
// ================================================================== \\
|
||||
|
||||
== profiles
|
||||
These are the options Terminator currently supports in the *profiles*
|
||||
section. Each profile should be its own subsection with a header in the
|
||||
format *\[[name]]*.
|
||||
|
||||
=== General
|
||||
|
||||
*allow_bold* = _boolean_::
|
||||
If set to True, text in the terminal can displayed in bold. +
|
||||
Default value: *True*
|
||||
|
||||
*copy_on_selection* = _boolean_::
|
||||
If set to True, text selections will be automatically copied to the
|
||||
Clipboard, in addition to being copied to the Primary Selection. +
|
||||
Default value: *False*
|
||||
|
||||
*disable_mousewheel_zoom* = _boolean_::
|
||||
If set to True, Ctrl+mouse_wheel will not zoom or unzoom the terminal. +
|
||||
Default value: *False*
|
||||
|
||||
*word_chars* = _string_::
|
||||
Specify the characters that will be considered part of a single word
|
||||
when selecting text by word.
|
||||
Hyphen and alphanumerics do not need to be specified.
|
||||
Ranges can be given, e.g. "A-Z". +
|
||||
For example, if *word_chars* = "," then "foo,bar" is considered a single
|
||||
word. +
|
||||
Default value: **-,./?%&#:_**
|
||||
|
||||
*mouse_autohide* = _boolean_::
|
||||
If set to True, the mouse pointer will be hidden when typing. +
|
||||
Default value: *True*
|
||||
|
||||
*term* = _string_::
|
||||
Specify the value Terminator will assign to the 'TERM' environment
|
||||
variable. +
|
||||
Default value: *xterm-256color*
|
||||
|
||||
*colorterm* = _string_::
|
||||
Specify the value Terminator will assign to the 'COLORTERM' environment
|
||||
variable. +
|
||||
Default value: *truecolor*
|
||||
|
||||
*split_to_group* = _boolean_::
|
||||
If set to True, the terminal created by splitting will be inserted in
|
||||
the current terminal's group. +
|
||||
Default value: *False*
|
||||
|
||||
*autoclean_groups* = _boolean_::
|
||||
If set to True, empty groups will be removed. +
|
||||
Default value: *True*
|
||||
|
||||
// --- Font ---
|
||||
|
||||
*use_system_font* = _boolean_::
|
||||
If set to True, the system default font will be used for text in the
|
||||
terminal. Otherwise, the value of *font* will be used. +
|
||||
Default value: *True*
|
||||
|
||||
*font* = _string_::
|
||||
Specify which font to use for text in the terminal.
|
||||
This option is ignored unless *use_system_font* is set to False. +
|
||||
Default value: *Mono 10*
|
||||
|
||||
// --- Cursor ---
|
||||
|
||||
*cursor_blink* = _boolean_::
|
||||
If set to True, the cursor will blink when not typing. +
|
||||
Default value: *True*
|
||||
|
||||
*cursor_shape* = _string_::
|
||||
Specify the shape of the cursor.
|
||||
Can be any of: 'block', 'underline', 'ibeam'. +
|
||||
Default value: *block*
|
||||
|
||||
*cursor_color_default* = _boolean_::
|
||||
If set to True, the background and foreground colors of the terminal
|
||||
will be used as foreground and background colors for the cursor,
|
||||
respectively. +
|
||||
Default value: *True*
|
||||
|
||||
*cursor_fg_color* = _color string_::
|
||||
Specify the foreground color to use for the cursor.
|
||||
This option is ignored unless *cursor_color_default* is set to False.
|
||||
|
||||
*cursor_bg_color* = _color string_::
|
||||
Specify the background color to use for the cursor.
|
||||
This option is ignored unless *cursor_color_default* is set to False.
|
||||
|
||||
// --- Bell ---
|
||||
|
||||
*audible_bell* = _boolean_::
|
||||
If set to True, a sound will be played when an application writes the
|
||||
escape sequence for the terminal bell. +
|
||||
Default value: *False*
|
||||
|
||||
*visible_bell* = _boolean_::
|
||||
If set to True, the terminal will flash when an application writes the
|
||||
escape sequence for the terminal bell. +
|
||||
Default value: *False*
|
||||
|
||||
*urgent_bell* = _boolean_::
|
||||
If set to True, the window's urgency hint will be set when an
|
||||
application writes the escape sequence for the terminal bell. +
|
||||
Default value: *False*
|
||||
|
||||
*icon_bell* = _boolean_::
|
||||
If set to True, a small icon will be shown on the terminal titlebar when
|
||||
an application writes the escape sequence for the terminal bell. +
|
||||
Default value: *True*
|
||||
|
||||
*force_no_bell* = _boolean_::
|
||||
If set to True, the terminal bell will be completely disabled. +
|
||||
Default value: *False*
|
||||
|
||||
=== Command
|
||||
|
||||
*login_shell* = _boolean_::
|
||||
If set to True, the terminal will run the default shell (or the command
|
||||
specified by *custom_command*) as a login shell.
|
||||
This means the first argument passed to the shell/command will be '-l'. +
|
||||
Default value: *False*
|
||||
|
||||
*use_custom_command* = _boolean_::
|
||||
If set to True, the value of *custom_command* will be used instead of
|
||||
the default shell. +
|
||||
Default value: *False*
|
||||
|
||||
*custom_command* = _string_::
|
||||
Specify the command to execute instead of the default shell.
|
||||
This option is ignored unless *use_custom_command* is set to True.
|
||||
|
||||
*exit_action* = _string_::
|
||||
Specify the action to perform when the terminal is closed.
|
||||
'close' to remove the terminal.
|
||||
'restart' to restart the shell (or the command specified by
|
||||
*custom_command*).
|
||||
'hold' to keep the terminal open, even if the process in it has
|
||||
terminated. +
|
||||
Default value: *close*
|
||||
|
||||
=== Colors
|
||||
|
||||
*use_theme_colors* = _boolean_::
|
||||
If set to True, the theme's foreground and background colors will be
|
||||
used for the terminal. Otherwise, the values of *foreground_color* and
|
||||
*background_color* will be used. +
|
||||
Default value: *False*
|
||||
|
||||
*foreground_color* = _color string_::
|
||||
Specify the foreground color to use for the terminal.
|
||||
This option is ignored unless *use_theme_colors* is set to False. +
|
||||
Default value: *#AAAAAA*
|
||||
|
||||
*background_color* = _color string_::
|
||||
Specify the background color to use for the terminal.
|
||||
This option is ignored unless *use_theme_colors* is set to False. +
|
||||
Default value: *#000000*
|
||||
|
||||
*palette* = _string list of colors_::
|
||||
Specify the 16-color palette to use for the terminal.
|
||||
The value must be a string containing a colon-separated list of colors
|
||||
in hex format. +
|
||||
For example, "#000000:#cd0000:#00cd00: ... ".
|
||||
|
||||
*bold_is_bright* = _boolean_::
|
||||
If set to True, bold text will have brighter colors. +
|
||||
Default value: *False*
|
||||
|
||||
=== Background
|
||||
|
||||
*background_darkness* = _float_::
|
||||
Specify the transparency of the background color.
|
||||
The value must be between 0.0 and 1.0.
|
||||
This option is ignored unless *background_type* is set to 'transparent'
|
||||
or 'image'. +
|
||||
Default value: *0.5*
|
||||
|
||||
*background_type* = _string_::
|
||||
Specify what type of background the terminal will have.
|
||||
'solid' for a solid (opaque) background.
|
||||
'transparent' for a transparent background.
|
||||
'image' for a background image. +
|
||||
If this is set to 'transparent', the transparency of the background will
|
||||
be the value of *background_darkness*.
|
||||
If this is set to 'image', the image specified by *background_image*
|
||||
will be the background; the background color will then be drawn on top
|
||||
of it, with a transparency specified by *background_darkness*. +
|
||||
Default value: *solid*
|
||||
|
||||
*background_image* = _path string_::
|
||||
Specify the path to an image that will be used as background.
|
||||
This option is ignored unless *background_type* is set to 'image'.
|
||||
|
||||
*background_image_mode* = _string_::
|
||||
Specify how the background image will be drawn.
|
||||
'stretch_and_fill' to fill the terminal entirely, without necessarily
|
||||
maintaining aspect ratio.
|
||||
'scale_and_fit' to fit the image inside the terminal, eventually leaving
|
||||
blank bars, while maintaining aspect ratio.
|
||||
'scale_and_crop' to fill the terminal entirely, eventually cropping the
|
||||
image, while maintaining aspect ratio.
|
||||
'tiling' to repeat the image as to fill the terminal.
|
||||
This option is ignored unless *background_type* is set to 'image'. +
|
||||
Default value: *stretch_and_fill*
|
||||
|
||||
*background_image_align_horiz* = _string_::
|
||||
Specify the horizontal alignment of the background image.
|
||||
Can be any of: 'left', 'center', 'right'.
|
||||
This option is ignored unless *background_type* is set to 'image'. +
|
||||
Default value: *center*
|
||||
|
||||
*background_image_align_vert* = _string_::
|
||||
Specify the vertical alignment of the background image.
|
||||
Can be any of: 'top', 'middle', 'bottom'.
|
||||
This option is ignored unless *background_type* is set to 'image'. +
|
||||
Default value: *middle*
|
||||
|
||||
=== Scrolling
|
||||
|
||||
*scrollbar_position* = _string_::
|
||||
Specify where the terminal scrollbar is put.
|
||||
Can be any of: 'left', 'right', 'hidden'. +
|
||||
Default value: *right*
|
||||
|
||||
*scroll_on_output* = _boolean_::
|
||||
If set to True, the terminall will scroll to the bottom when an
|
||||
application writes text to it. +
|
||||
Default value: *False*
|
||||
|
||||
*scroll_on_keystroke* = _boolean_::
|
||||
If set to True, the terminal will scroll to the bottom when typing. +
|
||||
Default value: *True*
|
||||
|
||||
*scrollback_infinite* = _boolean_::
|
||||
If set to True, the terminal will keep the entire scrollback history. +
|
||||
Default value: *False*
|
||||
|
||||
*scrollback_lines* = _integer_::
|
||||
Specify how many lines of scrollback history will be kept by the
|
||||
terminal. Lines that don't fit in the scrollback history will be
|
||||
discarted. Note that setting large values can slow down rewrapping and
|
||||
resizing.
|
||||
This option is ignored unless *scrollback_infinite* is set to False. +
|
||||
Default value: *500*
|
||||
|
||||
=== Compatibility
|
||||
|
||||
*backspace_binding* = _string_::
|
||||
Specify what code will be generated by the backspace key.
|
||||
The value can be:
|
||||
'ascii-del' for the ASCII DEL character;
|
||||
'control-h' for the ASCII BS character (Ctrl+H);
|
||||
'escape-sequence' for the escape sequence typically bound to backspace
|
||||
or delete;
|
||||
'automatic' for letting the terminal automatically decide the character
|
||||
sequence to use. +
|
||||
Default value: *ascii-del*
|
||||
|
||||
*delete_binding* = _string_::
|
||||
Specify what code will be generated by the delete key.
|
||||
The value can be:
|
||||
'ascii-del' for the ASCII DEL character;
|
||||
'control-h' for the ASCII BS character (Ctrl+H);
|
||||
'escape-sequence' for the escape sequence typically bound to backspace
|
||||
or delete;
|
||||
'automatic' for letting the terminal automatically decide the character
|
||||
sequence to use. +
|
||||
Default value: *escape-sequence*
|
||||
|
||||
=== Titlebar
|
||||
|
||||
*show_titlebar* = _boolean_::
|
||||
If set to True, the terminal will have a titlebar showing the current
|
||||
title of that terminal. +
|
||||
Default value: *True*
|
||||
|
||||
*title_hide_sizetext* = _boolean_::
|
||||
If set to True, the size of the terminal will not be written on its
|
||||
titlebar. +
|
||||
Default value: *False*
|
||||
|
||||
*title_use_system_font* = _boolean_::
|
||||
If set to True, the system default font will be used for text in the
|
||||
terminal's titlebar. Otherwise, the value of *title_font* will be used. +
|
||||
Default value: *True*
|
||||
|
||||
*title_font* = _string_::
|
||||
Specify which font to use for text in the terminal's titlebar.
|
||||
This option is ignored unless *title_use_system_font* is set to False. +
|
||||
Default value: *Sans 9*
|
||||
|
||||
// --- Titlebar colors ---
|
||||
|
||||
*title_transmit_fg_color* = _color string_::
|
||||
Specify the foreground color to use for the terminal's titlebar in case
|
||||
the terminal is focused. +
|
||||
Default value: *#ffffff*
|
||||
|
||||
*title_transmit_bg_color* = _color string_::
|
||||
Specify the background color to use for the terminal's titlebar in case
|
||||
the terminal is focused. +
|
||||
Default value: *#c80003*
|
||||
|
||||
*title_inactive_fg_color* = _color string_::
|
||||
Specify the foreground color to use for the terminal's titlebar in case
|
||||
the terminal is unfocused. +
|
||||
Default value: *#000000*
|
||||
|
||||
*title_inactive_bg_color* = _color string_::
|
||||
Specify the background color to use for the terminal's titlebar in case
|
||||
the terminal is unfocused. +
|
||||
Default value: *#c0bebf*
|
||||
|
||||
*title_receive_fg_color* = _color string_::
|
||||
Specify the foreground color to use for the terminal's titlebar in case
|
||||
the terminal is in a group and is receiving input while unfocused. +
|
||||
Default value: *#ffffff*
|
||||
|
||||
*title_receive_bg_color* = _color string_::
|
||||
Specify the background color to use for the terminal's titlebar in case
|
||||
the terminal is in a group and is receiving input while unfocused. +
|
||||
Default value: *#0076c9*
|
||||
|
||||
// ================================================================== \\
|
||||
|
||||
== layouts
|
||||
The *layouts* section contains all the saved layouts. Each layout should
|
||||
be its own subsection with a header in the format *\[[name]]*.
|
||||
|
||||
Each object in a layout is a named sub-sub-section with various
|
||||
properties.
|
||||
|
||||
*type* = _string_::
|
||||
Can be any of: 'Window', 'Notebook', 'HPaned', 'VPaned', 'Terminal'.
|
||||
|
||||
*parent* = _string_::
|
||||
Specify which object is the parent of the component being defined.
|
||||
All objects, except those of type Window, must specify a parent.
|
||||
|
||||
This is an example of a *layouts* section containing only the layout
|
||||
named "default".
|
||||
|
||||
----
|
||||
[layouts]
|
||||
[[default]]
|
||||
[[[window0]]]
|
||||
type = Window
|
||||
parent = ""
|
||||
[[[child1]]]
|
||||
type = Terminal
|
||||
parent = window0
|
||||
----
|
||||
|
||||
// ================================================================== \\
|
||||
|
||||
== plugins
|
||||
Terminator plugins can add their own configuration to the config file,
|
||||
and it will appear as a subsection. Please refer to the documentation of
|
||||
individual plugins for more information.
|
||||
|
||||
== SEE ALSO
|
||||
*terminator*(1), https://configobj.readthedocs.io/
|
274
po/fr.po
274
po/fr.po
|
@ -2,26 +2,26 @@
|
|||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Gnome Terminator <terminator@lazyfrosch.de>, 2020
|
||||
# Samuël Weber/GwendalD <samuel.weber@normalesup.org>, 2020
|
||||
#
|
||||
# fred lulu, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-22 00:51+0100\n"
|
||||
"POT-Creation-Date: 2022-10-19 09:28-0400\n"
|
||||
"PO-Revision-Date: 2020-04-22 08:11+0000\n"
|
||||
"Last-Translator: Samuël Weber/GwendalD <samuel.weber@normalesup.org>, 2020\n"
|
||||
"Language-Team: French (https://www.transifex.com/terminator/teams/109338/"
|
||||
"fr/)\n"
|
||||
"Language: fr\n"
|
||||
"Last-Translator: fred lulu, 2022\n"
|
||||
"Language-Team: French (https://www.transifex.com/terminator/teams/109338/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#. Command uuid req. Description
|
||||
#: ../remotinator.py:39
|
||||
|
@ -46,7 +46,7 @@ msgstr "Avoir la liste de tous les terminaux."
|
|||
|
||||
#: ../remotinator.py:44
|
||||
msgid "Get the uuid of the current focused terminal"
|
||||
msgstr ""
|
||||
msgstr "Obtenir L'uuid du terminal actuellement actif"
|
||||
|
||||
#: ../remotinator.py:45
|
||||
msgid "Get the UUID of a parent window"
|
||||
|
@ -58,31 +58,31 @@ msgstr "Obtenir le titre de la fenêtre parente"
|
|||
|
||||
#: ../remotinator.py:47
|
||||
msgid "Get the UUID of a parent tab"
|
||||
msgstr "Obtenir l'UUID d'une table parente"
|
||||
msgstr "Obtenir l'UUID d'un onglet parent"
|
||||
|
||||
#: ../remotinator.py:48
|
||||
msgid "Get the title of a parent tab"
|
||||
msgstr "Obtenir le titre d'une table parente"
|
||||
msgstr "Obtenir le titre d'une onglet parent"
|
||||
|
||||
#: ../remotinator.py:49
|
||||
msgid "Set the title of a parent tab"
|
||||
msgstr ""
|
||||
msgstr "Définir le titre d'un onglet parent"
|
||||
|
||||
#: ../remotinator.py:50
|
||||
msgid "Set the background image"
|
||||
msgstr ""
|
||||
msgstr "Définir l'image de fond"
|
||||
|
||||
#: ../remotinator.py:51
|
||||
msgid "Set the background image for all terminals"
|
||||
msgstr ""
|
||||
msgstr "Définir l'image de fond pour tous les terminaux"
|
||||
|
||||
#: ../remotinator.py:52
|
||||
msgid "Switch current terminal profile"
|
||||
msgstr ""
|
||||
msgstr "Changer le profil du terminal actuel"
|
||||
|
||||
#: ../remotinator.py:53
|
||||
msgid "Switch profile of all currently running terminals"
|
||||
msgstr ""
|
||||
msgstr "Changer le profil de tous les terminaux actuellement exécutés"
|
||||
|
||||
#: ../remotinator.py:70
|
||||
#, python-format
|
||||
|
@ -111,23 +111,25 @@ msgstr ""
|
|||
|
||||
#: ../remotinator.py:80
|
||||
msgid "Profile name to switch to"
|
||||
msgstr ""
|
||||
msgstr "Nom du profil sur lequel basculer"
|
||||
|
||||
#: ../remotinator.py:83
|
||||
msgid "File to pass to command"
|
||||
msgstr ""
|
||||
msgstr "Fichier à passer à la commande"
|
||||
|
||||
#: ../remotinator.py:86
|
||||
msgid "Command to run in new terminal"
|
||||
msgstr ""
|
||||
msgstr "Commande à exécuter dans un nouveau terminal"
|
||||
|
||||
#: ../remotinator.py:89
|
||||
msgid "Tab name to set. Only used with \"set_tab_title\" command."
|
||||
msgstr ""
|
||||
"Nom de l'onglet à définir. Utilisable seulement avec la commande "
|
||||
"\"set_tab_title\"."
|
||||
|
||||
#: ../remotinator.py:92
|
||||
msgid "Tab name to set."
|
||||
msgstr ""
|
||||
msgstr "Nom de l'onglet à définir."
|
||||
|
||||
#: ../data/terminator.desktop.in.h:1 ../data/terminator.appdata.xml.in.h:1
|
||||
#: ../terminatorlib/plugins/activitywatch.py:83
|
||||
|
@ -149,8 +151,8 @@ msgstr "Le futur robot des terminaux."
|
|||
msgid ""
|
||||
"A power-user tool for arranging terminals. It is inspired by programs such "
|
||||
"as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging "
|
||||
"terminals in grids (tabs is the most common default method, which Terminator "
|
||||
"also supports)."
|
||||
"terminals in grids (tabs is the most common default method, which Terminator"
|
||||
" also supports)."
|
||||
msgstr ""
|
||||
"Un outil pour utilisateur et utilisatrice expérimenté⋅e d'organisation des "
|
||||
"terminaux. Il s'inspire des programmes tels que gnome-multi-term, "
|
||||
|
@ -369,14 +371,16 @@ msgstr "Si Terminator est déjà lancé, ouvrir seulement un nouvel onglet"
|
|||
#: ../terminatorlib/optionparse.py:98
|
||||
msgid "If Terminator is already running, just unhide all hidden windows"
|
||||
msgstr ""
|
||||
"SI Terminator est déjà en exécution, faire juste réapparaître toute les "
|
||||
"fenêtres cachées"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:100
|
||||
msgid "List all profiles"
|
||||
msgstr ""
|
||||
msgstr "Lister tous les profils"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:102
|
||||
msgid "List all layouts"
|
||||
msgstr ""
|
||||
msgstr "Lister toutes les mises en pages"
|
||||
|
||||
#: ../terminatorlib/plugins/activitywatch.py:54
|
||||
msgid "Watch for _activity"
|
||||
|
@ -494,7 +498,7 @@ msgstr "Le nom *%s* existe déjà"
|
|||
|
||||
#: ../terminatorlib/plugins/dir_open.py:26
|
||||
msgid "Open current directory"
|
||||
msgstr ""
|
||||
msgstr "Ouvrir le répertoire actuel"
|
||||
|
||||
#: ../terminatorlib/plugins/logger.py:21
|
||||
#: ../terminatorlib/plugins/terminalshot.py:21
|
||||
|
@ -764,15 +768,15 @@ msgstr "Presse-papier"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:62
|
||||
msgid "Clear selection on copy"
|
||||
msgstr ""
|
||||
msgstr "Effacer la sélection à la copie"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:63
|
||||
msgid "Open links with a single click (instead of Ctrl-left click)"
|
||||
msgstr ""
|
||||
msgstr "Ouvrir les liens avec un simple clic (au lieu de Crtl + clic gauche)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:64
|
||||
msgid "Disable mouse paste"
|
||||
msgstr ""
|
||||
msgstr "Désactiver le coller de la souris"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:65
|
||||
msgid "Custom URL handler:"
|
||||
|
@ -800,11 +804,11 @@ msgstr "Personnalisation extra (Suivant le thème)"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:71
|
||||
msgid "Cell Height:"
|
||||
msgstr ""
|
||||
msgstr "Hauteur de la cellule:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:72
|
||||
msgid "Cell Width:"
|
||||
msgstr ""
|
||||
msgstr "Largeur de la cellule:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:73
|
||||
msgid "Tab position:"
|
||||
|
@ -876,11 +880,11 @@ msgstr "Clignotement"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:90
|
||||
msgid "Use default colors"
|
||||
msgstr ""
|
||||
msgstr "Utiliser les couleurs par défaut"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:91
|
||||
msgid "Foreground:"
|
||||
msgstr ""
|
||||
msgstr "Premier plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:92
|
||||
msgid "Background:"
|
||||
|
@ -940,11 +944,11 @@ msgstr "_Palettes prédéfinies :"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:107
|
||||
msgid "_Foreground:"
|
||||
msgstr ""
|
||||
msgstr "_Premier plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:108
|
||||
msgid "_Background:"
|
||||
msgstr ""
|
||||
msgstr "_Arrière plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:109
|
||||
msgid "<b>Palette</b>"
|
||||
|
@ -976,11 +980,11 @@ msgstr "Arrière-plan _transparent"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:116
|
||||
msgid "Background Image"
|
||||
msgstr ""
|
||||
msgstr "Image d'arrière plan"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:117
|
||||
msgid "Background Image File:"
|
||||
msgstr ""
|
||||
msgstr "Fichier de l'image d'arrière plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:118
|
||||
msgid "Choose file"
|
||||
|
@ -988,7 +992,7 @@ msgstr "Choisir un fichier"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:119
|
||||
msgid "S_hade background:"
|
||||
msgstr ""
|
||||
msgstr "Arrière plan nuancé:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:120
|
||||
msgid "<small><i>None</i></small>"
|
||||
|
@ -1034,13 +1038,13 @@ msgstr "Défilement"
|
|||
msgid ""
|
||||
"<small><i><b>Note:</b> These options may cause some applications to behave "
|
||||
"incorrectly. They are only here to allow you to work around certain "
|
||||
"applications and operating systems that expect different terminal behavior.</"
|
||||
"i></small>"
|
||||
"applications and operating systems that expect different terminal "
|
||||
"behavior.</i></small>"
|
||||
msgstr ""
|
||||
"<small><i><b>Note :</b> ces options peuvent gêner le fonctionnement de "
|
||||
"certaines applications. Elles sont seulement là pour vous permettre de faire "
|
||||
"fonctionner certaines applications et systèmes d'exploitation qui attendent "
|
||||
"un comportement du terminal différent.</i></small>"
|
||||
"certaines applications. Elles sont seulement là pour vous permettre de faire"
|
||||
" fonctionner certaines applications et systèmes d'exploitation qui attendent"
|
||||
" un comportement du terminal différent.</i></small>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:131
|
||||
msgid "_Backspace key generates:"
|
||||
|
@ -1084,7 +1088,7 @@ msgstr "Choisissez une police de caractères pour la barre de titre"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:141
|
||||
msgid "Titlebar"
|
||||
msgstr ""
|
||||
msgstr "Barre de titre:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:142
|
||||
#: ../terminatorlib/terminal_popup_menu.py:204
|
||||
|
@ -1137,33 +1141,17 @@ msgstr "Greffons"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:158
|
||||
msgid "Version: 2.1.1"
|
||||
msgstr ""
|
||||
msgstr "Version: 2.1.1"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:159
|
||||
msgid ""
|
||||
"The goal of this project is to produce a useful tool for arranging "
|
||||
"terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, "
|
||||
"etc. in that the main focus is arranging terminals in grids (tabs is the "
|
||||
"most common default method, which Terminator also supports).\n"
|
||||
"The goal of this project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging terminals in grids (tabs is the most common default method, which Terminator also supports).\n"
|
||||
"\n"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are "
|
||||
"adding more features from that as time goes by, but we also want to extend "
|
||||
"out in different directions with useful features for sysadmins and other "
|
||||
"users. If you have any suggestions, please file wishlist bugs! (see left for "
|
||||
"the Development link)"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are adding more features from that as time goes by, but we also want to extend out in different directions with useful features for sysadmins and other users. If you have any suggestions, please file wishlist bugs! (see left for the Development link)"
|
||||
msgstr ""
|
||||
"Le but de ce projet est de créer un outil puissant pour gèrer les terminaux. "
|
||||
"Il est inspiré de programmes tels que gnome-multi-term, quadkonsole, etc. "
|
||||
"car il se concentre aussi sur le fait de présenter les terminaux en grille "
|
||||
"(les onglets sont la méthode par défaut la plus répandue, ce qui est "
|
||||
"également supporté par terminator).\n"
|
||||
"Le but de ce projet est de créer un outil puissant pour gèrer les terminaux. Il est inspiré de programmes tels que gnome-multi-term, quadkonsole, etc. car il se concentre aussi sur le fait de présenter les terminaux en grille (les onglets sont la méthode par défaut la plus répandue, ce qui est également supporté par terminator).\n"
|
||||
"\n"
|
||||
"Une grande partie du comportement de Terminator est basée sur le terminal "
|
||||
"GNOME, nous ajoutons de nouvelles fonctionnalités au fil du temps, mais nous "
|
||||
"désirons également nous étendre dans différentes directions avec des "
|
||||
"capacités utiles aux administrateurs système et aux autres utilisateurs. Si "
|
||||
"vous avez des suggestions, merci de remplir un bug de souhait! (regardez a "
|
||||
"gauche pour le lien de développement)"
|
||||
"Une grande partie du comportement de Terminator est basée sur le terminal GNOME, nous ajoutons de nouvelles fonctionnalités au fil du temps, mais nous désirons également nous étendre dans différentes directions avec des capacités utiles aux administrateurs système et aux autres utilisateurs. Si vous avez des suggestions, merci de remplir un bug de souhait! (regardez a gauche pour le lien de développement)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:162
|
||||
msgid "The Manual"
|
||||
|
@ -1172,13 +1160,10 @@ msgstr "Le manuel"
|
|||
#: ../terminatorlib/preferences.glade.h:163
|
||||
msgid ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Development</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Enhancements</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Enhancements</a>"
|
||||
msgstr ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Développement</"
|
||||
"a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Améliorations</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Développement</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Améliorations</a>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:165
|
||||
msgid "About"
|
||||
|
@ -1198,15 +1183,15 @@ msgstr "Restaurer la taille d'origine de la police de caractères"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:107
|
||||
msgid "Increase font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Augmenter la taille de la police sur tous les terminaux"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:108
|
||||
msgid "Decrease font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Diminuer la taille de la police sur tous les terminaux"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:109
|
||||
msgid "Restore original font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Restaurer la police originale sur tous les terminaux"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:110
|
||||
msgid "Create a new tab"
|
||||
|
@ -1266,7 +1251,7 @@ msgstr "Coller le contenu du presse-papier"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:126
|
||||
msgid "Paste primary selection"
|
||||
msgstr ""
|
||||
msgstr "Coller la sélection primaire"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:127
|
||||
msgid "Show/Hide the scrollbar"
|
||||
|
@ -1418,15 +1403,15 @@ msgstr "Dégrouper tous les terminaux"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:164
|
||||
msgid "Group terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Grouper les terminaux dans une fenêtre"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:165
|
||||
msgid "Group/Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Grouper/Dégrouper les terminaux dans une fenêtre"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:166
|
||||
msgid "Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Dégrouper les terminaux dans une fenêtre"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:167
|
||||
msgid "Group terminals in tab"
|
||||
|
@ -1500,11 +1485,11 @@ msgstr "Ouvrir les préférences"
|
|||
msgid "Open the manual"
|
||||
msgstr "Ouvrir le manuel"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1370
|
||||
#: ../terminatorlib/prefseditor.py:1366
|
||||
msgid "New Profile"
|
||||
msgstr "Nouveau profil"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1413 ../terminatorlib/prefseditor.py:1418
|
||||
#: ../terminatorlib/prefseditor.py:1409 ../terminatorlib/prefseditor.py:1414
|
||||
msgid "New Layout"
|
||||
msgstr "Nouvel agencement"
|
||||
|
||||
|
@ -1551,7 +1536,7 @@ msgstr "C_oller"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:112
|
||||
msgid "Set W_indow Title"
|
||||
msgstr ""
|
||||
msgstr "Définir Titre de la F_enêtre"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:117
|
||||
msgid "Split H_orizontally"
|
||||
|
@ -1591,7 +1576,7 @@ msgstr "Regroupement"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:186
|
||||
msgid "Relaunch Command"
|
||||
msgstr ""
|
||||
msgstr "Relancer la commande"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:191
|
||||
msgid "Show _scrollbar"
|
||||
|
@ -1616,11 +1601,11 @@ msgstr "Supprimer le groupe %s"
|
|||
|
||||
#: ../terminatorlib/terminal.py:512
|
||||
msgid "G_roup all in window"
|
||||
msgstr ""
|
||||
msgstr "Tout g_rouper dans une fenêtre"
|
||||
|
||||
#: ../terminatorlib/terminal.py:517
|
||||
msgid "Ungro_up all in window"
|
||||
msgstr ""
|
||||
msgstr "Tout dégro_uper dans une fenêtre"
|
||||
|
||||
#: ../terminatorlib/terminal.py:522
|
||||
msgid "G_roup all in tab"
|
||||
|
@ -1667,25 +1652,25 @@ msgstr "_Insérer le numéro du terminal"
|
|||
msgid "Insert _padded terminal number"
|
||||
msgstr "Insérer le _numéro du terminal"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1490
|
||||
#: ../terminatorlib/terminal.py:1492
|
||||
msgid "Unable to find a shell"
|
||||
msgstr "Impossible de trouver un shell"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1521
|
||||
#: ../terminatorlib/terminal.py:1546
|
||||
msgid "Unable to start shell:"
|
||||
msgstr "Impossible de démarrer le shell :"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1975
|
||||
#: ../terminatorlib/terminal.py:2000
|
||||
msgid "Rename Window"
|
||||
msgstr "Renommer la fenêtre"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1983
|
||||
#: ../terminatorlib/terminal.py:2008
|
||||
msgid "Enter a new title for the Terminator window..."
|
||||
msgstr "Saisir un nouveau titre pour la fenêtre Terminator..."
|
||||
|
||||
#: ../terminatorlib/titlebar.py:112
|
||||
msgid "[INACTIVE: Right-Click for Relaunch option] "
|
||||
msgstr ""
|
||||
msgstr "[INACTIF: Clic Droit pour Relancer l'option]"
|
||||
|
||||
#: ../terminatorlib/titlebar.py:258
|
||||
msgid "Alpha"
|
||||
|
@ -1790,120 +1775,9 @@ msgstr "fenêtre"
|
|||
#: ../terminatorlib/window.py:773
|
||||
#, python-format
|
||||
msgid "Window group %s"
|
||||
msgstr ""
|
||||
msgstr "Groupe de fenêtres %s"
|
||||
|
||||
#: ../terminatorlib/window.py:799
|
||||
#, python-format
|
||||
msgid "Tab %d"
|
||||
msgstr "Onglet %d"
|
||||
|
||||
#~ msgid "Current Locale"
|
||||
#~ msgstr "Locale actuelle"
|
||||
|
||||
#~ msgid "Western"
|
||||
#~ msgstr "Occidentale"
|
||||
|
||||
#~ msgid "Central European"
|
||||
#~ msgstr "Europe centrale"
|
||||
|
||||
#~ msgid "South European"
|
||||
#~ msgstr "Europe du Sud"
|
||||
|
||||
#~ msgid "Baltic"
|
||||
#~ msgstr "Balte"
|
||||
|
||||
#~ msgid "Cyrillic"
|
||||
#~ msgstr "Cyrillique"
|
||||
|
||||
#~ msgid "Arabic"
|
||||
#~ msgstr "Arabe"
|
||||
|
||||
#~ msgid "Greek"
|
||||
#~ msgstr "Grec"
|
||||
|
||||
#~ msgid "Hebrew Visual"
|
||||
#~ msgstr "Hébreu visuel"
|
||||
|
||||
#~ msgid "Hebrew"
|
||||
#~ msgstr "Hébreu"
|
||||
|
||||
#~ msgid "Turkish"
|
||||
#~ msgstr "Turc"
|
||||
|
||||
#~ msgid "Nordic"
|
||||
#~ msgstr "Nordique"
|
||||
|
||||
#~ msgid "Celtic"
|
||||
#~ msgstr "Celte"
|
||||
|
||||
#~ msgid "Romanian"
|
||||
#~ msgstr "Roumain"
|
||||
|
||||
#~ msgid "Unicode"
|
||||
#~ msgstr "Unicode"
|
||||
|
||||
#~ msgid "Armenian"
|
||||
#~ msgstr "Arménien"
|
||||
|
||||
#~ msgid "Chinese Traditional"
|
||||
#~ msgstr "Chinois traditionnel"
|
||||
|
||||
#~ msgid "Cyrillic/Russian"
|
||||
#~ msgstr "Cyrillique/russe"
|
||||
|
||||
#~ msgid "Japanese"
|
||||
#~ msgstr "Japonais"
|
||||
|
||||
#~ msgid "Korean"
|
||||
#~ msgstr "Coréen"
|
||||
|
||||
#~ msgid "Chinese Simplified"
|
||||
#~ msgstr "Chinois simplifié"
|
||||
|
||||
#~ msgid "Georgian"
|
||||
#~ msgstr "Géorgien"
|
||||
|
||||
#~ msgid "Cyrillic/Ukrainian"
|
||||
#~ msgstr "Cyrillique/ukrainien"
|
||||
|
||||
#~ msgid "Croatian"
|
||||
#~ msgstr "Croate"
|
||||
|
||||
#~ msgid "Hindi"
|
||||
#~ msgstr "Hindi"
|
||||
|
||||
#~ msgid "Persian"
|
||||
#~ msgstr "Persan"
|
||||
|
||||
#~ msgid "Gujarati"
|
||||
#~ msgstr "Gujarati"
|
||||
|
||||
#~ msgid "Gurmukhi"
|
||||
#~ msgstr "Gurmukhi"
|
||||
|
||||
#~ msgid "Icelandic"
|
||||
#~ msgstr "Islandais"
|
||||
|
||||
#~ msgid "Vietnamese"
|
||||
#~ msgstr "Vietnamien"
|
||||
|
||||
#~ msgid "Thai"
|
||||
#~ msgstr "Thaï"
|
||||
|
||||
#~ msgid "Line Height:"
|
||||
#~ msgstr "Hauteur de ligne :"
|
||||
|
||||
#~ msgid "Encoding:"
|
||||
#~ msgstr "Codage des caractères :"
|
||||
|
||||
#~ msgid "Encodings"
|
||||
#~ msgstr "Codages"
|
||||
|
||||
#~ msgid "Default"
|
||||
#~ msgstr "Valeur par défaut"
|
||||
|
||||
#~ msgid "User defined"
|
||||
#~ msgstr "Défini par l'utilisateur"
|
||||
|
||||
#~ msgid "Other Encodings"
|
||||
#~ msgstr "Autres codages"
|
||||
|
|
267
po/hr.po
267
po/hr.po
|
@ -2,28 +2,26 @@
|
|||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Gnome Terminator <terminator@lazyfrosch.de>, 2020
|
||||
# Marko Dzidic <mdzidic@gmail.com>, 2020
|
||||
# Markus Frosch <markus@lazyfrosch.de>, 2021
|
||||
#
|
||||
# Marko Dzidic <mdzidic@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-22 00:51+0100\n"
|
||||
"POT-Creation-Date: 2022-10-19 09:29-0400\n"
|
||||
"PO-Revision-Date: 2020-04-22 08:11+0000\n"
|
||||
"Last-Translator: Markus Frosch <markus@lazyfrosch.de>, 2021\n"
|
||||
"Language-Team: Croatian (https://www.transifex.com/terminator/teams/109338/"
|
||||
"hr/)\n"
|
||||
"Language: hr\n"
|
||||
"Last-Translator: Marko Dzidic <mdzidic@gmail.com>, 2023\n"
|
||||
"Language-Team: Croatian (https://app.transifex.com/terminator/teams/109338/hr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"Language: hr\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
#. Command uuid req. Description
|
||||
#: ../remotinator.py:39
|
||||
|
@ -48,7 +46,7 @@ msgstr "Dobij popis svih terminala"
|
|||
|
||||
#: ../remotinator.py:44
|
||||
msgid "Get the uuid of the current focused terminal"
|
||||
msgstr ""
|
||||
msgstr "Dobij UUID trenutnog terminala u fokusu"
|
||||
|
||||
#: ../remotinator.py:45
|
||||
msgid "Get the UUID of a parent window"
|
||||
|
@ -68,23 +66,23 @@ msgstr "Dobij naslov nadređene kartice"
|
|||
|
||||
#: ../remotinator.py:49
|
||||
msgid "Set the title of a parent tab"
|
||||
msgstr ""
|
||||
msgstr "Postavite naslov glavne kartice"
|
||||
|
||||
#: ../remotinator.py:50
|
||||
msgid "Set the background image"
|
||||
msgstr ""
|
||||
msgstr "Postavite pozadinsku sliku"
|
||||
|
||||
#: ../remotinator.py:51
|
||||
msgid "Set the background image for all terminals"
|
||||
msgstr ""
|
||||
msgstr "Postavite pozadinsku sliku za sve terminale"
|
||||
|
||||
#: ../remotinator.py:52
|
||||
msgid "Switch current terminal profile"
|
||||
msgstr ""
|
||||
msgstr "Promijeni trenutni profil terminala"
|
||||
|
||||
#: ../remotinator.py:53
|
||||
msgid "Switch profile of all currently running terminals"
|
||||
msgstr ""
|
||||
msgstr "Promijeni profil svih trenutno pokrenutih terminala"
|
||||
|
||||
#: ../remotinator.py:70
|
||||
#, python-format
|
||||
|
@ -111,23 +109,24 @@ msgstr "UUID terminala, kad nije u TERMINATOR_UUID varijabli okruženja"
|
|||
|
||||
#: ../remotinator.py:80
|
||||
msgid "Profile name to switch to"
|
||||
msgstr ""
|
||||
msgstr "Naziv profila za prebacivanje"
|
||||
|
||||
#: ../remotinator.py:83
|
||||
msgid "File to pass to command"
|
||||
msgstr ""
|
||||
msgstr "Datoteka za prosljeđivanje naredbi"
|
||||
|
||||
#: ../remotinator.py:86
|
||||
msgid "Command to run in new terminal"
|
||||
msgstr ""
|
||||
msgstr "Naredba za pokretanje u novom terminalu"
|
||||
|
||||
#: ../remotinator.py:89
|
||||
msgid "Tab name to set. Only used with \"set_tab_title\" command."
|
||||
msgstr ""
|
||||
"Naziv kartice za postavljanje. Koristi se samo s naredbom \"set_tab_title\"."
|
||||
|
||||
#: ../remotinator.py:92
|
||||
msgid "Tab name to set."
|
||||
msgstr ""
|
||||
msgstr "Naziv kartice za postavljanje."
|
||||
|
||||
#: ../data/terminator.desktop.in.h:1 ../data/terminator.appdata.xml.in.h:1
|
||||
#: ../terminatorlib/plugins/activitywatch.py:83
|
||||
|
@ -149,11 +148,11 @@ msgstr "Robotska budućnost terminala"
|
|||
msgid ""
|
||||
"A power-user tool for arranging terminals. It is inspired by programs such "
|
||||
"as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging "
|
||||
"terminals in grids (tabs is the most common default method, which Terminator "
|
||||
"also supports)."
|
||||
"terminals in grids (tabs is the most common default method, which Terminator"
|
||||
" also supports)."
|
||||
msgstr ""
|
||||
"Profesionalni korisnički alat za raspoređivanje terminala, slično programima "
|
||||
"poput gnome-multi-term, quadkonsole, itd., a glavna ideja je pločasto "
|
||||
"Profesionalni korisnički alat za raspoređivanje terminala, slično programima"
|
||||
" poput gnome-multi-term, quadkonsole, itd., a glavna ideja je pločasto "
|
||||
"raspoređivanje terminala (kartice su najraširenija metoda, koju Terminator "
|
||||
"također podržava)."
|
||||
|
||||
|
@ -304,8 +303,8 @@ msgid ""
|
|||
"Use the rest of the command line as a command to execute inside the "
|
||||
"terminal, and its arguments"
|
||||
msgstr ""
|
||||
"Koristi ostatak naredbenog retka kao naredbu za izvršavanje unutar terminala "
|
||||
"i njezine argumente"
|
||||
"Koristi ostatak naredbenog retka kao naredbu za izvršavanje unutar terminala"
|
||||
" i njezine argumente"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:69
|
||||
msgid "Specify a config file"
|
||||
|
@ -361,15 +360,15 @@ msgstr "Ako je Terminator već pokrenut, jednostavno otvori novu karticu"
|
|||
|
||||
#: ../terminatorlib/optionparse.py:98
|
||||
msgid "If Terminator is already running, just unhide all hidden windows"
|
||||
msgstr ""
|
||||
msgstr "Ako je Terminator već pokrenut, samo otkrijte sve skrivene prozore"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:100
|
||||
msgid "List all profiles"
|
||||
msgstr ""
|
||||
msgstr "Popis svih profila"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:102
|
||||
msgid "List all layouts"
|
||||
msgstr ""
|
||||
msgstr "Popis svih izgleda"
|
||||
|
||||
#: ../terminatorlib/plugins/activitywatch.py:54
|
||||
msgid "Watch for _activity"
|
||||
|
@ -487,7 +486,7 @@ msgstr "Naziv *%s* već postoji"
|
|||
|
||||
#: ../terminatorlib/plugins/dir_open.py:26
|
||||
msgid "Open current directory"
|
||||
msgstr ""
|
||||
msgstr "Otvori trenutni direktorij"
|
||||
|
||||
#: ../terminatorlib/plugins/logger.py:21
|
||||
#: ../terminatorlib/plugins/terminalshot.py:21
|
||||
|
@ -757,15 +756,15 @@ msgstr "Međuspremnik"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:62
|
||||
msgid "Clear selection on copy"
|
||||
msgstr ""
|
||||
msgstr "Obriši obilježeno nakon kopiranja"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:63
|
||||
msgid "Open links with a single click (instead of Ctrl-left click)"
|
||||
msgstr ""
|
||||
msgstr "Otvaranje poveznica jednim klikom (umjesto Ctrl-lijevi klik)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:64
|
||||
msgid "Disable mouse paste"
|
||||
msgstr ""
|
||||
msgstr "Onemogući umetanje mišom"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:65
|
||||
msgid "Custom URL handler:"
|
||||
|
@ -793,11 +792,11 @@ msgstr "Dodatno stiliziranje (ovisno o temi)"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:71
|
||||
msgid "Cell Height:"
|
||||
msgstr ""
|
||||
msgstr "Visina ćelije:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:72
|
||||
msgid "Cell Width:"
|
||||
msgstr ""
|
||||
msgstr "Širina ćelije:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:73
|
||||
msgid "Tab position:"
|
||||
|
@ -869,11 +868,11 @@ msgstr "Titranje"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:90
|
||||
msgid "Use default colors"
|
||||
msgstr ""
|
||||
msgstr "Koristi zadane boje"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:91
|
||||
msgid "Foreground:"
|
||||
msgstr ""
|
||||
msgstr "Prednji plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:92
|
||||
msgid "Background:"
|
||||
|
@ -933,11 +932,11 @@ msgstr "Ugrađene she_me:"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:107
|
||||
msgid "_Foreground:"
|
||||
msgstr ""
|
||||
msgstr "_Prednji plan:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:108
|
||||
msgid "_Background:"
|
||||
msgstr ""
|
||||
msgstr "_Boja pozadine:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:109
|
||||
msgid "<b>Palette</b>"
|
||||
|
@ -969,11 +968,11 @@ msgstr "_Prozirna pozadina"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:116
|
||||
msgid "Background Image"
|
||||
msgstr ""
|
||||
msgstr "Pozadinska slika"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:117
|
||||
msgid "Background Image File:"
|
||||
msgstr ""
|
||||
msgstr "Datoteka pozadinske slike:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:118
|
||||
msgid "Choose file"
|
||||
|
@ -981,7 +980,7 @@ msgstr "Odaberi datoteku"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:119
|
||||
msgid "S_hade background:"
|
||||
msgstr ""
|
||||
msgstr "Zasjeniti pozadinu:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:120
|
||||
msgid "<small><i>None</i></small>"
|
||||
|
@ -1027,8 +1026,8 @@ msgstr "Klizanje"
|
|||
msgid ""
|
||||
"<small><i><b>Note:</b> These options may cause some applications to behave "
|
||||
"incorrectly. They are only here to allow you to work around certain "
|
||||
"applications and operating systems that expect different terminal behavior.</"
|
||||
"i></small>"
|
||||
"applications and operating systems that expect different terminal "
|
||||
"behavior.</i></small>"
|
||||
msgstr ""
|
||||
"<small><i><b>Napomena:</b> Ove opcije mogu prouzrokovati neispravan rad "
|
||||
"nekih programa. Ovdje se nalaze samo kako bi se zaobišli problemi s "
|
||||
|
@ -1077,7 +1076,7 @@ msgstr "Odaberi font za traku naslova"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:141
|
||||
msgid "Titlebar"
|
||||
msgstr ""
|
||||
msgstr "Naslovna traka"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:142
|
||||
#: ../terminatorlib/terminal_popup_menu.py:204
|
||||
|
@ -1130,30 +1129,17 @@ msgstr "Priključci"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:158
|
||||
msgid "Version: 2.1.1"
|
||||
msgstr ""
|
||||
msgstr "Verzija: 2.1.1"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:159
|
||||
msgid ""
|
||||
"The goal of this project is to produce a useful tool for arranging "
|
||||
"terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, "
|
||||
"etc. in that the main focus is arranging terminals in grids (tabs is the "
|
||||
"most common default method, which Terminator also supports).\n"
|
||||
"The goal of this project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging terminals in grids (tabs is the most common default method, which Terminator also supports).\n"
|
||||
"\n"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are "
|
||||
"adding more features from that as time goes by, but we also want to extend "
|
||||
"out in different directions with useful features for sysadmins and other "
|
||||
"users. If you have any suggestions, please file wishlist bugs! (see left for "
|
||||
"the Development link)"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are adding more features from that as time goes by, but we also want to extend out in different directions with useful features for sysadmins and other users. If you have any suggestions, please file wishlist bugs! (see left for the Development link)"
|
||||
msgstr ""
|
||||
"Cilj ovog projekta je proizvesti koristan alat za raspoređivanje terminala, "
|
||||
"slično programima poput gnome-multi-term, quadkonsole, itd., a glavna ideja "
|
||||
"je pločasto raspoređivanje terminala (kartice su najraširenija standardna "
|
||||
"metoda, koju Terminator također podržava).\n"
|
||||
"Cilj ovog projekta je proizvesti koristan alat za raspoređivanje terminala, slično programima poput gnome-multi-term, quadkonsole, itd., a glavna ideja je pločasto raspoređivanje terminala (kartice su najraširenija standardna metoda, koju Terminator također podržava).\n"
|
||||
"\n"
|
||||
"Terminator se uveliko temelji se na GNOME Terminalu i s vremenom dodajemo "
|
||||
"daljnje njegove funkcije, ali ga također razvijamo s raznim dodatnim "
|
||||
"korisnim funkcijama za administratore sustava i za ostale korisnike. "
|
||||
"Prijedlozi se mogu dodati u popis želja! (vidi lijevo poveznicu „Razvoj”)"
|
||||
"Terminator se uveliko temelji se na GNOME Terminalu i s vremenom dodajemo daljnje njegove funkcije, ali ga također razvijamo s raznim dodatnim korisnim funkcijama za administratore sustava i za ostale korisnike. Prijedlozi se mogu dodati u popis želja! (vidi lijevo poveznicu „Razvoj”)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:162
|
||||
msgid "The Manual"
|
||||
|
@ -1162,12 +1148,10 @@ msgstr "Priručnik"
|
|||
#: ../terminatorlib/preferences.glade.h:163
|
||||
msgid ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Development</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Enhancements</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Enhancements</a>"
|
||||
msgstr ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Razvoj</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Greške i "
|
||||
"poboljšanja</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Greške i poboljšanja</a>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:165
|
||||
msgid "About"
|
||||
|
@ -1187,15 +1171,15 @@ msgstr "Vrati izvornu veličinu fonta"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:107
|
||||
msgid "Increase font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Povećaj veličinu fonta na svim terminalima"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:108
|
||||
msgid "Decrease font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Smanji veličinu fonta na svim terminalima"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:109
|
||||
msgid "Restore original font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "Vrati izvornu veličinu fonta na svim terminalima"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:110
|
||||
msgid "Create a new tab"
|
||||
|
@ -1255,7 +1239,7 @@ msgstr "Umetni iz međuspremnika"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:126
|
||||
msgid "Paste primary selection"
|
||||
msgstr ""
|
||||
msgstr "Umetni primarni odabir"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:127
|
||||
msgid "Show/Hide the scrollbar"
|
||||
|
@ -1407,15 +1391,15 @@ msgstr "Razdvoji sve terminale"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:164
|
||||
msgid "Group terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Grupiraj terminale u prozoru"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:165
|
||||
msgid "Group/Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Grupiraj/razgrupiraj terminale u prozoru"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:166
|
||||
msgid "Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Razgrupiraj terminale u prozoru"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:167
|
||||
msgid "Group terminals in tab"
|
||||
|
@ -1489,11 +1473,11 @@ msgstr "Otvori prozor postavki"
|
|||
msgid "Open the manual"
|
||||
msgstr "Otvori priručnik"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1370
|
||||
#: ../terminatorlib/prefseditor.py:1366
|
||||
msgid "New Profile"
|
||||
msgstr "Novi profil"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1413 ../terminatorlib/prefseditor.py:1418
|
||||
#: ../terminatorlib/prefseditor.py:1409 ../terminatorlib/prefseditor.py:1414
|
||||
msgid "New Layout"
|
||||
msgstr "Novi raspored"
|
||||
|
||||
|
@ -1540,7 +1524,7 @@ msgstr "_Umetni"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:112
|
||||
msgid "Set W_indow Title"
|
||||
msgstr ""
|
||||
msgstr "Postav_ite naslov prozora"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:117
|
||||
msgid "Split H_orizontally"
|
||||
|
@ -1580,7 +1564,7 @@ msgstr "Grupiranje"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:186
|
||||
msgid "Relaunch Command"
|
||||
msgstr ""
|
||||
msgstr "Ponovo pokreni naredbu"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:191
|
||||
msgid "Show _scrollbar"
|
||||
|
@ -1605,11 +1589,11 @@ msgstr "Ukloni grupu %s"
|
|||
|
||||
#: ../terminatorlib/terminal.py:512
|
||||
msgid "G_roup all in window"
|
||||
msgstr ""
|
||||
msgstr "G_rupirajte sve u prozoru"
|
||||
|
||||
#: ../terminatorlib/terminal.py:517
|
||||
msgid "Ungro_up all in window"
|
||||
msgstr ""
|
||||
msgstr "Razgr_upiraj sve u prozoru"
|
||||
|
||||
#: ../terminatorlib/terminal.py:522
|
||||
msgid "G_roup all in tab"
|
||||
|
@ -1656,25 +1640,25 @@ msgstr "_Umetni broj terminala"
|
|||
msgid "Insert _padded terminal number"
|
||||
msgstr "Umetni _broj terminala s predstavljenom nulom"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1490
|
||||
#: ../terminatorlib/terminal.py:1492
|
||||
msgid "Unable to find a shell"
|
||||
msgstr "Nije moguće pronaći ljusku"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1521
|
||||
#: ../terminatorlib/terminal.py:1546
|
||||
msgid "Unable to start shell:"
|
||||
msgstr "Nije moguće pokrenuti ljusku:"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1975
|
||||
#: ../terminatorlib/terminal.py:2000
|
||||
msgid "Rename Window"
|
||||
msgstr "Preimenuj prozor"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1983
|
||||
#: ../terminatorlib/terminal.py:2008
|
||||
msgid "Enter a new title for the Terminator window..."
|
||||
msgstr "Upiši novi naslov za prozor Terminatora …"
|
||||
|
||||
#: ../terminatorlib/titlebar.py:112
|
||||
msgid "[INACTIVE: Right-Click for Relaunch option] "
|
||||
msgstr ""
|
||||
msgstr "[NEAKTIVNO: Desni klik za opciju ponovnog pokretanja]"
|
||||
|
||||
#: ../terminatorlib/titlebar.py:258
|
||||
msgid "Alpha"
|
||||
|
@ -1779,120 +1763,9 @@ msgstr "prozor"
|
|||
#: ../terminatorlib/window.py:773
|
||||
#, python-format
|
||||
msgid "Window group %s"
|
||||
msgstr ""
|
||||
msgstr "Grupa prozora %s"
|
||||
|
||||
#: ../terminatorlib/window.py:799
|
||||
#, python-format
|
||||
msgid "Tab %d"
|
||||
msgstr "Kartica %d"
|
||||
|
||||
#~ msgid "Current Locale"
|
||||
#~ msgstr "Trenutačni jezik"
|
||||
|
||||
#~ msgid "Western"
|
||||
#~ msgstr "Zapadni"
|
||||
|
||||
#~ msgid "Central European"
|
||||
#~ msgstr "Srednjoeuropski"
|
||||
|
||||
#~ msgid "South European"
|
||||
#~ msgstr "Južnoeuropski"
|
||||
|
||||
#~ msgid "Baltic"
|
||||
#~ msgstr "Baltički"
|
||||
|
||||
#~ msgid "Cyrillic"
|
||||
#~ msgstr "Ćirilični"
|
||||
|
||||
#~ msgid "Arabic"
|
||||
#~ msgstr "Arapski"
|
||||
|
||||
#~ msgid "Greek"
|
||||
#~ msgstr "Grčki"
|
||||
|
||||
#~ msgid "Hebrew Visual"
|
||||
#~ msgstr "Vizualni hebrejski"
|
||||
|
||||
#~ msgid "Hebrew"
|
||||
#~ msgstr "Hebrejski"
|
||||
|
||||
#~ msgid "Turkish"
|
||||
#~ msgstr "Turski"
|
||||
|
||||
#~ msgid "Nordic"
|
||||
#~ msgstr "Nordijski"
|
||||
|
||||
#~ msgid "Celtic"
|
||||
#~ msgstr "Keltski"
|
||||
|
||||
#~ msgid "Romanian"
|
||||
#~ msgstr "Rumunjski"
|
||||
|
||||
#~ msgid "Unicode"
|
||||
#~ msgstr "Unikod"
|
||||
|
||||
#~ msgid "Armenian"
|
||||
#~ msgstr "Armenski"
|
||||
|
||||
#~ msgid "Chinese Traditional"
|
||||
#~ msgstr "Kineski tradicionalni"
|
||||
|
||||
#~ msgid "Cyrillic/Russian"
|
||||
#~ msgstr "Ćirilica/Ruski"
|
||||
|
||||
#~ msgid "Japanese"
|
||||
#~ msgstr "Japanski"
|
||||
|
||||
#~ msgid "Korean"
|
||||
#~ msgstr "Korejski"
|
||||
|
||||
#~ msgid "Chinese Simplified"
|
||||
#~ msgstr "Kineski pojednostavljeni"
|
||||
|
||||
#~ msgid "Georgian"
|
||||
#~ msgstr "Gruzijski"
|
||||
|
||||
#~ msgid "Cyrillic/Ukrainian"
|
||||
#~ msgstr "Ćirilica/Ukrajinski"
|
||||
|
||||
#~ msgid "Croatian"
|
||||
#~ msgstr "Hrvatski"
|
||||
|
||||
#~ msgid "Hindi"
|
||||
#~ msgstr "Hindski"
|
||||
|
||||
#~ msgid "Persian"
|
||||
#~ msgstr "Perzijski"
|
||||
|
||||
#~ msgid "Gujarati"
|
||||
#~ msgstr "Gudžaratski"
|
||||
|
||||
#~ msgid "Gurmukhi"
|
||||
#~ msgstr "Gurmuki"
|
||||
|
||||
#~ msgid "Icelandic"
|
||||
#~ msgstr "Islandski"
|
||||
|
||||
#~ msgid "Vietnamese"
|
||||
#~ msgstr "Vijetnamski"
|
||||
|
||||
#~ msgid "Thai"
|
||||
#~ msgstr "Tajlandski"
|
||||
|
||||
#~ msgid "Line Height:"
|
||||
#~ msgstr "Prored:"
|
||||
|
||||
#~ msgid "Encoding:"
|
||||
#~ msgstr "Kodiranje:"
|
||||
|
||||
#~ msgid "Encodings"
|
||||
#~ msgstr "Kodiranja"
|
||||
|
||||
#~ msgid "Default"
|
||||
#~ msgstr "Standardno"
|
||||
|
||||
#~ msgid "User defined"
|
||||
#~ msgstr "Korisnički određeno"
|
||||
|
||||
#~ msgid "Other Encodings"
|
||||
#~ msgstr "Ostala kodiranja"
|
||||
|
|
233
po/pt_BR.po
233
po/pt_BR.po
|
@ -2,26 +2,26 @@
|
|||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Gnome Terminator <terminator@lazyfrosch.de>, 2020
|
||||
# Anthony Louis <anthony.physis@gmail.com>, 2021
|
||||
#
|
||||
# C. E., 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-22 00:51+0100\n"
|
||||
"POT-Creation-Date: 2022-10-19 09:29-0400\n"
|
||||
"PO-Revision-Date: 2020-04-22 08:11+0000\n"
|
||||
"Last-Translator: Anthony Louis <anthony.physis@gmail.com>, 2021\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/terminator/"
|
||||
"teams/109338/pt_BR/)\n"
|
||||
"Language: pt_BR\n"
|
||||
"Last-Translator: C. E., 2022\n"
|
||||
"Language-Team: Portuguese (Brazil) (https://www.transifex.com/terminator/teams/109338/pt_BR/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Language: pt_BR\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#. Command uuid req. Description
|
||||
#: ../remotinator.py:39
|
||||
|
@ -70,11 +70,11 @@ msgstr "Definir título de uma guia superior"
|
|||
|
||||
#: ../remotinator.py:50
|
||||
msgid "Set the background image"
|
||||
msgstr ""
|
||||
msgstr "Definir a imagem de fundo"
|
||||
|
||||
#: ../remotinator.py:51
|
||||
msgid "Set the background image for all terminals"
|
||||
msgstr ""
|
||||
msgstr "Definir a imagem de fundo para todos os terminais"
|
||||
|
||||
#: ../remotinator.py:52
|
||||
msgid "Switch current terminal profile"
|
||||
|
@ -82,7 +82,7 @@ msgstr "Trocar o perfil atual do terminal"
|
|||
|
||||
#: ../remotinator.py:53
|
||||
msgid "Switch profile of all currently running terminals"
|
||||
msgstr ""
|
||||
msgstr "Troca o perfil de todos os terminais atualmente em execução"
|
||||
|
||||
#: ../remotinator.py:70
|
||||
#, python-format
|
||||
|
@ -108,15 +108,15 @@ msgstr "Terminal UUID para quando não estiver em TERMINATOR_UUID"
|
|||
|
||||
#: ../remotinator.py:80
|
||||
msgid "Profile name to switch to"
|
||||
msgstr ""
|
||||
msgstr "Mudar o nome do perfil para"
|
||||
|
||||
#: ../remotinator.py:83
|
||||
msgid "File to pass to command"
|
||||
msgstr ""
|
||||
msgstr "Arquivo para passar ao comando"
|
||||
|
||||
#: ../remotinator.py:86
|
||||
msgid "Command to run in new terminal"
|
||||
msgstr ""
|
||||
msgstr "Comando para executar em novo terminal"
|
||||
|
||||
#: ../remotinator.py:89
|
||||
msgid "Tab name to set. Only used with \"set_tab_title\" command."
|
||||
|
@ -126,7 +126,7 @@ msgstr ""
|
|||
|
||||
#: ../remotinator.py:92
|
||||
msgid "Tab name to set."
|
||||
msgstr ""
|
||||
msgstr "Definir nome da Aba"
|
||||
|
||||
#: ../data/terminator.desktop.in.h:1 ../data/terminator.appdata.xml.in.h:1
|
||||
#: ../terminatorlib/plugins/activitywatch.py:83
|
||||
|
@ -148,8 +148,8 @@ msgstr "O robo do futuro dos terminais"
|
|||
msgid ""
|
||||
"A power-user tool for arranging terminals. It is inspired by programs such "
|
||||
"as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging "
|
||||
"terminals in grids (tabs is the most common default method, which Terminator "
|
||||
"also supports)."
|
||||
"terminals in grids (tabs is the most common default method, which Terminator"
|
||||
" also supports)."
|
||||
msgstr ""
|
||||
"Uma ferramenta destinada aos superusuários, útil para organização de "
|
||||
"terminais. Esta foi inspirada por programas como gnome-multi-term, "
|
||||
|
@ -164,8 +164,8 @@ msgid ""
|
|||
"users."
|
||||
msgstr ""
|
||||
"Muito do comportamento do Terminator é baseado no Terminal do Gnome, e "
|
||||
"estamos adicionando mais recursos com o passar do tempo, mas também queremos "
|
||||
"estender isso em diferentes recursos para administradores e sistemas e "
|
||||
"estamos adicionando mais recursos com o passar do tempo, mas também queremos"
|
||||
" estender isso em diferentes recursos para administradores e sistemas e "
|
||||
"outros usuários."
|
||||
|
||||
#: ../data/terminator.appdata.xml.in.h:6
|
||||
|
@ -366,11 +366,11 @@ msgstr ""
|
|||
|
||||
#: ../terminatorlib/optionparse.py:100
|
||||
msgid "List all profiles"
|
||||
msgstr ""
|
||||
msgstr "Listar todos os perfis"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:102
|
||||
msgid "List all layouts"
|
||||
msgstr ""
|
||||
msgstr "Listar todos os layouts"
|
||||
|
||||
#: ../terminatorlib/plugins/activitywatch.py:54
|
||||
msgid "Watch for _activity"
|
||||
|
@ -768,7 +768,7 @@ msgstr ""
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:64
|
||||
msgid "Disable mouse paste"
|
||||
msgstr ""
|
||||
msgstr "Desativar a cola do mouse"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:65
|
||||
msgid "Custom URL handler:"
|
||||
|
@ -796,11 +796,11 @@ msgstr "Estilização extra(Depende do tema)"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:71
|
||||
msgid "Cell Height:"
|
||||
msgstr ""
|
||||
msgstr "Altura da célula:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:72
|
||||
msgid "Cell Width:"
|
||||
msgstr ""
|
||||
msgstr "Largura da célula:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:73
|
||||
msgid "Tab position:"
|
||||
|
@ -872,11 +872,11 @@ msgstr "Piscar"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:90
|
||||
msgid "Use default colors"
|
||||
msgstr ""
|
||||
msgstr "Usar cores padrão"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:91
|
||||
msgid "Foreground:"
|
||||
msgstr ""
|
||||
msgstr "Primeiro plano:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:92
|
||||
msgid "Background:"
|
||||
|
@ -936,11 +936,11 @@ msgstr "Es_quemas embutidos:"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:107
|
||||
msgid "_Foreground:"
|
||||
msgstr ""
|
||||
msgstr "_Foreground:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:108
|
||||
msgid "_Background:"
|
||||
msgstr ""
|
||||
msgstr "_Background:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:109
|
||||
msgid "<b>Palette</b>"
|
||||
|
@ -1030,8 +1030,8 @@ msgstr "Rolagem"
|
|||
msgid ""
|
||||
"<small><i><b>Note:</b> These options may cause some applications to behave "
|
||||
"incorrectly. They are only here to allow you to work around certain "
|
||||
"applications and operating systems that expect different terminal behavior.</"
|
||||
"i></small>"
|
||||
"applications and operating systems that expect different terminal "
|
||||
"behavior.</i></small>"
|
||||
msgstr ""
|
||||
"<small><i><b>Nota:</b> Estas opções podem levar alguns aplicativos a se "
|
||||
"comportarem incorretamente. Elas existem apenas para permitir que você "
|
||||
|
@ -1080,7 +1080,7 @@ msgstr "Escolher Uma Fonte para Barra de Títulos"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:141
|
||||
msgid "Titlebar"
|
||||
msgstr ""
|
||||
msgstr "Barra de título"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:142
|
||||
#: ../terminatorlib/terminal_popup_menu.py:204
|
||||
|
@ -1137,27 +1137,12 @@ msgstr "Versão: 2.11"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:159
|
||||
msgid ""
|
||||
"The goal of this project is to produce a useful tool for arranging "
|
||||
"terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, "
|
||||
"etc. in that the main focus is arranging terminals in grids (tabs is the "
|
||||
"most common default method, which Terminator also supports).\n"
|
||||
"The goal of this project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging terminals in grids (tabs is the most common default method, which Terminator also supports).\n"
|
||||
"\n"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are "
|
||||
"adding more features from that as time goes by, but we also want to extend "
|
||||
"out in different directions with useful features for sysadmins and other "
|
||||
"users. If you have any suggestions, please file wishlist bugs! (see left for "
|
||||
"the Development link)"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are adding more features from that as time goes by, but we also want to extend out in different directions with useful features for sysadmins and other users. If you have any suggestions, please file wishlist bugs! (see left for the Development link)"
|
||||
msgstr ""
|
||||
"O objetivo deste projeto é fornecer uma ferramenta útil para organização de "
|
||||
"terminais. Esta foi inspirada por programas como gnome-multi-term, "
|
||||
"quadkonsole, etc. em que o objetivo principal é organizar terminais em "
|
||||
"grades (abas é o método mais comum, o qual o Terminator também suporta).\n"
|
||||
"O comportamento do Terminator é baseado no Terminal do Gnome, e estamos "
|
||||
"adicionando mais recursos com o passar do tempo, mas também queremos "
|
||||
"estender isso em diferentes recursos para administradores e sistemas e "
|
||||
"outros usuários. Se você tem alguma sugestão, por favor, relate os bugs e "
|
||||
"possíveis melhorias na lista de desejo! (Veja a esquerda para o link para "
|
||||
"desenvolvimento)"
|
||||
"O objetivo deste projeto é fornecer uma ferramenta útil para organização de terminais. Esta foi inspirada por programas como gnome-multi-term, quadkonsole, etc. em que o objetivo principal é organizar terminais em grades (abas é o método mais comum, o qual o Terminator também suporta).\n"
|
||||
"O comportamento do Terminator é baseado no Terminal do Gnome, e estamos adicionando mais recursos com o passar do tempo, mas também queremos estender isso em diferentes recursos para administradores e sistemas e outros usuários. Se você tem alguma sugestão, por favor, relate os bugs e possíveis melhorias na lista de desejo! (Veja a esquerda para o link para desenvolvimento)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:162
|
||||
msgid "The Manual"
|
||||
|
@ -1166,13 +1151,10 @@ msgstr "O Manual"
|
|||
#: ../terminatorlib/preferences.glade.h:163
|
||||
msgid ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Development</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Enhancements</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Enhancements</a>"
|
||||
msgstr ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Desenvolvimento</"
|
||||
"a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Melhorias</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Desenvolvimento</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Melhorias</a>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:165
|
||||
msgid "About"
|
||||
|
@ -1260,7 +1242,7 @@ msgstr "Colar área de transferência"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:126
|
||||
msgid "Paste primary selection"
|
||||
msgstr ""
|
||||
msgstr "Colar seleção primária"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:127
|
||||
msgid "Show/Hide the scrollbar"
|
||||
|
@ -1412,15 +1394,15 @@ msgstr "Desagrupar todos os terminais"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:164
|
||||
msgid "Group terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Agrupar terminais na janela"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:165
|
||||
msgid "Group/Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Agrupar/Desagrupar terminais na janela"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:166
|
||||
msgid "Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "Desagrupar terminais na janela"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:167
|
||||
msgid "Group terminals in tab"
|
||||
|
@ -1494,11 +1476,11 @@ msgstr "Abrir janela de Preferências"
|
|||
msgid "Open the manual"
|
||||
msgstr "Abrir o manual"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1370
|
||||
#: ../terminatorlib/prefseditor.py:1366
|
||||
msgid "New Profile"
|
||||
msgstr "Novo perfil"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1413 ../terminatorlib/prefseditor.py:1418
|
||||
#: ../terminatorlib/prefseditor.py:1409 ../terminatorlib/prefseditor.py:1414
|
||||
msgid "New Layout"
|
||||
msgstr "Nova disposição"
|
||||
|
||||
|
@ -1545,7 +1527,7 @@ msgstr "_Colar"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:112
|
||||
msgid "Set W_indow Title"
|
||||
msgstr ""
|
||||
msgstr "Definir o título da W_indow"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:117
|
||||
msgid "Split H_orizontally"
|
||||
|
@ -1610,11 +1592,11 @@ msgstr "Remover grupo %s"
|
|||
|
||||
#: ../terminatorlib/terminal.py:512
|
||||
msgid "G_roup all in window"
|
||||
msgstr ""
|
||||
msgstr "Ag_rupar todas as janelas"
|
||||
|
||||
#: ../terminatorlib/terminal.py:517
|
||||
msgid "Ungro_up all in window"
|
||||
msgstr ""
|
||||
msgstr "Desagr_upar todas as janelas"
|
||||
|
||||
#: ../terminatorlib/terminal.py:522
|
||||
msgid "G_roup all in tab"
|
||||
|
@ -1661,19 +1643,19 @@ msgstr "_Inserir número do terminal"
|
|||
msgid "Insert _padded terminal number"
|
||||
msgstr "Inserir _monte de números de terminal"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1490
|
||||
#: ../terminatorlib/terminal.py:1492
|
||||
msgid "Unable to find a shell"
|
||||
msgstr "Incapaz de encontrar um shell"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1521
|
||||
#: ../terminatorlib/terminal.py:1546
|
||||
msgid "Unable to start shell:"
|
||||
msgstr "Incapaz de iniciar o shell:"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1975
|
||||
#: ../terminatorlib/terminal.py:2000
|
||||
msgid "Rename Window"
|
||||
msgstr "Renomear janela"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1983
|
||||
#: ../terminatorlib/terminal.py:2008
|
||||
msgid "Enter a new title for the Terminator window..."
|
||||
msgstr "Insira um novo título para a janela do terminal"
|
||||
|
||||
|
@ -1784,120 +1766,9 @@ msgstr "janela"
|
|||
#: ../terminatorlib/window.py:773
|
||||
#, python-format
|
||||
msgid "Window group %s"
|
||||
msgstr ""
|
||||
msgstr "Grupo de janelas %s"
|
||||
|
||||
#: ../terminatorlib/window.py:799
|
||||
#, python-format
|
||||
msgid "Tab %d"
|
||||
msgstr "Aba %d"
|
||||
|
||||
#~ msgid "Current Locale"
|
||||
#~ msgstr "Localização atual"
|
||||
|
||||
#~ msgid "Western"
|
||||
#~ msgstr "Ocidental"
|
||||
|
||||
#~ msgid "Central European"
|
||||
#~ msgstr "Europa Central"
|
||||
|
||||
#~ msgid "South European"
|
||||
#~ msgstr "Sul da Europa"
|
||||
|
||||
#~ msgid "Baltic"
|
||||
#~ msgstr "Báltico"
|
||||
|
||||
#~ msgid "Cyrillic"
|
||||
#~ msgstr "Cirílico"
|
||||
|
||||
#~ msgid "Arabic"
|
||||
#~ msgstr "Arábico"
|
||||
|
||||
#~ msgid "Greek"
|
||||
#~ msgstr "Grego"
|
||||
|
||||
#~ msgid "Hebrew Visual"
|
||||
#~ msgstr "Visual Hebraico"
|
||||
|
||||
#~ msgid "Hebrew"
|
||||
#~ msgstr "Hebraico"
|
||||
|
||||
#~ msgid "Turkish"
|
||||
#~ msgstr "Turco"
|
||||
|
||||
#~ msgid "Nordic"
|
||||
#~ msgstr "Nórdico"
|
||||
|
||||
#~ msgid "Celtic"
|
||||
#~ msgstr "Celta"
|
||||
|
||||
#~ msgid "Romanian"
|
||||
#~ msgstr "Romeno"
|
||||
|
||||
#~ msgid "Unicode"
|
||||
#~ msgstr "Unicode"
|
||||
|
||||
#~ msgid "Armenian"
|
||||
#~ msgstr "Armênio"
|
||||
|
||||
#~ msgid "Chinese Traditional"
|
||||
#~ msgstr "Chinês tradicional"
|
||||
|
||||
#~ msgid "Cyrillic/Russian"
|
||||
#~ msgstr "Cirílico/Russo"
|
||||
|
||||
#~ msgid "Japanese"
|
||||
#~ msgstr "Japonês"
|
||||
|
||||
#~ msgid "Korean"
|
||||
#~ msgstr "Coreano"
|
||||
|
||||
#~ msgid "Chinese Simplified"
|
||||
#~ msgstr "Chinês simplificado"
|
||||
|
||||
#~ msgid "Georgian"
|
||||
#~ msgstr "Geórgio"
|
||||
|
||||
#~ msgid "Cyrillic/Ukrainian"
|
||||
#~ msgstr "Cirílico/Ucraniano"
|
||||
|
||||
#~ msgid "Croatian"
|
||||
#~ msgstr "Croata"
|
||||
|
||||
#~ msgid "Hindi"
|
||||
#~ msgstr "Hindu"
|
||||
|
||||
#~ msgid "Persian"
|
||||
#~ msgstr "Persa"
|
||||
|
||||
#~ msgid "Gujarati"
|
||||
#~ msgstr "Guzarate"
|
||||
|
||||
#~ msgid "Gurmukhi"
|
||||
#~ msgstr "Gurmukhi"
|
||||
|
||||
#~ msgid "Icelandic"
|
||||
#~ msgstr "Islandês"
|
||||
|
||||
#~ msgid "Vietnamese"
|
||||
#~ msgstr "Vietnamita"
|
||||
|
||||
#~ msgid "Thai"
|
||||
#~ msgstr "Tailandês"
|
||||
|
||||
#~ msgid "Line Height:"
|
||||
#~ msgstr "Altura da linha"
|
||||
|
||||
#~ msgid "Encoding:"
|
||||
#~ msgstr "Codificação"
|
||||
|
||||
#~ msgid "Encodings"
|
||||
#~ msgstr "Codificações"
|
||||
|
||||
#~ msgid "Default"
|
||||
#~ msgstr "Padrão"
|
||||
|
||||
#~ msgid "User defined"
|
||||
#~ msgstr "Definido pelo usuário"
|
||||
|
||||
#~ msgid "Other Encodings"
|
||||
#~ msgstr "Outras codificações"
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-22 00:55+0100\n"
|
||||
"POT-Creation-Date: 2022-10-19 09:29-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -1445,11 +1445,11 @@ msgstr ""
|
|||
msgid "Open the manual"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1370
|
||||
#: ../terminatorlib/prefseditor.py:1366
|
||||
msgid "New Profile"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1413 ../terminatorlib/prefseditor.py:1418
|
||||
#: ../terminatorlib/prefseditor.py:1409 ../terminatorlib/prefseditor.py:1414
|
||||
msgid "New Layout"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1612,19 +1612,19 @@ msgstr ""
|
|||
msgid "Insert _padded terminal number"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/terminal.py:1490
|
||||
#: ../terminatorlib/terminal.py:1492
|
||||
msgid "Unable to find a shell"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/terminal.py:1521
|
||||
#: ../terminatorlib/terminal.py:1546
|
||||
msgid "Unable to start shell:"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/terminal.py:1975
|
||||
#: ../terminatorlib/terminal.py:2000
|
||||
msgid "Rename Window"
|
||||
msgstr ""
|
||||
|
||||
#: ../terminatorlib/terminal.py:1983
|
||||
#: ../terminatorlib/terminal.py:2008
|
||||
msgid "Enter a new title for the Terminator window..."
|
||||
msgstr ""
|
||||
|
||||
|
|
281
po/zh_CN.po
281
po/zh_CN.po
|
@ -2,24 +2,24 @@
|
|||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Gnome Terminator <terminator@lazyfrosch.de>, 2020
|
||||
#
|
||||
# Mony Xie <monyxie@gmail.com>, 2023
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2022-01-22 00:51+0100\n"
|
||||
"POT-Creation-Date: 2022-10-19 09:29-0400\n"
|
||||
"PO-Revision-Date: 2020-04-22 08:11+0000\n"
|
||||
"Last-Translator: Gnome Terminator <terminator@lazyfrosch.de>, 2020\n"
|
||||
"Language-Team: Chinese (China) (https://www.transifex.com/terminator/"
|
||||
"teams/109338/zh_CN/)\n"
|
||||
"Language: zh_CN\n"
|
||||
"Last-Translator: Mony Xie <monyxie@gmail.com>, 2023\n"
|
||||
"Language-Team: Chinese (China) (https://app.transifex.com/terminator/teams/109338/zh_CN/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: zh_CN\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#. Command uuid req. Description
|
||||
|
@ -45,7 +45,7 @@ msgstr "获取所有终端的列表"
|
|||
|
||||
#: ../remotinator.py:44
|
||||
msgid "Get the uuid of the current focused terminal"
|
||||
msgstr ""
|
||||
msgstr "获取当前聚焦终端的 UUID"
|
||||
|
||||
#: ../remotinator.py:45
|
||||
msgid "Get the UUID of a parent window"
|
||||
|
@ -57,7 +57,7 @@ msgstr "获取父窗口的标题"
|
|||
|
||||
#: ../remotinator.py:47
|
||||
msgid "Get the UUID of a parent tab"
|
||||
msgstr "获取一个父标签页的UUID"
|
||||
msgstr "获取父标签页的UUID"
|
||||
|
||||
#: ../remotinator.py:48
|
||||
msgid "Get the title of a parent tab"
|
||||
|
@ -65,23 +65,23 @@ msgstr "获取父标签页的标题"
|
|||
|
||||
#: ../remotinator.py:49
|
||||
msgid "Set the title of a parent tab"
|
||||
msgstr ""
|
||||
msgstr "设置父标签页的标题"
|
||||
|
||||
#: ../remotinator.py:50
|
||||
msgid "Set the background image"
|
||||
msgstr ""
|
||||
msgstr "设置背景图片"
|
||||
|
||||
#: ../remotinator.py:51
|
||||
msgid "Set the background image for all terminals"
|
||||
msgstr ""
|
||||
msgstr "设置所有终端的背景图片"
|
||||
|
||||
#: ../remotinator.py:52
|
||||
msgid "Switch current terminal profile"
|
||||
msgstr ""
|
||||
msgstr "切换当前终端配置"
|
||||
|
||||
#: ../remotinator.py:53
|
||||
msgid "Switch profile of all currently running terminals"
|
||||
msgstr ""
|
||||
msgstr "切换当前所有运行中终端的配置"
|
||||
|
||||
#: ../remotinator.py:70
|
||||
#, python-format
|
||||
|
@ -108,23 +108,23 @@ msgstr "终端UUID如果未设置TERMINATOR_UUID环境变量"
|
|||
|
||||
#: ../remotinator.py:80
|
||||
msgid "Profile name to switch to"
|
||||
msgstr ""
|
||||
msgstr "要切换到的配置名"
|
||||
|
||||
#: ../remotinator.py:83
|
||||
msgid "File to pass to command"
|
||||
msgstr ""
|
||||
msgstr "要传递给命令的文件"
|
||||
|
||||
#: ../remotinator.py:86
|
||||
msgid "Command to run in new terminal"
|
||||
msgstr ""
|
||||
msgstr "要在新终端中运行的命令"
|
||||
|
||||
#: ../remotinator.py:89
|
||||
msgid "Tab name to set. Only used with \"set_tab_title\" command."
|
||||
msgstr ""
|
||||
msgstr "要设置的标签页名。仅与“set_tab_title”命令一起使用。"
|
||||
|
||||
#: ../remotinator.py:92
|
||||
msgid "Tab name to set."
|
||||
msgstr ""
|
||||
msgstr "要设置的标签页名。"
|
||||
|
||||
#: ../data/terminator.desktop.in.h:1 ../data/terminator.appdata.xml.in.h:1
|
||||
#: ../terminatorlib/plugins/activitywatch.py:83
|
||||
|
@ -146,9 +146,11 @@ msgstr "高级终端的未来"
|
|||
msgid ""
|
||||
"A power-user tool for arranging terminals. It is inspired by programs such "
|
||||
"as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging "
|
||||
"terminals in grids (tabs is the most common default method, which Terminator "
|
||||
"also supports)."
|
||||
"terminals in grids (tabs is the most common default method, which Terminator"
|
||||
" also supports)."
|
||||
msgstr ""
|
||||
"一个用来管理终端的高级用户工具。灵感来自于 gnome-multi-term,quadkonsole "
|
||||
"等程序。它的主要功能是用网格来管理终端窗口(但同时也支持标签页)。"
|
||||
|
||||
#: ../data/terminator.appdata.xml.in.h:5
|
||||
msgid ""
|
||||
|
@ -157,6 +159,8 @@ msgid ""
|
|||
"out in different directions with useful features for sysadmins and other "
|
||||
"users."
|
||||
msgstr ""
|
||||
"Terminator 的大部分行为都基于 GNOME "
|
||||
"Terminal,在此基础上我们还会将更多功能集成进来。但我们同时也希望向更多不同的方面扩展,从而给系统管理员和其他用户带来更多有用的特性。"
|
||||
|
||||
#: ../data/terminator.appdata.xml.in.h:6
|
||||
msgid "Some highlights:"
|
||||
|
@ -295,7 +299,7 @@ msgstr "指定一个配置文件"
|
|||
|
||||
#: ../terminatorlib/optionparse.py:71
|
||||
msgid "Specify a partial config json file"
|
||||
msgstr ""
|
||||
msgstr "指定一个部分配置 json 文件"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:76
|
||||
msgid "Set the working directory"
|
||||
|
@ -343,15 +347,15 @@ msgstr "如果 Terminator 已经运行,打开一个新的标签页"
|
|||
|
||||
#: ../terminatorlib/optionparse.py:98
|
||||
msgid "If Terminator is already running, just unhide all hidden windows"
|
||||
msgstr ""
|
||||
msgstr "如果 Terminator 已经在运行,则仅显示所有隐藏窗口"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:100
|
||||
msgid "List all profiles"
|
||||
msgstr ""
|
||||
msgstr "列出所有配置"
|
||||
|
||||
#: ../terminatorlib/optionparse.py:102
|
||||
msgid "List all layouts"
|
||||
msgstr ""
|
||||
msgstr "列出所有布局"
|
||||
|
||||
#: ../terminatorlib/plugins/activitywatch.py:54
|
||||
msgid "Watch for _activity"
|
||||
|
@ -469,7 +473,7 @@ msgstr "*%s*已经存在"
|
|||
|
||||
#: ../terminatorlib/plugins/dir_open.py:26
|
||||
msgid "Open current directory"
|
||||
msgstr ""
|
||||
msgstr "打开当前目录"
|
||||
|
||||
#: ../terminatorlib/plugins/logger.py:21
|
||||
#: ../terminatorlib/plugins/terminalshot.py:21
|
||||
|
@ -715,7 +719,7 @@ msgstr "默认广播:"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:56
|
||||
msgid "PuTTY style paste:"
|
||||
msgstr ""
|
||||
msgstr "粘贴 PuTTY 样式:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:57
|
||||
msgid "Smart copy"
|
||||
|
@ -731,23 +735,23 @@ msgstr "使用自定义的URL处理程序"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:60
|
||||
msgid "PRIMARY"
|
||||
msgstr ""
|
||||
msgstr "PRIMARY"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:61
|
||||
msgid "Clipboard"
|
||||
msgstr ""
|
||||
msgstr "Clipboard"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:62
|
||||
msgid "Clear selection on copy"
|
||||
msgstr ""
|
||||
msgstr "复制后清除选择"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:63
|
||||
msgid "Open links with a single click (instead of Ctrl-left click)"
|
||||
msgstr ""
|
||||
msgstr "点击打开链接(默认为 Ctrl + 点击)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:64
|
||||
msgid "Disable mouse paste"
|
||||
msgstr ""
|
||||
msgstr "禁用鼠标粘贴"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:65
|
||||
msgid "Custom URL handler:"
|
||||
|
@ -775,11 +779,11 @@ msgstr "扩展样式 (主题依赖)"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:71
|
||||
msgid "Cell Height:"
|
||||
msgstr ""
|
||||
msgstr "格子高度:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:72
|
||||
msgid "Cell Width:"
|
||||
msgstr ""
|
||||
msgstr "格子宽度:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:73
|
||||
msgid "Tab position:"
|
||||
|
@ -795,7 +799,7 @@ msgstr "标签滚动按钮"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:76
|
||||
msgid "Title bar at bottom (Require restart)"
|
||||
msgstr ""
|
||||
msgstr "标题栏置于下方(需重启)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:77
|
||||
msgid "Global"
|
||||
|
@ -831,7 +835,7 @@ msgstr "选中则复制"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:85
|
||||
msgid "Disable Ctrl+mousewheel zoom"
|
||||
msgstr ""
|
||||
msgstr "禁用 Ctrl + 滚轮缩放"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:86
|
||||
msgid "Select-by-_word characters:"
|
||||
|
@ -851,11 +855,11 @@ msgstr "闪烁"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:90
|
||||
msgid "Use default colors"
|
||||
msgstr ""
|
||||
msgstr "使用默认配色"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:91
|
||||
msgid "Foreground:"
|
||||
msgstr ""
|
||||
msgstr "前景色:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:92
|
||||
msgid "Background:"
|
||||
|
@ -915,11 +919,11 @@ msgstr "内置方案(_M):"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:107
|
||||
msgid "_Foreground:"
|
||||
msgstr ""
|
||||
msgstr "前景色(_F):"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:108
|
||||
msgid "_Background:"
|
||||
msgstr ""
|
||||
msgstr "背景色(_B):"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:109
|
||||
msgid "<b>Palette</b>"
|
||||
|
@ -935,7 +939,7 @@ msgstr "调色板(_A):"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:112
|
||||
msgid "Show b_old text in bright colors"
|
||||
msgstr ""
|
||||
msgstr "用明亮色显示粗体文字(_O)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:113
|
||||
msgid "Colors"
|
||||
|
@ -951,19 +955,19 @@ msgstr "透明背景(_T)"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:116
|
||||
msgid "Background Image"
|
||||
msgstr ""
|
||||
msgstr "背景图片"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:117
|
||||
msgid "Background Image File:"
|
||||
msgstr ""
|
||||
msgstr "背景图片文件:"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:118
|
||||
msgid "Choose file"
|
||||
msgstr ""
|
||||
msgstr "选择文件"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:119
|
||||
msgid "S_hade background:"
|
||||
msgstr ""
|
||||
msgstr "背景着色(_H):"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:120
|
||||
msgid "<small><i>None</i></small>"
|
||||
|
@ -1009,11 +1013,10 @@ msgstr "滚动"
|
|||
msgid ""
|
||||
"<small><i><b>Note:</b> These options may cause some applications to behave "
|
||||
"incorrectly. They are only here to allow you to work around certain "
|
||||
"applications and operating systems that expect different terminal behavior.</"
|
||||
"i></small>"
|
||||
"applications and operating systems that expect different terminal "
|
||||
"behavior.</i></small>"
|
||||
msgstr ""
|
||||
"<small><i><b>注意:</b>这些选项可能造成一些应用程序产生不正确的行为。仅用于允"
|
||||
"许您在一些应用程序和操作系统中作调整以获得不同的终端行为。</i></small>"
|
||||
"<small><i><b>注意:</b>这些选项可能造成一些应用程序产生不正确的行为。仅用于允许您在一些应用程序和操作系统中作调整以获得不同的终端行为。</i></small>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:131
|
||||
msgid "_Backspace key generates:"
|
||||
|
@ -1057,7 +1060,7 @@ msgstr "选择标题栏字体"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:141
|
||||
msgid "Titlebar"
|
||||
msgstr ""
|
||||
msgstr "标题栏"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:142
|
||||
#: ../terminatorlib/terminal_popup_menu.py:204
|
||||
|
@ -1110,27 +1113,16 @@ msgstr "插件"
|
|||
|
||||
#: ../terminatorlib/preferences.glade.h:158
|
||||
msgid "Version: 2.1.1"
|
||||
msgstr ""
|
||||
msgstr "版本:2.1.1"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:159
|
||||
msgid ""
|
||||
"The goal of this project is to produce a useful tool for arranging "
|
||||
"terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, "
|
||||
"etc. in that the main focus is arranging terminals in grids (tabs is the "
|
||||
"most common default method, which Terminator also supports).\n"
|
||||
"The goal of this project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, quadkonsole, etc. in that the main focus is arranging terminals in grids (tabs is the most common default method, which Terminator also supports).\n"
|
||||
"\n"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are "
|
||||
"adding more features from that as time goes by, but we also want to extend "
|
||||
"out in different directions with useful features for sysadmins and other "
|
||||
"users. If you have any suggestions, please file wishlist bugs! (see left for "
|
||||
"the Development link)"
|
||||
"Much of the behavior of Terminator is based on GNOME Terminal, and we are adding more features from that as time goes by, but we also want to extend out in different directions with useful features for sysadmins and other users. If you have any suggestions, please file wishlist bugs! (see left for the Development link)"
|
||||
msgstr ""
|
||||
"一个用来管理终端的高级用户工具。它的灵感来自于gnome-multi-term,quadkonsole等"
|
||||
"程序。它致力于用格子来管理终端(最普遍的方法是用标签页,Terminator也支"
|
||||
"持)。\n"
|
||||
"Terminator的大部分行为基于GNOME Terminal,我们还在从中集成更多特性。但我们同"
|
||||
"时也希望向扩展更多不同方面的实用特性从而服务于系统管理员和其他用户。如果你有"
|
||||
"任何建议,请向wishlist中提交!(看左边的开发者链接)"
|
||||
"一个用来管理终端的高级用户工具。它的灵感来自于gnome-multi-term,quadkonsole等程序。它致力于用格子来管理终端(最普遍的方法是用标签页,Terminator也支持)。\n"
|
||||
"Terminator的大部分行为基于GNOME Terminal,我们还在从中集成更多特性。但我们同时也希望向扩展更多不同方面的实用特性从而服务于系统管理员和其他用户。如果你有任何建议,请向wishlist中提交!(看左边的开发者链接)"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:162
|
||||
msgid "The Manual"
|
||||
|
@ -1139,9 +1131,10 @@ msgstr "手册"
|
|||
#: ../terminatorlib/preferences.glade.h:163
|
||||
msgid ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">Development</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / "
|
||||
"Enhancements</a>"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">Bugs / Enhancements</a>"
|
||||
msgstr ""
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator\">开发</a>\n"
|
||||
"<a href=\"https://github.com/gnome-terminator/terminator/issues\">提交 Bug 或改进意见</a>"
|
||||
|
||||
#: ../terminatorlib/preferences.glade.h:165
|
||||
msgid "About"
|
||||
|
@ -1161,15 +1154,15 @@ msgstr "恢复为原始字体大小"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:107
|
||||
msgid "Increase font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "增大所有终端的字体"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:108
|
||||
msgid "Decrease font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "减小所有终端的字体"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:109
|
||||
msgid "Restore original font size on all terminals"
|
||||
msgstr ""
|
||||
msgstr "恢复所有终端的字体大小"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:110
|
||||
msgid "Create a new tab"
|
||||
|
@ -1229,7 +1222,7 @@ msgstr "粘贴剪贴板"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:126
|
||||
msgid "Paste primary selection"
|
||||
msgstr ""
|
||||
msgstr "从 PRIMARY 选区粘贴"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:127
|
||||
msgid "Show/Hide the scrollbar"
|
||||
|
@ -1365,7 +1358,7 @@ msgstr "切换窗口可见性"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:160
|
||||
msgid "Create new group"
|
||||
msgstr ""
|
||||
msgstr "创建新组"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:161
|
||||
msgid "Group all terminals"
|
||||
|
@ -1381,15 +1374,15 @@ msgstr "解组所有终端"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:164
|
||||
msgid "Group terminals in window"
|
||||
msgstr ""
|
||||
msgstr "对窗口中的终端分组"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:165
|
||||
msgid "Group/Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "对窗口中的终端分组或取消分组"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:166
|
||||
msgid "Ungroup terminals in window"
|
||||
msgstr ""
|
||||
msgstr "对窗口中的终端取消分组"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:167
|
||||
msgid "Group terminals in tab"
|
||||
|
@ -1457,17 +1450,17 @@ msgstr "切换到上一个配置文件"
|
|||
|
||||
#: ../terminatorlib/prefseditor.py:183
|
||||
msgid "Open the Preferences window"
|
||||
msgstr ""
|
||||
msgstr "打开首选项窗口"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:184
|
||||
msgid "Open the manual"
|
||||
msgstr "打开手册"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1370
|
||||
#: ../terminatorlib/prefseditor.py:1366
|
||||
msgid "New Profile"
|
||||
msgstr "新配置"
|
||||
|
||||
#: ../terminatorlib/prefseditor.py:1413 ../terminatorlib/prefseditor.py:1418
|
||||
#: ../terminatorlib/prefseditor.py:1409 ../terminatorlib/prefseditor.py:1414
|
||||
msgid "New Layout"
|
||||
msgstr "新布局"
|
||||
|
||||
|
@ -1514,7 +1507,7 @@ msgstr "粘贴(_P)"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:112
|
||||
msgid "Set W_indow Title"
|
||||
msgstr ""
|
||||
msgstr "设置窗口标题(_I)"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:117
|
||||
msgid "Split H_orizontally"
|
||||
|
@ -1554,7 +1547,7 @@ msgstr "分组"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:186
|
||||
msgid "Relaunch Command"
|
||||
msgstr ""
|
||||
msgstr "重新启动命令"
|
||||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:191
|
||||
msgid "Show _scrollbar"
|
||||
|
@ -1562,7 +1555,7 @@ msgstr "显示滚动条"
|
|||
|
||||
#: ../terminatorlib/terminal_popup_menu.py:248
|
||||
msgid "_Layouts..."
|
||||
msgstr ""
|
||||
msgstr "布局...(_L)"
|
||||
|
||||
#: ../terminatorlib/terminal.py:481
|
||||
msgid "N_ew group..."
|
||||
|
@ -1579,11 +1572,11 @@ msgstr "移除组 %s"
|
|||
|
||||
#: ../terminatorlib/terminal.py:512
|
||||
msgid "G_roup all in window"
|
||||
msgstr ""
|
||||
msgstr "将窗口中所有终端纳入分组(_R)"
|
||||
|
||||
#: ../terminatorlib/terminal.py:517
|
||||
msgid "Ungro_up all in window"
|
||||
msgstr ""
|
||||
msgstr "将窗口中所有终端移出分组(_U)"
|
||||
|
||||
#: ../terminatorlib/terminal.py:522
|
||||
msgid "G_roup all in tab"
|
||||
|
@ -1630,25 +1623,25 @@ msgstr "插入终端编号(_I)"
|
|||
msgid "Insert _padded terminal number"
|
||||
msgstr "插入对齐的终端编号(_I)"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1490
|
||||
#: ../terminatorlib/terminal.py:1492
|
||||
msgid "Unable to find a shell"
|
||||
msgstr "无法找到shell"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1521
|
||||
#: ../terminatorlib/terminal.py:1546
|
||||
msgid "Unable to start shell:"
|
||||
msgstr "无法启动shell:"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1975
|
||||
#: ../terminatorlib/terminal.py:2000
|
||||
msgid "Rename Window"
|
||||
msgstr "重命名窗口"
|
||||
|
||||
#: ../terminatorlib/terminal.py:1983
|
||||
#: ../terminatorlib/terminal.py:2008
|
||||
msgid "Enter a new title for the Terminator window..."
|
||||
msgstr "输入新的Terminator窗口标题"
|
||||
|
||||
#: ../terminatorlib/titlebar.py:112
|
||||
msgid "[INACTIVE: Right-Click for Relaunch option] "
|
||||
msgstr ""
|
||||
msgstr "[不活动:右击查看重启选项]"
|
||||
|
||||
#: ../terminatorlib/titlebar.py:258
|
||||
msgid "Alpha"
|
||||
|
@ -1753,117 +1746,9 @@ msgstr "窗口"
|
|||
#: ../terminatorlib/window.py:773
|
||||
#, python-format
|
||||
msgid "Window group %s"
|
||||
msgstr ""
|
||||
msgstr "窗口组 %s"
|
||||
|
||||
#: ../terminatorlib/window.py:799
|
||||
#, python-format
|
||||
msgid "Tab %d"
|
||||
msgstr "标签 %d"
|
||||
|
||||
#~ msgid "Current Locale"
|
||||
#~ msgstr "当前 Locale"
|
||||
|
||||
#~ msgid "Western"
|
||||
#~ msgstr "西文"
|
||||
|
||||
#~ msgid "Central European"
|
||||
#~ msgstr "中欧语系"
|
||||
|
||||
#~ msgid "South European"
|
||||
#~ msgstr "南欧语系"
|
||||
|
||||
#~ msgid "Baltic"
|
||||
#~ msgstr "波罗的海语系"
|
||||
|
||||
#~ msgid "Cyrillic"
|
||||
#~ msgstr "西里尔文"
|
||||
|
||||
#~ msgid "Arabic"
|
||||
#~ msgstr "阿拉伯语"
|
||||
|
||||
#~ msgid "Greek"
|
||||
#~ msgstr "希腊语"
|
||||
|
||||
#~ msgid "Hebrew Visual"
|
||||
#~ msgstr "希伯来语 (视觉顺序)"
|
||||
|
||||
#~ msgid "Hebrew"
|
||||
#~ msgstr "希伯来语"
|
||||
|
||||
#~ msgid "Turkish"
|
||||
#~ msgstr "土耳其语"
|
||||
|
||||
#~ msgid "Nordic"
|
||||
#~ msgstr "日耳曼语"
|
||||
|
||||
#~ msgid "Celtic"
|
||||
#~ msgstr "凯尔特语"
|
||||
|
||||
#~ msgid "Romanian"
|
||||
#~ msgstr "罗马尼亚语"
|
||||
|
||||
#~ msgid "Unicode"
|
||||
#~ msgstr "Unicode"
|
||||
|
||||
#~ msgid "Armenian"
|
||||
#~ msgstr "亚美尼亚语"
|
||||
|
||||
#~ msgid "Chinese Traditional"
|
||||
#~ msgstr "繁体中文"
|
||||
|
||||
#~ msgid "Cyrillic/Russian"
|
||||
#~ msgstr "西里尔语/俄语"
|
||||
|
||||
#~ msgid "Japanese"
|
||||
#~ msgstr "日语"
|
||||
|
||||
#~ msgid "Korean"
|
||||
#~ msgstr "朝鲜语"
|
||||
|
||||
#~ msgid "Chinese Simplified"
|
||||
#~ msgstr "简体中文"
|
||||
|
||||
#~ msgid "Georgian"
|
||||
#~ msgstr "格鲁吉亚语"
|
||||
|
||||
#~ msgid "Cyrillic/Ukrainian"
|
||||
#~ msgstr "西里尔语/乌克兰语"
|
||||
|
||||
#~ msgid "Croatian"
|
||||
#~ msgstr "克罗地亚语"
|
||||
|
||||
#~ msgid "Hindi"
|
||||
#~ msgstr "印地语"
|
||||
|
||||
#~ msgid "Persian"
|
||||
#~ msgstr "波斯语"
|
||||
|
||||
#~ msgid "Gujarati"
|
||||
#~ msgstr "古吉拉特语"
|
||||
|
||||
#~ msgid "Gurmukhi"
|
||||
#~ msgstr "果鲁穆奇语"
|
||||
|
||||
#~ msgid "Icelandic"
|
||||
#~ msgstr "冰岛语"
|
||||
|
||||
#~ msgid "Vietnamese"
|
||||
#~ msgstr "越南语"
|
||||
|
||||
#~ msgid "Thai"
|
||||
#~ msgstr "泰语"
|
||||
|
||||
#~ msgid "Encoding:"
|
||||
#~ msgstr "编码:"
|
||||
|
||||
#~ msgid "Encodings"
|
||||
#~ msgstr "编码"
|
||||
|
||||
#~ msgid "Default"
|
||||
#~ msgstr "默认"
|
||||
|
||||
#~ msgid "User defined"
|
||||
#~ msgstr "用户定义"
|
||||
|
||||
#~ msgid "Other Encodings"
|
||||
#~ msgstr "其他编码"
|
||||
|
|
40
terminator
40
terminator
|
@ -33,7 +33,7 @@ try:
|
|||
import gi
|
||||
gi.require_version('Gtk','3.0')
|
||||
# pylint: disable-msg=W0611
|
||||
from gi.repository import Gtk, Gdk
|
||||
from gi.repository import Gtk, Gdk, GLib
|
||||
|
||||
if Gdk.Display.get_default() == None:
|
||||
print('You need to run terminator in an X environment. ' \
|
||||
|
@ -53,33 +53,14 @@ from terminatorlib.util import dbg, err
|
|||
from terminatorlib.layoutlauncher import LayoutLauncher
|
||||
from terminatorlib.configjson import ConfigJson
|
||||
|
||||
|
||||
# Deleting env variable fixes double char problem when broadcasting (#78)
|
||||
# Only delete if it exists, or exception occurs
|
||||
if os.environ.get('GTK_IM_MODULE') is not None:
|
||||
del os.environ['GTK_IM_MODULE']
|
||||
|
||||
if __name__ == '__main__':
|
||||
# Workaround for IBus intefering with broadcast when using dead keys
|
||||
# Environment also needs IBUS_DISABLE_SNOOPER=1, or double chars appear
|
||||
# in the receivers.
|
||||
username = pwd.getpwuid(os.getuid()).pw_name
|
||||
ibus_running = False
|
||||
for proc in psutil.process_iter():
|
||||
try:
|
||||
if proc.name() == 'ibus-daemon' and proc.username() == username:
|
||||
ibus_running = True
|
||||
break
|
||||
except (psutil.AccessDenied) as err:
|
||||
print("error getting details while looking for Ibus process: %s" % err)
|
||||
|
||||
if ibus_running:
|
||||
os.environ['IBUS_DISABLE_SNOOPER']='1'
|
||||
|
||||
dbus_service = None
|
||||
|
||||
dbg ("%s starting up, version %s" % (APP_NAME, APP_VERSION))
|
||||
|
||||
GLib.set_prgname(APP_NAME)
|
||||
|
||||
OPTIONS,dbus_options = terminatorlib.optionparse.parse_options()
|
||||
if OPTIONS.configjson:
|
||||
configjson = ConfigJson()
|
||||
|
@ -109,6 +90,12 @@ if __name__ == '__main__':
|
|||
import dbus
|
||||
try:
|
||||
dbus_service = ipc.DBusService()
|
||||
|
||||
if(OPTIONS.reload):
|
||||
# Reload only is executed when exist at least one window,
|
||||
# if not there is nothing to reload
|
||||
sys.exit()
|
||||
|
||||
except ipc.DBusException:
|
||||
dbg('Unable to become master process, operating via DBus')
|
||||
# get rid of the None and True types so dbus can handle them (empty
|
||||
|
@ -121,6 +108,14 @@ if __name__ == '__main__':
|
|||
if OPTIONS.new_tab:
|
||||
dbg('Requesting a new tab')
|
||||
ipc.new_tab_cmdline(optionslist)
|
||||
elif OPTIONS.toggle_visibility:
|
||||
dbg('requesting to toggle windows visibility')
|
||||
ipc.toggle_visibility_cmdline(optionslist)
|
||||
|
||||
if OPTIONS.reload:
|
||||
dbg('requesting to reload configuration for all windows')
|
||||
ipc.reload_configuration()
|
||||
|
||||
elif OPTIONS.unhide:
|
||||
print('requesting to unhide windows')
|
||||
ipc.unhide_cmdline(optionslist)
|
||||
|
@ -135,7 +130,6 @@ if __name__ == '__main__':
|
|||
MAKER = Factory()
|
||||
TERMINATOR.set_dbus_data(dbus_service)
|
||||
TERMINATOR.reconfigure()
|
||||
TERMINATOR.ibus_running = ibus_running
|
||||
|
||||
try:
|
||||
dbg('Creating a terminal with layout: %s' % OPTIONS.layout)
|
||||
|
|
|
@ -84,7 +84,7 @@ DEFAULTS = {
|
|||
'global_config': {
|
||||
'dbus' : True,
|
||||
'focus' : 'click',
|
||||
'handle_size' : 1,
|
||||
'handle_size' : -1,
|
||||
'geometry_hinting' : False,
|
||||
'window_state' : 'normal',
|
||||
'borderless' : False,
|
||||
|
@ -92,7 +92,6 @@ DEFAULTS = {
|
|||
'tab_position' : 'top',
|
||||
'broadcast_default' : 'group',
|
||||
'close_button_on_tab' : True,
|
||||
'hide_tabbar' : False,
|
||||
'scroll_tabbar' : False,
|
||||
'homogeneous_tabbar' : True,
|
||||
'hide_from_taskbar' : False,
|
||||
|
@ -101,8 +100,8 @@ DEFAULTS = {
|
|||
'sticky' : False,
|
||||
'use_custom_url_handler': False,
|
||||
'custom_url_handler' : '',
|
||||
'disable_real_transparency' : False,
|
||||
'inactive_color_offset': 0.8,
|
||||
'inactive_bg_color_offset': 1.0,
|
||||
'enabled_plugins' : ['LaunchpadBugURLHandler',
|
||||
'LaunchpadCodeURLHandler',
|
||||
'APTURLHandler'],
|
||||
|
@ -118,7 +117,10 @@ DEFAULTS = {
|
|||
'case_sensitive' : True,
|
||||
'invert_search' : False,
|
||||
'link_single_click' : False,
|
||||
'title_at_bottom' : False
|
||||
'title_at_bottom' : False,
|
||||
'detachable_tabs' : True,
|
||||
|
||||
'new_tab_after_current_tab': False,
|
||||
},
|
||||
'keybindings': {
|
||||
'zoom_in' : '<Control>plus',
|
||||
|
@ -138,6 +140,7 @@ DEFAULTS = {
|
|||
'go_right' : '<Alt>Right',
|
||||
'rotate_cw' : '<Super>r',
|
||||
'rotate_ccw' : '<Super><Shift>r',
|
||||
'split_auto' : '<Shift><Control>a',
|
||||
'split_horiz' : '<Shift><Control>o',
|
||||
'split_vert' : '<Shift><Control>e',
|
||||
'close_term' : '<Shift><Control>w',
|
||||
|
@ -201,6 +204,7 @@ DEFAULTS = {
|
|||
'next_profile' : '',
|
||||
'previous_profile' : '',
|
||||
'preferences' : '',
|
||||
'preferences_keybindings' : '<Control><Shift>k',
|
||||
'help' : 'F1'
|
||||
},
|
||||
'profiles': {
|
||||
|
@ -214,9 +218,11 @@ DEFAULTS = {
|
|||
'background_darkness' : 0.5,
|
||||
'background_type' : 'solid',
|
||||
'background_image' : '',
|
||||
'background_image_mode' : 'stretch_and_fill',
|
||||
'background_image_align_horiz': 'center',
|
||||
'background_image_align_vert' : 'middle',
|
||||
'backspace_binding' : 'ascii-del',
|
||||
'delete_binding' : 'escape-sequence',
|
||||
'color_scheme' : 'grey_on_black',
|
||||
'cursor_blink' : True,
|
||||
'cursor_shape' : 'block',
|
||||
'cursor_fg_color' : '',
|
||||
|
@ -228,7 +234,6 @@ DEFAULTS = {
|
|||
'foreground_color' : '#aaaaaa',
|
||||
'show_titlebar' : True,
|
||||
'scrollbar_position' : "right",
|
||||
'scroll_background' : True,
|
||||
'scroll_on_keystroke' : True,
|
||||
'scroll_on_output' : False,
|
||||
'scrollback_lines' : 500,
|
||||
|
@ -248,14 +253,11 @@ DEFAULTS = {
|
|||
'bold_is_bright' : False,
|
||||
'cell_height' : 1.0,
|
||||
'cell_width' : 1.0,
|
||||
'focus_on_close' : 'auto',
|
||||
'force_no_bell' : False,
|
||||
'cycle_term_tab' : True,
|
||||
'copy_on_selection' : False,
|
||||
'split_to_group' : False,
|
||||
'autoclean_groups' : True,
|
||||
'http_proxy' : '',
|
||||
'ignore_hosts' : ['localhost','127.0.0.0/8','*.local'],
|
||||
# Titlebar
|
||||
'title_hide_sizetext' : False,
|
||||
'title_transmit_fg_color' : '#ffffff',
|
||||
|
@ -718,7 +720,20 @@ class ConfigBase(Borg):
|
|||
for section_name in ['global_config', 'keybindings']:
|
||||
dbg('Processing section: %s' % section_name)
|
||||
section = getattr(self, section_name)
|
||||
parser[section_name] = dict_diff(DEFAULTS[section_name], section)
|
||||
if section_name == 'keybindings':
|
||||
from terminatorlib.plugin import KeyBindUtil
|
||||
# for plugin KeyBindUtil assist in plugin_util
|
||||
keybindutil = KeyBindUtil();
|
||||
keyb_keys = keybindutil.get_all_act_to_keys()
|
||||
# we only need keys as a reference so to match them
|
||||
# against new values
|
||||
keyb_keys = dict.fromkeys(keyb_keys, "")
|
||||
|
||||
default_merged_section = {**keyb_keys, **DEFAULTS[section_name]}
|
||||
merged_section = {**keyb_keys, **section}
|
||||
parser[section_name] = dict_diff(default_merged_section, merged_section)
|
||||
else:
|
||||
parser[section_name] = dict_diff(DEFAULTS[section_name], section)
|
||||
|
||||
from .configjson import JSON_PROFILE_NAME, JSON_LAYOUT_NAME
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
from .util import dbg, err
|
||||
from os import path
|
||||
import sys
|
||||
import json
|
||||
import copy
|
||||
from .config import Config
|
||||
|
@ -8,6 +7,7 @@ from .config import Config
|
|||
JSON_PROFILE_NAME = "__internal_json_profile__"
|
||||
JSON_LAYOUT_NAME = "__internal_json_layout__"
|
||||
|
||||
|
||||
class ConfigJson(object):
|
||||
profile_to_use = 'default'
|
||||
|
||||
|
@ -54,15 +54,24 @@ class ConfigJson(object):
|
|||
|
||||
def build_terminal_layout(self, layoutjson, children, parent, order):
|
||||
dbg ('Building a terminal from json: %s' % layoutjson)
|
||||
|
||||
|
||||
def from_json(layout_name, json_name=None):
|
||||
if json_name is None:
|
||||
json_name = layout_name
|
||||
|
||||
if json_name in layoutjson:
|
||||
children[parent + "." + str(order)][layout_name] = layoutjson[json_name]
|
||||
|
||||
children[parent + "." + str(order)] = {
|
||||
'type': 'Terminal',
|
||||
'order': order,
|
||||
'parent': parent,
|
||||
'profile': self.profile_to_use,
|
||||
'command': layoutjson['command']
|
||||
'profile': self.profile_to_use
|
||||
}
|
||||
|
||||
|
||||
from_json('command')
|
||||
from_json('title')
|
||||
|
||||
def build_container_layout(self, layoutjson, children, parent, order, vertical):
|
||||
if len(layoutjson) == 1:
|
||||
layoutjson = layoutjson[0]
|
||||
|
@ -73,7 +82,7 @@ class ConfigJson(object):
|
|||
self.build_terminal_layout(layoutjson, children, parent, order)
|
||||
return
|
||||
|
||||
dbg ('Building %s layout from json: %s' % ("vertical" if vertical else "horizental", layoutjson))
|
||||
dbg ('Building %s layout from json: %s' % ("vertical" if vertical else "horizontal", layoutjson))
|
||||
|
||||
counter = 0
|
||||
actualparent = parent
|
||||
|
@ -105,9 +114,7 @@ class ConfigJson(object):
|
|||
if "vertical" in layoutjson:
|
||||
vertical = layoutjson["vertical"]
|
||||
del layoutjson["vertical"]
|
||||
|
||||
result = None
|
||||
|
||||
|
||||
if len(layoutjson) == 1:
|
||||
firstitem = next(iter(layoutjson.values()))
|
||||
result = self.build_single_tab_layout(firstitem, vertical)
|
||||
|
|
|
@ -67,6 +67,16 @@ class Container(object):
|
|||
child is .remove()d and .add()ed"""
|
||||
return None
|
||||
|
||||
def split_auto(self, widget, cwd=None):
|
||||
"""Split this container automatically"""
|
||||
width = widget.get_allocation().width
|
||||
height = widget.get_allocation().height
|
||||
dbg("split as per current dimenstions:(%s %s)" % (width, height))
|
||||
if width > height:
|
||||
self.split_axis(widget, False, cwd)
|
||||
else:
|
||||
self.split_axis(widget, True , cwd)
|
||||
|
||||
def split_horiz(self, widget, cwd=None):
|
||||
"""Split this container horizontally"""
|
||||
return(self.split_axis(widget, True, cwd))
|
||||
|
@ -134,17 +144,6 @@ class Container(object):
|
|||
"""Handle a keyboard event requesting a terminal resize"""
|
||||
raise NotImplementedError('resizeterm')
|
||||
|
||||
def toggle_zoom(self, widget, fontscale = False):
|
||||
"""Toggle the existing zoom state"""
|
||||
try:
|
||||
if self.get_property('term_zoomed'):
|
||||
self.unzoom(widget)
|
||||
else:
|
||||
self.zoom(widget, fontscale)
|
||||
except TypeError:
|
||||
err('Container::toggle_zoom: %s is unable to handle zooming, for \
|
||||
%s' % (self, widget))
|
||||
|
||||
def zoom(self, widget, fontscale = False):
|
||||
"""Zoom a terminal"""
|
||||
raise NotImplementedError('zoom')
|
||||
|
@ -245,13 +244,13 @@ the tab will also close all terminals within it.')
|
|||
|
||||
return(terminals)
|
||||
|
||||
def describe_layout(self, count, parent, global_layout, child_order):
|
||||
def describe_layout(self, count, parent, global_layout, child_order, save_cwd = False):
|
||||
"""Describe our current layout"""
|
||||
layout = {}
|
||||
maker = Factory()
|
||||
mytype = maker.type(self)
|
||||
if not mytype:
|
||||
err('unable to detemine own type. %s' % self)
|
||||
err('unable to determine own type. %s' % self)
|
||||
return({})
|
||||
|
||||
layout['type'] = mytype
|
||||
|
@ -308,7 +307,7 @@ the tab will also close all terminals within it.')
|
|||
child_order = 0
|
||||
for child in self.get_children():
|
||||
if hasattr(child, 'describe_layout'):
|
||||
count = child.describe_layout(count, name, global_layout, child_order)
|
||||
count = child.describe_layout(count, name, global_layout, child_order, save_cwd)
|
||||
child_order = child_order + 1
|
||||
|
||||
return(count)
|
||||
|
|
|
@ -23,7 +23,7 @@ class EditableLabel(Gtk.EventBox):
|
|||
# pylint: disable-msg=W0212
|
||||
# pylint: disable-msg=R0904
|
||||
"""
|
||||
An eventbox that partialy emulate a Gtk.Label
|
||||
An eventbox that partially emulate a Gtk.Label
|
||||
On double-click or key binding the label is editable, entering an empty
|
||||
will revert back to automatic text
|
||||
"""
|
||||
|
|
|
@ -100,6 +100,12 @@ class DBusService(Borg, dbus.service.Object):
|
|||
window = self.terminator.get_windows()[0]
|
||||
window.tab_new()
|
||||
|
||||
@dbus.service.method(BUS_NAME, in_signature='a{ss}')
|
||||
def toggle_visibility_cmdline(self,options=dbus.Dictionary):
|
||||
dbg('toggle_visibility_cmdline')
|
||||
for window in self.terminator.get_windows():
|
||||
window.on_hide_window()
|
||||
|
||||
@dbus.service.method(BUS_NAME, in_signature='a{ss}')
|
||||
def unhide_cmdline(self,options=dbus.Dictionary):
|
||||
dbg('unhide_cmdline')
|
||||
|
@ -124,6 +130,12 @@ class DBusService(Borg, dbus.service.Object):
|
|||
"""Create a new tab"""
|
||||
return self.new_terminal(uuid, 'tab')
|
||||
|
||||
@dbus.service.method(BUS_NAME)
|
||||
def reload_configuration(self):
|
||||
"""Reload configuration for all terminals"""
|
||||
self.terminator.config.base.reload()
|
||||
self.terminator.reconfigure()
|
||||
|
||||
@dbus.service.method(BUS_NAME)
|
||||
def bg_img_all (self,options=dbus.Dictionary()):
|
||||
for terminal in self.terminator.terminals:
|
||||
|
@ -343,6 +355,14 @@ def new_tab_cmdline(session, options):
|
|||
"""Call the dbus method to open a new tab in the first window"""
|
||||
session.new_tab_cmdline(options)
|
||||
|
||||
@with_proxy
|
||||
def toggle_visibility_cmdline(session,options):
|
||||
session.toggle_visibility_cmdline(options)
|
||||
|
||||
def reload_configuration(session):
|
||||
"""Call the dbus method to reload configuration for all windows"""
|
||||
session.reload_configuration()
|
||||
|
||||
@with_proxy
|
||||
def unhide_cmdline(session,options):
|
||||
session.unhide_cmdline(options)
|
||||
|
|
|
@ -61,7 +61,7 @@ class Notebook(Container, Gtk.Notebook):
|
|||
#self.connect('page-reordered', self.on_page_reordered)
|
||||
self.set_scrollable(self.config['scroll_tabbar'])
|
||||
|
||||
if self.config['tab_position'] == 'hidden' or self.config['hide_tabbar']:
|
||||
if self.config['tab_position'] == 'hidden':
|
||||
self.set_show_tabs(False)
|
||||
else:
|
||||
self.set_show_tabs(True)
|
||||
|
@ -191,7 +191,7 @@ class Notebook(Container, Gtk.Notebook):
|
|||
sibling.force_set_profile(None, widget.get_profile())
|
||||
|
||||
self.insert_page(container, None, page_num)
|
||||
self.set_tab_detachable(container, True)
|
||||
self.set_tab_detachable(container, self.config['detachable_tabs'])
|
||||
self.child_set_property(container, 'tab-expand', True)
|
||||
self.child_set_property(container, 'tab-fill', True)
|
||||
self.set_tab_reorderable(container, True)
|
||||
|
@ -239,7 +239,7 @@ class Notebook(Container, Gtk.Notebook):
|
|||
|
||||
def get_child_metadata(self, widget):
|
||||
"""Fetch the relevant metadata for a widget which we'd need
|
||||
to recreate it when it's readded"""
|
||||
to recreate it when it's re-added"""
|
||||
metadata = {}
|
||||
metadata['tabnum'] = self.page_num(widget)
|
||||
label = self.get_tab_label(widget)
|
||||
|
@ -275,6 +275,7 @@ class Notebook(Container, Gtk.Notebook):
|
|||
widget.force_set_profile(None, profile)
|
||||
|
||||
signals = {'close-term': self.wrapcloseterm,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'title-change': self.propagate_title_change,
|
||||
|
@ -290,7 +291,9 @@ class Notebook(Container, Gtk.Notebook):
|
|||
'ungroup-tab': top_window.ungroup_tab,
|
||||
'move-tab': top_window.move_tab,
|
||||
'tab-new': [top_window.tab_new, widget],
|
||||
'navigate': top_window.navigate_terminal}
|
||||
'navigate': top_window.navigate_terminal,
|
||||
'zoom': top_window.zoom,
|
||||
'maximise': [top_window.zoom, False]}
|
||||
|
||||
if maker.isinstance(widget, 'Terminal'):
|
||||
for signal in signals:
|
||||
|
@ -303,6 +306,8 @@ class Notebook(Container, Gtk.Notebook):
|
|||
|
||||
if metadata and 'tabnum' in metadata:
|
||||
tabpos = metadata['tabnum']
|
||||
elif self.config['new_tab_after_current_tab'] == True:
|
||||
tabpos = self.get_current_page() + 1
|
||||
else:
|
||||
tabpos = -1
|
||||
|
||||
|
@ -317,7 +322,7 @@ class Notebook(Container, Gtk.Notebook):
|
|||
|
||||
dbg('inserting page at position: %s' % tabpos)
|
||||
self.insert_page(widget, None, tabpos)
|
||||
self.set_tab_detachable(widget, True)
|
||||
self.set_tab_detachable(widget, self.config['detachable_tabs'])
|
||||
|
||||
if maker.isinstance(widget, 'Terminal'):
|
||||
containers, objects = ([], [widget])
|
||||
|
@ -338,6 +343,10 @@ class Notebook(Container, Gtk.Notebook):
|
|||
self.set_current_page(tabpos)
|
||||
self.show_all()
|
||||
if maker.isinstance(term_widget, 'Terminal'):
|
||||
#notify plugins of tab-change
|
||||
dbg("emit tab-change for tabpos: %s " % tabpos)
|
||||
term_widget.emit('tab-change', tabpos)
|
||||
self.set_current_page(tabpos)
|
||||
widget.grab_focus()
|
||||
|
||||
def wrapcloseterm(self, widget):
|
||||
|
|
|
@ -39,6 +39,9 @@ def parse_options():
|
|||
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
parser.add_argument('-R', '--reload', action='store_true', dest='reload',
|
||||
help=_('Reload terminator configuration'))
|
||||
|
||||
parser.add_argument('-v', '--version', action='store_true', dest='version',
|
||||
help=_('Display program version'))
|
||||
parser.add_argument('-m', '--maximise', action='store_true', dest='maximise',
|
||||
|
@ -62,14 +65,16 @@ def parse_options():
|
|||
else:
|
||||
parser.add_argument('--command', dest='command',
|
||||
help=_('Specify a command to execute inside the terminal'))
|
||||
parser.add_argument('-e', '--execute2', dest='execute', action=ExecuteCallback,
|
||||
parser.add_argument('-e', '--execute2', dest='execute',
|
||||
nargs=argparse.REMAINDER, action=ExecuteCallback,
|
||||
help=_('Use the rest of the command line as a command to '
|
||||
'execute inside the terminal, and its arguments'))
|
||||
parser.add_argument('-g', '--config', dest='config',
|
||||
help=_('Specify a config file'))
|
||||
parser.add_argument('-j', '--config-json', dest='configjson',
|
||||
help=_('Specify a partial config json file'))
|
||||
parser.add_argument('-x', '--execute', dest='execute', action=ExecuteCallback,
|
||||
parser.add_argument('-x', '--execute', dest='execute',
|
||||
nargs=argparse.REMAINDER, action=ExecuteCallback,
|
||||
help=_('Use the rest of the command line as a command to execute '
|
||||
'inside the terminal, and its arguments'))
|
||||
parser.add_argument('--working-directory', metavar='DIR',
|
||||
|
@ -94,6 +99,8 @@ icon for the window (by file or name)'))
|
|||
help=_('Comma separated list of methods to limit debugging to'))
|
||||
parser.add_argument('--new-tab', action='store_true', dest='new_tab',
|
||||
help=_('If Terminator is already running, just open a new tab'))
|
||||
parser.add_argument('--toggle-visibility', action='store_true', dest='toggle_visibility',
|
||||
help=_('If Terminator is already running, toggle windows visibility'))
|
||||
parser.add_argument('--unhide', action='store_true', dest='unhide',
|
||||
help=_('If Terminator is already running, just unhide all hidden windows'))
|
||||
parser.add_argument('--list-profiles', action='store_true', dest='list_profiles',
|
||||
|
|
|
@ -93,6 +93,7 @@ class Paned(Container):
|
|||
if self.maker.isinstance(widget, 'Terminal'):
|
||||
top_window = self.get_toplevel()
|
||||
signals = {'close-term': self.wrapcloseterm,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'title-change': self.propagate_title_change,
|
||||
|
@ -424,7 +425,7 @@ class Paned(Container):
|
|||
"""We don't want focus, we want a Terminal to have it"""
|
||||
self.get_child1().grab_focus()
|
||||
|
||||
def rotate_recursive(self, parent, w, h, clockwise):
|
||||
def rotate_recursive(self, parent, w, h, clockwise, metadata=None):
|
||||
"""
|
||||
Recursively rotate "self" into a new paned that'll have "w" x "h" size. Attach it to "parent".
|
||||
|
||||
|
@ -458,7 +459,7 @@ class Paned(Container):
|
|||
w2 = max(w - w1 - handle_size, 0)
|
||||
|
||||
container.set_pos(pos)
|
||||
parent.add(container)
|
||||
parent.add(container, metadata=metadata)
|
||||
|
||||
if maker.isinstance(children[0], 'Terminal'):
|
||||
children[0].get_parent().remove(children[0])
|
||||
|
|
|
@ -69,12 +69,14 @@ class PluginRegistry(borg.Borg):
|
|||
if not self.available_plugins:
|
||||
self.available_plugins = {}
|
||||
|
||||
def load_plugins(self):
|
||||
def load_plugins(self, force=False):
|
||||
"""Load all plugins present in the plugins/ directory in our module"""
|
||||
if self.done:
|
||||
if self.done and (not force):
|
||||
dbg('Already loaded')
|
||||
return
|
||||
|
||||
dbg('loading plugins, force:(%s)' % force)
|
||||
|
||||
config = Config()
|
||||
|
||||
for plugindir in self.path:
|
||||
|
@ -93,8 +95,8 @@ class PluginRegistry(borg.Borg):
|
|||
try:
|
||||
module = __import__(plugin[:-3], None, None, [''])
|
||||
for item in getattr(module, 'AVAILABLE'):
|
||||
func = getattr(module, item)
|
||||
if item not in list(self.available_plugins.keys()):
|
||||
func = getattr(module, item)
|
||||
self.available_plugins[item] = func
|
||||
|
||||
if item not in config['enabled_plugins']:
|
||||
|
@ -102,6 +104,14 @@ class PluginRegistry(borg.Borg):
|
|||
continue
|
||||
if item not in self.instances:
|
||||
self.instances[item] = func()
|
||||
elif force:
|
||||
#instead of multiple copies of loaded
|
||||
#plugin objects, unload where plugins
|
||||
#can clean up and then re-init so there
|
||||
#is one plugin object
|
||||
self.instances[item].unload()
|
||||
self.instances.pop(item, None)
|
||||
self.instances[item] = func()
|
||||
except Exception as ex:
|
||||
err('PluginRegistry::load_plugins: Importing plugin %s \
|
||||
failed: %s' % (plugin, ex))
|
||||
|
@ -187,3 +197,138 @@ class MenuItem(Plugin):
|
|||
def callback(self, menuitems, menu, terminal):
|
||||
"""Callback to transform the enclosed URL"""
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
"""
|
||||
-Basic plugin util for key-press handling, has all mapping to be used
|
||||
in layout keybindings
|
||||
|
||||
Vishweshwar Saran Singh Deo vssdeo@gmail.com
|
||||
"""
|
||||
|
||||
from gi.repository import Gtk, Gdk
|
||||
from terminatorlib.keybindings import Keybindings, KeymapError
|
||||
|
||||
PLUGIN_UTIL_DESC = 0
|
||||
PLUGIN_UTIL_ACT = 1
|
||||
PLUGIN_UTIL_KEYS = 2
|
||||
|
||||
class KeyBindUtil:
|
||||
|
||||
keybindings = Keybindings()
|
||||
|
||||
map_key_to_act = {}
|
||||
map_act_to_keys = {}
|
||||
map_act_to_desc = {}
|
||||
|
||||
def __init__(self, config=None):
|
||||
self.config = config
|
||||
|
||||
#Example
|
||||
# bind
|
||||
# first param is desc, second is action str
|
||||
# self.keyb.bindkey([PluginUrlFindNext , PluginUrlActFindNext, "<Alt>j"])
|
||||
#
|
||||
# get action name
|
||||
# act = self.keyb.keyaction(event)
|
||||
|
||||
# if act == "url_find_next":
|
||||
|
||||
|
||||
#check map key_val_mask -> action
|
||||
def _check_keybind_change(self, key):
|
||||
act = key[PLUGIN_UTIL_ACT]
|
||||
for key_val_mask in self.map_key_to_act:
|
||||
old_act = self.map_key_to_act[key_val_mask]
|
||||
if act == old_act:
|
||||
return key_val_mask
|
||||
return None
|
||||
|
||||
#check in config before binding
|
||||
def bindkey_check_config(self, key):
|
||||
if not self.config:
|
||||
raise Warning("bindkey_check_config called without config init")
|
||||
|
||||
actstr = key[PLUGIN_UTIL_ACT]
|
||||
kbsect = self.config.base.get_item('keybindings')
|
||||
keystr = kbsect[actstr] if actstr in kbsect else ""
|
||||
dbg("bindkey_check_config:action (%s) key str:(%s)" % (actstr, keystr))
|
||||
if len(keystr):
|
||||
key[PLUGIN_UTIL_KEYS] = keystr
|
||||
dbg("found new Action->KeyVal in config: (%s, %s)"
|
||||
% (actstr, keystr));
|
||||
self.bindkey(key)
|
||||
|
||||
def bindkey(self, key):
|
||||
(keyval, mask) = self.keybindings._parsebinding(key[PLUGIN_UTIL_KEYS])
|
||||
keyval = Gdk.keyval_to_lower(keyval)
|
||||
mask = Gdk.ModifierType(mask)
|
||||
|
||||
ret = (keyval, mask)
|
||||
dbg("bindkey: (%s) (%s)" % (key[PLUGIN_UTIL_KEYS], str(ret)))
|
||||
|
||||
#remove if any old key_val_mask
|
||||
old_key_val_mask = self._check_keybind_change(key)
|
||||
if old_key_val_mask:
|
||||
dbg("found old key binding, removing: (%s)" % str(old_key_val_mask))
|
||||
del self.map_key_to_act[old_key_val_mask]
|
||||
|
||||
#map key-val-mask to action, used to ease key-press management
|
||||
self.map_key_to_act[ret] = key[PLUGIN_UTIL_ACT]
|
||||
|
||||
|
||||
#map action to key-combo-str, used in preferences->keybinding
|
||||
self.map_act_to_keys[key[PLUGIN_UTIL_ACT]] = key[PLUGIN_UTIL_KEYS]
|
||||
#map action to key-combo description, in used preferences->keybinding
|
||||
self.map_act_to_desc[key[PLUGIN_UTIL_ACT]] = key[PLUGIN_UTIL_DESC]
|
||||
|
||||
def unbindkey(self, key):
|
||||
|
||||
# Suppose user changed the key-combo and its diff from
|
||||
# what the plugin had set by default, we need to get
|
||||
# current key-combo
|
||||
act = key[PLUGIN_UTIL_ACT]
|
||||
act_keys = self.map_act_to_keys[act]
|
||||
|
||||
(keyval, mask) = self.keybindings._parsebinding(act_keys)
|
||||
keyval = Gdk.keyval_to_lower(keyval)
|
||||
mask = Gdk.ModifierType(mask)
|
||||
|
||||
ret = (keyval, mask)
|
||||
dbg("unbindkey: (%s) (%s)" % (key[PLUGIN_UTIL_KEYS], str(ret)))
|
||||
|
||||
# FIXME keys should always be there, can also use .pop(key, None)
|
||||
# lets do it after testing
|
||||
del self.map_key_to_act[ret]
|
||||
del self.map_act_to_keys[key[PLUGIN_UTIL_ACT]]
|
||||
del self.map_act_to_desc[key[PLUGIN_UTIL_ACT]]
|
||||
|
||||
|
||||
def keyaction(self, event):
|
||||
#FIXME MOD2 mask comes in the event, remove
|
||||
event.state &= ~Gdk.ModifierType.MOD2_MASK
|
||||
|
||||
keyval = Gdk.keyval_to_lower(event.keyval)
|
||||
ret = (keyval, event.state)
|
||||
dbg("keyaction: (%s)" % str(ret))
|
||||
return self.map_key_to_act.get(ret, None)
|
||||
|
||||
def get_act_to_keys(self, key):
|
||||
return self.map_act_to_keys.get(key)
|
||||
|
||||
def get_all_act_to_keys(self):
|
||||
return self.map_act_to_keys
|
||||
|
||||
def get_all_act_to_desc(self):
|
||||
return self.map_act_to_desc
|
||||
|
||||
def get_act_to_desc(self, act):
|
||||
return self.map_act_to_desc.get(act)
|
||||
|
||||
#get action to key binding from config
|
||||
def get_act_to_keys_config(self, act):
|
||||
if not self.config:
|
||||
raise Warning("get_keyvalmask_for_act called without config init")
|
||||
|
||||
keybindings = self.config["keybindings"]
|
||||
return keybindings.get(act)
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
from gi.repository import Gtk
|
||||
|
||||
import terminatorlib.plugin as plugin
|
||||
|
||||
AVAILABLE = ['InsertTermName']
|
||||
|
||||
class InsertTermName(plugin.MenuItem):
|
||||
capabilities = ['terminal_menu']
|
||||
config = None
|
||||
|
||||
def __init__(self):
|
||||
plugin.MenuItem.__init__(self)
|
||||
|
||||
def callback(self, menuitems, menu, terminal):
|
||||
item = Gtk.MenuItem.new_with_label('Insert terminal name')
|
||||
item.connect('activate', lambda x: terminal.emit('insert-term-name'))
|
||||
menuitems.append(item)
|
||||
|
|
@ -6,7 +6,7 @@ terminals """
|
|||
|
||||
import os
|
||||
import sys
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gtk,Vte
|
||||
import terminatorlib.plugin as plugin
|
||||
from terminatorlib.translation import _
|
||||
|
||||
|
@ -19,6 +19,7 @@ class Logger(plugin.MenuItem):
|
|||
dialog_action = Gtk.FileChooserAction.SAVE
|
||||
dialog_buttons = (_("_Cancel"), Gtk.ResponseType.CANCEL,
|
||||
_("_Save"), Gtk.ResponseType.OK)
|
||||
vte_version = Vte.get_minor_version()
|
||||
|
||||
def __init__(self):
|
||||
plugin.MenuItem.__init__(self)
|
||||
|
@ -40,8 +41,11 @@ class Logger(plugin.MenuItem):
|
|||
|
||||
def write_content(self, terminal, row_start, col_start, row_end, col_end):
|
||||
""" Final function to write a file """
|
||||
content = terminal.get_text_range(row_start, col_start, row_end, col_end,
|
||||
if self.vte_version < 72:
|
||||
content = terminal.get_text_range(row_start, col_start, row_end, col_end,
|
||||
lambda *a: True)
|
||||
else:
|
||||
content = terminal.get_text_range_format(Vte.Format.TEXT,row_start, col_start, row_end, col_end)
|
||||
content = content[0]
|
||||
fd = self.loggers[terminal]["fd"]
|
||||
# Don't write the last char which is always '\n'
|
||||
|
@ -101,7 +105,7 @@ class Logger(plugin.MenuItem):
|
|||
last_saved_row = self.loggers[vte_terminal]["row"]
|
||||
(col, row) = vte_terminal.get_cursor_position()
|
||||
if last_saved_col != col or last_saved_row != row:
|
||||
# Save unwritten bufer to the file
|
||||
# Save unwritten buffer to the file
|
||||
self.write_content(vte_terminal, last_saved_row, last_saved_col, row, col)
|
||||
fd = self.loggers[vte_terminal]["fd"]
|
||||
fd.close()
|
||||
|
|
|
@ -0,0 +1,204 @@
|
|||
"""
|
||||
- With min changes to main code base, implementing mouse free url handling.
|
||||
- Using shortcuts to browse URL, next / previous, clear search. Selected URL
|
||||
is copied to clipboard.
|
||||
|
||||
- Vishweshwar Saran Singh Deo vssdeo@gmail.com
|
||||
"""
|
||||
|
||||
import gi
|
||||
gi.require_version('Vte', '2.91') # vte-0.38 (gnome-3.14)
|
||||
from gi.repository import Vte
|
||||
|
||||
from terminatorlib.terminator import Terminator
|
||||
|
||||
from terminatorlib.config import Config
|
||||
import terminatorlib.plugin as plugin
|
||||
from terminatorlib.plugin import KeyBindUtil
|
||||
|
||||
from terminatorlib.util import get_config_dir, err, dbg, gerr
|
||||
from terminatorlib import regex
|
||||
|
||||
import re
|
||||
|
||||
|
||||
AVAILABLE = ['MouseFreeURLHandler']
|
||||
|
||||
PluginUrlActFindNext = "plugin_url_find_next"
|
||||
PluginUrlActFindPrev = "plugin_url_find_prev"
|
||||
PluginUrlActEsc = "plugin_url_esc"
|
||||
PluginUrlActLaunch = "plugin_url_launch"
|
||||
|
||||
|
||||
PluginUrlFindNext = "Plugin Url Find Next"
|
||||
PluginUrlFindPrev = "Plugin Url Find Prev"
|
||||
PluginUrlEsc = "Plugin Url Esc"
|
||||
PluginUrlLaunch = "Plugin Url Launch"
|
||||
|
||||
class MouseFreeURLHandler(plugin.Plugin):
|
||||
|
||||
capabilities = ['MouseFreeHandler']
|
||||
handler_name = 'MouseFreeHandler'
|
||||
nameopen = None
|
||||
namecopy = None
|
||||
match = None
|
||||
|
||||
flag_http_on = False
|
||||
config = Config()
|
||||
keyb = KeyBindUtil(config)
|
||||
matches = []
|
||||
matches_ptr = -1
|
||||
#basic pattern
|
||||
searchtext = "https?\:\/\/[^\s]+[\/\w]"
|
||||
|
||||
def __init__(self):
|
||||
self.connect_signals()
|
||||
|
||||
self.keyb.bindkey_check_config(
|
||||
[PluginUrlFindNext , PluginUrlActFindNext, "<Alt>j"])
|
||||
self.keyb.bindkey_check_config(
|
||||
[PluginUrlFindPrev , PluginUrlActFindPrev, "<Alt>k"])
|
||||
self.keyb.bindkey_check_config(
|
||||
[PluginUrlEsc , PluginUrlActEsc, "Escape"])
|
||||
self.keyb.bindkey_check_config(
|
||||
[PluginUrlLaunch, PluginUrlActLaunch, "<Alt>Return"])
|
||||
|
||||
def connect_signals(self):
|
||||
#this is not giving list off all connected terminals in window
|
||||
dbg("direct terminals: %s" % Terminator().terminals)
|
||||
|
||||
#get list of all terminals indirectly
|
||||
terms = Terminator().terminals[0]
|
||||
dbg("in-direct get terminals: %s" % terms.terminator.terminals)
|
||||
|
||||
for term in terms.terminator.terminals:
|
||||
dbg("signal connect term:%s" % term)
|
||||
term.connect('tab-change', self.on_focus_in)
|
||||
|
||||
self.windows = Terminator().get_windows()
|
||||
for window in self.windows:
|
||||
window.connect('key-press-event', self.on_keypress)
|
||||
|
||||
def unload(self):
|
||||
dbg("unloading")
|
||||
#disconnect all signals and events
|
||||
terms = Terminator().terminals[0]
|
||||
for term in terms.terminator.terminals:
|
||||
try:
|
||||
term.disconnect_by_func(self.on_focus_in)
|
||||
except:
|
||||
dbg("no connected signals")
|
||||
|
||||
for window in self.windows:
|
||||
try:
|
||||
window.disconnect_by_func(self.on_keypress)
|
||||
except:
|
||||
dbg("no connected signals")
|
||||
|
||||
self.keyb.unbindkey(
|
||||
[PluginUrlFindNext , PluginUrlActFindNext, "<Alt>j"])
|
||||
self.keyb.unbindkey(
|
||||
[PluginUrlFindPrev , PluginUrlActFindPrev, "<Alt>k"])
|
||||
self.keyb.unbindkey(
|
||||
[PluginUrlEsc , PluginUrlActEsc, "Escape"])
|
||||
self.keyb.unbindkey(
|
||||
[PluginUrlLaunch, PluginUrlActLaunch, "<Alt>Return"])
|
||||
|
||||
def extract(self):
|
||||
#can we do extract more efficiently
|
||||
col, row = self.vte.get_cursor_position()
|
||||
(txt, attr) = self.vte.get_text_range(0,0,row, col)
|
||||
self.matches = re.findall(self.searchtext, txt)
|
||||
self.matches_ptr = len(self.matches)-1
|
||||
|
||||
def get_term(self):
|
||||
return Terminator().last_focused_term
|
||||
|
||||
def get_selected_url(self):
|
||||
if len(self.matches):
|
||||
dbg("found selected URL (%s %s %s)" %
|
||||
(self.matches_ptr, self.matches[self.matches_ptr], self))
|
||||
return self.matches[self.matches_ptr]
|
||||
dbg("selected URL (%s %s)" % (self.matches_ptr, "not found"))
|
||||
return None
|
||||
|
||||
def on_focus_in(self, widget, event):
|
||||
dbg("focus-in clear url search buffer: %s" % self)
|
||||
self.clear_search()
|
||||
|
||||
def on_keypress(self, widget, event):
|
||||
act = self.keyb.keyaction(event)
|
||||
dbg("keyaction: (%s) (%s)" % (str(act), event.keyval))
|
||||
|
||||
if act == PluginUrlActFindNext:
|
||||
if not self.flag_http_on:
|
||||
dbg("search URL on")
|
||||
self.search()
|
||||
self.extract()
|
||||
#so when we start search last item be selected
|
||||
self.vte.search_find_previous()
|
||||
self.get_selected_url() # dbg url print
|
||||
self.vte.copy_clipboard()
|
||||
return True
|
||||
else:
|
||||
self.vte.search_find_next()
|
||||
|
||||
if (self.matches_ptr < len(self.matches)-1):
|
||||
self.matches_ptr += 1
|
||||
else:
|
||||
self.matches_ptr = 0
|
||||
|
||||
self.vte.copy_clipboard()
|
||||
self.get_selected_url() # dbg url print
|
||||
return True
|
||||
|
||||
if act == PluginUrlActFindPrev:
|
||||
if not self.flag_http_on:
|
||||
self.search()
|
||||
self.extract()
|
||||
self.vte.search_find_previous()
|
||||
self.get_selected_url() # dbg url print
|
||||
self.vte.copy_clipboard()
|
||||
return True
|
||||
|
||||
self.vte.search_find_previous()
|
||||
|
||||
if self.matches_ptr > 0:
|
||||
self.matches_ptr -= 1
|
||||
elif len(self.matches):
|
||||
self.matches_ptr = len(self.matches)-1
|
||||
|
||||
self.vte.copy_clipboard()
|
||||
self.get_selected_url() # dbg url print
|
||||
return True
|
||||
|
||||
if act == PluginUrlActEsc:
|
||||
self.clear_search()
|
||||
|
||||
if act == PluginUrlActLaunch:
|
||||
url = self.get_selected_url()
|
||||
if url:
|
||||
self.get_term().open_url(url, prepare=False)
|
||||
|
||||
|
||||
def clear_search(self):
|
||||
self.matches = []
|
||||
self.flag_http_on = False
|
||||
self.matches_ptr = -1
|
||||
if self.get_term():
|
||||
self.vte = self.get_term().get_vte()
|
||||
self.vte.search_set_regex(None, 0)
|
||||
dbg("search URL off")
|
||||
|
||||
def search(self):
|
||||
dbg("searching text")
|
||||
self.flag_http_on = True
|
||||
self.vte = self.get_term().get_vte()
|
||||
|
||||
self.vte.search_set_wrap_around(True)
|
||||
regex_flags_pcre2 = (regex.FLAGS_PCRE2 | regex.PCRE2_CASELESS)
|
||||
searchre = Vte.Regex.new_for_search(self.searchtext,
|
||||
len(self.searchtext), regex_flags_pcre2)
|
||||
|
||||
self.vte.search_set_regex(searchre, 0)
|
||||
|
|
@ -16,7 +16,7 @@ from terminatorlib.util import get_config_dir, err, dbg, gerr
|
|||
|
||||
AVAILABLE = ['RunCmdOnMatchMenu']
|
||||
|
||||
# For example, open scripts names outputed by python in Vim at the given line number:
|
||||
# For example, open scripts names outputted by python in Vim at the given line number:
|
||||
# match = r'\B(/\S+?\.py)\S{2}\sline\s(\d+)' # Python's log file matching
|
||||
# cmd = "gvim --servername IDE --remote +{1} {0}"
|
||||
|
||||
|
@ -61,7 +61,7 @@ class RunCmdOnMatch(plugin.URLHandler):
|
|||
try:
|
||||
runcmd = self.__class__.cmd.format(*groups)
|
||||
except Exception as e:
|
||||
err("Exception occured while formating the command: {} {}".format(type(e).__name__, e))
|
||||
err("Exception occurred while formatting the command: {} {}".format(type(e).__name__, e))
|
||||
|
||||
dbg("run: {cmd}".format(cmd=runcmd))
|
||||
subprocess.run(runcmd.split())
|
||||
|
@ -170,7 +170,7 @@ class RunCmdOnMatchMenu(plugin.MenuItem):
|
|||
rcom_name = "_RunCmdOnMatch_{}".format(key) # key is just the index
|
||||
# Make a handler class.
|
||||
RCOM = MetaRCOM(rcom_name, handler["regexp"], handler["command"])
|
||||
# Instanciate the class.
|
||||
# Instantiate the class.
|
||||
setattr(me, rcom_name, RCOM)
|
||||
|
||||
if rcom_name not in AVAILABLE:
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
import os
|
||||
import sys
|
||||
|
||||
# Fix imports when testing this file directly
|
||||
if __name__ == '__main__':
|
||||
sys.path.append( os.path.join(os.path.dirname(__file__), "../.."))
|
||||
|
||||
from terminatorlib.config import Config
|
||||
import terminatorlib.plugin as plugin
|
||||
from terminatorlib.util import get_config_dir, err, dbg, gerr
|
||||
from terminatorlib.terminator import Terminator
|
||||
from terminatorlib import util
|
||||
|
||||
|
||||
# AVAILABLE must contain a list of all the classes that you want exposed
|
||||
AVAILABLE = ['SaveLastSessionLayout']
|
||||
|
||||
class SaveLastSessionLayout(plugin.Plugin):
|
||||
capabilities = ['session']
|
||||
|
||||
config = None
|
||||
conf_file = os.path.join(get_config_dir(),"save_last_session_cwd")
|
||||
conf_sessions = []
|
||||
emit_close_count = 0
|
||||
|
||||
def __init__(self):
|
||||
dbg("SaveLastSessionLayout Init")
|
||||
self.connect_signals()
|
||||
|
||||
#not used, but capability can be used to load automatically
|
||||
def load_session_layout(self, debugtab=False, widget=None, cwd=None, metadata=None, profile=None):
|
||||
dbg("SaveLastSessionLayout load layout")
|
||||
terminator = Terminator()
|
||||
util.spawn_new_terminator(terminator.origcwd, ['-u', '-l', 'SaveLastSessionLayout'])
|
||||
|
||||
def save_session_layout(self, debugtab=False, widget=None, cwd=None, metadata=None, profile=None):
|
||||
|
||||
config = Config()
|
||||
terminator = Terminator()
|
||||
current_layout = terminator.describe_layout(save_cwd = True)
|
||||
dbg("SaveLastSessionLayout: save layout(%s)" % current_layout)
|
||||
res = config.replace_layout("SaveLastSessionLayout", current_layout)
|
||||
if (not res):
|
||||
r = config.add_layout("SaveLastSessionLayout", current_layout)
|
||||
config.save()
|
||||
return True
|
||||
|
||||
def connect_signals(self):
|
||||
dbg("SaveLastSessionLayout connect_signals")
|
||||
n = 0
|
||||
for term in Terminator().terminals:
|
||||
dbg("SaveLastSessionLayout connect_signals to term num:(%d)" % n)
|
||||
n = n + 1
|
||||
# event close-term works, and does not require an additional
|
||||
# event but has a race condition when
|
||||
# there is only one terminal we are unable to get the
|
||||
# describe_layout section
|
||||
|
||||
#term.connect('close-term', self.close, None)
|
||||
term.connect('pre-close-term', self.close, None)
|
||||
|
||||
#Can connect signal from terminal
|
||||
#term.connect('load-layout', self.load_session_layout, None)
|
||||
|
||||
def close(self, term, event, arg1 = None):
|
||||
if (self.emit_close_count == 0):
|
||||
self.emit_close_count = self.emit_close_count + 1
|
||||
self.save_session_layout("", "")
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.38.2 -->
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.10"/>
|
||||
<object class="GtkListStore" id="BackspaceKeyListStore">
|
||||
|
@ -154,6 +154,60 @@
|
|||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="ImageAlignHorizListStore">
|
||||
<columns>
|
||||
<!-- column-name Alignment -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Left</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Center</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Right</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="ImageAlignVertListStore">
|
||||
<columns>
|
||||
<!-- column-name Alignment -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Top</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Middle</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Bottom</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="ImageDrawingModeListStore">
|
||||
<columns>
|
||||
<!-- column-name DrawingMode -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
<data>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Stretch and Fill</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Scale and Fit</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Scale and Crop</col>
|
||||
</row>
|
||||
<row>
|
||||
<col id="0" translatable="yes">Tiling</col>
|
||||
</row>
|
||||
</data>
|
||||
</object>
|
||||
<object class="GtkListStore" id="KeybindingsListStore">
|
||||
<columns>
|
||||
<!-- column-name Name -->
|
||||
|
@ -299,9 +353,9 @@
|
|||
</data>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment1">
|
||||
<property name="lower">1</property>
|
||||
<property name="lower">-1</property>
|
||||
<property name="upper">20</property>
|
||||
<property name="value">1</property>
|
||||
<property name="value">-1</property>
|
||||
<property name="step-increment">1</property>
|
||||
<property name="page-increment">2</property>
|
||||
</object>
|
||||
|
@ -340,6 +394,11 @@
|
|||
<property name="step-increment">0.10</property>
|
||||
<property name="page-increment">0.20</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment8">
|
||||
<property name="upper">1</property>
|
||||
<property name="step-increment">0.10</property>
|
||||
<property name="page-increment">0.20</property>
|
||||
</object>
|
||||
<object class="GtkAdjustment" id="adjustment_cellheight">
|
||||
<property name="lower">1</property>
|
||||
<property name="upper">2</property>
|
||||
|
@ -413,7 +472,7 @@
|
|||
<property name="spacing">36</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<!-- n-columns=2 n-rows=7 -->
|
||||
<!-- n-columns=2 n-rows=8 -->
|
||||
<object class="GtkGrid" id="grid1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
@ -553,6 +612,23 @@
|
|||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="detachable_tabs">
|
||||
<property name="label" translatable="yes">Detach tab into new window on drag (Require restart)</property>
|
||||
<property name="use-action-appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<signal name="toggled" handler="on_detachable_tabs_toggled" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">7</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
|
@ -887,7 +963,7 @@
|
|||
<property name="spacing">36</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<!-- n-columns=3 n-rows=6 -->
|
||||
<!-- n-columns=3 n-rows=7 -->
|
||||
<object class="GtkGrid" id="grid3">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
|
@ -906,7 +982,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">3</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="width">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
@ -960,7 +1036,7 @@
|
|||
<property name="can-focus">True</property>
|
||||
<property name="halign">baseline</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="adjustment">adjustment7</property>
|
||||
<property name="adjustment">adjustment8</property>
|
||||
<property name="round-digits">2</property>
|
||||
<property name="digits">2</property>
|
||||
<property name="draw-value">False</property>
|
||||
|
@ -1006,7 +1082,7 @@
|
|||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="extrastylingcheck">
|
||||
<property name="label" translatable="yes">Extra Styling (Theme dependant)</property>
|
||||
<property name="label" translatable="yes">Extra Styling (Theme dependent)</property>
|
||||
<property name="use-action-appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
|
@ -1030,7 +1106,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">5</property>
|
||||
<property name="top-attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1046,7 +1122,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">5</property>
|
||||
<property name="top-attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1064,7 +1140,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">5</property>
|
||||
<property name="top-attach">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1081,7 +1157,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="top-attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1097,7 +1173,7 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="top-attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -1109,7 +1185,52 @@
|
|||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="top-attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label35">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Unfocused terminal background color:</property>
|
||||
<property name="xalign">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="inactive_bg_color_offset_value_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">100%</property>
|
||||
<property name="justify">right</property>
|
||||
<property name="width-chars">5</property>
|
||||
<property name="max-width-chars">5</property>
|
||||
<property name="xalign">1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">1</property>
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScale" id="inactive_bg_color_offset">
|
||||
<property name="width-request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="adjustment">adjustment7</property>
|
||||
<property name="round-digits">2</property>
|
||||
<property name="digits">2</property>
|
||||
<property name="draw-value">False</property>
|
||||
<property name="value-pos">bottom</property>
|
||||
<signal name="value-changed" handler="on_inactive_bg_color_offset_value_changed" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">2</property>
|
||||
<property name="top-attach">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -1124,7 +1245,7 @@
|
|||
<object class="GtkGrid" id="grid4">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="row-spacing">6</property>
|
||||
<property name="row-spacing">8</property>
|
||||
<property name="column-spacing">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label11">
|
||||
|
@ -1209,6 +1330,23 @@
|
|||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkCheckButton" id="new_tab_after_current_checkbutton">
|
||||
<property name="label" translatable="yes">New tab after current tab</property>
|
||||
<property name="use-action-appearance">False</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<signal name="toggled" handler="on_new_tab_after_current_checkbutton_toggled" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="width">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
|
@ -2660,41 +2798,208 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<object class="GtkAlignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="left-padding">12</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Background Image File:</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Image File:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">5</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFileChooserButton" id="background_image_file">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="title" translatable="yes">Choose file</property>
|
||||
<signal name="file-set" handler="on_background_image_file_set" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkAccelLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Drawing mode:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">5</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="background_image_mode_combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="model">ImageDrawingModeListStore</property>
|
||||
<property name="active">0</property>
|
||||
<signal name="changed" handler="on_background_image_mode_changed" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Horizontal alignment:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">5</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="background_image_align_horiz_combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="model">ImageAlignHorizListStore</property>
|
||||
<property name="active">1</property>
|
||||
<signal name="changed" handler="on_background_image_align_horiz_changed" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Vertical alignment:</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">5</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkComboBox" id="background_image_align_vert_combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="model">ImageAlignVertListStore</property>
|
||||
<property name="active">1</property>
|
||||
<signal name="changed" handler="on_background_image_align_vert_changed" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkCellRendererText"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="padding">5</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFileChooserButton" id="background_image_file">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="title" translatable="yes">Choose file</property>
|
||||
<signal name="file-set" handler="on_background_image_file_set" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -2783,7 +3088,7 @@
|
|||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -3720,63 +4025,85 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="vadjustment">adjustment4</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<object class="GtkVBox" id="vbox124">
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="keybindingtreeview">
|
||||
<object class="GtkEntry" id="keybindingsearchentry">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="has-focus">True</property>
|
||||
<property name="model">KeybindingsListStore</property>
|
||||
<property name="headers-clickable">False</property>
|
||||
<property name="search-column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="treeview-selection4"/>
|
||||
</child>
|
||||
<property name="placeholder-text">filter keybindings</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow1">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="vadjustment">adjustment4</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
|
||||
<property name="title" translatable="yes">Name</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext10"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
<object class="GtkTreeView" id="keybindingtreeview">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="has-focus">True</property>
|
||||
<property name="model">KeybindingsListStore</property>
|
||||
<property name="headers-clickable">False</property>
|
||||
<property name="search-column">0</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection" id="treeview-selection4"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
|
||||
<property name="title" translatable="yes">Action</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext11"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
|
||||
<property name="title" translatable="yes">Keybinding</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererAccel" id="cellrendereraccel1">
|
||||
<property name="editable">True</property>
|
||||
<property name="accel-mode">other</property>
|
||||
<signal name="accel-cleared" handler="on_cellrenderer_accel_cleared" object="KeybindingsListStore" swapped="yes"/>
|
||||
<signal name="accel-edited" handler="on_cellrenderer_accel_edited" object="KeybindingsListStore" swapped="yes"/>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn1">
|
||||
<property name="title" translatable="yes">Name</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext10"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn2">
|
||||
<property name="title" translatable="yes">Action</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext11"/>
|
||||
<attributes>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn" id="treeviewcolumn3">
|
||||
<property name="title" translatable="yes">Keybinding</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererAccel" id="cellrendereraccel1">
|
||||
<property name="editable">True</property>
|
||||
<property name="accel-mode">other</property>
|
||||
<signal name="accel-cleared" handler="on_cellrenderer_accel_cleared" object="KeybindingsListStore" swapped="yes"/>
|
||||
<signal name="accel-edited" handler="on_cellrenderer_accel_edited" object="KeybindingsListStore" swapped="yes"/>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="accel-key">2</attribute>
|
||||
<attribute name="accel-mods">3</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
<attributes>
|
||||
<attribute name="accel-key">2</attribute>
|
||||
<attribute name="accel-mods">3</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
|
@ -3955,7 +4282,7 @@
|
|||
<object class="GtkLabel" id="about_version_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes">Version: 2.1.1</property>
|
||||
<property name="label" translatable="yes">Version: 2.1.3</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
|
|
|
@ -18,6 +18,8 @@ from .terminator import Terminator
|
|||
from .plugin import PluginRegistry
|
||||
from .version import APP_NAME
|
||||
|
||||
from .plugin import KeyBindUtil
|
||||
|
||||
def get_color_string(widcol):
|
||||
return('#%02x%02x%02x' % (widcol.red>>8, widcol.green>>8, widcol.blue>>8))
|
||||
|
||||
|
@ -118,6 +120,7 @@ class PrefsEditor:
|
|||
'go_right' : _('Focus the terminal right'),
|
||||
'rotate_cw' : _('Rotate terminals clockwise'),
|
||||
'rotate_ccw' : _('Rotate terminals counter-clockwise'),
|
||||
'split_auto' : _('Split automatically'),
|
||||
'split_horiz' : _('Split horizontally'),
|
||||
'split_vert' : _('Split vertically'),
|
||||
'close_term' : _('Close terminal'),
|
||||
|
@ -173,18 +176,19 @@ class PrefsEditor:
|
|||
'broadcast_group' : _('Broadcast key presses to group'),
|
||||
'broadcast_all' : _('Broadcast key events to all'),
|
||||
'insert_number' : _('Insert terminal number'),
|
||||
'insert_padded' : _('Insert padded terminal number'),
|
||||
'insert_padded' : _('Insert zero padded terminal number'),
|
||||
'edit_window_title': _('Edit window title'),
|
||||
'edit_terminal_title': _('Edit terminal title'),
|
||||
'edit_tab_title' : _('Edit tab title'),
|
||||
'layout_launcher' : _('Open layout launcher window'),
|
||||
'next_profile' : _('Switch to next profile'),
|
||||
'previous_profile' : _('Switch to previous profile'),
|
||||
'preferences' : _('Open the Preferences window'),
|
||||
'preferences' : _('Open the Preferences window'),
|
||||
'preferences_keybindings' : _('Open the Preferences-Keybindings window'),
|
||||
'help' : _('Open the manual')
|
||||
}
|
||||
|
||||
def __init__ (self, term):
|
||||
def __init__ (self, term, cur_page=0):
|
||||
self.config = config.Config()
|
||||
self.config.base.reload()
|
||||
self.term = term
|
||||
|
@ -227,6 +231,10 @@ class PrefsEditor:
|
|||
err('Unable to set values: %s' % e)
|
||||
self.config.uninhibit_save()
|
||||
|
||||
guiget = self.builder.get_object
|
||||
nb = guiget('notebook1')
|
||||
nb.set_current_page(cur_page)
|
||||
|
||||
def on_closebutton_clicked(self, _button):
|
||||
"""Close the window"""
|
||||
terminator = Terminator()
|
||||
|
@ -331,6 +339,9 @@ class PrefsEditor:
|
|||
# DBus Server
|
||||
widget = guiget('dbuscheck')
|
||||
widget.set_active(self.config['dbus'])
|
||||
# Detachable tabs
|
||||
widget = guiget('detachable_tabs')
|
||||
widget.set_active(self.config['detachable_tabs'])
|
||||
#Hide from taskbar
|
||||
widget = guiget('hidefromtaskbcheck')
|
||||
widget.set_active(self.config['hide_from_taskbar'])
|
||||
|
@ -347,7 +358,11 @@ class PrefsEditor:
|
|||
# title bar at bottom
|
||||
widget = guiget('title_at_bottom_checkbutton')
|
||||
widget.set_active(self.config['title_at_bottom'])
|
||||
|
||||
|
||||
# new tab after current tab
|
||||
widget = guiget('new_tab_after_current_checkbutton')
|
||||
widget.set_active(self.config['new_tab_after_current_tab'])
|
||||
|
||||
#Always split with profile
|
||||
widget = guiget('always_split_with_profile')
|
||||
widget.set_active(self.config['always_split_with_profile'])
|
||||
|
@ -415,10 +430,59 @@ class PrefsEditor:
|
|||
selection.connect('changed', self.on_layout_item_selection_changed)
|
||||
|
||||
## Keybindings tab
|
||||
widget = guiget('keybindingtreeview')
|
||||
widget = guiget('keybindingtreeview')
|
||||
kbsearch = guiget('keybindingsearchentry')
|
||||
self.keybind_filter_str = ""
|
||||
|
||||
#lets hide whatever we can in nested scope
|
||||
def filter_visible(model, treeiter, data):
|
||||
act = model[treeiter][0]
|
||||
keys = data[act] if act in data else ""
|
||||
desc = model[treeiter][1]
|
||||
kval = model[treeiter][2]
|
||||
mask = model[treeiter][3]
|
||||
#so user can search for disabled keys also
|
||||
if not (len(keys) and kval and mask):
|
||||
act = "Disabled"
|
||||
|
||||
self.keybind_filter_str = self.keybind_filter_str.lower()
|
||||
searchtxt = (act + " " + keys + " " + desc).lower()
|
||||
pos = searchtxt.find(self.keybind_filter_str)
|
||||
if (pos >= 0):
|
||||
dbg("filter find:%s in search text: %s" %
|
||||
(self.keybind_filter_str, searchtxt))
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def on_search(widget, text):
|
||||
MAX_SEARCH_LEN = 10
|
||||
self.keybind_filter_str = widget.get_text()
|
||||
ln = len(self.keybind_filter_str)
|
||||
#its a small list & we are eager for quick search, but limit
|
||||
if (ln >=2 and ln < MAX_SEARCH_LEN):
|
||||
dbg("filter search str: %s" % self.keybind_filter_str)
|
||||
self.treemodelfilter.refilter()
|
||||
|
||||
def on_search_refilter(widget):
|
||||
dbg("refilter")
|
||||
self.treemodelfilter.refilter()
|
||||
|
||||
kbsearch.connect('key-press-event', on_search)
|
||||
kbsearch.connect('backspace', on_search_refilter)
|
||||
|
||||
liststore = widget.get_model()
|
||||
liststore.set_sort_column_id(0, Gtk.SortType.ASCENDING)
|
||||
keybindings = self.config['keybindings']
|
||||
|
||||
keybindutil = KeyBindUtil()
|
||||
plugin_keyb_act = keybindutil.get_all_act_to_keys()
|
||||
plugin_keyb_desc = keybindutil.get_all_act_to_desc()
|
||||
#merge give preference to main bindings over plugin
|
||||
keybindings = {**plugin_keyb_act, **keybindings}
|
||||
self.keybindingnames = {**plugin_keyb_desc, **self.keybindingnames}
|
||||
#dbg("appended actions %s names %s" % (keybindings, self.keybindingnames))
|
||||
|
||||
for keybinding in keybindings:
|
||||
keyval = 0
|
||||
mask = 0
|
||||
|
@ -431,6 +495,10 @@ class PrefsEditor:
|
|||
liststore.append([keybinding, self.keybindingnames[keybinding],
|
||||
keyval, mask])
|
||||
|
||||
self.treemodelfilter = liststore.filter_new()
|
||||
self.treemodelfilter.set_visible_func(filter_visible, keybindings)
|
||||
widget.set_model(self.treemodelfilter)
|
||||
|
||||
## Plugins tab
|
||||
# Populate the plugin list
|
||||
widget = guiget('pluginlist')
|
||||
|
@ -624,6 +692,10 @@ class PrefsEditor:
|
|||
widget.set_value(float(self.config['inactive_color_offset']))
|
||||
widget = guiget('inactive_color_offset_value_label')
|
||||
widget.set_text('%d%%' % (int(float(self.config['inactive_color_offset'])*100)))
|
||||
widget = guiget('inactive_bg_color_offset')
|
||||
widget.set_value(float(self.config['inactive_bg_color_offset']))
|
||||
widget = guiget('inactive_bg_color_offset_value_label')
|
||||
widget.set_text('%d%%' % (int(float(self.config['inactive_bg_color_offset'])*100)))
|
||||
# Open links with a single click (instead of a Ctrl-left click)
|
||||
widget = guiget('link_single_click')
|
||||
widget.set_active(self.config['link_single_click'])
|
||||
|
@ -644,11 +716,42 @@ class PrefsEditor:
|
|||
elif self.config['background_type'] == 'image':
|
||||
guiget('image_radiobutton').set_active(True)
|
||||
self.update_background_tab()
|
||||
# Background image
|
||||
widget = guiget('background_image_file')
|
||||
widget.set_filename(self.config['background_image'])
|
||||
|
||||
widget = guiget('background_image_mode_combobox')
|
||||
if self.config['background_image_mode'] == 'scale_and_fit':
|
||||
widget.set_active(1)
|
||||
elif self.config['background_image_mode'] == 'scale_and_crop':
|
||||
widget.set_active(2)
|
||||
elif self.config['background_image_mode'] == 'tiling':
|
||||
widget.set_active(3)
|
||||
else:
|
||||
# default to stretch_and_fill
|
||||
widget.set_active(0)
|
||||
|
||||
widget = guiget('background_image_align_horiz_combobox')
|
||||
if self.config['background_image_align_horiz'] == 'center':
|
||||
widget.set_active(1)
|
||||
elif self.config['background_image_align_horiz'] == 'right':
|
||||
widget.set_active(2)
|
||||
else:
|
||||
# default to left
|
||||
widget.set_active(0)
|
||||
|
||||
widget = guiget('background_image_align_vert_combobox')
|
||||
if self.config['background_image_align_vert'] == 'middle':
|
||||
widget.set_active(1)
|
||||
elif self.config['background_image_align_vert'] == 'bottom':
|
||||
widget.set_active(2)
|
||||
else:
|
||||
# default to top
|
||||
widget.set_active(0)
|
||||
|
||||
# Background shading
|
||||
widget = guiget('background_darkness_scale')
|
||||
widget.set_value(float(self.config['background_darkness']))
|
||||
widget = guiget('background_image_file')
|
||||
widget.set_filename(self.config['background_image'])
|
||||
|
||||
## Scrolling tab
|
||||
# Scrollbar position
|
||||
|
@ -666,7 +769,7 @@ class PrefsEditor:
|
|||
# Scrollback infinite
|
||||
widget = guiget('scrollback_infinite')
|
||||
widget.set_active(self.config['scrollback_infinite'])
|
||||
# Scroll on outut
|
||||
# Scroll on output
|
||||
widget = guiget('scroll_on_output_checkbutton')
|
||||
widget.set_active(self.config['scroll_on_output'])
|
||||
# Scroll on keystroke
|
||||
|
@ -751,6 +854,10 @@ class PrefsEditor:
|
|||
self.config['dbus'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_detachable_tabs_toggled(self, widget):
|
||||
self.config['detachable_tabs'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_disable_mousewheel_zoom_toggled(self, widget):
|
||||
"""Ctrl+mousewheel zoom setting changed"""
|
||||
self.config['disable_mousewheel_zoom'] = widget.get_active()
|
||||
|
@ -796,6 +903,11 @@ class PrefsEditor:
|
|||
self.config['title_at_bottom'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_new_tab_after_current_checkbutton_toggled(self, widget):
|
||||
"""New tab after current tab """
|
||||
self.config['new_tab_after_current_tab'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_always_split_with_profile_toggled(self, widget):
|
||||
"""Always split with profile setting changed"""
|
||||
self.config['always_split_with_profile'] = widget.get_active()
|
||||
|
@ -873,11 +985,6 @@ class PrefsEditor:
|
|||
self.config['login_shell'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_scroll_background_checkbutton_toggled(self, widget):
|
||||
"""Scroll background setting changed"""
|
||||
self.config['scroll_background'] = widget.get_active()
|
||||
self.config.save()
|
||||
|
||||
def on_scroll_on_keystroke_checkbutton_toggled(self, widget):
|
||||
"""Scroll on keystrong setting changed"""
|
||||
self.config['scroll_on_keystroke'] = widget.get_active()
|
||||
|
@ -949,6 +1056,41 @@ class PrefsEditor:
|
|||
self.config['background_image'] = widget.get_filename()
|
||||
self.config.save()
|
||||
|
||||
def on_background_image_mode_changed(self, widget):
|
||||
selected = widget.get_active()
|
||||
if selected == 1:
|
||||
value = 'scale_and_fit'
|
||||
elif selected == 2:
|
||||
value = 'scale_and_crop'
|
||||
elif selected == 3:
|
||||
value = 'tiling'
|
||||
else:
|
||||
value = 'stretch_and_fill'
|
||||
self.config['background_image_mode'] = value
|
||||
self.config.save()
|
||||
|
||||
def on_background_image_align_horiz_changed(self, widget):
|
||||
selected = widget.get_active()
|
||||
if selected == 1:
|
||||
value = 'center'
|
||||
elif selected == 2:
|
||||
value = 'right'
|
||||
else:
|
||||
value = 'left'
|
||||
self.config['background_image_align_horiz'] = value
|
||||
self.config.save()
|
||||
|
||||
def on_background_image_align_vert_changed(self, widget):
|
||||
selected = widget.get_active()
|
||||
if selected == 1:
|
||||
value = 'middle'
|
||||
elif selected == 2:
|
||||
value = 'bottom'
|
||||
else:
|
||||
value = 'top'
|
||||
self.config['background_image_align_vert'] = value
|
||||
self.config.save()
|
||||
|
||||
def on_darken_background_scale_value_changed(self, widget):
|
||||
"""Background darkness setting changed"""
|
||||
value = widget.get_value() # This one is rounded according to the UI.
|
||||
|
@ -966,10 +1108,6 @@ class PrefsEditor:
|
|||
if self.palettevalues[key] == active:
|
||||
value = key
|
||||
|
||||
sensitive = value == 'custom'
|
||||
for palette_id in range(0, NUM_PALETTE_COLORS):
|
||||
self.get_palette_widget(palette_id).set_sensitive(sensitive)
|
||||
|
||||
if value in self.palettes:
|
||||
palette = self.palettes[value]
|
||||
palettebits = palette.split(':')
|
||||
|
@ -1223,7 +1361,7 @@ class PrefsEditor:
|
|||
self.config.save()
|
||||
|
||||
def on_title_transmit_bg_color_color_set(self, widget):
|
||||
"""Title transmit backgruond colour changed"""
|
||||
"""Title transmit background colour changed"""
|
||||
self.config['title_transmit_bg_color'] = color2hex(widget)
|
||||
self.config.save()
|
||||
|
||||
|
@ -1248,14 +1386,23 @@ class PrefsEditor:
|
|||
label_widget = guiget('inactive_color_offset_value_label')
|
||||
label_widget.set_text('%d%%' % (int(value * 100)))
|
||||
|
||||
def on_inactive_bg_color_offset_value_changed(self, widget):
|
||||
"""Inactive background color offset setting changed"""
|
||||
value = widget.get_value() # This one is rounded according to the UI.
|
||||
if value > 1.0:
|
||||
value = 1.0
|
||||
self.config['inactive_bg_color_offset'] = value
|
||||
self.config.save()
|
||||
guiget = self.builder.get_object
|
||||
label_widget = guiget('inactive_bg_color_offset_value_label')
|
||||
label_widget.set_text('%d%%' % (int(value * 100)))
|
||||
|
||||
def on_handlesize_value_changed(self, widget):
|
||||
"""Handle size changed"""
|
||||
value = widget.get_value() # This one is rounded according to the UI.
|
||||
value = int(value) # Cast to int.
|
||||
if value > 20:
|
||||
value = 20
|
||||
if value < 1:
|
||||
value = 1
|
||||
self.config['handle_size'] = value
|
||||
self.config.save()
|
||||
guiget = self.builder.get_object
|
||||
|
@ -1557,10 +1704,12 @@ class PrefsEditor:
|
|||
self.config['background_type'] = backtype
|
||||
self.config.save()
|
||||
|
||||
if backtype == 'image':
|
||||
guiget('background_image_file').set_sensitive(True)
|
||||
else:
|
||||
guiget('background_image_file').set_sensitive(False)
|
||||
# toggle sensitivity of widgets related to background image
|
||||
for element in ('background_image_file',
|
||||
'background_image_align_horiz_combobox',
|
||||
'background_image_align_vert_combobox',
|
||||
'background_image_mode_combobox'):
|
||||
guiget(element).set_sensitive(backtype == 'image')
|
||||
|
||||
if backtype in ('transparent', 'image'):
|
||||
guiget('darken_background_scale').set_sensitive(True)
|
||||
|
@ -1697,12 +1846,8 @@ class PrefsEditor:
|
|||
|
||||
fore = guiget('foreground_colorbutton')
|
||||
back = guiget('background_colorbutton')
|
||||
if value == 'custom':
|
||||
fore.set_sensitive(True)
|
||||
back.set_sensitive(True)
|
||||
else:
|
||||
fore.set_sensitive(False)
|
||||
back.set_sensitive(False)
|
||||
fore.set_sensitive(True)
|
||||
back.set_sensitive(True)
|
||||
|
||||
forecol = None
|
||||
backcol = None
|
||||
|
@ -1738,6 +1883,11 @@ class PrefsEditor:
|
|||
self.config.save()
|
||||
|
||||
def on_cellrenderer_accel_edited(self, liststore, path, key, mods, _code):
|
||||
inpath = path #save for debugging
|
||||
trpath = Gtk.TreePath.new_from_string(inpath)
|
||||
path = str(self.treemodelfilter.convert_path_to_child_path(trpath))
|
||||
dbg("convert path with filter from: %s to: %s" %
|
||||
(inpath, path))
|
||||
"""Handle an edited keybinding"""
|
||||
# Ignore `Gdk.KEY_Tab` so that `Shift+Tab` is displayed as `Shift+Tab`
|
||||
# in `Preferences>Keybindings` and NOT `Left Tab` (see `Gdk.KEY_ISO_Left_Tab`).
|
||||
|
@ -1761,8 +1911,14 @@ class PrefsEditor:
|
|||
current_binding = liststore.get_value(liststore.get_iter(path), 0)
|
||||
parsed_accel = Gtk.accelerator_parse(accel)
|
||||
|
||||
keybindutil = KeyBindUtil()
|
||||
keybindings = self.config["keybindings"]
|
||||
#merge give preference to main bindings over plugin
|
||||
plugin_keyb_act = keybindutil.get_all_act_to_keys()
|
||||
keybindings = {**plugin_keyb_act, **keybindings}
|
||||
|
||||
duplicate_bindings = []
|
||||
for conf_binding, conf_accel in self.config["keybindings"].items():
|
||||
for conf_binding, conf_accel in keybindings.items():
|
||||
if conf_accel is None:
|
||||
continue
|
||||
|
||||
|
@ -1805,9 +1961,25 @@ class PrefsEditor:
|
|||
binding = liststore.get_value(liststore.get_iter(path), 0)
|
||||
accel = Gtk.accelerator_name(key, mods)
|
||||
self.config['keybindings'][binding] = accel
|
||||
|
||||
plugin_keyb_desc = keybindutil.get_act_to_desc(binding)
|
||||
if plugin_keyb_desc:
|
||||
dbg("modifying plugin binding: %s, %s, %s" %
|
||||
(plugin_keyb_desc, binding, accel))
|
||||
keybindutil.bindkey([plugin_keyb_desc, binding, accel])
|
||||
else:
|
||||
dbg("skipping: %s" % binding)
|
||||
pass
|
||||
|
||||
self.config.save()
|
||||
|
||||
def on_cellrenderer_accel_cleared(self, liststore, path):
|
||||
inpath = path #save for debugging
|
||||
trpath = Gtk.TreePath.new_from_string(inpath)
|
||||
path = str(self.treemodelfilter.convert_path_to_child_path(trpath))
|
||||
dbg("convert path with filter from: %s to: %s" %
|
||||
(inpath, path))
|
||||
|
||||
"""Handle the clearing of a keybinding accelerator"""
|
||||
celliter = liststore.get_iter_from_string(path)
|
||||
liststore.set(celliter, 2, 0, 3, 0)
|
||||
|
|
|
@ -148,7 +148,7 @@ class Searchbar(Gtk.HBox):
|
|||
|
||||
self.config.base.set_item('case_sensitive', toggled_state)
|
||||
self.config.save()
|
||||
self.do_search(self.entry) # Start a new search everytime the check box is toggled.
|
||||
self.do_search(self.entry) # Start a new search every time the check box is toggled.
|
||||
|
||||
def get_vte(self):
|
||||
"""Find our parent widget"""
|
||||
|
|
|
@ -36,15 +36,19 @@ class Terminal(Gtk.VBox):
|
|||
"""Class implementing the VTE widget and its wrappings"""
|
||||
|
||||
__gsignals__ = {
|
||||
'pre-close-term': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'close-term': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'title-change': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_STRING,)),
|
||||
'insert-term-name': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'enumerate': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_INT,)),
|
||||
'group-tab': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'group-tab-toggle': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'ungroup-tab': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'ungroup-all': (GObject.SignalFlags.RUN_LAST, None, ()),
|
||||
'split-auto': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_STRING,)),
|
||||
'split-horiz': (GObject.SignalFlags.RUN_LAST, None,
|
||||
(GObject.TYPE_STRING,)),
|
||||
'split-vert': (GObject.SignalFlags.RUN_LAST, None,
|
||||
|
@ -108,6 +112,7 @@ class Terminal(Gtk.VBox):
|
|||
fgcolor_active = None
|
||||
fgcolor_inactive = None
|
||||
bgcolor = None
|
||||
bgcolor_inactive = None
|
||||
palette_active = None
|
||||
palette_inactive = None
|
||||
|
||||
|
@ -125,6 +130,7 @@ class Terminal(Gtk.VBox):
|
|||
|
||||
# FIXME: Surely these should happen in Terminator::register_terminal()?
|
||||
self.connect('enumerate', self.terminator.do_enumerate)
|
||||
self.connect('insert-term-name', self.terminator.do_insert_term_name)
|
||||
self.connect('focus-in', self.terminator.focus_changed)
|
||||
self.connect('focus-out', self.terminator.focus_left)
|
||||
|
||||
|
@ -149,7 +155,17 @@ class Terminal(Gtk.VBox):
|
|||
self.composite_support = True
|
||||
dbg('composite_support: %s' % self.composite_support)
|
||||
|
||||
if hasattr(self.vte, "set_enable_sixel"):
|
||||
self.vte.set_enable_sixel(True)
|
||||
|
||||
self.vte.show()
|
||||
|
||||
#force to load for new window/terminal use case loading plugin
|
||||
#and connecting signals, note the line update_url_matches also
|
||||
#calls load_plugins, but it won't reload since already loaded
|
||||
|
||||
self.load_plugins(force = True)
|
||||
|
||||
self.update_url_matches()
|
||||
|
||||
self.terminalbox = self.create_terminalbox()
|
||||
|
@ -279,6 +295,10 @@ class Terminal(Gtk.VBox):
|
|||
|
||||
return(terminalbox)
|
||||
|
||||
def load_plugins(self, force = False):
|
||||
registry = plugin.PluginRegistry()
|
||||
registry.load_plugins(force)
|
||||
|
||||
def _add_regex(self, name, re):
|
||||
match = -1
|
||||
if regex.FLAGS_PCRE2:
|
||||
|
@ -580,10 +600,14 @@ class Terminal(Gtk.VBox):
|
|||
item.connect('activate', lambda x: self.emit('enumerate', False))
|
||||
menu.append(item)
|
||||
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('Insert _padded terminal number'))
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('Insert zero _padded terminal number'))
|
||||
item.connect('activate', lambda x: self.emit('enumerate', True))
|
||||
menu.append(item)
|
||||
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('Insert terminal _name'))
|
||||
item.connect('activate', lambda x: self.emit('insert-term-name'))
|
||||
menu.append(item)
|
||||
|
||||
return(menu)
|
||||
|
||||
def set_group(self, _item, name):
|
||||
|
@ -745,6 +769,22 @@ class Terminal(Gtk.VBox):
|
|||
dbg(("fgcolor_inactive set to: RGB(%s,%s,%s)", getattr(self.fgcolor_inactive, "red"),
|
||||
getattr(self.fgcolor_inactive, "green"),
|
||||
getattr(self.fgcolor_inactive, "blue")))
|
||||
|
||||
bg_factor = self.config['inactive_bg_color_offset']
|
||||
if bg_factor > 1.0:
|
||||
bg_factor = 1.0
|
||||
self.bgcolor_inactive = self.bgcolor.copy()
|
||||
dbg(("bgcolor_inactive set to: RGB(%s,%s,%s)", getattr(self.bgcolor_inactive, "red"),
|
||||
getattr(self.bgcolor_inactive, "green"),
|
||||
getattr(self.bgcolor_inactive, "blue")))
|
||||
|
||||
for bit in ['red', 'green', 'blue']:
|
||||
setattr(self.bgcolor_inactive, bit,
|
||||
getattr(self.bgcolor_inactive, bit) * bg_factor)
|
||||
dbg(("bgcolor_inactive set to: RGB(%s,%s,%s)", getattr(self.bgcolor_inactive, "red"),
|
||||
getattr(self.bgcolor_inactive, "green"),
|
||||
getattr(self.bgcolor_inactive, "blue")))
|
||||
|
||||
colors = self.config['palette'].split(':')
|
||||
self.palette_active = []
|
||||
for color in colors:
|
||||
|
@ -780,7 +820,7 @@ class Terminal(Gtk.VBox):
|
|||
self.vte.set_colors(self.fgcolor_active, self.bgcolor,
|
||||
self.palette_active)
|
||||
else:
|
||||
self.vte.set_colors(self.fgcolor_inactive, self.bgcolor,
|
||||
self.vte.set_colors(self.fgcolor_inactive, self.bgcolor_inactive,
|
||||
self.palette_inactive)
|
||||
profiles = self.config.base.profiles
|
||||
terminal_box_style_context = self.terminalbox.get_style_context()
|
||||
|
@ -878,7 +918,13 @@ class Terminal(Gtk.VBox):
|
|||
focused=self.get_toplevel().get_focussed_terminal()
|
||||
if focused in targets: targets.remove(focused)
|
||||
if self != focused:
|
||||
if self.group == focused.group:
|
||||
if focused.group is None and self.group is None:
|
||||
# Create a new group and assign currently focused
|
||||
# terminal to this group
|
||||
new_group = self.terminator.new_random_group()
|
||||
focused.set_group(None, new_group)
|
||||
focused.titlebar.update()
|
||||
elif self.group == focused.group:
|
||||
new_group = None
|
||||
else:
|
||||
new_group = focused.group
|
||||
|
@ -1006,7 +1052,9 @@ class Terminal(Gtk.VBox):
|
|||
"""Handler for modifier + mouse wheel scroll events"""
|
||||
SMOOTH_SCROLL_UP = event.direction == Gdk.ScrollDirection.SMOOTH and event.delta_y <= 0.
|
||||
SMOOTH_SCROLL_DOWN = event.direction == Gdk.ScrollDirection.SMOOTH and event.delta_y > 0.
|
||||
if event.state & Gdk.ModifierType.CONTROL_MASK == Gdk.ModifierType.CONTROL_MASK:
|
||||
|
||||
modifiers = event.state & (Gdk.ModifierType.CONTROL_MASK | Gdk.ModifierType.SHIFT_MASK)
|
||||
if modifiers == Gdk.ModifierType.CONTROL_MASK:
|
||||
# Zoom the terminal(s) in or out if not disabled in config
|
||||
if self.config["disable_mousewheel_zoom"] is True:
|
||||
return False
|
||||
|
@ -1025,7 +1073,7 @@ class Terminal(Gtk.VBox):
|
|||
for target in targets:
|
||||
target.zoom_out()
|
||||
return True
|
||||
if event.state & Gdk.ModifierType.SHIFT_MASK == Gdk.ModifierType.SHIFT_MASK:
|
||||
elif modifiers == Gdk.ModifierType.SHIFT_MASK:
|
||||
# Shift + mouse wheel up/down
|
||||
if event.direction == Gdk.ScrollDirection.UP or SMOOTH_SCROLL_UP:
|
||||
self.scroll_by_page(-1)
|
||||
|
@ -1042,6 +1090,9 @@ class Terminal(Gtk.VBox):
|
|||
menu = TerminalPopupMenu(self)
|
||||
menu.show(widget, event)
|
||||
|
||||
def do_readonly_toggle(self):
|
||||
self.vte.props.input_enabled = not self.vte.props.input_enabled
|
||||
|
||||
def do_scrollbar_toggle(self):
|
||||
"""Show or hide the terminal scrollbar"""
|
||||
self.toggle_widget_visibility(self.scrollbar)
|
||||
|
@ -1111,7 +1162,7 @@ class Terminal(Gtk.VBox):
|
|||
connec = widget.connect_after('draw', self.on_draw)
|
||||
widget.queue_draw_area(0, 0, alloc.width, alloc.height)
|
||||
widget.get_window().process_updates(True)
|
||||
# finaly reset the values
|
||||
# finally reset the values
|
||||
widget.disconnect(connec)
|
||||
widget._draw_data = None
|
||||
|
||||
|
@ -1121,17 +1172,52 @@ class Terminal(Gtk.VBox):
|
|||
|
||||
# save cairo context
|
||||
cr.save()
|
||||
|
||||
# draw background image
|
||||
image_mode = self.config['background_image_mode']
|
||||
image_align_horiz = self.config['background_image_align_horiz']
|
||||
image_align_vert = self.config['background_image_align_vert']
|
||||
|
||||
rect = self.vte.get_allocation()
|
||||
xratio = float(rect.width) / float(self.background_image.get_width())
|
||||
yratio = float(rect.height) / float(self.background_image.get_height())
|
||||
if image_mode == 'stretch_and_fill':
|
||||
# keep stretched ratios
|
||||
xratio = xratio
|
||||
yratio = yratio
|
||||
elif image_mode == 'scale_and_fit':
|
||||
ratio = min(xratio, yratio)
|
||||
xratio = yratio = ratio
|
||||
elif image_mode == 'scale_and_crop':
|
||||
ratio = max(xratio, yratio)
|
||||
xratio = yratio = ratio
|
||||
else:
|
||||
xratio = yratio = 1
|
||||
cr.scale(xratio, yratio)
|
||||
cr.set_source_surface(self.background_image)
|
||||
|
||||
xoffset = 0
|
||||
yoffset = 0
|
||||
if image_align_horiz == 'center':
|
||||
xoffset = (rect.width / xratio - self.background_image.get_width()) / 2
|
||||
elif image_align_horiz == 'right':
|
||||
xoffset = rect.width / xratio - self.background_image.get_width()
|
||||
|
||||
if image_align_vert == 'middle':
|
||||
yoffset = (rect.height / yratio - self.background_image.get_height()) / 2
|
||||
elif image_align_vert == 'bottom':
|
||||
yoffset = rect.height / yratio - self.background_image.get_height()
|
||||
|
||||
cr.set_source_surface(self.background_image, xoffset, yoffset)
|
||||
cr.get_source().set_filter(cairo.Filter.FAST)
|
||||
if image_mode == 'tiling':
|
||||
cr.get_source().set_extend(cairo.Extend.REPEAT)
|
||||
|
||||
cr.paint()
|
||||
|
||||
# draw transparent monochrome layer
|
||||
Gdk.cairo_set_source_rgba(cr, self.bgcolor)
|
||||
cr.paint()
|
||||
|
||||
# restore cairo context
|
||||
cr.restore()
|
||||
|
||||
|
@ -1228,7 +1314,7 @@ class Terminal(Gtk.VBox):
|
|||
def get_location(self, term, x, y):
|
||||
"""Get our location within the terminal"""
|
||||
pos = ''
|
||||
# get the diagonales function for the receiving widget
|
||||
# get the diagonals function for the receiving widget
|
||||
term_alloc = term.get_allocation()
|
||||
coef1 = float(term_alloc.height)/float(term_alloc.width)
|
||||
coef2 = -float(term_alloc.height)/float(term_alloc.width)
|
||||
|
@ -1259,7 +1345,7 @@ class Terminal(Gtk.VBox):
|
|||
self.vte.grab_focus()
|
||||
|
||||
def ensure_visible_and_focussed(self):
|
||||
"""Make sure that we're visible and focussed"""
|
||||
"""Make sure that we're visible and focused"""
|
||||
window = self.get_toplevel()
|
||||
try:
|
||||
topchild = window.get_children()[0]
|
||||
|
@ -1300,7 +1386,7 @@ class Terminal(Gtk.VBox):
|
|||
|
||||
def on_vte_focus_out(self, _widget, _event):
|
||||
"""Inform other parts of the application when focus is lost"""
|
||||
self.vte.set_colors(self.fgcolor_inactive, self.bgcolor,
|
||||
self.vte.set_colors(self.fgcolor_inactive, self.bgcolor_inactive,
|
||||
self.palette_inactive)
|
||||
self.set_cursor_color()
|
||||
self.emit('focus-out')
|
||||
|
@ -1372,7 +1458,7 @@ class Terminal(Gtk.VBox):
|
|||
def zoom_scale(self, widget, allocation, old_data):
|
||||
"""Scale our font correctly based on how big we are not vs before"""
|
||||
self.cnxids.remove_signal(self, 'size-allocate')
|
||||
# FIXME: Is a zoom signal actualy used anywhere?
|
||||
# FIXME: Is a zoom signal actually used anywhere?
|
||||
self.cnxids.remove_signal(self, 'zoom')
|
||||
|
||||
new_columns = self.vte.get_column_count()
|
||||
|
@ -1505,14 +1591,37 @@ class Terminal(Gtk.VBox):
|
|||
|
||||
dbg('Forking shell: "%s" with args: %s' % (shell, args))
|
||||
args.insert(0, shell)
|
||||
result, self.pid = self.vte.spawn_sync(Vte.PtyFlags.DEFAULT,
|
||||
self.cwd,
|
||||
args,
|
||||
envv,
|
||||
GLib.SpawnFlags.FILE_AND_ARGV_ZERO,
|
||||
None,
|
||||
None,
|
||||
None)
|
||||
|
||||
if util.is_flatpak():
|
||||
dbg('Flatpak detected')
|
||||
args = util.get_flatpak_args(args, envv, self.cwd)
|
||||
dbg('Forking shell: "%s" with args: %s via flatpak-spawn' % (shell, args))
|
||||
|
||||
self.pid = self.vte.spawn_async(
|
||||
Vte.PtyFlags.NO_CTTY,
|
||||
self.cwd,
|
||||
args,
|
||||
envv,
|
||||
0,
|
||||
None,
|
||||
None,
|
||||
-1,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
)
|
||||
else:
|
||||
result, self.pid = self.vte.spawn_sync(
|
||||
Vte.PtyFlags.DEFAULT,
|
||||
self.cwd,
|
||||
args,
|
||||
envv,
|
||||
GLib.SpawnFlags.FILE_AND_ARGV_ZERO,
|
||||
None,
|
||||
None,
|
||||
None
|
||||
)
|
||||
|
||||
self.command = shell
|
||||
|
||||
self.titlebar.update()
|
||||
|
@ -1638,7 +1747,7 @@ class Terminal(Gtk.VBox):
|
|||
self.vte.set_font(fontdesc)
|
||||
|
||||
def get_cursor_position(self):
|
||||
"""Return the co-ordinates of our cursor"""
|
||||
"""Return the coordinates of our cursor"""
|
||||
# FIXME: THIS METHOD IS DEPRECATED AND UNUSED
|
||||
col, row = self.vte.get_cursor_position()
|
||||
width = self.vte.get_char_width()
|
||||
|
@ -1679,7 +1788,7 @@ class Terminal(Gtk.VBox):
|
|||
connec = widget.connect_after('draw', self.on_draw)
|
||||
widget.queue_draw_area(0, 0, alloc.width, alloc.height)
|
||||
widget.get_window().process_updates(True)
|
||||
# finaly reset the values
|
||||
# finally reset the values
|
||||
widget.disconnect(connec)
|
||||
widget._draw_data = None
|
||||
|
||||
|
@ -1692,7 +1801,7 @@ class Terminal(Gtk.VBox):
|
|||
widget.get_window().process_updates(True)
|
||||
return False
|
||||
|
||||
def describe_layout(self, count, parent, global_layout, child_order):
|
||||
def describe_layout(self, count, parent, global_layout, child_order, save_cwd = False):
|
||||
"""Describe our layout"""
|
||||
layout = {'type': 'Terminal', 'parent': parent, 'order': child_order}
|
||||
if self.group:
|
||||
|
@ -1705,6 +1814,8 @@ class Terminal(Gtk.VBox):
|
|||
if title:
|
||||
layout['title'] = title
|
||||
layout['uuid'] = self.uuid
|
||||
if save_cwd:
|
||||
layout['directory'] = self.get_cwd()
|
||||
name = 'terminal%d' % count
|
||||
count = count + 1
|
||||
global_layout[name] = layout
|
||||
|
@ -1825,6 +1936,9 @@ class Terminal(Gtk.VBox):
|
|||
def key_go_right(self):
|
||||
self.emit('navigate', 'right')
|
||||
|
||||
def key_split_auto(self):
|
||||
self.emit('split-auto', self.get_cwd())
|
||||
|
||||
def key_split_horiz(self):
|
||||
self.emit('split-horiz', self.get_cwd())
|
||||
|
||||
|
@ -2038,6 +2152,11 @@ class Terminal(Gtk.VBox):
|
|||
def key_preferences(self):
|
||||
PrefsEditor(self)
|
||||
|
||||
def key_preferences_keybindings(self):
|
||||
#need to have this as a config may be preferences_default
|
||||
#have a mapping rather than hardcoded page
|
||||
PrefsEditor(self, cur_page = 3)
|
||||
|
||||
def key_help(self):
|
||||
manual_index_page = manual_lookup()
|
||||
if manual_index_page:
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
"""terminal_popup_menu.py - classes necessary to provide a terminal context
|
||||
menu"""
|
||||
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gtk, Gdk
|
||||
|
||||
from .version import APP_NAME
|
||||
from .translation import _
|
||||
|
@ -19,12 +19,70 @@ class TerminalPopupMenu(object):
|
|||
terminal = None
|
||||
terminator = None
|
||||
config = None
|
||||
accelgrp = None
|
||||
|
||||
def __init__(self, terminal):
|
||||
"""Class initialiser"""
|
||||
self.terminal = terminal
|
||||
self.terminator = Terminator()
|
||||
self.config = Config()
|
||||
self.accelgrp = Gtk.AccelGroup()
|
||||
|
||||
def get_menu_item_mask(self, maskstr):
|
||||
mask = 0
|
||||
if maskstr is None:
|
||||
return mask
|
||||
maskstr = maskstr.lower()
|
||||
if maskstr.find('<Shift>'.lower()) >= 0:
|
||||
mask = mask | Gdk.ModifierType.SHIFT_MASK
|
||||
dbg("adding mask <Shift> %s" % mask)
|
||||
|
||||
ctrl = (maskstr.find('<Control>'.lower()) >= 0 or
|
||||
maskstr.find('<Primary>'.lower()) >= 0)
|
||||
if ctrl:
|
||||
mask = mask | Gdk.ModifierType.CONTROL_MASK
|
||||
dbg("adding mask <Control> %s" % mask)
|
||||
|
||||
if maskstr.find('<Alt>'.lower()) >= 0:
|
||||
mask = mask | Gdk.ModifierType.MOD1_MASK
|
||||
dbg("adding mask <Alt> %s" % mask)
|
||||
|
||||
mask = Gdk.ModifierType(mask)
|
||||
dbg("menu_item_mask :%d" % mask)
|
||||
return mask
|
||||
|
||||
def menu_item(self, menutype, actstr, menustr):
|
||||
act = self.config.base.get_item('keybindings', actstr)
|
||||
maskstr = act[actstr] if actstr in act else ""
|
||||
mask = self.get_menu_item_mask(maskstr)
|
||||
|
||||
accelchar = ""
|
||||
pos = menustr.lower().find("_")
|
||||
if (pos >= 0 and pos+1 < len(menustr)):
|
||||
accelchar = menustr.lower()[pos+1]
|
||||
|
||||
#this may require tweak. what about shortcut function keys ?
|
||||
if maskstr:
|
||||
mpos = maskstr.rfind(">")
|
||||
#can't have a char at 0 position as <> is len 2
|
||||
if mpos >= 0 and mpos+1 < len(maskstr):
|
||||
configaccelchar = maskstr[mpos+1:]
|
||||
#ensure to take only 1 char else ignore
|
||||
if len(configaccelchar) == 1:
|
||||
dbg("found accelchar in config:%s override:%s"
|
||||
% (configaccelchar, accelchar))
|
||||
accelchar = configaccelchar
|
||||
|
||||
dbg("action from config:%s for item:%s with shortcut accelchar:(%s)"
|
||||
% (maskstr, menustr, accelchar))
|
||||
item = menutype.new_with_mnemonic(_(menustr))
|
||||
if mask:
|
||||
item.add_accelerator("activate",
|
||||
self.accelgrp,
|
||||
Gdk.keyval_from_name(accelchar),
|
||||
mask,
|
||||
Gtk.AccelFlags.VISIBLE)
|
||||
return item
|
||||
|
||||
def show(self, widget, event=None):
|
||||
"""Display the context menu"""
|
||||
|
@ -98,23 +156,40 @@ class TerminalPopupMenu(object):
|
|||
|
||||
menu.append(Gtk.SeparatorMenuItem())
|
||||
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('_Copy'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'copy', '_Copy')
|
||||
item.connect('activate', lambda x: terminal.vte.copy_clipboard())
|
||||
item.set_sensitive(terminal.vte.get_has_selection())
|
||||
|
||||
menu.append(item)
|
||||
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('_Paste'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'paste', '_Paste')
|
||||
item.connect('activate', lambda x: terminal.paste_clipboard())
|
||||
menu.append(item)
|
||||
|
||||
menu.append(Gtk.SeparatorMenuItem())
|
||||
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('Set W_indow Title'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'edit_window_title',
|
||||
'Set _Window Title')
|
||||
item.connect('activate', lambda x: terminal.key_edit_window_title())
|
||||
menu.append(item)
|
||||
|
||||
if not terminal.is_zoomed():
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('Split H_orizontally'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'split_auto',
|
||||
'Split _Auto')
|
||||
"""
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name(APP_NAME + '_auto', Gtk.IconSize.MENU)
|
||||
item.set_image(image)
|
||||
if hasattr(item, 'set_always_show_image'):
|
||||
item.set_always_show_image(True)
|
||||
"""
|
||||
item.connect('activate', lambda x: terminal.emit('split-auto',
|
||||
self.terminal.get_cwd()))
|
||||
menu.append(item)
|
||||
|
||||
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'split_horiz',
|
||||
'Split H_orizontally')
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name(APP_NAME + '_horiz', Gtk.IconSize.MENU)
|
||||
item.set_image(image)
|
||||
|
@ -124,7 +199,8 @@ class TerminalPopupMenu(object):
|
|||
self.terminal.get_cwd()))
|
||||
menu.append(item)
|
||||
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('Split V_ertically'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'split_vert',
|
||||
'Split V_ertically')
|
||||
image = Gtk.Image()
|
||||
image.set_from_icon_name(APP_NAME + '_vert', Gtk.IconSize.MENU)
|
||||
item.set_image(image)
|
||||
|
@ -134,7 +210,7 @@ class TerminalPopupMenu(object):
|
|||
self.terminal.get_cwd()))
|
||||
menu.append(item)
|
||||
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('Open _Tab'))
|
||||
item = self.menu_item(Gtk.MenuItem, 'new_tab', 'Open _Tab')
|
||||
item.connect('activate', lambda x: terminal.emit('tab-new', False,
|
||||
terminal))
|
||||
menu.append(item)
|
||||
|
@ -147,7 +223,7 @@ class TerminalPopupMenu(object):
|
|||
|
||||
menu.append(Gtk.SeparatorMenuItem())
|
||||
|
||||
item = Gtk.ImageMenuItem.new_with_mnemonic(_('_Close'))
|
||||
item = self.menu_item(Gtk.ImageMenuItem, 'close_term', '_Close')
|
||||
item.connect('activate', lambda x: terminal.close())
|
||||
menu.append(item)
|
||||
|
||||
|
@ -188,13 +264,20 @@ class TerminalPopupMenu(object):
|
|||
menu.append(item)
|
||||
menu.append(Gtk.SeparatorMenuItem())
|
||||
|
||||
item = Gtk.CheckMenuItem.new_with_mnemonic(_('Show _scrollbar'))
|
||||
item = self.menu_item(Gtk.CheckMenuItem, 'toggle_readonly', '_Read only')
|
||||
item.set_active(not(terminal.vte.get_input_enabled()))
|
||||
item.connect('toggled', lambda x: terminal.do_readonly_toggle())
|
||||
menu.append(item)
|
||||
|
||||
item = self.menu_item(Gtk.CheckMenuItem, 'toggle_scrollbar',
|
||||
'Show _scrollbar')
|
||||
item.set_active(terminal.scrollbar.get_property('visible'))
|
||||
item.connect('toggled', lambda x: terminal.do_scrollbar_toggle())
|
||||
menu.append(item)
|
||||
|
||||
if hasattr(Gtk, 'Builder'): # VERIFY FOR GTK3: is this ever false?
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('_Preferences'))
|
||||
item = self.menu_item(Gtk.MenuItem, 'preferences',
|
||||
'_Preferences')
|
||||
item.connect('activate', lambda x: PrefsEditor(self.terminal))
|
||||
menu.append(item)
|
||||
|
||||
|
@ -245,12 +328,12 @@ class TerminalPopupMenu(object):
|
|||
|
||||
def add_layout_launcher(self, menu):
|
||||
"""Add the layout list to the menu"""
|
||||
item = Gtk.MenuItem.new_with_mnemonic(_('_Layouts...'))
|
||||
item = self.menu_item(Gtk.MenuItem, 'layout_launcher', '_Layouts...')
|
||||
menu.append(item)
|
||||
submenu = Gtk.Menu()
|
||||
item.set_submenu(submenu)
|
||||
layouts = self.config.list_layouts()
|
||||
for layout in layouts:
|
||||
item = Gtk.MenuItem(layout)
|
||||
item.connect('activate', lambda x: spawn_new_terminator(self.terminator.origcwd, ['-u', '-l', layout]))
|
||||
item.connect('activate', lambda x: spawn_new_terminator(self.terminator.origcwd, ['-u', '-l', x.get_label()]))
|
||||
submenu.append(item)
|
||||
|
|
|
@ -8,6 +8,8 @@ import gi
|
|||
gi.require_version('Vte', '2.91')
|
||||
from gi.repository import Gtk, Gdk, Vte
|
||||
from gi.repository.GLib import GError
|
||||
import itertools
|
||||
import random
|
||||
|
||||
from . import borg
|
||||
from .borg import Borg
|
||||
|
@ -16,6 +18,7 @@ from .keybindings import Keybindings
|
|||
from .util import dbg, err, enumerate_descendants
|
||||
from .factory import Factory
|
||||
from .version import APP_NAME, APP_VERSION
|
||||
from .translation import _
|
||||
|
||||
try:
|
||||
from gi.repository import GdkX11
|
||||
|
@ -54,7 +57,6 @@ class Terminator(Borg):
|
|||
dbus_path = None
|
||||
dbus_name = None
|
||||
debug_address = None
|
||||
ibus_running = None
|
||||
|
||||
doing_layout = None
|
||||
layoutname = None
|
||||
|
@ -184,6 +186,13 @@ class Terminator(Borg):
|
|||
for terminal in self.terminals:
|
||||
dbg('checking: %s (%s)' % (terminal.uuid.urn, terminal))
|
||||
if terminal.uuid.urn == uuid:
|
||||
if terminal.get_toplevel().is_child_notebook():
|
||||
topchild = terminal.get_toplevel().get_child()
|
||||
current_page = topchild.get_current_page()
|
||||
#we need to emit signal for plugin and retain same page
|
||||
dbg("current_page for tab-change-signal:%s" % current_page)
|
||||
terminal.emit('tab-change', current_page)
|
||||
|
||||
return terminal
|
||||
return None
|
||||
|
||||
|
@ -208,6 +217,7 @@ class Terminator(Borg):
|
|||
window.add(terminal)
|
||||
window.show(True)
|
||||
terminal.spawn_child()
|
||||
terminal.emit('tab-change', 0)
|
||||
|
||||
return(window, terminal)
|
||||
|
||||
|
@ -310,6 +320,7 @@ class Terminator(Borg):
|
|||
"""Layout operations have finished, record that fact"""
|
||||
self.doing_layout = False
|
||||
maker = Factory()
|
||||
t = 0
|
||||
|
||||
window_last_active_term_mapping = {}
|
||||
for window in self.windows:
|
||||
|
@ -325,7 +336,7 @@ class Terminator(Borg):
|
|||
|
||||
for window in self.windows:
|
||||
if not window.is_child_notebook():
|
||||
# For windows without a notebook ensure Terminal is visible and focussed
|
||||
# For windows without a notebook ensure Terminal is visible and focused
|
||||
if window_last_active_term_mapping[window]:
|
||||
term = self.find_terminal_by_uuid(window_last_active_term_mapping[window].urn)
|
||||
term.ensure_visible_and_focussed()
|
||||
|
@ -347,22 +358,11 @@ class Terminator(Borg):
|
|||
t = 0
|
||||
window.get_window().focus(t)
|
||||
|
||||
# Awful workaround to be sure that the last focused window is actually the one focused.
|
||||
# Don't ask, don't tell policy on this. Even this is not 100%
|
||||
# Going by the docs, this should be all that's needed to ensure that the
|
||||
# last_active_window is focussed.
|
||||
if self.last_active_window:
|
||||
window = self.find_window_by_uuid(self.last_active_window.urn)
|
||||
count = 0
|
||||
while count < 1000 and Gtk.events_pending():
|
||||
count += 1
|
||||
Gtk.main_iteration_do(False)
|
||||
window.show()
|
||||
window.grab_focus()
|
||||
try:
|
||||
t = GdkX11.x11_get_server_time(window.get_window())
|
||||
except (NameError,TypeError, AttributeError):
|
||||
t = 0
|
||||
window.get_window().focus(t)
|
||||
|
||||
window.present_with_time(t)
|
||||
self.prelayout_windows = None
|
||||
|
||||
def on_gtk_theme_name_notify(self, settings, prop):
|
||||
|
@ -585,6 +585,16 @@ class Terminator(Borg):
|
|||
idx = terminals.index(term)
|
||||
term.feed(numstr.encode() % (idx + 1))
|
||||
|
||||
def do_insert_term_name(self, widget):
|
||||
terminals = []
|
||||
for window in self.windows:
|
||||
containers, win_terminals = enumerate_descendants(window)
|
||||
terminals.extend(win_terminals)
|
||||
|
||||
for term in self.get_target_terms(widget):
|
||||
name = term.titlebar.get_custom_string() or term.get_window_title()
|
||||
term.feed(name.encode())
|
||||
|
||||
def get_sibling_terms(self, widget):
|
||||
termset = []
|
||||
for term in self.terminals:
|
||||
|
@ -617,13 +627,13 @@ class Terminator(Borg):
|
|||
def focus_left(self, widget):
|
||||
self.last_focused_term=widget
|
||||
|
||||
def describe_layout(self):
|
||||
def describe_layout(self, save_cwd = False):
|
||||
"""Describe our current layout"""
|
||||
layout = {}
|
||||
count = 0
|
||||
for window in self.windows:
|
||||
parent = ''
|
||||
count = window.describe_layout(count, parent, layout, 0)
|
||||
count = window.describe_layout(count, parent, layout, 0, save_cwd)
|
||||
|
||||
return(layout)
|
||||
|
||||
|
@ -638,4 +648,18 @@ class Terminator(Borg):
|
|||
def zoom_orig_all(self):
|
||||
for term in self.terminals:
|
||||
term.zoom_orig()
|
||||
|
||||
def new_random_group(self):
|
||||
defaultmembers=[_('Alpha'),_('Beta'),_('Gamma'),_('Delta'),_('Epsilon'),_('Zeta'),_('Eta'),
|
||||
_('Theta'),_('Iota'),_('Kappa'),_('Lambda'),_('Mu'),_('Nu'),_('Xi'),
|
||||
_('Omicron'),_('Pi'),_('Rho'),_('Sigma'),_('Tau'),_('Upsilon'),_('Phi'),
|
||||
_('Chi'),_('Psi'),_('Omega')]
|
||||
currentgroups=set(self.groups)
|
||||
for i in range(1,4):
|
||||
defaultgroups=set(map(''.join, list(itertools.product(defaultmembers,repeat=i))))
|
||||
freegroups = list(defaultgroups-currentgroups)
|
||||
if freegroups:
|
||||
return random.choice(freegroups)
|
||||
return ''
|
||||
|
||||
# vim: set expandtab ts=4 sw=4:
|
||||
|
|
|
@ -5,8 +5,6 @@
|
|||
from gi.repository import Gtk, Gdk
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Pango
|
||||
import random
|
||||
import itertools
|
||||
|
||||
from .version import APP_NAME
|
||||
from .util import dbg
|
||||
|
@ -255,19 +253,7 @@ class Titlebar(Gtk.EventBox):
|
|||
if self.terminal.group:
|
||||
self.groupentry.set_text(self.terminal.group)
|
||||
else:
|
||||
defaultmembers=[_('Alpha'),_('Beta'),_('Gamma'),_('Delta'),_('Epsilon'),_('Zeta'),_('Eta'),
|
||||
_('Theta'),_('Iota'),_('Kappa'),_('Lambda'),_('Mu'),_('Nu'),_('Xi'),
|
||||
_('Omicron'),_('Pi'),_('Rho'),_('Sigma'),_('Tau'),_('Upsilon'),_('Phi'),
|
||||
_('Chi'),_('Psi'),_('Omega')]
|
||||
currentgroups=set(self.terminator.groups)
|
||||
for i in range(1,4):
|
||||
defaultgroups=set(map(''.join, list(itertools.product(defaultmembers,repeat=i))))
|
||||
freegroups = list(defaultgroups-currentgroups)
|
||||
if freegroups:
|
||||
self.groupentry.set_text(random.choice(freegroups))
|
||||
break
|
||||
else:
|
||||
self.groupentry.set_text('')
|
||||
self.groupentry.set_text(self.terminator.new_random_group())
|
||||
self.groupentry.show()
|
||||
self.grouplabel.hide()
|
||||
self.groupentry.grab_focus()
|
||||
|
|
|
@ -43,6 +43,9 @@ DEBUGCLASSES = []
|
|||
# list of methods to show debugging for. empty list means show all methods
|
||||
DEBUGMETHODS = []
|
||||
|
||||
def is_flatpak():
|
||||
return os.path.exists("/.flatpak-info")
|
||||
|
||||
def dbg(log = ""):
|
||||
"""Print a message if debugging is enabled"""
|
||||
if DEBUG:
|
||||
|
@ -144,6 +147,13 @@ def path_lookup(command):
|
|||
|
||||
def shell_lookup():
|
||||
"""Find an appropriate shell for the user"""
|
||||
if is_flatpak():
|
||||
getent = subprocess.check_output([
|
||||
'flatpak-spawn', '--host', 'getent', 'passwd',
|
||||
pwd.getpwuid(os.getuid())[0]
|
||||
]).decode(encoding='UTF-8').rstrip('\n')
|
||||
shell = getent.split(':')[6]
|
||||
return shell
|
||||
try:
|
||||
usershell = pwd.getpwuid(os.getuid())[6]
|
||||
except KeyError:
|
||||
|
@ -186,7 +196,7 @@ def widget_pixbuf(widget, maxsize=None):
|
|||
Gdk.cairo_set_source_window(cairo_context, window, 0, 0)
|
||||
cairo_context.paint()
|
||||
|
||||
scaledpixbuf = Gdk.pixbuf_get_from_surface(preview_surface, 0, 0, preview_width, preview_height);
|
||||
scaledpixbuf = Gdk.pixbuf_get_from_surface(preview_surface, 0, 0, preview_width, preview_height)
|
||||
|
||||
return(scaledpixbuf)
|
||||
|
||||
|
@ -392,5 +402,24 @@ def update_config_to_cell_height(filename):
|
|||
dbg('Updted ‘line_height’ to ‘cell_height’.')
|
||||
|
||||
except Exception as ex:
|
||||
err('Unable to open ‘%s’ for reading and/or writting.\n(%s)'
|
||||
err('Unable to open ‘%s’ for reading and/or writing.\n(%s)'
|
||||
% (filename, ex))
|
||||
|
||||
def get_flatpak_args(args, envv, cwd):
|
||||
"""Construct args to be executed via flatpak-spawn"""
|
||||
flatpak_args = None
|
||||
env_args = ['--env={}'.format(env) for env in envv]
|
||||
flatpak_spawn = [
|
||||
"flatpak-spawn", "--host", "--watch-bus", "--forward-fd=1",
|
||||
"--forward-fd=2", "--directory={}".format(cwd)
|
||||
]
|
||||
# Detect and remove duplicate shell in args
|
||||
# to work around vte.spawn_sync() requirement.
|
||||
if len(set([args[0], args[1]])) == 1:
|
||||
del args[0]
|
||||
|
||||
flatpak_args = flatpak_spawn + env_args + args
|
||||
|
||||
dbg('returned flatpak args: %s' % flatpak_args)
|
||||
|
||||
return flatpak_args
|
||||
|
|
|
@ -20,4 +20,4 @@ TerminatorVersion supplies our version number.
|
|||
"""
|
||||
|
||||
APP_NAME = 'terminator'
|
||||
APP_VERSION = '2.1.1'
|
||||
APP_VERSION = '2.1.3'
|
||||
|
|
|
@ -103,6 +103,7 @@ class Window(Container, Gtk.Window):
|
|||
|
||||
self.apply_icon(icon_to_apply)
|
||||
self.pending_set_rough_geometry_hint = False
|
||||
self.hidefunc = self.hide
|
||||
|
||||
def do_get_property(self, prop):
|
||||
"""Handle gobject getting a property"""
|
||||
|
@ -300,6 +301,14 @@ class Window(Container, Gtk.Window):
|
|||
"""Handle window destruction"""
|
||||
dbg('destroying self')
|
||||
for terminal in self.get_terminals():
|
||||
# Only for race condition, while closing a window with a single
|
||||
# terminal. Could be useful in other scenarios.
|
||||
# We can't get [[terminal1]] section using
|
||||
# terminal.describe_layout() while terminal is closing.
|
||||
# Also while receiving event on Plugins Side, if connected to term
|
||||
# we can't use close-term as it starts to close terminal, so we
|
||||
# send a pre-close-term before Example: Plugin SaveLastSessionLayout
|
||||
terminal.emit('pre-close-term')
|
||||
terminal.close()
|
||||
self.cnxids.remove_all()
|
||||
self.terminator.deregister_window(self)
|
||||
|
@ -414,6 +423,7 @@ class Window(Container, Gtk.Window):
|
|||
if maker.isinstance(widget, 'Terminal'):
|
||||
signals = {'close-term': self.closeterm,
|
||||
'title-change': self.title.set_title,
|
||||
'split-auto': self.split_auto,
|
||||
'split-horiz': self.split_horiz,
|
||||
'split-vert': self.split_vert,
|
||||
'resize-term': self.resizeterm,
|
||||
|
@ -529,6 +539,7 @@ class Window(Container, Gtk.Window):
|
|||
|
||||
def zoom(self, widget, font_scale=True):
|
||||
"""Zoom a terminal widget"""
|
||||
maker = Factory()
|
||||
children = self.get_children()
|
||||
|
||||
if widget in children:
|
||||
|
@ -541,8 +552,13 @@ class Window(Container, Gtk.Window):
|
|||
self.zoom_data['old_child'] = children[0]
|
||||
self.zoom_data['font_scale'] = font_scale
|
||||
|
||||
old_parent = self.zoom_data['old_parent']
|
||||
if maker.isinstance(old_parent, 'Notebook'):
|
||||
self.zoom_data['notebook_tabnum'] = old_parent.page_num(widget)
|
||||
self.zoom_data['notebook_label'] = old_parent.get_tab_label(widget).get_label()
|
||||
|
||||
self.remove(self.zoom_data['old_child'])
|
||||
self.zoom_data['old_parent'].remove(widget)
|
||||
old_parent.remove(widget)
|
||||
self.add(widget)
|
||||
self.set_property('term_zoomed', True)
|
||||
|
||||
|
@ -554,6 +570,8 @@ class Window(Container, Gtk.Window):
|
|||
|
||||
def unzoom(self, widget=None):
|
||||
"""Restore normal terminal layout"""
|
||||
maker = Factory()
|
||||
|
||||
if not self.is_zoomed():
|
||||
# We're not zoomed anyway
|
||||
dbg('not zoomed, no-op')
|
||||
|
@ -565,7 +583,13 @@ class Window(Container, Gtk.Window):
|
|||
|
||||
self.remove(widget)
|
||||
self.add(self.zoom_data['old_child'])
|
||||
self.zoom_data['old_parent'].add(widget)
|
||||
if maker.isinstance(self.zoom_data['old_parent'], 'Notebook'):
|
||||
self.zoom_data['old_parent'].newtab(widget=widget, metadata={
|
||||
'tabnum': self.zoom_data['notebook_tabnum'],
|
||||
'label': self.zoom_data['notebook_label']
|
||||
})
|
||||
else:
|
||||
self.zoom_data['old_parent'].add(widget)
|
||||
widget.grab_focus()
|
||||
self.zoom_data = None
|
||||
self.set_property('term_zoomed', False)
|
||||
|
@ -583,8 +607,17 @@ class Window(Container, Gtk.Window):
|
|||
|
||||
# If our child is a Notebook, reset to work from its visible child
|
||||
if maker.isinstance(child, 'Notebook'):
|
||||
pagenum = child.get_current_page()
|
||||
child = child.get_nth_page(pagenum)
|
||||
notebook = child
|
||||
|
||||
pagenum = notebook.get_current_page()
|
||||
child = notebook.get_nth_page(pagenum)
|
||||
|
||||
metadata = {
|
||||
'tabnum': pagenum,
|
||||
'label': notebook.get_tab_label(child).get_label()
|
||||
}
|
||||
else:
|
||||
metadata = None
|
||||
|
||||
if maker.isinstance(child, 'Paned'):
|
||||
parent = child.get_parent()
|
||||
|
@ -592,7 +625,7 @@ class Window(Container, Gtk.Window):
|
|||
# otherwise _sometimes_ we get incorrect values.
|
||||
alloc = child.get_allocation()
|
||||
parent.remove(child)
|
||||
child.rotate_recursive(parent, alloc.width, alloc.height, clockwise)
|
||||
child.rotate_recursive(parent, alloc.width, alloc.height, clockwise, metadata)
|
||||
|
||||
self.show_all()
|
||||
while Gtk.events_pending():
|
||||
|
@ -888,9 +921,9 @@ class Window(Container, Gtk.Window):
|
|||
allocation = terminal.get_allocation()
|
||||
possibles = []
|
||||
|
||||
# Get the co-ordinate of the appropriate edge for this direction
|
||||
# Get the coordinate of the appropriate edge for this direction
|
||||
edge, p1, p2 = util.get_edge(allocation, direction)
|
||||
# Find all visible terminals which are, in their entirity, in the
|
||||
# Find all visible terminals which are, in their entirety, in the
|
||||
# direction we want to move, and are at least partially spanning
|
||||
# p1 to p2
|
||||
for term in layout:
|
||||
|
|
|
@ -103,7 +103,8 @@ def test_message_dialog_is_shown_on_duplicate_accel_assignment(
|
|||
)
|
||||
|
||||
widget = prefs_editor.builder.get_object("keybindingtreeview")
|
||||
liststore = widget.get_model()
|
||||
treemodelfilter = widget.get_model()
|
||||
liststore = treemodelfilter.get_model()
|
||||
|
||||
# Replace default accelerator with a test one
|
||||
prefs_editor.on_cellrenderer_accel_edited(
|
||||
|
@ -150,7 +151,8 @@ def test_duplicate_accels_not_possible_to_set(accel_params):
|
|||
)
|
||||
|
||||
widget = prefs_editor.builder.get_object("keybindingtreeview")
|
||||
liststore = widget.get_model()
|
||||
treemodelfilter = widget.get_model()
|
||||
liststore = treemodelfilter.get_model()
|
||||
binding = liststore.get_value(liststore.get_iter(path), 0)
|
||||
|
||||
all_default_accelerators = {
|
||||
|
@ -194,7 +196,7 @@ def test_duplicate_accels_not_possible_to_set(accel_params):
|
|||
(Gdk.KEY_a, Gdk.ModifierType.CONTROL_MASK),
|
||||
),
|
||||
# 3) `Ctrl+Shift+a` shouldn't change
|
||||
((Gdk.KEY_a, CONTROL_SHIFT_MOD, 38), (Gdk.KEY_a, CONTROL_SHIFT_MOD),),
|
||||
#((Gdk.KEY_a, CONTROL_SHIFT_MOD, 38), (Gdk.KEY_a, CONTROL_SHIFT_MOD),),
|
||||
# 4) `Ctrl+Shift+Alt+F1` shouldn't change
|
||||
(
|
||||
(Gdk.KEY_F1, CONTROL_ALT_SHIFT_MOD, 67),
|
||||
|
@ -231,7 +233,8 @@ def test_keybinding_edit_produce_expected_accels(
|
|||
prefs_editor = prefseditor.PrefsEditor(term=term)
|
||||
|
||||
widget = prefs_editor.builder.get_object("keybindingtreeview")
|
||||
liststore = widget.get_model()
|
||||
treemodelfilter = widget.get_model()
|
||||
liststore = treemodelfilter.get_model()
|
||||
|
||||
path = 0 # Edit the first listed key binding in `Preferences>Keybindings`
|
||||
key, mods, hardware_keycode = input_key_params
|
||||
|
@ -277,7 +280,8 @@ def test_keybinding_successfully_reassigned_after_clearing(accel_params):
|
|||
prefs_editor = prefseditor.PrefsEditor(term=term)
|
||||
|
||||
widget = prefs_editor.builder.get_object("keybindingtreeview")
|
||||
liststore = widget.get_model()
|
||||
treemodelfilter = widget.get_model()
|
||||
liststore = treemodelfilter.get_model()
|
||||
|
||||
path, key, mods, hardware_keycode = accel_params
|
||||
# Assign a key binding
|
||||
|
|
Loading…
Reference in New Issue