{"id":13642891,"url":"https://github.com/jaelpark/chamferwm","last_synced_at":"2025-04-20T21:31:47.849Z","repository":{"id":50980515,"uuid":"148508739","full_name":"jaelpark/chamferwm","owner":"jaelpark","description":"A tiling X11 window manager with Vulkan compositor.","archived":false,"fork":false,"pushed_at":"2024-09-28T10:23:02.000Z","size":1518,"stargazers_count":253,"open_issues_count":7,"forks_count":11,"subscribers_count":19,"default_branch":"master","last_synced_at":"2024-11-09T14:39:34.561Z","etag":null,"topics":["compositor","vulkan","x11","x11-wm","xcb","xorg"],"latest_commit_sha":null,"homepage":"https://jaelpark.github.io/chamferwm-docs/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaelpark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-09-12T16:21:59.000Z","updated_at":"2024-11-03T09:49:44.000Z","dependencies_parsed_at":"2024-01-10T21:01:39.354Z","dependency_job_id":"d334651c-02af-4c77-ae3e-515207ea544a","html_url":"https://github.com/jaelpark/chamferwm","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/jaelpark%2Fchamferwm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaelpark%2Fchamferwm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaelpark%2Fchamferwm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaelpark%2Fchamferwm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaelpark","download_url":"https://codeload.github.com/jaelpark/chamferwm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249965544,"owners_count":21352924,"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":["compositor","vulkan","x11","x11-wm","xcb","xorg"],"created_at":"2024-08-02T01:01:37.733Z","updated_at":"2025-04-20T21:31:47.495Z","avatar_url":"https://github.com/jaelpark.png","language":"C++","funding_links":[],"categories":["C++","Packages"],"sub_categories":["window-managers"],"readme":"# chamferwm\nA tiling window manager with Vulkan based compositor. Vulkan compositor for external X11 window managers. [Documentation](https://jaelpark.github.io/chamferwm-docs/)\n\n\u003e **Note**\n\u003e Support for DMA-buf import has been added, and *has been made default*. This can be disabled with `--memory-import-mode=1`, which will revert to host pointer import method.\n\n\u003e **Note**\n\u003e Initial support for standalone compositor feature has been merged. The program can now be configured to run the Vulkan compositor on external X11 window managers. See below for instructions.\n\n[![Preview](http://users.jyu.fi/~jaelpark/gitres/scrot-chamfer-1.jpg)](http://users.jyu.fi/~jaelpark/gitres/scrot-chamfer.png)\n\n## Features\nWindow manager:\n\n - Dynamic horizontal and vertical tiling with gaps and stacking\n - Specify container size restrictions, overlap when necessary\n - Resize and translate individual containers in their place while keeping the surrounding layout\n - Floating containers and automatic dialog, dock, widget etc. handling\n - Multiple named workspaces\n - Yank and paste containers to move them within the tree hierarchy along with typical move operations\n - Configuration with python, scriptable behaviour with client and container specific callbacks\n - Fully keyboard controllable\n\nCompositor:\n \n - Vulkan renderer\n - Arbitrary window decorations and borders with user supplied shaders\n - Per-client materials\n - Automatically disable for fullscreen applications\n - Optional, alternatively use any other external compositor\n - Standalone compositor mode (beta) to be used in combination with any other window manager\n\n## Installing\n##### Prerequisites\n\n - XCB libraries\n - Vulkan SDK\n - glm\n - Python 3.6+ and boost modules\n - python-xlib\n - [shaderc Shader compiler](https://github.com/google/shaderc)\n - FreeType2\n - HarfBuzz\n - fontconfig\n\n##### General setup\n\nCurrently a PKGBUILD is available for testing purposes. Install from [AUR](https://aur.archlinux.org/packages/chamfer-git/), or run meson to build manually. The package from AUR will install a default configuration and the precompiled shaders to /usr/share/chamfer/. Copy the configuration to another location to make modifications. Put the following line to your .xinitrc:\n\n```sh\nexec chamfer --config=/usr/share/chamfer/config/config.py --shader-path=/usr/share/chamfer/shaders/\n```\n\nWhen multiple rendering devices are available, make the choice with `--device-index=n`, where `n` is the zero-based index of the device (default = 0). The ordering follows the list reported by `vulkaninfo` utility. Launch Xorg with `startx`.\n\n - To automatically let fullscreen applications bypass the compositor, use `--unredir-on-fullscreen`. A dedicated workspace with the compositor always disabled is provided, and by default bound to Meta+0.\n - NVIDIA users may have to add ``Option \"AllowSHMPixmaps\" \"1\"`` to their Xorg configuration, if shared memory import is used (`--memory-import-mode=1`).\n - For compositor compatibility mode if encountering any issues, use `--memory-import-mode=1` or `2` and/or `--no-scissoring`.\n\nTo run the WM without the integrated compositor, use\n\n```sh\nexec chamfer --config=/usr/share/chamfer/config/config.py -n\n```\n\nIn this case, any other external compositor may be used.\n\n##### Compositor mode for other WMs\n\nThe Vulkan compositor can be used together with external X11 window managers. To launch the program in this mode, run\n\n```sh\nchamfer -C --config=/usr/share/chamfer/config/config.py --shader-path=/usr/share/chamfer/shaders/\n```\n\n##### Style and decorations\n\nThe default \"demo\" style draws rounded borders around the windows, as well as shadows. The style can be changed by [editing the shaders section of the config](https://github.com/jaelpark/chamferwm/blob/5ed340fece89eda381f25a8354a8c2dc18dd8787/config/config.py#L53-L71). Changing the style attributes (color, borders etc.) of the stock shaders is at the moment only possible by editing the values in the fragment shader itself, and then rebuilding. For a complete custom look, the shaders can be replaced entirely. Shaders can be specified on per-window basis, enabling some interesting looks for your desktop.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaelpark%2Fchamferwm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaelpark%2Fchamferwm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaelpark%2Fchamferwm/lists"}