Start by installing xorg and nvidia graphics
pacman -S xorg-server xorg-server-utils xorg-xinit xorg-utils xorg-twm xorg-xclock xterm xorg-xrandr nvidia nvidia-libgl xf86-input-evdev
Reboot
reboot
Install awesome, touchpad support and vicious
pacman -S awesome xf86-input-synaptics vicious hddtemp alsa-utils wireless_tools
Create .xinitrc
echo "exec awesome" >> ~/.xinitrc
Create the configuration folder and copy config file
mkdir -p ~/.config/awesome/ && cp /etc/xdg/awesome/rc.lua ~/.config/awesome/
Get the PCI address for the NVIDIA card. It’s the first seven characters of the line that contains NVIDIA.
lspci | grep -E "VGA|3D"
Edit /etc/X11/xorg.conf and in BusID use the PCI address from the step before. Attention: if your PCI address is something like 01:00:00, here you will have to use in this format: 1:0:0.
/etc/X11/xorg.conf
Section "Module"
Load "modesetting"
EndSection
Section "Device"
Identifier "nvidia"
Driver "nvidia"
BusID ""
Option "AllowEmptyInitialConfiguration"
EndSection
Add to .xinitrc, so it looks like that
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
setxkbmap be
exec awesome
Get the modeline for the resolution you want to test
cvt 1368 768
Test your resolution (mine is 1368×768)
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode eDP-1 1368x768_60.00
xrandr --output eDP-1 --mode 1368x768_60.00
Once you are satisfied with your resolution tested with xrandx, persist it by editing /etc/X11/xorg.conf.d/10-monitor.conf with:
Section "Monitor"
Identifier "eDP-1"
Modeline "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
Option "PreferredMode" "1368x768_60.00"
EndSection
Section "Screen"
Identifier "Screen0"
Monitor "eDP-1"
DefaultDepth 24
SubSection "Display"
Modes "1368x768_60.00"
EndSubSection
EndSection
Install xcompmgr, rxvt-unicode and ttf-dejavu
pacman -S xcompmgr rxvt-unicode ttf-dejavu
Place this after the awful request in your ~/.config/awesome/rc.lua:
awful.util.spawn_with_shell("xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &")
Still in rc.lua, modify the terminal from xterm to urxvt
terminal = "urxvt"
Create .Xdefauls with the config you want. Edit this example as you like:
# transparency – true or false (default)
URxvt*transparent: true
# tint with any color; i.e., blue, red, tomato4, olivedrab2, etc.
# some nice listings are at:
# http://www.nisrv.com/drupal/?q=node/11
# http://www.htmlgoodies.com/tutorials/colors/article.php/3478921
#URxvt*tintColor: Blue
# shading – 0 to 99 darkens, 101 to 200 lightens.
# Don’t use with tintColor; just use a darker or lighter color instead.
#URxvt*shading: 40
# scrollback buffer lines – 65535 is max on most machines (64 is default)
URxvt*saveLines: 12000
# font color (default is black)
URxvt*foreground: White
# background color (prior to tinting) (default is white)
URxvt*background: Blue
# Xft (X FreeType) with Bitstream, DejaVu, Liberation, or Terminus fonts:
# Fedora/debian packages: libXft/libxft2
# An anti-aliased font setup with Xft looks fantastic; it can be a bit choppy
# on older systems. You can always turn off anti-aliasing (antialias=false) if
# your terminal is sluggish. Use only ONE of the Xft pairs below:
#
# Xft: Bitstream fonts
# Fedora/debian packages: bitstream-vera-sans-mono-fonts/ttf-bitstream-vera
#URxvt*font: xft:Bitstream Vera Sans Mono:pixelsize=12:antialias=true:hinting=true
#URxvt*boldFont: xft:Bitstream Vera Sans Mono:bold:pixelsize=12:antialias=true:hinting=true
#
# Xft: DejaVu fonts
# Fedora/debian packages: dejavu-sans-mono-fonts/ttf-dejavu
URxvt*font: xft:DejaVu Sans Mono:pixelsize=12:antialias=true:hinting=true
URxvt*boldFont: xft:DejaVu Sans Mono:bold:pixelsize=12:antialias=true:hinting=true
#
# Xft: Liberation fonts
# Fedora/debian packages: liberation-mono-fonts/ttf-liberation
#URxvt*font: xft:Liberation Mono:pixelsize=13:antialias=true:hinting=true
#URxvt*boldFont: xft:Liberation Mono:bold:pixelsize=13:antialias=true:hinting=true
#
# Xft: Terminus fonts
# Fedora/debian packages: terminus-fonts/xfonts-terminus
#URxvt*font: xft:terminus:pixelsize=15
#URxvt*boldFont: xft:terminus:bold:pixelsize=15
# Traditional fonts – a more traditional font setup in lieu of xft
#URxvt*font:-*-courier-medium-r-normal-*-14-*-*-*-*-*-iso8859-1
#URxvt*boldFont:-*-courier-bold-r-normal-*-14-*-*-*-*-*-iso8859-1
# Replace blue folder colors with a lighter shade for clarity. To
# set colored folders and files within urxvt, xterm, and aterm, add
# the following line to your ~/.bashrc ($HOME/.bashrc) file under
# the heading “# User specific aliases and functions”:
# alias ls=”ls -h –color=auto”
URxvt*color4: RoyalBlue
URxvt*color12: RoyalBlue
# scrollbar – true (default) or false
URxvt*scrollBar: false
# scrollbar position – left=false (default) or right=true
URxvt*scrollBar_right: false
# scrollbar style – rxvt (default), plain, next, or xterm
URxvt*scrollstyle: rxvt
#URxvt*borderLess: true
Add this to the top of ~/.config/awesome/rc.lua
vicious = require("vicious")
Now setup your tags. Modify this as you like:
-- {{{ Tags
-- Define a tag table which hold all screen tags.
tags = {
names = {
":: control",
":: dev",
":: www",
":: irc",
":: mail",
":: agenda",
":: im",
":: rss",
":: media "
}
}
for s = 1, screen.count() do
-- Each screen has its own tag table.
-- tags[s] = awful.tag({ 1, 2, 3, 4, 5, 6, 7, 8, 9 }, s, layouts[1])
tags[s] = awful.tag(tags.names, s)
end
-- }}}
Now add some Vicious widgets right before the textclock widget. These are just raw examples, you’ll have some more work to do here.
-- Spacer
spacer = wibox.widget.textbox()
spacer:set_text(' | ')
-- CPU usage (graph)
cpuwidget = awful.widget.graph()
cpuwidget:set_width(50)
cpuwidget:set_background_color("#494B4F")
cpuwidget:set_color({ type = "linear", from = { 0, 0 }, to = { 10,0 }, stops = { {0, "#FF5656"}, {0.5, "#88A175"}, {1, "#AECF96" }}})
vicious.register(cpuwidget, vicious.widgets.cpu, "$1")
-- CPU usage (text)
tcpuwidget = wibox.widget.textbox()
vicious.register(tcpuwidget, vicious.widgets.cpu, "$1%")
-- Memory widget (progressbar)
memwidget = awful.widget.progressbar()
memwidget:set_width(8)
memwidget:set_height(10)
memwidget:set_vertical(true)
memwidget:set_background_color("#494B4F")
memwidget:set_border_color(nil)
memwidget:set_color({ type = "linear", from = { 0, 0 }, to = { 10,0 }, stops = { {0, "#AECF96"}, {0.5, "#88A175"}, {1, "#FF5656"}}})
vicious.register(memwidget, vicious.widgets.mem, "$1", 13)
-- Memory widget (text)
tmemwidget = wibox.widget.textbox()
vicious.register(tmemwidget, vicious.widgets.mem, "$1% ($2MB/$3MB)", 13)
-- Network usage widget
netwidget = wibox.widget.textbox()
vicious.register(netwidget, vicious.widgets.net, '${wlp3s0 down_kb} ${wlp3s0 up_kb}', 3)
--Battery Widget
batt = wibox.widget.textbox()
vicious.register(batt, vicious.widgets.bat, "Batt: $2% Rem: $3", 61, "BAT0")
Now to display the widgets, add the ones you want before right_layout:add(mytextclock)
-- CPU usage (graph)
right_layout:add(cpuwidget)
-- CPU usage (text)
right_layout:add(tcpuwidget)
right_layout:add(spacer)
-- Memory widget (progressbar)
right_layout:add(memwidget)
-- Memory widget (text)
right_layout:add(tmemwidget)
right_layout:add(spacer)
-- Network usage widget
right_layout:add(netwidget)
right_layout:add(spacer)
-- Battery
right_layout:add(batt)
right_layout:add(spacer)
Change wallpaper, adding this to the variable definitions.
theme.wallpaper = "/home/dth/Images/Wallpapers/chicago.jpg"
Start Awesome
startx