|
1 | 1 | [](https://github.com/abstractlyZach/magic-tiler/actions?workflow=Tests)
|
2 | 2 | [](https://codecov.io/gh/abstractlyZach/magic-tiler)
|
3 | 3 | [](https://pypi.org/project/magic-tiler/)
|
| 4 | + |
| 5 | +# Magic Tiler |
| 6 | +Magic Tiler will instantly create your own IDE. No need for tmux! Write your own |
| 7 | +configurations easily or look to others' for inspiration: `link to configs` |
| 8 | + |
| 9 | +## Motivation |
| 10 | +Ever since I started using an ultrawide monitor in favor of 2 separate monitors, I realized |
| 11 | +that it was really annoying to open up a ton of windows and resize them when it was always |
| 12 | +just a few repeatable configurations. |
| 13 | + |
| 14 | +### python mode |
| 15 | +* editor for source code |
| 16 | +* editor for tests |
| 17 | +* browser for documentation/tickets |
| 18 | +* terminal for arbitrary commands like linting and running tests |
| 19 | + |
| 20 | +### web dev mode |
| 21 | +* editor for source code |
| 22 | +* editor for tests |
| 23 | +* small terminal running linter |
| 24 | +* small terminal using a filewatcher to run tests |
| 25 | +* small terminal to automatically run typescript compiler |
| 26 | +* medium terminal to run arbitrary commands |
| 27 | + |
| 28 | +### documentation mode |
| 29 | +* editor for document |
| 30 | +* browser/pager for source material |
| 31 | +* window that uses a filewatcher to autocompile the documentation |
| 32 | + |
| 33 | +There were also a lot of consistent configurations that I wanted to use that just wouldn't |
| 34 | +work out of the box. I like splitting my monitor up with 25-50-25 or 20-60-20 ratios and |
| 35 | +that requires a lot of manual resizing. I could also set up elaborate rules in Sway and |
| 36 | +then make sure each window fits into those rules, but I don't even know how that would work |
| 37 | +since Sway can resize floating windows or existing windows, but an IDE that creates itself |
| 38 | +in an instant wouldn't have any existing windows. And rules affect windows at window creation |
| 39 | +so it's like a chicken-and-egg problem |
| 40 | + |
| 41 | + |
| 42 | +Sure, I could just use `tmux`, but that came with some issues: |
| 43 | +* tmux only handles terminals. it doesn't manage browsers, pdf viewers, or anything else |
| 44 | +* tmux has its own keybindings. Even if I used `tmux` next to a browser, I'd be using different commands to jump between tmux and the windows. I can't do that! My brain is smol and it can't handle that complexity. |
| 45 | + |
| 46 | +## Goals |
| 47 | +* use only i3/sway to manage windows |
| 48 | +* create a DIY IDE with a single command |
| 49 | +* allow different IDEs to be defined through a readable file (like TOML) |
| 50 | +* run arbitrary commands (not just shells and TUIs!) |
| 51 | + |
| 52 | + |
| 53 | +## Alternatives |
| 54 | +* [tmux](https://github.com/tmux/tmux) |
0 commit comments