kovidgoyal / kitty

Cross-platform, fast, feature-rich, GPU based terminal
https://sw.kovidgoyal.net/kitty/
GNU General Public License v3.0
24.49k stars 979 forks source link

Native window decorations for GNOME Wayland #3284

Closed DiegoMagdaleno closed 10 months ago

DiegoMagdaleno commented 3 years ago

Hi, im a developer, and Im interested in kitty, I was sad when I saw it doesn't support client side decorations, since im a wayland gnome user, I would love to say I have other options, but sadly with my HiDPI monitor, it looks like wayland is my only option.

I would be glad to try to get to some extent some client side decorations working, what is kitty missing to support this feature? is it possible? is the possibility of supporting this good?

Thanks! And of course thank you for your awesome software, it makes using the terminal much much better.

Jeoshua commented 1 year ago

Honestly, I would be fine with this wayland windowing style if it would just respect dark mode. White sticks out like a sore thumb, and I just can't be the only terminal aficionado who feels this way.

metal3d commented 1 year ago

Honestly, I would be fine with this wayland windowing style if it would just respect dark mode. White sticks out like a sore thumb, and I just can't be the only terminal aficionado who feels this way.

On Linux, you can read dbus as I did it in fyne.io project: https://github.com/fyne-io/fyne/blob/develop/app/app_xdg.go#L36

And the theme change event: https://github.com/fyne-io/fyne/blob/develop/app/app_xdg.go#L167

kovidgoyal commented 1 year ago

On Thu, Jan 12, 2023 at 01:13:28PM -0800, Jeoshua wrote:

Honestly, I would be fine with this wayland windowing style if it would just respect dark mode. White sticks out like a sore thumb, and I just can't be the only terminal aficionado who feels this way.

https://sw.kovidgoyal.net/kitty/conf/#opt-kitty.wayland_titlebar_color

ceed0 commented 1 year ago

@Jeoshua Just use a script that will rewrite kitty's config to switch between light and dark theme.

Here's an example

#!/bin/sh

kitty() {
    if [ -e "${XDG_CONFIG_HOME}/kitty/kitty.conf" ]; then
        sed -ie "/^include theme-/s/light\|dark/${THEME}/" "${XDG_CONFIG_HOME}/kitty/kitty.conf"
        killall -e -USR1 kitty
    fi
}

case "$1" in
    light)
        THEME=light
        kitty
        ;;
    dark)
        THEME=dark
        kitty
        ;;
    *)
        echo "Usage: $(basename "$0") [light|dark]"
esac
rdtorres commented 1 year ago

After enabling linux_display_server x11, the close button shows but not the minimize/maximize buttons, which were present when I launch Gnome in X11. Is there a solution for this?

image

Just press alt + space and gnome will open a context menu from where you can do all operations : close, maximize, minimize and etc.

image

sharpenedblade commented 1 year ago

https://github.com/glfw/glfw/issues/1639 was just merged, so glfw can show proper client side decorations that look somewhat native.

AniAggarwal commented 1 year ago

@kovidgoyal do you think it would be an easy addition to add an option to change or at least remove the cat emoji from the minimal decorations kitty is currently doing? Thanks again for the huge number of features you are constantly adding!

hrqmonteiro commented 1 year ago

@kovidgoyal do you think it would be an easy addition to add an option to change or at least remove the cat emoji from the minimal decorations kitty is currently doing? Thanks again for the huge number of features you are constantly adding!

That cat emoji is just awful

RushingAlien commented 1 year ago

libdecor main branch now has a GTK plugin, so now it can draw GTK-based window decorations to wayland clients. I think it's worth another look : https://gitlab.freedesktop.org/libdecor/libdecor

vollowx commented 1 year ago

After enabling linux_display_server x11, the close button shows but not the minimize/maximize buttons, which were present when I launch Gnome in X11. Is there a solution for this?

image

This should be controlled by gnome-tweaks (if you use GNOME you can), or simply use gsettings

rlees85 commented 1 year ago

Is there any way to minimize Kitty? Like a shortcut key? Google is coming up short - just brings me to this thread but I don't understand what Wayland decorations have to do with the ability to minimize. I use lots of apps that don't have normal decorations under Gnome Wayland yet Kitty is the only one that won't minimize.

@rdtorres posted an image above and you can see for yourself - no minimize option.

baco commented 1 year ago

Is there any way to minimize Kitty? Like a shortcut key? Google is coming up short - just

The official combination is Super+h. It is working for me. I also don't use the following in Kitty's config:

linux_display_server x11

under GNOME+Wayland

hrqmonteiro commented 10 months ago

Surprised that after two years this still isn't a thing, it's a basic feature and if it was a thing it'd be my favorite terminal. It doesn't mix with my desktop and my tiling extension seems to not like it.

The mantainers of this project are kind of a joke. I abandoned this terminal for Wezterm cause of this lack of very basic things.

Octelly commented 10 months ago

Surprised that after two years this still isn't a thing, it's a basic feature and if it was a thing it'd be my favorite terminal. It doesn't mix with my desktop and my tiling extension seems to not like it.

The mantainers of this project are kind of a joke. I abandoned this terminal for Wezterm cause of this lack of very basic things.

unfortunately ended up doing the exact same thing

AidanNotFunny commented 10 months ago

If I were you I'd skip libdecoration entirely and just draw the titlebar using gtk libraries. Or better, stop using GNOME.

Telling someone to just "stop using GNOME" is... interesting to say the least, especially coming from the owner of the project. Have you tried thinking before typing extra unnecessary words?

This is a terminal, for use by keyboard afficionados.

This is not a "solution" for missing functionality

kovidgoyal commented 10 months ago

I have now heard enough comments from morons, this thread has become an unmitigated waste of my time. If somebody wants to waste their lives catering to the dictates of GNOME, open a PR with code implementing libdecor integration and we can discuss, otherwise stop wasting my time.