From Linux to OSX - 1 Year Later
batsov.com
batsov.com
That said, I've also ditched my Caps Lock key entirely and turned it into a second Control key. Control-A has never seemed difficult to me, at least with this arrangement, but I'm not a home row typist (or an Emacs user -- I just use the Emacs bindings in text boxes and terminals).
Otherwise this more or less mirrors my experience, although mine was ~7 years ago (so the Linux desktop environment was even less mature at the time). I haven't found a need to shop around for as many alternative applications. In particular, you can have Terminal.app when you pry it from my cold dead hands.
IMO, the Command key is one of the best features of a Mac.
But then I was on text-mode Linux (and before that, text-mode Unix) for many years. I would understand if someone used to Windows did not like it.
But control-c should not kill your session, only the currently running process. Control-d is what kills sessions. If you have no current foreground process the shell just starts a new input line. Still could be real bad obviously if a process is killed.
Even more, selecting text for copy, then clicking a mouse button for paste is a pretty much standard workflow. putty uses the right click for paste, while Konsole / Gnome Terminal / etc. use the middle click for that. Don't know about other Windows terminal emulators though. The other emulators that I tried pretty much had the same underwhelming behavior as cmd.exe.
The nice thing about Linux is that I can at least remap these keybindings. On OS X, it's literally impossible to do a perfect remapping of the keys (trust me. I've tried.)
Hopefully I've saved recently (or run the process inside GNU screen....).
You say you've tried to fix it.. Have you tried these?
In Terminal.app, find the setting for "don't close this window unless no commands are running", and select it.
Or, in System Prefs/Keyboard/mappings or somesuch, override Cmd-W in Terminal.app to a noop.
Don't get me wrong, I am not against specific boundaries for keeping people from doing potentially unwanted actions. But at some point, all the technical solutions to human errors are like sudo.
My experience was pretty hit or miss, and mostly I ended up with an mismash of semi-random keybindings which is sort of the opposite of what I was shooting for. On the Mac developers have done a remarkably good job of adhering to a consistent set of shortcuts (down to things like Command-, for preferences).
The other issue is that most apps don't make it straightforward to bulk re-assign keybindings from Control to Super, and last I checked it was impossible to turn off menu accelerators for Gtk+ based apps (e.g., Alt+F to bring up the file menu in Firefox).
Most of the time what I want is to map Command->Super and Option->Meta, and have Super replace Control in all GUI app keyboard shortcuts leaving Control available for command-line apps, in general.
For instance, I can buy a hammer because it will make it much easier to drive nails than without one, but the handle is too long. So I can saw the end off to suit my purposes. You can't with proprietary software.
Also, don't make the mistake that free == libre. It's the fact that you're paying for proprietary software, not that your paying for it.
One example of this beneficial effect is the appearance of the netbook. Only after netbooks running Linux gained significant market share did Microsoft consent to license Windows to netbook makers at a price that made any sort of sense given the low retail price of the netbook. If Linux has not been an option for the early netbook makers, it is likely that hardware makers would never have been able to persuade Microsoft or Apple to consent to allow the product category to be created in the first place.
An argument can also be made that without at least a small fraction of computer users running Linux on their desktops, Linux would not have been able to capture the hearts and minds of corporate decision-makers with the result that Linux use on corporate servers might not have exploded the way it did in the late 1990s and first years of the 2000s. Certainly, Linux activists claiming to understand the thinking processes of corporate execs were saying at the time (late 1990s) that Linux needs desktop users in order to be taken seriously by mostly-Windows-desktop-using corporate execs and IT managers.
I will concede that at least some people (particularly, perfectionistic people like me or people who are easily annoyed) by will waste less time learning how to admin their machine if they run OS X than if they run Linux. And I will concede that the time and effort of these people would probably result in more social good if it were spent earning money and donating that money to a philanthropy than if it were spend learning how to adminning a Linux box. But that does not detract from the fact that if all you know about a person is that they run Linux, they're doing more "expected good" (a statistical term) for the world than someone who all you know about them is that they are a computer user or an OS X user.
You're confusing the tradeoff. The tradeoff is not about money; libre software can be sold as well.
The point in question is whether you should have to (or even be able to) sacrifice your intrinsic rights, such as your right to modify your own property for your own purposes.
Whether or not you paid money for it is irrelevant to that aforementioned right.
What makes you believe any of these things are intrinsic? Is that a faith based belief?
I'm more worried about switching to the "GNU Approved" OSes, like Trisquel or Parabola. They have a modified "Linux-libre" kernel with non-free modules removed, and they usually block non-free software by default in the package manager.
I want to do it, because it does make me feel better to use all free software, but I don't want a crippled user experience. I'll put up with a little extra work to get things like Gnash working instead of Flash, but if certain drivers just aren't there, I'm not comfortable just giving up core functionality. Not yet, at least.
I don't know anything about the "pure" OSS OSes.
Do you only play free games, listen to free music and read free books? What about the electronics you use, the architecture of the buildings you live in and the car you drive?
http://www.huffingtonpost.com/seth-roberts/books-were-the-fi...
If you sell me something, you cannot tell me that I can't modify it for my own use, for example. You as the seller can't tell me that I'm not allowed to resell my textbooks, or to modify the frames on my eyeglasses, or to hire my friend to fix my vacuum cleaner.
Proprietary software licenses do do that - the main difference is that is a non-rivalrous good; I can redistribute software without losing access to it myself. Because of that, people think it's somehow 'wrong' to say that I should be allowed to purchase a program and then resell it to another person, but if you look at it the other way, that's no more 'wrong' than purchasing a physical good and then reselling it.
In the South, it used to be common to sell property on the condition that the purchaser never sell it to a black person (I think they still used the term Negro or 'colored' then). If I remember correctly, that was first deemed illegal in certain parts not because it's horribly racist, but because it violates the principles of first sale: you've sold me something, and now you can't tell me what I'm not allowed to do with it.
But outside of real estate, I can't think of any analogous practice outside the information market - you don't sell me a book on the condition that I not loan it to a friend, write notes in the margins, or even burn it.
I cannot OCR a paper book I own, make modifications to it and then publish it on the web. Nor can I photocopy that book and give it to friends.
There's also a marginal cost beyond the first unit, whereas for software, there is none.
> I cannot OCR a paper book I own, make modifications to it and then publish it on the web.
You'd be violating a copyright, which is a separate point of discussion, but I'm talking about the physical book itself. You've sold me a bunch of paper bound together, and I'm allowed to modify (or destroy) it, as well as resell it to someone else.
Same goes for architecture. When I buy a house, I can make modifications to it. But I don't think I have the right to hire construction companies to build new houses based on the design.
Electronics and car companies guard heavily the schematics and designs that makes it possible to repair their products much less reproduce them.
Edit - One more thing: Just the ability to modify something you own (like textbooks or sunglasses) does not make it free. For example, I've made many modifications to OS X through utilities and configuration. The fact that OS X doesn't come with source code is equivalent to Textbooks not coming with their LaTeX source.
I'm talking about the physical book, not the words contained within.
> When I buy a house, I can make modifications to it.
When I buy software, I should be able to make modifications to it.
> Microsoft probably wouldn't care if I somehow reverse engineered Windows and modified it for myself only.
That's explicitly prohibited by the license. Whether or not you think they'll enforce the license in your case has no bearing over the fact that it does violate it, and free software advocates argue that such licenses cannot be nonenforceable.
In any case, patents are a separate issue altogether. So is copyright, actually - free software licenses are a way of twisting current copyright law into doing the opposite of what it was meant to do: provide freedom.
By that yardstick, most textbooks and eyeglasses are not free. I can't improve a textbook and put it online. I can't put my improved sunglasses on the market (even if it was non-profit).
So why are people revolted by a copywrited and patented (hence unfree) OS, but have no qualms using other non-free products?
Personally, I think free and proprietary products can co-exist. Both models produce innovations which ultimately benefit society.
Yes you can - the product in that case is physical, not digital. You can certainly turn the pages of a book into an origami creation and sell that on a secondary market if that's what you want to do. You can sell modified copies of physical products to your heart's content.
Yes, but only in a very limited way. You've only mentioned examples where I can modify the original physical atoms.
I cannot modify and re-distribute the ideas present in textbooks. It is those ideas that have the most value, not the paper it's printed on.
The experience is - in one word - disgusting. It lacks common denominator keyboard shortcuts and keyboard bindings. It lacks sane default simple applications like a decent terminal emulator. ( Yes Windows lacks is too). unavailability of a great package manager - all of us knows it, homebrew or macports doesn't cut it - makes me vomit. Unfamiliar key bindings makes me think twice or thrice before typing , "Which key should I use for this? Apple or Option? How can I skip to end of line? Why I'm at end of file now?" Also some desktop choices are not ok for my liking; switching to full height windows instead of full screen windows with the maximize button? Why on earth I would opt-in for loosing screen real estate? So many details.
Most of the time I can't help myself to stop restarting into Linux. I get slower and distracted. I have to install Mozilla Stack (Thunderbird and Firefox).
This may be only me but, I hate OsX. And I'm not starting on the "wanna be walled garden-ness."
makes me vomit. -- visit your local physician.
Unfamiliar key bindings -- "Unfamiliar" by definition = "I don't know it" which isn't the OS's problem. You've gotta admit Command-C for copy being different than Control-C is brilliant.
switching to full height windows -- it's not a maximize button, it's an "optimal size" button. If your content is 500px wide, you don't need a 1000px wide window full of white space.
may be only me -- I'm pretty sure it is (check their stock).
unfamiliar key bindings, look for any other keyboard except OsX ones and show me the apple or the option or the command keys then I will back.
For the "Optimal Size button", the underlying operation does not account for the contents width, it only accounts for the desktop height.
The world is not running on OsX or Apple hardware. They have a decent userbase but not the whole computer users are using one.
2 & 4. You don't run a Hackintosh and expect it to work. If you want OS X, you buy a Mac. And all Macs (except the Mini) come with standard Apple keyboard.
3. I'm not sure what you're talking about. There's no "magic" algorithm that all apps use. Each app can use its own "algorithm" and can account for screen width as well. Just because Finder.app (most of the time) just grows the height doesn't mean all apps should do it, or are doing it.
What's wrong with a Hackintosh other then legal and ethics issues if it's running well? I used Apple hardware and my criticisms were the same.
and for the 3, If every app is using it's own algorithm than I'm really on the wrong side of the issue. And my criticism lacks proper bases. I have to take it back. But again, why not a maximise button?
Yes to all though you can only split windows horizontally. Terminal is a really good app. iTerm2 is great too but a little slower than Terminal in my experience.
Nitpick: it's different. Cmd+D splits the current buffer in two allowing to view two parts of the same output without scrolling, whereas in iTerm2 it splits into two distinct buffers, each with its own shell.
I arguably prefer the Terminal.app feature, when I have the other one with window management like with Window Magnet, which happens to handle any window, not just what's inside the terminal (in which case I'd simply use vim or tmux splits)
The lack of split panes was what made me switch to iTerm. I don't use it that often, but it's a "nice to have" feature. Terminal.app has split panes, but it's not "two sessions, side-by-side", rather "different windows into the same session", which I personally don't like much.
And you're right. You can't change the color profile like http://kde-look.org/content/show.php?content=86353 , which might be a bummer for some one like you (you can change the 16 ANSI colors to look less horrible though!).
Why no maximize button? I don't know the reasoning behind that, but I don't miss it. Full screen apps are amazing (for one monitor scenarios), and OS X has a nice handy feature called "Hide Others" (Command-Option-H) that gives you a distraction-free experience without making the app ridiculously large (and showing you a million white pixels!)
[1] touches upon this issue and has good arguments for it.
But of course, power users need more "power", so I also use the wonderful Moom[2] which combined with "Zoom" and "Full Screen" fulfills 100% of my windowing needs.
[1]: http://www.macyourself.com/2011/02/06/why-doesnt-mac-os-xs-g...
I may be missing something but I don't see how it's different from what has been available since Lion (and since Tiger with a SIMBL plugin). I've been using Zenburn and Solarized since what seems like forever.
Four points. Four points only:
• Terminal.app is perfect. Except for the crashing.
• You can't honestly argue the command key is strange while the windows key isn't (which was a direct copy of "hey, Apple has their own key, why not us?" Also see: recycle bin versus trash can).
• The lil' green button adjusts for width but at max height (unless you are iTunes). It's up to each application to determine how the button should best destroy your viewing experience.
• Do you want to be the most popular or the best? Sugar water or make a difference in the world? Sounds like you may have a case of Bieber Fever.
- Terminal.app. If it's perfect what use has iTerm2?
- I'm not ok with windows key too. It has the same twisted mind after it. Also will be out of context but for the record I'm hating Turkey governments hate and movement against Turkish-Q keyboard layout.
- In this optimized button context, I was mistaken about it being a maximize button and it's underlying algorithm. I backed my criticism. But why be different and choose this strange button instead of maximize?
- I can't follow you here.
1. alternative 2. hardcore usage 3. opensource
BTW your precious iTerm2 does not handle ICC color profiles, whereas Terminal.app does, and on calibrated screens it shows.
Huh? On any non-Apple keyboard, the alt keycode corresponds to Command, and the windows keycode corresponds to Option. Since their positions are usually reversed vs Apple keyboards, you can swap them around via the standard Keyboard preference panel.
Not to mention that you can't remap arbitrary keys in OS X without using third-party software, most of which you have to pay for.
Not that I mind paying for software, but I do mind paying for basic functionality that was present in the last version of the OS.
The alt key on Windows doesn't do the same things the command key does in Mac OS, because they are different operating systems. What an utterly vacuous point.
Also, the implementation is really wonky, so if you want to do a circular remap (ie, A->B, B->C, C->A), you'll end up with really weird interactions.
It's a stopgap hack at best.
You're so close! Just put some respect in this and it'd be one of the best refutations i've seen on HN in ages.
After all, mild humour is always more hilarious when fully explained.
On shortcuts: you're just used to another way, it's not the system's fault. It's possible to use both Windows and OSX without much difficulty after getting used to it.
At least 50% of the joy of using a mac is due to the hardware and integration.
1) The lack of packages combined with lack of quality of the packages (e.g. they do not build or have a poor defaults).
2) That homebrew installs stuff under /usr/local as owned by your user. That does not meet the expectations of UNIX applications and seems to me like it could be unsafe due to messing with expectations. Stuff under /usr/local/bin is supposed to be owned by root:root.
The good part of homebrew is that writing homebrew scripts seems easier than writing dpkg or rpm scripts.
The greatest shortcoming is the lack of packages. After using debian, homebrew is a toy.
1. Installing everything from source (normally I don't mind compiling, but large packages can take an hour or two. Ironically, OS X doesn't need to support many different architectures, so there's no excuse for not having binary compatibility like Linux does).
2. It doesn't manage the entire system. The process for installing from a .dmg or from the app store is completely different from homebrew, and the two don't talk to each other well (or really at all). I want a single source to manage all of my executable files and their configurations, not a small handful that each manage part of it.
In OSX, /usr/local is really user-space. It comes empty on an install, and the system never touches it (that means no mess with /opt). The FHS also doesn't mandate /usr/local/bin to be owned by root. Don't root-owned utilities go in /usr/sbin?
Not sure what you mean by common denominator shortcuts, but if you mean things like Quit/Cut/Paste/Print/Save/New/Undo then you're dead wrong. Exists, and largely unchanged for nearly 30 years. And they're highly consistent. If it's a menu command, it's the command key.
Mac OS X does not lack a decent terminal emulator. You might have missed it, the program is called Terminal.
You might be right about the package managers, but many people would disagree with you.
There is no maximize button.
You installed Firefox and Thunderbird, so what's the problem? Are you trolling now?
I'm sorry but I can't think of Terminal as a decent Terminal emulator.
Not having a maximize button invalidates my criticism but brings another one of unfamiliar titlebar choices.
I'm not trolling, I'm speaking of defaults.
Well I'm sorry but unless you explain exactly what the shortcomings are to stop it being 'decent' your comments are nothing more than trollish bigotry. You are just coming across as arrogant and ignorant.
Not allowing the user to add this functionality (even if it's a hidden option in a config file somewhere) is sub optimal in my opinion.
There are some great things about OSX but there are a few small but frustrating things too.
I found there were many things that I did not know, and had to learn.
How do I rename a file in the GUI? (right click, select "get info", change the file name in the box, etc.)
How do I do keyboard text navigation? Option (or alt)left or right arrow will move one word. Command left or right arrow will move to the beginning or end of a line. Adding shift will select the text. (etc etc.)
How do I turn off the sound when I turn my machine on? (Don't turn the machine off, or use a third party software.)
There's some things which can't be done.
But, in the end, computers are tools, and people need to be comfortable with their tools. So use whatever fits your needs.
"How do I turn off the sound when I turn my machine on?" Mute the computer before shutting it down.
you can just press the Return key to rename a file.
I thought it would 'do an action' (launch or open). I do need to learn more.
Really?
It lacks common denominator keyboard shortcuts and keyboard bindings
No it doesn't. Emacs/bash key combos are everywhere. These are the oldest and most important key sequences in use on any computer. CTRL-A, CTRL-E, META-F, META-B, META-D, CTRL-K - and they pervade the Cocoa/Nextstep text engine. They're everywhere.
It lacks sane default simple applications like a decent terminal emulator
Really? Terminal is pretty awesome in some ways. For example, with the Gnome terminal app, when you resize the window, lines aren't readjusted for width and you end up either cropping lines or leaving a blank space to the right. Terminal seems to be one of the few terminal emulators that gets this right.
Unfamiliar key bindings makes me think twice or thrice before typing
I don't understand this. Doesn't this just mean that you haven't gotten used to it?
How can I skip to end of line?
CTRL-E, like I said. If you're an Emacs nut (and I am) you can even edit the file ~/Library/KeyBindings/DefaultKeyBinding.dict to make these key bindings work in ANY text field that uses an NSTextField object in ANY OSX application.
There's even a global kill-ring. It's awesome. Clearly there were some real Emacs fans who worked on the original Nextstep text engine.
switching to full height windows instead of full screen windows with the maximize button? Why on earth I would opt-in for loosing screen real estate
It's a 'resize' button, not a maximize button. For many applications, especially those whose content is a fixed or maximum size (like web browsers), a maximize button with a large screen is just silly - you'd waste screen real estate with white or blank borders. What the 'resize' button does is and should be application-specific. For a web browser, it should resize the window to the size of the content. Ditto a word processor. For an IDE like XCode and Eclipse, it should maximize (and both of those do).
This may be only me but, I hate OsX
It sounds to me like you haven't put much energy into figuring it out and finding the best workflow - certainly not nearly as much energy as I've put into learning the esoterica behind Linux abominations like XKB and Gnome 3. And I would never say that Linux disgusts me - far from it. I think Linux is great.
You need to install a giant lame IDE just to get
a bunch of command line development tools?
That hasn't been true since earlier this year. If you login to developer.apple.com, you can download the "Command Line Tools for XCode" from here: https://developer.apple.com/downloads/index.action
No "lame" IDE required. But you might think that IDE is not so lame the first time you use Instruments...I'm also very interested to get the answer of this.
More and more as Linux matures and OS X gets buggier/fancier, I don't see the need to use OS X. I am running KUbuntu 12.10 beta on my 2010 MBP and it is pretty pleasant to work with - boots fast, nothing crashes, wi-fi connects and stays so, suspend resume works, no proprietary drivers needed. I did have to do some little hackery to do an EFI install and disable the Nvidia crap and that gives me very good battery life.
To get me to stick to OS X - Apple needs to do significantly better. Each release gives me new headaches and no features I need - bad battery life, Wi-Fi issues, graphics glitches - I can at least try to fix those with Linux.
"please wait while 500 megs are being copied". Oh hi non-shared libraries.
I also don't see what's so great about iTerm2, some lights would be interesting. Otherwise I'll claim Konsole is the best termminal emulator in the world, bare none just like that too :)
Finally I do agree that OSX gets Spotlight right. The Linux look alikes for this feature plain sucks. But that's probably the only thing I can see.
As opposed to "press a button (or 30) to copy/install"?
That's the problem - you have two completely different installation methods, neither one of which is particularly UNIX-y, and neither of which is capable of talking to the other in a reliable manner.
> IMO is better than the usual package manager in a linux distro
It's incapable of handling binary installations, which is remarkable considering the hardware variation is far less than there is for Linux, it installs to /usr/local, it doesn't integrate well with language-specific package management tools, and it can't update system files.
> it doesn't litter the disk with init scripts or config files
I've never once had this problem with Linux; the man pages for any Linux package manager should provide a straightforward way of figuring out which package own which files.
> you always know where things are being installed to.
Because they're not installed to the right place.
I can't count the number of times an OS X package has told me that I need to add such-and-such folder to my $PATH. Hint: if you're requiring me to change my $PATH so that your installed file works, you're not installing it properly.
Then again we're comparing OSX to Linux, not Windows (Linux installs are ONE click, which is also less than OSX in fact)
Now you can do CapsLock-a, CapsLock-e, etc. all day, which is much easier.
I grant you it's convenient in many ways to use OS X, but supporting companies that commit patent mayhem is not good for our industry.
(Yes, yes, I know the competition isn't clean either, blah blah. But you switched from Linux.)
This is quite a strong statement and caught me a little off guard. What particular features does iterm2 offer that make it so stellar? I'm genuinely curious, as I haven't ever felt the burning need for a "better" terminal emulator on OSX (or Linux for that matter).
I will agree, though, that the Terminal environment on the Macintosh singlehandedly causes me to use the OS X environment instead of windows - and this is after using SecureCRT/Putty for 6-7 years - so it's clearly not a case of "You love what you are used to."
For what it's worth, at least in Mountain Lion you can change the ANSI palette in Terminal.app. That said, it would never have occurred to me that this is something someone might want to do :).
Compare that disgusting color palette with a sane one: https://github.com/pstadler/optometrist
http://osxdaily.com/2012/02/21/add-color-to-the-terminal-in-...
Perhaps I'll give this a go for a while.
This certainly hasn't been true since at least 10.7, and I think for longer than that.
Looks to me like it just exposes many of the out-of-the-box Linux terminal features that aren't immediately obvious & require Googling to setup. But saying that it is so amazing it alone warrants ditching Linux and going Mac is a ridiculous statement that certainly wasn't intended to be taken at face value.
[1] not part of Alfred, but pbcopy/pbpaste in the terminal are your friends.
http://news.ycombinator.com/item?id=4433082
back to linux. (it has ruby too.)
In practice - lots of stuff that you have to get off of the App Store such as LittleSnitch, Arq, SuperDuper, QuickSilver, Carbon Copy Cloner - basically, anything that needs to plumb into the internals of the OS, or break outside the sandbox, will have to be purchased from a third party - and run the (greater) risk, of course, of doing damage to your OS.
The problem is that if you are constantly orbiting a certain point of fullness, it goes crazy and keeps deleting and rebuilding all the time, causing slowdowns.
One thing I like about launchd is that on OS X, there is one standard way to launch daemons. On Linux, there are a thousand ways to launch daemons. launchd also has a bunch of features, one of which is to start services on demand, upon connection to a socket, something Ubuntu hasn't had until the latest 12.04 (http://manpages.ubuntu.com/manpages/natty/man8/upstart-socke...). I do agree, however, that OS X shouldn't be used for anything more than a desktop workstation.
Depends on your distro, really - Arch keep things fairly centralized and simple.
I never really got the hang of Ubuntu, though, by comparison.
Also, has a heavy computer user I mainly switched to Linux/FreeBSD because of the much improved customization possibilities. While the default OS X experience might be superior to GNOME/KDE, I now get a lot of things done a lot faster since I could make my machine exactly fit my needs. I really cannot imagine why any (not platform depending) programmer would ditch Linux for OS X just because the defaults work better.