You are not logged in.
Environment:
i3 version 4.19.1
$ lspci -v
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06) (prog-if 00 [VGA controller])
DeviceName: VGA compatible controller
Subsystem: Lenovo ThinkPad T440p
Flags: bus master, fast devsel, latency 0, IRQ 29
Memory at 82400000 (64-bit, non-prefetchable) [size=4M]
Memory at 90000000 (64-bit, prefetchable) [size=256M]
I/O ports at 1000 [size=64]
Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: i915
Kernel modules: i915picom v8.2 (vgit-dac85)
*********
I would like to have all normal windows transparent at all times. Including Brave-browser and Remmina, except when putting Brave into full-screen mode for things like Netflix or Plex. The only windows that should not be transparent are popups and dropdowns. Currently popups and dropdowns are working as expected i.e. NOT transparent.
The issue I appear to have is two-fold:
1. The Remmina connection window (when you actually open a connection) is not transparent.
2. Brave browser is not transparent when a single window occupies a workspace (I have a rule "Brave-browser && fullscreen"). However, transparency is activated when there are multiple windows in a workspace.
I suspect #2 is due to how a single window is classified as "fullscreen" in the workspace. However, I only want non-transparency on "fullscreen" for things like firefox (in any mode), Netflix fullscreen in Brave, Plex Media in fullscreen, and any media player that I make fullscreen.
I am rather lost in terms of the configuration requirements. If someone could assist me I would be most obliged.
I suspect this option is relevant:
# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# no-ewmh-fullscreen = falseHere is my full config file with comments removed:
shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
shadow-exclude = [
"name = 'Notification'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g = 'Cairo-clock'",
"_GTK_FRAME_EXTENTS@:c"
];
fading = true
fade-in-step = 0.03;
fade-out-step = 0.03;
inactive-opacity = 0.8;
frame-opacity = 0.7;
inactive-opacity-override = false;
active-opacity = 0.85
focus-exclude = [ "class_g = 'Cairo-clock'" ];
opacity-rule = [ "100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:class_g = 'firefox'",
"100:class_g = 'Brave-browser' && fullscreen"];
blur-kern = "3x3box";
blur-background-exclude = [
"window_type = 'dock'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
backend = "xrender";
vsync = true
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 0
detect-transient = true
detect-client-leader = true
use-damage = false
max-brightness = 1.0
log-level = "warn";
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 1.0; focus = true; full-shadow = false; };
dock = { shadow = false; }
dnd = { shadow = false; }
popup_menu = { opacity = 1.0; }
dropdown_menu = { opacity = 1.0; }
};Last edited by Bitshiftnetau (2021-07-30 15:08:23)
Offline
Ok so after playing around with xprops again in different view modes I noticed something
This is xprop output in normal mode (without making YT, Netflix etc fullscreen):
$ xprop
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FOCUSED <<<<<< ==========
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 1
_NET_WM_USER_TIME(CARDINAL) = 26490531
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 1, 1
program specified minimum size: 520 by 68
WM_NAME(UTF8_STRING) = "Picom config for i3 / Applications & Desktop Environments / Arch Linux Forums - Brave"
_NET_WM_NAME(UTF8_STRING) = "Picom config for i3 / Applications & Desktop Environments / Arch Linux Forums - Brave"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x1, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_WM_ICON(CARDINAL) = Icon (128 x 128):
(not shown)
_NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
WM_WINDOW_ROLE(STRING) = "browser"
WM_CLASS(STRING) = "brave-browser", "Brave-browser"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_PID(CARDINAL) = 18696
WM_CLIENT_MACHINE(STRING) = "zion"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, _NET_WM_PING, _NET_WM_SYNC_REQUESTThis is the output with those media programs put in full screen mode:
$ xprop
_NET_WM_STATE(ATOM) = _NET_WM_STATE_FULLSCREEN, _NET_WM_STATE_FOCUSED <<<<<< ==========
WM_STATE(WM_STATE):
window state: Normal
icon window: 0x0
_NET_WM_DESKTOP(CARDINAL) = 1
_NET_WM_USER_TIME(CARDINAL) = 26577868
WM_NORMAL_HINTS(WM_SIZE_HINTS):
program specified location: 1, 1
program specified minimum size: 520 by 68
WM_NAME(UTF8_STRING) = "(135) i3wm: How To "Rice" Your Desktop (3/3) - YouTube - Brave"
_NET_WM_NAME(UTF8_STRING) = "(135) i3wm: How To \"Rice\" Your Desktop (3/3) - YouTube - Brave"
_MOTIF_WM_HINTS(_MOTIF_WM_HINTS) = 0x2, 0x0, 0x1, 0x0, 0x0
XdndAware(ATOM) = BITMAP
_NET_WM_ICON(CARDINAL) = Icon (128 x 128):
(not shown)
_NET_WM_BYPASS_COMPOSITOR(CARDINAL) = 2
WM_WINDOW_ROLE(STRING) = "browser"
WM_CLASS(STRING) = "brave-browser", "Brave-browser"
_NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL
_NET_WM_PID(CARDINAL) = 18696
WM_CLIENT_MACHINE(STRING) = "zion"
WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, _NET_WM_PING, _NET_WM_SYNC_REQUEST_NET_WM_STATE(ATOM) adds the property _NET_WM_STATE_FULLSCREEN when in actual full screen mode. This is great news as I thought there might not be a way to actually differentiate between full screen and simply maximized (which is the default when a single window occupies a workspace inside a twm like i3). It turns out there is and I simply needed to tweak my opacity rules. Also, I previously though the number inside the rule was execution priority like in udev or systemd, turns out that is also incorrect. They are merely opacity values (do'h!).
My opacity rules array is now as follows:
opacity-rule = [ "100:_NET_WM_STATE@:32a = '_NET_WM_STATE_FULLSCREEN'",
"100:class_g = 'firefox'",
"85:class_g = 'Brave-browser && _NET_WM_STATE_FOCUSED'"];Something odd still happens however... the opacity rule is only applied once I switch to another workspace and switch back in fullscreen mode i.e. pressing the fullscreen button does not activate. Luckily that's a mere annoyance that I can tolerate for now, as the rule does apply when switching back to the full screen workspace. I suspect this is a bug with picom and will file a report. For now this is solved.
EDIT:
Re-opening because Remmina is doing the opposite. Opacity is applied to the connection window when it first opens but then is not applied when going back to the window. I have filed a bug report on a separate issue related to this behaviour, however I figured that setting an explicity opacity rule may or may not have helped.
Added the following opacity rule for Remmina:
"85:class_g = 'org.remmina.Remmina && _NET_WM_STATE_FOCUSED && Normal'"];
Nothing seems to work for Remmina.
Last edited by Bitshiftnetau (2021-07-30 15:10:12)
Offline