aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
-rw-r--r--Makefile11
-rwxr-xr-xbasics/.bin/battery-monitor41
-rw-r--r--basics/.config/dunst/dunstrc326
-rw-r--r--basics/.config/kitty/kitty.conf (renamed from i3wm/.config/kitty/kitty.conf)133
-rw-r--r--basics/.config/rofi/config2
m---------basics/.config/rofi/themes/gruvbox0
-rw-r--r--basics/.config/systemd/user/battery-monitor.service13
-rw-r--r--basics/.config/systemd/user/emacs.service13
-rw-r--r--basics/.config/systemd/user/ssh-agent.service10
-rw-r--r--git/.gitconfig2
-rwxr-xr-xi3wm/.bin/rofiworkspace4
-rw-r--r--i3wm/.config/i3/config57
-rw-r--r--i3wm/.config/polybar/config84
-rwxr-xr-xi3wm/.config/polybar/launch.sh11
-rw-r--r--i3wm/.config/rofi/config1
-rwxr-xr-xx/.Xresources2
-rw-r--r--x/.gruvbox-dark.xresources36
-rwxr-xr-xx/.xinitrc3
-rwxr-xr-xzsh/.zprofile5
-rw-r--r--zsh/.zshrc12
21 files changed, 635 insertions, 134 deletions
diff --git a/.gitmodules b/.gitmodules
index 9857a8e..8757751 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,6 @@
[submodule "spacemacs/.emacs.d"]
path = spacemacs/.emacs.d
url = https://github.com/syl20bnr/spacemacs
+[submodule "basics/.config/rofi/themes/gruvbox"]
+ path = basics/.config/rofi/themes/gruvbox
+ url = https://github.com/bardisty/gruvbox-rofi
diff --git a/Makefile b/Makefile
index ab64726..59b9ee0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,11 @@
-all: emacs git i3wm vim x zsh
+all: emacs git i3wm vim x zsh basics
clean: uninstall_emacs uninstall_spacemacs \
uninstall_git uninstall_i3wm \
- uninstall_vim uninstall_x uninstall_zsh
+ uninstall_vim uninstall_x uninstall_zsh \
+ uninstall_basics
-.PHONY: emacs spacemacs git i3wm vim x zsh
+.PHONY: emacs spacemacs git i3wm vim x zsh basics
emacs:
stow -t ~ emacs
@@ -20,6 +21,8 @@ x:
stow -t ~ x
zsh:
stow -t ~ zsh
+basics:
+ stow -t ~ basics
uninstall_emacs:
stow -Dt ~ emacs
@@ -35,3 +38,5 @@ uninstall_x:
stow -Dt ~ x
uninstall_zsh:
stow -Dt ~ zsh
+uninstall_basics:
+ stow -Dt ~ basics
diff --git a/basics/.bin/battery-monitor b/basics/.bin/battery-monitor
new file mode 100755
index 0000000..ff1ef8b
--- /dev/null
+++ b/basics/.bin/battery-monitor
@@ -0,0 +1,41 @@
+battery_level=`acpi -b | cut -d ' ' -f 4 | grep -o '[0-9]*'`
+battery_state=$(acpi | grep 'Battery' | sed 's/Battery\s[0-9]*: //' | sed 's/, [0-9][0-9]*\%.*//')
+battery_remaining=$(acpi | grep -oh '[0-9:]* remaining' | sed 's/:\w\w remaining$/ Minutes/' | sed 's/00://' | sed 's/:/h /')
+
+if [ ! -f "/tmp/.battery" ]; then
+ echo "$battery_level" > /tmp/.battery
+ echo "$battery_state" >> /tmp/.battery
+ exit
+fi
+
+previous_battery_level=$(cat /tmp/.battery | head -n 1)
+previous_battery_state=$(cat /tmp/.battery | tail -n 1)
+echo "$battery_level" > /tmp/.battery
+echo "$battery_state" >> /tmp/.battery
+
+checkBatteryLevel() {
+ if [ $battery_state != "Discharging" ] || [ "${battery_level}" == "${previous_battery_level}" ]; then
+ exit
+ fi
+
+ if [ $battery_level -le 3 ]; then
+ sudo systemctl suspend
+ elif [ $battery_level -le 5 ]; then
+ notify-send "Low Battery" "Your computer will suspend soon unless plugged into a power outlet." -u critical
+ elif [ $battery_level -le 10 ]; then
+ notify-send "Low Battery" "${battery_level}% (${battery_remaining}) of battery remaining." -u normal
+ fi
+}
+
+checkBatteryStateChange() {
+ if [ "$battery_state" != "Discharging" ] && [ "$previous_battery_state" == "Discharging" ]; then
+ notify-send "Charging" "Battery is now plugged in." -u low
+ fi
+
+ if [ "$battery_state" == "Discharging" ] && [ "$previous_battery_state" != "Discharging" ]; then
+ notify-send "Power Unplugged" "Your computer has been disconnected from power." -u low
+ fi
+}
+
+checkBatteryStateChange
+checkBatteryLevel \ No newline at end of file
diff --git a/basics/.config/dunst/dunstrc b/basics/.config/dunst/dunstrc
new file mode 100644
index 0000000..74f0525
--- /dev/null
+++ b/basics/.config/dunst/dunstrc
@@ -0,0 +1,326 @@
+[global]
+ ### Display ###
+
+ # Which monitor should the notifications be displayed on.
+ monitor = 0
+
+ # Display notification on focused monitor. Possible modes are:
+ # mouse: follow mouse pointer
+ # keyboard: follow window with keyboard focus
+ # none: don't follow anything
+ #
+ # "keyboard" needs a window manager that exports the
+ # _NET_ACTIVE_WINDOW property.
+ # This should be the case for almost all modern window managers.
+ #
+ # If this option is set to mouse or keyboard, the monitor option
+ # will be ignored.
+ follow = mouse
+
+ # The geometry of the window:
+ # [{width}]x{height}[+/-{x}+/-{y}]
+ # The geometry of the message window.
+ # The height is measured in number of notifications everything else
+ # in pixels. If the width is omitted but the height is given
+ # ("-geometry x2"), the message window expands over the whole screen
+ # (dmenu-like). If width is 0, the window expands to the longest
+ # message displayed. A positive x is measured from the left, a
+ # negative from the right side of the screen. Y is measured from
+ # the top and down respectively.
+ # The width can be negative. In this case the actual width is the
+ # screen width minus the width defined in within the geometry option.
+ geometry = "300x5-10+80"
+
+ # Show how many messages are currently hidden (because of geometry).
+ indicate_hidden = yes
+
+ # Shrink window if it's smaller than the width. Will be ignored if
+ # width is 0.
+ shrink = no
+
+ # The transparency of the window. Range: [0; 100].
+ # This option will only work if a compositing window manager is
+ # present (e.g. xcompmgr, compiz, etc.).
+ transparency = 0
+
+ # The height of the entire notification. If the height is smaller
+ # than the font height and padding combined, it will be raised
+ # to the font height and padding.
+ notification_height = 0
+
+ # Draw a line of "separator_height" pixel height between two
+ # notifications.
+ # Set to 0 to disable.
+ separator_height = 2
+
+ # Padding between text and separator.
+ padding = 8
+
+ # Horizontal padding.
+ horizontal_padding = 8
+
+ # Defines width in pixels of frame around the notification window.
+ # Set to 0 to disable.
+ frame_width = 3
+
+ # Defines color of the frame around the notification window.
+ frame_color = "#aaaaaa"
+
+ # Define a color for the separator.
+ # possible values are:
+ # * auto: dunst tries to find a color fitting to the background;
+ # * foreground: use the same color as the foreground;
+ # * frame: use the same color as the frame;
+ # * anything else will be interpreted as a X color.
+ separator_color = frame
+
+ # Sort messages by urgency.
+ sort = yes
+
+ # Don't remove messages, if the user is idle (no mouse or keyboard input)
+ # for longer than idle_threshold seconds.
+ # Set to 0 to disable.
+ # Transient notifications ignore this setting.
+ idle_threshold = 120
+
+ ### Text ###
+
+ font = Monospace 8
+
+ # The spacing between lines. If the height is smaller than the
+ # font height, it will get raised to the font height.
+ line_height = 0
+
+ # Possible values are:
+ # full: Allow a small subset of html markup in notifications:
+ # <b>bold</b>
+ # <i>italic</i>
+ # <s>strikethrough</s>
+ # <u>underline</u>
+ #
+ # For a complete reference see
+ # <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
+ #
+ # strip: This setting is provided for compatibility with some broken
+ # clients that send markup even though it's not enabled on the
+ # server. Dunst will try to strip the markup but the parsing is
+ # simplistic so using this option outside of matching rules for
+ # specific applications *IS GREATLY DISCOURAGED*.
+ #
+ # no: Disable markup parsing, incoming notifications will be treated as
+ # plain text. Dunst will not advertise that it has the body-markup
+ # capability if this is set as a global setting.
+ #
+ # It's important to note that markup inside the format option will be parsed
+ # regardless of what this is set to.
+ markup = full
+
+ # The format of the message. Possible variables are:
+ # %a appname
+ # %s summary
+ # %b body
+ # %i iconname (including its path)
+ # %I iconname (without its path)
+ # %p progress value if set ([ 0%] to [100%]) or nothing
+ # %n progress value if set without any extra characters
+ # %% Literal %
+ # Markup is allowed
+ format = "<b>%s</b>\n%b"
+
+ # Alignment of message text.
+ # Possible values are "left", "center" and "right".
+ alignment = left
+
+ # Show age of message if message is older than show_age_threshold
+ # seconds.
+ # Set to -1 to disable.
+ show_age_threshold = 60
+
+ # Split notifications into multiple lines if they don't fit into
+ # geometry.
+ word_wrap = yes
+
+ # When word_wrap is set to no, specify where to ellipsize long lines.
+ # Possible values are "start", "middle" and "end".
+ ellipsize = middle
+
+ # Ignore newlines '\n' in notifications.
+ ignore_newline = no
+
+ # Merge multiple notifications with the same content
+ stack_duplicates = true
+
+ # Hide the count of merged notifications with the same content
+ hide_duplicate_count = false
+
+ # Display indicators for URLs (U) and actions (A).
+ show_indicators = yes
+
+ ### Icons ###
+
+ # Align icons left/right/off
+ icon_position = off
+
+ # Scale larger icons down to this size, set to 0 to disable
+ max_icon_size = 32
+
+ # Paths to default icons.
+ icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/
+
+ ### History ###
+
+ # Should a notification popped up from history be sticky or timeout
+ # as if it would normally do.
+ sticky_history = yes
+
+ # Maximum amount of notifications kept in history
+ history_length = 20
+
+ ### Misc/Advanced ###
+
+ # dmenu path.
+ dmenu = /usr/bin/dmenu -p dunst:
+
+ # Browser for opening urls in context menu.
+ browser = /usr/bin/firefox -new-tab
+
+ # Always run rule-defined scripts, even if the notification is suppressed
+ always_run_script = true
+
+ # Define the title of the windows spawned by dunst
+ title = Dunst
+
+ # Define the class of the windows spawned by dunst
+ class = Dunst
+
+ # Print a notification on startup.
+ # This is mainly for error detection, since dbus (re-)starts dunst
+ # automatically after a crash.
+ startup_notification = false
+
+ ### Legacy
+
+ # Use the Xinerama extension instead of RandR for multi-monitor support.
+ # This setting is provided for compatibility with older nVidia drivers that
+ # do not support RandR and using it on systems that support RandR is highly
+ # discouraged.
+ #
+ # By enabling this setting dunst will not be able to detect when a monitor
+ # is connected or disconnected which might break follow mode if the screen
+ # layout changes.
+ force_xinerama = false
+
+# Experimental features that may or may not work correctly. Do not expect them
+# to have a consistent behaviour across releases.
+[experimental]
+ # Calculate the dpi to use on a per-monitor basis.
+ # If this setting is enabled the Xft.dpi value will be ignored and instead
+ # dunst will attempt to calculate an appropriate dpi value for each monitor
+ # using the resolution and physical size. This might be useful in setups
+ # where there are multiple screens with very different dpi values.
+ per_monitor_dpi = false
+
+[shortcuts]
+
+ # Shortcuts are specified as [modifier+][modifier+]...key
+ # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
+ # "mod3" and "mod4" (windows-key).
+ # Xev might be helpful to find names for keys.
+
+ # Close notification.
+ close = ctrl+space
+
+ # Close all notifications.
+ close_all = ctrl+shift+space
+
+ # Redisplay last message(s).
+ # On the US keyboard layout "grave" is normally above TAB and left
+ # of "1". Make sure this key actually exists on your keyboard layout,
+ # e.g. check output of 'xmodmap -pke'
+ history = ctrl+grave
+
+ # Context menu.
+ context = ctrl+shift+period
+
+[urgency_low]
+ # IMPORTANT: colors have to be defined in quotation marks.
+ # Otherwise the "#" and following would be interpreted as a comment.
+ background = "#222222"
+ foreground = "#888888"
+ timeout = 10
+ # Icon for notifications with low urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_normal]
+ background = "#285577"
+ foreground = "#ffffff"
+ timeout = 10
+ # Icon for notifications with normal urgency, uncomment to enable
+ #icon = /path/to/icon
+
+[urgency_critical]
+ background = "#900000"
+ foreground = "#ffffff"
+ frame_color = "#ff0000"
+ timeout = 0
+ # Icon for notifications with critical urgency, uncomment to enable
+ #icon = /path/to/icon
+
+# Every section that isn't one of the above is interpreted as a rules to
+# override settings for certain messages.
+# Messages can be matched by "appname", "summary", "body", "icon", "category",
+# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
+# "background", "new_icon" and "format".
+# Shell-like globbing will get expanded.
+#
+# SCRIPTING
+# You can specify a script that gets run when the rule matches by
+# setting the "script" option.
+# The script will be called as follows:
+# script appname summary body icon urgency
+# where urgency can be "LOW", "NORMAL" or "CRITICAL".
+#
+# NOTE: if you don't want a notification to be displayed, set the format
+# to "".
+# NOTE: It might be helpful to run dunst -print in a terminal in order
+# to find fitting options for rules.
+
+#[espeak]
+# summary = "*"
+# script = dunst_espeak.sh
+
+#[script-test]
+# summary = "*script*"
+# script = dunst_test.sh
+
+#[ignore]
+# # This notification will not be displayed
+# summary = "foobar"
+# format = ""
+
+#[history-ignore]
+# # This notification will not be saved in history
+# summary = "foobar"
+# history_ignore = yes
+
+#[signed_on]
+# appname = Pidgin
+# summary = "*signed on*"
+# urgency = low
+#
+#[signed_off]
+# appname = Pidgin
+# summary = *signed off*
+# urgency = low
+#
+#[says]
+# appname = Pidgin
+# summary = *says*
+# urgency = critical
+#
+#[twitter]
+# appname = Pidgin
+# summary = *twitter.com*
+# urgency = normal
+#
+# vim: ft=cfg
diff --git a/i3wm/.config/kitty/kitty.conf b/basics/.config/kitty/kitty.conf
index 5f2b4a6..59c52be 100644
--- a/i3wm/.config/kitty/kitty.conf
+++ b/basics/.config/kitty/kitty.conf
@@ -7,7 +7,7 @@
#: characters.
-font_family Source Code Pro
+font_family Fira Code
bold_font auto
italic_font auto
bold_italic_font auto
@@ -346,77 +346,66 @@ background #002b36
background_opacity 0.85
dynamic_background_opacity no
-#: The opacity of the background. A number between 0 and 1, where 1 is
-#: opaque and 0 is fully transparent. This will only work if
-#: supported by the OS (for instance, when using a compositor under
-#: X11). Note that it only sets the default background color's
-#: opacity. This is so that things like the status bar in vim,
-#: powerline prompts, etc. still look good. But it means that if you
-#: use a color theme with a background color in your editor, it will
-#: not be rendered as transparent. Instead you should change the
-#: default background color in your kitty config and not use a
-#: background color in the editor color scheme. Or use the escape
-#: codes to set the terminals default colors in a shell script to
-#: launch your editor. Be aware that using a value less than 1.0 is a
-#: (possibly significant) performance hit. If you want to dynamically
-#: change transparency of windows set dynamic_background_opacity to
-#: yes (this is off by default as it has a performance cost)
-
dim_opacity 0.4
-#: How much to dim text that has the DIM/FAINT attribute set. One
-#: means no dimming and zero means fully dimmed (i.e. invisible).
-
-selection_foreground #93a1a1
-selection_background #586e75
-#:839496
-
-#: The foreground and background for text selected with the mouse
-
-
-#: The 16 terminal colors. There are 8 basic colors, each color has a
-#: dull and bright version. You can also set the remaining colors from
-#: the 256 color table as color16 to color255.
-
-color0 #073642
-color8 #002b36
-
-#: black
-
-color1 #dc322f
-color9 #cb4b16
-
-#: red
-
-color2 #859900
-color10 #586e75
-
-#: green
-
-color3 #b58900
-color11 #657b83
-
-#: yellow
-
-color4 #268bd2
-color12 #839496
-
-#: blue
-
-color5 #d33682
-color13 #6c71c4
-
-#: magenta
-
-color6 #2aa198
-color14 #93a1a1
-
-#: cyan
-
-color7 #eee8d5
-color15 #fdf6e3
-
-#: white
+#: Solarized
+#selection_foreground #93a1a1
+#selection_background #586e75
+#
+#color0 #073642
+#color8 #002b36
+#
+#color1 #dc322f
+#color9 #cb4b16
+#
+#color2 #859900
+#color10 #586e75
+#
+#color3 #b58900
+#color11 #657b83
+#
+#color4 #268bd2
+#color12 #839496
+#
+#color5 #d33682
+#color13 #6c71c4
+#
+#color6 #2aa198
+#color14 #93a1a1
+#
+#color7 #eee8d5
+#color15 #fdf6e3
+
+# hard contrast: background = #1d2021
+# background #282828
+# soft contrast: background = #32302f
+background #32302f
+foreground #ebdbb2
+#foreground_bold = #ebdbb2
+
+color0 #282828
+color8 #928374
+
+color1 #cc241d
+color9 #fb4934
+
+color2 #98971a
+color10 #b8bb26
+
+color3 #d79921
+color11 #fabd2f
+
+color4 #458588
+color12 #83a598
+
+color5 #b16286
+color13 #d3869b
+
+color6 #689d6a
+color14 #8ec07c
+
+color7 #a89984
+color15 #ebdbb2
#: }}}
@@ -448,7 +437,7 @@ close_on_child_death no
#: to yes means that any background processes still using the terminal
#: can fail silently because their stdout/stderr/stdin no longer work.
-allow_remote_control no
+allow_remote_control yes
#: Allow other programs to control kitty. If you turn this on other
#: programs can control all aspects of kitty, including sending text
@@ -475,7 +464,7 @@ clipboard_control write-clipboard write-primary
#: functionality is a security risk as it means that any program, even
#: one running on a remote server via SSH can read your clipboard.
-term xterm-kitty
+term xterm-256color
#: The value of the TERM environment variable to set. Changing this
#: can break many terminal programs, only change it if you know what
diff --git a/basics/.config/rofi/config b/basics/.config/rofi/config
new file mode 100644
index 0000000..51b43ac
--- /dev/null
+++ b/basics/.config/rofi/config
@@ -0,0 +1,2 @@
+rofi.modi: window,run,ssh,drun
+rofi.theme: ~/.config/rofi/themes/gruvbox/gruvbox-dark-soft.rasi \ No newline at end of file
diff --git a/basics/.config/rofi/themes/gruvbox b/basics/.config/rofi/themes/gruvbox
new file mode 160000
+Subproject 8f3d68d70ecb19ded014cf5cde53ab9857728f6
diff --git a/basics/.config/systemd/user/battery-monitor.service b/basics/.config/systemd/user/battery-monitor.service
new file mode 100644
index 0000000..c672ac5
--- /dev/null
+++ b/basics/.config/systemd/user/battery-monitor.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Battery Monitor
+
+[Service]
+Type=simple
+Environment=DISPLAY=:0
+Environment=XAUTHORITY=%h/.Xauthority
+ExecStart=/bin/bash %h/.bin/battery-monitor
+Restart=always
+RestartSec=10
+
+[Install]
+WantedBy=default.target
diff --git a/basics/.config/systemd/user/emacs.service b/basics/.config/systemd/user/emacs.service
new file mode 100644
index 0000000..f3d7df9
--- /dev/null
+++ b/basics/.config/systemd/user/emacs.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Emacs text editor
+Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/emacs --fg-daemon
+ExecStop=/usr/bin/emacsclient --eval "(kill-emacs)"
+Environment=SSH_AUTH_SOCK=%t/keyring/ssh
+Restart=on-failure
+
+[Install]
+WantedBy=default.target
diff --git a/basics/.config/systemd/user/ssh-agent.service b/basics/.config/systemd/user/ssh-agent.service
new file mode 100644
index 0000000..9428410
--- /dev/null
+++ b/basics/.config/systemd/user/ssh-agent.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=SSH key agent
+
+[Service]
+Type=simple
+Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
+ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
+
+[Install]
+WantedBy=default.target
diff --git a/git/.gitconfig b/git/.gitconfig
index 974d3be..fb5895c 100644
--- a/git/.gitconfig
+++ b/git/.gitconfig
@@ -5,3 +5,5 @@
ui = true
[core]
excludesfile = ~/.gitignore_global
+[credential]
+ helper = cache --timeout=600
diff --git a/i3wm/.bin/rofiworkspace b/i3wm/.bin/rofiworkspace
new file mode 100755
index 0000000..2b808e9
--- /dev/null
+++ b/i3wm/.bin/rofiworkspace
@@ -0,0 +1,4 @@
+#!/usr/bin/env bash
+
+NAME=`rofi -dmenu`
+i3-msg workspace $NAME \ No newline at end of file
diff --git a/i3wm/.config/i3/config b/i3wm/.config/i3/config
index 714498b..c918ff2 100644
--- a/i3wm/.config/i3/config
+++ b/i3wm/.config/i3/config
@@ -62,10 +62,17 @@ bindsym $mod+semicolon focus right
# alternatively, you can use the cursor keys:
#bindsym $mod+Left focus left
bindsym $mod+Left workspace prev_on_output
+bindsym $mod+Control+Left workspace prev
+bindsym $mod+Shift+Control+Left move workspace to output left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
#bindsym $mod+Right focus right
bindsym $mod+Right workspace next_on_output
+bindsym $mod+Control+Right workspace next
+bindsym $mod+Shift+Control+Right move workspace to output right
+bindsym $mod+b workspace back_and_forth
+bindsym $mod+Shift+b move container to workspace back_and_forth
+bindsym $mod+n exec --no-startup-id rofiworkspace
# move focused window
bindsym $mod+Shift+j move left
@@ -105,18 +112,30 @@ bindsym $mod+a focus parent
# focus the child container
#bindsym $mod+d focus child
+bindsym $mod+backslash move workspace to output right
+
# Define names for default workspaces for which we configure key bindings later on.
# We use variables to avoid repeating the names in multiple places.
-set $ws1 "1"
-set $ws2 "2"
-set $ws3 "3"
-set $ws4 "4"
-set $ws5 "5"
-set $ws6 "6"
-set $ws7 "7"
-set $ws8 "8"
-set $ws9 "9"
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
set $ws10 "10"
+set $ws11 "11"
+set $ws12 "12"
+set $ws13 "13"
+set $ws14 "14"
+set $ws15 "15"
+set $ws16 "16"
+set $ws17 "17"
+set $ws18 "18"
+set $ws19 "19"
+set $ws20 "20"
# switch to workspace
bindsym $mod+1 workspace $ws1
@@ -129,6 +148,16 @@ bindsym $mod+7 workspace $ws7
bindsym $mod+8 workspace $ws8
bindsym $mod+9 workspace $ws9
bindsym $mod+0 workspace $ws10
+bindsym $mod+Control+1 workspace $ws11
+bindsym $mod+Control+2 workspace $ws12
+bindsym $mod+Control+3 workspace $ws13
+bindsym $mod+Control+4 workspace $ws14
+bindsym $mod+Control+5 workspace $ws15
+bindsym $mod+Control+6 workspace $ws16
+bindsym $mod+Control+7 workspace $ws17
+bindsym $mod+Control+8 workspace $ws18
+bindsym $mod+Control+9 workspace $ws19
+bindsym $mod+Control+0 workspace $ws20
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $ws1
@@ -141,6 +170,16 @@ bindsym $mod+Shift+7 move container to workspace $ws7
bindsym $mod+Shift+8 move container to workspace $ws8
bindsym $mod+Shift+9 move container to workspace $ws9
bindsym $mod+Shift+0 move container to workspace $ws10
+bindsym $mod+Control+Shift+1 move container to workspace $ws11
+bindsym $mod+Control+Shift+2 move container to workspace $ws12
+bindsym $mod+Control+Shift+3 move container to workspace $ws13
+bindsym $mod+Control+Shift+4 move container to workspace $ws14
+bindsym $mod+Control+Shift+5 move container to workspace $ws15
+bindsym $mod+Control+Shift+6 move container to workspace $ws16
+bindsym $mod+Control+Shift+7 move container to workspace $ws17
+bindsym $mod+Control+Shift+8 move container to workspace $ws18
+bindsym $mod+Control+Shift+9 move container to workspace $ws19
+bindsym $mod+Control+Shift+0 move container to workspace $ws20
# reload the configuration file
bindsym $mod+Shift+c reload
diff --git a/i3wm/.config/polybar/config b/i3wm/.config/polybar/config
index 21b5a30..74c9e85 100644
--- a/i3wm/.config/polybar/config
+++ b/i3wm/.config/polybar/config
@@ -34,7 +34,7 @@ height = 30
;offset-x = 1%
;offset-y = 1%
radius = 6.0
-fixed-center = true
+fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
@@ -46,12 +46,9 @@ border-size = 10
border-bottom-size = 0
border-color = #00000000
-padding-left = 0
+padding-left = 2
padding-right = 2
-module-margin-left = 1
-module-margin-right = 2
-
font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1
@@ -59,30 +56,26 @@ font-3 = "Font Awesome 5 Brands:style=Regular:pixelsize=8;1"
font-4 = "Font Awesome 5 Free:style=Regular:pixelsize=8;1"
font-5 = "Font Awesome 5 Free:style=Solid:pixelsize=8;1"
-modules-left = hostname xwindow
-modules-center = spotify
-modules-right = taskwarrior
-
tray-position = right
tray-padding = 2
;tray-transparent = true
;tray-background = #0063ff
tray-scale = 1
+tray-detached = false
-;wm-restack = bspwm
wm-restack = i3
-
override-redirect = false
-;scroll-up = bspwm-desknext
-;scroll-down = bspwm-deskprev
-
scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev
-
cursor-click = pointer
cursor-scroll = ns-resize
+module-margin-left = 2
+module-margin-right = 2
+modules-left = hostname xwindow
+modules-center =
+modules-right = filesystem backlight pulseaudio xkeyboard memory cpu wlan eth battery temperature
[bar/topbar-second]
monitor = ${env:MONITOR:eDP-1}
@@ -90,7 +83,7 @@ width = 100%
height = 30
;offset-x = 1%
;offset-y = 0
-;radius = 1.0
+radius = 6.0
fixed-center = true
background = ${colors.background}
@@ -107,9 +100,6 @@ border-color = #00000000
padding-left = 2
padding-right = 2
-module-margin-left = 1
-module-margin-right = 2
-
font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1
@@ -117,20 +107,20 @@ font-3 = "Font Awesome 5 Brands:style=Regular:pixelsize=8;1"
font-4 = "Font Awesome 5 Free:style=Regular:pixelsize=8;1"
font-5 = "Font Awesome 5 Free:style=Solid:pixelsize=8;1"
-modules-left = i3
-modules-center =
-modules-right = filesystem backlight pulseaudio xkeyboard memory cpu wlan eth battery temperature date
-
wm-restack = i3
-
override-redirect = false
scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev
-
cursor-click = pointer
cursor-scroll = ns-resize
+module-margin-left = 2
+module-margin-right = 2
+modules-left = i3
+modules-center = spotify
+modules-right = taskwarrior date
+
[module/hostname]
type = custom/script
interval = 256
@@ -153,7 +143,7 @@ click-left = xte 'key XF86AudioPlay'
click-middle = xte 'key XF86AudioNext'
scroll-up = xte 'key XF86AudioNext'
scroll-down = xte 'key XF86AudioPrev'
-label-maxlen = 30
+label-maxlen = 120
label-ellipsis = true
[module/xwindow]
@@ -211,36 +201,36 @@ label-empty-padding = 2
[module/i3]
type = internal/i3
+; Only show workspaces on the same output as the bar
+pin-workspaces = true
+strip-wsnumbers = true
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false
-; Only show workspaces on the same output as the bar
-;pin-workspaces = true
-
label-mode = %mode%
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
; focused = Active workspace on focused monitor
-label-focused = %index%
+label-focused = %name%
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%
+label-unfocused = %name%
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
; visible = Active workspace on unfocused monitor
-label-visible = %index%
+label-visible = %name%
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%
+label-urgent = %name%
label-urgent-background = ${module/bspwm.label-urgent-background}
label-urgent-padding = ${module/bspwm.label-urgent-padding}
@@ -465,22 +455,28 @@ format-full = 
format-full-foreground = ${colors.foreground}
format-full-underline = ${self.format-charging-underline}
-ramp-capacity-0 = 
-ramp-capacity-1 = 
-ramp-capacity-2 = 
+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-0 = 
+animation-charging-1 = 
+animation-charging-2 = 
+animation-charging-3 = 
+animation-charging-4 = 
animation-charging-foreground = ${colors.foreground}
-animation-charging-framerate = 750
+animation-charging-framerate = 1000
-animation-discharging-0 = 
-animation-discharging-1 = 
-animation-discharging-2 = 
+animation-discharging-0 = 
+animation-discharging-1 = 
+animation-discharging-2 = 
+animation-discharging-3 = 
+animation-discharging-4 = 
animation-discharging-foreground = ${colors.foreground}
-animation-discharging-framerate = 750
+animation-discharging-framerate = 1000
[module/temperature]
type = internal/temperature
diff --git a/i3wm/.config/polybar/launch.sh b/i3wm/.config/polybar/launch.sh
index a0f26cd..e099ebb 100755
--- a/i3wm/.config/polybar/launch.sh
+++ b/i3wm/.config/polybar/launch.sh
@@ -6,8 +6,15 @@ killall -q polybar
# Wait until the processes have been shut down
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
+
# Launch bar1 and bar2
-MONITOR=$(polybar -m|tail -1|sed -e 's/:.*$//g') polybar topbar &
-MONITOR=$(polybar -m|tail -1|sed -e 's/:.*$//g') polybar topbar-second &
+MONITOR=$(polybar -m|tail -n1|sed -e 's/:.*$//g') polybar topbar &
+
+MONITORS=$(polybar -m|sed -e 's/:.*$//g')
+while read -r monitor; do
+ MONITOR=$monitor polybar topbar-second &
+done <<< $MONITORS
+
+PRIMARY_MONITOR=$(xrandr -q|awk '/ connected primary /'|cut -d ' ' -f1)
echo "Bars launched..."
diff --git a/i3wm/.config/rofi/config b/i3wm/.config/rofi/config
deleted file mode 100644
index 0913621..0000000
--- a/i3wm/.config/rofi/config
+++ /dev/null
@@ -1 +0,0 @@
-rofi.modi: window,run,ssh,drun \ No newline at end of file
diff --git a/x/.Xresources b/x/.Xresources
index b2bc1e3..09b8ab7 100755
--- a/x/.Xresources
+++ b/x/.Xresources
@@ -1,7 +1,7 @@
#if __has_include(".extend.Xresources")
#include ".extend.Xresources"
#endif
-#include ".Xresources.dark"
+#include ".gruvbox-dark.xresources"
! ^ The above lines are no comments!
! Leave them as they are if a file ~/.extend.Xresources is being used on your system.
diff --git a/x/.gruvbox-dark.xresources b/x/.gruvbox-dark.xresources
new file mode 100644
index 0000000..5beeba2
--- /dev/null
+++ b/x/.gruvbox-dark.xresources
@@ -0,0 +1,36 @@
+! -----------------------------------------------------------------------------
+! File: gruvbox-dark.xresources
+! Description: Retro groove colorscheme generalized
+! Author: morhetz <morhetz@gmail.com>
+! Source: https://github.com/morhetz/gruvbox-generalized
+! Last Modified: 6 Sep 2014
+! -----------------------------------------------------------------------------
+
+! hard contrast: *background: #1d2021
+*background: #282828
+! soft contrast: *background: #32302f
+*foreground: #ebdbb2
+! Black + DarkGrey
+*color0: #282828
+*color8: #928374
+! DarkRed + Red
+*color1: #cc241d
+*color9: #fb4934
+! DarkGreen + Green
+*color2: #98971a
+*color10: #b8bb26
+! DarkYellow + Yellow
+*color3: #d79921
+*color11: #fabd2f
+! DarkBlue + Blue
+*color4: #458588
+*color12: #83a598
+! DarkMagenta + Magenta
+*color5: #b16286
+*color13: #d3869b
+! DarkCyan + Cyan
+*color6: #689d6a
+*color14: #8ec07c
+! LightGrey + White
+*color7: #a89984
+*color15: #ebdbb2
diff --git a/x/.xinitrc b/x/.xinitrc
index a01a091..3927c0d 100755
--- a/x/.xinitrc
+++ b/x/.xinitrc
@@ -4,5 +4,8 @@ setxkbmap -layout us,us -variant ,dvp -option grp:shifts_toggle
# load Xresources
[[ -f ~/.Xresources ]] && xrdb -merge ~/.Xresources
+# Set display
+systemctl --user import-environment DISPLAY
+
#exec startxfce4
exec i3
diff --git a/zsh/.zprofile b/zsh/.zprofile
index 400fa76..20bd592 100755
--- a/zsh/.zprofile
+++ b/zsh/.zprofile
@@ -1,6 +1,7 @@
cowfortune
-. /etc/profile.d/vte.sh
+#. /etc/profile.d/vte.sh
+
export EDITOR=emacsclient
@@ -15,6 +16,7 @@ export MTP_NO_PROBE="1"
#export ANDROID_HOME=/home/peter/Android/Sdk
#export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$PATH"
+export PATH="$HOME/go/bin:$PATH"
export PATH="$HOME/.bin:$PATH"
export PATH="$HOME/.cargo/bin:$HOME/.local/bin:$PATH"
export RUST_SRC_PATH="$(rustc --print sysroot)/lib/rustlib/src/rust/src"
@@ -25,3 +27,4 @@ export npm_config_prefix=~/.node_modules
alias open=xdg-open
+export TERM=xterm-256color
diff --git a/zsh/.zshrc b/zsh/.zshrc
index 404a8b7..5098b24 100644
--- a/zsh/.zshrc
+++ b/zsh/.zshrc
@@ -21,6 +21,13 @@ antigen bundle zsh-users/zsh-autosuggestions
antigen bundle zsh-users/zsh-completions
antigen bundle zsh-users/zsh-history-substring-search
+if [ "$TERM" = "linux" ]; then
+ _SEDCMD='s/.*\*color\([0-9]\{1,\}\).*#\([0-9a-fA-F]\{6\}\).*/\1 \2/p'
+ for i in $(sed -n "$_SEDCMD" $HOME/.Xresources | awk '$1 < 16 {printf "\\e]P%X%s", $1, $2}'); do
+ echo -en "$i"
+ done
+ clear
+fi
# THEME
POWERLEVEL9K_INSTALLATION_PATH=$ANTIGEN_BUNDLES/bhilburn/powerlevel9k
@@ -63,6 +70,9 @@ if type "thefuck" > /dev/null; then
eval $(thefuck --alias)
fi
+if type "fasd" > /dev/null; then
+ eval "$(fasd --init auto)"
+fi
# python virtualenvwrapper
export WORKON_HOME=~/.virtualenvs
@@ -70,4 +80,4 @@ source /usr/bin/virtualenvwrapper_lazy.sh
alias ec="emacsclient -c"
-eval "$(fasd --init auto)"
+source /usr/share/doc/pkgfile/command-not-found.zsh