From f992491eeb9a72df846ab2d24579f62f26f1d415 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 15 Aug 2017 01:29:33 +0200 Subject: [PATCH] Update i3 config, use polybar --- i3/.config/i3status/config | 64 ------ i3/i3.nix | 43 ++-- i3/polybar | 393 +++++++++++++++++++++++++++++++++++++ i3/spotify.sh | 18 ++ nix/.nixpkgs/config.nix | 4 +- stow/.config/i3 | 1 + 6 files changed, 437 insertions(+), 86 deletions(-) delete mode 100644 i3/.config/i3status/config create mode 100644 i3/polybar create mode 100755 i3/spotify.sh create mode 120000 stow/.config/i3 diff --git a/i3/.config/i3status/config b/i3/.config/i3status/config deleted file mode 100644 index f5fd7c8..0000000 --- a/i3/.config/i3status/config +++ /dev/null @@ -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" -} diff --git a/i3/i3.nix b/i3/i3.nix index 5f6f582..3203d75 100644 --- a/i3/i3.nix +++ b/i3/i3.nix @@ -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 '') diff --git a/i3/polybar b/i3/polybar new file mode 100644 index 0000000..1cc643d --- /dev/null +++ b/i3/polybar @@ -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 = +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 = + +icon-prev =  +icon-stop =  +icon-play =  +icon-pause =  +icon-next =  + +label-song-maxlen = 25 +label-song-ellipsis = true + +[module/xbacklight] +type = internal/xbacklight + +format =