115 lines
4.4 KiB
Markdown
115 lines
4.4 KiB
Markdown
# bottles-opener
|
|
|
|
bottles-opener is a CLI for linux that lets you double-click a file and have it open in its Windows program, inside its bottle.
|
|
Works with FL Studio, Microsoft Office, Photoshop, Ableton and anything else you run through [Bottles](https://usebottles.com).
|
|
|
|
You install FL Studio in Bottles, double-click your `.flp` and... your file manager asks what an `.flp` is. This tool reads which files your Windows programs registered in their bottle - the same list Windows uses - teaches your system those types, gives them the program's icons and hands the file over the way Explorer would. One command and your files _✨just open✨_ (like on windows).
|
|
|
|
## How to use
|
|
|
|
Just run `bottles-opener`:
|
|
|
|
```
|
|
Bottles Opener
|
|
|
|
File opening ON
|
|
|
|
Bottles package
|
|
Programs found 5 in 2 bottles
|
|
File types .doc .docx .flp .fsc .fst .pptx .xlsx +31
|
|
New programs ON
|
|
Last applied 2 minutes ago
|
|
|
|
Double-click one of these files and it opens in its program.
|
|
|
|
[1] Turn file opening on or off
|
|
[2] Re-apply everything
|
|
[3] File types
|
|
[4] Programs
|
|
[5] Settings
|
|
[q] Quit
|
|
|
|
>
|
|
```
|
|
|
|
Press `[1]` and you're done. `[3]` lists every file type and lets you pick what opens it:
|
|
|
|
```
|
|
File types
|
|
|
|
▸ .docx Word · Office double-click
|
|
.flp FL Studio · FL Studio double-click
|
|
.psd Photoshop · Adobe Open With
|
|
```
|
|
|
|
`double-click` opens it. `Open With` only lists it in the right-click menu - that's what types get that already have an app on your system (`.docx` with LibreOffice), so nothing you picked gets taken away. Space switches.
|
|
|
|
`[4]` lists your programs; Enter edits their file types, so you can add any extension you like. Or without the menu:
|
|
|
|
```bash
|
|
bottles-opener add flp,fst "FL Studio"
|
|
```
|
|
|
|
## How to install
|
|
|
|
**Arch (for the cachyos enjoyers)**
|
|
|
|
```bash
|
|
yay -S bottles-opener
|
|
bottles-opener enable
|
|
```
|
|
|
|
**From source**
|
|
|
|
```bash
|
|
make
|
|
sudo make install
|
|
bottles-opener enable
|
|
```
|
|
|
|
No root? `make install PREFIX=~/.local` works too.
|
|
|
|
Needs `bash`, `python3` with PyYAML and icoextract (Bottles needs both itself) and `update-mime-database`.
|
|
|
|
## How it works
|
|
|
|
- **Which files:** read from the bottle's registry, like Windows does (`.flp` → `FL64.flp.26` → `FL64.exe "%1"`). Programs that registered nothing are matched against a built-in list: all of Office, FL Studio, Ableton, Cubase, Photoshop, Illustrator, Affinity, AutoCAD, SketchUp and more.
|
|
- **Unknown extensions** (`.flp`, `.msg`, `.als`, ...) get a MIME type in `~/.local/share/mime/packages/bottles-opener.xml`, named like in Windows ("FL Studio project file"). Where Linux means something else by an extension (`.mpp` is Musepack, `.fst` a tracker module) the file's signature tells them apart.
|
|
- **Icons:** the file gets the icon Windows shows, pulled out of the program. A type your system already knows keeps its icon until the program is its default.
|
|
- **Opening:** the path becomes the Windows path (`Z:\home\you\song.flp`), with the switches from the registry (Outlook `/f`, PowerPoint shows `/s`), started through `bottles-cli` with all your bottle's settings.
|
|
- **Flatpak Bottles:** the file goes through the document portal first, like `flatpak run --file-forwarding`.
|
|
|
|
Everything written is recorded, so `bottles-opener disable` puts back exactly what was there. New programs are picked up by a systemd path unit; `bottles-opener apply` does the same by hand.
|
|
|
|
## Why not just Bottles?
|
|
|
|
Bottles 67 has "File Associations" per program, but it rejects extensions your system doesn't know (so `.flp`, `.msg`, `.als` are "invalid"), passes Linux paths, doesn't know which program opens what and doesn't touch icons.
|
|
|
|
## Commands
|
|
|
|
| Command | |
|
|
|---|---|
|
|
| `bottles-opener` | Interactive menu |
|
|
| `… enable` | Turn on, apply, start watching |
|
|
| `… disable` | Undo everything |
|
|
| `… apply` | Pick up new programs |
|
|
| `… apply --rebuild` | Redo from scratch |
|
|
| `… status` | What's set up |
|
|
| `… list` | All file types and what opens them |
|
|
| `… programs` | All programs and their file types |
|
|
| `… add <ext,...> <program> [bottle]` | Open file types with a program |
|
|
| `… remove <ext,...> [program]` | Stop opening file types |
|
|
|
|
## Building from source
|
|
|
|
```bash
|
|
make
|
|
sudo make install
|
|
```
|
|
|
|
Optionally needs `msgfmt` (gettext) and `scdoc`. Supports `PREFIX` and `DESTDIR`. `make check` runs syntax checks and shellcheck.
|
|
|
|
## License
|
|
|
|
GPL-3.0-or-later.
|