Improve yoo

This commit is contained in:
Anas Elgarhy 2022-10-31 13:32:01 +02:00
parent 0f156ff3a9
commit 44f85c76ec
21 changed files with 599 additions and 1278 deletions

View File

@ -26,4 +26,6 @@ add_executable(yo_dwm
src/movestack.c
src/transient.c
src/util.c
src/util.h)
src/util.h src/keys/mouse.c src/keys/mouse.h src/keys/functions.h src/dwm.h)
target_link_libraries(yo_dwm X11 Xft Xinerama)

View File

@ -0,0 +1,97 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.23.2/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.23.2/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCommonLanguageInclude.cmake"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/anas/suckless_utils/yo-dwm/cmake-build-debug",
"source" : "/home/anas/suckless_utils/yo-dwm"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@ -1,406 +0,0 @@
{
"inputs" :
[
{
"path" : "CMakeLists.txt"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeSystem.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.23.2/CMakeSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeSystemSpecificInitialize.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineCompilerId.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCompilerIdDetection.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/ADSP-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Borland-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Clang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Cray-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GHS-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/HP-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IAR-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Intel-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/MSVC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/PGI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/PathScale-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/SCO-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/TI-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/Watcom-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/XL-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeFindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU-FindBinUtils.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.23.2/CMakeCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeSystemSpecificInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeGenericSystem.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeInitializeConfigs.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/UnixPaths.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeLanguageInformation.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux-GNU-C.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Platform/Linux-GNU.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCommonLanguageInclude.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeTestCCompiler.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineCompilerABI.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeParseImplicitIncludeInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeParseImplicitLinkInfo.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeParseLibraryArchitecture.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeTestCompilerCommon.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCCompilerABI.c"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeDetermineCompileFeatures.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/Internal/FeatureTesting.cmake"
},
{
"isCMake" : true,
"isExternal" : true,
"path" : "/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/share/cmake-3.23/Modules/CMakeCCompiler.cmake.in"
},
{
"isGenerated" : true,
"path" : "cmake-build-debug/CMakeFiles/3.23.2/CMakeCCompiler.cmake"
}
],
"kind" : "cmakeFiles",
"paths" :
{
"build" : "/home/anas/suckless_utils/yo-dwm/cmake-build-debug",
"source" : "/home/anas/suckless_utils/yo-dwm"
},
"version" :
{
"major" : 1,
"minor" : 0
}
}

View File

@ -39,7 +39,7 @@
{
"directoryIndex" : 0,
"id" : "yo_dwm::@6890427a1f51a3e7e1df",
"jsonFile" : "target-yo_dwm-Debug-619ca603d9f8a027e9c4.json",
"jsonFile" : "target-yo_dwm-Debug-631731075c5f906219d9.json",
"name" : "yo_dwm",
"projectIndex" : 0
}

View File

@ -26,7 +26,7 @@
"objects" :
[
{
"jsonFile" : "codemodel-v2-a8c048656fcb1fb7324c.json",
"jsonFile" : "codemodel-v2-47532c44014cf30e75ae.json",
"kind" : "codemodel",
"version" :
{
@ -44,7 +44,7 @@
}
},
{
"jsonFile" : "cmakeFiles-v1-ad9218d2c69b47be0e82.json",
"jsonFile" : "cmakeFiles-v1-10ab7de84491b2ad21c0.json",
"kind" : "cmakeFiles",
"version" :
{
@ -76,7 +76,7 @@
},
"cmakeFiles-v1" :
{
"jsonFile" : "cmakeFiles-v1-ad9218d2c69b47be0e82.json",
"jsonFile" : "cmakeFiles-v1-10ab7de84491b2ad21c0.json",
"kind" : "cmakeFiles",
"version" :
{
@ -86,7 +86,7 @@
},
"codemodel-v2" :
{
"jsonFile" : "codemodel-v2-a8c048656fcb1fb7324c.json",
"jsonFile" : "codemodel-v2-47532c44014cf30e75ae.json",
"kind" : "codemodel",
"version" :
{

View File

@ -11,6 +11,7 @@
"commands" :
[
"add_executable",
"target_link_libraries",
"include_directories"
],
"files" :
@ -31,23 +32,29 @@
{
"command" : 1,
"file" : 0,
"line" : 31,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
"line" : 6,
"parent" : 0
},
{
"command" : 1,
"command" : 2,
"file" : 0,
"line" : 7,
"parent" : 0
},
{
"command" : 1,
"command" : 2,
"file" : 0,
"line" : 8,
"parent" : 0
},
{
"command" : 1,
"command" : 2,
"file" : 0,
"line" : 9,
"parent" : 0
@ -69,19 +76,19 @@
"includes" :
[
{
"backtrace" : 2,
"backtrace" : 3,
"path" : "/home/anas/suckless_utils/yo-dwm/."
},
{
"backtrace" : 3,
"backtrace" : 4,
"path" : "/home/anas/suckless_utils/yo-dwm/src"
},
{
"backtrace" : 4,
"backtrace" : 5,
"path" : "/home/anas/suckless_utils/yo-dwm/src/keys"
},
{
"backtrace" : 5,
"backtrace" : 6,
"path" : "/home/anas/suckless_utils/yo-dwm/src/layouts"
}
],
@ -106,7 +113,8 @@
13,
14,
15,
16
16,
18
]
}
],
@ -122,6 +130,21 @@
{
"fragment" : "",
"role" : "flags"
},
{
"backtrace" : 2,
"fragment" : "-lX11",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "-lXft",
"role" : "libraries"
},
{
"backtrace" : 2,
"fragment" : "-lXinerama",
"role" : "libraries"
}
],
"language" : "C"
@ -149,7 +172,8 @@
13,
14,
15,
16
16,
18
]
},
{
@ -162,7 +186,10 @@
9,
10,
12,
17
17,
19,
20,
21
]
}
],
@ -268,6 +295,27 @@
"backtrace" : 1,
"path" : "src/util.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"compileGroupIndex" : 0,
"path" : "src/keys/mouse.c",
"sourceGroupIndex" : 0
},
{
"backtrace" : 1,
"path" : "src/keys/mouse.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "src/keys/functions.h",
"sourceGroupIndex" : 1
},
{
"backtrace" : 1,
"path" : "src/dwm.h",
"sourceGroupIndex" : 1
}
],
"type" : "EXECUTABLE"

View File

@ -1,10 +1,4 @@
/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_MAKE_PROGRAM=/home/anas/.local/share/JetBrains/Toolbox/apps/CLion/ch-1/222.4345.21/bin/ninja/linux/ninja -G Ninja -S /home/anas/suckless_utils/yo-dwm -B /home/anas/suckless_utils/yo-dwm/cmake-build-debug
-- The C compiler identification is GNU 12.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/anas/suckless_utils/yo-dwm/cmake-build-debug

View File

@ -1,3 +1,3 @@
Start testing: Oct 31 07:03 EET
Start testing: Oct 31 10:02 EET
----------------------------------------------------------
End testing: Oct 31 07:03 EET
End testing: Oct 31 10:02 EET

File diff suppressed because one or more lines are too long

View File

@ -1,11 +1,6 @@
#ifndef colors_H
#define colors_H
// #define wal "/home/anas/.cache/wal/colors-wal-dwm.h"
// #if __has_include(wal)
// #include wal
// #else
static const char norm_fg[] = "#e4ded4";
static const char norm_bg[] = "#191b1f";
static const char norm_border[] = "#282c34";
@ -18,12 +13,11 @@ static const char urg_fg[] = "#e4ded4";
static const char urg_bg[] = "#313036";
static const char urg_border[] = "#312e36";
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { norm_fg, norm_bg, norm_border }, // unfocused wins
[SchemeSel] = { sel_fg, sel_bg, sel_border }, // the focused win
[SchemeUrg] = { urg_fg, urg_bg, urg_border },
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = {norm_fg, norm_bg, norm_border}, // unfocused wins
[SchemeSel] = {sel_fg, sel_bg, sel_border}, // the focused win
[SchemeUrg] = {urg_fg, urg_bg, urg_border},
};
// #endif
#endif // !colors.h
#endif // colors_H

View File

@ -20,9 +20,7 @@ static const char *fonts[] = {"monospace:size=7", "Noto Color Emoji:size=8",
static const char dmenufont[] = "monospace:size=8";
#ifndef STDDEF_H
#include <stddef.h>
#endif
#include "colors.h"

324
src/dwm.c
View File

@ -44,6 +44,7 @@
#include "drw.h"
#include "util.h"
#include "dwm.h"
/* macros */
#define BUTTONMASK (ButtonPressMask|ButtonReleaseMask)
@ -71,327 +72,6 @@
#define VERSION_MINOR 0
#define XEMBED_EMBEDDED_VERSION (VERSION_MAJOR << 16) | VERSION_MINOR
/* enums */
enum {
CurNormal, CurResize, CurMove, CurLast
}; /* cursor */
enum {
SchemeNorm, SchemeSel, SchemeUrg
}; /* color schemes */
enum {
NetSupported, NetWMName, NetWMState, NetWMCheck,
NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation, NetSystemTrayOrientationHorz,
NetWMFullscreen, NetActiveWindow, NetWMWindowType,
NetWMWindowTypeDialog, NetClientList, NetLast
}; /* EWMH atoms */
enum {
Manager, Xembed, XembedInfo, XLast
}; /* Xembed atoms */
enum {
WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast
}; /* default atoms */
enum {
ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
ClkClientWin, ClkRootWin, ClkLast
}; /* clicks */
typedef union {
int i;
unsigned int ui;
float f;
const void *v;
} Arg;
typedef struct {
unsigned int click;
unsigned int mask;
unsigned int button;
void (*func)(const Arg *arg);
const Arg arg;
} Button;
typedef struct Monitor Monitor;
typedef struct Client Client;
struct Client {
char name[256];
float mina, maxa;
int x, y, w, h;
int oldx, oldy, oldw, oldh;
int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid;
int bw, oldbw;
unsigned int tags;
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, issticky;
Client *next;
Client *snext;
Monitor *mon;
Window win;
};
typedef struct {
unsigned int mod;
KeySym chain;
KeySym keysym;
void (*func)(const Arg *);
const Arg arg;
} Key;
typedef struct {
const char *symbol;
void (*arrange)(Monitor *);
} Layout;
typedef struct Pertag Pertag;
struct Monitor {
char ltsymbol[16];
float mfact;
int nmaster;
int num;
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
int wx, wy, ww, wh; /* window area */
unsigned int seltags;
unsigned int sellt;
unsigned int tagset[2];
int showbar;
int topbar;
Client *clients;
Client *sel;
Client *stack;
Monitor *next;
Window barwin;
const Layout *lt[2];
Pertag *pertag;
};
typedef struct {
const char *class;
const char *instance;
const char *title;
unsigned int tags;
int isfloating;
int monitor;
} Rule;
typedef struct Systray Systray;
struct Systray {
Window win;
Client *icons;
};
/* function declarations */
static void applyrules(Client *c);
static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
static void arrange(Monitor *m);
static void arrangemon(Monitor *m);
static void attach(Client *c);
static void attachstack(Client *c);
static void buttonpress(XEvent *e);
static void checkotherwm(void);
static void cleanup(void);
static void cleanupmon(Monitor *mon);
static void clientmessage(XEvent *e);
static void configure(Client *c);
static void configurenotify(XEvent *e);
static void configurerequest(XEvent *e);
static Monitor *createmon(void);
static void destroynotify(XEvent *e);
static void detach(Client *c);
static void detachstack(Client *c);
static Monitor *dirtomon(int dir);
static void drawbar(Monitor *m);
static void drawbars(void);
static void enternotify(XEvent *e);
static void expose(XEvent *e);
static void focus(Client *c);
static void focusin(XEvent *e);
static void focusmon(const Arg *arg);
static void focusstack(const Arg *arg);
static Atom getatomprop(Client *c, Atom prop);
static int getrootptr(int *x, int *y);
static long getstate(Window w);
static unsigned int getsystraywidth();
static int gettextprop(Window w, Atom atom, char *text, unsigned int size);
static void grabbuttons(Client *c, int focused);
static void grabkeys(void);
static void incnmaster(const Arg *arg);
static void keypress(XEvent *e);
static void killclient(const Arg *arg);
static void manage(Window w, XWindowAttributes *wa);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void motionnotify(XEvent *e);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
static void pop(Client *);
static void propertynotify(XEvent *e);
static void quit(const Arg *arg);
static Monitor *recttomon(int x, int y, int w, int h);
static void removesystrayicon(Client *i);
static void resize(Client *c, int x, int y, int w, int h, int interact);
static void resizebarwin(Monitor *m);
static void resizeclient(Client *c, int x, int y, int w, int h);
static void resizemouse(const Arg *arg);
static void resizerequest(XEvent *e);
static void restack(Monitor *m);
static void run(void);
static void scan(void);
static int sendevent(Window w, Atom proto, int m, long d0, long d1, long d2, long d3, long d4);
static void sendmon(Client *c, Monitor *m);
static void setclientstate(Client *c, long state);
static void setfocus(Client *c);
static void setfullscreen(Client *c, int fullscreen);
static void fullscreen(const Arg *arg);
static void setlayout(const Arg *arg);
static void setmfact(const Arg *arg);
static void setup(void);
static void seturgent(Client *c, int urg);
static void showhide(Client *c);
static void sigchld(int unused);
static void spawn(const Arg *arg);
static Monitor *systraytomon(Monitor *m);
static void tag(const Arg *arg);
static void tagmon(const Arg *arg);
static void tile(Monitor *);
static void togglebar(const Arg *arg);
static void togglefloating(const Arg *arg);
static void togglesticky(const Arg *arg);
static void toggletag(const Arg *arg);
static void toggleview(const Arg *arg);
static void unfocus(Client *c, int setfocus);
static void unmanage(Client *c, int destroyed);
static void unmapnotify(XEvent *e);
static void updatebarpos(Monitor *m);
static void updatebars(void);
static void updateclientlist(void);
static int updategeom(void);
static void updatenumlockmask(void);
static void updatesizehints(Client *c);
static void updatestatus(void);
static void updatesystray(void);
static void updatesystrayicongeom(Client *i, int w, int h);
static void updatesystrayiconstate(Client *i, XPropertyEvent *ev);
static void updatetitle(Client *c);
static void updatewindowtype(Client *c);
static void updatewmhints(Client *c);
static void view(const Arg *arg);
static Client *wintoclient(Window w);
static Monitor *wintomon(Window w);
static Client *wintosystrayicon(Window w);
static int xerror(Display *dpy, XErrorEvent *ee);
static int xerrordummy(Display *dpy, XErrorEvent *ee);
static int xerrorstart(Display *dpy, XErrorEvent *ee);
static void zoom(const Arg *arg);
static void autostart_exec(void);
/* variables */
static Systray *systray = NULL;
static const char broken[] = "broken";
@ -440,6 +120,8 @@ static KeySym keychain = -1;
#include "movestack.c"
/* Keys bindings */
#include "keys/keys.h"
/* Mouse bindings */
#include "keys/mouse.h"
struct Pertag {
unsigned int curtag, prevtag; /* current and previous tag */

272
src/dwm.h Normal file
View File

@ -0,0 +1,272 @@
//
// Created by anas on 10/31/22.
//
#ifndef DWM_H
#define DWM_H
/* enums */
enum {
CurNormal, CurResize, CurMove, CurLast
}; /* cursor */
enum {
SchemeNorm, SchemeSel, SchemeUrg
}; /* color schemes */
enum {
NetSupported, NetWMName, NetWMState, NetWMCheck,
NetSystemTray, NetSystemTrayOP, NetSystemTrayOrientation, NetSystemTrayOrientationHorz,
NetWMFullscreen, NetActiveWindow, NetWMWindowType,
NetWMWindowTypeDialog, NetClientList, NetLast
}; /* EWMH atoms */
enum {
Manager, Xembed, XembedInfo, XLast
}; /* Xembed atoms */
enum {
WMProtocols, WMDelete, WMState, WMTakeFocus, WMLast
}; /* default atoms */
typedef union {
int i;
unsigned int ui;
float f;
const void *v;
} Arg;
typedef struct Monitor Monitor;
typedef struct Client Client;
struct Client {
char name[256];
float mina, maxa;
int x, y, w, h;
int oldx, oldy, oldw, oldh;
int basew, baseh, incw, inch, maxw, maxh, minw, minh, hintsvalid;
int bw, oldbw;
unsigned int tags;
int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen, issticky;
Client *next;
Client *snext;
Monitor *mon;
Window win;
};
typedef struct {
const char *symbol;
void (*arrange)(Monitor *);
} Layout;
typedef struct Pertag Pertag;
struct Monitor {
char ltsymbol[16];
float mfact;
int nmaster;
int num;
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
int wx, wy, ww, wh; /* window area */
unsigned int seltags;
unsigned int sellt;
unsigned int tagset[2];
int showbar;
int topbar;
Client *clients;
Client *sel;
Client *stack;
Monitor *next;
Window barwin;
const Layout *lt[2];
Pertag *pertag;
};
typedef struct {
const char *class;
const char *instance;
const char *title;
unsigned int tags;
int isfloating;
int monitor;
} Rule;
typedef struct Systray Systray;
struct Systray {
Window win;
Client *icons;
};
/* function declarations */
static void applyrules(Client *c);
static int applysizehints(Client *c, int *x, int *y, int *w, int *h, int interact);
static void arrange(Monitor *m);
static void arrangemon(Monitor *m);
static void attach(Client *c);
static void attachstack(Client *c);
static void buttonpress(XEvent *e);
static void checkotherwm(void);
static void cleanup(void);
static void cleanupmon(Monitor *mon);
static void clientmessage(XEvent *e);
static void configure(Client *c);
static void configurenotify(XEvent *e);
static void configurerequest(XEvent *e);
static Monitor *createmon(void);
static void destroynotify(XEvent *e);
static void detach(Client *c);
static void detachstack(Client *c);
static Monitor *dirtomon(int dir);
static void drawbar(Monitor *m);
static void drawbars(void);
static void enternotify(XEvent *e);
static void expose(XEvent *e);
static void focus(Client *c);
static void focusin(XEvent *e);
static Atom getatomprop(Client *c, Atom prop);
static int getrootptr(int *x, int *y);
static long getstate(Window w);
static unsigned int getsystraywidth();
static int gettextprop(Window w, Atom atom, char *text, unsigned int size);
static void grabbuttons(Client *c, int focused);
static void grabkeys(void);
static void keypress(XEvent *e);
static void manage(Window w, XWindowAttributes *wa);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void motionnotify(XEvent *e);
static Client *nexttiled(Client *c);
static void pop(Client *);
static void propertynotify(XEvent *e);
static Monitor *recttomon(int x, int y, int w, int h);
static void removesystrayicon(Client *i);
static void resize(Client *c, int x, int y, int w, int h, int interact);
static void resizebarwin(Monitor *m);
static void resizeclient(Client *c, int x, int y, int w, int h);
static void resizemouse(const Arg *arg);
static void resizerequest(XEvent *e);
static void restack(Monitor *m);
static void run(void);
static void scan(void);
static int sendevent(Window w, Atom proto, int m, long d0, long d1, long d2, long d3, long d4);
static void sendmon(Client *c, Monitor *m);
static void setclientstate(Client *c, long state);
static void setfocus(Client *c);
static void setfullscreen(Client *c, int fullscreen);
static void setup(void);
static void seturgent(Client *c, int urg);
static void showhide(Client *c);
static void sigchld(int unused);
static Monitor *systraytomon(Monitor *m);
static void tile(Monitor *);
static void toggletag(const Arg *arg);
static void toggleview(const Arg *arg);
static void unfocus(Client *c, int setfocus);
static void unmanage(Client *c, int destroyed);
static void unmapnotify(XEvent *e);
static void updatebarpos(Monitor *m);
static void updatebars(void);
static void updateclientlist(void);
static int updategeom(void);
static void updatenumlockmask(void);
static void updatesizehints(Client *c);
static void updatestatus(void);
static void updatesystray(void);
static void updatesystrayicongeom(Client *i, int w, int h);
static void updatesystrayiconstate(Client *i, XPropertyEvent *ev);
static void updatetitle(Client *c);
static void updatewindowtype(Client *c);
static void updatewmhints(Client *c);
static Client *wintoclient(Window w);
static Monitor *wintomon(Window w);
static Client *wintosystrayicon(Window w);
static int xerror(Display *dpy, XErrorEvent *ee);
static int xerrordummy(Display *dpy, XErrorEvent *ee);
static int xerrorstart(Display *dpy, XErrorEvent *ee);
static void autostart_exec(void);
#endif //DWM_H

46
src/keys/functions.h Normal file
View File

@ -0,0 +1,46 @@
//
// Created by anas on 10/31/22.
//
#ifndef FUNCTIONS_H
#define FUNCTIONS_H
#include "../dwm.h"
static void spawn(const Arg *arg);
static void focusmon(const Arg *arg);
static void fullscreen(const Arg *arg);
static void focusstack(const Arg *arg);
static void tagmon(const Arg *arg);
static void incnmaster(const Arg *arg);
static void killclient(const Arg *arg);
static void movemouse(const Arg *arg);
static void togglebar(const Arg *arg);
static void togglesticky(const Arg *arg);
static void togglefloating(const Arg *arg);
static void setmfact(const Arg *arg);
static void view(const Arg *arg);
static void movestack(const Arg *arg);
static void setlayout(const Arg *arg);
static void tag(const Arg *arg);
static void zoom(const Arg *arg);
static void quit(const Arg *arg);
#endif //FUNCTIONS_H

View File

@ -1,15 +1,11 @@
#include "../config.h"
#include "keys.h"
#include "functions.h"
#include "../layouts/layouts.h"
// X11 keysym definitions
#include <X11/XF86keysym.h> // req (libxinerama1 and libxinerama-dev)
/* key definitions */
#define MODKEY Mod4Mask // win/super key
#define TAGKEYS(CHAIN, KEY, TAG) \
{ MODKEY, CHAIN, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, CHAIN, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, CHAIN, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, CHAIN, KEY, toggletag, {.ui = 1 << TAG} },
#include <X11/keysym.h>
static Key keys[] = {
/* modifier chain key key function argument */
@ -84,8 +80,8 @@ static Key keys[] = {
{MODKEY, -1, XK_i, incnmaster, {.i = +1}},
{MODKEY, -1, XK_d, incnmaster, {.i = -1}},
// Change the focus window size (in the tile mode)
{MODKEY, -1, XK_h, setmfact, {.f = -0.05}},
{MODKEY, -1, XK_l, setmfact, {.f = +0.05}},
{MODKEY, -1, XK_h, setmfact, {.f = -0.05f}},
{MODKEY, -1, XK_l, setmfact, {.f = +0.05f}},
// { MODKEY, XK_Return, zoom, {0} },
{MODKEY, -1, XK_Tab, view, {0}},
@ -171,20 +167,4 @@ static Key keys[] = {
// { MODKEY|ShiftMask|Mod1Mask, -1, XK_q, quit, {0} },
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ClkTagBar, MODKEY, Button1, tag, {0}},
{ClkTagBar, MODKEY, Button3, toggletag, {0}},
{ClkWinTitle, 0, Button2, zoom, {0}},
{ClkStatusText, 0, Button2, spawn, {.v = termcmd}},
{ClkClientWin, MODKEY, Button1, movemouse, {0}},
{ClkClientWin, MODKEY, Button2, togglefloating, {0}},
{ClkClientWin, MODKEY, Button3, resizemouse, {0}},
{ClkTagBar, 0, Button1, view, {0}},
{ClkTagBar, 0, Button3, toggleview, {0}},
{ClkTagBar, MODKEY, Button1, tag, {0}},
{ClkTagBar, MODKEY, Button3, toggletag, {0}},
};

View File

@ -1,442 +0,0 @@
/* helper for spawning shell commands in the pre dwm-5.0 fashion */
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", norm_bg,
"-nf", norm_fg, "-sb", sel_bg, "-sf", sel_fg, NULL };
static const char *termcmd[] = { TERMINAL, NULL };
/* key definitions */
#define MODKEY Mod4Mask // win/super key
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} },
// X11 keysym definitions
#include <X11/XF86keysym.h> // req (libxinerama1 and libxinerama-dev)
static Key keys[] = {
/* modifier key function argument */
/* ---------------------------------- Apps Keys ---------------------------------- */
// Dmenu (launcher)
{ MODKEY|ShiftMask, XK_d, spawn, {.v = dmenucmd } },
// Rofi launcher (small)
{ MODKEY|ShiftMask|ControlMask, XK_d, spawn, SHCMD("rofi -show drun") },
// Start the main terminal
{ MODKEY, XK_Return, spawn, {.v = termcmd } },
// Start the alacritty terminal
<<<<<<< HEAD
// {2, {{MODKEY, XK_t}, {0, XK_a}}, spawn, SHCMD("alacritty") },
// // Start the alacritty terminal with tmux
// {2, {{MODKEY, XK_t}, {ShiftMask, XK_a}}, spawn, SHCMD("alacritty -e tmux") },
// // kitty
// {2, {{MODKEY, XK_t}, {0, XK_k}}, spawn, SHCMD("kitty") },
// // kitty with tmux
// {2, {{MODKEY, XK_t}, {ShiftMask, XK_k}}, spawn, SHCMD("kitty -e tmux") },
// /************************************* File browsers *************************************/
// // GUI filebrowser (pcmanfm)
// {2, {{MODKEY|ShiftMask, XK_f}, {0, XK_g}}, spawn, SHCMD(GUI_FILEMANAGER) },
// // Rofi file browser (small)
// {2, {{MODKEY|ShiftMask, XK_f}, {0, XK_f}}, spawn, SHCMD("rofi -show filebrowser") },
// // ranger
// {2, {{MODKEY|ShiftMask, XK_f}, {0, XK_r}}, spawn, SHCMD(TERMINAL " -e ranger") },
// /************************************* Start the web browers *************************************/
// // Google chrome stable
// {2, {{MODKEY, XK_w}, {0, XK_g}}, spawn, SHCMD(WEBBROWSER) },
// // Tor brower
// {2, {{MODKEY, XK_w}, {0, XK_t}}, spawn, SHCMD("tor-browser") },
// /************************************* Start the caht/email/\* apps *************************************/
// // Discord
// {2, {{MODKEY, XK_c}, {0, XK_d}}, spawn, SHCMD("discord") },
// // Obsidian
// {2, {{MODKEY, XK_c}, {0, XK_o}}, spawn, SHCMD("obsidian") },
// /************************************* Start the dev apps *************************************/
// // Jetbrains toolbox
// {2, {{MODKEY, XK_a}, {0, XK_j}}, spawn, SHCMD("jetbrains-toolbox") },
// // NeoVim
// {2, {{MODKEY, XK_a}, {0, XK_n}}, spawn, SHCMD(TERMINAL " -e nvim") },
// // Vim
// {2, {{MODKEY, XK_a}, {0, XK_v}}, spawn, SHCMD(TERMINAL " -e vim") },
// // emacs
// {2, {{MODKEY, XK_a}, {0, XK_e}}, spawn, SHCMD("emacs") },
// /************************************* Start personalize apps *************************************/
// // nitrogen
// {2, {{MODKEY, XK_p}, {0, XK_b}}, spawn, SHCMD("nitrogen") },
// // nm-connection-editor
// {2, {{MODKEY, XK_p}, {0, XK_n}}, spawn, SHCMD("nm-connection-editor") },
// /************************************* Start multi media apps *************************************/
// // cmus
// {2, {{MODKEY, XK_m}, {0, XK_c}}, spawn, SHCMD("sh -c \"" TERMINAL " -e cmus\" & sh -c \"cmus-rpc --link\"") },
// // vlc
// {2, {{MODKEY, XK_m}, {0, XK_v}}, spawn, SHCMD("vlc") },
// // vlc in the main terminal
// {2, {{MODKEY, XK_m}, {ShiftMask, XK_v}}, spawn, SHCMD(TERMINAL "nvlc") },
// /************************************* Start the emoji piker apps *************************************/
// // Emoji selector (rofi)
// {1, {{Mod4Mask, XK_e}}, spawn, SHCMD("rofi -show emoji") },
// /************************************* dwm keys *************************************/
// // Full screen mode
// {1, {{MODKEY, XK_f}}, fullscreen, {0} },
// // Toggle the slstatus bar (hide/show)
// {1, {{MODKEY, XK_b}}, togglebar, {0} },
// // Change the focus
// {1, {{MODKEY, XK_j}}, focusstack, {.i = +1 } },
// {1, {{MODKEY, XK_k}}, focusstack, {.i = -1 } },
// // Change the stack layout (horizontal/virtecal)
// {1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } },
// {1, {{MODKEY, XK_d}}, incnmaster, {.i = -1 } },
// // Change the focus window size (in the tile mode)
// {1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} },
// {1, {{MODKEY, XK_l}}, setmfact, {.f = +0.05} },
// // { MODKEY, XK_Return, zoom, {0} },
// {1, {{MODKEY, XK_Tab}}, view, {0} },
//
// {1, {{MODKEY|ShiftMask, XK_j}}, movestack, {.i = +1 } },
// {1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } },
// // Toogle styky mode
// {1, {{MODKEY|ShiftMask, XK_s}}, togglesticky, {0} },
//
// // Quit from the foucsed window (kill)
// {2, {{MODKEY, XK_q}, {0, XK_q}}, killclient, {0} },
// /************************* Switch between layouts *************************/
// // Tiled layout
// {2, {{MODKEY, XK_s}, {0, XK_t}}, setlayout, {.v = &layouts[0]} },
// // Floating layout
// {2, {{MODKEY, XK_s}, {0, XK_f}}, setlayout, {.v = &layouts[1]} },
// // Monocle layout
// {2, {{MODKEY, XK_s}, {0, XK_m}}, setlayout, {.v = &layouts[2]} },
// // Grid layout
// {2, {{MODKEY, XK_s}, {0, XK_g}}, setlayout, {.v = &layouts[3]} },
// // Spiral layout
// {2, {{MODKEY, XK_s}, {0, XK_r}}, setlayout, {.v = &layouts[4]} },
// // Dwindle layout
// {2, {{MODKEY, XK_s}, {ShiftMask, XK_r}}, setlayout, {.v = &layouts[5]} },
// // Centerd master layout
// {2, {{MODKEY, XK_s}, {0, XK_c}}, setlayout, {.v = &layouts[6]} },
// // Centerd floating master layout
// {2, {{MODKEY, XK_s}, {ShiftMask, XK_c}}, setlayout, {.v = &layouts[7]} },
//
// // Toggle between current layout and tile layout
// {2, {{MODKEY, XK_s}, {0, XK_space}}, setlayout, {0} },
// // Toggle floating window
// {1, {{MODKEY|Mod1Mask, XK_f}}, togglefloating, {0} },
// // View all tags
// {1, {{MODKEY, XK_0}}, view, {.ui = ~0 } },
// // Mirror the current tagg in all tags
// {1, {{MODKEY|ShiftMask, XK_0}}, tag, {.ui = ~0 } },
// // I don't know
// {1, {{MODKEY, XK_comma}}, focusmon, {.i = -1 } },
// {1, {{MODKEY, XK_period}}, focusmon, {.i = +1 } },
// {1, {{MODKEY|ShiftMask, XK_comma}}, tagmon, {.i = -1 } },
// {1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } },
||||||| 95139f7
{2, {{MODKEY, XK_t}, {0, XK_a}}, spawn, SHCMD("alacritty") },
// Start the alacritty terminal with tmux
{2, {{MODKEY, XK_t}, {ShiftMask, XK_a}}, spawn, SHCMD("alacritty -e tmux") },
// kitty
{2, {{MODKEY, XK_t}, {0, XK_k}}, spawn, SHCMD("kitty") },
// kitty with tmux
{2, {{MODKEY, XK_t}, {ShiftMask, XK_k}}, spawn, SHCMD("kitty -e tmux") },
/************************************* File browsers *************************************/
// GUI filebrowser (pcmanfm)
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_g}}, spawn, SHCMD(GUI_FILEMANAGER) },
// Rofi file browser (small)
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_f}}, spawn, SHCMD("rofi -show filebrowser") },
// ranger
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_r}}, spawn, SHCMD(TERMINAL " -e ranger") },
/************************************* Start the web browers *************************************/
// Google chrome stable
{2, {{MODKEY, XK_w}, {0, XK_g}}, spawn, SHCMD(WEBBROWSER) },
// Tor brower
{2, {{MODKEY, XK_w}, {0, XK_t}}, spawn, SHCMD("tor-browser") },
/************************************* Start the caht/email/\* apps *************************************/
// Discord
{2, {{MODKEY, XK_c}, {0, XK_d}}, spawn, SHCMD("discord") },
// Obsidian
{2, {{MODKEY, XK_c}, {0, XK_o}}, spawn, SHCMD("obsidian") },
/************************************* Start the dev apps *************************************/
// Jetbrains toolbox
{2, {{MODKEY, XK_a}, {0, XK_j}}, spawn, SHCMD("jetbrains-toolbox") },
// NeoVim
{2, {{MODKEY, XK_a}, {0, XK_n}}, spawn, SHCMD(TERMINAL " -e nvim") },
// Vim
{2, {{MODKEY, XK_a}, {0, XK_v}}, spawn, SHCMD(TERMINAL " -e vim") },
// emacs
{2, {{MODKEY, XK_a}, {0, XK_e}}, spawn, SHCMD("emacs") },
/************************************* Start personalize apps *************************************/
// nitrogen
{2, {{MODKEY, XK_p}, {0, XK_b}}, spawn, SHCMD("nitrogen") },
// nm-connection-editor
{2, {{MODKEY, XK_p}, {0, XK_n}}, spawn, SHCMD("nm-connection-editor") },
/************************************* Start multi media apps *************************************/
// cmus
{2, {{MODKEY, XK_m}, {0, XK_c}}, spawn, SHCMD("sh -c \"" TERMINAL " -e cmus\" & sh -c \"cmus-rpc --link\"") },
// vlc
{2, {{MODKEY, XK_m}, {0, XK_v}}, spawn, SHCMD("vlc") },
// vlc in the main terminal
{2, {{MODKEY, XK_m}, {ShiftMask, XK_v}}, spawn, SHCMD(TERMINAL "nvlc") },
/************************************* Start the emoji piker apps *************************************/
// Emoji selector (rofi)
{1, {{Mod4Mask, XK_e}}, spawn, SHCMD("rofi -show emoji") },
/************************************* dwm keys *************************************/
// Full screen mode
{1, {{MODKEY, XK_f}}, fullscreen, {0} },
// Toggle the slstatus bar (hide/show)
{1, {{MODKEY, XK_b}}, togglebar, {0} },
// Change the focus
{1, {{MODKEY, XK_j}}, focusstack, {.i = +1 } },
{1, {{MODKEY, XK_k}}, focusstack, {.i = -1 } },
// Change the stack layout (horizontal/virtecal)
{1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } },
{1, {{MODKEY, XK_d}}, incnmaster, {.i = -1 } },
// Change the focus window size (in the tile mode)
{1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} },
{1, {{MODKEY, XK_l}}, setmfact, {.f = +0.05} },
// { MODKEY, XK_Return, zoom, {0} },
{1, {{MODKEY, XK_Tab}}, view, {0} },
{1, {{MODKEY|ShiftMask, XK_j}}, movestack, {.i = +1 } },
{1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } },
// Toogle styky mode
{1, {{MODKEY|ShiftMask, XK_s}}, togglesticky, {0} },
// Quit from the foucsed window (kill)
{2, {{MODKEY, XK_q}, {0, XK_q}}, killclient, {0} },
/************************* Switch between layouts *************************/
// Tiled layout
{2, {{MODKEY, XK_s}, {0, XK_t}}, setlayout, {.v = &layouts[0]} },
// Floating layout
{2, {{MODKEY, XK_s}, {0, XK_f}}, setlayout, {.v = &layouts[1]} },
// Monocle layout
{2, {{MODKEY, XK_s}, {0, XK_m}}, setlayout, {.v = &layouts[2]} },
// Grid layout
{2, {{MODKEY, XK_s}, {0, XK_g}}, setlayout, {.v = &layouts[3]} },
// Spiral layout
{2, {{MODKEY, XK_s}, {0, XK_r}}, setlayout, {.v = &layouts[4]} },
// Dwindle layout
{2, {{MODKEY, XK_s}, {ShiftMask, XK_r}}, setlayout, {.v = &layouts[5]} },
// Centerd master layout
{2, {{MODKEY, XK_s}, {0, XK_c}}, setlayout, {.v = &layouts[6]} },
// Centerd floating master layout
{2, {{MODKEY, XK_s}, {ShiftMask, XK_c}}, setlayout, {.v = &layouts[7]} },
// Toggle between current layout and tile layout
{2, {{MODKEY, XK_s}, {0, XK_space}}, setlayout, {0} },
// Toggle floating window
{1, {{MODKEY|Mod1Mask, XK_f}}, togglefloating, {0} },
// View all tags
{1, {{MODKEY, XK_0}}, view, {.ui = ~0 } },
// Mirror the current tagg in all tags
{1, {{MODKEY|ShiftMask, XK_0}}, tag, {.ui = ~0 } },
// I don't know
{1, {{MODKEY, XK_comma}}, focusmon, {.i = -1 } },
{1, {{MODKEY, XK_period}}, focusmon, {.i = +1 } },
{1, {{MODKEY|ShiftMask, XK_comma}}, tagmon, {.i = -1 } },
{1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } },
=======
{2, {{MODKEY, XK_t}, {0, XK_a}}, spawn, SHCMD("alacritty") },
// Start the alacritty terminal with tmux
{2, {{MODKEY, XK_t}, {ShiftMask, XK_a}}, spawn, SHCMD("alacritty -e tmux") },
// kitty
{2, {{MODKEY, XK_t}, {0, XK_k}}, spawn, SHCMD("kitty") },
// kitty with tmux
{2, {{MODKEY, XK_t}, {ShiftMask, XK_k}}, spawn, SHCMD("kitty -e tmux") },
/************************************* File browsers *************************************/
// GUI filebrowser (pcmanfm)
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_g}}, spawn, SHCMD(GUI_FILEMANAGER) },
// Rofi file browser (small)
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_f}}, spawn, SHCMD("rofi -show filebrowser") },
// Terminal file manager (ranger)
{2, {{MODKEY|ShiftMask, XK_f}, {0, XK_t}}, spawn, SHCMD(TERMINAL " -e ranger") },
/************************************* Start the web browers *************************************/
// Google chrome stable
{2, {{MODKEY, XK_w}, {0, XK_g}}, spawn, SHCMD(WEBBROWSER) },
// Tor brower
{2, {{MODKEY, XK_w}, {0, XK_t}}, spawn, SHCMD("tor-browser") },
/************************************* Start the caht/email/\* apps *************************************/
// Discord
{2, {{MODKEY, XK_c}, {0, XK_d}}, spawn, SHCMD("discord") },
// Obsidian
{2, {{MODKEY, XK_c}, {0, XK_o}}, spawn, SHCMD("obsidian") },
/************************************* Start the dev apps *************************************/
// Jetbrains toolbox
{2, {{MODKEY, XK_a}, {0, XK_j}}, spawn, SHCMD("jetbrains-toolbox") },
// NeoVim
{2, {{MODKEY, XK_a}, {0, XK_n}}, spawn, SHCMD(TERMINAL " -e nvim") },
// Vim
{2, {{MODKEY, XK_a}, {0, XK_v}}, spawn, SHCMD(TERMINAL " -e vim") },
// emacs
{2, {{MODKEY, XK_a}, {0, XK_e}}, spawn, SHCMD("emacs") },
/************************************* Start personalize apps *************************************/
// nitrogen
{2, {{MODKEY, XK_p}, {0, XK_b}}, spawn, SHCMD("nitrogen") },
// nm-connection-editor
{2, {{MODKEY, XK_p}, {0, XK_n}}, spawn, SHCMD("nm-connection-editor") },
/************************************* Start multi media apps *************************************/
// cmus
{2, {{MODKEY, XK_m}, {0, XK_c}}, spawn, SHCMD("sh -c \"" TERMINAL " -e cmus\" & sh -c \"cmus-rpc --link\"") },
// vlc
{2, {{MODKEY, XK_m}, {0, XK_v}}, spawn, SHCMD("vlc") },
// vlc in the main terminal
{2, {{MODKEY, XK_m}, {ShiftMask, XK_v}}, spawn, SHCMD(TERMINAL "nvlc") },
/************************************* Start the emoji piker apps *************************************/
// Emoji selector (rofi)
{1, {{Mod4Mask, XK_e}}, spawn, SHCMD("rofimoji") },
/************************************* dwm keys *************************************/
// Full screen mode
{1, {{MODKEY, XK_f}}, fullscreen, {0} },
// Toggle the slstatus bar (hide/show)
{1, {{MODKEY, XK_b}}, togglebar, {0} },
// Change the focus
{1, {{MODKEY, XK_j}}, focusstack, {.i = +1 } },
{1, {{MODKEY, XK_k}}, focusstack, {.i = -1 } },
// Change the stack layout (horizontal/virtecal)
{1, {{MODKEY, XK_i}}, incnmaster, {.i = +1 } },
{1, {{MODKEY, XK_d}}, incnmaster, {.i = -1 } },
// Change the focus window size (in the tile mode)
{1, {{MODKEY, XK_h}}, setmfact, {.f = -0.05} },
{1, {{MODKEY, XK_l}}, setmfact, {.f = +0.05} },
// { MODKEY, XK_Return, zoom, {0} },
{1, {{MODKEY, XK_Tab}}, view, {0} },
{1, {{MODKEY|ShiftMask, XK_j}}, movestack, {.i = +1 } },
{1, {{MODKEY|ShiftMask, XK_k}}, movestack, {.i = -1 } },
// Toogle styky mode
{1, {{MODKEY|ShiftMask, XK_s}}, togglesticky, {0} },
// Quit from the foucsed window (kill)
{2, {{MODKEY, XK_q}, {0, XK_q}}, killclient, {0} },
/************************* Switch between layouts *************************/
// Tiled layout
{2, {{MODKEY, XK_s}, {0, XK_t}}, setlayout, {.v = &layouts[0]} },
// Floating layout
{2, {{MODKEY, XK_s}, {0, XK_f}}, setlayout, {.v = &layouts[1]} },
// Monocle layout
{2, {{MODKEY, XK_s}, {0, XK_m}}, setlayout, {.v = &layouts[2]} },
// Grid layout
{2, {{MODKEY, XK_s}, {0, XK_g}}, setlayout, {.v = &layouts[3]} },
// Spiral layout
{2, {{MODKEY, XK_s}, {0, XK_r}}, setlayout, {.v = &layouts[4]} },
// Dwindle layout
{2, {{MODKEY, XK_s}, {ShiftMask, XK_r}}, setlayout, {.v = &layouts[5]} },
// Centerd master layout
{2, {{MODKEY, XK_s}, {0, XK_c}}, setlayout, {.v = &layouts[6]} },
// Centerd floating master layout
{2, {{MODKEY, XK_s}, {ShiftMask, XK_c}}, setlayout, {.v = &layouts[7]} },
// Toggle between current layout and tile layout
{2, {{MODKEY, XK_s}, {0, XK_space}}, setlayout, {0} },
// Toggle floating window
{1, {{MODKEY|Mod1Mask, XK_f}}, togglefloating, {0} },
// View all tags
{1, {{MODKEY, XK_0}}, view, {.ui = ~0 } },
// Mirror the current tagg in all tags
{1, {{MODKEY|ShiftMask, XK_0}}, tag, {.ui = ~0 } },
// I don't know
{1, {{MODKEY, XK_comma}}, focusmon, {.i = -1 } },
{1, {{MODKEY, XK_period}}, focusmon, {.i = +1 } },
{1, {{MODKEY|ShiftMask, XK_comma}}, tagmon, {.i = -1 } },
{1, {{MODKEY|ShiftMask, XK_period}}, tagmon, {.i = +1 } },
>>>>>>> update-stuff
/************************* Tag keys *************************/
TAGKEYS( XK_1, 0)
TAGKEYS( XK_2, 1)
TAGKEYS( XK_3, 2)
TAGKEYS( XK_4, 3)
TAGKEYS( XK_5, 4)
TAGKEYS( XK_6, 5)
TAGKEYS( XK_7, 6)
TAGKEYS( XK_8, 7)
TAGKEYS( XK_9, 8)
TAGKEYS( XK_semicolon, 9)
/* ---------------------------------- Control Keys ---------------------------------- */
<<<<<<< HEAD
// // Brightness controllers (requires xbacklight)
// {1, {{0, XF86XK_MonBrightnessUp}}, spawn, SHCMD("xbacklight -inc 5") },
// {1, {{0, XF86XK_MonBrightnessDown}}, spawn, SHCMD("xbacklight -dec 5") },
// // Sound controllers (requires pamixer)
// {1, {{0, XF86XK_AudioRaiseVolume}}, spawn, SHCMD("pamixer --allow-boost -i 4") },
// {1, {{0, XF86XK_AudioLowerVolume}}, spawn, SHCMD("pamixer --allow-boost -d 4") },
// {1, {{0, XF86XK_AudioMute}}, spawn, SHCMD("pamixer -t") },
// // Media controls (requires playerctl)
// {1, {{0, XF86XK_AudioPlay}}, spawn, SHCMD("playerctl play-pause") },
// {1, {{0, XF86XK_AudioStop}}, spawn, SHCMD("playerctl stop") },
// {1, {{0, XF86XK_AudioNext}}, spawn, SHCMD("playerctl next") },
// {1, {{0, XF86XK_AudioPrev}}, spawn, SHCMD("playerctl previous") },
// // Mute and unmute mic
// {1, {{0, XF86XK_AudioMicMute}}, spawn, SHCMD("pactl set-source-mute @DEFAULT_SOURCE@ toggle") },
// // Take a screenshot
// {1, {{0, XK_Print}}, spawn, SHCMD(SCREENSHOT) },
// /* ---------------------------------- lock Keys ---------------------------------- */
// // Lock the screen
// {1, {{MODKEY|ShiftMask, XK_x}}, spawn, SHCMD("betterlockscreen -l dim") },
// // Kill dwm (super + shift + alt + q)
// {1, {{MODKEY|ShiftMask|Mod1Mask, XK_q}}, quit, {0} },
||||||| 95139f7
// Brightness controllers (requires xbacklight)
{1, {{0, XF86XK_MonBrightnessUp}}, spawn, SHCMD("xbacklight -inc 5") },
{1, {{0, XF86XK_MonBrightnessDown}}, spawn, SHCMD("xbacklight -dec 5") },
// Sound controllers (requires pamixer)
{1, {{0, XF86XK_AudioRaiseVolume}}, spawn, SHCMD("pamixer --allow-boost -i 4") },
{1, {{0, XF86XK_AudioLowerVolume}}, spawn, SHCMD("pamixer --allow-boost -d 4") },
{1, {{0, XF86XK_AudioMute}}, spawn, SHCMD("pamixer -t") },
// Media controls (requires playerctl)
{1, {{0, XF86XK_AudioPlay}}, spawn, SHCMD("playerctl play-pause") },
{1, {{0, XF86XK_AudioStop}}, spawn, SHCMD("playerctl stop") },
{1, {{0, XF86XK_AudioNext}}, spawn, SHCMD("playerctl next") },
{1, {{0, XF86XK_AudioPrev}}, spawn, SHCMD("playerctl previous") },
// Mute and unmute mic
{1, {{0, XF86XK_AudioMicMute}}, spawn, SHCMD("pactl set-source-mute @DEFAULT_SOURCE@ toggle") },
// Take a screenshot
{1, {{0, XK_Print}}, spawn, SHCMD(SCREENSHOT) },
/* ---------------------------------- lock Keys ---------------------------------- */
// Lock the screen
{1, {{MODKEY|ShiftMask, XK_x}}, spawn, SHCMD("betterlockscreen -l dim") },
// Kill dwm (super + shift + alt + q)
{1, {{MODKEY|ShiftMask|Mod1Mask, XK_q}}, quit, {0} },
=======
// Brightness controllers (requires xbacklight)
{1, {{0, XF86XK_MonBrightnessUp}}, spawn, SHCMD("xbacklight -inc 5") },
{1, {{0, XF86XK_MonBrightnessDown}}, spawn, SHCMD("xbacklight -dec 5") },
// Sound controllers (requires pamixer)
{1, {{0, XF86XK_AudioRaiseVolume}}, spawn, SHCMD("pamixer --allow-boost -i 4") },
{1, {{0, XF86XK_AudioLowerVolume}}, spawn, SHCMD("pamixer --allow-boost -d 4") },
{1, {{0, XF86XK_AudioMute}}, spawn, SHCMD("pamixer -t") },
// Media controls (requires playerctl)
{1, {{0, XF86XK_AudioPlay}}, spawn, SHCMD("playerctl play-pause") },
{1, {{0, XF86XK_AudioStop}}, spawn, SHCMD("playerctl stop") },
{1, {{0, XF86XK_AudioNext}}, spawn, SHCMD("playerctl next") },
{1, {{0, XF86XK_AudioPrev}}, spawn, SHCMD("playerctl previous") },
// Mute and unmute mic
{1, {{0, XF86XK_AudioMicMute}}, spawn, SHCMD("pactl set-source-mute @DEFAULT_SOURCE@ toggle") },
// Take a screenshot
{1, {{0, XK_Print}}, spawn, SHCMD(SCREENSHOT) },
/* ---------------------------------- lock Keys ---------------------------------- */
// Lock the screen
{1, {{MODKEY|ShiftMask, XK_x}}, spawn, SHCMD("betterlockscreen -l dim") },
{1, {{0, XF86XK_Suspend}}, spawn, SHCMD("betterlockscreen -l dim") },
// Kill dwm (super + shift + alt + q)
// {1, {{MODKEY|ShiftMask|Mod1Mask, XK_q}}, quit, {0} },
>>>>>>> update-stuff
};
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};

View File

@ -1,12 +1,31 @@
#ifndef keys_H
#define keys_H
#ifndef KEYS_H
#define KEYS_H
// X11 keysym definitions
#include <X11/XF86keysym.h> // req (libxinerama1 and libxinerama-dev)
#include <X11/keysym.h>
#include <X11/X.h>
#include "../dwm.h"
typedef struct {
unsigned int mod;
KeySym chain;
KeySym keysym;
void (*func)(const Arg *);
const Arg arg;
} Key;
/* key definitions */
#define MODKEY Mod4Mask // win/super key
#define TAGKEYS(CHAIN, KEY, TAG) \
{ MODKEY, CHAIN, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, CHAIN, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, CHAIN, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, CHAIN, KEY, toggletag, {.ui = 1 << TAG} },
// Include all the key bindings
#ifndef KEYS_C
#include "keys.c"
#endif
#endif // keys_H

23
src/keys/mouse.c Normal file
View File

@ -0,0 +1,23 @@
//
// Created by anas on 10/31/22.
//
#include "mouse.h"
#include "keys.h"
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static Button buttons[] = {
/* click event mask button function argument */
{ClkTagBar, MODKEY, Button1, tag, {0}},
{ClkTagBar, MODKEY, Button3, toggletag, {0}},
{ClkWinTitle, 0, Button2, zoom, {0}},
{ClkStatusText, 0, Button2, spawn, {.v = termcmd}},
{ClkClientWin, MODKEY, Button1, movemouse, {0}},
{ClkClientWin, MODKEY, Button2, togglefloating, {0}},
{ClkClientWin, MODKEY, Button3, resizemouse, {0}},
{ClkTagBar, 0, Button1, view, {0}},
{ClkTagBar, 0, Button3, toggleview, {0}},
{ClkTagBar, MODKEY, Button1, tag, {0}},
{ClkTagBar, MODKEY, Button3, toggletag, {0}},
};

29
src/keys/mouse.h Normal file
View File

@ -0,0 +1,29 @@
//
// Created by anas on 10/31/22.
//
#ifndef MOUSE_H
#define MOUSE_H
#include <X11/X.h>
typedef struct {
unsigned int click;
unsigned int mask;
unsigned int button;
void (*func)(const Arg *arg);
const Arg arg;
} Button;
enum {
ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,
ClkClientWin, ClkRootWin, ClkLast
}; /* clicks */
#ifndef MOUSE_C
#include "mouse.c"
#endif
#endif //MOUSE_H

View File

@ -10,15 +10,15 @@
// Layouts array
static const Layout layouts[] = {
/* symbol arrange function */
{ "[]=", tile }, /* first entry is default */
{ "><>", NULL }, /* no layout function means floating behavior */
{ "[M]", monocle }, // 2
{ "HHH", grid }, // 3
{ "[@]", spiral }, // 4
{ "[\\]", dwindle }, // 5
{ "|M|", centeredmaster }, // 6
{ ">M>", centeredfloatingmaster }, // 7
/* symbol arrange function */
{"[]=", tile}, /* first entry is default */
{"><>", NULL}, /* no layout function means floating behavior */
{"[M]", monocle}, // 2
{"HHH", grid}, // 3
{"[@]", spiral}, // 4
{"[\\]", dwindle}, // 5
{"|M|", centeredmaster}, // 6
{">M>", centeredfloatingmaster}, // 7
};
#endif // !layouts.h
#endif // layouts_H

View File

@ -1,4 +1,4 @@
void
static void
movestack(const Arg *arg) {
Client *c = NULL, *p = NULL, *pc = NULL, *i;