terminalle


Nameterminalle JSON
Version 0.13 PyPI version JSON
download
home_pagehttps://docs.will.party/terminalle
SummaryA fancy drop-down terminal emulateur.
upload_time2024-08-02 17:09:02
maintainerNone
docs_urlNone
authorWill
requires_python>=3.8
licenseMIT
keywords terminal emulator drop-down freedesktop gdk gtk gnome vte console sick
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Note: This currently only works with Wayland-based desktop environments.

A modern, minimalist, semi-transparent fullscreen "drop-down" terminal emulateur
for [freedesktop.org][1]-compatible desktops (e.g. GNOME, KDE).

It omits many features common in other terminal emulators, such as tabs,
because it's meant to be used in conjunction with a terminal multiplexer such as [tmux][2],
which has a solid, mature UI.
See also [tmux mode][3] for enhanced tmux features.

Based on [VTE][4].

## Usage

Whichever process runs `terminalle` is the "server".
Use [D-Bus][5] to control it.

```bash
# See usage info.
terminalle --help

# Start the server (in this case, as a background job).
# The window is initially hidden by default.
# This is unnecessary if you've enabled auto-start with `terminalle auto`.
terminalle &

# Toggle window visibility.
dbus-send --session --type=method_call --dest=party.will.Terminalle \
    /party/will/Terminalle party.will.Terminalle.Toggle

# Close the window and kill the server.
dbus-send --session --type=method_call --dest=party.will.Terminalle \
    /party/will/Terminalle party.will.Terminalle.Quit
```

In addition to `Toggle` and `Quit`,
there are four methods to move the terminal window between monitors:
`MoveRight`, `MoveLeft`, `MoveDown`, and `MoveUp`,
each of which moves the window to the next adjacent monitor in a particular direction.
This only works while the window is open.
See [shortcuts][6] for info on mapping keybindings to these D-Bus methods.

Use `Ctrl+Shift+C` and `Ctrl+Shift+V` to access the clipboard.

## Install

```bash
pip install terminalle

# Optional: Enable auto-start.
#           Starts the server automatically (window hidden) on login
#           and restarts automatically on toggle if closed.
terminalle auto

# Optional: Disable auto-start.
#           If enabled, it should be disabled prior to uninstalling.
terminalle no-auto
```

### Shortcuts

You almost certainly want to hook up the toggle method to a keybinding for easy access.
In GNOME, you can either do that in the GNOME Control Center (a.k.a "Settings"),
or with `gsettings`:

```bash
# WARNING: Running this verbatim will disable any existing custom keybindings.
#          It's an example.
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"

# WARNING: This will overwrite any existing custom keybinding called 'custom0'.
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name "Toggle Terminalle"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command "dbus-send --session --type=method_call --dest=party.will.Terminalle /party/will/Terminalle party.will.Terminalle.Toggle"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding "<Super>Return"
```

If you use multiple monitors,
consider hooking up shortcuts for the aforementioned movement methods as well.

[KDE can][7] configure shortcuts to call D-Bus methods directly.

## Configuration

See an [example configuration][8]. See the defaults in [`settings.py`][9].
Defaults can be selectively overridden in
`${XDG_CONFIG_HOME:-${HOME}/.config}/terminalle.yaml`.

## TMUX MODE

This is the recommended way to use Terminalle.
It enables some alternative tmux keyboard shortcuts,
which would normally be impossible to configure in `.tmux.conf`
since terminal emulators typically cannot handle these key combinations.
Generally replacing the tmux prefix with a simple `Ctrl` modifier,
it cuts the number of keystrokes in half
without requiring you to memorize new shortcuts.
If you're a tmux power-user, this will *change* things for you.
Turn it on by setting `tmux: true` in `terminalle.yaml` (see [configuration][10]).

The following shortcuts are enabled in tmux mode:

| tmux default | tmux mode | Command                                                               |
| -----------: | --------: | :-------------------------------------------------------------------- |
| `<Prefix> !` |  `Ctrl+!` | `break-pane`                                                          |
| `<Prefix> "` |  `Ctrl+"` | `split-window`                                                        |
| `<Prefix> #` |  `Ctrl+#` | `list-buffers`                                                        |
| `<Prefix> $` |  `Ctrl+$` | `command-prompt -I "#S" "rename-session -- '%%'"`                     |
| `<Prefix> %` |  `Ctrl+%` | `split-window -h`                                                     |
| `<Prefix> &` |  `Ctrl+&` | `confirm-before -p "kill-window #W? (y/n)" kill-window`               |
| `<Prefix> '` |  `Ctrl+'` | `command-prompt -T window-target -p "index" "select-window -t ':%%'"` |
| `<Prefix> (` |  `Ctrl+(` | `switch-client -p`                                                    |
| `<Prefix> )` |  `Ctrl+)` | `switch-client -n`                                                    |
| `<Prefix> ,` |  `Ctrl+,` | `command-prompt -I "#W" "rename-window -- '%%'"`                      |
| `<Prefix> :` |  `Ctrl+:` | `command-prompt`                                                      |
| `<Prefix> ;` |  `Ctrl+;` | `last-pane`                                                           |
| `<Prefix> =` |  `Ctrl+=` | `choose-buffer -Z`                                                    |
| `<Prefix> [` |  `Ctrl+[` | `copy-mode`                                                           |
| `<Prefix> ]` |  `Ctrl+]` | `paste-buffer`                                                        |
| `<Prefix> {` |  `Ctrl+{` | `swap-pane -U`                                                        |
| `<Prefix> }` |  `Ctrl+}` | `swap-pane -D`                                                        |

To reap maximum benefits, add the following to your `.tmux.conf`,
taking care of other common tmux shortcuts that do not get mangled by typical terminal emulators:

```bash
# Generally shorten `<Prefix> <X>` to `Ctrl+<X>` for various `<X>`.
# Note that some commands (e.g. `<Prefix> c` for `new-window`) would conflict with
# established control sequences (`Ctrl+c` should send `SIGINT`) if shortened.
bind -n C-f      command-prompt "find-window -Z -- '%%'"
bind -n C-n      next-window
bind -n C-o      select-pane -t ":.+"
bind -n C-p      previous-window
bind -n C-q      display-panes
bind -n C-s      choose-tree -Zs
bind -n C-t      clock-mode
bind -n C-x      confirm-before -p "kill-pane #P? (y/n)" kill-pane
bind -n C-Space  next-layout

# Resize panes using arrow keys and either `Ctrl` or `Meta`.
bind -n C-Up     resize-pane -U
bind -n M-Up     resize-pane -U 5
bind -n C-Down   resize-pane -D
bind -n M-Down   resize-pane -D 5
bind -n C-Left   resize-pane -L
bind -n M-Left   resize-pane -L 5
bind -n C-Right  resize-pane -R
bind -n M-Right  resize-pane -R 5
```

This all goes especially well with [vim-tmux-navigator][11],
which provides shortened bindings for switching seemlessly between tmux panes and Vim windows.

[1]: https://freedesktop.org
[2]: https://tmux.github.io
[3]: #tmux-mode
[4]: https://wiki.gnome.org/Apps/Terminal/VTE
[5]: https://www.freedesktop.org/wiki/Software/dbus
[6]: #shortcuts
[7]: https://docs.kde.org/trunk5/en/khotkeys/kcontrol/khotkeys/khotkeys.pdf
[8]: terminalle.yaml
[9]: terminalle/settings.py
[10]: #configuration
[11]: https://github.com/christoomey/vim-tmux-navigator

            

Raw data

            {
    "_id": null,
    "home_page": "https://docs.will.party/terminalle",
    "name": "terminalle",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "terminal, emulator, drop-down, freedesktop, gdk, gtk, gnome, vte, console, sick",
    "author": "Will",
    "author_email": "author@will.party",
    "download_url": "https://files.pythonhosted.org/packages/42/05/a330922a15dea341f2458f0a983ae91ba358b55de293bd9efbeb44bd5875/terminalle-0.13.tar.gz",
    "platform": null,
    "description": "Note: This currently only works with Wayland-based desktop environments.\n\nA modern, minimalist, semi-transparent fullscreen \"drop-down\" terminal emulateur\nfor [freedesktop.org][1]-compatible desktops (e.g. GNOME, KDE).\n\nIt omits many features common in other terminal emulators, such as tabs,\nbecause it's meant to be used in conjunction with a terminal multiplexer such as [tmux][2],\nwhich has a solid, mature UI.\nSee also [tmux mode][3] for enhanced tmux features.\n\nBased on [VTE][4].\n\n## Usage\n\nWhichever process runs `terminalle` is the \"server\".\nUse [D-Bus][5] to control it.\n\n```bash\n# See usage info.\nterminalle --help\n\n# Start the server (in this case, as a background job).\n# The window is initially hidden by default.\n# This is unnecessary if you've enabled auto-start with `terminalle auto`.\nterminalle &\n\n# Toggle window visibility.\ndbus-send --session --type=method_call --dest=party.will.Terminalle \\\n    /party/will/Terminalle party.will.Terminalle.Toggle\n\n# Close the window and kill the server.\ndbus-send --session --type=method_call --dest=party.will.Terminalle \\\n    /party/will/Terminalle party.will.Terminalle.Quit\n```\n\nIn addition to `Toggle` and `Quit`,\nthere are four methods to move the terminal window between monitors:\n`MoveRight`, `MoveLeft`, `MoveDown`, and `MoveUp`,\neach of which moves the window to the next adjacent monitor in a particular direction.\nThis only works while the window is open.\nSee [shortcuts][6] for info on mapping keybindings to these D-Bus methods.\n\nUse `Ctrl+Shift+C` and `Ctrl+Shift+V` to access the clipboard.\n\n## Install\n\n```bash\npip install terminalle\n\n# Optional: Enable auto-start.\n#           Starts the server automatically (window hidden) on login\n#           and restarts automatically on toggle if closed.\nterminalle auto\n\n# Optional: Disable auto-start.\n#           If enabled, it should be disabled prior to uninstalling.\nterminalle no-auto\n```\n\n### Shortcuts\n\nYou almost certainly want to hook up the toggle method to a keybinding for easy access.\nIn GNOME, you can either do that in the GNOME Control Center (a.k.a \"Settings\"),\nor with `gsettings`:\n\n```bash\n# WARNING: Running this verbatim will disable any existing custom keybindings.\n#          It's an example.\ngsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \"['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']\"\n\n# WARNING: This will overwrite any existing custom keybinding called 'custom0'.\ngsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ name \"Toggle Terminalle\"\ngsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ command \"dbus-send --session --type=method_call --dest=party.will.Terminalle /party/will/Terminalle party.will.Terminalle.Toggle\"\ngsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ binding \"<Super>Return\"\n```\n\nIf you use multiple monitors,\nconsider hooking up shortcuts for the aforementioned movement methods as well.\n\n[KDE can][7] configure shortcuts to call D-Bus methods directly.\n\n## Configuration\n\nSee an [example configuration][8]. See the defaults in [`settings.py`][9].\nDefaults can be selectively overridden in\n`${XDG_CONFIG_HOME:-${HOME}/.config}/terminalle.yaml`.\n\n## TMUX MODE\n\nThis is the recommended way to use Terminalle.\nIt enables some alternative tmux keyboard shortcuts,\nwhich would normally be impossible to configure in `.tmux.conf`\nsince terminal emulators typically cannot handle these key combinations.\nGenerally replacing the tmux prefix with a simple `Ctrl` modifier,\nit cuts the number of keystrokes in half\nwithout requiring you to memorize new shortcuts.\nIf you're a tmux power-user, this will *change* things for you.\nTurn it on by setting `tmux: true` in `terminalle.yaml` (see [configuration][10]).\n\nThe following shortcuts are enabled in tmux mode:\n\n| tmux default | tmux mode | Command                                                               |\n| -----------: | --------: | :-------------------------------------------------------------------- |\n| `<Prefix> !` |  `Ctrl+!` | `break-pane`                                                          |\n| `<Prefix> \"` |  `Ctrl+\"` | `split-window`                                                        |\n| `<Prefix> #` |  `Ctrl+#` | `list-buffers`                                                        |\n| `<Prefix> $` |  `Ctrl+$` | `command-prompt -I \"#S\" \"rename-session -- '%%'\"`                     |\n| `<Prefix> %` |  `Ctrl+%` | `split-window -h`                                                     |\n| `<Prefix> &` |  `Ctrl+&` | `confirm-before -p \"kill-window #W? (y/n)\" kill-window`               |\n| `<Prefix> '` |  `Ctrl+'` | `command-prompt -T window-target -p \"index\" \"select-window -t ':%%'\"` |\n| `<Prefix> (` |  `Ctrl+(` | `switch-client -p`                                                    |\n| `<Prefix> )` |  `Ctrl+)` | `switch-client -n`                                                    |\n| `<Prefix> ,` |  `Ctrl+,` | `command-prompt -I \"#W\" \"rename-window -- '%%'\"`                      |\n| `<Prefix> :` |  `Ctrl+:` | `command-prompt`                                                      |\n| `<Prefix> ;` |  `Ctrl+;` | `last-pane`                                                           |\n| `<Prefix> =` |  `Ctrl+=` | `choose-buffer -Z`                                                    |\n| `<Prefix> [` |  `Ctrl+[` | `copy-mode`                                                           |\n| `<Prefix> ]` |  `Ctrl+]` | `paste-buffer`                                                        |\n| `<Prefix> {` |  `Ctrl+{` | `swap-pane -U`                                                        |\n| `<Prefix> }` |  `Ctrl+}` | `swap-pane -D`                                                        |\n\nTo reap maximum benefits, add the following to your `.tmux.conf`,\ntaking care of other common tmux shortcuts that do not get mangled by typical terminal emulators:\n\n```bash\n# Generally shorten `<Prefix> <X>` to `Ctrl+<X>` for various `<X>`.\n# Note that some commands (e.g. `<Prefix> c` for `new-window`) would conflict with\n# established control sequences (`Ctrl+c` should send `SIGINT`) if shortened.\nbind -n C-f      command-prompt \"find-window -Z -- '%%'\"\nbind -n C-n      next-window\nbind -n C-o      select-pane -t \":.+\"\nbind -n C-p      previous-window\nbind -n C-q      display-panes\nbind -n C-s      choose-tree -Zs\nbind -n C-t      clock-mode\nbind -n C-x      confirm-before -p \"kill-pane #P? (y/n)\" kill-pane\nbind -n C-Space  next-layout\n\n# Resize panes using arrow keys and either `Ctrl` or `Meta`.\nbind -n C-Up     resize-pane -U\nbind -n M-Up     resize-pane -U 5\nbind -n C-Down   resize-pane -D\nbind -n M-Down   resize-pane -D 5\nbind -n C-Left   resize-pane -L\nbind -n M-Left   resize-pane -L 5\nbind -n C-Right  resize-pane -R\nbind -n M-Right  resize-pane -R 5\n```\n\nThis all goes especially well with [vim-tmux-navigator][11],\nwhich provides shortened bindings for switching seemlessly between tmux panes and Vim windows.\n\n[1]: https://freedesktop.org\n[2]: https://tmux.github.io\n[3]: #tmux-mode\n[4]: https://wiki.gnome.org/Apps/Terminal/VTE\n[5]: https://www.freedesktop.org/wiki/Software/dbus\n[6]: #shortcuts\n[7]: https://docs.kde.org/trunk5/en/khotkeys/kcontrol/khotkeys/khotkeys.pdf\n[8]: terminalle.yaml\n[9]: terminalle/settings.py\n[10]: #configuration\n[11]: https://github.com/christoomey/vim-tmux-navigator\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A fancy drop-down terminal emulateur.",
    "version": "0.13",
    "project_urls": {
        "Homepage": "https://docs.will.party/terminalle"
    },
    "split_keywords": [
        "terminal",
        " emulator",
        " drop-down",
        " freedesktop",
        " gdk",
        " gtk",
        " gnome",
        " vte",
        " console",
        " sick"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "655f1183c606a2263ea63bb355c57d6b8dace51ea5335aca9430e8f63b908cdf",
                "md5": "6e771e24ae085e4279bedd66ff223e5a",
                "sha256": "c39ae6fb152e888b766bc565f62df329d5ece24f82d6ab44fa437402356c348d"
            },
            "downloads": -1,
            "filename": "terminalle-0.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6e771e24ae085e4279bedd66ff223e5a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 15001,
            "upload_time": "2024-08-02T17:09:01",
            "upload_time_iso_8601": "2024-08-02T17:09:01.626222Z",
            "url": "https://files.pythonhosted.org/packages/65/5f/1183c606a2263ea63bb355c57d6b8dace51ea5335aca9430e8f63b908cdf/terminalle-0.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4205a330922a15dea341f2458f0a983ae91ba358b55de293bd9efbeb44bd5875",
                "md5": "b5e39d53ddea537b8a0aee9c602b9a8f",
                "sha256": "97385fd7eda049c9908dbbc8d01da18b1e323b49b6c46e0f2e2450bf77bcf64d"
            },
            "downloads": -1,
            "filename": "terminalle-0.13.tar.gz",
            "has_sig": false,
            "md5_digest": "b5e39d53ddea537b8a0aee9c602b9a8f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15550,
            "upload_time": "2024-08-02T17:09:02",
            "upload_time_iso_8601": "2024-08-02T17:09:02.637469Z",
            "url": "https://files.pythonhosted.org/packages/42/05/a330922a15dea341f2458f0a983ae91ba358b55de293bd9efbeb44bd5875/terminalle-0.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-02 17:09:02",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "terminalle"
}
        
Elapsed time: 0.40930s