Commit graph

105 commits

Author SHA1 Message Date
Kron4ek
184482a7fe Replace fuse-overlayfs with unionfs-fuse
In my testing, unionfs-fuse works significantly faster than fuse-overlayfs. And it supports both fuse2 and fuse3, which is also an advantage over fuse-overlayfs.
2023-05-31 16:30:13 +05:00
Kron4ek
af228053e0 Fix executing Conty from PATH
This was broken in the latest release.
2023-05-31 13:33:33 +05:00
Kron4ek
27677599f8 Make Conty even more portable
Conty now uses statically linked bash and busybox, so it no longer depends on system-wide bash, tar and gzip.

And other improvements in this commit:

* NVIDIA_HANDLER improved and enabled by default.
* Reworked the self-update feature, it uses fuse-overlayfs now instead of extracting the whole image.
* Added the CUSTOM_MNT, which allows to use Conty with already mounted custom moint points and directory structures.
* create-conty.sh now automatically sets the correct sizes in conty-start.sh
* Added more locales
2023-05-28 16:52:18 +05:00
Kron4ek
3beb06e146 A few improvements for NVIDIA_HANDLER
Also, fuse-overlayfs can now be enabled separately from NVIDIA_HANDLER.
2023-05-24 00:12:44 +05:00
Kron4ek
a467da324d Add a function to fix issues with Nvidia GPUs
The function is called NVIDIA_HANDLER and is disabled by default.
When enabled, it will automatically download the same Nvidia driver version as installed on the host system and pass it into the container.

This is implemented via fuse-overlayfs, fuse3 is required for this to work.
2023-05-21 22:01:03 +05:00
Kron4ek
9ed24fef16 Implement a simple graphical interface
The GUI will be used by default when a user runs Conty not from a terminal emulator, but from a graphical interface (for example, from a file manager).
2023-05-16 20:46:50 +05:00
Kron4ek
7869c2dd69 Create ~/.local/share if missing 2023-05-05 00:18:44 +05:00
Kron4ek
fe425cbb61 Also export icons when exporting desktop files 2023-05-05 00:15:56 +05:00
Kron4ek
03efe023fa Update integrated utils
Update bubblewrap to 0.8.0
Update dwarfs to the latest git revision (2a0ac12)
Update squashfs-tools to 4.6.1
Update zstd to 1.5.5
Update all other outdated dependencies
2023-04-15 00:02:41 +05:00
Kron4ek
a68c21884b Preserve environment variables when exporting desktop files
Not all environment variables, but those related to Conty.
2023-04-12 01:58:02 +05:00
Kron4ek
14e606729f Add additional arguments to Conty when exporting desktop files
If there are arguments after the "-d" argument, append them to Conty in desktop files.
2023-04-12 00:49:15 +05:00
Kron4ek
850b0571e4 Export desktop files recursively
Some applications store their desktop files not just in /usr/share/applications, but in a subdirectory. Now we handle such cases too.
2023-04-09 21:04:56 +05:00
Kron4ek
7ec81cf471 A few improvement to the desktop files export function
Append "(Conty)" even to translated names.
Skip adding TryExec as it prevents some apps from showing up in application menu.
2023-04-07 14:43:44 +05:00
Kron4ek
feaefe2014 Add the ability to export desktop files 2023-04-06 19:06:54 +05:00
Kron4ek
f5f3f34ea6 Don't bind system's /opt if there are files in container's /opt 2023-03-25 21:48:12 +05:00
Kron4ek
6b09f42765
Update script version 2023-02-17 18:37:50 +05:00
Kron4ek
7de74da3f9 Fix script size 2023-02-17 18:28:19 +05:00
ghtm2
187867e162
make help more readable 2023-02-16 17:27:40 +01:00
Kron4ek
ebd5243a4e Fix script size 2023-02-16 15:51:41 +05:00
ghtm2
b21c8401ae
Use curl instead of wget (#63) 2023-02-16 15:48:21 +05:00
ghtm2
b3c16de238
Fix shellcheck warnings and style (#62) 2023-02-16 00:57:05 +05:00
Kron4ek
c86cba4af3 Update integrated utils
Update bubblewrap to 0.7.0
Update dwarfs to the latest git revision (3dfad5a)
Update zstd to 1.5.4
Update glibc to 2.37
Update boost to 1.81
Update all other outdated dependencies
2023-02-10 16:11:08 +05:00
Kron4ek
521ef2069f Update dwarfs compression arguments 2022-11-24 13:01:34 +05:00
Kron4ek
d74279f6f5 Update integrated utils
Update glibc to 2.36
2022-10-17 01:18:11 +05:00
Kron4ek
b01c65bd8a Update ld.so.cache when updating Conty
ld.so.cache does not get updated automatically for some reason, so update it manually. Otherwise there may be problems with libraries (like https://github.com/Kron4ek/Conty/discussions/55)
2022-09-18 14:01:52 +05:00
Kron4ek
425a9eb21f Tweak dwarfs parameters
Lower the cache size
Limit the maximum number of workers to 8
2022-09-11 17:49:13 +05:00
Kron4ek
114a55e840 Also unset XAUTHORITY when disabling access to X server 2022-08-27 22:58:31 +05:00
Kron4ek
cc69e5361b Don't parse own arguments if the script is a symlink 2022-08-27 22:40:51 +05:00
Kron4ek
d2fda8cbcf Add the ability to disable access to X server
For example, this is useful for restricting applications from accessing Xwayland on Wayland.
2022-08-27 22:27:06 +05:00
Kron4ek
36d01751b4 Mount all X sockets separately
Remount /tmp/.X11-unix as tmpfs and then mount all X sockets separately.
This fixes gamescope.
2022-08-27 19:12:29 +05:00
Kron4ek
71d2460e60 Properly handle non-standard HOME directories
Non-standard here means outside of /home.
2022-08-27 15:33:40 +05:00
Kron4ek
30938e7713 Automatically create a directory for HOME_DIR when it is set 2022-08-27 14:37:48 +05:00
Kron4ek
c186b86cbd Properly handle spaces for all bwrap parameters
Use bash arrays instead of just variables to properly handle spaces.
2022-08-27 14:29:59 +05:00
Kron4ek
ea3a106654 Update integrated utils
Update squashfuse to 0.1.105
Update dwarfs to the latest git revision (e8f489a)
Update lz4 to 1.9.4
Update all other outdated libraries
2022-08-26 19:51:12 +05:00
Kron4ek
576f16fcf6 Use integrated utils to extract images
Unless USE_SYS_UTILS is enabled.
2022-06-21 17:36:31 +05:00
Kron4ek
714d7dce15 Remove the SUDO_MOUNT feature 2022-06-18 13:47:06 +05:00
Kron4ek
6789b088a0 Remove the mount message when using DwarFS
DwarFS mounts instantly now, so the message is no longer needed.
2022-06-16 21:25:43 +05:00
Kron4ek
3039659db9 Automatically detect image format
DwarFS images have the string "DWARFS" at the very beginning of the file.
2022-06-16 21:16:51 +05:00
Kron4ek
886e1ff880 Update sqfs compressor arguments 2022-06-16 19:57:59 +05:00
Kron4ek
f5f1e9fbd7 Check the amount of free space before updating 2022-06-16 19:53:57 +05:00
Kron4ek
53e64b65bf Update integrated utils
Update bubblewrap to 0.6.2
Update squashfs-tools to 4.5.1
Update dwarfs to the latest git revision of the wip branch (which should speed up mount times on HDDs)
Update all other outdated libraries
2022-06-01 14:26:26 +05:00
Kron4ek
e55b1e6869 Update integrated utils
Update bubblewrap to 0.6.1
Update dwarfs to the latest git revision
Update all other outdated libraries
2022-04-05 23:54:28 +05:00
Kron4ek
8ff3f30563 Remove BIND and BIND_RO variables
`--bind` and `--ro-bind` launch arguments can still be used.

This commit also adds a launch argument (`-H`) to show the bubblewrap help.
2022-02-26 00:56:23 +05:00
Kron4ek
579b84bf84 Do not remove mount_point if the image is still mounted 2022-02-20 21:40:31 +05:00
Kron4ek
2598e9766f Update integrated utils
Update glibc (to 2.35) and other libraries.
2022-02-20 20:31:22 +05:00
Kron4ek
349b39874e Update integrated zstd to 1.5.2 2022-01-25 15:24:10 +05:00
Kron4ek
d17b60f1c7 Update integrated utils
Dwarfs updated to the latest git revision
Updated all outdated dependencies

Compiled using Clang 13 + O3 + LTO for better runtime performance
2022-01-08 15:11:17 +05:00
Kron4ek
759615545f Update integrated zstd to 1.5.1 2021-12-29 17:08:27 +05:00
Kron4ek
72c3be5dfa Mount pulse and pipewire sockets
Mount pulse and pipewire sockets at SANDBOX_LEVEL 2+, oherwise sound will not work for pulseaudio and pipewire users.

With SANDBOX disabled or at SANDBOX_LEVEL 1 this is not a problem, since the entire XDG_RUNTIME_DIR gets mounted.
2021-11-20 13:48:50 +05:00
Kron4ek
d05109732b Change the default dwarfs compressor arguments
Slightly worse compression ratio, but faster file system access.
2021-11-08 16:18:46 +05:00