Bottles
  • Welcome
  • 📌Getting started
    • Installation
    • First run
    • Environments
  • Components
    • Runners
    • DXVK
  • Bottles
    • App preferences
    • Run .exe/.msi/.bat/.lnk files
    • Shortcuts
    • Bottle preferences
    • Dependencies
    • Programs
    • Installers
    • Versioning
    • Backups & Duplicate
    • Import from other managers
    • Configuration files
  • Utilities
    • Logs & Debugger
    • CMD
    • Winecfg
    • Task manager
    • Regedit
    • Uninstaller
  • Advanced
    • CLI
    • Use Bottles as wine command
    • xdg-open links
  • 🎩Contribute
    • Missing dependencies
  • Flatpak
    • Can't enable Steam Proton manager
    • Migrate directories to Flatpak
    • Black screen or silent crash
    • Expose directories
      • Use system home
  • FAQ
    • Why Bottles?
    • Where is Winetricks?
    • Updates and old versions
    • Video GStreamer Problems
Powered by GitBook
On this page
  • What's the homedir?
  • Sandboxed userdir (homedir)

Was this helpful?

Edit on GitHub
Export as PDF
  1. Flatpak
  2. Expose directories

Use system home

How to use the system home and not the sandboxed one

PreviousExpose directoriesNextWhy Bottles?

Last updated 3 years ago

Was this helpful?

Warning, this procedure can expose your system (and therefore your personal files) to dangers, as we are going to break the Bottles sandbox.

What's the homedir?

Each user has a personal homedir (/home/your_username), this is the place where you can store your personal files, like videos, photos or documents. This path is also used for cache files .cache and software configurations .config.

How do runners use my homedir?

Each when making a new windows prefix (we call these bottles here), creates a similar Windows structure:

._ bottles/
    |_ your_bottle/
        |_ bottle.yml
        |_ drive_c/
            |_ ProgramData/
            |_ Program Files/
            |_ Program Files (x86)/
            |_ users/
                |_ Public/
                |_ your_username/
            |_ windows/

It generates a folder in the users/ path, for the current logged in user (e.g. I'm currently logged as mirko, so the runner will create a mirko/ folder inside users/. It also creates a Public folder, but that is not our interest right now.

Each user folder contains some symlink to the original homedir:

..
    |_ users/
        |_ mirko
            |_ AppData
            |_ Contacts
            |_ Desktop -> ~/Desktop
            |_ Documents -> ~/Documents
            |_ Downloads -> ~/Downloads
            |_ Favorites
            |_ Links
            |_ Music -> ~/Music
            |_ Pictures -> ~/Pictures
            |_ Saved Games
            |_ Searches
            |_ Temp
            |_ Videos -> ~/Videos

So each program installed in the bottle can see your files from the linked folders.

Sandboxed userdir (homedir)

Starting from Bottles 2021.10.14, the userdir path is sandboxed, so the above symlinks don't exist.

Creating a new bottle, Bottles detect if it is running under Flatpak, then remove these symlinks and make them as normal folders inside the bottle. As a result, each program can only work with files inside the sand-boxed userdir (shareable across programs).

How to revert this?

While this is a practice discouraged by Bottles and we take no responsibility for what may happen after exposing your homedir to the runner, there is a very simple way to do it.

cd ~/.var/app/com.usebottles.bottles/data/bottles/bottles

then find the bottle you want to give access to the homedir (e.g. it is called Testing in our case), so move to the userdir:

cd Testing/drive_c/users/your_username/ && ls -l

remove the folders you want to expose (e.g. Documents):

rm -r Documents

then recreate as symlink (e.g. for Documents):

ln -s ~/Documents Documents

and this is all!

First we need to expose the homedir to Bottles, giving it the right permission ( how to achieve this). Once the homedir is exposed, get into a terminal and move to the Bottles flatpak path:

runner
read here