Skip to content
This repository was archived by the owner on Nov 6, 2023. It is now read-only.

3. Directory Topology & Top Level Contents

Thomas Leon Highbaugh edited this page Jun 4, 2022 · 3 revisions

Some of this repository's nesting may seem rather intense compared to others, this has been due to a guiding logic that may not be evident at first glance but has been derived from my examinations of literally hundreds of other configurations and attempts to distill the best aspects of them into a single project.

Each subdirectory will have its own wiki page about it and its content, this page shall instead describe the relationship between files and the subdirectories they are housed in more abstractly and discussing the files found in the directories top level, for an individual subdirectory, check the sidebar to find the corresponding page.

Configuration's Root Directory Files

| File | Purpose | | rc.lua | Calls the rest of the configuration in the expected order | | rc.lua.test | symlink to rc.lua to silence an awmtt error that otherwise annoys me | | README.md | symlink from .github so that vscode stops trying to make an empty README while I format lua | | .gitignore | things I don't need to keep versioned listed here | | .luacheckrc | provides project wide configuration for luacheck, coping with my particular tastes and Awesome's quirky nature |




Subdirectory Init Files

Each subdirectory pretty much has its own init.lua file that will call the contents of that subdirectory in the order the system expects/wants/needs them. This pattern remains true down to the individual components that are generally within their own subdirectory and exist as an init.lua file, this topology is illistrated below

.config/awesome/
├─ .gitignore
├─ .luacheckrc
├─ rc.lua.test
├─ rc.lua
│  ├─ example subdirectory /
│  │  ├─ init.lua
│  │  │  ├─ component/
│  │  │  │  ├─ init.lua
│  │  │  │  │  ├─ subcomponent
│  │  │  |  │     ├─ init.lua

If I did that right, but even if not I think you get the hint as to what is going on. Nesting everything in its own directory makes for an awful experience with VSCode tabs, but otherwise seems to help me isolate and navigate the code base better and enables the saving of alternatives or additional closely related files within that directory which encourages atomization (not so helpful imho) to some but to me encourages the creation of more README.md files, enables the storage of icons with the widget using them (mostly eliminated, may go back to this depending on desire/time/need) and is a habit I picked up from REACT.js and somewhat like, even if both there and here I just end up with a directory containing a single init.lua/index.js(x)/index.tsx file.




Additional Considerations

After some bad experiences with repositories rearranging themselves as I tend to rearrange my own and don't fault them for, as well as often finding need in substantially modifying files, you will not find any submodules in this repository (version controlled separately or frozen in code at the version I last pulled). Instead, I have tried to credit the authors or inspirations of a file under its title and moved all of the submodules I use, as well as portions of the awesome codebase I found need to modify, within this repository and under my control/as my responsibility henceforth in my usage of it.

This was not intended to disrespect or take credit from anyone, I could imagine why anyone would do something like that or think someone else did given the nature of open source code and the niche community of modifying Linux desktops I find myself neck deep in, but let's just clear that out now. We all have to borrow bits, bobs and ideas from one another in this community, more often than not without acknowledging the originator or inspiration as we do. The licenses themselves stop at the point we make the qualitative amount of variance that is "substantial" and case law on this is untested as far as I know, so what that actually means could be anything. Thus chopping these things up with comments alone probably puts its into the "substantially modified" standard legally even if plainly that seems a little... off (American law is wickedly crooked on this front especially), but still I have tried to acknowledge the individuals that inspired me both out of respect and as a way of sticking in the reference link if I later find it useful to go examine after mutating it beyond a recognizable form and my undo history clearing.

I also have put together a wordy description of some of my biggest inspirations currently on the project README and soon will be its own wiki page as well, while also preparing a list you can checkout in its raw form here and soon in its awesome Awesome List. The rule for the list is merely, must have more than a single rc.lua file with a single theme file and some icons, in the AwesomeWM configuration (can be a whole dotfiles repo). To add your repository, see the Awesome list (WORK IN PROGRESS)

Clone this wiki locally