Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mafredri/phoenix-config
My personal Phoenix (kasper/phoenix) configuration, written in TypeScript
https://github.com/mafredri/phoenix-config
javascript macos phoenix phoenix-configuration typescript
Last synced: 12 days ago
JSON representation
My personal Phoenix (kasper/phoenix) configuration, written in TypeScript
- Host: GitHub
- URL: https://github.com/mafredri/phoenix-config
- Owner: mafredri
- License: mit
- Created: 2016-05-13T19:18:04.000Z (over 8 years ago)
- Default Branch: main
- Last Pushed: 2022-12-10T16:10:52.000Z (almost 2 years ago)
- Last Synced: 2024-10-03T12:28:39.401Z (about 1 month ago)
- Topics: javascript, macos, phoenix, phoenix-configuration, typescript
- Language: TypeScript
- Homepage:
- Size: 630 KB
- Stars: 40
- Watchers: 3
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Phoenix configuration
This is my personal [Phoenix](https://github.com/kasper/phoenix) configuration, written in TypeScript. I also created [typings](https://github.com/mafredri/phoenix-typings) for it, feel free to use them.
## Key bindings
The definition of `hyper` and `hyperShift` can be found in [src/config.ts](src/config.ts).
### Basic bindings
* `hyper + Left` (Left half of screen)
* `hyper + Right` (Right half of screen)
* `hyper + Up` (Top half of screen height, keeps current width)
* `hyper + Down` (Bottom half of screen height, keeps current width)
* `hyper + Return` (Toggle maximize, remembers unmaximized position)
* `hyper + Tab` (Jump to next screen whilst keeping relative size and placement)
* `hyper + Delete` (Minimize focused window)
* `hyperShift + Left` (Move window to left edge of screen)
* `hyperShift + Right` (Move window to right edge of screen)
* `hyperShift + Up` (Move window to top edge of screen)
* `hyperShift + Down` (Move window to bottom edge of screen)
* `hyperShift + Return` (Toggle window fullscreen, i.e. separate space)
* `hyperShift + Space` (Move window to center of screen)
* `hyperShift + Tab` (Jump to next screen whilst maintaining current window size)Use combos of the key bindings to further place the windows:
* `hyper + Left` + `hyper + Down` (Bottom left corner of screen)
* `hyper + Enter` + `hyper + Up` (Top half of screen, full width)I've optimized the key bindings for my common use-case, showing two windows on one screen and moving windows between screens.
### Misc bindings
* `hyper + c` (Start coffee timer, defaults to 8 minutes)
* ~~`hyper + +` (Increase monitor brightness using external script)~~ - Use [MonitorControl](https://github.com/MonitorControl/MonitorControl) instead
* ~~`hyper + -` (Decrease monitor brightness using external script)~~ - Use [MonitorControl](https://github.com/MonitorControl/MonitorControl) instead
* `hyper + Space` (Experimental: search for windows, tab to cycle, enter to switch, esc to cancel)
* `§` (Show or hide the last used Terminal window)
* `Cmd + §` (Cycle between Terminal windows)
* `Cmd + Escape` (Cycle between windows of current application, including minimized and windows on a different screen)
* `Cmd + Shift + Escape` (Same as `Cmd + Escape` except in reverse order)
* `Cmd + h` (Hides the focused app or all visible apps if held down)## Misc features
* Switch between Karabiner-Elements profiles when screens change
* ~~Refresh screen brightness info when screens change (using `ddcctl`)~~ - Use [MonitorControl](https://github.com/MonitorControl/MonitorControl) instead
* Support disabling / re-enabling all current keybindings via [src/key.ts](src/key.ts) (used by scanner)## Building
```
git clone https://github.com/mafredri/phoenix-config.git
cd phoenix-config
yarn install
yarn run build
```The TypeScript compiler and Webpack will produce `out/phoenix.js` that can be used as Phoenix configuration.
For development, `yarn start` will run Webpack in watch-mode.
## Debugging
In a terminal, run:
```console
$ log stream --process Phoenix
```Anything logged via logger (`import log from './logger';`) will show up as human friendly output in the terminal. `Phoenix.log` can also be used, but it only supports strings, much of the heavy lifting is already done by logger to create a similar experience to `console.log` in the browser.
You can also read about [Attaching to Web Inspector for Debugging](https://github.com/kasper/phoenix/wiki/Attaching-to-Web-Inspector-for-Debugging) in the Phoenix wiki. This gives access to true `console.log` and ability to use `debugger` statements in your code.