├── .xinitrc ├── .Xmodmap ├── setup_scripts ├── 3_install-i3-addons.sh ├── 7_install-light-control.sh ├── 5_install-fish.sh ├── 1_install_basics.sh ├── 6_improve_touchbar.sh ├── 4_install-polybar.sh └── 2_install-i3-gaps.sh ├── .Xresources ├── .config ├── i3 │ ├── i3lock.sh │ ├── i3status.conf │ └── config ├── fish │ ├── config.fish │ └── aliases ├── polybar │ ├── launch.sh │ └── config ├── README.md └── rofi │ ├── config.rasi │ ├── android_notification.rasi │ └── glue_pro_blue.rasi ├── extend.sh ├── .profile ├── SETUP.md └── manage_display.sh /.xinitrc: -------------------------------------------------------------------------------- 1 | xrdb -merge ~/.Xresources 2 | exec i3 3 | -------------------------------------------------------------------------------- /.Xmodmap: -------------------------------------------------------------------------------- 1 | clear control 2 | clear mod1 3 | keycode 37 = Alt_L Meta_L 4 | keycode 64 = Control_L 5 | add control = Control_L Control_R 6 | add mod1 = Alt_L Meta_L 7 | -------------------------------------------------------------------------------- /setup_scripts/3_install-i3-addons.sh: -------------------------------------------------------------------------------- 1 | echo 'Installing i3 addons...' 2 | 3 | sudo apt install i3lock clipit network-manager-gnome nitrogen pulseaudio rofi fcitx blueman 4 | 5 | echo 'DONE!' 6 | -------------------------------------------------------------------------------- /.Xresources: -------------------------------------------------------------------------------- 1 | ! HiDPI 2 | Xft.dpi: 220 3 | Xft.autohint: 0 4 | Xft.lcdfilter: lcddefault 5 | Xft.hintstyle: hintslight 6 | Xft.hinting: 1 7 | Xft.antialias: 1 8 | Xft.rgba: rgb 9 | 10 | ! rofi 11 | rofi.dpi: 220 12 | -------------------------------------------------------------------------------- /setup_scripts/7_install-light-control.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo 'Installing backlight control...' 4 | 5 | cd /tmp 6 | git clone https://github.com/haikarainen/light.git 7 | 8 | cd light 9 | ./autogen.sh 10 | ./configure && make 11 | sudo make install 12 | 13 | echo 'DONE!' 14 | 15 | 16 | -------------------------------------------------------------------------------- /.config/i3/i3lock.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | IMAGE=/tmp/screen_locked.png 4 | 5 | # Take a screenshot 6 | scrot $IMAGE 7 | 8 | # Pixellate it 10x 9 | mogrify -scale 10% -scale 1000% $IMAGE 10 | # convert $IMAGE -blur "2x8" $IMAGE 11 | 12 | # Lock screen displaying this image. 13 | i3lock -i $IMAGE 14 | rm $IMAGE 15 | -------------------------------------------------------------------------------- /.config/fish/config.fish: -------------------------------------------------------------------------------- 1 | set -x EDITOR nvim 2 | set -x REACT_EDITOR nvim 3 | set -x FZF_DEFAULT_COMMAND 'ag -g ""' 4 | set -x QT_AUTO_SCREEN_SCALE_FACTOR 1 5 | set -x GDK_SCALE 2 6 | 7 | source .config/fish/aliases 8 | 9 | # eval (python3 -m virtualfish auto_activation) 10 | # eval (docker-machine env default) 11 | 12 | status --is-interactive 13 | -------------------------------------------------------------------------------- /setup_scripts/5_install-fish.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo 'Installing fish shell' 3 | 4 | sudo apt install fish 5 | chsh -s /usr/bin/fish 6 | 7 | echo 'Installing oh my fish...' 8 | 9 | curl -L https://get.oh-my.fish | fish 10 | 11 | echo 'Get some good fonts...' 12 | 13 | sudo apt install fonts-powerline fonts-firacode fonts-font-awesome 14 | 15 | echo 'Done...' 16 | -------------------------------------------------------------------------------- /setup_scripts/1_install_basics.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo 'Installing basics...' 4 | sudo apt install curl git wget ranger mediainfo highlight tmux calcurse newsbeuter moc qutebrowser imagemagick transmission-cli atool xcompmgr blender pinta gimp markdown mupdf evince audacity vim-latexsuite rsync syncthing cups screenfetch scrot unzip unrar biber ntfs-3g deepin-terminal zip irssi unzip xclip 5 | -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Terminate already running bar instances 4 | killall -q polybar 5 | 6 | # Wait until the processes have been shut down 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # start polybar on multiple monitors https://github.com/jaagr/polybar/issues/763 10 | if type "xrandr"; then 11 | for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do 12 | MONITOR=$m polybar --reload mybar & 13 | done 14 | else 15 | polybar --reload mybar & 16 | fi 17 | 18 | echo "Bars launched..." 19 | -------------------------------------------------------------------------------- /setup_scripts/6_improve_touchbar.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo 'Executing steps outline here: https://www.dell.com/support/article/us/en/04/sln308258/precision-xps-ubuntu-general-touchpad-mouse-issue-fix?lang=en' 4 | 5 | 6 | echo 'TODO: not complete' 7 | 8 | echo 'In the meantime, here is a quick fix...' 9 | 10 | sudo apt install libinput-tool gnome-tweaks 11 | 12 | cat << EOF 13 | 14 | Option "NaturalScrolling" "true" 15 | Option "Tapping" "true" 16 | 17 | EOF 18 | 19 | read -p "Now you have to paste the above into the touchpad section. Ready?" -n 1 -r 20 | echo # (optional) move to a new line 21 | if [[ $REPLY =~ ^[Yy]$ ]] 22 | then 23 | sudo vim /usr/share/X11/xorg.conf.d/40-libinput.conf 24 | fi 25 | 26 | -------------------------------------------------------------------------------- /setup_scripts/4_install-polybar.sh: -------------------------------------------------------------------------------- 1 | echo 'Installing clang for build...' 2 | 3 | sudo apt install clang 4 | 5 | echo 'Installing polybar dependencies...' 6 | 7 | sudo apt install cmake cmake-data pkg-config libcairo2-dev libxcb1-dev libxcb-util0-dev libxcb-randr0-dev python-xcbgen xcb-proto libxcb-image0-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-xkb-dev libxcb-xrm-dev libxcb-cursor-dev libasound2-dev libpulse-dev libjsoncpp-dev libmpdclient-dev libcurl4-openssl-dev libnl-3-dev libiw-dev 8 | 9 | echo 'Installing polybar from source...' 10 | 11 | cd /tmp 12 | git clone --recursive https://github.com/jaagr/polybar 13 | mkdir polybar/build 14 | cd polybar/build 15 | cmake -DCMAKE_C_COMPILER="clang" -DCMAKE_CXX_COMPILER="clang++" .. 16 | sudo make install 17 | 18 | -------------------------------------------------------------------------------- /extend.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # extend non-HiDPI external display on DP* above HiDPI internal display eDP* 3 | # see also https://wiki.archlinux.org/index.php/HiDPI 4 | # you may run into https://bugs.freedesktop.org/show_bug.cgi?id=39949 5 | # https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/883319 6 | 7 | EXT=`xrandr --current | sed 's/^\(.*\) connected.*$/\1/p;d' | grep -v ^eDP | head -n 1` 8 | INT=`xrandr --current | sed 's/^\(.*\) connected.*$/\1/p;d' | grep -v ^DP | head -n 1` 9 | 10 | ext_w=`xrandr | sed 's/^'"${EXT}"' [^0-9]* \([0-9]\+\)x.*$/\1/p;d'` 11 | ext_h=`xrandr | sed 's/^'"${EXT}"' [^0-9]* [0-9]\+x\([0-9]\+\).*$/\1/p;d'` 12 | int_w=`xrandr | sed 's/^'"${INT}"' [^0-9]* \([0-9]\+\)x.*$/\1/p;d'` 13 | off_w=`echo $(( ($int_w-$ext_w)/2 )) | sed 's/^-//'` 14 | 15 | xrandr --output "${INT}" --auto --pos ${off_w}x${ext_h} --scale 1x1 --output "${EXT}" --auto --scale 2x2 --pos 0x0 16 | 17 | -------------------------------------------------------------------------------- /.config/README.md: -------------------------------------------------------------------------------- 1 | # My i3 config 2 | 3 | ## Getting Started 4 | 5 | ### Dependencies 6 | 7 | - i3wm 8 | - i3lock 9 | - clipit 10 | - blueman-applet 11 | - nm-applet 12 | - nitrogen 13 | - pactl 14 | - rofi 15 | 16 | ### Installation 17 | 18 | ~~~ bash 19 | $ mv ~/.config/i3 /tmp/i3-old 20 | $ cd ~/.config 21 | $ git clone https://github.com/tommyku/my-i3-config i3 22 | $ mv /tmp/i3-old ~/.config/i3 23 | ~~~ 24 | 25 | ## References 26 | 27 | These are some i3 config files I referenced to when I made mine. 28 | 29 | - [https://gist.github.com/chomik/b90ba24d663a00947aef70d4138b0007](https://gist.github.com/chomik/b90ba24d663a00947aef70d4138b0007) 30 | - [https://github.com/maitesin/dot-files/blob/master/i3wm/config](https://github.com/maitesin/dot-files/blob/master/i3wm/config) 31 | - [https://www.reddit.com/r/i3wm/comments/2bdxra/gaussian_blur_lock_screen_with_i3lock_xport/cj4tu75/](https://www.reddit.com/r/i3wm/comments/2bdxra/gaussian_blur_lock_screen_with_i3lock_xport/cj4tu75/) 32 | -------------------------------------------------------------------------------- /setup_scripts/2_install-i3-gaps.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo 'Updating apt...' 4 | sudo apt update 5 | 6 | echo 'Installing dependencies...' 7 | sudo apt install libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev autoconf xutils-dev libtool 8 | 9 | echo 'Installing lib-xrm-dev (required by i3-gaps)' 10 | mkdir tmp 11 | cd /tmp 12 | git clone https://github.com/Airblader/xcb-util-xrm 13 | cd xcb-util-xrm 14 | git submodule update --init 15 | ./autogen.sh --prefix=/usr 16 | make 17 | sudo make install 18 | 19 | echo 'Installing i3-gaps from source' 20 | cd /tmp 21 | git clone https://www.github.com/Airblader/i3 i3-gaps 22 | cd i3-gaps 23 | git checkout gaps && git pull 24 | autoreconf --force --install 25 | rm -rf build 26 | mkdir build 27 | cd build 28 | ../configure --prefix=/usr --sysconfdir=/etc 29 | make 30 | sudo make install 31 | 32 | echo 'DONE!' 33 | -------------------------------------------------------------------------------- /.profile: -------------------------------------------------------------------------------- 1 | # ~/.profile: executed by the command interpreter for login shells. 2 | # This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login 3 | # exists. 4 | # see /usr/share/doc/bash/examples/startup-files for examples. 5 | # the files are located in the bash-doc package. 6 | 7 | # the default umask is set in /etc/profile; for setting the umask 8 | # for ssh logins, install and configure the libpam-umask package. 9 | #umask 022 10 | 11 | # if running bash 12 | if [ -n "$BASH_VERSION" ]; then 13 | # include .bashrc if it exists 14 | if [ -f "$HOME/.bashrc" ]; then 15 | . "$HOME/.bashrc" 16 | fi 17 | fi 18 | 19 | # set PATH so it includes user's private bin if it exists 20 | if [ -d "$HOME/bin" ] ; then 21 | PATH="$HOME/bin:$PATH" 22 | fi 23 | 24 | # set PATH so it includes user's private bin if it exists 25 | if [ -d "$HOME/.local/bin" ] ; then 26 | PATH="$HOME/.local/bin:$PATH" 27 | fi 28 | 29 | export QT_AUTO_SCREEN_SCALE_FACTOR=1 30 | export DPI=$(xdpyinfo | grep -oP '(?<=resolution:\s\s\s\s[0-9]{3}x)[0-9]{3}') 31 | export POLYBAR_HEIGHT=$(expr $DPI / 5) 32 | export POLYBAR_TRAY_MAXSIZE=$(expr $DPI / 6) 33 | -------------------------------------------------------------------------------- /.config/i3/i3status.conf: -------------------------------------------------------------------------------- 1 | general { 2 | colors = true 3 | color_good = "#BBBBBB" 4 | color_bad = "#CC1616" 5 | color_degraded = "#55858E" 6 | interval = 5 7 | } 8 | 9 | order += "wireless wlp3s0" 10 | order += "ethernet eth0" 11 | order += "battery 0" 12 | order += "tztime local" 13 | order += "load" 14 | order += "volume master" 15 | 16 | volume master { 17 | device = "default" 18 | mixer = "Master" 19 | mixer_idx = 0 20 | format = "🔊 %volume " 21 | format_muted = "🔇" 22 | } 23 | 24 | wireless wlp3s0 { 25 | format_up = "📶 %essid, %bitrate (%ip)" 26 | format_down = "📶 down" 27 | } 28 | 29 | ethernet eth0 { 30 | # if you use %speed, i3status requires the cap_net_admin capability 31 | format_up = "E: %ip (%speed)" 32 | format_down = "" 33 | } 34 | 35 | battery 0 { 36 | format = "%status %percentage %remaining" 37 | status_bat = "🔋" 38 | status_chr = "⚡" 39 | status_unk = "❔" 40 | status_full = "🌝" 41 | integer_battery_capacity = true 42 | hide_seconds = true 43 | last_full_capacity = true 44 | low_threshold = 20 45 | } 46 | 47 | tztime local { 48 | format = "📅 %a %Y-%m-%d %H:%M" 49 | } 50 | 51 | load { 52 | format = "💪 %5min" 53 | } 54 | 55 | disk "/" { 56 | format = "%free" 57 | } 58 | -------------------------------------------------------------------------------- /.config/fish/aliases: -------------------------------------------------------------------------------- 1 | # Locations 2 | alias up="cd ~/workspace/up" 3 | alias front="cd ~/workspace/up/frontend" 4 | alias back="cd ~/workspace/up/backend" 5 | alias work="cd ~/workspace" 6 | 7 | # List all files colorized in long format 8 | alias l="ls -lF $colorflag" 9 | 10 | # List all files colorized in long format, including dot files 11 | alias la="ls -laF $colorflag" 12 | 13 | # List only directories 14 | alias lsd='ls -lF $colorflag | grep "^d"' 15 | 16 | # Enable aliases to be sudo’ed 17 | alias sudo='sudo ' 18 | 19 | # Stopwatch 20 | alias timer='echo "Timer started. Stop with Ctrl-D."; and date; and time cat; and date' 21 | 22 | # IP addresses 23 | alias ip="dig +short myip.opendns.com @resolver1.opendns.com" 24 | alias localip="ipconfig getifaddr en1" 25 | alias ips="ifconfig -a | grep -o 'inet6\? \(\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\)\|[a-fA-F0-9:]\+\)' | sed -e 's/inet6* //'" 26 | 27 | # Enhanced WHOIS lookups 28 | alias whois="whois -h whois-servers.net" 29 | 30 | # View HTTP traffic 31 | alias sniff="sudo ngrep -d 'en1' -t '^(GET|POST) ' 'tcp and port 80'" 32 | alias httpdump="sudo tcpdump -i en1 -n -s 0 -w - | grep -a -o -E \"Host\: .*|GET \/.*\"" 33 | 34 | # URL-encode strings 35 | alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1]);"' 36 | 37 | # Ring the terminal bell, and put a badge on Terminal.app’s Dock icon 38 | # (useful when executing time-consuming commands) 39 | alias badge="tput bel" 40 | 41 | # Intuitive map function 42 | # For example, to list all directories that contain a certain file: 43 | # find . -name .gitattributes | map dirname 44 | alias map="xargs -n1" 45 | 46 | alias sleep="sudo sh -c 'echo mem > /sys/power/state'" 47 | -------------------------------------------------------------------------------- /SETUP.md: -------------------------------------------------------------------------------- 1 | # i3-gaps Install for Ubuntu 18.04 2 | This is just a simple instruction set for installing i3-gaps with all the bells and whistles 3 | 4 | # Installing i3-gaps 5 | 6 | ## Dependencies 7 | i3-gaps has some packages that are required for it to work so install these things: 8 | ``` 9 | sudo apt install libxcb1-dev libxcb-keysyms1-dev libpango1.0-dev libxcb-util0-dev libxcb-icccm4-dev libyajl-dev libstartup-notification0-dev libxcb-randr0-dev libev-dev libxcb-cursor-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev autoconf xutils-dev libtool 10 | ``` 11 | You also need to install `libxcb-xrm-dev`, but I got `Unable to locate package libxcb-xrm-dev` when trying to install from the apt repositories on Ubuntu 16.04. If this happens to you, just install it from source using these commands: 12 | ``` 13 | mkdir tmp 14 | cd /tmp 15 | git clone https://github.com/Airblader/xcb-util-xrm 16 | cd xcb-util-xrm 17 | git submodule update --init 18 | ./autogen.sh --prefix=/usr 19 | make 20 | sudo make install 21 | ``` 22 | 23 | ## Installing 24 | 25 | gaps also needs to be installed from source so run these commands: 26 | ``` 27 | cd /tmp 28 | git clone https://www.github.com/Airblader/i3 i3-gaps 29 | cd i3-gaps 30 | git checkout gaps && git pull 31 | autoreconf --force --install 32 | rm -rf build 33 | mkdir build 34 | cd build 35 | ../configure --prefix=/usr --sysconfdir=/etc 36 | make 37 | sudo make install 38 | ``` 39 | Now i3-gaps should be installed. 40 | 41 | ## Extras 42 | ``` 43 | sudo apt-get install wget ranger mediainfo highlight tmux calcurse newsbeuter moc qutebrowser imagemagick transmission-cli atool xcompmgr blender pinta gimp markdown mupdf evince audacity vim-latexsuite rsync syncthing cups screenfetch scrot unzip unrar biber ntfs-3g deepin-terminal zip irssi unzip 44 | 45 | ``` 46 | 47 | -------------------------------------------------------------------------------- /manage_display.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Get out of town if something errors 4 | # set -e 5 | 6 | # Get info on the monitors 7 | EDP1_STATUS=$( /tmp/monitor 83 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | /* modi: "window,run,ssh";*/ 3 | /* width: 50;*/ 4 | /* lines: 15;*/ 5 | /* columns: 1;*/ 6 | font: "Ubuntu Mono 14"; 7 | /* bw: 1;*/ 8 | /* location: 0;*/ 9 | /* padding: 5;*/ 10 | /* yoffset: 0;*/ 11 | /* xoffset: 0;*/ 12 | /* fixed-num-lines: true;*/ 13 | show-icons: true; 14 | /* terminal: "rofi-sensible-terminal";*/ 15 | /* ssh-client: "ssh";*/ 16 | /* ssh-command: "{terminal} -e {ssh-client} {host}";*/ 17 | /* run-command: "{cmd}";*/ 18 | /* run-list-command: "";*/ 19 | /* run-shell-command: "{terminal} -e {cmd}";*/ 20 | /* window-command: "xkill -id {window}";*/ 21 | /* window-match-fields: "all";*/ 22 | /* drun-icon-theme: ;*/ 23 | /* drun-match-fields: "name,generic,exec,categories";*/ 24 | /* disable-history: false;*/ 25 | /* sort: false;*/ 26 | /* levenshtein-sort: false;*/ 27 | /* case-sensitive: false;*/ 28 | /* cycle: true;*/ 29 | /* sidebar-mode: false;*/ 30 | /* eh: 1;*/ 31 | /* auto-select: false;*/ 32 | /* parse-hosts: false;*/ 33 | /* parse-known-hosts: true;*/ 34 | /* combi-modi: "window,run";*/ 35 | /* matching: "normal";*/ 36 | /* tokenize: true;*/ 37 | /* m: "-5";*/ 38 | /* line-margin: 2;*/ 39 | /* line-padding: 1;*/ 40 | /* filter: ;*/ 41 | /* separator-style: "dash";*/ 42 | /* hide-scrollbar: false;*/ 43 | /* fullscreen: false;*/ 44 | /* fake-transparency: false;*/ 45 | /* dpi: -1;*/ 46 | /* threads: 0;*/ 47 | /* scrollbar-width: 8;*/ 48 | /* scroll-method: 0;*/ 49 | /* fake-background: "screenshot";*/ 50 | /* window-format: "{w} {i}{c} {t}";*/ 51 | /* click-to-exit: true;*/ 52 | /* show-match: true;*/ 53 | theme: "glue_pro_blue"; 54 | /* color-normal: ;*/ 55 | /* color-urgent: ;*/ 56 | /* color-active: ;*/ 57 | /* color-window: ;*/ 58 | /* max-history-size: 25;*/ 59 | /* combi-hide-mode-prefix: false;*/ 60 | /* pid: "/run/user/1000/rofi.pid";*/ 61 | /* display-window: ;*/ 62 | /* display-windowcd: ;*/ 63 | /* display-run: ;*/ 64 | /* display-ssh: ;*/ 65 | /* display-drun: ;*/ 66 | /* display-combi: ;*/ 67 | /* display-keys: ;*/ 68 | /* kb-primary-paste: "Control+V,Shift+Insert";*/ 69 | /* kb-secondary-paste: "Control+v,Insert";*/ 70 | /* kb-clear-line: "Control+w";*/ 71 | /* kb-move-front: "Control+a";*/ 72 | /* kb-move-end: "Control+e";*/ 73 | /* kb-move-word-back: "Alt+b";*/ 74 | /* kb-move-word-forward: "Alt+f";*/ 75 | /* kb-move-char-back: "Left,Control+b";*/ 76 | /* kb-move-char-forward: "Right,Control+f";*/ 77 | /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ 78 | /* kb-remove-word-forward: "Control+Alt+d";*/ 79 | /* kb-remove-char-forward: "Delete,Control+d";*/ 80 | /* kb-remove-char-back: "BackSpace,Control+h";*/ 81 | /* kb-remove-to-eol: "Control+k";*/ 82 | /* kb-remove-to-sol: "Control+u";*/ 83 | /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ 84 | /* kb-accept-custom: "Control+Return";*/ 85 | /* kb-accept-alt: "Shift+Return";*/ 86 | /* kb-delete-entry: "Shift+Delete";*/ 87 | /* kb-mode-next: "Shift+Right,Control+Tab";*/ 88 | /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ 89 | /* kb-row-left: "Control+Page_Up";*/ 90 | /* kb-row-right: "Control+Page_Down";*/ 91 | /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ 92 | /* kb-row-down: "Down,Control+n";*/ 93 | /* kb-row-tab: "Tab";*/ 94 | /* kb-page-prev: "Page_Up";*/ 95 | /* kb-page-next: "Page_Down";*/ 96 | /* kb-row-first: "Home,KP_Home";*/ 97 | /* kb-row-last: "End,KP_End";*/ 98 | /* kb-row-select: "Control+space";*/ 99 | /* kb-screenshot: "Alt+S";*/ 100 | /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ 101 | /* kb-toggle-sort: "Alt+grave";*/ 102 | /* kb-cancel: "Escape,Control+g,Control+bracketleft";*/ 103 | /* kb-custom-1: "Alt+1";*/ 104 | /* kb-custom-2: "Alt+2";*/ 105 | /* kb-custom-3: "Alt+3";*/ 106 | /* kb-custom-4: "Alt+4";*/ 107 | /* kb-custom-5: "Alt+5";*/ 108 | /* kb-custom-6: "Alt+6";*/ 109 | /* kb-custom-7: "Alt+7";*/ 110 | /* kb-custom-8: "Alt+8";*/ 111 | /* kb-custom-9: "Alt+9";*/ 112 | /* kb-custom-10: "Alt+0";*/ 113 | /* kb-custom-11: "Alt+exclam";*/ 114 | /* kb-custom-12: "Alt+at";*/ 115 | /* kb-custom-13: "Alt+numbersign";*/ 116 | /* kb-custom-14: "Alt+dollar";*/ 117 | /* kb-custom-15: "Alt+percent";*/ 118 | /* kb-custom-16: "Alt+dead_circumflex";*/ 119 | /* kb-custom-17: "Alt+ampersand";*/ 120 | /* kb-custom-18: "Alt+asterisk";*/ 121 | /* kb-custom-19: "Alt+parenleft";*/ 122 | /* kb-select-1: "Super+1";*/ 123 | /* kb-select-2: "Super+2";*/ 124 | /* kb-select-3: "Super+3";*/ 125 | /* kb-select-4: "Super+4";*/ 126 | /* kb-select-5: "Super+5";*/ 127 | /* kb-select-6: "Super+6";*/ 128 | /* kb-select-7: "Super+7";*/ 129 | /* kb-select-8: "Super+8";*/ 130 | /* kb-select-9: "Super+9";*/ 131 | /* kb-select-10: "Super+0";*/ 132 | /* ml-row-left: "ScrollLeft";*/ 133 | /* ml-row-right: "ScrollRight";*/ 134 | /* ml-row-up: "ScrollUp";*/ 135 | /* ml-row-down: "ScrollDown";*/ 136 | /* me-select-entry: "MousePrimary";*/ 137 | /* me-accept-entry: "MouseDPrimary";*/ 138 | /* me-accept-custom: "Control+MouseDPrimary";*/ 139 | } 140 | -------------------------------------------------------------------------------- /.config/rofi/android_notification.rasi: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * ROFI Color theme 3 | * User: Rasi 4 | * Copyright: Rasmus Steinke 5 | *******************************************************************************/ 6 | 7 | * { 8 | selected-normal-foreground: rgba ( 255, 255, 255, 100 % ); 9 | foreground: rgba ( 193, 193, 193, 100 % ); 10 | normal-foreground: @foreground; 11 | alternate-normal-background: rgba ( 39, 50, 56, 100 % ); 12 | red: rgba ( 220, 50, 47, 100 % ); 13 | selected-urgent-foreground: rgba ( 255, 24, 68, 100 % ); 14 | blue: rgba ( 38, 139, 210, 100 % ); 15 | urgent-foreground: rgba ( 255, 24, 68, 100 % ); 16 | alternate-urgent-background: rgba ( 39, 50, 56, 100 % ); 17 | active-foreground: rgba ( 128, 203, 196, 100 % ); 18 | lightbg: rgba ( 238, 232, 213, 100 % ); 19 | selected-active-foreground: rgba ( 128, 203, 196, 100 % ); 20 | alternate-active-background: rgba ( 39, 50, 56, 100 % ); 21 | background: rgba ( 39, 50, 56, 100 % ); 22 | bordercolor: rgba ( 39, 50, 56, 100 % ); 23 | alternate-normal-foreground: @foreground; 24 | normal-background: rgba ( 39, 50, 56, 100 % ); 25 | lightfg: rgba ( 88, 104, 117, 100 % ); 26 | selected-normal-background: rgba ( 57, 66, 73, 100 % ); 27 | border-color: @foreground; 28 | spacing: 2; 29 | separatorcolor: rgba ( 30, 37, 41, 100 % ); 30 | urgent-background: rgba ( 39, 50, 56, 100 % ); 31 | selected-urgent-background: rgba ( 57, 66, 73, 100 % ); 32 | alternate-urgent-foreground: @urgent-foreground; 33 | background-color: rgba ( 0, 0, 0, 0 % ); 34 | alternate-active-foreground: @active-foreground; 35 | active-background: rgba ( 39, 50, 56, 100 % ); 36 | selected-active-background: rgba ( 57, 66, 73, 100 % ); 37 | } 38 | #window { 39 | background-color: @background; 40 | border: 1; 41 | padding: 5; 42 | } 43 | #mainbox { 44 | border: 0; 45 | padding: 0; 46 | } 47 | #message { 48 | border: 1px dash 0px 0px ; 49 | border-color: @separatorcolor; 50 | padding: 1px ; 51 | } 52 | #textbox { 53 | text-color: @foreground; 54 | } 55 | #listview { 56 | fixed-height: 0; 57 | border: 2px dash 0px 0px ; 58 | border-color: @separatorcolor; 59 | spacing: 2px ; 60 | scrollbar: true; 61 | padding: 2px 0px 0px ; 62 | } 63 | #element { 64 | border: 0; 65 | padding: 1px ; 66 | } 67 | #element.normal.normal { 68 | background-color: @normal-background; 69 | text-color: @normal-foreground; 70 | } 71 | #element.normal.urgent { 72 | background-color: @urgent-background; 73 | text-color: @urgent-foreground; 74 | } 75 | #element.normal.active { 76 | background-color: @active-background; 77 | text-color: @active-foreground; 78 | } 79 | #element.selected.normal { 80 | background-color: @selected-normal-background; 81 | text-color: @selected-normal-foreground; 82 | } 83 | #element.selected.urgent { 84 | background-color: @selected-urgent-background; 85 | text-color: @selected-urgent-foreground; 86 | } 87 | #element.selected.active { 88 | background-color: @selected-active-background; 89 | text-color: @selected-active-foreground; 90 | } 91 | #element.alternate.normal { 92 | background-color: @alternate-normal-background; 93 | text-color: @alternate-normal-foreground; 94 | } 95 | #element.alternate.urgent { 96 | background-color: @alternate-urgent-background; 97 | text-color: @alternate-urgent-foreground; 98 | } 99 | #element.alternate.active { 100 | background-color: @alternate-active-background; 101 | text-color: @alternate-active-foreground; 102 | } 103 | #scrollbar { 104 | width: 4px ; 105 | border: 0; 106 | handle-width: 8px ; 107 | padding: 0; 108 | } 109 | #sidebar { 110 | border: 2px dash 0px 0px ; 111 | border-color: @separatorcolor; 112 | } 113 | #button.selected { 114 | background-color: @selected-normal-background; 115 | text-color: @selected-normal-foreground; 116 | } 117 | #inputbar { 118 | spacing: 0; 119 | text-color: @normal-foreground; 120 | padding: 1px ; 121 | } 122 | #case-indicator { 123 | spacing: 0; 124 | text-color: @normal-foreground; 125 | } 126 | #entry { 127 | spacing: 0; 128 | text-color: @normal-foreground; 129 | } 130 | #prompt { 131 | spacing: 0; 132 | text-color: @normal-foreground; 133 | } 134 | #inputbar { 135 | children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; 136 | } 137 | #textbox-prompt-colon { 138 | expand: false; 139 | str: ":"; 140 | margin: 0px 0.3em 0em 0em ; 141 | text-color: @normal-foreground; 142 | } 143 | -------------------------------------------------------------------------------- /.config/rofi/glue_pro_blue.rasi: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * ROFI Color theme 3 | * User: Rasi 4 | * Copyright: Rasmus Steinke 5 | ******************************************************************************/ 6 | * { 7 | selected-normal-foreground: rgba ( 255, 255, 255, 100 % ); 8 | foreground: rgba ( 255, 255, 255, 100 % ); 9 | normal-foreground: @foreground; 10 | alternate-normal-background: transparent; 11 | red: rgba ( 220, 50, 47, 100 % ); 12 | selected-urgent-foreground: rgba ( 255, 195, 156, 100 % ); 13 | blue: rgba ( 38, 139, 210, 100 % ); 14 | urgent-foreground: rgba ( 243, 132, 61, 100 % ); 15 | alternate-urgent-background: transparent; 16 | active-foreground: rgba ( 38, 139, 210, 100 % ); 17 | lightbg: rgba ( 238, 232, 213, 100 % ); 18 | selected-active-foreground: rgba ( 32, 81, 113, 100 % ); 19 | alternate-active-background: transparent; 20 | background: transparent; 21 | bordercolor: rgba ( 57, 57, 57, 100 % ); 22 | alternate-normal-foreground: @foreground; 23 | normal-background: transparent; 24 | lightfg: rgba ( 88, 104, 117, 100 % ); 25 | selected-normal-background: rgba ( 38, 139, 210, 100 % ); 26 | border-color: @foreground; 27 | spacing: 2; 28 | separatorcolor: rgba ( 38, 139, 210, 100 % ); 29 | urgent-background: transparent; 30 | selected-urgent-background: rgba ( 38, 139, 210, 100 % ); 31 | alternate-urgent-foreground: @urgent-foreground; 32 | background-color: rgba ( 0, 0, 0, 0 % ); 33 | alternate-active-foreground: @active-foreground; 34 | active-background: rgba ( 57, 57, 57, 100 % ); 35 | selected-active-background: rgba ( 38, 139, 210, 100 % ); 36 | } 37 | #window { 38 | background-color: rgba ( 57, 57, 57, 95 % ); 39 | border: 1; 40 | padding: 5; 41 | } 42 | #mainbox { 43 | border: 0; 44 | padding: 0; 45 | } 46 | #message { 47 | border: 1px dash 0px 0px ; 48 | border-color: @separatorcolor; 49 | padding: 1px ; 50 | } 51 | #textbox { 52 | text-color: @foreground; 53 | } 54 | #listview { 55 | fixed-height: 0; 56 | border: 2px dash 0px 0px ; 57 | border-color: @separatorcolor; 58 | spacing: 2px ; 59 | scrollbar: true; 60 | padding: 2px 0px 0px ; 61 | } 62 | #element { 63 | border: 0; 64 | padding: 1px ; 65 | } 66 | #element.normal.normal { 67 | background-color: @normal-background; 68 | text-color: @normal-foreground; 69 | } 70 | #element.normal.urgent { 71 | background-color: @urgent-background; 72 | text-color: @urgent-foreground; 73 | } 74 | #element.normal.active { 75 | background-color: @active-background; 76 | text-color: @active-foreground; 77 | } 78 | #element.selected.normal { 79 | background-color: @selected-normal-background; 80 | text-color: @selected-normal-foreground; 81 | } 82 | #element.selected.urgent { 83 | background-color: @selected-urgent-background; 84 | text-color: @selected-urgent-foreground; 85 | } 86 | #element.selected.active { 87 | background-color: @selected-active-background; 88 | text-color: @selected-active-foreground; 89 | } 90 | #element.alternate.normal { 91 | background-color: @alternate-normal-background; 92 | text-color: @alternate-normal-foreground; 93 | } 94 | #element.alternate.urgent { 95 | background-color: @alternate-urgent-background; 96 | text-color: @alternate-urgent-foreground; 97 | } 98 | #element.alternate.active { 99 | background-color: @alternate-active-background; 100 | text-color: @alternate-active-foreground; 101 | } 102 | #scrollbar { 103 | width: 4px ; 104 | border: 0; 105 | handle-width: 8px ; 106 | padding: 0; 107 | } 108 | #sidebar { 109 | border: 2px dash 0px 0px ; 110 | border-color: @separatorcolor; 111 | } 112 | #button.selected { 113 | background-color: @selected-normal-background; 114 | text-color: @selected-normal-foreground; 115 | } 116 | #button { 117 | background-color: @background; 118 | text-color: @foreground; 119 | } 120 | #inputbar { 121 | spacing: 0; 122 | text-color: @normal-foreground; 123 | padding: 1px ; 124 | } 125 | #case-indicator { 126 | spacing: 0; 127 | text-color: @normal-foreground; 128 | } 129 | #entry { 130 | spacing: 0; 131 | text-color: @normal-foreground; 132 | } 133 | #prompt { 134 | spacing: 0; 135 | text-color: @normal-foreground; 136 | } 137 | #inputbar { 138 | children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; 139 | } 140 | #textbox-prompt-colon { 141 | expand: false; 142 | str: ":"; 143 | margin: 0px 0.3em 0em 0em ; 144 | text-color: @normal-foreground; 145 | } 146 | -------------------------------------------------------------------------------- /.config/i3/config: -------------------------------------------------------------------------------- 1 | # This file has been auto-generated by i3-config-wizard(1). 2 | # It will not be overwritten, so edit it as you like. 3 | # 4 | # Should you change your keyboard layout some time, delete 5 | # this file and re-run i3-config-wizard(1). 6 | # 7 | 8 | # i3 config file (v4) 9 | # 10 | # Please see https://i3wm.org/docs/userguide.html for a complete reference! 11 | 12 | set $mod Mod1 13 | 14 | # Font for window titles. Will also be used by the bar unless a different font 15 | # is used in the bar {} block below. 16 | font pango:Ubuntu Mono 10 17 | 18 | # This font is widely installed, provides lots of unicode glyphs, right-to-left 19 | #font pango:DejaVu Sans Mono 8 20 | 21 | # Before i3 v4.8, we used to recommend this one as the default: 22 | # font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 23 | # The font above is very space-efficient, that is, it looks good, sharp and 24 | # clear in small sizes. However, its unicode glyph coverage is limited, the old 25 | # X core fonts rendering does not support right-to-left and this being a bitmap 26 | # font, it doesn’t scale on retina/hidpi displays. 27 | 28 | # Use Mouse+$mod to drag floating windows to their wanted position 29 | floating_modifier $mod 30 | 31 | # start a terminal 32 | bindsym $mod+Return exec i3-sensible-terminal 33 | 34 | # kill focused window (this will actually be alt+q since we switch them) 35 | bindsym Control+q kill 36 | 37 | # start dmenu (a program launcher) 38 | # bindsym $mod+d exec dmenu_run 39 | # Replace dmenu with rofi 40 | bindcode 133 --release exec "rofi -combi-modi window,drun,run -show combi -modi combi" 41 | 42 | # There also is the (new) i3-dmenu-desktop which only displays applications 43 | # shipping a .desktop file. It is a wrapper around dmenu, so you need that 44 | # installed. 45 | # bindsym $mod+d exec --no-startup-id i3-dmenu-desktop 46 | 47 | # change focus 48 | bindsym $mod+h focus left 49 | bindsym $mod+j focus down 50 | bindsym $mod+k focus up 51 | bindsym $mod+l focus right 52 | 53 | # alternatively, you can use the cursor keys: 54 | # bindsym $mod+Left focus left 55 | # bindsym $mod+Down focus down 56 | # bindsym $mod+Up focus up 57 | # bindsym $mod+Right focus right 58 | 59 | # Switch next/prev workspace 60 | bindsym $mod+Left workspace prev 61 | bindsym $mod+Right workspace next 62 | 63 | # move focused window 64 | bindsym $mod+Shift+h move left 65 | bindsym $mod+Shift+j move down 66 | bindsym $mod+Shift+k move up 67 | bindsym $mod+Shift+l move right 68 | 69 | # alternatively, you can use the cursor keys: 70 | bindsym $mod+Shift+Left move left 71 | bindsym $mod+Shift+Down move down 72 | bindsym $mod+Shift+Up move up 73 | bindsym $mod+Shift+Right move right 74 | 75 | # split in horizontal orientation 76 | bindsym $mod+d split h 77 | 78 | # split in vertical orientation 79 | bindsym $mod+shift+d split v 80 | 81 | # enter fullscreen mode for the focused container 82 | bindsym $mod+f fullscreen toggle 83 | 84 | # change container layout (stacked, tabbed, toggle split) 85 | bindsym $mod+s layout stacking 86 | bindsym $mod+w layout tabbed 87 | bindsym $mod+e layout toggle split 88 | 89 | # toggle tiling / floating 90 | bindsym $mod+Shift+space floating toggle 91 | 92 | # change focus between tiling / floating windows 93 | bindsym $mod+space focus mode_toggle 94 | 95 | # focus the parent container 96 | bindsym $mod+a focus parent 97 | 98 | # focus the child container 99 | #bindsym $mod+d focus child 100 | 101 | # switch to workspace 102 | set $workplace1 "1" 103 | set $workplace2 "2" 104 | set $workplace3 "3" 105 | set $workplace4 "4" 106 | set $workplace5 "5" 107 | set $workplace6 "6" 108 | set $workplace7 "7" 109 | set $workplace8 "8" 110 | set $workplace9 "9" 111 | set $workplace10 "10" 112 | 113 | bindsym $mod+1 workspace $workplace1 114 | bindsym $mod+2 workspace $workplace2 115 | bindsym $mod+3 workspace $workplace3 116 | bindsym $mod+4 workspace $workplace4 117 | bindsym $mod+5 workspace $workplace5 118 | bindsym $mod+6 workspace $workplace6 119 | bindsym $mod+7 workspace $workplace7 120 | bindsym $mod+8 workspace $workplace8 121 | bindsym $mod+9 workspace $workplace9 122 | bindsym $mod+0 workspace $workplace10 123 | 124 | # move focused container to workspace 125 | bindsym $mod+Shift+1 move container to workspace $workplace1; workspace $workplace1; 126 | bindsym $mod+Shift+2 move container to workspace $workplace2; workspace $workplace2; 127 | bindsym $mod+Shift+3 move container to workspace $workplace3; workspace $workplace3; 128 | bindsym $mod+Shift+4 move container to workspace $workplace4; workspace $workplace4; 129 | bindsym $mod+Shift+5 move container to workspace $workplace5; workspace $workplace5; 130 | bindsym $mod+Shift+6 move container to workspace $workplace6; workspace $workplace6; 131 | bindsym $mod+Shift+7 move container to workspace $workplace7; workspace $workplace7; 132 | bindsym $mod+Shift+8 move container to workspace $workplace8; workspace $workplace8; 133 | bindsym $mod+Shift+9 move container to workspace $workplace9; workspace $workplace9; 134 | bindsym $mod+Shift+0 move container to workspace $workplace10; workspace $workplace10; 135 | 136 | # reload the configuration file 137 | bindsym $mod+Shift+c reload 138 | # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) 139 | bindsym $mod+Shift+r restart 140 | # exit i3 (logs you out of your X session) 141 | 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'" 142 | 143 | # resize window (you can also use the mouse for that) 144 | mode "resize" { 145 | # These bindings trigger as soon as you enter the resize mode 146 | 147 | # Pressing left will shrink the window’s width. 148 | # Pressing right will grow the window’s width. 149 | # Pressing up will shrink the window’s height. 150 | # Pressing down will grow the window’s height. 151 | bindsym j resize shrink width 10 px or 10 ppt 152 | bindsym k resize grow height 10 px or 10 ppt 153 | bindsym l resize shrink height 10 px or 10 ppt 154 | bindsym semicolon resize grow width 10 px or 10 ppt 155 | 156 | # same bindings, but for the arrow keys 157 | bindsym Left resize shrink width 10 px or 10 ppt 158 | bindsym Down resize grow height 10 px or 10 ppt 159 | bindsym Up resize shrink height 10 px or 10 ppt 160 | bindsym Right resize grow width 10 px or 10 ppt 161 | 162 | # back to normal: Enter or Escape 163 | bindsym Return mode "default" 164 | bindsym Escape mode "default" 165 | } 166 | 167 | bindsym $mod+r mode "resize" 168 | 169 | # Start i3bar to display a workspace bar (plus the system information i3status 170 | # finds out, if available) 171 | #bar { 172 | #status_command i3status --config ~/.config/i3/i3/i3status.conf 173 | #font pango:Ubuntu Mono 10 174 | #position top 175 | #strip_workspace_numbers yes 176 | #separator_symbol "|" 177 | #colors { 178 | #background #282828 179 | #statusline #DDDDDD 180 | #separator #7addda 181 | #focused_workspace #2B83A6 #2B83A6 #DDDDDD 182 | #active_workspace #212121 #212121 #DDDDDD 183 | #inactive_workspace #212121 #212121 #DDDDDD 184 | #urgent_workspace #D64E4E #D64E4E #DDDDDD 185 | #} 186 | #} 187 | 188 | # polybar 189 | exec_always --no-startup-id $HOME/.config/polybar/launch.sh 190 | 191 | hide_edge_borders smart 192 | 193 | # Pulse Audio controls 194 | bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume `pacmd list-sinks | grep -e 'name:' | sed -n 's/\tname\: <\(.*\)>/\1/p'` +5% 195 | bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume `pacmd list-sinks | grep -e 'name:' | sed -n 's/\tname\: <\(.*\)>/\1/p'` -5% 196 | bindsym Ctrl+Up exec --no-startup-id pactl set-sink-volume `pacmd list-sinks | grep -e 'name:' | sed -n 's/\tname\: <\(.*\)>/\1/p'` +5% 197 | bindsym Ctrl+Down exec --no-startup-id pactl set-sink-volume `pacmd list-sinks | grep -e 'name:' | sed -n 's/\tname\: <\(.*\)>/\1/p'` -5% 198 | bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute `pacmd list-sinks | grep -e 'name:' | sed -n 's/\tname\: <\(.*\)>/\1/p'` toggle 199 | bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 1 toggle # mute mic 200 | 201 | # Sreen brightness controls 202 | bindsym XF86MonBrightnessUp exec light -A 20 # increase screen brightness 203 | bindsym XF86MonBrightnessDown exec light -U 20 # decrease screen brightness 204 | 205 | # Printscreen using scrot 206 | bindsym --release Print exec "scrot -m '/tmp/%s_%H%M_%d.%m.%Y_$wx$h.png'" 207 | bindsym --release Shift+Print exec "scrot -s '/tmp/%s_%H%M_%d%m%Y_$wx$h.png'" 208 | bindsym --release $mod+Shift+Print exec "scrot -u -d 4 '/tmp/%s_%H%M_%d%m%Y_$wx$h.png'" 209 | 210 | # Startup applications 211 | exec --no-startup-id /usr/bin/clipit -n 212 | exec --no-startup-id /usr/bin/fcitx 213 | exec --no-startup-id /usr/bin/nm-applet 214 | exec --no-startup-id /usr/bin/blueman-applet 215 | exec --no-startup-id /usr/bin/nitrogen --restore 216 | exec --no-startup-id /usr/bin/redshift 217 | exec --no-startup-id /usr/bin/compton 218 | 219 | exec --no-startup-id /usr/bin/setxbmap -option caps:swapescape 220 | exec --no-startup-id /usr/bin/xmodmap ~/.Xmodmap 221 | 222 | # Second screen 223 | # exec --no-startup-id /usr/bin/xrandr --output HDMI-1 --auto --above LVDS-1 224 | # bindsym Ctrl+$mod+Shift+Up move workspace to output up 225 | # bindsym Ctrl+$mod+Shift+Down move workspace to output down 226 | 227 | # Set window border to 1 pixel 228 | new_window 1pixel 229 | 230 | # Gaps stuff 231 | gaps inner 10 232 | gaps outer 0 233 | smart_gaps on 234 | smart_borders on 235 | for_window [class="^.*"] border pixel 0 236 | client.unfocused #4c7899 #24364F #aaaaaa #2e9ef4 237 | client.focused #c10101 #880404 #ffffff #00AA00 238 | 239 | # Screenshots 240 | bindsym $mod+Control+Shift+4 --release exec "scrot -s /tmp/screenshot-$(date +%F_%T).png -e 'xclip -selection c -t image/png < $f'" 241 | 242 | # Assigning applications to workspaces 243 | # assign [class="(?i)google-chrome"] $workplace3 244 | # assign [class="(?i)firefox"] $workplace4 245 | # assign [class="(?i)nautilus"] $workplace5 246 | 247 | # lock screen 248 | bindsym Ctrl+$mod+l exec "$HOME/.config/i3/i3/i3lock.sh" 249 | exec --no-startup-id /usr/bin/xautolock -time 10 -locker "$HOME/.config/i3/i3/i3lock.sh" & 250 | -------------------------------------------------------------------------------- /.config/polybar/config: -------------------------------------------------------------------------------- 1 | ;===================================================== 2 | ; 3 | ; To learn more about how to configure Polybar 4 | ; go to https://github.com/jaagr/polybar 5 | ; 6 | ; The README contains alot of information 7 | ; 8 | ;===================================================== 9 | 10 | [colors] 11 | ;background = ${xrdb:color0:#222} 12 | background = #222 13 | background-alt = #444 14 | ;foreground = ${xrdb:color7:#222} 15 | foreground = #dfdfdf 16 | foreground-alt = #999 17 | primary = #ffb52a 18 | secondary = #e60053 19 | alert = #bd2c40 20 | 21 | [bar/mybar] 22 | monitor = ${env:MONITOR:} 23 | dpi=${env:DPI} 24 | height = ${env:POLYBAR_HEIGHT} 25 | width = 100% 26 | ;offset-x = 1% 27 | ;offset-y = 1% 28 | radius = 0 29 | fixed-center = true 30 | 31 | background = ${colors.background} 32 | foreground = ${colors.foreground} 33 | 34 | line-size = 0 35 | line-color = #f00 36 | 37 | border-size = 1 38 | border-color = #00000000 39 | 40 | padding-left = 0 41 | padding-right = 2 42 | 43 | module-margin-left = 1 44 | module-margin-right = 2 45 | 46 | ;font-0 = fixed:pixelsize=9;1 47 | ;font-1 = unifont:fontformat=truetype:size=8:antialias=false;0 48 | ;font-2 = siji:pixelsize=9;1 49 | 50 | font-0 = Noto Sans:size=9;3 51 | font-1 = FontAwesome:size=9;3 52 | 53 | modules-left = i3 54 | modules-center = 55 | modules-right = pulseaudio memory cpu wlan battery temperature date powermenu 56 | 57 | tray-position = right 58 | tray-maxsize = ${env:POLYBAR_TRAY_MAXSIZE} 59 | tray-padding = 2 60 | ;tray-transparent = true 61 | ;tray-background = #0063ff 62 | 63 | ;wm-restack = bspwm 64 | wm-restack = i3 65 | 66 | ;override-redirect = true 67 | 68 | ;scroll-up = bspwm-desknext 69 | ;scroll-down = bspwm-deskprev 70 | 71 | scroll-up = i3wm-wsnext 72 | scroll-down = i3wm-wsprev 73 | 74 | cursor-click = pointer 75 | cursor-scroll = ns-resize 76 | 77 | [module/xwindow] 78 | type = internal/xwindow 79 | label = %title:0:30:...% 80 | 81 | [module/xkeyboard] 82 | type = internal/xkeyboard 83 | blacklist-0 = num lock 84 | 85 | format-prefix = " " 86 | format-prefix-foreground = ${colors.foreground-alt} 87 | format-prefix-underline = ${colors.secondary} 88 | 89 | label-layout = %layout% 90 | label-layout-underline = ${colors.secondary} 91 | 92 | label-indicator-padding = 2 93 | label-indicator-margin = 1 94 | label-indicator-background = ${colors.secondary} 95 | label-indicator-underline = ${colors.secondary} 96 | 97 | [module/filesystem] 98 | type = internal/fs 99 | interval = 25 100 | 101 | mount-0 = / 102 | 103 | label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%% 104 | label-unmounted = %mountpoint% not mounted 105 | label-unmounted-foreground = ${colors.foreground-alt} 106 | 107 | [module/bspwm] 108 | type = internal/bspwm 109 | 110 | label-focused = %index% 111 | label-focused-background = ${colors.background-alt} 112 | label-focused-underline= ${colors.primary} 113 | label-focused-padding = 2 114 | 115 | label-occupied = %index% 116 | label-occupied-padding = 2 117 | 118 | label-urgent = %index%! 119 | label-urgent-background = ${colors.alert} 120 | label-urgent-padding = 2 121 | 122 | label-empty = %index% 123 | label-empty-foreground = ${colors.foreground-alt} 124 | label-empty-padding = 2 125 | 126 | ; Separator in between workspaces 127 | ; label-separator = | 128 | 129 | [module/i3] 130 | type = internal/i3 131 | format = 132 | index-sort = true 133 | wrapping-scroll = false 134 | 135 | ; Only show workspaces on the same output as the bar 136 | ;pin-workspaces = true 137 | 138 | label-mode-padding = 2 139 | label-mode-foreground = #000 140 | label-mode-background = ${colors.primary} 141 | 142 | ; focused = Active workspace on focused monitor 143 | label-focused = %name% 144 | label-focused-background = ${module/bspwm.label-focused-background} 145 | label-focused-underline = ${module/bspwm.label-focused-underline} 146 | label-focused-padding = ${module/bspwm.label-focused-padding} 147 | 148 | ; unfocused = Inactive workspace on any monitor 149 | label-unfocused = %name% 150 | label-unfocused-padding = ${module/bspwm.label-occupied-padding} 151 | 152 | ; visible = Active workspace on unfocused monitor 153 | label-visible = %name% 154 | label-visible-background = ${self.label-focused-background} 155 | label-visible-underline = ${self.label-focused-underline} 156 | label-visible-padding = ${self.label-focused-padding} 157 | 158 | ; urgent = Workspace with urgency hint set 159 | label-urgent = %name% 160 | label-urgent-background = ${module/bspwm.label-urgent-background} 161 | label-urgent-padding = ${module/bspwm.label-urgent-padding} 162 | 163 | ; Separator in between workspaces 164 | ; label-separator = | 165 | 166 | 167 | [module/mpd] 168 | type = internal/mpd 169 | format-online = 170 | 171 | icon-prev =  172 | icon-stop =  173 | icon-play =  174 | icon-pause =  175 | icon-next =  176 | 177 | label-song-maxlen = 25 178 | label-song-ellipsis = true 179 | 180 | [module/xbacklight] 181 | type = internal/xbacklight 182 | 183 | format =