Hacker News new | past | comments | ask | show | jobs | submit login
How to use Photoshop in a VM on Ubuntu (prtfl.io)
151 points by muellerwolfram on Jan 23, 2013 | hide | past | favorite | 73 comments



It is mainly "How to use VirtualBox on Ubuntu to run Windows, then install Photoshop and use it."

I mean, come on!


It does provide detailed steps for a solution to a problem. I'm sure many people will appreciate that.


Many people... on Hacker News or eHow?


I've met more than a couple of programmers who are otherwise so computer illiterate that you pretty much have to walk them over and sit them down in front of a text editor.

Most people around here seem to have somewhat decent system-admin skills, but there's also lots of students and even professionals who just haven't messed around with virtualization very much.

I'm pretty good at using VMWare to set up Linux systems in Windows, but I haven't tried the opposite yet. Sure, I could probably figure it out, but it's nice to have this guide to fall back on if something goes wrong.


> I've met more than a couple of programmers who are otherwise so computer illiterate

I have not witnessed this myself but I have heard countless stories from friends/colleagues in the same vein - there seems to be indeed a big gap between one's coding abilities and the overall computing knowledge.


I've been doing it this way for over a year and it's been nearly perfect. It looks and feels like a native app like he says in the article.

However, I've noticed issues with USB peripherals / Virtualbox that make Photoshop nearly impossible to use with a tablet for me.


I think turning off mouse integration in virtualbox helps with the tablet issues. I use virtual box for Photoshop and light wave 3d, and the mouse integration feature always upset how the program read the cursors coordinates. You just have to remember to use the keyboard shortcut to turn it on again before trying to move your mouse back to a host program.


Hey thanks, carpo. I'm gonna give this a shot next time.


Not using a VM on my desktop often, I read is list of requirements and assumed it was impossible. "Seamless mode" in particular I was not aware of.


This title is misleading since one of the steps is 'install Windows.'


This taught me something as well, you could easily use this for other wine problem applications


I was doing something similar but end it up ditching the whole thing since I'm running CS6 on Wine without any problems (except a buggy lasso tool): https://gist.github.com/4610671

It checks for the VM state and waits the system to be ready, so you can turn off the vm if you want. Feel free to adapt to your needs.


Do you have tablet pressure in CS6? Photoshop has run under Wine for years, although tablet pressure hasn't worked since CS2 AFAIK.


I don't own a drawing tablet, sorry. And yeah I know: http://appdb.winehq.org/objectManager.php?sClass=application...


I would be more interested in learning how you used CS6 on Wine!


Windows XP, atmlib, comctl32, gdiplus (native), ie6, msls31, msxml3 (native), msxml6, pngfilt, vcrun2005, vcrun2008, vcrun2010, inseng (native)

When you're installing it will say it's not working...but check the HDD light because it's actually installing files so when it stops blinking your installation is ready.


Oh wow, that's a lot of dependencies. I'll give it a shot, thanks!


Thanks, muellerwolfram. This guide is excellent and dear to me as someone once stuck in the exact same position described in the opening paragraph. Indeed, flitting between operating systems was so natural that even now I instinctively want to take issue with your "dual boot sucks" but if I could use one OS for everything (and I do mean "everything", other OS emulation included) then I would, so quite simply: you are right.

For what it's worth, I chose a different route in solving my Photoshop dependence: I forced myself to learn alternatives. But I don't mean just that I learned GIMP (which I recommend, though completely sympathise with the "Regarding GIMP" section); I mean that I made it my goal to be someone who can take new software and ascertain how to do with it what I already know how to do in my "native" habitat, even if the method is convoluted or requires learning a new paradigm. This goes back to days of using elementary school computers with nothing more than MSPaint and enjoying that hit of satisfaction from performing a manual "crop": make a selection, copy it, minimise the canvas to a handful of pixels, ctrl+V, MSPaint automatically resizes the canvas to the pasted selection, BLAM it's a crop! (We've all been young, when figuring these things out for oneself is the next best thing to being a Jedi - and that said, if anyone has their own method for cropping in 2000-era MSPaint I'd love to hear it). Likewise in the "new paradigms" category, learning about Turing machines and formal data structures changed everything for me as a BASIC-minded programmer.

Since adopting this generalised view I have found it's helpful as a core principle: I can't always count on the environments I know, so learning to adapt is crucial. This applies to programming, competitions, and even romantic partners. In the infinite indulgence of our field to give everything a "cool" name, I refer to this as the "Peter Petrelli" skill.

Quite apart from arguing against using Photoshop in Ubuntu, it returns to your piece. Sometimes short of coding something up from scratch there really is only one program that does what we require to solve a specific problem, and sometimes the operating system is fixed. Knowing how to solve the equation for these variables is part of being an adaptable and valuable agent. Great article.


Is anyone running the opposite setup? That is, Windows as the primary OS and Linux in a VM. I'm looking to upgrade my laptop soon and don't want to pay Apple's high prices, so I'm looking at 1080p Windows laptops.

I'm considering Windows as the base OS and a Linux VM for development stuff. I do web development, including design work, so I would need the ability to run Photoshop and other tools. But for running my ruby stuff (Rails, Spork, etc), I think a Linux VM would be ideal.

Summed up: How do others live in the Rails dev world when not using Mac OS?


I have an associate who recently switched from a Linux host to a Windows host running Linux VMs. He spends almost all of his time in his Linux VMs doing dev work, but finds it very convenient to have the Windows host when he wants to play a game, run Photoshop, or do one of a handful other things that don't have good equivalents on Linux.

It's almost tempting to switch to a set up like that but I don't have the heart for it.


I've got multiple machines like this, they run Windows as the host OS but I spend a lot of time in VMs writing code under Linux (I don't do Rails dev, but lots of Go stuff mostly targeting embedded Linux platforms).

On systems with modern CPUs and plenty of RAM to spare the VMs feel basically the same as native to me, especially when running them in fullscreen modes.


I use Windows most of the time due to needing Visual Studio for some Windows related development as well as wanting to play current games in my free time. I also need Linux tools for web and Android development (mainly Android OS modding/compiling).

I supplement windows with a virtual machine running just a Debian terminal interface with 512mb of ram devoted to it. From that, I can run PostgreSQL, MySQL, Apache Ngnix or whatever else wouldn't be so great to keep on Windows. The added benefit of that is I keep my development enviroment seperated from the rest of my PC so I don't have to keep all the services running all the time unless I need them.

When I do have the VM on, I just keep it running in the background on one core and don't even notice it's there other than the ssh terminal I interact with in putty. As for other Linux needs, I can get by mostly with using Cygwin + puttycyg[1] for scripting python/perl/bash/etc. Overall, I haven't felt the need to use dual booting in a few years since adopting that approach.

[1] http://code.google.com/p/puttycyg/


I did exactly this for many months, but then realized that I was spending 90% of my time in the VM and it just made more sense to run the linux install native.

My laptop is my development machine, so I usually have my desktop (Windows, since it doubles as a gaming rig) in reach if I need Windows for Photoshop or Visual Studio or something else briefly and don't feel like firing up a VM.


I don't see any advantage to running the install native. I've actually had more issues in native installs than through VMs.

As a side note, if anyone is interested in running an Ubuntu desktop VM, I highly recommend Lubuntu. It's extremely lightweight and fast, it's perfect for VMs.


How do you configure your VM once you install it? I seem to have a lot of performance issues unless I get a pre-configured VMWare image. The only image I've ever gotten to run as fast as a native install is the Official Backtrack VMware .iso.

I've installed several distributions, including Lubuntu, along with the VMware tools, but I always get really poor performance when I try to set up my own VMs.


2 processor cores and 2G of memory is all mine needs to perform well. Perhaps my level of "fast enough" is much slower than yours, but my VM doesn't feel any slower than the host.


I have a 2nd gen i7 and 16gb on the host. I think I tried everything up to 8 cores and 4 gb, but it still seems like everything is slow.

So you don't do anything special to optimize it?


No, nothing at all. I have an ivy bridge i5, 8GB 1600, and two old nvidia geforce 8600 under sli. Perhaps the people at /r/techsupport could help. Full screen in my VM feels just like booting into Ubuntu - no lag at all.


Honestly, 99% of the time that I want to use linux it's because I want a more powerful command line. My current setup is usually windows/osx as my host system, and a simple putty connection to either a local headless VM, or often one of my linode servers. If you're familiar with vim/emacs, a command line is a perfectly acceptable development environment.


If you go for windows (host) and linux (guest) for dev tools & console stuff you should definitely check CoLinux. It's a very neat virtualisation, where the linux kernel works as another process on widnows, and the performance is really good. However, for the GUI stuff you will need some vnc pipe.


Given that Mac OS straddles these two worlds perfectly well and you're a working professional, why not claim a mac as a tax deduction? (If your jurisdiction allows for that)

As for your question, the answer depends on whether you need the GPU acceleration in your adobe products. If so, you'll obviously want to run them on your host system. Support is getting pretty good but it is not there yet.

Parallels and VMware have both rolled out JIT translation of DX->opengl instructions with a windows guest, which is quite impressive. I doubt this improves your lot, though.


Because Mac OS doesn't straddle the worlds perfectly well. It's definitely more compatible than Windows/Cygwin, but you still spend a lot of time trying to get things to work and/or compile correctly on OS X that would work effectively "out of the box" on a Linux machine. A recent hire has insisted on using a Mac OS workstation and his install time for new tech stacks is through the roof when compared to developers on Linux workstations.


Yes, that has been my experience. Most tech stacks I use install better under Linux. Even if I were using a Mac as the host OS, I will still run Linux as a VM.


I have a Windows host and Lubuntu guest. I love the setup. It's perfect for gaming and dev.


i wish power management was better in linux, and optimus was supported in xen. because then I would run xen on an optimus laptop, and then just start the right vm whenever I need it.

my ultramobile cpu actually supports vt-d, but so far it's completely useless


The requirement of 100% stable is somewhat irritating. As far as I know Photoshop isn't even 100% stable under Windows.


On the 100% meme, VirtualBox is apparently regarded as 'tainted crap' by kernel developers, re: http://www.phoronix.com/scan.php?page=news_item&px=OTk5M...


Personally I'm a big fan of KVM. However it has flaws too, unfortunately.


Is Photoshop really 100% stable on Windows or OS X? Still, very nice guide.


I haven't had stability issues with Photoshop on OSX in the last 3 years.


I don't use it a ton, but it has literally never crashed in ~2 years of use on Win7x64


On the Mac you can run it constantly and it won't ever crash. It's one of the most amazingly reliable pieces of software out there.


See: http://log.maniacalrage.net/tagged/cscr

It is not "one of the most amazingly reliable pieces of software out there" by any stretch of the imagination.


This should rather be titled "How to make an application running in a vm look native on Ubuntu". The "seamless mode" was meant for just that.


What about graphic card support? Photoshop uses it extensively and VirtualBox support was really poor last timeI checked.


The main problem with using a VM is that you won't be able to open PSD files directly from your file browser. Having to switch to Photoshop and browse for the file would end up being a huge time sink in the long term.


Did you actually read the article? It seems he solved that too.


I'm talking about a native 'Click to open' function. The article only mentions sharing a folder to make it visible from the VM.


He implemented click to open too. He states that goal at the begining: "should be searchable and launchable from Ubuntu dash." If you read the rest you'll discover how he implemented that.


gmq is probably talking about opening psd files in your Ubuntu file browser by right clicking them and selecting "open with Photoshop". That's not possible with the method i'm describing in the article. But it's something that's bugging me too and I'm working on a solution. I haven't quite figured it out yet though.


This is a great guide. I've invested heavily in MacOS, so I'll probably need to figure out an alternate approach.

One thing struck me as odd: Why make a `photoshop` alias if you're going to have the shell script in `$HOME/bin`?


Well, on OSX, there's a much easier approach: just.... run the native version of Photoshop.


Right... The same could be said for this article too, but you missed the point.

I'd like to run Photoshop on my linux workstation but I don't have Windows.


Because $HOME/bin is in the path? I always put stuff in $HOME/bin, $HOME/opt, $HOME/etc, etc. if its something that would work equally well mounted somewhere else. In this case it would just require a Linux with VirtualBox installed.


Photoshop in a VM?

is that not a horribly laggy experience?

I have a Core2 Quad Q6600 based computer and when I have run Windows inside a VM it is too laggy to use as a serious desktop beyond using a few basic apps. Doing 1080p video is choppy too.

Is there something about newer CPUs such as i7 that makes virtualisation hugely faster and more responsive?


>> Is there something about newer CPUs such as i7 that makes virtualisation hugely faster and more responsive?

Yes.

http://ark.intel.com/Products/VirtualizationTechnology

Running the Android Emulator on my i7-3770k is smooth as silk with Intel Virtualization turned on. Without IV it's like rubbing my face on sandpaper.


Many Core 2's also have VT-x, including the GP's Q6600. [1]

Probably the biggest difference in performance is in using up-to-date VM software and giving the guest machine sufficient memory.

1. http://ark.intel.com/products/29765/Intel-Core2-Quad-Process...


Sorry for hijacking the topic but I need to ask something.

I recently purchased a 3770k and all other parts arrived today. The documentation[1] says 3700k supports Vt-x but not Vt-d. Does that affect anything at all ?

1. http://ark.intel.com/products/65523


VT-x is for hardware virtualisation. VT-d is allows direct pass through of device (PCI, etc).

VT-x is essential, VT-d is 'nice' because it lets you hook PCI devices directly into the VM (good for some servers) but in general you don't need it.

3770k is a very nice chip! I love mine. Easy to overclock too.


I'd check your RAM settings first. A faster processor helps, but to virtualize an OS properly you need a good chunk of RAM to make both Host and Guest feel snappy. Four gigs works well for me without a VM running, but is a little laggy once a virtual OS is spun up. With my typical work load and 8 gigs of memory properly allocated between the host and guest OSes I rarely notice the VM running in the background.


My host OS still feels fast enough with the VM running. It's just stuff like menu draws and window dragging etc are very far from snappy. Throughput doesn't seem to be the issue so much as latency.

Possibly a graphics issue, though I do have a reasonable nvidia card and enabled 3d acceleration in Virtualbox.


I don't think Photoshop would be too laggy with modern hardware. I have some lag issues playing modern 3d games, but they seem to be related to game events that access the hard drive. I'm guessing this is because accessing compressed drives have some overhead.

With that said, I'd think the startup time would be horrendous unless he's just suspending the vm. The side effect of that is lots more HD storage requirements. So to make this as lag-free as possible, you would need to turn off hd compression, use suspend to avoid the windows bootup time and defrag like you would normally do in windows.

To answer your question, I believe modern Intel processors have virtualization optimizations built in.


One of the major pain points with VMs is I/O. Get an SSD, and get a fast one, such as the Samsung 830/840Pro. Could be one of the smaller if short on cash.

This will do a lot to make your VMs responsive.


Do you have an SSD in the host system? As with many things when running outside of a VM, I've found that the SSD provides the greatest performance boost to most applications other than 3D gaming.

I've been doing web development work in a Windows VM for a number of years now and found it to be very responsive even on older MacBook Pros with with only one core of a Core2 Duo allocated to the VM. Adding more RAM helped a little bit, but the biggest speed boost was the addition of an SSD.


"Is there something about newer CPUs such as i7 that makes virtualisation hugely faster and more responsive?"

Well you probably could set the CPU affinity of every single application that is not the VM to one core and set the CPU affinity of the VM to the three other cores. A tiny script doing that should be fairly easy.

Maybe someone who knows VM better than me could tell if it would work or not?

Now my experience with VMs do not match yours: I've been running Windows just fine inside VM providing it has enough RAM (but RAM is basically given these days) and provided the special drivers were installed to make the UI fast.

Also, I've read professional photographer use Octocore Macs with 20 GB of RAM and create gigantic ramdisk for Photoshop and saying that it is incredibly much faster than letting the OS be "smart" about what/when to page to disk.


If you don't mind using Photoshop CS2, you can get it from here for free.

http://www.techspot.com/downloads/3689-adobe-photoshop-cs2.h...

CS2 runs perfectly with Wine (as far as I've seen).


It's not "How to use Photoshop in Ubuntu", it's "How to use Photoshop in a VM"


Care to do one for Arch Linux? I am currently learning Arch so I can make the switch and would really love it if you did an article on the subject. Thank you for your work by the way.


the steps for arch would be almost identical. the desktop entry specification is a standard that is used by arch as well:

https://wiki.archlinux.org/index.php/Desktop_Entries

how much it integrates depends on what desktop environment you are using. gnome and kde are using the same desktop files as far as I know. So it should work. Haven't tested it though.

You could also use unity with arch: https://wiki.archlinux.org/index.php/Unity



Might as well just VirtualBox step and just install Windows instead of Ubuntu...


But what if for all the other applications, for example out of security and performance concerns and by desire of not having to reboot every patch-tuesday, he prefers to not run Windows?


Both of these things were addressed in Windows 8.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: