Linux desktop environment mac

Bring Linux apps to the Mac Desktop with Docker

If you use Linux as your host operating system then with one or two commands you can have most graphical Linux applications up and running on your desktop in seconds. Package managers like apt-get , yum and pacman make installing new software almost seamless. If you are running an XWindows server (which you probably are) then getting a graphical application to appear on your screen from a remote Linux system or a Docker container can be as simple as setting the DISPLAY environmental variable.

But macOS though?

Many applications that exist for Linux also exist for Mac: Chrome, FireFox, VLC Player, Slack, Arduino IDE etc. In some cases they have been ported and re-built natively and even optimized to take advantage of the OS.

So why would you want to run Linux versions of apps on your Mac?

Here are a few reasons why you may want to use Docker to run Linux applications on macOS:

  • To access to newer versions of software
  • To test various versions of the same software simultaneously
  • To use tools which may not be ported to macOS yet
  • For sandboxing an application:
  • To tighten up on security
  • or to isolate and/or spy on network traffic

Since Docker provides a sandboxed environment for applications that means you can add/remove just the capabilities you want and tighten up on security.

Several paid tools exist for macOS to isolate network traffic and push it down different HTTP proxies or SOCKS tunnels depending on custom rulesets. This is ideal if you frequently work on public WiFi networks or behind a restrictive corporate network. By using your own hosted proxy server or VPN you can protect some or all of your traffic. So why pay for something you can do for free with Docker?

Slack for Linux running on macOS

Slack for Linux running on the Mac Desktop in El Captain

Step-by-step

Here’s what you need to do to bring X11 to your Desktop.

Читайте также:  Supreme commander forged alliance linux

1. Install an X11 server

An X11 server exists for MacOS which allows applications like XTerm to run and display output on your local computer. It’s packaged up as the XQuartz project and can be installed with brew:

$ brew install Caskroom/cask/xquartz ==> brew cask install Caskroom/cask/xquartz ==> Creating Caskroom at /usr/local/Caskroom ==> Downloading https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.9.dmg ################################## 100.0% 

2. Build your Dockerfile

Once you have XQuartz set up you can then install your favourite graphical Linux apps into a Debian container or whichever distribution you prefer.

FROM debian:stretch ENV LC_ALL en_US.UTF-8 ENV LANG en_US.UTF-8 RUN apt-get update && apt-get install -y \ apt-transport-https \ ca-certificates \ curl \ gconf2 \ gconf-service \ gvfs-bin \ hunspell-en-us \ libasound2 \ libgtk2.0-0 \ libnotify4 \ libnss3 \ libxss1 \ libxtst6 \ locales \ python \ xdg-utils \ libgnome-keyring0 \ gir1.2-gnomekeyring-1.0 \ libappindicator1 \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen \ && locale-gen en_US.utf8 \ && /usr/sbin/update-locale LANG=en_US.UTF-8 ADD ./slack-desktop-2.1.0-amd64.deb ./ RUN dpkg -i slack-desktop-2.1.0-amd64.deb ENTRYPOINT ["slack"] 

I adapted this Dockerfile from one that Jess Frazelle came up with. It appeared to be broken when I tried it so I’ve added some more packages to fix the runtimes errors I encountered.

You may also be asking yourself why I’ve added slack from the local filesystem instead of using wget or curl . If you need to fetch the binary from a specific HTTP proxy or VPN tunnel then you may not want Docker to handle that.

Run this before building the Dockerfile or move it back into the file itself as a RUN step:

$ wget https://downloads.slack-edge.com/linux_releases/slack-desktop-2.1.0-amd64.deb 

Most packages are available in package repositories or PPAs so apt-get could be used, but Slack is an exception to the rule.

3. Set up XQuartz for network connections

By default XQuartz will listen on a UNIX socket, which is private and only exists on local our filesystem. This means Docker won’t be able to access it.

Install and run socat to create a tunnel from an open X11 port (6000) through to the local UNIX socket where XQuartz is listening for connections:

$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" 

This will block, so open a new tab or terminal.

4. Start the application

Build your Dockerfile, then start it by passing in an environmental variable for the DISPLAY so your graphical application knows where to show itself. Change the IP address of 192.168.0.15 to whatever you see on ifconfig .

$ wget https://downloads.slack-edge.com/linux_releases/slack-desktop-2.1.0-amd64.deb $ docker build -t slack:2.1.0 $ docker run -e DISPLAY=192.168.0.15:0 --name slack -d slack:2.1.0 

For extra points you could:

  • Use docker-compose to make starting/stopping the app easier and manage the container
  • Bind-mount an options directory so the container can ‘remember’ your communities. I.e.
  • -v /home/alex/.slack:/root/.config/slack
  • Use a script to find the IP address to insert into the DISPLAY variable.
  • Create a docker-compose.yml file for easy starting/stopping of the application. (See below)

4.1 Note on proxies:

If you want an app such as Slack to use a HTTP_PROXY then you can pass in the environmental variable at runtime. Here’s an example with a docker-compose.yml file for convenience:

version: "2.0" services: slack: image: slack:2.1.0 environment: - HTTP_PROXY=http://192.168.0.10:8080 - HTTPS_PROXY=http://192.168.0.10:8080 - DISPLAY=192.168.0.10:0 volumes: - .slack_config:/root/.config/Slack networks: - default 

5. Wrapping up

X11 forwarding from Docker to Linux is fast and can be accelerated by sharing additional resources such as /dev/video0 or /dev/shm , unfortunately this is not possible with Docker on macOS. When forwarding apps from Docker to XQuartz you may find that they do not run correctly or have unexpected lag. This may be because hardware acceleration and use of the GPU is not available, but the applications may still be useable enough for you to get the benefits.

Читайте также:  Cat less more linux
See also:

Acknowledgements:

Most of what I’ve outlined above came from reading a Github issue from 2015: Docker issue #8710.

For examples of running popular Linux apps on the Linux Desktop see Jess’ Containers on the Desktop blog post.

Let me know if you know of any way of accelerating the performance of X11-forwarded apps on macOS. Or if you have any other tips or hacks, send me a tweet @alexellisuk or post a comment.

Alex Ellis

Share this post

Subscribe to Alex Ellis’ Blog

Subscribe to keep in touch. By providing your email, you agree to receive marketing emails from OpenFaaS Ltd

or subscribe via RSS with your favourite RSS reader

Learn Serverless with my new eBook

Serverless eBook cover

Learn how to build and automate serverless functions in JavaScript with an open-source platform that you can run anywhere.

Learn Go with my new eBook

eBook cover

«Everyday Go» is the fast way to learn tools, techniques and patterns from real tools used in production based upon my experience of building and running OpenFaaS at scale.

Get Started with Docker on Raspberry Pi

I have put this guide together to help you get started with Docker 1.12 (or newer) on your…

Jenkins meets the corporate proxy

It seems like so much time has already passed since I wrote my first impressions to the Jenkins 2.…

Alex Ellis’ Blog © 2023 Proudly published with Ghost

Источник

linux desktop environment like mac

ElementaryOS is a distribution of Linux, based on Ubuntu and GNOME, which pretty much copied all the GUI elements of Mac OS X. . This is mainly because for most people anything that isn’t Windows looks like Mac.

How do you make MX Linux look like macOS?

Now, when you open your system settings, and go to Appearance > Icons and select the Yosemite Icons icon theme. Having done this, return to the settings menu, and go to Appearance > Application Style > GNOME Application Style. Under the GTK Themes section, select macOS-Sierra-master.

How do I make my desktop look like a Mac?

  1. Move your taskbar to the top of your screen. Simple, but an easy one to miss. .
  2. Install a dock. The OSX dock is a simple way to launch regularly used programs. .
  3. Get Expose. .
  4. Throw in Widgets. .
  5. Completely reskin Windows. .
  6. Get some Spaces. .
  7. That’s the look.

Is Ubuntu similar to Mac?

Essentially, Ubuntu is free due to it’s Open Source licensing, Mac OS X; due to being closed source, isn’t. Beyond that, Mac OS X and Ubuntu are cousins, Mac OS X being based off of FreeBSD/BSD, and Ubuntu being Linux based, which are two separate branches off of UNIX.

Читайте также:  Установка conky manager linux mint 20

How do I make my Fedora 33 look like a Mac?

Download Mac OS X Mojave Theme and Icon Theme

Save all those files in your download directory. Next, let’s extract all those files. Extract the themes to /usr/share/themes and the icon theme should go to /usr/share/icons. Now open Gnome Tweaks and apply the new themes and icon.

Can I use Linux on Mac?

Yes, there is an option to run Linux temporarily on a Mac through the virtual box but if you’re looking for a permanent solution, you might want to completely replace the present operating system with a Linux distro. To install Linux on a Mac, you’ll need a formatted USB drive with storage up to 8GB.

Which Linux is best for Mac?

After elementary OS, Deepin Linux could be the distro of your choice if you want your Linux system to look like the latest and greatest macOS version. Deepin Linux was initially based on Ubuntu but now uses Debian as its base.

Is it worth installing Linux on Mac?

Some Linux users have found that Apple’s Mac computers work well for them. . Mac OS X is a great operating system, so if you bought a Mac, stay with it. If you really need to have a Linux OS alongside OS X and you know what you’re doing, install it, otherwise get a different, cheaper computer for all your Linux needs.

How do I make my Mac feel like Linux?

  1. Step 1: Install a macOS inspired GTK theme. .
  2. Step 2: Install macOS like icons. .
  3. Step 3: Add macOS like dock. .
  4. Step 4: Use macOS wallpaper.

How do I make Linux Mint 20 look like Mac?

  1. Change the desktop wallpaper to a Mac background.
  2. Replace the bottom panel with a dock app like Plank.
  3. Install a Mac icon theme for Linux.
  4. Move the bottom panel to the top of the screen.
  5. Install/enable Nemo Preview, analogous to Quick Look.

How do I make my Mac look like Zorin OS?

Click on the Applications dropdown, under the Themes heading, and you can find the macbuntu themes there. I chose the ‘MacBuntu-OS 3.2 High-SIerra-Dark-Master’ from the dropdown, but you can choose from the other themes such as mojave and yosemite. there’s even options for XFCE, mate cinnamon and GNOME.

Solus 4.1 “Fortitude” available for download now

Solus

How do I download Solus?Is Solus good for gaming?Is Solus a good distro?Is Solus good for beginners?Which Solus version is best?What bootloader does S.

Why you should have VPN on your Linux machine

Linux

VPN protects a user’s sensitive data and privacy All Linux users on a network want to be guaranteed the safety of accessing, sending, and receiving se.

List of best open-source accounting software for small businesses

Accounting

Let’s get started!GnuCash. Ease of use: (4.2/5) GnuCash is an open source, double-entry accounting solution for small businesses and individuals. . .

Latest news, practical advice, detailed reviews and guides. We have everything about the Linux operating system

Источник

Оцените статью
Adblock
detector