Browse Source

Added i3

master
Joshua Wolfe 4 years ago
parent
commit
ce2aee2577
2 changed files with 269 additions and 0 deletions
  1. 103
    0
      i3/bar.rb
  2. 166
    0
      i3/config

+ 103
- 0
i3/bar.rb View File

@@ -0,0 +1,103 @@
#!/usr/bin/env ruby

require 'rubygems'
require 'barr'

class Battery < Barr::Block
def initialize opts={}
super
end
def update!
@output = `acpi --battery`
@percent = Regexp.new('.*?(\\d+)(%)',Regexp::IGNORECASE).match(@output)[1]
percent = @percent.to_i
@time = Regexp.new('(\\d+)(.)(\\d+)',Regexp::IGNORECASE).match(@output).to_s
@charging = `acpi --battery | grep "Charging"`.length > 1 ? true : false

# Background color
case percent
when 90 .. 100
@bgcolor = "#009f2d"
when 80 .. 89
@bgcolor = "#189228"
when 70 .. 79
@bgcolor = "#2F8523"
when 60 .. 69
@bgcolor = "#47781E"
when 50 .. 59
@bgcolor = "#5E6B19"
when 40 .. 49
@bgcolor = "#765D15"
when 30 .. 39
@bgcolor = "#8D5010"
when 20 .. 29
@bgcolor = "#A5430B"
when 10 .. 19
@bgcolor = "#BC3606"
else
@bgcolor = "#D42901"
end

# Icons
if percent >= 90
@icon = "\uf240"
elsif percent >= 60
@icon = "\uf241"
elsif percent >= 40
@icon = "\uf242"
elsif percent > 10
@icon = "\uf243"
else
@icon = "\uf244"
end

if @charging
@icon = "\uf0e7"
end

@output = @percent + '% (' + @time + ')'
end
end

@man = Barr::Manager.new

who = Barr::Blocks::Whoami.new align: :r, icon: "\uf007"

i3 = Barr::Blocks::I3.new(fgcolor: '#FFF',
bgcolor: '#145266',
focus_markers: %w(> <),
interval: 1,
icon: "\uf009")

clock = Barr::Blocks::Clock.new(bgcolor: '#371E5E',
format: '%r - %d %b %Y',
icon: "\uf073",
align: :c)

weather = Barr::Blocks::Temperature.new(bgcolor: '#4A072B',
align: :l,
location: '22664159',
icon: "\uf0c2",
interval: 1500)

hdd = Barr::Blocks::HDD.new bgcolor: '#444444', device: 'sda5', interval: 300, align: :r

local = Barr::Blocks::IP.new device: 'wlp8s0', bgcolor: '#937739', align: :r, icon: "\uf1ce"

bat = Battery.new align: :r

# Left
@man.add i3
@man.add weather

# Right
@man.add hdd
@man.add local
@man.add who
@man.add bat

# Center
@man.add clock

@man.run!

+ 166
- 0
i3/config View File

@@ -0,0 +1,166 @@
# Set desktop resolution to 1920x1080
exec --no-startup-id xrandr --output eDP1 --mode 1920x1080

exec feh --bg-scale ~/Pictures/sakura_road.png
#exec -load ~/.Xresources

# Disable window borders
for_window [class="^.*"] border pixel 0

# Adds gaps
gaps inner 12
gaps outer 0
smart_gaps on

# volume keys
bindsym XF86AudioRaiseVolume exec amixer -D pulse sset Master 2%+
bindsym XF86AudioLowerVolume exec amixer -D pulse sset Master 2%-
bindsym ctrl+Shift+Mod1+Left exec amixer set Master toggle
bindsym ctrl+Shift+Mod1+Right exec amixer set Master toggle

# brightness keys
bindsym XF86MonBrightnessUp exec xbacklight -inc 5
bindsym XF86MonBrightnessDown exec xbacklight -dec 5

set $mod Mod4

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
font pango:monospace 8

# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
#font pango:DejaVu Sans Mono 8

# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

# start a terminal
bindsym $mod+Return exec i3-sensible-terminal

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec rofi -show run -font "snap 10" -o 85
#bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

# change focus
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

# move focused window
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right

# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

# split in horizontal orientation
bindsym $mod+g split h

# split in vertical orientation
bindsym $mod+v split v

# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen toggle

# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split

# toggle tiling / floating
bindsym $mod+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

# focus the parent container
bindsym $mod+a focus parent

# focus the child container
#bindsym $mod+d focus child

# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10

# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10

# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"

# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode

# Pressing left will shrink the window’s width.
# Pressing right will grow the window’s width.
# Pressing up will shrink the window’s height.
# Pressing down will grow the window’s height.
bindsym h resize shrink width 5 px or 5 ppt
bindsym j resize grow height 5 px or 5 ppt
bindsym k resize shrink height 5 px or 5 ppt
bindsym l resize grow width 5 px or 5 ppt

# same bindings, but for the arrow keys
bindsym Left resize shrink width 5 px or 5 ppt
bindsym Down resize grow height 5 px or 5 ppt
bindsym Up resize shrink height 5 px or 5 ppt
bindsym Right resize grow width 5 px or 5 ppt

# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}

bindsym $mod+r mode "resize"

exec_always ~/.config/i3/bar.rb | lemonbar -B "#333333" -f "Roboto Mono Medium:size=11" -f "Font Awesome:size=11" | sh

Loading…
Cancel
Save