Giter Site home page Giter Site logo

ddterm / gnome-shell-extension-ddterm Goto Github PK

View Code? Open in Web Editor NEW
293.0 7.0 26.0 22.33 MB

Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively

Home Page: https://extensions.gnome.org/extension/3780/ddterm/

License: GNU General Public License v3.0

Makefile 0.03% JavaScript 73.84% Shell 0.45% CSS 0.03% XSLT 0.13% Python 22.61% Meson 2.91%
gnome-shell gnome-shell-extension vte terminal terminal-app terminal-emulator dropdown-terminal gnome wayland

gnome-shell-extension-ddterm's Introduction

Another Drop Down Terminal Extension for GNOME Shell

Get it on GNOME Extensions

Inspired by

Distinguishing features

  • Runs on Wayland natively

  • Can be controlled from the command line

  • Terminal window can be resized by dragging the border with mouse

  • Preferences window with a lot of different settings

Review by TechHut

my favorite GNOME extension

Installing

The easiest way to install the extension is to go to extensions.gnome.org.

However, the review process on extensions.gnome.org is sometimes slow. A new release may be available here on GitHub, but not on extensions.gnome.org yet.

If you want to install from GitHub: see docs/INSTALL.md

Contribute

Pull requests are always welcome.

See docs/CONTRIBUTING.md.

Translations

You could help translating the user interface using Weblate, or by opening a pull request on GitHub.

Translation status

See docs/Translations.md.

gnome-shell-extension-ddterm's People

Contributors

alfberdi avatar amezin avatar arnaud-feldmann avatar atalanttore avatar c-512l avatar ccat3z avatar comradekingu avatar daphipz avatar dasjott avatar ddterm-automation[bot] avatar dependabot[bot] avatar duckycb avatar github-actions[bot] avatar halfa avatar ilhamsetiawan avatar lcdessantos avatar lukishere avatar mjnaderi avatar novak-pavel avatar pesader avatar ptomato avatar renovate[bot] avatar rizitis avatar spp595 avatar syntaxblitz avatar vantu5z avatar weblate avatar wojtekt99 avatar yuhldr avatar zerocool56 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gnome-shell-extension-ddterm's Issues

Feature Request: Width and Alignment Settings.

Along with height, a width and alignment (left, right, top, bottom) settings will be very helpful. For example, I like my terminal full-height with 40% width in the right of my screen. These settings will allow a wider range of users to use this tool more efficiently.

Left-Ctrl backtick as hotkey

Hi,

I came here because the dropdown terminal-x extension is no longer supported.

My issue is that I tried to set the Left Ctrl+` keycombo as the shortcut for ddterm like I had before, but it appears that ddterm only accepts single keys. Can these keycombo's be supported as well please?

Wrong placement of window on empty secondary screen

I have a laptop and a external monitor, the top of my laptop monitor is configured just above the middle of the secondary screen. I open some programs on my laptop, the ddterm works as expected on that. If I then move my mouse and click on the background on the empty external screen and show ddterm, that will not be placed on top, but on the external screen (as expected) but with the top position from the laptop screen, which means just above middle of the external screen.
If I have any program running on the external screen (even on another virtual desktop) it will be displayed on top as it should. So, it is just when there is nothing else running on the external screen.
Here is a screenshot, I have a full screen terminal on my laptop and nothing on my external screen.
Skärmbild från 2021-03-26 09-21-31

Add a keyboard shortcut to toggle background opacity

I suggest to add a (new) keyboard shortcut to toggle the opacity between configured value and 100%

Motivation: This help me, who likes to be able to view "through" ddterm to write off stuff "below" in situation where the content below makes the term difficult read. In such situation I'd love to hit some key combo to toggle the background 100% opaque.

Write to all tabs

While having a set of tabs opened it is handy to be able to write the same text to all of them. It can be useful for Ops tasks for network and system engineers while checking status of multiple devices without having to cycle through all opened tabs and pasting the same text command.

Preserve working directory when opening new tabs

Many thanks for this project! This terminal my daily driver after unsuccessful attempts at getting others (Guake, Yakuake, Drop Down Terminal, Drop Down Terminal X, etc.) to work properly.

I'm looking for a feature that allows keeping the working directory when opening a new tab. The GNOME terminal calls this feature "preserve working directory". I was unable to find such an option in ddterm's settings.

[FEATURE] Allow terminal to come from the left or right of the screen, not only up top

Hi,

I really like this extension, coming from DropDownTerminal X, I really appreciate the sturdiness
and the settings available. However, there is one functionality that I miss and which is a must for me,
it's the ability to bring up the terminal from the left or right of the screen.

do you think it's something doable ??

thanks in advance and keep up the good work ;)

../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'

After dc52400 I now see these messages when closing Preferences dialog:

Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'
Mar 17 16:19:12 trx40 gjs[253041]: ../glib/gobject/gsignal.c:2732: instance '0x55d58bf56430' has no handler with id '9223372036854775808'

hardly 9223372036854775808 is a valid handler id

Refactor extension to be a GObject

Purpose: make things like current_window observable from tests.
Also may simplify code in the extension itself.
enable() should create the GObject, disable() - destroy it

Keyboard shortcut for Maximizing Terminal

First of all thanks for this amazing extension, it feels so integrated with the gnome-shell and its a pleasure to use.

The only thing I miss coming from Guake its the feature where a keyboard shortcut toggles the terminal window to fullscreen and back to the original size.

In guake the default its F11.

Was looking at the code to see how can I contribute or at least try to add this feature with no success.

Where should I start looking?

100% window height is actually 1 pixel less

I have ddterm with Window height option set to 1.00 (the maximum available value) by default, but since the last update it stopped covering the full height of the screen, leaving one pixel uncovered at the bottom.

Screenshot

If I enable the Resizeable window option I can drag it to full height, but it restores itself to 100%-1px on next toggle.
Tried setting Window height to 1.01 through dconf Editor, but that messes things up.
Please check.

Memory leak

Got a bug report by email:

Hello, I'm not completely sure if the problem comes from ddterm, but it seems that there is a memory leak in this extension. It is never killed by oom-killer because gnome is whitelisted. Tested on F33, it consumes my RAM and my SWAP very quickly, so a lot of useful process such as firefox, element, discord ... are killed by eatryoom. Removing the extension solved the problem.

yes, it happens when only ddterm is enabled, on a fresh fedora 33 installation.

The observed behaviour was an increase in RAM each time the toggle key was pressed, which was never released and saturate SWAP + RAM quickly. The problem seems solved when the extension if disabled.

memleak.txt

Window tiling

I'm using the pop-shell window tiling. When I open the terminal it starts as tiled window.

Maybe it's possible to add some xprop flag to keep it in a floating state
(Not sure but maybe window type dialog )

Use npm/yarn

  1. Newer eslint config in gjs needs plugins
  2. Maybe I'll be able to use a proper unit test library that will be able to generate a report

Tab title customization

Currently, terminal's 'window-title' is used as tab title.

There are other properties available:

  • icon-title
  • current-directory-uri
  • current-file-uri
  • current-container-name
  • current-container-runtime

Would be nice if tab title was configurable using some kind of template language (also, use-markup could be enabled for labels)

Shortcuts and other Features stop working after some time

After some time the shortcut for open/close is not working anymore. I have to kill the gjs process for ddterm in order to make it work again. The journal shows the following message:

Jun 07 08:38:07 ilng002v98 gnome-shell[5480]: == Stack trace for context 0x5596b84d01c0 ==
Jun 07 08:38:07 ilng002v98 gnome-shell[5480]: #0   5596b868e800 i   /home/smoe/.local/share/gnome-shell/extensions/[email protected]/application.js:253 (20fdbb89b1f0 @ 750)
Jun 07 08:38:07 ilng002v98 gjs[5480]: The offending signal was draw on Gjs_AppWindow 0x5596b87722a0.
Jun 07 08:38:07 ilng002v98 gjs[5480]: Attempting to call back into JSAPI during the sweeping phase of GC. This is most likely caused by not destroying a Clutter actor or Gtk+ widget with ::destroy signals connected, but can also be caused by using the destroy(), dispose(), or remove() vfuncs. Because it would crash the application, it has been blocked and the JS callback not invoked.

Im on Fedora 34 with Gnome 40, using Wayland.

Quick preferences menu

A submenu in the context menu, with some of boolean window preferences (on top, hide on focus lost/esc, etc.), or a dedicated menu button.

Search

Currently, VTE search functionality isn't exposed at all.

I also don't like Gnome Terminal's search UI - I'd prefer a search bar instead of a dialog window.

Automated tests

I'm constantly introducing regressions, because there's always some Xorg/Wayland/Shell combination that I forgot to test.

Automated testing should solve that (at least it should catch critical issues, like terminal not showing or not being positioned properly). On X11 Gnome Shell can probably run on Xvfb, and X gives access to all windows to any client - so there is no problem getting & checking window geometry. However, I'm not sure how to do similar thing on Wayland (and if it's even possible).

[Feature request] Use actual drop down / slide up animation

Currently, opening and closing ddterm uses standard GS open/close animations - fade-in&expand-from-center on open and fade-out&shrink-to-center on close. It would be nice if the animation would actually have the terminal window slide down from the top on open and then slide back up on close. Drop Down Terminal extension manages to do this somehow, so their code could give you a hint on how to achieve this if/when you decide to implement this.
This is on X, btw. Haven't tried it on Wayland.

Compatibility preferences

Add "Compatibility" tab to preferences dialog.
Copy Gnome Terminal preferences + probably bidi, shaping, sixel, and gdk backend

screen splitting

either Guake, Tilix, Terminator... support terminal splitting (see below screenshot) which is useful, if I run tail against multiple log files.

immagine

Toggle through open tabs

A lot of prominent session managers support toggling through opened tabs (oftentimes default shortcut is ctrl+tab) rather than using a shortcut to go to a specific tab. Could something like this be implemented?

missing tray icon

it works if I press F12, but I don't see an option to enable a tray icon.

Hotkeys not available as "Shortcuts"

I'm trying to use the "Favorite key" (F12 without pressing "Fn") as "Toggle terminal" on Lenovo Thinkpad X1 Carbon 8th generation. However, while the "standard" keys are correctly detected, the "hotkeys" are not, while they are instead being correctly detected in the GNOME Keyboard Bindings page.

Is there a way to use them as "shortcuts" in ddterm? Alternatively, is there a command to toggle the visibility of ddterm, so that I can bind that command form the GNOME Keyboard Bindings interface to toggle ddterm?

library Vte, version 2.91 not available

Can't start ddterm - library Vte, version 2.91 not available:
Error: Requiring Vte, version 2.91: Typelib file for namespace 'Vte', version '2.91' not found
image

GNOME Shell 40.0 OpenSuse Tumbleweed

raif@localhost ~> rpm -qa | grep -i vte
libvte-2_91-0-0.63.91-1.1.x86_64
vte-lang-0.63.91-1.1.noarch
libvted-3-0-3.9.0-2.1.x86_64
libvterm0-0.1.3-1.6.x86_64
libvterm-tools-0.1.3-1.6.x86_64
libvterm-devel-0.1.3-1.6.x86_64

Wrong path in Installation Instructions

In the instructions provided in README.md you're saying that the extension should be installed to ~/.local/gnome-shell/extensions, but local GS extensions actually live under ~/.local/share/gnome-shell/extensions.

Using a composite shortcut for Toggle Terminal Window

I would like to use Ctrl+` (key above tab) as a shortcut for "Toggle Terminal Window" but it only seems to allow me to set a single key as the shortcut, meaning it will set the shortcut to Control L. Is that an intended limitation? I used Drop Down Terminal X before where this worked.

Ubuntu 20.04, Wayland: terminal unmaximizes to wrong size

Unmaximize restores the window to its initial size (when it was shown), not the size before last maximize:

  1. Show the terminal
  2. Resize the window
  3. Maximize
  4. Unmaximize

Terminal restores to the size from step 1, not step 2.

Doesn't happen on the same Ubuntu 20.04 in Xorg session. Doesn't happen on Arch Linux.

Hyperlinks

Hyperlink support isn't actually implemented

Feature Request: Change position of tabs

As one of many people who have switched over from Drop Down Terminal X, I became accustomed to having my tabs vertically on the right side of the terminal. Is this a feature you could add? I feel they make more sense there, especially on wide monitors.

Set primary screen

(at least on Wayland) current behavior is to spawn terminal on current (mouse focus) screen.

Can it be able to set it on primary screen?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.