1. 5

    Essentially I have my personal/chat/music on the bottom screen and whatever I’m working on top:

    Desk: https://i.imgur.com/lFhYSRr.jpg

    Desktop: https://i.imgur.com/kHJzb0v.png

    I use debian with i3+polybar on my thinkpad x240. I’m essentially living the memes. I’ve since moved to using weechat for irc.

    1. 1

      I think you might enjoy the Telegram desktop application. It’s not an Electron blob, but rather elegant C++ application using Qt

      1. 1

        I spy PADI books and dive tables. Had any opportunities to go diving recently? That’s one of the biggest things I missed out on this past year.

      1. 7

        I’ve been working on a book about IPython called “IPython for Web Devs”, and I think I’m pretty much done. I focus on things that I think can help a web developer be more efficient, and talk about some lesser-known things you can do with IPython, including integrating the black code formatter, changing syntax highlighting, persisting objects to a new shell session, and even executing different languages like Perl or Ruby in the shell.

        1. 2

          Dear god, thanks everyone for all the replies. Sorry for being late to the party, but I seriously underestimated the Mac userbase here and initially assumed this post will die alone being hid by 99 users.

          Please forgive for doing only a single comment instead of replying to anyone in sub-threads, but I think many topic do have redundant suggestions or are quite similar in their tone. But believe me, I’ve read the comment section at least three times from top to bottom and I still don’t know how to thank you.

          Surprisingly, paid software on the App Store can sometimes be really great, and may be worth the value if you don’t mind avoiding a hardline FLOSS stance.

          @loch: I don’t really mind paying even a bit more extra for really great software, as long as it does only the job it was dedicated to and not try to play tricks on me. Also, I really hate the subscription models, to the point that I’m more towards paying $50 for the app once and let it work even for a year or two instead of paying $10 per year for Super Pro Deluxe Premium Subscription Ultimate and having that bad occasion to see the ugly nagbar once a year which has no “I’ll pay you $100 to go fsck yourself”.

          I am looking at you, Parallels. And that’s also why I probably get the Affinity suite instead of Adobe.

          I find I feel more cool if I refer to it as a “commercial UNIX workstation,” which is true.

          @lorddimwit: But aren’t they in the full definition of that? That might sound a bit too much contrRMSal, but I always wished the Commercial UNIX Workstations would succeed. I had various HP, Sun and DEC boxes which sometimes were older than me and they have really shown me how consistent and integrated UNIX could be if everything gets done within the single set of rules and predefined roadmap - that’s what also drove me into BSD world (mostly OpenBSD) and how I met amazing people such as @mulander. All of that without the “ducktape and tangled wires” model of Linux.

          I’m the developer of Rectangle

          @rxhanson, @timetoplatypus, @nick: Thank you very much for recommending the Spectacle and Rectangle. I think I’ll probably stick to the currently maintained Rectangle and I’m glad that even its author got here and clarified the situation, as it seemed a bit too unexplained (especially from Spectacle’s side).

          However, I see a bit of feature overlap as BetterTouchTool does the window snapping too. Actually, it does a huge load of stuff and to be honest I’m a bit overwhelmed by its feature creep, yet I still can notice it’s so mighty to the point that it achieve tasks which nothing else can do

          Find a programatic way of managing your installed packages or configuration files.

          @tomekw (and @stephank, @srid, @jfb): Dziękuję bardzo :) I always knew about the ability to spawn “bare” repos with Git, yet I did not even assumed it can be used for creative (and also useful) stuff with that. On my own, I can add that I really hate dotfiles - not the actual configuration files, but the ~/.anything at my $HOME. Sadly I don’t have the energy to fight with that most of the time but I really want to and I think it’s really possible to get this on Mac without hacks like symlinking or hiding filesystem elements. I almost achieved the ultimate $HOME nirvana on my Thinkpad back in the 2013-2016 time and I quite miss that.

          I really enjoy using yadm.

          @UkiahSmith: That yadm suggestion is also very good one. I really like its approach to templating and variants, but I would probably end up with my own custom Go implementation just for the convienence of easy deployments - you don’t have full-fledged python3 with pip available everywhere where you can just spawn ELF/Mach-O binaries.

          I’ll just balance out a little with a suggestion to try and work with what’s provided if you can

          macOS is very good out of the box

          Macs come with a lot out of the box, so I don’t do much. My advice would be to install as few things as possible for the first few days/weeks just to see what the builtin stuff has to offer.

          However: Give Apple’s built-in apps a shot.

          @vakradrz, @giffengrabber, @mscs, @kevinc: Don’t get me wrong, but I often like to “improve the factory” way of doing things. This approach comes straight from Symbian times where Nokia delivered a very bare bones of basic day-to-day applications (Mail, Music, Notes, Messaging) but their system API was very broad and allowed to do a lot of integration within thirdparty applications. The Android kiddies picked up that attitude almost a decade later but put it way beyond the scale of absurd and doing that actually lead “regular” people to be thrown off of the whole “customization” or “impriving factory” boats.

          And I think I’m really welcomed with my point of view on Mac, even when the default Apple apps are top notch. That’s a very good position, becuase often the thirdparty apps are pushing that quality even further creating little pieces of art, like Things being an outstanding application making Reminder lokking like a little baby. That’s a completely new landscape which is not existent on other platforms because both Android, Windows and GNOME (yes, I call GNOME the “default” Linux desktop due to Redhatification of things these days) default applications are just silly placeholders so external devs don’t need to do much to produce passable software.

          Surprisingly, considering my Symbian argument, I do completely different thing on my iPhone, where I try to stay as close to stock as possible, mostly because the eager to monetize software on mobile is far more aggressive than desktop and I’m not gonna pay motnhly subscription for the fantasic calendar. Get real, devs.

          (However, as I said above, I’m completely fine with giving the dollars to devs who deserve that. But please, keep that money and then just leave me alone, okay?)

          It’s worth knowing about brew bundle and Brewfiles: https://github.com/Homebrew/homebrew-bundle

          @Axman6: This is brilliant and I think Brew is probably the only one package manager (I’m not talking about the huge system configuration behemots like Nix or Guix) which can do that in such simple yet so effective way. Definitely worth noting and it might come useful in some other creative ways like checking the listed software for latest CVEs or making sure all the configuration files from every software are being backed up and uninstalled software is really gone with all it remainders.

          Also, glad to see the Ruby is still very strong in Mac world and people actually use it here, I’ve noticed the bunch tools beyond the Homebrew also use Ruby for system-specific tasks or extending itself and I’m really curious to hear why it had to be Ruby (I’m not complaining, though :>)

          I suggest you take a look at Setapp

          @bronlund: I can see some values of Setapp, and I actually installed it. But it rises a lot of concerns the longer I use it:

          • How the hell that even exists within the Apple-directed application distribution channels and its strict policy about selling/monetizing applications? Do they have some backyard agreement on doing such shameless fork of App Store with subscription-based model? Hack, they do even offer an iOS subscriptions which makes me even more afraid.
          • Did I actually installed yet another DRM for applications? For the first time I open the application I see the Setapp logo even if it was launched externally. Setapp required the administrative acess permission from me and as far as I can tell its ~/Applications icons are only the launcher to actual apps stored elsewhere which probably should trigger the crapload of security mechanisms. Can’t they just distribute their serial keys / licenses or just act as a local activation server for applications I download from origin sites if they’re covered by Setapp subscriptions?
          • I wonder if I put the money in the right place, I couldn’t find much info about how they share revenues with original developers and how much these developers had to sacrify to get into Setapp (e.g. application features/anti-features, security, licensing plans, general agreements) and this is also what makes me feel a bit odd about this whole business.

          Other than that, from a user perspective, the most important things didn’t change in the last couple of years.

          No more 32-bit app support. That’s a big one for some folks.

          @motet-a, @nil: I really appreciate that “quick recap” making me feel great that most regular UX patterns are still kept intact within the OSX systems line since the beginning. Big Sur seems like it’s a “Big iOS” and might break a lot of that, but to be honest I’ve only seen couple of screenshots and can’t say anything for sure.

          On the other hand, I find the 32-bit application support “complainment” completely missted. It might sound zoomer-y, but it’s 2020. First 64-bit CPUs arrived in 1970 supercomputers, first 64-bit addressed CPUs arrived in 1980/1990s, first consumer available 64-bit x86 CPU arrived in early 2000s and there’s no 32-bit only x86 made for 10 years or more (last ones were very-low-powered Intel Atoms for these teeny tiny “netbooks”).

          From what I researched just right now, Apple told the developers about the 32-bit deprecation at least a few years ago and they got the time with various reminders and helpful documents/tools to make the transition easier.

          Yet still, the developers completely missed that and instead actually used the users’ own anger to direct it at Apple because “it let my apps break” just because some developers got lazy and didn’t spent from few hours (to retarged the compiler and then do automated tests again) to few men-days (for complex applications like data science or audio processing which had sophisticated floating-point operations and should be done migrating at least a decade ago) on their own products.

          That attidue is really visible in pro audio communities which is quite amplified there as most producers don’t really dig as much “computer stuff” as they appear to.

          I list apps and tools I use in a GitHub repo.

          @nikivi: OH MY. That’s clearly awesome! Your list is really consistent, organized and relies on real-life usage and still has a very good presentation value. I think I’ll probably do the similar thing soon and might consider merging it within the configuration/dotfiles repository with tome traits of “literate programming” where I describe tools as I configure them in front of readers. Overall, I’m quite speechless and very respectful to the time, energy and a bits of love you put into that repository.

          Application specific suggestions.

          @xfbs, @true_detective, @neilalexander, @agent281, @nerosnm, @mjturner, @y0ssar1an, @dtgriscom, @z0mbix, @voodoologic, @altano: Would you mind if I just merge all your per-app suggestions into a single list and leave some comments? That list could be possibly easily copied/expored by someone else for future use, like @nikivi did.

          For people who copy this, just select the whole list and click “reply”, the Lobsters will put the original Markdown source in your textbox. Just remove everything after “:” in each line if you want to exclude my very opinionated comments.

          Stuff I’ve installed (mostly due to your suggestions):


          • Rectangle : It just snaps windows based on keyboard shortcuts and window movements. I’m not sure why that’s not in the base system already, but I really appreciate the author’s work.
          • OpenEmu : That might sound silly for many, but this is one of my personal Mac “killer apps”. Yes, the emulator is a killer app. But gosh, how brilliant it is, both on UX and feature level! The only wish I could have is to maybe move onto libretro cores instead of standalone emulators wrapped by OE’s own abstraction layer and maybe integrate the home computers too, not only consoles. And yeah, if they add the full debugger with the same UX love as rest of OE, I’ll lose my head over this.
          • Dash : I’ve used the Zeal before, which is a Dash clone for non-Macs and the OG Dash isn’t any outstanding improvement over it, but adds a little extra in its every aspect. In general, an ubiquitious software for me as I like to have a lot of docs on my local drive, but I can’t really stand that “registration” nagging which is the one of most annyoing attempts to beg me for money in any software ever made.
          • IINA : Absolute magic. To combine the power of MPV player with beautiful UX conforming to macOS UX… magic.
          • AppCleaner : Will stay for non-Cask applications, but I’m pretty sure its internal logic can be ported to Homebrew’s zap command to support external applications.
          • XMenu : This one really made me smile and brought back one of my fav MacOS 9 features with so simple yet genius approach.
          • Pac-Bar : This one is very impressive for people who see the Touch Bar for the first time. Not very playable though, as it’s the only one level and I expected regular levels with just a slim viewport, but works very well as a converstation starter.
          • Touch Bar Piano : That particular application actually brings joy to me and it might be pushed a bit further as a creative tool modeled after “ribbon strips” in high-end synthesizers like CS-80 and become an actual creative tool if it gets a MIDI support.


          • Shimo : I use it with Setapp for now and while it seems to be nice, using it with OpenConnect might be problematic for people who want to avoid CSD trojan straight from Cisco by using --csd-wrapper option which seems to be ignored even if explicitly stated on custom options tab. I’ll probably report that upstream.
          • Little Snitch : I’ve bought after reading the many suggestions and their website, thinking about application-level firewall usage in 2020 on not-so-open system like macOS. I am not disappointed at all, it exceeded all my expectations and one couldn’t be happier with it.
          • iStat Menus : I’m giving it a trial period for now, but it’s a bit weird. Seems too overloaded and not much customizable at once, and its quite expensive price tag doesn’t make that better. You really think I will pay considerable dollars for stripped down Conky clone which can’t even have customied fields?
          • Things : Actually I didn’t bought it yet but I use Things a lot on iPhone. Eventually it’s gonna land on my Mac, but now I can’t really justify paying 5x more foe macOS version than i paid for iOS app.
          • Bartender : Exceptionally nice, and will be one of these “must have” applications. But it’s still kinda shame that’s not a default macOS feature yet.
          • Contexts : It’s shame that the most advanced app switching preferences are possible only on macOS. Definitely a keeper.
          • MailMate : Claws Mail / Outlook Express / The Bat on macOS. That kind of email workflow which I’ll be using to the end, even when everyone else moves to Unibox/Spark style “mails for kids” clients. Might sound like an old grumpy neckbeard, but it really keeps the email service in its original pure form.

          Stuff I’m yet to explore or decided to pass on:


          • Alacritty : I’m using it on my Linux desktop boxes, but it’s just not in the same league as iTerm2 with its solid macOS integration and doing that GPU acceleration thingy as well :)
          • Scroll Reverser : I might be weird, but I really like the “natural” scrolling on Mac trackpad. It feels, well, more natural to me. And the app seems to be warning about compatibility issues with recent macOS on its page.
          • Magnet
          • Muse
          • PresButan
          • Wallpaperer


          • Textual : I heard about Textual a long before I’ve even touched a Mac, mostly due to the default message on /quit and /part, including the famous My Macbook Pro has gone to sleep, zZzZz... (:>). But I don’t really think I’m gonna to pay for it mostly because I want to keep IRC free and pure as it can be. But they might get my attention if the WeeChat relay support will be added as ZNC already is.
          • Texpad : I haven’t tested it yet and it might take a bit to get back on this as I’m mostly doing all my LaTeX work via Pandoc (and including predefined modules/templates done a long long ago) but if this is at least half good as it looks, I’m completely sold.
          • MacTeX : This one kinda bugs me. How is that different from regular TeXLive suite? What Mac specific additions/changes are made in this TeX distribution and how it impacts compatibility?
          • Sublime Text : In general, I’m not a fan of Sublime Text on many levels. It’s licensing, the Python as a base language and the community with its satellite projects like beefy package manager just doesn’t click for me. But I can tell you about CudaText in exchange which claims to be a better ST3 but done in modern Pascal making it really small, fast and efficient.
          • One Switch : I understand the purpose, but can’t really guess why it’s not being added to the sidebar pane instead of being a menubar icon. On top of that, it should be already in default macOS for long time to match with iOS Control Center.
          • Pastebot
          • Lunar
          • 1Password : I’ve tried 1Password in the past, but while its mobile and desktop apps are really great, their CLI workflow and Firefox extensions could get a bit more love.
          • BetterSnapTool
          • Skim
          • Monit
          • DaisyDisk : I might look on it later, but I prefer the WinDirStat/SequoiaView layout for disk analysis.
          • Viscosity
          • Enpass
          • Keyboard Maestro : Definitely seems worth to look on it later, but these “productivity powerhouses” (like BTT, KM, Alfred Powerpack) are sometimes really overwhelming.
          • BetterTouchTool : I’ve used it for a moment and decided to uninstall. I appreciate the work its doing but I’m a bit scared over its feature creep.
          • Caffeine : I’ve used that on the Air which I utilised before for a few days, and still can’t figure out why it’s not a default option in macOS
          • TotalSpaces
          • AltTab
          • Carbon Copy Cloner : I hear about CCC from other Mac users most of the time, but I still wonder if it would reliably upgrade my Mac onto ZFS-based NAS in local network.
          • MacUpdater : I understand the purpose of it, but this really seems silly and feels like it should even be made. Currently I have Mac App Store applications and Homebrew Cask applications, so it’s only relevant for these few ones which are installed externally as long as they’re supported.
          • Reeder : I have to look at this, especially if it syncs with Inoreader.
          • Syntax Highlight
          • MacVim
          • Emacs for macOS : This and MacVim are completely mysterious to me. Why these are labeled as Mac specific? How they’re different or better on Mac? Which features are integrated? Is that breaking compatibility with other clients? I haven’t seen a WinVim yet :)
          1. 1

            Sublime Text : In general, I’m not a fan of Sublime Text on many levels. It’s licensing, the Python as a base language

            To be clear, Python is not the base language for Sublime– it is for the plugin system, which makes it easy for people to contribute plugins. The base language is C++, so it is very, very fast. It is one of the few text editors that can handle huge text files without missing a beat. My daily driver for programming is PyCharm but for text manipulation and non-Python work, it is my go to.

          1. 28

            The font looks really good, and has a lot of great features! But why the ligatures…

            When I see the current state of coding fonts, and ligatures, I don’t know whether I’m the last of the Mohicans, or whether I’m just becoming an old man…

            1. 12

              You are not alone, but the zip file they have ha a “No ligatures” directory. At least for ttf.

              1. 10

                Why not? I really like those, it is appealing visually and permit to increase the readability at least for me. I use JB Mono most of the the time in my system so maybe I am more used to it but ligatures what a important point when choosing a font for me.

                1. 11

                  I’m a vim user. Seeing a different representation than what I’m actually editing trips me up. I’ll often want to go to the equals sign in the != operator. When the ligature version of that operator is visible, I have to remember which characters it contains, and when I type “f=” to go to the character, the cursor is visually over the entire ligatured operator and I don’t trust that it’s actually over the second (invisible) character.

                  It’s not that big of a deal and I’m sure I could work past it, but it was enough for me to switch back.

                  1. 5

                    I am also a (n)vim user and this seemed weird for me so I tried with the JetBrains Mono font and ligatures. In the mini-buffer for search, /!= produces the ligature and when I search for the ligature, I land on the first character of the ligature, eg when I pressed x it remove the ! and keep the = in the text. So the cursor is never on the second, or more, character of the ligature. The ligature contains the exact characters you have typed and it is just a visual interpretation but will not appear with another font/software. And when typing f= to go the the character, it works (at least in my experience). For me a ligature, it is mostly eye-candy (but better readability too) for the set of characters that compose it. Mentally, I have the character set is my representation when searching/editing etc.

                    I understand how it can break your mental model and flow by creating some disruptive visual response between the character set behind the ligature and the visual response of the ligature being a character on its own. I like ligatures for that.

                    1. 5

                      the cursor is visually over the entire ligatured operator and I don’t trust that it’s actually over the second (invisible) character.

                      This sounds weird. I haven’t tried this font yet but I normally use Hasklig, which has similar ligatures (Think it’s Source Code Pro with added ligatures? Primary focus is on Haskell, but works well with other languages too). When the cursor is over either of the characters in the ligature, it doesn’t draw the ligature. I’m also using (n)vim, although it’s the terminal (usually konsole in my case) that’s actually drawing the ligatures. I don’t know whether the ligature breaking when under the cursor is an intentional thing or just a side effect of the cursor being there. From looking at the JetBrains mono samples, I think Hasklig’s ligatures are a lot more conservative: for example, it will render ‘/=’ (haskell’s not-equals operator) as a double-width ≠, but it won’t change != to anything, so I think Hasklig’s ligatures always look like a tidier combination of the individual characters, not a completely different character.

                      1. 1

                        the cursor is visually over the entire ligatured operator and I don’t trust that it’s actually over the second (invisible) character

                        I use vim with Fira Code with ligatures enabled, and this does not match my experience. When the cursor is over the ligatured characters, on my systems, they are displayed as separate characters. Maybe JetBrains Mono is different though?

                        I do still have to remember what characters make up the ligature in order to navigate directly to one of them, but 30 years of muscle memory take care of that for me.

                        1. 1

                          A few people mentioned that this doesn’t happen with their setups. I don’t know whether it’s vim or the terminal that renders the ligatures. I don’t have a ligature font installed anymore. I tried it on a previous computer. It sounds like with an updated vim/font/terminal/something then the problem is avoidable. I still think I’d run into similar versions of the issue: having to mentally remove the visual abstraction to reference the underlying text. In the end I don’t think I’ll go back to it since it doesn’t feel more readable to me regardless.

                          I just wanted to offer a more concrete reason for why I stopped since the OP was asking.

                    2. 4

                      The difference between =, == and === is like trying to indentify the differences in a hyphen, en dash and em dash. Not a fan.

                      1. 3

                        === generally has three lines and looks like ≡≡≡. = and == are easier to tell apart because of their length.

                      2. 4

                        There’s a ligature free version thankfully. Can’t wait for windows terminal to give you a no ligatures switch. I don’t like the way they look and I don’t want my font to lie to me.

                        1. 3

                          I’m with you. Personally, I do not see the point of not seeing the real characters that make up your code. But that must be the way my brain works.

                          1. 4

                            I am Chingachgook, and I support this message. As we say in my language, “ligatures are hella wack, yo.”

                            1. 2

                              One of the reasons I use this font is because of the ligatures. For me it increases readability and also just looks nice.

                              1. 2

                                I use it as my main font (terminal, including nvim; and as the mono font in firefox), but without ligatures. It’s just not a problem if you don’t like them :-) Otherwise it looks just great.

                                1. 1

                                  I’m with you, here. But then I also tend to find “fi”-ligatures in English text jarring on occasion. Worst is when those show up in preformatted text.

                                1. 2

                                  CommaFeed is great. It’s the closest thing I’ve found that resembles Google Reader, which I loved.


                                  1. 1

                                    Also it is self-hosted, which is big plus for me.

                                  1. 1

                                    This title grabbed my attention because in Navy Intel parlance, “Perlings” are Persian linguists. This article is not about that.

                                    1. 6

                                      I’m similarly lost to that very critical reply. What even is a CRM, and what would be particular about a CRM for software engineers? I find that the requirements don’t say a lot. How will this address the points made in that “sad personal data” article?

                                      I appreciate that this kind of public announcement might be useful strategy for you to follow through though, so try take the useful parts out of the criticism and good luck with the project!

                                      1. 1

                                        Honestly, I have very little idea what a CRM is. Originally I wanted something to keep in touch with my friends, so I called it keepintouch. Then my habit tracker crashed and lost all its data (again), and then changed its UI via an auto-update that’s completely new and ungrokkable, which got me pissed off to no end. So I wanted to replace that too.

                                        This whole idea came about from a conversation I had with an engineer at Stripe. I asked him what his favorite internal tool at Stripe was, and he said it was a “thing” that took OLAP queries from AWS Redshift that issued lambda functions via AWS Lambda. It keeps bouncing in my head and I can’t get rid of the thought of why I don’t have one of those for myself.

                                        After that it started pretty much building itself after that. I know I’m not a multi-billion dollar company, and I’m not interested in making this a ten-year long commitment starting a company requires, so it needs a done point. A done point in the next few months while being relevant in 20-30 years may mean a heavier reliance on protocols and binaries, and not SDKs or runtimes that need to be updated. I don’t want to re-invent the wheel, and I want to be able to script this into other things I build, so I’d rather build a platform up front for my own apps rather than a monolithic thing (helps with being done too). I want to manage data safely in production, which means having a GUI shim over direct SSH or anything too powerful. All together it looks something like a CRM.

                                        1. 2

                                          Sorry, I’m still lost. A “CRM” is something that runs Lambda functions in response to OLAP queries from Redshift? It sounds a bit… broad?

                                          1. 2

                                            I think in this case it may refer to a Customer (friends in this case) Relationship Management system.

                                            1. 1

                                              “There are only two hard things in Computer Science: cache invalidation and naming things.”

                                              Yeah, I could have picked a better name, and I’m not really sure what to call something like this. I think most people go with something generic so they can pivot later, but I felt that since I already know what I want to build (and I know whether it’s useful or not because I’m building this for me), boxing myself into this vertical is a good way to commit to not doing everything at once.

                                        1. 4

                                          Apart from a ridiculous amount of university deliveries, I’m trying to work on a Python (pip) version of cargo-thanks. Right now, I am able to already extract the links to GitHub of all the dependencies of a project; so I just need the way to actually star the repositories. I’m getting closer!

                                            1. 1

                                              It does, thank you!