{"id":18508885,"url":"https://github.com/flaport/dwm","last_synced_at":"2025-10-28T21:08:22.120Z","repository":{"id":54784603,"uuid":"189856304","full_name":"flaport/dwm","owner":"flaport","description":"My dwm fork (upstream: https://git.suckless.org/dwm)","archived":false,"fork":false,"pushed_at":"2022-03-30T09:56:08.000Z","size":6376,"stargazers_count":10,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-04T01:51:42.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flaport.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}},"created_at":"2019-06-02T14:26:55.000Z","updated_at":"2023-11-19T18:21:10.000Z","dependencies_parsed_at":"2022-08-14T02:51:29.638Z","dependency_job_id":null,"html_url":"https://github.com/flaport/dwm","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/flaport%2Fdwm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaport%2Fdwm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaport%2Fdwm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flaport%2Fdwm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flaport","download_url":"https://codeload.github.com/flaport/dwm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232663744,"owners_count":18557647,"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-11-06T15:15:43.171Z","updated_at":"2025-10-28T21:08:22.044Z","avatar_url":"https://github.com/flaport.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dwm - dynamic window manager\n\n`dwm` is an extremely fast, small, and dynamic window manager for X.\n\n## Patches\n\nEach patch applied to this version of dwm lives in a separate branch\nin this repository. Such a branch can either be a vanilla patch like\nthey can be downloaded from the suckless website, or a modified patch,\nor a completely custom patch. Below you find all the applied patches\nin the order they were merged into the master branch of this\nrepository.\n\n#### systray+alpha\n\n- download [my combined patch](https://github.com/flaport/dwm/compare/upstream..systray+alpha.diff) ‧ [my alpha patch](https://github.com/flaport/dwm/compare/upstream..alpha.diff) ‧ [my systray patch](https://github.com/flaport/dwm/compare/upstream..systray.diff)\n- see [combined branch](https://github.com/flaport/dwm/tree/systray+alpha) ‧ [alpha branch](https://github.com/flaport/dwm/tree/alpha) ‧ [systray branch](https://github.com/flaport/dwm/tree/systray)\n\nCombining the `alpha` patch with the `systray` patch is not easy.\nHence, I first combined them in a separate branch, `systray+alpha`,\nbefore merging them into master. I highly recommend using the combined\npatch if you want both `alpha` and `systray` at the same time.\n\n#### autostart\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..autostart.diff)\n- see [branch](https://github.com/flaport/dwm/tree/autostart)\n- see example [dwm_autostart](dwm_autostart) script.\n\nThe vanilla autostart patch from the suckless website is already very\nminimal. In this modified patch, I removed the blocking call and\nassumed the script `dwm_autostart` is added to the path. An example\n[`dwm_autostart`](dwm_autostart) script can be found in this repository.\n\n#### interactivestatusbar\n\n- download [my custom patch](https://github.com/flaport/dwm/compare/upstream..interactivestatusbar.diff)\n- see [branch](https://github.com/flaport/dwm/tree/interactivestatusbar)\n- see example [dwm_status](dwm_status) script.\n\nThis is a completely custom patch I use to make the `dwm` status bar\ninteractive. The statusbar is still set with `xsetroot`, however a\nunique character is used as delimiter between each widget. By using\nthis delimiter, `dwm` can figure out which widget was clicked and\ncalls in turn `dwm_status` (which should be placed in your path) with\ntwo arguments: the widget index and the mouse button. The `dwm_status`\nscript can then use that info to start a specific action. An example\n[`dwm_status`](dwm_status) script can be found in this repository.\nNote that the supplied `dwm_status` script requires\n[FontAwesome](https://github.com/gabrielelana/awesome-terminal-fonts/blob/master/fonts/fontawesome-regular.ttf)\nto render the status bar icons.\n\n#### hiddentag\n\n- download [my custom patch](https://github.com/flaport/dwm/compare/upstream..hiddentag.diff)\n- see [branch](https://github.com/flaport/dwm/tree/hiddentag)\n\nThis small custom patch adds a hidden (invisible) tag to the tagset.\n\n#### mastermon\n\n- download [my custom patch](https://github.com/flaport/dwm/compare/upstream..mastermon.diff)\n- see [branch](https://github.com/flaport/dwm/tree/mastermon)\n\nThe mastermon patch introduces a \"master\" monitor. The master monitor\nis the only monitor with tags. All other monitors will have no tags.\nThe tags from the master can be accessed (enabled/disabled/send to)\nwith the normal keybindings from any monitor. This makes the tag\nsystem a lot less confusing in a multi monitor setup.\n\nWhy is this useful? In most multi-monitor setups you'll usually have a\npreferred monitor to work on anyway. Other monitors will be less\nimportant and will mostly be used to station content in view. If this\nresembles your workflow, this patch is for you!\n\nSome new kind of keybindings were added: `mod+[z|x|c|v]` to move focus\nto monitor 1,2,3 or 4 and `mod+shift+[z|x|c|v]` to move the focused\nwindow to monitor 1,2,3 or 4. Moreover, `mod+ctrl+m` can be used to \"promote\"\nthe current monitor to the master monitor and `mod+ctrl+tab` to\nquickly swap the content between two adjacent monitors.\n\n#### tilegap\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..tilegap.diff)\n- see [branch](https://github.com/flaport/dwm/tree/tilegap)\n\nGaps between windows. Who doesn't want them? I removed the borders\nfrom non-active windows as well.\n\n#### restartsig\n\n- download [patch](https://github.com/flaport/dwm/compare/upstream..restartsig.diff)\n- see [branch](https://github.com/flaport/dwm/tree/restartsig)\n\nRestart `dwm` with `mod+ctrl+shift+q`\n\n#### libxft-bgra\n\n- download [my custom patch](https://github.com/flaport/dwm/compare/upstream..libxft-bgra.diff)\n- see [branch](https://github.com/flaport/dwm/tree/libxft-bgra)\n\nEnables color emojis when\n[`libxft-bgra`](https://gitlab.freedesktop.org/xorg/lib/libxft/-/merge_requests/1)\nis installed on the system (currently only checks this by doing a\nPacman query). If `libxft-bgra` is not installed, color emojis will be\nignored.\n\n#### xrdb\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..xrdb.diff)\n- see [branch](https://github.com/flaport/dwm/tree/xrdb)\n\nRead in colors from Xresources and apply them to dwm.\n\n#### center\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..center.diff)\n- see [branch](https://github.com/flaport/dwm/tree/center)\n\nPlace floating windows in the center of the screen. I fixed this patch\nfor multi-monitor setups.\n\n#### fakefullscreen\n\n- download [patch](https://github.com/flaport/dwm/compare/upstream..fakefullscreen.diff)\n- see [branch](https://github.com/flaport/dwm/tree/fakefullscreen)\n\nOnly allow clients to fullscreen into space currently given to them.\n\n#### fullscreen\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..fullscreen.diff)\n- see [branch](https://github.com/flaport/dwm/tree/fullscreen)\n\nDue to `fakefullscreen`, which limits the fullscreen of an application\nto its window size, we need a way to force fullscreen when we want it:\n`mod+ctrl+f`. I\n\n#### cyclelayouts\n\n- download [my modified patch](https://github.com/flaport/dwm/compare/upstream..cyclelayouts.diff)\n- see [branch](https://github.com/flaport/dwm/tree/cyclelayouts)\n\nSimply cycle through the available layouts with `mod+;`.\n\n#### swallow\n\n- download [patch](https://github.com/flaport/dwm/compare/upstream..swallow.diff)\n- see [branch](https://github.com/flaport/dwm/tree/swallow)\n\nIf a terminal spawns a process without disowning it, the terminal will try to \"swallow\" the program,\ni.e. the terminal hides itself behind the window it spawned until the spawned window/process is stopped.\n\n#### sticky\n\n- download [patch](https://github.com/flaport/dwm/compare/upstream..sticky.diff)\n- see [branch](https://github.com/flaport/dwm/tree/sticky)\n\nMake a window 'sticky', i.e. show it on _all_ tags with `mod+shift+o`.\n\n#### pertag\n\n- download [patch](https://github.com/flaport/dwm/compare/upstream..pertag.diff)\n- see [branch](https://github.com/flaport/dwm/tree/pertag)\n\nDefault 'pertag' patch: this patch keeps layout, mwfact, barpos and nmaster per tag.\n\n## Older versions\n\nThis repository also contains some older versions of my dwm build as\nseperate branches of this repository:\n\n#### dwm v2\n\n- download as [patch](https://github.com/flaport/dwm/compare/upstream..v2.diff)\n- see [branch](https://github.com/flaport/dwm/tree/v2)\n\nthe current version (should be more or less up to date with master)\n\n#### dwm v1\n\n- download as [patch](https://github.com/flaport/dwm/compare/upstream..v1.diff)\n- see [branch](https://github.com/flaport/dwm/tree/v1)\n\nThe previous version: a build with similar features as v2 but with\nmore bugs and less clean separation of the applied patches.\n\n#### dwm v0\n\n- download as [patch](https://github.com/flaport/dwm/compare/upstream..v0.diff)\n- see [branch](https://github.com/flaport/dwm/tree/v0)\n\nMy first attempt at customizing `dwm`. Only here to archive. I do not\nrecommend building this one.\n\n#### upstream\n\nThis branch attempts to be up to date with upstream dwm:\n[git.suckless.org/dwm](http://git.suckless.org/dwm).\n\n## Requirements\n\nIn order to build `dwm` you need the Xlib header files.\n\n## Installation\n\nEdit config.mk to match your local setup (`dwm` is installed into\nthe `/usr/local` namespace by default).\n\nAfterwards enter the following command to build and install `dwm` (if\nnecessary as root):\n\n```\n    make clean install\n```\n\n## Running dwm\n\nAdd the following line to your `.xinitrc` to start `dwm` using `startx`:\n\n```\n    exec dwm\n```\n\nIn order to connect `dwm` to a specific display, make sure that\nthe `DISPLAY` environment variable is set correctly, e.g.:\n\n```\n    DISPLAY=foo.bar:1 exec dwm\n```\n\n(This will start `dwm` on display `:1` of the host `foo.bar`.)\n\nIn order to display status info in the bar, you can do something\nlike this in your `.xinitrc`:\n\n```\n    while xsetroot -name \"`date` `uptime | sed 's/.*,//'`\"\n    do\n    \tsleep 1\n    done \u0026\n    exec dwm\n```\n\n## Configuration\n\nThe configuration of `dwm` is done by creating a custom `config.h`\nand (re)compiling the source code.\n\n## Credits\n\nThis `dwm` fork is based on the suckless upstream: [https://dwm.suckless.org/](https://dwm.suckless.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaport%2Fdwm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflaport%2Fdwm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflaport%2Fdwm/lists"}