Hello Everyone,
as you can see on my screenshot, i am using an intel based mac for years now, which i customized to my needs. However i have reached the limits of this machine in terms of customization options and would like to move to linux to test it out as a daily driver. I'm actually quite happy with mac from the pov that everything just works, however there are certain things that annoy me, but apple does not allow me to change them.
As a newbie in terms of desktop linux (i've used ubuntu roughly 12 years ago as a daily driver and am familar with headless linux), i'd like your advice.
Specifically I am looking for:
- a minimal, fast system
- keyboard / shortcut based - all interactions can be done from keyboard (within common sense limits)
- all keys can be custom mapped (i have muscle memory of my custom keys for certain actions, so i'd like to keep them)
- all can be configured from dotfiles (worse case shell scripts and ansible)
- very low ressource consumption, snappy system with no delays.
I'd like to try NixOs due to it's unique configuration ability, however on a headless server it was a buggy pain just weeks ago (for example user passwords just vanished/changed without any external influence, not allowing access anymore), so i'm open to alternatives.
What i am looking for in advice is:
- a minimal, configurable (file based for git) tiling window manager
- a top status bar like you see in the screenshot that i can freely configure
- as much terminal emulator based as possible (i honestly mostly only need a browser and the terminal, most other apps have a TUI that i can use with the keyboard, see the above requirement)
- terminal based package management as easy as brew (maybe Nix?)
- custom keyboard layout (I am not a native english speaker, so i mapped all non-english characters to my option keys with the english layout as the base)
- Option to use 2 keyboards at once (come by default when using Karabiner Elements) as i combined 2 small keyboards to one to a fake split keyboard ;)
My current stack on macos is Hammerspoon for heavy customization, Karabiner Elements, yabai, kitty (and alacritty, for ssh, as kitty is bad with ssh in my personal experience), sketchybar. firefox (customized for privacy)
Any good recommendations or dotfiles? Anything i should look out for as a MacOs User?
Thanks in advance!
I can recommend Arch because their Wiki made it very easy for me to solve all my issues more or less on my own. Personally I am interested in trying VanillaOS 2.0 soon.
I don't think it holds much valuable information for you but since I switched from macOS to Linux a while ago too I am herewith sharing with you my Journey to Linux blog post from back then. ☺️
Thank you everyone for all your suggestions! I'll quickly try to summarize them for myself. So what you suggest is:
Operating Systems:
- NixOs
- Debian 12
- ElementaryOS
- mint
- PopOs
- EndevourOS
- Fedora
- arch
- Opensuse
- Novara
Tiling Window Manager:
Recomended to use something based on wayland.
- hyprland (can be configured from file, good compatibility with nix)
- sway (proposed with Debian, multiple suggestions, config via file as well, good for custom keybindings, already options for sway in nixos)
- i3
- bspwm
- KDE Plasma
- dwm / dwl
Status Bar:
- swaybar (in case of using sway)
- waybar (when using wayland)
- eww
- ags
- KDE neon
Package Managers:
- flatpack
- brew (is this already stable enough?)
- Nix (obvious choice if nix os chosen)
- snap
- (pacman if arch)
- integrated one
Packages:
- together with wayland alacritty or kitty
- foot
- Yakuake
- suckless
At the moment I am trying to avoid anything where RedHat is involved. Not because of the recent controversy, but simply IBM is known to kill their software solutions on a whim. (although i still use ansible), so Fedora is unfortunately out (again, no judging on how great it is). I've been quite interested in EndevourOS, so that might be fun to try out. Debian for the desktop probably not right now. I'm running it on servers for stability, but for a desktop environment, i prefer having more recent packages (e.g. neovim). The "sales pitch" for Mint sounded pretty interesting as well. However i'll give NixOs a try first, simply because it was mentioned very often, same with sway.
Based on this i'll try out these combinations first:
- NixOs with sway and eww
- NixOs with hyprland and waybar
- NixOs with dwl and ?
If this does not satisfy, i'll look into endevourOS and mint, but that might require some Ansible I assume.
Thank you very much!
It looks very interesting!
But I don't see the unique selling point of it compared to alacritty and kitty, besides web-enabled. Is there anything that it does better than these 2?
a minimal, configurable (file based for git) tiling window manager
I like i3, it ticks all your boxes. Made my own config in 2020 and it still works. Keep in mind that you have to design your whole desktop enviroment when you go the window manager route. bspwm might be an option as well
terminal based package management as easy as brew (maybe Nix?)
Every linux distro has it, I'm an Arch person, many people like Archs package manager pacman, so you could go with EndevourOS or if you're adventorous with vsnilla Arch.
as much terminal emulator based as possible (i honestly mostly only need a browser and the terminal, most other apps have a TUI that i can use with the keyboard, see the above requirement)
Well, what kind of software you'll run is up to you. Linux has all the TUI stuff. If you haven't already, check out vim, emacs and nnn. Don't forget to customize your shell (and choose it first, i would recommend zsh or fish).
General advice: Look into r/unixporn, most posts there have dotfiles, look for something you like an try it (with a fresh user that you can delete afterwarda maybe?)
I daily drive NixOS on a gaming PC and work laptop, works great for both and haven't encountered that password issue you mentioned
ElementaryOS, mint and pop are good starter ones and elementary looks a lot like Mac's interface
For desktop environments the ones I know well that have the top bar, GNOME has one by default but don't think it's very configurable, Pantheon looks a lot like the Mac UI and I think you can technically edit the html behind it? KDE is definitely the one people use for maximum customisability and you can create a top bar with that pretty easily
As for capabilities, most distros will do most things, they're all pretty much the same under the hood and all run the same software depending on package manager
Package managers generally come with the distro and I think that's usually the thing that makes people's minds. I've not used brew but most package managers will be something like
Snap (most distros): "snap install firefox" Apt (Ubuntu based distros): "apt-get install firefox" Pacman (arch based distros): "pacman -S firefox"
Apologies if I got any details/syntax for any of this wrong am doing this off the top of my head and am rather tired
for example user passwords just vanished/changed without any external influence, not allowing access anymore
Could you elaborate on this? It doesn't happen for me and thousands of other NixOS users. Did you create some sort of impermanence setup or anything?
I forgot one essential tool, where I need a recommendation for: spotlight. I use it to switch quickly between applications or to folders. Keyboard shortcut, first letter of the application name and enter... I know there are solutions, but I only heard from Ubuntu, which I don't want. Anything simple and fast you can recommend?
For remapping keys I used input-remapper when I came from macOS to Linux.
Thanks! That looks exactly like what I was looking for. I hope it works as promising as it looks :)
You may find yourself interested in suckless software, take a look here.
Its all written and configured with C, so it should be pretty fast. And there's dwm, their dynamic tiling window manager.
I guess the distro/package manager would be whatever you want, as suckless software encourages that you build from source and maintain your version of the software.
No reaspn to use xorg anymore. So therefore, dwl is much better choice.