{"id":22656914,"url":"https://github.com/icelk/xsnow-comp-patch","last_synced_at":"2025-10-26T05:06:57.854Z","repository":{"id":104833817,"uuid":"52688318","full_name":"Icelk/xsnow-comp-patch","owner":"Icelk","description":"Compositor-friendly patch for Xsnow","archived":false,"fork":false,"pushed_at":"2022-11-28T00:34:39.000Z","size":871,"stargazers_count":36,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T21:47:35.886Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Icelk.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-02-27T20:55:56.000Z","updated_at":"2024-12-05T20:35:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"0d6e8fb0-538d-439d-b6f0-e71e390c916e","html_url":"https://github.com/Icelk/xsnow-comp-patch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Icelk%2Fxsnow-comp-patch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Icelk%2Fxsnow-comp-patch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Icelk%2Fxsnow-comp-patch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Icelk%2Fxsnow-comp-patch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Icelk","download_url":"https://codeload.github.com/Icelk/xsnow-comp-patch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246156419,"owners_count":20732397,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-09T10:16:52.070Z","updated_at":"2025-10-26T05:06:52.821Z","avatar_url":"https://github.com/Icelk.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"xsnow-comp-patch: Compositor-Friendly Patch for Xsnow\n=====================================================\n\n![the patch in action](screenshot.png)\n\nThis is a patch that teaches [Rick Jansen's Xsnow 1.42][xsnow] how to play\nnicely with manual WM setups that use a standalone compositor like compton.\n\n[xsnow]:http://dropmix.xs4all.nl/rick/Xsnow/\n\n\nHow it works\n============\n\nxsnow draws on the X Window System's root window, which compton obscures.  The\npatched version creates a new bottom-level window and draws on it instead, but\nonly if it detects a running compositor or if xsnow is invoked with the\n`-nouseroot` flag. The new window uses pure 32-bit black as a background color,\nwhich transparency-enabled compositors should render as transparent.\n\nYou may want to use the `-nouseroot` flag if you want xsnow to have\na background color, but you don't want your background to retain that color\nwhen xsnow terminates.\n\nThe new window has a class and classname of `xsnow`.\n\n\nKnown Bugs\n==========\n\n- The patch relies on some inefficient magic to show the snow, so running xsnow\nwith the patch can **increase Xorg's CPU usage by up to 8 percentage points and\nincrease compton's by up to 4.** Fixing this may be impossible.\n- The patch also changes xsnow's color environment to 32-bit, which appears to be\nincompatible with Santa's pixmaps. For now, Santa is automatically disabled if\nrunning with a compositor or `-nouseroot`.\n- The patched version is greedy and breaks `wew` (from wmutils/opt)'s XCB_ENTER_NOTIFY\nnotifications. See issue #1.\n\n\nCompatibility\n=============\n\nI have not tested the patch extensively. Please let me know if it works for\nyour setup.\n\nTesting shows that xsnow-comp-patch works with:\n\n- bspwm + compton\n- i3/-gaps + compton\n- fluxbox + compton\n- xmonad + compton\n\nBut doesn't work with:\n\n- Unity\n\n\nDependencies\n============\n\nLibrary / Program | Ubuntu / Debian |  Arch\n----------------- | --------------- | -------\n     libx11       |   libx11-dev    | libx11\n   libx11-xcb     | libx11-xcb-dev  | libxcb\n      libxt       |    libxt-dev    |  libxt\n     libxpm       |   libxpm-dev    | libxpm\n     libxext      |   libxext-dev   | libxext\n      xmkmf       |   xutils-dev    |  imake\n\n\nInstallation\n============\n\nWith a Package\n--------------\n\n### Arch Linux\n\nInstall [`xsnow-comp-patch-git`][aur] from the AUR.\n\n[aur]:https://aur.archlinux.org/packages/xsnow-comp-patch-git/\n\nBuilding from Source\n--------------------\n\n1. If you plan to install xsnow-comp-patch to your system, you should remove the\n   xsnow package first.\n\n2. Save the latest version of xsnow-comp.patch from this repository.\n\n        mkdir -p /your/builds/xsnow-comp/\n        cd /your/builds/xsnow-comp/\n        git clone 'this-repository' patch/\n\n3. Download the latest version of xsnow from its homepage and unpack it:\n\n        wget 'http://dropmix.xs4all.nl/rick/Xsnow/xsnow-1.42.tar.gz'\n        tar -xzf xsnow-1.42.tar.gz\n\n4. Change into the unpacked xsnow directory and apply the patch:\n\n        cd xsnow-1.42\n        cat ../patch/xsnow-comp.patch | patch -p1\n\n5.  Run make and install:\n\n        xmkmf\n        make depend\n        make\n        sudo make install\n        sudo make install.man\n\n\nLicensing\n=========\n\nXsnow has not been released under an open source license, which is why I'm not\nhosting the full modified source code for xsnow-comp-patch. Rick Jansen's full\ncopyright statement follows:\n\n\n\u003e Xsnow is available freely and you may give it to other people as is,\n\u003e but I retain all rights. Therefore it does not classify as 'Public\n\u003e Domain' software. It *is* allowed to package Xsnow for Unix/Linux \n\u003e distributions, CD-Roms etc, and to make the necessary changes to\n\u003e makefiles etc. to facilitate this.\n\nPlease feel free to redistribute this patch however you like. The code I have\nadded falls under the MIT license, which is included in the patch.\n\n\nContributing\n============\n\nOnce you apply the patch to xsnow, you'll have my development environment. If\nyou want to contribute, you can file a pull request on GitHub or send patches\nto austin@angerson.org.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficelk%2Fxsnow-comp-patch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficelk%2Fxsnow-comp-patch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficelk%2Fxsnow-comp-patch/lists"}