Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/myterminal/dotfiles
The "replicable" heart of my personal workstations
https://github.com/myterminal/dotfiles
dotfiles git macos voidlinux
Last synced: about 1 month ago
JSON representation
The "replicable" heart of my personal workstations
- Host: GitHub
- URL: https://github.com/myterminal/dotfiles
- Owner: myTerminal
- License: other
- Created: 2014-03-16T06:30:55.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2024-11-09T05:38:39.000Z (about 1 month ago)
- Last Synced: 2024-11-09T06:26:29.463Z (about 1 month ago)
- Topics: dotfiles, git, macos, voidlinux
- Language: Shell
- Homepage:
- Size: 34.2 MB
- Stars: 31
- Watchers: 5
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+TITLE: dotfiles
#+AUTHOR: Mohammed Ismail AnsariThe "replicable" heart of my personal workstations
** Init (Note for my future self)
Simply run the below on the new computer to be "adopted":
#+BEGIN_EXAMPLE
/bin/bash -c "$(curl https://raw.githubusercontent.com/myTerminal/dotfiles/master/bootstrap)"
#+END_EXAMPLEOR the lazy version
#+BEGIN_EXAMPLE
/bin/bash -c "$(curl https://gh.myterminal.me/setup)"
#+END_EXAMPLEFor macOS, the shell needs to be changed from Zsh to Bash and there needs to be a ~sudo xcode-select --install~ before anything else.
** Setup
Software setup for multiple operating platforms is included and it is performed if a known OS is detected.
To start the setup, run the following command in a terminal running bash: (provided [[https://github.com/myTerminal/forge][forge]] was fetched as a part of the init)
#+BEGIN_EXAMPLE
( cd ~/.forge; ./start debug ~/.setup/forge-config.lisp )
#+END_EXAMPLE** Software selection
*** Core packages
| | Void | macOS |
|-----------------------+-------------------------------------------------------+----------------------------------------|
| Base | [[https://voidlinux.org][Void]] | [[https://en.wikipedia.org/wiki/MacOS][MacOS]] |
| Package managers | [[https://docs.voidlinux.org/xbps/index.html][xbps]], [[https://flatpak.org][flatpak]] | (native), [[https://brew.sh][Homebrew]], [[https://github.com/Homebrew/homebrew-cask][Cask]] |
| Bootloader | [[https://www.gnu.org/software/grub][grub]], [[https://joeyh.name/code/os-prober][os-prober]] | (native) |
| Encryption | [[https://gitlab.com/cryptsetup/cryptsetup][cryptsetup]], [[https://www.cryfs.org][cryfs]] | --, [[https://www.cryfs.org][cryfs]] |
| Process authorization | [[https://gitlab.freedesktop.org/polkit/polkit][polkit]] | (native) |
| Message bus system | [[https://wiki.freedesktop.org/www/Software/dbus][dbus]] | -- |
| UEFI management | [[https://github.com/rhboot/efibootmgr][efibootmgr]] | -- |
| Interface | [[https://github.com/tmux/tmux][tmux]] | [[https://github.com/tmux/tmux][tmux]] |
| Shell | [[https://fishshell.com][fish]] | [[https://fishshell.com][fish]] |
| File system tools | [[https://github.com/sharkdp/fd][fd]], [[https://github.com/Peltoche/lsd][lsd]], [[https://github.com/sharkdp/bat][bat]], [[https://dev.yorhel.nl/ncdu][ncdu]] | [[https://github.com/sharkdp/fd][fd]], [[https://github.com/Peltoche/lsd][lsd]], [[https://github.com/sharkdp/bat][bat]], [[https://dev.yorhel.nl/ncdu][ncdu]] |
| Text Searcher | [[https://github.com/BurntSushi/ripgrep][ripgrep]] | [[https://github.com/BurntSushi/ripgrep][ripgrep]] |
| Fuzzy finder | [[https://github.com/junegunn/fzf][fzf]] | [[https://github.com/junegunn/fzf][fzf]] |
| Text editor | [[https://www.gnu.org/software/emacs][GNU Emacs]], [[https://www.vim.org][vim]] | [[https://www.gnu.org/software/emacs][GNU Emacs]]^ |
| Audio player | [[https://mpv.io][mpv]] | [[https://mpv.io][mpv]] |
| Spell checker | [[http://aspell.net][Aspell]] | [[http://aspell.net][Aspell]] |
| GNU Make | [[https://www.gnu.org/software/make][make]] | [[https://www.gnu.org/software/make][make]] |
| SCM | [[https://git-scm.com][Git]], [[https://github.com/jonas/tig][Tig]] | [[https://git-scm.com][Git]]*, [[https://github.com/jonas/tig][Tig]] |
| File manager | -- | -- |
| Archive managers | [[http://infozip.sourceforge.net/Zip.html][zip]], [[http://infozip.sourceforge.net/UnZip.html][unzip]], [[https://www.7-zip.org][7zip]], [[https://www.rarlab.com][unrar]] | (native), [[https://www.7-zip.org][7zip]], [[https://www.rarlab.com][unrar]] |
| Process management | [[https://github.com/aristocratos/btop][btop]], [[https://gitlab.com/psmisc/psmisc][psmisc]] | [[https://github.com/aristocratos/btop][btop]] |
| Disk management | [[https://wiki.archlinux.org/index.php/Udisks][udisks]] | [[https://wiki.archlinux.org/index.php/Udisks][udisks]] |
| Network tools | [[https://wiki.gnome.org/Projects/NetworkManager][networkmanager]], [[https://www.isc.org/bind][bind-utils]] | -- |
| Communication tool | [[https://weechat.org][WeeChat]] | [[https://weechat.org][WeeChat]] |
| Language runtimes | [[https://nodejs.org][Node.js]], [[http://www.sbcl.org][sbcl]] | [[https://nodejs.org][Node.js]], [[http://www.sbcl.org][sbcl]] |
| Hardware | [[https://github.com/Hummer12007/brightnessctl][brightnessctl]], [[https://archlinux.org/packages/community/x86_64/acpi][acpi]], [[https://github.com/rg3/numlockx][numlockx]], [[https://fprint.freedesktop.org][fprintd]] | -- |
| System clock | [[https://chrony.tuxfamily.org][chrony]] | -- |
| Filesystem tools | [[https://btrfs.wiki.kernel.org/index.php/Main_Page][btrfs-progs]], [[https://www.tuxera.com/company/open-source][ntfs-3g]], [[https://archlinux.org/packages/core/x86_64/dosfstools][dosfstools]], [[https://www.gnu.org/software/mtools][mtools]], [[https://github.com/relan/exfat][exfat-utils]] | -- |
| Mobile device | [[https://developer.android.com/studio/releases/platform-tools][android-platform-tools]] | [[https://developer.android.com/studio/releases/platform-tools][android-platform-tools]] |
| Cron daemon | [[https://github.com/cronie-crond/cronie][cronie]] | (native) |
| Large-Language model | [[https://github.com/ollama/ollama][ollama]] | [[https://github.com/ollama/ollama][ollama]] |
| Misc | [[https://github.com/hanslub42/rlwrap][rlwrap]], [[https://www.gnu.org/software/sed][sed]], [[https://jqlang.github.io/jq][jq]], [[https://github.com/dylanaraps/neofetch][neofetch]], [[https://www.gnu.org/software/wget][wget]], [[https://curl.se][curl]], [[https://www.openssh.com][ssh]], [[https://github.com/lathiat/avahi][avahi]] | [[https://github.com/hanslub42/rlwrap][rlwrap]], [[https://www.gnu.org/software/sed][sed]], [[https://jqlang.github.io/jq][jq]], [[https://curl.se][curl]], [[https://github.com/dylanaraps/neofetch][neofetch]], [[https://github.com/lathiat/avahi][avahi]] |*** Graphical packages
| | Void (Xorg) | Void (Wayland) | macOS |
|--------------------------+----------------------------------+----------------------------------+---------------------------------|
| Desktop utils | [[https://www.freedesktop.org/wiki/Software/xdg-utils][xdg-utils]] | [[https://www.freedesktop.org/wiki/Software/xdg-utils][xdg-utils]] | -- |
| Display server | [[https://www.x.org][Xorg]] | -- | (native) |
| Display drivers | (machine-dependent) | (machine-dependent) | (native) |
| Display manager | -- | -- | (native) |
| Screen color temperature | [[https://flak.tedunangst.com/post/sct-set-color-temperature][sct]] | [[https://gitlab.com/chinstrap/gammastep][gammastep]] | (native) |
| Onscreen keyboard | [[https://launchpad.net/onboard][onboard]] | ?? | -- |
| Compositor | [[https://github.com/yshui/picom][picom]] | -- | (native) |
| Graphical environments | [[https://github.com/i3/i3][i3]] | [[https://swaywm.org][sway]] | (native) |
| Status bar | [[https://i3wm.org/i3status][i3status]] | [[https://github.com/Alexays/Waybar][waybar]] | (native) |
| Output manager | [[http://xorg.freedesktop.org][xrandr]] | [[https://sr.ht/~emersion/wlr-randr][wlr-randr]] | (native) |
| Wallpaper manager | [[https://feh.finalrewind.org][feh]] | [[https://github.com/swaywm/swaybg][swaybg]] | (native) |
| Application launcher | [[https://github.com/davatorium/rofi][Rofi]] | [[https://codeberg.org/dnkl/fuzzel][fuzzel]] | (native) |
| Dock | -- | -- | (native) |
| Desktop widgets | [pending] | [pending] | (native) |
| Desktop theme | [[https://github.com/madmaxms/theme-obsidian-2][Obsidian]] | [[https://github.com/madmaxms/theme-obsidian-2][Obsidian]] | (native) |
| Icon packs | [[https://github.com/madmaxms/iconpack-obsidian][Obsidian]] | [[https://github.com/madmaxms/iconpack-obsidian][Obsidian]] | (native) |
| Mouse cursor | [[https://github.com/ful1e5/Bibata_Cursor][Bibata]] | [[https://github.com/ful1e5/Bibata_Cursor][Bibata]] | (native) |
| Lockscreen | [[https://github.com/i3/i3lock][i3lock]], [[https://bitbucket.org/raymonad/xss-lock][xs-lock]] | [[https://github.com/swaywm/swaylock][swaylock]] | (native) |
| Terminal | [[https://rxvt.sourceforge.net][rxvt]] | [[https://codeberg.org/dnkl/foot][foot]] | [[https://support.apple.com/guide/terminal/welcome/mac][Terminal]] (native), [[https://github.com/alacritty/alacritty][Alacritty]] |
| Clipboard helper | [[http://www.vergenet.net/~conrad/software/xsel][xsel]] | [[https://github.com/bugaevc/wl-clipboard][wl-clipboard]] | pbcopy/pbpaste (native) |
| Notification daemon | [[https://dunst-project.org][dunst]] | [[https://wayland.emersion.fr/mako][mako]] | (native) |
| Disk management | [[https://github.com/coldfix/udiskie][udiskie]], [[https://gparted.org][GParted]] | [[https://github.com/coldfix/udiskie][udiskie]], [[https://gparted.org][GParted]]^ | [[https://support.apple.com/guide/disk-utility/welcome/mac][Disk Utility]] (native), [[https://mounty.app][Mounty]] |
| File managers | [[https://www.linuxlinks.com/Thunar][thunar]] (with [[https://wiki.gnome.org/Projects/gvfs][gvfs]]) | [[https://www.linuxlinks.com/Thunar][thunar]] (with [[https://wiki.gnome.org/Projects/gvfs][gvfs]]) | [[https://support.apple.com/en-us/HT201732][Finder]] (native) |
| File sync client | [[https://syncthing.net][Syncthing]] | [[https://syncthing.net][Syncthing]] | [[https://syncthing.net][Syncthing]] |
| File/folder compare | [[https://meldmerge.org/][Meld]] | [[https://meldmerge.org/][Meld]] | [[https://meldmerge.org/][Meld]] |
| Note-taking interface | [[https://logseq.com][logseq]] | [[https://logseq.com][logseq]] | [[https://logseq.com][logseq]] |
| Web browsers | [[https://www.mozilla.org/en-US/firefox][Firefox]], [[https://www.chromium.org/Home][Chromium]] | [[https://www.mozilla.org/en-US/firefox][Firefox]], [[https://www.chromium.org/Home][Chromium]] | [[https://www.mozilla.org/en-US/firefox][Firefox]], [[https://www.chromium.org/Home][Chromium]] |
| Password manager | [[https://keepassxc.org][KeePassXC]] | [[https://keepassxc.org][KeePassXC]] | [[https://keepassxc.org][KeePassXC]] |
| Email clients | [[https://www.thunderbird.net][Thunderbird]] | [[https://www.thunderbird.net][Thunderbird]]^ | [[https://support.apple.com/en-us/HT204093][Mail]] (native) |
| Messengers | [[https://schildi.chat][Schildi]] | [[https://schildi.chat][Schildi]]^ | [[https://schildi.chat][Schildi]] |
| Cloud storage clients | [[https://www.pcloud.com][pCloud]] | [[https://www.pcloud.com][pCloud]]^ | [[https://www.pcloud.com][pCloud]] |
| Torrent client | [[https://transmissionbt.com][Transmission]] | [[https://transmissionbt.com][Transmission]] | [[https://transmissionbt.com][Transmission]] |
| REST client | [[https://www.postman.com][Postman]] | [[https://www.postman.com][Postman]]^ | [[https://www.postman.com][Postman]] |
| Virtualization | [[https://virt-manager.org][Virt-Manager]] | [[https://virt-manager.org][Virt-Manager]] | [[https://www.virtualbox.org][VirtualBox]] |
| Office suite | [[https://www.libreoffice.org][LibreOffice]] | [[https://www.libreoffice.org][LibreOffice]] | [[https://www.libreoffice.org][LibreOffice]] |
| Bluetooth interface | [[https://github.com/blueman-project/blueman][blueman]] | [[https://github.com/blueman-project/blueman][blueman]] | (native) |
| Drawing tool | [[https://krita.org][krita]] | [[https://krita.org][krita]] | [[https://krita.org][krita]] |
| Picture viewers | [[https://github.com/GNOME/shotwell][Shotwell]] | [[https://github.com/GNOME/shotwell][Shotwell]] | [[https://support.apple.com/guide/preview/welcome/mac][Preview]] (native), [[https://www.xnview.com/en/xnviewmp][XNView MP]] |
| Picture editor | [[https://www.gimp.org][GIMP]], [[https://www.darktable.org][darktable]] | [[https://www.gimp.org][GIMP]], [[https://www.darktable.org][darktable]]^ | [[https://www.gimp.org][GIMP]], [[https://www.darktable.org][darktable]] |
| Audio player | [[https://www.clementine-player.org][Clementine]] | [[https://www.clementine-player.org][Clementine]] | [[https://www.clementine-player.org][Clementine]] |
| Audio frontend | [[https://freedesktop.org/software/pulseaudio/pavucontrol][pavucontrol]] | [[https://freedesktop.org/software/pulseaudio/pavucontrol][pavucontrol]] | (native) |
| Audio backend | [[https://gstreamer.freedesktop.org][GStreamer]], [[https://pipewire.org][pipewire]], [[https://github.com/wwmm/easyeffects][easyeffects]] | [[https://gstreamer.freedesktop.org][GStreamer]], [[https://pipewire.org][pipewire]], [[https://github.com/wwmm/easyeffects][easyeffects]] | [[https://lame.sourceforge.io][LAME]], [[https://www.ffmpeg.org][FFmpeg]] |
| Audio editor | [[https://www.audacityteam.org][Audacity]] | [[https://www.audacityteam.org][Audacity]] | [[https://www.audacityteam.org][Audacity]] |
| Video player | [[https://www.videolan.org/vlc/index.html][VLC]] | [[https://www.videolan.org/vlc/index.html][VLC]]^ | [[https://www.videolan.org/vlc/index.html][VLC]] |
| Video editor | [[https://handbrake.fr][HandBrake]], [[https://www.blender.org][Blender]] | [[https://handbrake.fr][HandBrake]], [[https://www.blender.org][Blender]] | [[https://handbrake.fr][HandBrake]], [[https://www.blender.org][Blender]] |
| YouTube video downloader | [[https://github.com/yt-dlp/yt-dlp][yt-dlp]] | [[https://github.com/yt-dlp/yt-dlp][yt-dlp]] | [[https://github.com/yt-dlp/yt-dlp][yt-dlp]] |
| Multimedia tool | [[https://kodi.tv][KODI]] | [[https://kodi.tv][KODI]] | [[https://kodi.tv][KODI]] |
| Screenshot tool | [[https://flameshot.org][flameshot]] | [[https://git.sr.ht/~emersion/grim][grim]], [[https://github.com/emersion/slurp][slurp]], [[https://github.com/jtheoof/swappy][swappy]] | (native) |
| Screencast tool | [[https://obsproject.com][OBS Studio]], [[https://github.com/phw/peek][peek]] | [[https://obsproject.com][OBS Studio]]^, ?? | [[https://obsproject.com][OBS Studio]], [[https://www.cockos.com/licecap][LICEcap]] |
| Keystroke echoing tool | -- | ?? | [[https://github.com/keycastr/keycastr][keycastr]] |
| Startup disk creators | [[https://www.balena.io/etcher][balenaEtcher]] | [[https://www.balena.io/etcher][balenaEtcher]]^ | [[https://www.balena.io/etcher][balenaEtcher]] |
| Gaming clients | [[https://store.steampowered.com][Steam]], [[https://lutris.net][lutris]], [[https://www.gamehub.gg][GameHub]] | [[https://store.steampowered.com][Steam]]^, [[https://lutris.net][lutris]], [[https://www.gamehub.gg][GameHub]] | [[https://store.steampowered.com][Steam]], [[https://www.origin.com][Origin]], [[https://www.playstation.com/en-us/explore/ps4/remote-play][Sony Remote Play]] |
| Misc | [[https://github.com/flipperdevices/qFlipper][qFlipper]] | [[https://github.com/flipperdevices/qFlipper][qFlipper]]^ | [[https://github.com/flipperdevices/qFlipper][qFlipper]] |*** Fonts
| Font |
|--------------|
| [[https://github.com/FortAwesome/Font-Awesome][Font Awesome]] |
| [[https://github.com/googlefonts/opensans][Open Sans]] |
| [[https://github.com/googlefonts/inconsolata][Inconsolata]] |
| [[https://github.com/googlefonts/RobotoMono][Roboto Mono]] |
| [[https://github.com/grays/droid-fonts][Droid]] |
| [[https://github.com/tonsky/FiraCode/releases/download/5.2/Fira_Code_v5.2.zip][Fira Code]] |
| [[https://github.com/liberationfonts/liberation-fonts/files/6418984/liberation-fonts-ttf-2.1.4.tar.gz][Liberation]] |*** Legend
=*= - in-built, =**= - through web-client, =^= - through XWayland
** Background
What started as [[https://github.com/myTerminal/dotfiles/tree/b384107562817ef181111c8c27bccaaa47614975][a home for my Emacs config]], [[https://github.com/myTerminal/dotfiles/tree/6bec073e40d7a1065b8c871f2158afb5b2a3debc][quickly began to shift its shape]], soon turning into a comprehensive *dotfiles* project to host configuration for much more than just Emacs. The majority of it [[https://github.com/myTerminal/dotfiles/tree/v1.0.0][still mostly comprised of Emacs configuration]], so to make things simpler, I decided to extract it into [[https://github.com/myTerminal/.emacs.d][an independent project of its own]]. At one point, I even extracted the setup scripts into their separate projects [[https://github.com/myTerminal/forge-legacy][here]] and then later [[https://github.com/myTerminal/forge][here]]. Maintaining it was still tricky with its [[https://github.com/myTerminal/dotfiles/tree/v2.0.0][complex arrangement of configuration files for four operating platforms]] at once at one point in time!
What you see now is an attempt to keep only what is relevant to my primary configuration across all my active workstations This helps make updates less painful and effortless. There is more than one reason to keep scripts for macOS around. One obvious reason is to use it on my work computers that barely align with my preferred setup, and the other is to continuously compare my "custom" setup with a fully functional operating system like macOS and fill in the gaps iteratively.
There still is some inseparable residue related to other platforms. This might either eventually disappear, or otherwise bring in more complexity in the future, leading to another project branching out of this one.
** Open Gaps
- Missing alternative for [[https://github.com/phw/peek][peek]] in Wayland
- [[https://launchpad.net/onboard][onboard]] doesn't work in Wayland
- No screen recording tools in Wayland
- Broken sharing in Wayland
- No way to set Numlock for Wayland
- Wallpaper doesn't randomize after Wayland load
- Need to set shell colors in Wayland?# Local Variables:
# eval: (visual-line-mode)
# End: