Skip to content

Commit

Permalink
New theme: ephemeral, anti-aliased corners, app drawer, lock screen,
Browse files Browse the repository at this point in the history
evil daemon system, dependency list update, README improvements.
  • Loading branch information
elenapan committed Jul 31, 2019
1 parent 544fb16 commit db310f8
Show file tree
Hide file tree
Showing 759 changed files with 25,424 additions and 4,328 deletions.
23 changes: 23 additions & 0 deletions .xfiles/ephemeral
@@ -0,0 +1,23 @@
*background: #323F4E
*foreground: #F8F8F2
*cursorColor: #F8F8F2
*color0: #3D4C5F
*color1: #F48FB1
*color2: #A1EFD3
*color3: #F1FA8C
*color4: #92B6F4
*color5: #BD99FF
*color6: #87DFEB
*color7: #F8F8F2
*color8: #56687E
*color9: #EE4F84
*color10: #53E2AE
*color11: #F1FF52
*color12: #6498EF
*color13: #985EFF
*color14: #24D1E7
*color15: #E5E5E5




109 changes: 65 additions & 44 deletions README.md
@@ -1,63 +1,80 @@
# dotfiles
## Some details
+ **OS**: Antergos
+ **WM**: Awesome
+ **Terminal**: xst (fork of Suckless terminal)
+ **OS**: Ubuntu 18.04
+ **WM**: AwesomeWM
+ **Terminal**: Kitty
+ **File Manager**: Nemo for GUI, Ranger for terminal
+ **Bar Icons**: Typicons Font
+ **Launcher**: Rofi
+ **Editor**: Vim
+ **Org editor**: [Remacs](https://github.com/remacs/remacs)
+ **Browser**: Firefox

## Latest preview
![Screenshot](./previews/skyfall.png?raw=true "Latest")
![Screenshot](https://i.redd.it/ddrd1bbxzpd31.png)

## Dependencies
Here is a list of dependencies needed for making these themes work.
Here is a complete 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`.
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 `rofi` with `dmenu`,`maim` 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) |
<!-- | `awesome` v4.3+ | Window manager | (explains itself) | -->
| `awesome` (git `master` branch) | 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](./bin/volume-control.sh) script |
| [bin/volume-control.sh](./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](./bin/screenshot.sh) script |
| [bin/screenshot.sh](./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](https://openweathermap.org/) key | Provides weather data | weather widgets |
| `light` | Gets/Sets screen brightness | Brightness keybinds |
| `lm_sensors` | CPU temperature sensor | CPU temperature widgets |
| `upower` | Abstraction for enumerating power devices, listening to device events and more | Battery widgets |
| `acpid` | Daemon for delivering ACPI events | Charger notifications |
| `pulseaudio`, `libpulse` | Sound system **(Installed by default on most distros)** | Volume widgets and keybinds |
| `jq` | Parses `json` output | Weather widgets |
| `fortune-mod` | Displays random quotations (fortune cookies) | Fortune widget |
| `redshift` | Controls screen temperature | Night mode command |
| `mpd` | Server-side application for playing music | Music widgets |
| `mpc` | Minimalist command line interface to MPD | Music widgets |
| `maim` | Takes screenshots (improved `scrot`) | Screenshot keybinds |
| `feh` | Image viewer and wallpaper setter | Screenshot previews, wallpapers |
| [openweathermap](https://openweathermap.org/) key | Provides weather data | Weather widgets |

### Fonts
##### Icon fonts
+ **Typicons**
+ **Material Icons**
+ **Icomoon**
+ **Nerd Fonts**
##### Monospace
+ **Iosevka**
+ **Anka/Coder**
##### Fancy
+ **Scriptina**
##### Sans
+ **Google Sans**
+ **Roboto Condensed**
+ **San Francisco Display**

## 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
+ Configure user preferences

In `rc.lua` there is a section where default applications such as terminal, editor and file manager are defined.
In `rc.lua` there is a *User variables and preferences* section where user preferences and default applications are defined. There include the terminal, editor, file manager, screenshot directory, weather widget configuration and more.
You should change those to your liking.

+ Configure autostart applications in `autostart.sh`

The commands in `autostart.sh` will run every time AwesomeWM restarts. If you would like to run something only once on login, I suggest you create the file `~/.xprofile`, make it executable and put the commands you want there.

+ *(Optional)* Load any `Xresources` colorscheme (`xrdb -merge <colorscheme file>`). In the [.xfiles](.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.
See the [Basic keybinds](#basic-keybinds) section for more details.


**You are now ready to login with AwesomeWM!**

Expand All @@ -76,19 +93,25 @@ If you notice that something is missing, please open an issue so I can add the d
- `cava` - Audio visualizer

## AwesomeWM configuration: File structure
+ I have split my `rc.lua` into multiple files for organization purposes.
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.
I prefer not filling my files with a ton of widget configurations, but also not making a seperate file for every widget.

+ The `evil` directory contains daemons (processes that run in the background) which emit system info.

They provide an easy way of writing widgets that rely on external information. All you need to do is subscribe to the signal a daemon provides.
No need to remember which shell command gives you the necessary info or bother about killing orphan processes. Evil takes care of everything.

+ 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.
+ In `bars` you can find a `.lua` file for each available bar or bar group.

Multiple bars can be created in one file.
Every bar theme provides the global functions `toggle_wibars()` and `toggle_tray()` which you can bind to any keys you want.

## Basic keybinds

Expand All @@ -105,9 +128,7 @@ I use `super` AKA Windows key as my main modifier.
+ `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 + [arrow keys] / hjkl` - Change focus by direction
+ `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
Expand Down Expand Up @@ -163,7 +184,7 @@ I use `super` AKA Windows key as my main modifier.

## 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`).
+ 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 `user` preferences in rc.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.
Expand All @@ -188,19 +209,19 @@ I use `super` AKA Windows key as my main modifier.

+ 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.
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, you will realize that you 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](https://awesomewm.org/apidoc/index.html).

It is well written and has plenty of examples.

## Theme previews
### Lovelace
![Screenshot](./previews/lovelace.png?raw=true "lovelace theme")

### Manta
![Screenshot](./previews/manta.png?raw=true "manta theme")
+ You can also post your questions on [/r/awesomewm](https://www.reddit.com/r/awesomewm/)

### Reasons
![Screenshot](./previews/reasons.png?raw=true "reasons theme")
## Older theme previews
| Theme | Preview | Reddit post |
| --- | --- | --- |
| Skyfall | ![Screenshot](https://i.redd.it/kobla5v7r5i21.png "Skyfall theme") | [Skyfall](https://www.reddit.com/r/unixporn/comments/atkn5b) |
| Lovelace | ![Screenshot](https://i.redd.it/glzrkk83f4621.png "Lovelace theme") | [Mechanical Love](https://www.reddit.com/comments/a900p7) |
| Manta | ![Screenshot](https://i.imgur.com/5pV3Xxa.png "Manta theme") | [Cake Day](https://www.reddit.com/r/unixporn/comments/9ji6uu/awesome_cake_day/) |
| Reasons | ![Screenshot](https://i.imgur.com/MdAN8jT.png "Reasons theme") | [25 reasons why you need a tiling WM](https://www.reddit.com/r/unixporn/comments/8jxpxc) |
12 changes: 12 additions & 0 deletions bin/performance_mode
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Toggle compton
# Requires that you have allowed cpufreq-set to run without password.
if pgrep compton; then
pkill compton
sudo cpufreq-set -g performance
echo "ON"
else
compton --config ~/.config/compton/compton.conf &
sudo cpufreq-set -g powersave
echo "OFF"
fi
16 changes: 16 additions & 0 deletions bin/scratchpad
@@ -0,0 +1,16 @@
#!/bin/bash

SCRATCHPAD_SESSION="$(tmux ls | grep scratchpad)"
SCRATCHPAD_WINDOW="$(xdotool search --classname scratchpad)"

# If there is no such window
# (Checking for the window should not be necessary if AwesomeWM does it already)
if [ ${#SCRATCHPAD_WINDOW} -eq "0" ]; then
# If the session does not exist, create a new one
if [ ${#SCRATCHPAD_SESSION} -eq "0" ]; then
kitty -1 --class scratchpad -e tmux new-session -s scratchpad &
# Else attach to the session
else
kitty -1 --class scratchpad -e tmux attach -t scratchpad &
fi
fi
4 changes: 4 additions & 0 deletions bin/visualizer
@@ -0,0 +1,4 @@
#!/bin/bash
# Toggle visualizer:
# Kill it if it is running or spawn it if it does not running
xdotool search --class Visualizer &>/dev/null && (ps x | grep "kitty --class Visualizer" | grep -v grep | awk '{print $1}' | xargs kill) || kitty --class Visualizer -o background_opacity=0 -o font_size=6 -o window_margin_width=0 -e cava &
1 change: 1 addition & 0 deletions config/awesome/.projectile
@@ -0,0 +1 @@
-/.png
28 changes: 12 additions & 16 deletions config/awesome/autostart.sh
Expand Up @@ -4,7 +4,8 @@
# Use "program &" to run it regardless
# ---
# NOTE: This script runs with every restart of AwesomeWM
# TODO: run_once
# If you would like to run a command *once* on login,
# you can use ~/.xprofile

function run {
if ! pgrep $1 > /dev/null ;
Expand All @@ -14,16 +15,17 @@ function run {
}

# Music
run mpd ~/.config/mpd/mpd.conf
# run mpd
# (Alternatively, enable the mpd service so mpd runs on login)

# Emacs daemon
#run emacs --daemon

# Load terminal colorscheme and settings
#xrdb ~/.Xresources
xrdb ~/.Xresources

# Urxvt daemon
#run urxvtd -q -o -f
# run urxvtd -q -o -f

# Mpv input file
if [ ! -e /tmp/mpv.fifo ]; then
Expand All @@ -34,21 +36,15 @@ fi
#run compton --config ~/.config/compton/compton.conf

# Enable numlock on login
# Required numlockx to be installed
run numlockx

# Battery notifications
# run battery_daemon

# Network manager tray icon
run nm-applet

# Keyboard layout
# setxkbmap -layout "us,gr" -option "grp:alt_shift_toggle" &
# setxkbmap -layout "us,de" -option "grp:alt_shift_toggle" &
# setxkbmap -layout "us,gr,ru" -option "grp:alt_shift_toggle"

# Caps Lock is Escape (Escape remains as is)
# setxkbmap -option caps:escape
# Kill redshift processes
# pkill redshift

# Scratchpad
# scratchpad
# Wallpaper
# (Already set to run in rc.lua)
# ~/.fehbg
13 changes: 0 additions & 13 deletions config/awesome/awesome-cleanup.sh

This file was deleted.

0 comments on commit db310f8

Please sign in to comment.