Given the latest rights to my computer which Microsoft reserves for itself, I am very seriously considering making the switch to Linux. I have had some experience with the OS in the past. I used Ubuntu (pre-Unity), SimplyMepis (helped translate a bit of documentation, thought it was pretty great at the time), Linux Mint (endless trouble with sound drivers, should be ok now) and a few others I don't remember.
My current setup includes a pretty decent if not-brand-new desktop pc (I5 3570k, 12gigs of Ram, Gtx670, ssd) and a Thinkpad running an I5 2520, 4 gigs of ram and a ssd. The Desktop is running Win10 (working nicely) and the Thinkpad has Win7 on it.
There are a few issues which so far have prevented me from switching from my "just works" Windows setup. Let me make it clear: I like Linux. I really want to make it work for me.
1) Configuring certain stuff is hard. On my previous Thinkpad, the screen had a distinct yellow tint. I was able to correct this to an acceptable degree within seconds in Windows just by playing with some sliders in the driver software. Turns out, there are no such sliders in Linux. Several hours spent searching for alternative tools or procedures only produced semi-acceptable workarounds or arcane hints about how maybe possibly config file soandso might be treated with the arcane arts to provide a different color production.
Then there is my Thinkpad's trackpoint. Windows: Open settings, select trackpoint, move slider to set sensitivity. End.
This is the Thinkwiki page detailing how configuration of the trackpoint may be achieved on Linux. Several of the techniques detailed are marked as "soon to be deprecated" or already obsolete, which also goes for the graphical frontend which used to be available. Instead, I'm supposed to use Xinput (I think?!), except the page doesn't tell me about which values for sensitivity are actually accepted by that tool?/command?/magic?. I also don't have the slightest idea if the distribution I'm going to use (and I'm not sure which one that will be) actually uses that method or if it expects me to "just write a startup script" for a task like this. Apparently methods of configuring things also don't work anymore after a while, at which point I assume that stuff is going to break after an update. I am afraid about such an accident happening when I need my machine to work for actual... work.
I realize this isn't Linux's fault but crappy vendor support. I also realize that things just work different in Linuxland and that it's me who needs to learn exactly how they work. But the kind of effort which goes into changing my screen colors and trackpad speed in 2015 doesn't fill me with confidence.
2) Getting competent enough to actually fix stuff when it breaks feels comparable to learning a programming language (which, I'm sure, is in reality a huge exaggeration.) Taking my example from above, a typical command might look like this:
"xinput list
- sed -ne 's/^[^ ][^V].id=\([0-9]\)./\1/p'
If I'm going to, in the spirit of linux, be my computer's master, simply copy/pasting of commands isn't going to cut it. So, ideally, I would like to eventually be able to know what tools to use, how they work together and what their parameters mean.
xinput list... sure, I get what that does. while read id... hm, not sure, but I'm sure i can look that up. But that middle part? 's/^[^ ][^V].id=\([0-9]\)./\1/p'? Really? I just have a really, really hard time imagining ever being able to know that 's/^[^ ] needs to go before .*/\1/p'. For all I know, it's a fancy way of telling my pc to rm -rf /.
3) Games. I used to be a huge gamer when I was younger. I don't play games often anymore, but leaving behind my favorites (which don't have a linux version and don't work with wine) still seems like something that might eventually convince me that I still need Wintendo in my life. But if I dual-boot, chances are that after a few hours of wrestling with some linux problem, booting into "shit just works"-OS might seem like an attractive idea. I'm speaking from experience, here.
I'm also having some trouble finding the right distribution. I'm torn between Elementary OS and Linux Mint at the moment, but of course there are countless alternatives out there. A distro for me should offer healthy repositories, an active community in case there's trouble and a track record of not releasing updates which break stuff. I assume that both my machines should be powerful enough to run almost everything which I could throw at them.
Well, anyways, can you guys maybe recommend a good starting point? Or, more importantly, explain to me how I should deal with those 3 issues I mentioned above?
IMO the best out-of-the-box linux setup is Ubuntu with Gnome 3. It has the GUI config tools you're looking for (or at least, it has more than other distros I've tried). As for (2), it works like this: Configuration in linux is done primarily through human-readable text files. The same goes for how processes communicate with each other. One program will spit out a bunch of text, the next program will eat that text and spit out more text, etc. A human centipede of small programs is the unix way. And yes, if you really want to be a power user, you will probably need to learn regular expressions, which are a mini-programming language used for manipulating text. That is what the `sed` command is doing in your example. It's like find-and-replace on steroids. Once you understand what each part means, it won't look so scary. But you don't need to do that. The command is just an automated way of going through a big config file by hand and manually changing a whole bunch of entries. First, know that `sed` means "stream editor". Here's your regex:
Let's break it down into parts. First, the top-level structure of a sed command: The s means we're going to do a substitution. The foo is what we're searching for, and the bar is what we'll replace matches with. The baz on the end are options that affect other stuff, like case insensitivity or whether or not to do more than one substitution per line. In your command, the foo part is Let's break it down. This first carat will match the beginning of a line. Same as before, but now we're matching anything but a V. The . means "any character", and then id= is just taken literally. This is the interesting part of the pattern. The \( and \) introduce a "capture group". Any substring matched in a capture group will be available in our replace pattern. This is very powerful for doing complex search-and-replace stuff. Inside the capture group we have another character class. This time it's 0-9, which means any character from 0 up to 9. So basically just the digits 0123456789. And then another arbitrary character. Before we move on to the third section of the sed command, let's think about what our search pattern will match. I suspect that the author of your regex made a mistake, and wanted actual periods like in the third example. Let's look at the last two sections. The replacement pattern is just \1. \1 refers to the capture group we talked about earlier, so this \1 means "take that number you found before, and replace the whole match with just that number". This is some option that has to do with printing the inputs or something, but I don't remember off the top of my head because I don't use it that much. So, in total, the command means "Find stuff that looks like ' V.id=(some number).' and replace it with just that number." This sed command is consuming input from `xinput list`, so it's probably intended to grab the numeric ids of a bunch of devices from the plaintext output of `xinput list`. Also I just realized that hubski's formatting probably obliterated some of the regex you posted. The markup tips mention a "verbatim" option. Here's the output of `xinput list` on my machine:s/^[^ ][^V].id=\([0-9]\)./\1/p
s/foo/bar/baz
^[^ ][^V].id=\([0-9]\).
^
[^ ]
Brackets mean a character class. For example, [abc] would match one occurrence of any of those letters. If my regex was [abc]d, then it would match the strings "ad", "bd", "cd". But if the list of characters starts with ^, then the class is inverted. So [^ ] means "match one character which is anything but a space.".[^V]
.id=
\([0-9]\)
.
Vaid=31
Vbid=1p
V.id=3.
/\1/p
p
So yeah. We can see that there's a bunch of Virtual stuff with that uppercase V, and then later in the line, there's id=(some single digit). ⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ xquartz virtual pointer id=6 [slave pointer (2)]
⎜ ↳ pen id=8 [slave pointer (2)]
⎜ ↳ cursor id=9 [slave pointer (2)]
⎜ ↳ eraser id=10 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ xquartz virtual keyboard id=7 [slave keyboard (3)]
Thank you. That was a great explanation! It made me understand better what's going on in principle. You are right, Hubski's formatting messed up the example. Unfortunately, for some reason the verbatim option did not work, it just printed the character in front of my text but still interpreted the * and | as syntax. Anyways, I take away from this that regular expressions are something I may definitely want to look into in the future (preferably using a tutorial "from the ground up"), but don't really need to worry about for the moment.
Yes, I agree. The first step is to understand what needs to be done. Anyone who tells you that you need to learn the most obscure and unreadable perl one-liners to be a True Linux User is full of shit. Those one-liners make no sense unless you are already familiar with the sorts of editing tasks that you might need to do in the first place.
Does anyone ever say that? When I hand out a line noisey incantation without much explanation it's usually something that would require a lot of explanation and in response to someone who sounds like they just want their problem to go away.Anyone who tells you that you need to learn the most obscure and unreadable perl one-liners to be a True Linux User is full of shit.
I've been using linux since 1997. It is an elitist community and always has been, but in my experience it'll tell you to RTFM if your question is answered in TFM, but it will give you good advice if it decides to give you advice at all. "Start out by learning to perl golf" isn't good advice.
Just wanted to say, I use Ubuntu with Gnome3 on my laptop and I love it! I really like how Gnome have re-imagined the desktop metaphor and I feel very productive and everything stays out fo my way until I need it, and then it's all there and digestible with the push of a button or nudge of the mouse. My only gripe is that it uses a love of vertical screen space which isn't ideal on a tiny 11in screen.
I was actually looking into Awesome and i3 the other day. I was thinking about trying one of them out on top of gnome to get the feel for it. Snapping widows to the edges of the screen to easily see two windows side by side is already something I rely on, so I could see the benefits of a tiling window manager.
I'd recommend using the arch wiki for troubleshooting your problems. They have some of the most complete documentation of all things linux I've ever found. The fixes will mostly be applicable to other distros. 1) For the yellow tint the only thing I can think of using is xrandr, and almost every graphical enviroment has a front-end for it. If not you can run xrandr in the terminal to list the screens, and use 'sudo xrandr --output <screen name> --gamma r:g:b' to set the gamma correction. As for the trackpoint you should probably read the manual page for xinput. Type "man xinput" to view it. (reading manual pages is a great way to troubleshoot problems) 2) Sed is a regular expression parser. I'm terrible at regular expressions but the script you've been told to run prints everything from the output of xinput that looks like "id=number". It's kind of unnecessary because the output of xinput is like 10 lines and is very human-readable. You made the right choice by not running some random lines of code before you know what they do. 3) I'd recommend dual-booting, unless you're okay with abandoning those games forever. Hope I could help.
Thanks. I'll keep the arch wiki as well as xrandr in mind. Now that you mention it, I eventually managed to play with my colors via xrandr, but ended up staying with windows for the time being (I was using live environments.) I'll also go with the dual boot for now. However, I don't want windows to have access to anything it doesn't strictly need access to for a few games. I was originally going to reset the system and shrink my ssd partition. Unfortunately, shrinking isn't an option according to Windows's partition manager. I'll therefore format that ssd and install windows on a 40gig partition. It'll get a few hundred gigs on one of my hdds for games. That leaves about 60 ssd gigs for linux. Currently, the plan is to assign / to the ssd (so the system is snappy), but mount /usr, /swap, /opt and /home on a hdd (for capacity / read-write reasons). Does this sound good?
Wouldn't using the ssd as swap mean that I end up with regular writes to the ssd? I don't want to shorten its lifespan more than necessary. I don't expect to run out of ram too often at 12gig, but assume that some programs might just use /swap anyways. Does /usr, /opt and /home on one partition sound okay? Or should /home have its own partition (for upgrade reasons)?
swap is allocated by the kernel. If you have 12GiB of memory you're not in any danger of running out unless you're doing rendering or something, but some people like to have some just in case. also I would probably put /usr and /opt in the ssd, they are small and contain some executables/libraries.
Linux Mint is great. I recommend it for a lot of people coming from windows because it doesn't try to be radically different like Ubuntu or Gnome. It's very traditional in it's choices, and it runs well. You shouldn't have to mess around with complex sed commands to get things to work. If something doesn't work, go and file a bug and get someone else to do the work to get it working. Normally this would be done by the hardware manufacturer, but obviously we can't expect them to do it and we can't expect normal humans to do it either. That's why people exist that get involved in open source projects working on stuff. By just filing a bug, you're helping! There may even already be a bug. https://bugs.launchpad.net/linuxmint/bug/1185593
https://bugs.launchpad.net/ubuntu/source/linux/+bug/967399 Really, if at any point you're starting to modify init scripts or install weird binaries or whatever, and it's not listed as a workaround on launchpad, I'd say avoid it. For your color issues, I would like to know what video chip it uses, as there may be an easy fix. Oh, and for games, I use steam.
I'm going to go out on a limb and say the the Ubuntu/Gnome approach is often worse. It tries to simplify everything down so much, but ends up being extremely inflexible if you need to do anything slightly complicated. For my distro, I use Debian Testing That way I get the latest releases instead of 6 months late, but at least it has 10 days of testing to stop critical bugs. Having continuous updates means that I don't ever have to work through a whole bunch of problems at the same time. For my desktop, I use KDE, which aims to be more of a "power user" interface instead of treating users like they're retards.
Can you please elaborate on how it is inflexible when you need to do anything slightly complicated? I am not a fan of neither Gnome nor KDE, but helping folks migrate from Windows to BSD or Linux desktops, they find both desktop environment to be very user-friendly.
Well, I use Ubuntu as my main OS nearly for one year, mostly for development and basic tasks like surfing the web. I have not encountered any serious problems and never had to touch command line to fix a issue. Of course, your experience may be different for your hardware and use case are different. Most of the configuration is automatically done by installer in my case, but I don't know how yours going to be. But you should not worry about getting competent enough, I always google to find solutions and never try to memorize them, but one certainly learns trough the process as no solution directly solves a problem. :) As a side note, I don't think that we should not be our computer's masters to use them. I see these things as issues that need to be solved, and the community came a long way in usability terms. I strongly recommend dual-booting with Windows. As you said, for certain things it just works and while most of the world use it, you will have to use it (at least in sometime). This will directly solve your third problem.
Well, as I mentioned, Mint does not like my keyboard. Neither does anything *buntu, which makes me suspect that it is a kernel configuration problem. Several searches suggest something along those lines. Since I can't even log into Mint with a dead keyboard, I've decided to try a radically different flavor of Linux and see if that helps. Next up: Opensuse.
Mint or your preferred flavor of Ubuntu, if you want a more "things just work" type environment. Though I'm going to declare a warning I don't see nearly enough: driver support can often be terrible for Linux. A lot of this is because the driver support I and many others will run into problems with, is mainly dealing with personal use as opposed to industrial use (where Linux is run a bit more commonly, from what I can tell), but it's starting to get a little better. It's becoming more popular, and more companies that cater towards personal use are supporting Linux, some (like Valve) are even promoting it. You can also sometimes find independently developed one (this, for a time, made using my Realtek wireless chipset much better). But like somebody else mentioned, the Arch wiki is gloriously in-depth, not to mention other popular distros (of course Ubuntu) have support forums and wikis with so many random problems documented and explained that you can usually find out what's wrong. Plus, when you're figuring out how to do this, it may be difficult, but you'll start to get a much better idea of what's going on with your computer and how to fix it rather easily, which, at least in my opinion, is often not nearly as obvious on Windows. There's a learning curve, but it's worth it in the long run. I can't say much for games, except that more are being ported over and with the aforementioned increased promotion by companies like Valve, you might be seeing a lot more games made with the system in mind. Of course, this is still gonna take actual dedication by hardware companies to better support their drivers and build and update them for Linux, but I have my fingers crossed. As a side note, it's also a much more easily customized environment. If you're a little adventurous, I'd recommend, after getting used to whatever system you're using, installing a new window manager that does tiling like xmonad (my preferred one, as of late) or awesome, they're both pretty solid environments to work with, and allow a lot of customization, while doing wonders for space management.
I can't really address the first conflict considering I have never worked with a thinkpad, but I can answer the second. Since Linux is open software, the stack exchange/community database is constantly being updated with questions, and honestly in the beginning just learning how to really fully navigate the terminal and do commands should be a healthy enough challenge for you to later get started with actual programming. Also, concerning distros besides the main 3-4, look into elementaryOS I have really been diggin the feel of it in my laptop, but on my desktop I mainly use either Debian or mint. Hope you like Linux, because I really can't go back after I claimed full ownership of my own devices, lol :)
So, my keyboard isn't working. I can't even log in. This was already true in the Linux Mint 17.2 live environment, but I thought installing the system might fix it. I tried different USB ports. No luck. Mouse is working. Search results say that it may be bios options (tried various settings) or actually some kernel modules / init issue I don't understand. Keyboard is a Logitech G19. Apparently Logitech can be a problem because someone blacklisted it under "special hid" in the kernel. So, now I'm stuck at the login screen, can't enter my password. Keyboard works fine in bios and windows. This is definitely a promising start :-(
Addressing your points in order... 1: Configuration on Linux is hard if you don't know how your system works and you don't know how to use the command line. Personally, I have a fairly good grasp of how everything works together because I've been using Linux for a while. In fact, I'd say using the command line to configure things on Linux is significantly easier than configuring things on windows for me, because of things like the arch wiki and man pages, which have no good windows counterpart. As per you examples, what immediately comes to mind for screen tinting is xrandr and for track pad configuration is xinput. The problem is (of course) as you stated: you don't have an in-depth understanding of Linux or bash, and I agree that simply to use a system you shouldn't need advanced technical knowledge. However, what should be and what is are different things. In this case, the only way you're going to be able to do the things you want to is learning the command line and general system configuration. I'm afraid that it's either that or not using Linux. 2: Actually, bash is a programming language, so your statement is fairly accurate (if anything, learning to use Linux is more difficult that learning a single programming language). Don't be afraid of learning, though! Even very simple statements in bash can be very powerful, and it's not like you have to learn the whole language - command, flags, and piping work for a good 90% of day-to-day use. As for the example you posted (as empty explained better than I ever could), the 's/^[^ ][^V].id=\([0-9]\)./\1/p' is a regex and is typically only used with sed on the command line. The rest of the command is fairly simple to read, once you think of it as "xinput list | sed -ne 'regex' while read id" (did I get that pipe right?). Even if you don't know exactly what the commands do you can get the gist of it. 3: For this, the only good solution is dual booting. Linux support is increasing mostly due to steam's push for steam OS, but it's still nowhere near the level windows support. I dual boot for games and although it's a bit of a hassle to reboot every time I want to play something, it's much better than the alternative. 3b (distros): I actually don't know much about Elementary other than it's supposed to be pretty. Between the two I'd recommend Mint because I know that it's a good OS, but again, I'm not familiar with Elementary. Other choices you might want to consider: Ubuntu/*buntu, Fedora, Debian (stable or testing) Summary: If you want to use Linux, and want to seriously configure your system, you're going to need to learn. There are a lot of resources online you can use, such as tutorials, wikis, and manual pages, but the number one thing that will make you proficient is time. Alternatively, if you want to not use Windows OR Linux, consider OSX. It's a decent non-windows operating system and requires none of the learning that Linux does.Getting competent enough to actually fix stuff when it breaks feels comparable to learning a programming language (which, I'm sure, is in reality a huge exaggeration.)
Definitely dual boot. I've used Windows and Linux (Mint, Ubuntu, and Fedora) and I love Linux, but it definitely lacks the ability to be a good gaming environment. Right now, I have 100 Steam games, and I think only about 30 work on Linux. On top of that, there's a lot of games I have on Origin that won't work either. Sure, I could WINE a lot of them, but I had issues with it in the past and there's and according to this I'm either going to get better or worse performance. Really, I would rather have an experience that's going to be stable, rather than flipping a coin to see if the game is going to run well or not. To just completely cut out Windows is a financial cost to me, because I would be losing hundreds of dollars worth of games. On top of that, a lot of my hobbies require the use of specific programs that only work on Windows. There's alternatives to them, but, again, I paid money to use them, not to lose them. Plus, I chose them for the way they feel and work. I like Photoshop's UI and features, even though GIMP will do the same. I like Sony Movie Studio, because of its UI and my knowledge of it, even though there's a program on Linux that will replace it. I love customization and control, but they get less and less important when everything else that I like about an OS is gone. Definitely try Linux and keep an open mind, though. More games are coming to Linux, and hopefully other programs will follow suit. All we can do is support them and hope that a larger market share will bring more WIndows/Mac only stuff over. However, keep Windows for the stuff that isn't there. Also, do the partition managing from Windows, because it's a bit easier in my experience.
Linux is great, I run Xubuntu on both my laptops and I've got a Debian VPS and they more or less do everything I want. Where they fail is gaming, which is why I still have Windows on my desktop. Linux is perfectly find for pretty much everything else and in many ways superior to other operating systems in a lot of ways, but until I can reliably play every single game I install like I can on my Windows machine it can't be a replacement for my main operating system.
I highly recommend a -buntu variant of your choice (xubuntu is my favorite) if you're just starting out with linux. It's much easier to google "ubuntu <problem>" and get an answer that works, because ubuntu is definitely the most-used distro. Linux mint is based on Ubuntu so you're probably fine there too. There's definitely a learning curve with Linux but after you've become familiar with linux you start to feel like you have much more control over your computer than you would on windows. I've come to absolutely love the command line, ssh, and others - it's just so convenient. I highly suggest dual booting with windows as well, just try to use linux as much as possible and see if you can do everything you need to. Remember there's things like Wine that work for lots of programs and even old games. I don't know which old games you had that didnt work, but Wine's improved a decent amount since pre-Unity. I'd try those again, but yeah those games still might not work. Edit: also, hardware support is SOO much better nowadays than it was in the pre-unity days, i think you'll find your hardware works a lot better out of the box now.
Sounds good. I think I will go with Mint, since I like that project better than Ubuntu (which I know it's built on). The ability to just apply most solutions either resulting from a search for "Mint xyz" or "Ubuntu xyz" really is worth a lot. The only thing I'm really worried about with Mint is it's not a rolling release, which means I have to reinstall from time to time. Hopefully my partitioning scheme mentioned in my reply to dingus will mean that I can upgrade without losing my stuff.