Coder Social home page Coder Social logo

dotfiles-from-elena's Introduction

dotfiles

Some details

  • OS: Antergos
  • WM: Awesome
  • Terminal: xst (fork of Suckless terminal)
  • File Manager: Nemo for GUI, Ranger for terminal
  • Bar Icons: Typicons Font
  • Launcher: Rofi
  • Editor: Vim
  • Browser: Firefox

Latest preview

Screenshot

Dependencies

Here is a list of dependencies needed for making these themes work. If you install all of them you will have a (mostly) smooth out of the box experience. Of course, not all of them actually do something useful (see fortune-mod dependency). Also if you are willing to edit a few configuration files, which you will have to do at some point, most of these dependencies can be replaced. For example you can replace i3lock with your own command, rofi with dmenu, my screenshot.sh script with scrot.

If you notice that something is missing, please open an issue so I can add the dependency to this table.

Dependency Description Why/Where is it needed?
awesome v4.2+ Window manager (explains itself)
rofi Window switcher, application launcher and dmenu replacement (explains itself)
xorg-xbacklight Gets/Sets screen brightness (intel GPU only) brightness widget
lm_sensors CPU temperature sensor CPU temperature widget
upower Abstraction for enumerating power devices, listening to device events and more battery widget
pulseaudio, libpulse Sound system (You probably already have these) volume widget, bin/volume-control.sh script
bin/volume-control.sh in your $PATH Commands to control your volume volume buttons, volume widget
jq Parses json output weather widget
fortune-mod Displays random quotations (fortune cookies) fortune widget
mpd Server-side application for playing music sidebar music widget
mpc Minimalist command line interface to MPD sidebar music widget
i3lock Screen locker exit screen lock command
maim Takes screenshots (improved scrot) bin/screenshot.sh script
bin/screenshot.sh in your $PATH Commands to take/view screenshots screenshot button
feh Image viewer and wallpaper setter screenshot previews, wallpapers
Typicons font Icon font text exit screen, text weather icons, skyfall bar
Any Nerd Font Icon font manta bar icons, skyfall taglist icons
openweathermap key Provides weather data weather widgets

Things to do after you set up dependencies

  • Backup your current ~/.config/awesome directory if you have one and copy this repo's config/awesome directory in its place.

  • Configure default applications

    In rc.lua there is a section where default applications such as terminal, editor and file manager are defined. You should change those to your liking.

  • Configure autostart applications in autostart.sh

  • (Optional) Load any Xresources colorscheme (xrdb -merge <colorscheme file>). In the .xfiles directory 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.

  • Have a general idea of what my keybinds do

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

    See the Basic keybinds section for more details.

You are now ready to login with AwesomeWM!

Some recommended applications

  • Terminals: Termite / Kitty / urxvt / st
  • File managers: Nemo / Thunar
  • Launchers: Rofi / dmenu
  • Browsers: Firefox (with Vimium extension) / Qutebrowser
  • Editors: Vim / Sublime Text (with NeoVintageous plugin) / Spacemacs
  • Music players: mpd (with ncmpcpp)

Eye-candy suggestions

  • bin/bunnyfetch script - Display some system info
  • neofetch - Display a ton of system info
  • even-better-ls - Icons for the ls command
  • cava - Audio visualizer

AwesomeWM configuration: File structure

  • I have split my rc.lua into multiple files for organization purposes.

  • The noodle directory contains widgets that usually take up more than 50 lines of code.

    I prefer not filling my bars.lua with a ton of widget configurations, but also not making a seperate file for every widget.

  • In themes you can find a directory for each available theme.

    Such a directory should include at least a theme.lua and optionally icons, wallpaper, and whatever asset you need that is theme-specific.

  • In bar_themes you can find a .lua file for each available bar or bar group.

    Multiple bars can be created in one file.

Basic keybinds

I use super AKA Windows key as my main modifier.

Keyboard

  • 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 + j/k - Cycle through clients
  • super + h/l - Add / remove clients to / from master area
  • super + shift + [arrow keys] / [hjkl] - Move client by direction. Move to edge if it is floating.
  • super + control + [arrow keys] / [hjkl] - Resize
  • 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 + shift + b - Toggle bar
  • super + = - Toggle tray
  • ... And many many more.

Mouse on desktop

  • 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 - Main menu
  • middle click - Start screen
  • scroll up/down - Cycle through tags
  • move to left/right edge - Show sidebar
  • ... And more.

Mouse on titlebars

  • left click - Focus and raise
  • left click (drag) - Move
  • right click (drag) - Resize
  • middle click - Close
  • ... And more.

Custom titlebars per class / name / whatever

  • For the custom titlebars to work your terminal or application needs to be able to set its own class or name

    Example: For the mpd titlebar it needs to have class "music" or name "Music Terminal". You can change this in titlebars.lua. You can find an example script that launches a terminal like this in bin/music_terminal

    # Termite
    termite --class music --exec ncmpcpp
    # st / xst
    st -c music -e ncmpcpp
    # urxvt
    urxvt -T "Music Terminal" -e ncmpcpp
  • Of course you can set your own custom titlebars for any application as long as you know its class, name, instance, whatever and then creating a custom titlebar setup in the existing if-else block in titlebars.lua. For example if c.class == "Thunar" ...

  • You can find details such as class, name, and others for any client with the xprop utility.

More details about the start screen

  • Activate it with super+F1, or by middle clicking anywhere on the desktop.
  • Dismiss with escape, q or F1 or middle click.
  • You can scroll on the calendar to switch to the previous / next month. Left click to reset.
  • The fortune box requires fortune-mod. Clicking it gives you a new fortune cookie :)
  • The brightness bar requires xorg-xbacklight.
  • The bell icon suspends / re-enables notifications on click.
  • The camera icon takes a screenshot instantly on left click and with a 5 second delay on right click. Requires "screenshot.sh" from my repo. Alternatively you can set your own screenshot command.

More details about the sidebar

  • Can be toggled with super+grave.
  • Can be activated by moving the mouse to the edge of the screen and hidden by moving the mouse out of it (these settings can be easily enabled/disabled in your theme.lua).
  • By default it is always above windows, and does not grab your keyboard (so you can have it open while doing something else, or just toggle it for a second to check your battery while you are watching something in fullscreen).
  • Most widgets (volume, search, exit, music...) are clickable.
  • Volume and music update only when they need to, as they are subscribed to pulse and mpd events respectively.
  • For the weather widget I modified this polybar custom script. It uses the openweathermap API. If you want this to work, you will need to create an account there, get your key, look for your city ID, and place them in noodle/weather.lua. (Same goes for text_weather.lua)

More details about the exit screen

  • Activate it with super+escape, by clicking Exit on the sidebar, or in the right click menu (awesome -> quit)
  • Mouse controls: Click on any icon to execute the command, right click or middle click anywhere to cancel.
  • Keyboard controls:
    • escape or q or x to cancel
    • p to poweroff
    • r to reboot
    • s to suspend
    • e to exit (logout)
    • l to lock

Tips / Notes

  • You can open an issue if you have any questions / problems.

    Do not forget to search through old issues first. They could already contain an answer to your question. Also make sure you have the latest version of the repo. Little fixes happen all the time.

  • If you are new to AwesomeWM...

    I suggest you start from the default configuration and add pieces you like to it instead of trying to modify someone else's configuration even if you feel really comfortable with that specific config. Otherwise you will have no idea how anything works and how you can modify things to your own liking. Trust me, I've been there.

  • Don't forget to use the API Documentation for AwesomeWM.

    It is well written and has plenty of examples.

Theme previews

Lovelace

Screenshot

Manta

Screenshot

Reasons

Screenshot

dotfiles-from-elena's People

Contributors

elenapan avatar therealfenrir avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.