-
-
Notifications
You must be signed in to change notification settings - Fork 74
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/ChrisTitusTech/dwm-titus
- Loading branch information
Showing
235 changed files
with
3,818 additions
and
4,836 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Pull Request | ||
|
||
## Title | ||
<!--[Provide a succinct and descriptive title for the pull request.]--> | ||
|
||
## Type of Change | ||
- [ ] New feature | ||
- [ ] Bug fix | ||
- [ ] Documentation Update | ||
- [ ] Refactoring | ||
- [ ] Hotfix | ||
- [ ] Security patch | ||
- [ ] UI/UX improvement | ||
|
||
## Description | ||
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]--> | ||
|
||
## Testing | ||
<!--[Detail the testing you have performed to ensure that these changes function as intended. Include information about any added tests.]--> | ||
|
||
## Impact | ||
<!--[Discuss the impact of your changes on the project. This might include effects on performance, new dependencies, or changes in behaviour.]--> | ||
|
||
## Issue related to PR | ||
<!--[What issue/discussion is related to this PR (if any)]--> | ||
- Resolves # | ||
|
||
## Additional Information | ||
<!--[Any additional information that reviewers should be aware of.]--> | ||
|
||
## Checklist | ||
- [ ] My code adheres to the coding and style guidelines of the project. | ||
- [ ] I have performed a self-review of my own code. | ||
- [ ] I have commented my code, particularly in hard-to-understand areas. | ||
- [ ] I have made corresponding changes to the documentation. | ||
- [ ] My changes generate no errors/warnings/merge conflicts. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# binaries | ||
/dwm | ||
|
||
# Patch Fail | ||
*.rej | ||
*.orig | ||
|
||
# Object Files | ||
*.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,74 +1,127 @@ | ||
dwm - dynamic window manager | ||
============================ | ||
dwm is an extremely fast, small, and dynamic window manager for X. | ||
<div align="center"> | ||
<img src="./dwm-logo-bordered.png" alt="dwm-logo-bordered" width="195" height="90"/> | ||
|
||
This is my personal fork with following patches: | ||
# dwm - dynamic window manager | ||
### dwm is an extremely ***fast***, ***small***, and ***dynamic*** window manager for X. | ||
|
||
+ alwayscenter | ||
+ alwaysfullscreen | ||
+ auto start | ||
+ cfacts | ||
+ chatterino bottom | ||
+ cool autostart | ||
+ fakefullscreen client (with resize fix for chrome-based browsers + noborder fix) | ||
+ multikeycode | ||
+ movestack | ||
+ noborder (floating + border flicker fix) | ||
+ pertag | ||
+ placemouse | ||
+ resizepoint | ||
+ statuscmd | ||
+ swallow | ||
+ switchtag | ||
+ systray | ||
+ true fullscreen | ||
+ hide vacant tags | ||
+ warp v2 | ||
+ winicon | ||
</div> | ||
|
||
Some patches are rewritten or modified to work together. | ||
--- | ||
This is my **Personal Fork** with following patches: | ||
|
||
<details> | ||
<summary>Click to see the list of patches</summary> | ||
|
||
Requirements | ||
------------ | ||
In order to build dwm you need the Xlib header files. | ||
- alwayscenter | ||
- alwaysfullscreen | ||
- auto start | ||
- cfacts | ||
- chatterino bottom | ||
- cool autostart | ||
- fakefullscreen client (with resize fix for chrome-based browsers + noborder fix) | ||
- multikeycode | ||
- movestack | ||
- noborder (floating + border flicker fix) | ||
- pertag | ||
- placemouse | ||
- resizepoint | ||
- statuscmd | ||
- swallow | ||
- systray | ||
- true fullscreen | ||
- hide vacant tags | ||
- warp v2 | ||
- winicon | ||
|
||
**Note**: Some patches are rewritten or modified to work together. | ||
</details> | ||
|
||
Installation | ||
------------ | ||
Edit config.mk to match your local setup (dwm is installed into | ||
the /usr/local namespace by default). | ||
## 📋 Prerequisites | ||
This guide assumes your system has the latest updates before going ahead with the installation. | ||
|
||
Afterwards enter the following command to build and install dwm (if | ||
necessary as root): | ||
> [!NOTE] | ||
> You may want to keep the source directories of the tools you download in a suitable location for future reference as you may need to recompile them to apply configuration changes. | ||
make clean install | ||
<details> | ||
<summary>Arch</summary> | ||
|
||
Install dependencies: | ||
|
||
Running dwm | ||
----------- | ||
Add the following line to your .xinitrc to start dwm using startx: | ||
```sh | ||
sudo pacman -S --needed base-devel extra/git extra/libx11 extra/libxcb extra/libxinerama extra/libxft extra/imlib2 | ||
``` | ||
|
||
exec dwm | ||
If you find yourself missing a library then this can usually be found by searching for the file name using pacman: | ||
|
||
In order to connect dwm to a specific display, make sure that | ||
the DISPLAY environment variable is set correctly, e.g.: | ||
```sh | ||
$ pacman -F Xlib-xcb.h | ||
extra/libx11 1.6.12-1 [installed: 1.7.2-1] | ||
usr/include/X11/Xlib-xcb.h | ||
``` | ||
|
||
DISPLAY=foo.bar:1 exec dwm | ||
</details> | ||
|
||
(This will start dwm on display :1 of the host foo.bar.) | ||
<details> | ||
<summary>Debian/Ubuntu</summary> | ||
|
||
In order to display status info in the bar, you can do something | ||
like this in your .xinitrc: | ||
Install dependencies: | ||
|
||
while xsetroot -name "`date` `uptime | sed 's/.*,//'`" | ||
do | ||
sleep 1 | ||
done & | ||
exec dwm | ||
```sh | ||
sudo apt install build-essential git libx11-dev libx11-xcb-dev libxcb-res0-dev libxinerama-dev libxft-dev libimlib2-dev | ||
``` | ||
|
||
It is worth checking the version of gcc on debian based systems as they may come with older implementations that can result in compilation errors. | ||
|
||
Configuration | ||
------------- | ||
The configuration of dwm is done by creating a custom config.h | ||
and (re)compiling the source code. | ||
```sh | ||
gcc --version | ||
``` | ||
|
||
You would expect at least v8.x or above here. | ||
|
||
If you find yourself missing a library then this can usually be found by searching for the file name using apt-file, a tool that have to be installed separately: | ||
|
||
```sh | ||
$ sudo apt install apt-file | ||
$ sudo apt-file update | ||
$ apt-file search xcb/res.h | ||
libxcb-res0-dev: /usr/include/xcb/res.h | ||
``` | ||
|
||
</details> | ||
|
||
|
||
<details> | ||
<summary>Void Linux</summary> | ||
|
||
Install dependencies: | ||
|
||
```sh | ||
sudo xbps-install -Su base-devel libX11-devel libXft-devel libXinerama-devel freetype-devel fontconfig-devel libxcb-devel imlib2-devel | ||
``` | ||
|
||
If you find yourself missing a library then this can usually be found by searching for the file name using xlocate, a tool that have to be installed separately via the xtools package: | ||
|
||
```sh | ||
$ xlocate yajl/yajl_gen.h | ||
yajl-devel-2.1.0._4 /usr/include/yajl/yajl_gen.h | ||
``` | ||
|
||
</details> | ||
|
||
## 🛠️ Installation | ||
Clone the repository, then compile and install. | ||
|
||
```sh | ||
git clone https://github.com/ChrisTitusTech/dwm-titus.git && \ | ||
cd dwm-titus && \ | ||
make && \ | ||
sudo make install | ||
``` | ||
|
||
- A dwm.desktop file will be placed in `/usr/share/xsessions/` so if you are using a login manager you should now be able to select dwm as the window manager when logging in. | ||
|
||
- If you do not use a login manager then you already know what you are doing. Add `exec dwm` at the end of your `~/.xinitrc` file. | ||
|
||
> [!TIP] | ||
> - By default new terminals are opened by using the keyboard shortcut of <kbd>SUPER</kbd> + <kbd>X</kbd> while rofi is started using <kbd>SUPER</kbd>+<kbd>R</kbd> | ||
> - Check `config.h` for the keybindings, and change them according to your preference. |
Oops, something went wrong.