What is the command to close a window?

12,516

Solution 1

wmctrl -c <win>

   wmctrl - interact with a EWMH/NetWM compatible X Window Manager.

   -c <WIN>
          Close the window <WIN> gracefully.

(from man wmctrl. But note: I use XFCE so haven't tested this on Unity as found in default Ubuntu 16.04, and I wouldn't expect it to work if using Wayland on 17.10 upwards)

Solution 2

the other work around i found along with @FinleyGibson answer is

open dconf-editor (if dconf-editor is not installed, install with below command
sudo apt install dconf-editor)

search key word "close"

enter image description here

then edit the custom value to ['<Alt>F4', '<Alt>4']

enter image description here

Solution 3

Had you try to use CTRL+Q

I was use to press these keys to close windows, never added a keyboard shortcut, seems to be the default at least in the distros I used(always debian based)

but I see the point of your question

Solution 4

I found a good solution to my problem, though it does not exactly answer the question I originally asked, I'm posting it here as a workaround for anyone that encounters a similar issue.

The solution I found was to use xdotool to execute the alt+f4 shortcut as a command, and to set this as the command for alt+4. To do this first isntall xdotool if you don't have it already:

sudo apt-get install xdotool

Then go to keyboard shortcuts in the settings menu, and add a custom shortcut. In the command field enter:

xdotool key Alt+F4

And set the shortcut to Alt+4.

This works well, but I'm leaving the question as is, in case someone has a more elegant solution, using the exact command called by the close window shortcut by default.

Solution 5

Same problem was solved after 5 minute search: You can use

$ sh -c "xkill -id $(xprop -root -notype | sed -n '/^_NET_ACTIVE_WINDOW/ s/^.*# *\|\,.*$//g p')"

It kills current active window. I bind this to "Super+q".

Share:
12,516

Related videos on Youtube

FinleyGibson
Author by

FinleyGibson

PhD student in Machine Learning, specialising in Neural Networks. Predominantly in Python, C++ and Tensorflow.

Updated on September 18, 2022

Comments

  • FinleyGibson
    FinleyGibson over 1 year

    I want to set a keyboard shortcut to close the current window in Ubuntu 16.04. I am aware that alt+f4 already does this and that I can redefine this shortcut if I want to, but what I really want is to add an additional shortcut to perform the same function.

    The reason being; I have a keyboard without designated function keys (a 60%). Instead the function keys are activated via a keyboard shortcut that toggles the row of number keys between number and function keys (for example 4 to f4 and vice versa).

    I am deep in the habit of quickly closing windows using alt+f4 and want it to work regardless of whether I am in function key or number key mode, but can't seem to find what I should enter in the command field when setting a new keyboard shortcut.

    I have found a good workaround to my particular problem and posted it in the answers below. Still open to more elegant solutions.

    Edit: To clarify, the machine is running X11.

  • FinleyGibson
    FinleyGibson over 5 years
    I am using X11, and having installed wmctrl, and applied your suggestion, it does work sort of. But The command does more than close the active window. Entering wmctrl -c WIN in terminal does close the current window, but it also seems to perform some kind of refresh of X11: the screen blinks and all open windows are moved to workspace 1. Is there something I am doing wrong here? Or is there another way to specify the exact functionality of alt+f4?
  • guiverc
    guiverc over 5 years
    the <win> should be replaced by the window you want to close. I've only used it in shell scripts, and have known what workspaces (i usually use it to effect workspaces more than windows) I want to add/delete/switch-to. It takes some play to get to understand it, and I'd have your shortcut run a shell.script that closed the window (not sure how you'd work out current window, it's a case I never considered in using wmctrl as its not how I use it as the windows I've closed are ones I've opened with my scripts)
  • FinleyGibson
    FinleyGibson over 5 years
    Nice Idea, but ctrl +Q does nothing for me.
  • guiverc
    guiverc over 5 years
    For example, I have a folder with photos open (in thunar as I'm using XFCE currently), and select one to view so open it. It opens in gpicview (my preferred viewer for that type of file). To close the window I can ctrl+alt+T to open a terminal and enter the command wmctrl -c P1000403.JPG (the P1000403.JPG being the name of the picture I was viewing in this example). On pressing enter the gpicview window containing my photo closes. <win> was replaced by the 'title' of my 'window' in this example. The '<>' characters were copied from the man page representing values you change.
  • FinleyGibson
    FinleyGibson over 5 years
    I see what you are saying. In order to implement what I want in this way, I would then need a means of getting the name of the currently active window. But I can't seem to find a way.
  • guiverc
    guiverc over 5 years
    It's after midnight my local time, what you've got is the best I can provide from my tired-brain given I want to go to bed (and don't want to find my scripts to look for clues). the moment I've found the photo I want, it's being posted & I'm off to bed
  • FinleyGibson
    FinleyGibson over 5 years
    Thanks, man. I really appreciate your efforts. I found a good workaround working off your suggestions and posted it below for others. Sleep well, and consider the matter closed.
  • JoKeR
    JoKeR over 5 years
    Did you try xkill ? I'd say it is more advanced for me and kills just about anything :D you can launch it either from terminal or creating a shortcut.
  • FinleyGibson
    FinleyGibson over 5 years
    I did look into that. The problem with xkill is that it kills the whole process tree. So if you have 2 terminal windows open, both will be closed. This is not the functionality of alt+F4 and is not quite what I was looking for.
  • FinleyGibson
    FinleyGibson over 5 years
    That looks like a good workaround. Not going accept it as the answer since there could still be a way to get the original command, but it does look like a tidy solution and I will use it in the future.
  • Joe
    Joe over 5 years
    xdotool is a good solution for this issue. If you ever need to do something a bit more involved, take a look at AutoKey. It allows you to setup hotkeys and trigger phrases which can do anything from a simple text insertion to running an arbitrarily complex Python script which can use the keyboard and mouse for you to perform multiple actions.
  • FinleyGibson
    FinleyGibson almost 4 years
    This does something similar to alt+f4, but not quite the same. Killing the process, will close all windows for that application, not the single window selected. Try opening multiple web browsers and closing one with this solution, you will see it closes all.