Skip to content
/ alice Public

Advanced Linux Interface for Control & Efficiency

Notifications You must be signed in to change notification settings

mrzealot/alice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

53965eb · Jan 3, 2023

History

73 Commits
Jan 3, 2023
Dec 24, 2019
Dec 27, 2019
Dec 24, 2019
Dec 21, 2019
Jan 3, 2023
Dec 26, 2019
Oct 30, 2022
Mar 22, 2022
Dec 26, 2019
Jan 3, 2023
Nov 13, 2020
Oct 14, 2020
Nov 1, 2022
Dec 25, 2019
Feb 18, 2020
Mar 22, 2022
Nov 8, 2022

Repository files navigation

Alice

The Alice project is my continuously evolving set of dotfiles for a completely customized, (mostly) keyboard-driven linux experience. It stands for Advanced Linux Interface for Control & Efficiency.

  • Is it a really forced acronym made up after the fact? Yes.
  • Is it really called Alice because of my infatuation with the children's tale? Yes.
  • Is it accurate and fitting, though? Also yes.

Setup

  • Back up previous system

    • don't forget to bring over ssh keys and vpn configs from the old install, if applicable
  • Install a fresh Ubuntu in "Minimal" mode

    • allocate the following partitions, if it's gonna be a standalone OS:

      • boot (~1GB)
      • swap (~size of RAM)
      • root (~50GB)
      • home (rest)
    • otherwise, install Windows first

      • after disabling secure BOOT at the BIOS level
      • also, don't forget to disable hibernation so that it can't mess with dual boot: powercfg -h off in an admin PowerShell
      • then shrink about 60-80GB for Ubuntu, and install there, automatically "next to" Windows
    • allow the sudo group to sudo without a password

      • sudo visudo
      • modify the corresponding line: %sudo ALL=(ALL) NOPASSWD: ALL
    • customize grub, if applicable

      • sudo apt install grub-customizer
      • make sure that the default entry is the "previously booted entry" so we can change it temporarily
      • also, to not depend on exact names, make sure that Ubuntu is first in the list and Windows is second
    • install basic dependencies: sudo apt install curl git nodejs npm vim htop maim bluez x11-xserver-utils xclip baobab unrar

    • check ssh keys and permissions, as the ssh agent will refuse keys that are "too accessible"

      chmod 700 ~/.ssh
      chmod 600 ~/.ssh/*
      
    • upgrade node

      sudo npm install -g n
      sudo n latest
  • Initialize dotfiles (inspired by this guide):

    • clone repo

      cd
      git clone --bare [email protected]:mrzealot/alice.git .alice
      alias alice='/usr/bin/git --git-dir=$HOME/.alice/ --work-tree=$HOME'
    • checkout contents to home dir

      mkdir -p .config-backup
      alice checkout
      if [[ $? != 0 ]]; then
          echo "Checked out alice config.";
      else
          echo "Backing up pre-existing dot files.";
          alice checkout 2>&1 | egrep "\s+\." | awk {'print $1'} | xargs -I{} mv {} .config-backup/{}
      fi;
      alice checkout
    • ignore untracked files: alice config status.showUntrackedFiles no

    • make all tracked scripts executable: alice ls-tree -r master --name-only | grep .sh$ | xargs chmod +x

  • Setup WM-related stuff:

    • sudo apt install i3 i3lock feh compton rofi redshift playerctl tty-clock at xbacklight

    • adjust X11 to be able to control backlight:

      sudo cp .config/i3/xorg.conf.tpl /etc/X11/xorg.conf
    • disable graphical login manager: sudo systemctl set-default multi-user.target

      • (reversible with sudo systemctl set-default graphical.target)
    • add an auto login script:

      sudo mkdir -p /etc/systemd/system/[email protected]
      sudo cp .config/i3/autologin.conf /etc/systemd/system/[email protected]/autologin.conf
    • set i3 as the default WM: sudo update-alternatives --install /usr/bin/x-session-manager x-session-manager /usr/bin/i3 60

    • rename user folders:

      mv Asztal .desktop
      mv Letöltések .downloads
      mv Sablonok .templates
      mv Nyilvános .public
      mv Dokumentumok .documents
      mv Zenék .music
      mv Képek .pictures
      mv Videók .videos
  • Setup terminal and shell

    • sudo apt install zsh rxvt-unicode

    • install Oh-my-zsh! by sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

    • install external plugins:

      git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    • setup conda for python env support

      • install according to this doc
      • activation/hooking script is already in the zsh config
  • Setup browser

  • Setup editor

    • sudo snap install --classic code

    • set as the default editor through the alternatives system, too (xdg mime type associations are handled already through .config/mimeapps.list):

      sudo update-alternatives --install /usr/bin/editor editor /snap/bin/code 60
      sudo update-alternatives --install /usr/bin/gnome-text-editor gnome-text-editor /snap/bin/code 60
    • install extensions (needs zsh)

      code_exts=(
          Asuka.insertnumbers
          ban.spellright
          James-Yu.latex-workshop
          jsynowiec.vscode-insertdatestring
          kirozen.wordcounter
          mhutchie.git-graph
          ms-python.python
          earshinov.permute-lines
      )
      for ext in $code_exts; code --install-extension $ext
    • set up correct spell check by giving spellright the system hunspell dictionaries: ln -s /usr/share/hunspell ~/.config/Code/Dictionaries

  • Setup my own bins

    • coin

      git clone [email protected]:mrzealot/coin.git .coin
      cd .coin && npm install && sudo npm link; cd
    • whip

      git clone [email protected]:mrzealot/whip.git .whip
      cd .whip && npm install && sudo npm link; cd
  • Setup media/office stuff

    • sudo apt install transmission vlc kolourpaint gimp inkscape audacity libreoffice calibre filezilla librecad ffmpeg handbrake youtube-dl

    • setup scdl SoundCloud downloader by pip3 install git+https://github.com/flyingrub/scdl

      • example command: scdl -l https://soundcloud.com/mrzealot -f --path .music/soundcloud -c --onlymp3 --debug
  • Setup jekyll for blogging

    • install according to this doc
    • environment vars are already in the zsh config

TODO

  • add support for the other XF86 keys

    • XF86Display (F7)
    • XF86WLAN (F8)
    • XF86Tools (F9)
    • XF86Bluetooth (F10)
    • F11 is not standard
    • XF86Favorites (F12)
  • robust-ize notification DPI timeout

    • add a temp file (with a timestamp, e.g.) and check that no other notification is running before resetting the DPI

About

Advanced Linux Interface for Control & Efficiency

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published