Skip to content

🧪 My system configuration and dotfiles. Can easily be installed with gnu stow.

Notifications You must be signed in to change notification settings

LinuxIsCool/configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pop-os - Gnome - Tmux - Fish - Vim - FZF - Serious Configuration - Shawn Anderson

These are the dotfiles that I hack on. Can easily be installed to your ~/.config/ by using the gnu stow utility.

They are designed to get a brand new machine installed with https://pop.system76.com/ into a production ready state. For me production means participating in digital platforms, writing code, and editing media. I run a FinTech business in Canada called Longtail Financial, provides data science and token engineering services. I work with partners at LTF to drive the business towards stability and success. This configuration is an optimized build for maximum effectiveness. To learn more about my workflow, follow me on twitter: https://twitter.com/ygg_anderson

The following is a screencapture of The Serious Configuration Framework running in a triple monitor setup. This build should be very easy to pick up for anyone who wishes to be a terminal oriented power user in linux, and will also feel right at home with a familiar desktop experience for anyone coming from Mac, Windows, or Debian operating systems since it uses the very intuitive Gnome Desktop in the Pop Shell, a fork of the Ubuntu linux distribution. It's the fastest paced work environment for creatives, producers, and technologists who want to simply get things done.

This is the Serious Configuration Framework. Optimized for Simplicity.

To install:

  1. Install PopOS: https://pop.system76.com/

  2. Update System

    super+t to open a terminal.
    sudo apt update && sudo apt upgrade
    
  3. Install necessary utilities.

    sudo apt install stow fish jq python-is-python3 bat ripgrep tree cmake alacritty delta pip python3.10-venv
    
  4. Set alacritty to default terminal

    super -> keyboard -> custom shortcut -> set super+t as `alacritty`
    
  5. Change default shell to fish

    chsh -s `which fish`  
    

    Logout and Login

  6. Remap caps to control and escape with keyd: https://github.com/rvaiya/keyd (don't remap escape to caps lock)

  7. Enable Wayland: https://linuxconfig.org/how-to-enable-disable-wayland-on-ubuntu-22-04-desktop

    set -Ux MOZ_ENABLE_WAYLAND 1 # For Firefox in Wayland
    
  8. Clone this repo

    git clone [email protected]:LinuxIsCool/configuration.git  
    
  9. Symlink into ~/.config using stow

    cd configuration  
    sh stow  
    
  10. Install fisher and fish plugins (will install nvm)

    curl -sL https://git.io/fisher | source && fisher install (cat ~/.config/fish/fish_plugins)
    
  11. Use nvm to install node

    nvm install latest
    nvm use latest
    
  12. Install g for Go: https://github.com/stefanmaric/g#usage

    curl -sSL https://git.io/g-install | sh -s
    g install latest
    
  13. Install blsd: https://github.com/junegunn/blsd

    bass "bash <(curl -fL https://raw.githubusercontent.com/junegunn/blsd/master/install)"
    
  14. Install Rust: https://www.rust-lang.org/tools/install

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    fish_add_path ~/.cargo/bin/
    
  15. Install Nvim using Bob

    cargo install bob-nvim
    bob complete fish > ~/.config/fish/completions/bob.fish
    bob use latest
    fish_add_path ~/.local/share/bob/nvim-bin/
    
  16. Install NVChad

    rm -rf ~/.config/nvim  
    rm -rf ~/.local/share/nvim  
    git clone -b v2.0 [email protected]:NvChad/NvChad.git ~/.config/nvim --branch v2.0 --depth 1
    # git clone [email protected]:LinuxIsCool/nvchadcustom.git ~/.config/nvim/lua/custom
    git clone [email protected]:LinuxIsCool/neovim-python.git ~/.config/nvim/lua/custom
    nvim  
    
  17. Make sure fzf is installed system wide

    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    ~/.fzf/install
    
  18. Install autojump

    cd ~/.local/share/  
    git clone https://github.com/wting/autojump.git && cd autojump && python install.py
    
  19. Install virtualfish

    python -m pip install --user virtualfish 
    fish_add_path ~/.local/bin/  
    vf install
    
  20. Install python poetry: https://python-poetry.org/docs/#installation

    curl -sSL https://install.python-poetry.org | python3 -
    
  21. Install Tmux and Tmux plugin manager (Install tmux version 3.1c in order to have proper behavior with passing ctrl-i independent from <tab>)

    # Install tmux 3.1c
    sudo apt install build-essential libevent-dev libncurses-dev yacc
    wget https://github.com/tmux/tmux/releases/download/3.1c/tmux-3.1c.tar.gz -O /tmp/tmux-3.1c.tar.gz
    tar -xzf /tmp/tmux-3.1c.tar.gz -C /tmp
    cd /tmp/tmux-3.1c
    ./configure && make
    sudo make install
    
    # Install tmux plugin manager
    git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm  
    tmux  
    prefix + I  
    
  22. Gnome tweaks (Optional)

    Setting key repeat and interval:

    gsettings set org.gnome.desktop.peripherals.keyboard delay 140
    gsettings set org.gnome.desktop.peripherals.keyboard repeat-interval 11
    

    Make launcher work when an app is open in full screen:

    gsettings set org.gnome.shell.extensions.pop-shell fullscreen-launcher true
    

    Make alt-tab workspace specific:

    gsettings set org.gnome.shell.app-switcher current-workspace-only true
    

    Add week numbers to calendar:

    gsettings set org.gnome.desktop.calendar show-weekdate true
    

    Add Weekday to panel date:

    gsettings set org.gnome.desktop.interface clock-show-weekday true
    

    Set background opacity for dash to dock:

    gsettings set org.gnome.shell.extensions.dash-to-dock background-opacity 0.4
    
  23. Install Gnome Extensions (Optional). Here is an example of some extensions that I use: image Older:

  1. Load Dconf settings (Optional): https://bgstack15.wordpress.com/2017/10/04/dconf-save-and-load-from-file/
# Load Settings
dconf load / < popos-gnome/dconf/settings.dconf

# To Dump Settings 
dconf dump / > popos-gnome/dconf/settings.dconf
  1. Load Dash to Panel Settings (Optional): home-sweet-gnome/dash-to-panel#517
# Load settings
 dconf load /org/gnome/shell/extensions/dash-to-panel/ < popos-gnome/dconf/dash_to_panel.settings

# To Dump Settings
dconf dump /org/gnome/shell/extensions/dash-to-panel/ > popos-gnome/dconf/dash_to_panel.settings
  1. Load custom keybaord mappings and shortcuts (Optional):
  1. Install Apps and Programs through Pop Shop (Optional):
  • OBS, Discord, Telegram, Lutris, Slack, Spotify, Clementine, QDirStat, Zoom
  1. Install Firefox Plugins (Optional):
  • Video Speed Controller
  • Add Blocker Plus
  • Metamask
  • ETH Gas Station
  1. Update wallpaper:
More Coming  Soon...

Notes

Use at your own risk. No warrenties. I practice human-in-the-loop computing. This workflow is designed by me to be most effective for me and my life and my intentions. It wasn't defined with mass adoption in mind. I encourage you to persue the discovery of computing interfaces on your personel journey as well. Please feel free to take inspiration from my workflow and open dialougue in collaboration.

Blessings 🌟💎🦋💖

About

🧪 My system configuration and dotfiles. Can easily be installed with gnu stow.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published