elenapan / dotfiles

There is no place like ~/
GNU General Public License v2.0
3.48k stars 178 forks source link

๐ŸŽ€ Elena's configuration files ๐ŸŽ€

Thanks for dropping by!

img

This is my personal collection of configuration files.

You are probably here for my AwesomeWM configuration.

The setup section will guide you through the installation process.

Here are some details about my setup:

New stuff

Setup

Here are the instructions you should follow to replicate my AwesomeWM setup.

  1. Install the git version of AwesomeWM.

    Arch users can use the awesome-git AUR package.

    yay -S awesome-git

    For other distros, build instructions are here.

  2. Install dependencies and enable services

    If you are curious, click here to see a table of dependencies and why they are needed.

    • Software

      • Ubuntu 18.04 or newer (and all Ubuntu-based distributions)

        sudo apt install rofi lm-sensors acpid jq fortune-mod redshift mpd mpc maim feh pulseaudio inotify-tools xdotool
        
        # Install light, which is not in the official Ubuntu repositories
        wget https://github.com/haikarainen/light/releases/download/v1.2/light_1.2_amd64.deb
        sudo dpkg -i light_1.2_amd64.deb
      • Arch Linux (and all Arch-based distributions)

        Assuming your AUR helper is yay

        yay -S rofi lm_sensors acpid jq fortune-mod redshift mpd mpc maim feh light-git pulseaudio inotify-tools xdotool
    • Services

      # For automatically launching mpd on login
      systemctl --user enable mpd.service
      systemctl --user start mpd.service
      # For charger plug/unplug events (if you have a battery)
      sudo systemctl enable acpid.service
      sudo systemctl start acpid.service
  3. Install needed fonts

    You will need to install a few fonts (mainly icon fonts) in order for text and icons to be rendered properly.

    Necessary fonts:

    • Typicons - github
    • Material Design Icons - dropbox
    • Icomoon - dropbox
    • Nerd Fonts - website (You only need to pick and download one Nerd Font. They all include the same icons)
    • Scriptina - website - Handwritten font used in the lock screen

    Optional fonts:

    • My custom Iosevka build - dropbox - ๐Ÿ’™ my favorite monospace font
    • Anka/Coder
    • Google Sans - ๐Ÿ’™ my favorite sans font
    • Roboto Condensed
    • San Francisco Display

    Once you download them and unpack them, place them into ~/.fonts or ~/.local/share/fonts.

    • You will need to create the directory if it does not exist.
    • It does not matter that the actual font files (.ttf) are deep inside multiple directories. They will be detected as long as they can be accessed from ~/.fonts or ~/.local/share/fonts.

    You can find the fonts required inside the misc/fonts folder of the repository.

    cp -r ./misc/fonts/* ~/.fonts/
    # Or to ~/.local/share/fonts
    cp -r ./misc/fonts/* ~/.local/share/fonts/

    Finally, run the following in order for your system to detect the newly installed fonts.

    fc-cache -v
  4. Install my AwesomeWM configuration files

    git clone https://github.com/elenapan/dotfiles
    cd dotfiles
    [ -e ~/.config/awesome ] && mv ~/.config/awesome ~/.config/awesome-backup-"$(date +%Y.%m.%d-%H.%M.%S)" # Backup current configuration
    cp -r config/awesome ~/.config/awesome
  5. Configure stuff

    The relevant files are inside your ~/.config/awesome directory.

    • User preferences and default applications

      In rc.lua there is a User variables and preferences section where user preferences and default applications are defined. You should change those to your liking. Probably the most important change you can make is to set your terminal.

      For more sophisticated control over your apps, check out apps.lua

      Note: For the weather widgets to work, you will also need to create an account on openweathermap, get your key, look for your city ID, and set openweathermap_key and openweathermap_city_id accordingly.

    • Have a general idea of what my keybinds do

      My keybinds will most probably not suit you completely, but on your first login you might need to know how to navigate the desktop.

      See the keybinds section for more details.

      You can edit keys.lua to configure your keybinds.

    • (Optional) This is also a good time to take a look at how my configuration is structured in order to understand the purpose of each file.

  6. Login with AwesomeWM ๐ŸŽ‰

    Congratulations, at this point you should be ready to log out of your current desktop and into AwesomeWM.

    Your login screen should have a button that lets you change between available desktop sessions. If not, click here to find out how to fix it.

    Try it, play with it, enjoy it. Consider checking out the Advanced setup in order to enable and configure various components that are not needed to use the desktop, but provide a better experience.

  7. (Optional) Eye-candy

    • Set the wallpaper

      feh --bg-fill /path/to/your/wallpaper
    • Load a colorscheme

      xrdb -merge /path/to/colorscheme

      Notes:

      • To see the new colors you should restart AwesomeWM with super+shift+r or by right-clicking the desktop and clicking the gear icon (bottom-right).
      • In the .xfiles directory of the repository I provide you with a few of my own colorschemes, but you can also use your favorite one.
      • All of my AwesomeWM themes take their colors from xrdb. This also means that they play nice with tools like pywal.

AwesomeWM configuration: File structure

After setting up my AwesomeWM configuration, inside ~/.config/awesome you will find the following:

Keybinds

I use super AKA Windows key as my main modifier.

Keyboard

Keybind Action
super + enter Spawn terminal
super + shift + enter Spawn floating terminal
super + d Launch rofi
super + shift + q Close client
super + control + space Toggle floating client
super + [1-0] View tag AKA change workspace (for you i3 folks)
super + shift + [1-0] Move focused client to tag
super + s Tiling layout
super + shift + s Floating layout
super + w Maximized / Monocle layout
super + [arrow keys] Change focus by direction
super + [hjkl] ^
super + shift + [arrow keys] Move client by direction. Move to edge if it is floating.
super + shift + [hjkl] ^
super + control + [arrow keys] Resize client
super + control + [hjkl] ^
super + f Toggle fullscreen
super + m Toggle maximize
super + n Minimize
super + shift + n Restore minimized
super + c Center floating client
super + u Jump to urgent client (or back to last tag if there is no such client)
super + b Toggle bar
super + = Toggle tray

... And many many more.

Mouse on the desktop

Mousebind Action
left click Dismiss all notifications, close sidebar and main menu
double left click Jump to urgent client (or back to last tag if there is no such client)
right click App drawer
middle click Dashboard
scroll up/down Cycle through tags
move to screen edge Show sidebar

Mouse on window titlebars

Mousebind Action
left click Focus and raise
left click (drag) Move
right click (drag) Resize
middle click Close

Notes

If you have any questions or issues, first check if you can find your answer in the wiki. Then you can search in the repository's issues or make a new issue.

Tipjar

If you enjoy my themes and would like to show your appreciation, you may tip me here.

It is never required but always appreciated.

Thank you from the bottom of my heart! ๐Ÿ’™