Browse Source

Update i3 config, use polybar

master
Yorick van Pelt 3 years ago
parent
commit
f992491eeb
6 changed files with 437 additions and 86 deletions
  1. +0
    -64
      i3/.config/i3status/config
  2. +22
    -21
      i3/i3.nix
  3. +393
    -0
      i3/polybar
  4. +18
    -0
      i3/spotify.sh
  5. +3
    -1
      nix/.nixpkgs/config.nix
  6. +1
    -0
      stow/.config/i3

+ 0
- 64
i3/.config/i3status/config View File

@ -1,64 +0,0 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 5
}
#order += "ipv6"
order += "disk /"
#order += "run_watch DHCP"
#order += "run_watch VPN"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery 0"
order += "cpu_temperature 0"
cpu_temperature 0 {
format = "T:%degrees°C"
}
order += "load"
order += "tztime local"
wireless _first_ {
format_up = "☁%quality@%essid,%ip"
format_down = "☁"
}
ethernet _first_ {
# if you use %speed, i3status requires root privileges
format_up = "E: %ip (%speed)"
format_down = "E"
}
battery 0 {
format = "%status %percentage %remaining"
# hide_seconds = true
}
run_watch DHCP {
pidfile = "/var/run/dhcpcd.pid"
}
run_watch VPN {
pidfile = "/var/run/vpnc/pid"
}
tztime local {
format = "%d/%m %H:%M"
}
load {
format = "%1min"
}
disk "/" {
format = "%avail"
}

+ 22
- 21
i3/i3.nix View File

@ -1,10 +1,17 @@
{writeTextDir, writeScript, lib,
rofi, xss-lock, nitrogen, compton-git, i3status, i3-gaps
,i3lock-color, xset, alsaUtils, light, screenshot_public, xorg, libinput-gestures,
haskellPackages,
haskellPackages, polybar, procps,
with_lock ? true, compton_name ? "default"}:
let
kill-and-restart = pkg: as:
with lib; let
name = head (splitString " " as);
args = concatStringsSep " " (tail (splitString " " as));
in
''exec_always --no-startup-id "pkill ${name}; while pgrep -x ${name} >/dev/null; do sleep 1; done; exec ${pkg}/bin/${name} ${args}"
'';
locker = writeScript "dlock.sh" ''
#!/bin/sh
revert() {
@ -25,7 +32,7 @@ writeTextDir "i3-config" (''
set $mod Mod4
gaps inner 5
gaps outer 5
# gaps outer 5
font pango:Source Code Pro 10
@ -77,6 +84,7 @@ bindsym $mod+Shift+Right move right
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# enter fullscreen mode for the focused container
@ -112,7 +120,7 @@ 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+1 move container to workspace number 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
@ -156,26 +164,16 @@ mode "resize" {
bindsym $mod+r mode "resize"
bindsym $mod+Escape workspace back_and_forth
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
i3bar_command ${i3-gaps}/bin/i3bar -t
status_command ${i3status}/bin/i3status
colors {
background #002b36d9
statusline #839496
}
}
exec --no-startup-id ${nitrogen}/bin/nitrogen --restore
exec --no-startup-id ${compton-git}/bin/compton --config /home/yorick/dotfiles/x/compton_${compton_name}.conf
exec_always --no-startup-id ${nitrogen}/bin/nitrogen --restore
${kill-and-restart compton-git "compton --config /home/yorick/dotfiles/x/compton_${compton_name}.conf"}
'' + (lib.optionalString with_lock ''
exec --no-startup-id ${xorg.xf86inputsynaptics}/bin/syndaemon -i 0.5 -k -t
exec --no-startup-id ${xss-lock}/bin/xss-lock -l -- ${locker}
exec --no-startup-id ${libinput-gestures}/bin/libinput-gestures
exec --no-startup-id ${haskellPackages.arbtt}/bin/arbtt-capture
${kill-and-restart xorg.xf86inputsynaptics "syndaemon -i 0.5 -k -t"}
${kill-and-restart polybar "polybar -c /home/yorick/dotfiles/i3/polybar $(hostname)"}
${kill-and-restart xss-lock "xss-lock -l -- ${locker}"}
${kill-and-restart libinput-gestures "libinput-gestures"}
${kill-and-restart haskellPackages.arbtt "arbtt-capture"}
'') + ''
bindsym XF86MonBrightnessUp exec ${light}/bin/light -A 5
@ -184,6 +182,9 @@ bindsym XF86AudioLowerVolume exec ${alsaUtils}/bin/amixer set Master 1%-
bindsym XF86AudioRaiseVolume exec ${alsaUtils}/bin/amixer set Master 1%+
bindsym XF86AudioMute exec ${alsaUtils}/bin/amixer set Master toggle
bindsym $mod+Shift+s exec --no-startup-id ${screenshot_public}/bin/screenshot_public
workspace_auto_back_and_forth yes
hide_edge_borders smart
for_window [class="URxvt"] border pixel 2
new_window pixel 2
'')

+ 393
- 0
i3/polybar View File

@ -0,0 +1,393 @@
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[colors]
background = #002b36
;background = #222
background-alt = #073642
foreground = ${xrdb:foreground:#222}
;foreground = #dfdfdf
foreground-alt = ${xrdb:foreground:#555}
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
[bar/jarvis]
monitor = eDP-1
width = 100%
height = 40
;offset-x = 1%
;offset-y = 1%
radius = 6.0
fixed-center = true
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 6
line-color = #f00
border-size = 4
border-color = #00000000
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 2
font-0 = FontAwesome:size=20;1
font-1 = FiraMono:size=20;0
modules-left = i3 xwindow
modules-center =
modules-right = spotify filesystem volume backlight-acpi wlan battery temperature date
tray-position = right
tray-padding = 2
tray-scale = 1.0
;tray-transparent = true
;tray-background = #0063ff
;wm-restack = bspwm
;wm-restack = i3
;override-redirect = true
scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev
[module/xwindow]
type = internal/xwindow
label = %title:0:90:...%
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-prefix-underline = ${colors.secondary}
label-layout = %layout%
label-layout-underline = ${colors.secondary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}
[module/bspwm]
type = internal/bspwm
label-focused = %index%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %index%
label-occupied-padding = 2
label-urgent = %index%!
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
label-empty = %index%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false
;strip-wsnumbers = true
; Only show workspaces on the same output as the bar
;pin-workspaces = true
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
; focused = Active workspace on focused monitor
label-focused = %index% %icon%
label-focused-background = ${module/bspwm.label-focused-background}
label-focused-underline = ${module/bspwm.label-focused-underline}
label-focused-padding = ${module/bspwm.label-focused-padding}
; unfocused = Inactive workspace on any monitor
label-unfocused = %index% %icon%
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
; visible = Active workspace on unfocused monitor
label-visible = %index% %icon%
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
; urgent = Workspace with urgency hint set
label-urgent = %index% %icon%
label-urgent-background = ${module/bspwm.label-urgent-background}
label-urgent-padding = ${module/bspwm.label-urgent-padding}
ws-icon-0 = 1;
ws-icon-1 = 2;
ws-icon-2 = 3;
ws-icon-default = 
ws-icon-3 = 6;
ws-icon-4 = 7;
;
;
[module/mpd]
type = internal/mpd
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
icon-prev = 
icon-stop = 
icon-play = 
icon-pause = 
icon-next = 
label-song-maxlen = 25
label-song-ellipsis = true
[module/xbacklight]
type = internal/xbacklight
format = <label>
label =  %percentage%%
format-underline = #9f78e1
bar-width = 10
bar-indicator = |
bar-indicator-foreground = #ff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = %percentage%%
[module/spotify]
type = custom/script
exec = ~/dotfiles/i3/spotify.sh
interval =2
;format-underline = #FF1DB954
[module/memory]
type = internal/memory
interval = 2
format-prefix = "m "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %percentage_used%%
[module/wlan]
type = internal/network
interface = wlp58s0
interval = 3.0
format-connected = 
format-connected-underline = #9f78e1
label-connected = %essid%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-foreground = ${colors.foreground-alt}
[module/eth]
type = internal/network
interface = net0
interval = 3.0
format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
label-connected = %local_ip%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date =
date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-prefix = 
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
label = %date% %time%
[module/volume]
type = internal/volume
format-volume = <ramp-volume> <label-volume>
label-volume = %percentage%%
label-volume-foreground = ${root.foreground}
ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 
format-muted-prefix = " "
;
format-muted-foreground = ${colors.foreground-alt}
label-muted = muted
format-volume-underline = #55aa55
format-muted-underline = #f5a70a
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[module/battery]
type = internal/battery
battery = BAT0
adapter = ADP1
full-at = 100
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
time-format = %H:%M
label-charging = %percentage%% - %time%
label-discharging = %percentage%% - %time%
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}
format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-foreground = ${colors.foreground-alt}
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-framerate = 500
animation-charging-foreground = ${colors.foreground-alt}
[module/temperature]
type = internal/temperature
thermal-zone = 1
warn-temperature = 100
format = <ramp> <label>
format-underline = #f50a4d
format-warn = <ramp> <label-warn>
format-warn-underline = ${self.format-underline}
label = %temperature%
label-warn = %temperature%
label-warn-foreground = ${colors.secondary}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-3 = 
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
format-spacing = 1
label-open = 
label-open-foreground = ${colors.secondary}
label-close =  cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = power off
menu-0-1-exec = menu-open-2
menu-0-2 = suspend
menu-0-2-exec = systemctl suspend
menu-1-0 = cancel
menu-1-0-exec = menu-open-0
menu-1-1 = reboot
menu-1-1-exec = reboot
menu-2-0 = poweroff
menu-2-0-exec = poweroff
menu-2-1 = cancel
menu-2-1-exec = menu-open-0
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
[global/wm]
margin-top = 5
margin-bottom = 5
; vim:ft=dosini

+ 18
- 0
i3/spotify.sh View File

@ -0,0 +1,18 @@
#!/bin/sh
#Spotify
spotify_status(){
current_track=$(playerctl -p spotify metadata xesam:title)
album=$(playerctl -p spotify metadata xesam:artist)
echo -e $album" - " $current_track
}
spotify_control(){
current_status=$(playerctl -p spotify status)
if echo $current_status | grep -q "Playing"
then echo "%{F#FF1DB954}%{A:i3-msg [class=Spotify] focus:}%{A}%{F-} %{A:playerctl -p spotify previous:}  %{A}%{A:playerctl -p spotify play-pause:} $(spotify_status) %{A}%{A:playerctl -p spotify next:}  %{A}"
elif echo $current_status | grep -q "Paused"
then echo "%{F#FF1DB954}%{A:i3-msg [class=Spotify] focus:}%{A}%{F-} %{A:playerctl -p spotify previous:}  %{A}%{A:playerctl -p spotify play-pause:}  $(spotify_status) %{A}%{A:playerctl -p spotify next:}  %{A}"
fi
}
spotify_control

+ 3
- 1
nix/.nixpkgs/config.nix View File

@ -121,7 +121,7 @@
sha256 = "0h4nzx46kcsp6b1i2lm9y4d1w1icrpvjl8g1h3wbpa5x4crh4703";
};
});
polybar = pkgs.polybar.override {i3GapsSupport = true; githubSupport = false;};
yscripts = pkgs.callPackage ../dotfiles/bin {};
@ -138,6 +138,8 @@
xorg.xrandr
pavucontrol
light nitrogen
# wpa_supplicant_gui
xclip siji fira-mono playerctl font-awesome-ttf
];
scripts = mkEnv "y-scripts" [
peageprint


+ 1
- 0
stow/.config/i3 View File

@ -0,0 +1 @@
../../i3/.config/i3

Loading…
Cancel
Save