Content Type
Profiles
Forums
Events
Everything posted by UCyborg
-
Aye, still plenty of other ways to suffer and die. We're incredibly fragile. Don't get me started on old age... You can't afford to get sick these days, seems CV is the only thing hospitals here still do. Not sure what to think of the Omicron. First they were saying it's less dangerous than Delta, now they're not so sure. So far, I seem to be avoiding successfully (or maybe I've already unknowingly recovered from it ). Perks of being asocial. I still have to go to work though, where the atmosphere is pretty relaxed. There was one coworker (he's a programmer) who wore mask ALL THE TIME, even outside with nobody around. Getting a shot apparently helped him relax. Most of the company stares at the screens all day, there's less of it in the production department. This December has less of a holiday feel to it, the town where I live doesn't have Christmas decorations. I came across the stalls yesterday selling ornaments and similar stuff, fenced on all sides, single entry on one side, single exit on another, guards on both sides, the one on entry checking RVT condition. Still feeling like a criminal!
-
Very similar to Win11 I've setup in a virtual machine (minus the rounded corners and Win11 specific icons). I haven't booted to 10 in a while, currently reliving Win8.1 era and going through my screenshots I apparently never made a screenshot of my actual Windows 10 setup.
-
Reading discussions at other places it does seem to be on the list of regular maintenance tasks for lot (not all) of folks, it ranges from really often on a monthly basis (some of those report very dusty environment), 3 - 6 months, 6 months to a year, 1 - 3 years. Some apparently even replace CPU thermal paste often, first time I hear of that phenomenon, Intel's site says it do it every few years, last time I did it was about a decade ago when I replaced stock CPU cooler, paste still functions as far as I can see. I'm my own housekeeper. Yes, though I was going for the version without the huge fan since it seemed a bit of an overkill, but wasn't in stock where I was shopping and didn't feel like going for entirely different case.
-
Few days ago when I turned on PC, it took 3 extra seconds to start POST then BIOS showed only half of RAM (2 GB out of usual 4 GB). I rebooted it, still took extra 3 seconds, but remaining RAM returned. It seemed to work as usual otherwise, I said I'll worry about it next day. It occurred to me the next day it must have been 3 years since I've blown the dust out and didn't get around to it this summer despite the intentions. Took it to garage where the family has a small and noisy air compressor, opened the case and started blowing the dust out. Quite a bit of it accumulated in many corners and the amount of dust that came out of the CPU cooler (the silver part) was a bit shocking. Thought I had it all and it still came out on the second sweep. The CPU cooler is a bit massive, it's an Akasa AK-968. Combined with Aerocool V-Touch Pro case with big 400 mm fan, dust has an easier time getting in, so really shouldn't forget about it the next time around. Graphics card remained the cleanest. When I put it back together, the POST started when it was supposed to. BIOS was reset since I removed depleted CMOS battery a while ago and didn't bother getting a new one, so set everything back like it was before. Yesterday, I checked if jack sensing works by any chance now since it hasn't since last year, at least when it comes to standard green 3,5 mm jack for speakers/headphones at the back, so had to use software workaround to get the sound since the system thought there isn't anything plugged in. I restored EnableDynamicDevices registry setting in Windows to default, disabled and re-enabled device in Device Manager (the High Definition Audio Controller under System devices) and the sound still works. Also normally get the Not plugged in status if I unplug the headphones. So obviously don't need the equivalent setting on Linux anymore neither. All is well in the end. So thought I'd open a thread about it for others' to post their (dusty) experiences here.
-
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
These browsers are quite capable in fact. The ones with WASM support can run the whole f****** DOOM 3 engine inside and it won't hang it like many of the crap "websites" do. They could send motion picture from the f****** moon over 50 years ago to much simpler TV sets, they could send picture to a web browser in 2021 that's only few years behind some stupid JavaScript bells and whistles. If I can run a web app in the "outdated" browser that can send command to access controller to activate the output where the bomb has been wired instead of the alarm to BLOW s*** UP, then your ***** website could do something more interesting as well rather than waste CPU cycles. Example of a more or less proper website: http://motherf***ingwebsite.com/ Damn, I'm p***ed! PS: I don't condone actually blowing s*** up. It's a real problem for instance that some people can't use these browsers for stuff like banking anymore because of abuse of JavaScript some sites employ. -
Multi-boot Windows 9x with current GNU/Linux
UCyborg replied to Wunderbar98's topic in Pinned Topics regarding 9x/ME
I got for the bills and can't say I'm happy. Just work, sleep, rinse and repeat. What's the point? Too tired to really live in what little time is left. Just tried launching Writer on my regular 11 years quad-core PC on Win 8.1 x64, 10 seconds on first start, but subsequent starts take about 4. Oh well, I'm patient, I survived 5 minutes load time of Call of Duty 2 and Need for Speed Most Wanted in the old days on the old PC. Seems there are lot of incredibly impatient folks out there. Not saying software makers shouldn't strive for good optimization, but nervousness from impatience doesn't do anyone any good. That's for life in general. -
Multi-boot Windows 9x with current GNU/Linux
UCyborg replied to Wunderbar98's topic in Pinned Topics regarding 9x/ME
Relatable comment I found: -
Multi-boot Windows 9x with current GNU/Linux
UCyborg replied to Wunderbar98's topic in Pinned Topics regarding 9x/ME
I am the one, who lost control, but in the end I'd be the Last Man Standing! -
Multi-boot Windows 9x with current GNU/Linux
UCyborg replied to Wunderbar98's topic in Pinned Topics regarding 9x/ME
Does average mortal have anything to gain by worrying about stuff like systemd or PulseAudio? I learned enough about the former to have the slightest clue about configuring something to run in the background and have it managed like a service and use PulseEffects with the latter to tweak the audio output (though I heard about PipeWire, which could be better for some use cases and generally leaner than PA). But then again, people here worry about lots of things I couldn't care less about, LOL! -
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
Updated it so it doesn't break embedded YouTube videos. But since it forces mobile site with no way to get back other than to mess with cookies, I wrote another script with GUI to select layout. GUI can be triggered while on YouTube from GreaseMonkey's User Script Commands menu. Right click on the install button->Save Link As... Old trick. It sees that Pale Moon GUID already exists so it leaves it alone. Wasn't programmed to change existing entries' target version. -
Multi-boot Windows 9x with current GNU/Linux
UCyborg replied to Wunderbar98's topic in Pinned Topics regarding 9x/ME
Just my 2 cents, the now called lightweight software of the past didn't feel so light on the then starved systems. Then there's the typical MSFNer that tends to label everything (s)he doesn't need as "bloat". Someone more deeply involved with particular kind of software might appreciate that "bloat". That word kinda lost its meaning to me, it reminds of the phenomenon on social networks where someone with controversial/unpopular opinion is labelled as fascist (or another label used in the same fashion). -
Yes and yes. We're supposed to have per-monitor ClearType tuning at least (which doesn't include an off switch), but I've never seen secondary screens' settings to actually apply. Related discussion: I doubt anyone at MS uses CRTs anymore and even if progression is made in distinct per-monitor ClearType settings department, it'll make it only to Windows 11. The above thread mentions MacType, first time I hear of it, so no experience with it whatsoever, but since you have nothing to lose, maybe you can try it and see if it lets you find a compromise.
-
Actual Window Manager and UltraMon don't solve lack of per-monitor DPI handling, I believe that's a system issue that needs OS level support since system components play a role in how they render GUI, send window messages to applications on DPI change and provide other DPI handling related APIs.
-
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
The min version of Pale Moon it targets is specified as 28.*. There shouldn't be an asterisk here and considering the simplicity of the extension, it should probably be 25.0 (first Pale Moon version with its distinct application GUID). It also targets Firefox's GUID, targetting min version 50.0, would also probably work with much older version. What it does can be accomplished with a simple user script (GreaseMonkey for Pale Moon required). It tells YouTube through parameters passed via URL to enable mobile version, so no user agent spoofing required. -
Is YouTube trolling us? Seems to be showing dislikes again, I can only tell the script works without looking at the console since it replaces rounded numbers. BTW, I amended the script multiple times the day I posted it. It wasn't showing exact numbers on more feature rich browsers at the beginning since I overlooked compact notation parameter for number formatting which less featured browsers don't understand and ignore, but other browsers do and then show rounded numbers again. I don't have a good experience with Invidious on less featured browsers. Some videos just refuse to play, but then I try them on Invidious on recent Firefox/Chromium and there they work (never mind, difference between browsers was my fault, but this is one example that is still relevant) So it's kinda pointless to me, if I wait a bit for the YouTube site to load initially, it works fine on poorer browsers I use (for now), so can watch anything (I usually don't encounter geo restricted videos) and if I still want smoother experience, can use recent Chromium or Firefox anyway...
-
While I statistically encountered most quirks with 8.x, I certainly appreciate the number of good things it brought, from native multiple-monitor taskbar, per-monitor desktop background support to streamlined file / registry permissions dialog. Though I still wonder what was the guy that deleted Manage wireless networks GUI smoking.
-
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
Yeah, he's got an extension for GitHub/GitLab utilizing so called "polyfills". Also seems to have some more specifics than just "work on these URLs". Web Components, which includes customElements, were supposed to make it in one of the last major versions of Pale Moon, but it hasn't happened yet. Partial implementation can be enabled in about:config by turning on dom.webcomponents.enabled. -
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
They're not finished so not expected to work. When they are, they'll probably be enabled by default. -
Official API will supposedly remove access on 13th December. As I understand it, the server the script connects to is unofficial and will preserve dislike count after that date, so I guess best case scenario is historical data for videos up to that point in time. https://www.reddit.com/r/firefox/comments/r0bwnn/return_youtube_dislike_stats_extension_working/
-
My Browser Builds (Part 3)
UCyborg replied to roytam1's topic in Browsers working on Older NT-Family OSes
The page expects support for Web Components in the browser, precisely customElements. -
https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return Youtube Dislike.user.js (main GitHub page) Needs at least Chrome 80 or Firefox 74 to work. I modified it a bit to work with older browsers and to also replace default likes count since missing dislikes were replaced with exact ones (as exact as their actual counter is) while likes remained rounded. Now it's consistent that both numbers are exact. https://gist.github.com/UCyborg/ad57630260a08f71701be75f7d60aed6/raw/YouTube_exact_(DIS)like_counter.user.js (main GitHub page)
-
There's a user script out there that restores dislike count. It breaks YouTube's TOS though and who knows, they might go radical and block public access to their API. Two minor corrections are required to get it working with UXP browsers since they don't support optional chaining operator. I also changed the function that periodically checks if the buttons are in place yet to fire every 1,5 s rather than 111 ms. Also not sure why use both @match and @include in the header. @connect should also be added to point to the address the script connects to fetch likes, otherwise, TamperMonkey issues a warning and offers to add it to user whitelist of XHR requests for the script (unless you actually want the warning for some reason). I haven't tested @grant behavior on TamperMonkey yet, but for some reason, at least on Greasemonkey for Pale Moon 3.31.4, GM_xmlhttpRequest can be called without specifying it in @grant. This is strange, why have @grant in the first place then? Edit: Current version of TamperMonkey seems to normally block the special API not specified in @grant.
-
KDE + KWin compositor performance on NVIDIA GPU
UCyborg replied to UCyborg's topic in Other Operating Systems
I turned off KWin's compositing in system settings and got picom to do the compositing instead, I have much smoother desktop now. Installed it: # Arch Linux based distros # May need to update system first if last command doesn't work sudo pacman -Syu sudo pacman -S picom # Debian / Ubuntu based ditros sudo apt install picom Copied its default config file to my home .config folder: # Arch Linux based distros cp /etc/xdg/picom.conf ~/.config/picom.conf # Debian / Ubuntu based distros cp /usr/share/doc/picom/examples/picom.sample.conf ~/.config/picom.conf Adjusted it to my liking: ################################# # 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. # # shadow = false; shadow = true; # The blur radius for shadows, in pixels. (defaults to 12) # shadow-radius = 12; shadow-radius = 7; # The opacity of shadows. (0.0 - 1.0, defaults to 0.75) # shadow-opacity = .75; # The left offset for shadows, in pixels. (defaults to -15) # shadow-offset-x = -15; shadow-offset-x = -7; # The top offset for shadows, in pixels. (defaults to -15) # shadow-offset-y = -15; shadow-offset-y = -7; # Avoid drawing shadows on dock/panel windows. This option is deprecated, # you should use the *wintypes* option in your config file instead. # # no-dock-shadow = false; # Don't draw shadows on drag-and-drop windows. This option is deprecated, # you should use the *wintypes* option in your config file instead. # # no-dnd-shadow = false; # Red color value of shadow (0.0 - 1.0, defaults to 0). # shadow-red = 0; # Green color value of shadow (0.0 - 1.0, defaults to 0). # shadow-green = 0; # Blue color value of shadow (0.0 - 1.0, defaults to 0). # shadow-blue = 0; # Do not paint shadows on shaped windows. Note shaped windows # here means windows setting its shape through X Shape extension. # Those using ARGB background is beyond our control. # Deprecated, use # shadow-exclude = 'bounding_shaped'; # or # shadow-exclude = 'bounding_shaped && !rounded_corners'; # instead. # # shadow-ignore-shaped = ''; # Specify a list of conditions of windows that should have no shadow. # # examples: # shadow-exclude = "n:e:Notification"; # # shadow-exclude = [] shadow-exclude = [ "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", "_GTK_FRAME_EXTENTS@:c" ]; # Specify a X geometry that describes the region in which shadow should not # be painted in, such as a dock window region. Use # shadow-exclude-reg = "x10+0+0" # for example, if the 10 pixels on the bottom of the screen should not have shadows painted on. # # shadow-exclude-reg = ""; # Crop shadow of a window fully on a particular Xinerama screen to the screen. # xinerama-shadow-crop = false; ################################# # Fading # ################################# # Fade windows in/out when opening/closing and when opacity changes, # unless no-fading-openclose is used. # # fading = false; fading = true; # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) # fade-in-step = 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; # Specify a list of conditions of windows that should not be faded. # fade-exclude = []; # 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 inactive windows. (0.1 - 1.0, defaults to 1.0) # inactive-opacity = 1.0; # inactive-opacity = 0.8; # Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default) # frame-opacity = 1.0; # frame-opacity = 0.7; # Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0) # menu-opacity = 1.0; # Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. # inactive-opacity-override = true; inactive-opacity-override = false; # Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) # active-opacity = 1.0; # Dim inactive windows. (0.0 - 1.0, defaults to 0.0) # inactive-dim = 0.0; # Specify a list of conditions of windows that should always be considered focused. # focus-exclude = []; focus-exclude = [ "class_g = 'Cairo-clock'" ]; # Use fixed inactive dim value, instead of adjusting according to window opacity. # inactive-dim-fixed = 1.0; # Specify a list of opacity rules, in the format `PERCENT:PATTERN`, # like `50:name *= "Firefox"`. picom-trans is recommended over this. # Note we don't make any guarantee about possible conflicts with other # programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows. # example: # opacity-rule = [ "80:class_g = 'URxvt'" ]; # # opacity-rule = []; ################################# # Background-Blurring # ################################# # Parameters for background blurring, see the *BLUR* section for more information. # blur-method = # blur-size = 12; # # blur-deviation = false; # Blur background of semi-transparent / ARGB windows. # Bad in performance, with driver-dependent behavior. # The name of the switch may change without prior notifications. # # blur-background = false; # Blur background of windows when the window frame is not opaque. # Implies: # blur-background # Bad in performance, with driver-dependent behavior. The name may change. # # blur-background-frame = false; # Use fixed blur strength rather than adjusting according to window opacity. # 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"; # # blur-kern = ''; blur-kern = "3x3box"; # Exclude conditions for background blur. # blur-background-exclude = []; blur-background-exclude = [ "window_type = 'dock'", "window_type = 'desktop'", "_GTK_FRAME_EXTENTS@:c" ]; ################################# # General Settings # ################################# # Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers. # daemon = false; # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. # `xrender` is the default one. # # backend = "xrender"; backend = "glx"; # Enable/disable VSync. # vsync = false vsync = true; # Enable remote control via D-Bus. See the *D-BUS API* section below for more details. # dbus = false; # Try to detect WM windows (a non-override-redirect window with no # child that has 'WM_STATE') and mark them as active. # # mark-wmwin-focused = false; mark-wmwin-focused = true; # Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused. # mark-ovredir-focused = false; mark-ovredir-focused = true; # Try to detect windows with rounded corners and don't consider them # shaped windows. The accuracy is not very high, unfortunately. # # detect-rounded-corners = false; detect-rounded-corners = true; # Detect '_NET_WM_OPACITY' on client windows, useful for window managers # not passing '_NET_WM_OPACITY' of client windows to frame windows. # # detect-client-opacity = false; detect-client-opacity = true; # Specify refresh rate of the screen. If not specified or 0, picom will # try detecting this with X RandR extension. # # refresh-rate = 60; # Limit picom to repaint at most once every 1 / 'refresh_rate' second to # boost performance. This should not be used with # vsync drm/opengl/opengl-oml # as they essentially does sw-opti's job already, # unless you wish to specify a lower refresh rate than the actual value. # # sw-opti = # Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window, # rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy, # provided that the WM supports it. # # use-ewmh-active-win = false; use-ewmh-active-win = true; # 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. # # unredir-if-possible = false; unredir-if-possible = true; # Delay before unredirecting the window, in milliseconds. Defaults to 0. # unredir-if-possible-delay = 0; # Conditions of windows that shouldn't be considered full-screen for unredirecting screen. unredir-if-possible-exclude = [ "class_g %= 'Microsoft-edge-*'", "class_g = 'Pale moon'", "class_g %= 'Vivaldi-*'", "class_g = 'vlc'" ]; # Use 'WM_TRANSIENT_FOR' to group windows, and consider windows # in the same group focused at the same time. # # detect-transient = false; detect-transient = true; # Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same # group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if # detect-transient is enabled, too. # # detect-client-leader = false; detect-client-leader = true; # Resize damaged region by a specific number of pixels. # A positive value enlarges it while a negative one shrinks it. # If the value is positive, those additional pixels will not be actually painted # to screen, only used in blur calculation, and such. (Due to technical limitations, # with use-damage, those pixels will still be incorrectly painted to screen.) # Primarily used to fix the line corruption issues of blur, # in which case you should use the blur radius value here # (e.g. with a 3x3 kernel, you should use `--resize-damage 1`, # with a 5x5 one you use `--resize-damage 2`, and so on). # May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. # # resize-damage = 1; # Specify a list of conditions of windows that should be painted with inverted color. # Resource-hogging, and is not well tested. # # invert-color-include = []; # GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer. # Might cause incorrect opacity when rendering transparent content (but never # practically happened) and may not work with blur-background. # My tests show a 15% performance boost. Recommended. # # glx-no-stencil = false; # GLX backend: Avoid rebinding pixmap on window damage. # Probably could improve performance on rapid window content changes, # but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.). # Recommended if it works. # # glx-no-rebind-pixmap = false; glx-no-rebind-pixmap = true; # Disable the use of damage information. # This cause the whole screen to be redrawn everytime, instead of the part of the screen # has actually changed. Potentially degrades the performance, but might fix some artifacts. # The opposing option is use-damage # # no-use-damage = false; use-damage = true; # Use X Sync fence to sync clients' draw calls, to make sure all draw # calls are finished before picom starts drawing. Needed on nvidia-drivers # with GLX backend for some users. # # xrender-sync-fence = false; # GLX backend: Use specified GLSL fragment shader for rendering window contents. # See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl` # in the source tree for examples. # # glx-fshader-win = ''; # Force all windows to be painted with blending. Useful if you # have a glx-fshader-win that could turn opaque pixels transparent. # # 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. # # 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) # # max-brightness = 1.0; # Make transparent windows clip other windows like non-transparent windows do, # instead of blending on top of them. # # transparent-clipping = false; # Set the log level. Possible values are: # "trace", "debug", "info", "warn", "error" # in increasing level of importance. Case doesn't matter. # 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. # # log-level = "debug"; 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"; # Show all X errors (for debugging) # show-all-xerrors = false; # Write process ID to a file. # write-pid-path = "/path/to/your/log/file"; # Window type settings # # 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard: # "unknown", "desktop", "dock", "toolbar", "menu", "utility", # "splash", "dialog", "normal", "dropdown_menu", "popup_menu", # "tooltip", "notification", "combo", and "dnd". # # Following per window-type options are available: :: # # fade, shadow::: # Controls window-type-specific shadow and fade settings. # # opacity::: # Controls default opacity of the window type. # # focus::: # Controls whether the window of this type is to be always considered focused. # (By default, all window types except "normal" and "dialog" has this on.) # # full-shadow::: # Controls whether shadow is drawn under the parts of the window that you # normally won't be able to see. Useful when the window has parts of it # transparent, and you want shadows in those areas. # # redir-ignore::: # Controls whether this type of windows should cause screen to become # redirected again after been unredirected. If you have unredir-if-possible # set, and doesn't want certain window to cause unnecessary screen redirection, # you can set this to `true`. # wintypes: { # tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; } dock = { shadow = false; } dnd = { shadow = false; } # popup_menu = { opacity = 0.8; } # dropdown_menu = { opacity = 0.8; } }; I actually use refresh-rate = 59 on my system because primary screen uses 59.93 Hz refresh rate and explicitly setting it like that improves mouse responsiveness. Not anymore due choppy rendering. The config is simple, subtle shadows around window borders, fading effect when activating/deactivating windows, VSync, unredirection enabled for fullscreen windows - useful for games so only their own VSync applies if enabled, compositor gets out of the way either way to not have extra input lag, exceptions may be added as desired since some web browsers and video players may be unredirected when in fullscreen mode, therefore the result is screen tearing. xprop WM_CLASS -> click on the application to get its window class name, second string is needed. It's possible to use pattern matching to catch multiple windows with similar class name with one rule, used above to catch windows of different branches of certain Chromium based web browsers that I happen to know about. Vanilla Chromium and Firefox don't seem to need it. Some settings may need adjusting depending on the environment. Config changes apply as soon as the file is saved while picom is running. For having picom auto-start, I researched how to get systemd to launch it, so I basically turned it into systemd managed service. Running: systemctl --user --full --force edit picom.service Will result in ~/.config/systemd/user folder being created if it doesn't exist yet where a text file picom.service will appear with the following content you paste in the editor that opens: [Unit] Description=Picom X compositor Documentation=man:picom(1) PartOf=graphical-session.target StartLimitBurst=3 StartLimitIntervalSec=60 [Service] ExecCondition=sh -c "~/check_x11.sh" ExecStart=/usr/bin/picom Restart=on-failure RestartSec=10 [Install] WantedBy=graphical-session.target The above references script check_x11.sh, placed directly in user's home folder, it ensures Picom isn't started when logging into Wayland session since it only supports Xorg / X11: #!/bin/bash if [ "$XDG_SESSION_TYPE" == "x11" ] then exit 0 else exit 1 fi Then finally: # Enable service auto-start and start it now systemctl --user --now enable picom.service You may be reading this in the future where the above may already be sufficient and results in picom starting after other services when it's supposed to at login, but otherwise, in case of using KDE desktop environment, it will only work if you have systemd version >= 246 and Plasma >= 5.21 and explicitly enable desktop environment setting to have Plasma services started up by systemd: kwriteconfig5 --file startkderc --group General --key systemdBoot true OTHER DESKTOP ENVIRONMENTS MAY NEED DIFFERENT STEPS TO GET IT WORKING PROPERLY WITH SYSTEMD! IT SHOULD ALSO BE ENSURED THAT THE DESKTOP ENVIRONMENT DOESN'T HAVE THEIR OWN COMPOSITOR OR HAVE IT DISABLED. EASIEST METHOD TO AUTO-START IS PROBABLY THROUGH DESKTOP ENVIRONMENT'S GUI FOR ADDING STARTUP ENTRIES, THOUGH THAT DOESN'T PROVIDE FACILITY TO RESTART IT IN ODD CASE OF FAILURE / CRASH. The file mentioned in the above command is located in ~/.config folder. This desktop's services being managed by systemd is relatively recent development, there's still some room for improvement (Plasma and the systemd boot). With the above disabled, picom may still be started by systemd by replacing using WantedBy=default.target in service config file under [Install] section. Reload this specific service's config by running: systemctl --user reenable picom.service default.target may cause it to start when it's not supposed to (console login?) so it won't be able to do anything and exit (and repeat that 2 more times). Following described procedures alone skips digging deeper into systemd specifics.