You are not logged in.

#1 2024-10-16 17:18:30

shqs_i
Member
Registered: 2024-10-16
Posts: 2

Problems with gscreenshot

I have some minor problems with gscreenshot on dwm (with picom). Every time i try to screenshot on selection mode, the whole screen gets blurred. I can select the area to screenshot, but the screenshot gets all blurry.

here is my picom config on ~/.config/picom/picom.conf:

#################################
#             Shadows           #
#################################

# Enabled client-side shadows on windows. Note desktop windows
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
# unless explicitly requested using the wintypes option.
#
# Can be set per-window using rules.
#
# Default: false
shadow = true;

# The blur radius for shadows, in pixels.
#
# Default: 12
shadow-radius = 7;

# The opacity of shadows.
#
# Range: 0.0 - 1.0
# Default: 0.75
# shadow-opacity = .75

# The left offset for shadows, in pixels.
#
# Default: -15
shadow-offset-x = -7;

# The top offset for shadows, in pixels.
#
# Default: -15
shadow-offset-y = -7;

# Hex string color value of shadow. Formatted like "#RRGGBB", e.g. "#C0FFEE".
#
# Default: #000000
# shadow-color = "#000000"

# Crop shadow of a window fully on a particular monitor to that monitor. This is
# currently implemented using the X RandR extension.
#
# Default: false
# crop-shadow-to-monitor = false


#################################
#           Fading              #
#################################

# Fade windows in/out when opening/closing and when opacity changes,
# unless no-fading-openclose is used. Can be set per-window using rules.
#
# Default: false
fading = true;

# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
fade-in-step = 0.03;

# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
fade-out-step = 0.03;

# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
# fade-delta = 10

# Do not fade on window open/close.
# no-fading-openclose = false

# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
# no-fading-destroyed-argb = false


#################################
#   Transparency / Opacity      #
#################################

# Opacity of window titlebars and borders.
#
# Range: 0.1 - 1.0
# Default: 1.0 (disabled)
frame-opacity = 0.7;

# Use fixed inactive dim value, instead of adjusting according to window opacity.
#
# Default: false
# inactive-dim-fixed = true

inactive-opacity = 0.8;

active-opacity = 0.95;

#################################
#           Corners             #
#################################

# Sets the radius of rounded window corners. When > 0, the compositor will
# round the corners of windows. Does not interact well with
# `transparent-clipping`.
#
# Default: 0 (disabled)
corner-radius = 5

#################################
#            Blur               #
#################################

# Parameters for background blurring, see BLUR section in the man page for more information.
blur-method = "dual_kawase"
# blur-size = 12
#
# blur-deviation = false
#
blur-strength = 9

# Blur background of semi-transparent / ARGB windows.
# Can be set per-window using rules.
#
# Default: false
blur-background = true

# Blur background of windows when the window frame is not opaque.
# Implies:
#    blur-background
#
# Default: false
# blur-background-frame = false

# Use fixed blur strength rather than adjusting according to window opacity.
#
# Default: false
# blur-background-fixed = false


# Specify the blur convolution kernel, with the following format:
# example:
#   blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
# Can also be a pre-defined kernel, see the man page.
#
# Default: ""
blur-kern = "3x3box";

#################################
#       General Settings        #
#################################

# Enable remote control via D-Bus. See the man page for more details.
#
# Default: false
# dbus = true

# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
# daemon = false

# Specify the backend to use: `xrender`, `glx`, or `egl`.
#
# Default: "xrender"
backend = "glx"

# Use higher precision during rendering, and apply dither when presenting the
# rendered screen. Reduces banding artifacts, but may cause performance
# degradation. Only works with OpenGL.
dithered-present = false;

# Enable/disable VSync.
#
# Default: false
vsync = true;

# Try to detect windows with rounded corners and don't consider them
# shaped windows. The accuracy is not very high, unfortunately.
#
# Has nothing to do with `corner-radius`.
#
# Default: false
detect-rounded-corners = true;

# Detect '_NET_WM_WINDOW_OPACITY' on client windows, useful for window managers
# not passing '_NET_WM_WINDOW_OPACITY' of client windows to frame windows.
#
# Default: false
detect-client-opacity = true;

# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
# rather than listening to 'FocusIn'/'FocusOut' event. May be more accurate,
# provided that the WM supports it.
#
# Default: false
# use-ewmh-active-win = false

# Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows.
#
# Default: false
unredir-if-possible = false

# Delay before unredirecting the window, in milliseconds.
#
# Default: 0.
# unredir-if-possible-delay = 0

# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
# in the same group focused at the same time.
#
# Default: false
detect-transient = true;

# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
# group focused at the same time. This usually means windows from the same application
# will be considered focused or unfocused at the same time.
# 'WM_TRANSIENT_FOR' has higher priority if detect-transient is enabled, too.
#
# Default: false
# detect-client-leader = false

# Use of damage information for rendering. This cause the only the part of the
# screen that has actually changed to be redrawn, instead of the whole screen
# every time. Should improve performance.
#
# Default: false
use-damage = true;

# Use X Sync fence to wait for the completion of rendering of other windows,
# before using their content to render the current screen.
#
# Required for explicit sync drivers, such as nvidia.
#
# Default: false
# xrender-sync-fence = false

# GLX backend: Use specified GLSL fragment shader for rendering window
# contents. Read the man page for a detailed explanation of the interface.
#
# Can be set per-window using rules.
#
# window-shader-fg = "default"

# Force all windows to be painted with blending. Useful if you
# have a `window-shader-fg` that could turn opaque pixels transparent.
#
# Default: false
# force-win-blend = false

# Do not use EWMH to detect fullscreen windows.
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
#
# Default: false
# no-ewmh-fullscreen = false

# Dimming bright windows so their brightness doesn't exceed this set value.
# Brightness of a window is estimated by averaging all pixels in the window,
# so this could comes with a performance hit.
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled.
#
# Default: 1.0 (disabled)
# max-brightness = 1.0

# Make transparent windows clip other windows like non-transparent windows do,
# instead of blending on top of them. e.g. placing a transparent window on top
# of another window will cut a "hole" in that window, and show the desktop background
# underneath.
#
# Default: false
# transparent-clipping = false

# Set the log level. Possible values are:
#  "trace", "debug", "info", "warn", "error"
# in increasing level of importance. Case insensitive.
# If using the "TRACE" log level, it's better to log into a file
# using *--log-file*, since it can generate a huge stream of logs.
#
# Default: "warn"
# log-level = "warn";

# Set the log file.
# If *--log-file* is never specified, logs will be written to stderr.
# Otherwise, logs will to written to the given file, though some of the early
# logs might still be written to the stderr.
# When setting this option from the config file, it is recommended to use an absolute path.
#
# log-file = "/path/to/your/log/file"

# Write process ID to a file.
# write-pid-path = "/path/to/your/log/file"

# Rule-based per-window options.
#
# See WINDOW RULES section in the man page for how these work.

# `@include` directive can be used to include additional configuration files.
# Relative paths are search either in the parent of this configuration file
# (when the configuration is loaded through a symlink, the symlink will be
# resolved first). Or in `$XDG_CONFIG_HOME/picom/include`.
#
# @include "extra.conf"

Offline

#2 2024-10-16 20:35:29

seth
Member
Registered: 2012-09-03
Posts: 60,779

Re: Problems with gscreenshot

# Parameters for background blurring, see BLUR section in the man page for more information.
blur-method = "dual_kawase"
# blur-size = 12
#
# blur-deviation = false
#
blur-strength = 9

# Blur background of semi-transparent / ARGB windows.
# Can be set per-window using rules.
#
# Default: false
blur-background = true

gscreenshot will likely make a screenshot of the entire screen, put that into a window and allow you to select something there.
The tricky part will be to get the window attributes, can you call "xprop" and then trigger gscreenshot while xprop is running to pick the assumed window with that gets blurred by picom?

You can first test whether the blurring occurs when killing picom and whe disabling the background blur.

Offline

#3 2024-10-24 14:38:58

shqs_i
Member
Registered: 2024-10-16
Posts: 2

Re: Problems with gscreenshot

seth wrote:
# Parameters for background blurring, see BLUR section in the man page for more information.
blur-method = "dual_kawase"
# blur-size = 12
#
# blur-deviation = false
#
blur-strength = 9

# Blur background of semi-transparent / ARGB windows.
# Can be set per-window using rules.
#
# Default: false
blur-background = true

gscreenshot will likely make a screenshot of the entire screen, put that into a window and allow you to select something there.
The tricky part will be to get the window attributes, can you call "xprop" and then trigger gscreenshot while xprop is running to pick the assumed window with that gets blurred by picom?

You can first test whether the blurring occurs when killing picom and whe disabling the background blur.

sorry for the late response,

I was unable to use xprop on gscreenshot, but if you want the WM_CLASS property of the window, i think it might be gscreenshot.

Offline

#4 2024-10-24 14:44:50

seth
Member
Registered: 2012-09-03
Posts: 60,779

Re: Problems with gscreenshot

You could "xev -root -event substructure" to get the WID and pass that to xprop.
Did you confirm that picom, resp. its blur settings are the cause?

blur-background-exclude = [
  "class_g ?= 'gscreenshot'",
  "name = 'gscreenshot'",
];

But of course it's more fun w/ less guesswork wink

Offline

Board footer

Powered by FluxBB