From 933e2709ef862790c824b3cdcc6d52c2ace839c4 Mon Sep 17 00:00:00 2001 From: Kevin Mok Date: Thu, 15 Feb 2018 22:06:10 -0500 Subject: [PATCH] i3: Setup for laptop (based on PC config) Changes from PC: - status bar: larger font, battery - Unicode workspace icons - laptop-specific bindings: backlight, wi-fi on/off - scale Chrome - background --- .bashrc | 5 +- X1-Carbon-i3.conf | 213 ++++++++++++++++++++++++++++++++++++++++ X1-Carbon-i3blocks.conf | 151 ++++++++++++++++++++++++++++ X1-Carbon-terminator | 28 ++---- set-from-git.sh | 3 +- 5 files changed, 380 insertions(+), 20 deletions(-) create mode 100644 X1-Carbon-i3.conf create mode 100644 X1-Carbon-i3blocks.conf diff --git a/.bashrc b/.bashrc index a8cc6e1..4efb384 100644 --- a/.bashrc +++ b/.bashrc @@ -183,9 +183,12 @@ export QSYS_ROOTDIR="/home/kevin/usr/altera_lite/16.0/quartus/sopc_builder/bin" export EDITOR='vim' export VISUAL='vim' +# Both PC/Laptop {{{ +if [ "$(whoami)" == "kevin" ]; then + xset r rate 200 90 +fi # NZXT if [ "$(hostname)" == "NZXT" ]; then - xset r rate 200 90 xmodmap -e "clear Lock" xmodmap -e "keycode 22 = Caps_Lock" xmodmap -e "keycode 66 = BackSpace" diff --git a/X1-Carbon-i3.conf b/X1-Carbon-i3.conf new file mode 100644 index 0000000..61aff80 --- /dev/null +++ b/X1-Carbon-i3.conf @@ -0,0 +1,213 @@ +# applications {{{ # +# startup {{{ # +exec redshift -O 4000 +exec_always feh --bg-scale ~/Pictures/space-wallpaper.jpg +exec imwheel +exec terminator +# }}} startup # + +bindsym $mod+control+Return exec i3-sensible-terminal +bindsym Mod4+c exec google-chrome-stable --force-device-scale-factor=1.5 +bindsym Mod4+d exec discord + +# redshift {{{ # +bindsym $mod+Mod4+1 exec redshift -O 1500 +bindsym $mod+Mod4+2 exec redshift -O 2000 +bindsym $mod+Mod4+3 exec redshift -O 3000 +bindsym $mod+Mod4+4 exec redshift -O 4000 +bindsym $mod+Mod4+5 exec redshift -O 5000 +bindsym $mod+Mod4+0 exec redshift -x +# }}} redshift # + +# menu {{{ # +# start dmenu (a program launcher) +bindsym Mod4+Return exec dmenu_run +# There also is the (new) i3-dmenu-desktop which only displays applications +# shipping a .desktop file. It is a wrapper around dmenu, so you need that +# installed. +# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop +# }}} menu # +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod +# }}} applications # + +# changing/focusing/moving windows {{{ # +# change focus +bindsym control+h focus left +bindsym control+j focus down +bindsym control+k focus up +bindsym control+l focus right + +# move workspace to other monitor +bindsym $mod+h move workspace to output left +bindsym $mod+l move workspace to output right + +# move focused window +bindsym control+Shift+h move left +bindsym control+Shift+j move down +bindsym control+Shift+k move up +bindsym control+Shift+l move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+b split h + +# split in vertical orientation +bindsym $mod+v split v + +bindsym control+Shift+x kill +# }}} changing/focusing/moving windows # + +# container display {{{ # +# enter fullscreen mode for the focused container +bindsym $mod+f fullscreen toggle + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+t layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child +# }}} container display # + +# workspace {{{ # +# ws names {{{ # +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 ο‹­" +assign [class="discord"] $ws6 +# }}} ws names # + +# ws bindings {{{ # +# switch to workspace +bindsym $mod+plus workspace next +bindsym $mod+minus workspace prev + +bindsym $mod+1 workspace $ws1 +bindsym $mod+2 workspace $ws2 +bindsym $mod+3 workspace $ws3 +bindsym $mod+4 workspace $ws4 +bindsym $mod+5 workspace $ws5 +bindsym $mod+6 workspace $ws6 +bindsym $mod+7 workspace $ws7 +bindsym $mod+8 workspace $ws8 +bindsym $mod+9 workspace $ws9 +bindsym $mod+0 workspace $ws10 +# }}} ws bindings # + +# move container to ws {{{ # +# move focused container to workspace +bindsym $mod+control+1 move container to workspace $ws1 +bindsym $mod+control+2 move container to workspace $ws2 +bindsym $mod+control+3 move container to workspace $ws3 +bindsym $mod+control+4 move container to workspace $ws4 +# bindsym $mod+control+1 move container to workspace $ws1; workspace $ws1 +# bindsym $mod+control+2 move container to workspace $ws2; workspace $ws2 +# bindsym $mod+control+3 move container to workspace $ws3; workspace $ws3 +# bindsym $mod+control+4 move container to workspace $ws4; workspace $ws4 +bindsym $mod+control+5 move container to workspace $ws5 +bindsym $mod+control+6 move container to workspace $ws6 +bindsym $mod+control+7 move container to workspace $ws7 +bindsym $mod+control+8 move container to workspace $ws8 +bindsym $mod+control+9 move container to workspace $ws9 +bindsym $mod+control+0 move container to workspace $ws10 +# }}} move container to ws # + +# gaps {{{ # +# gaps inner 10 +# gaps outer 20 +# }}} gaps # +# }}} workspace # + +# reload config/computer {{{ # +bindsym $mod+Shift+s exec systemctl suspend +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+control+r restart +# reload the configuration file +bindsym $mod+Shift+c reload +# exit i3 (logs you out of your X session) +bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" +# }}} reload config # + +# resizing windows {{{ # +bindsym $mod+control+h resize shrink width 10 px or 10 ppt +bindsym $mod+control+k resize grow height 10 px or 10 ppt +bindsym $mod+control+j resize shrink height 10 px or 10 ppt +bindsym $mod+control+l resize grow width 10 px or 10 ppt +# }}} resizing windows # + +# status bar {{{ # +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +set $sb_font Hack Bold 24 +bar { + font pango:$sb_font + status_command i3blocks -c ~/.config/i3blocks/i3blocks.conf + tray_output none +} +# }}} status bar # + +# mod key/font {{{ # +set $mod Mod1 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. +font pango:Hack 14 +# This font is widely installed, provides lots of unicode glyphs, right-to-left +# text rendering and scalability on retina/hidpi displays (thanks to pango). +#font pango:DejaVu Sans Mono 8 + +# Before i3 v4.8, we used to recommend this one as the default: +# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +# The font above is very space-efficient, that is, it looks good, sharp and +# clear in small sizes. However, its unicode glyph coverage is limited, the old +# X core fonts rendering does not support right-to-left and this being a bitmap +# font, it doesn’t scale on retina/hidpi displays. +# }}} mod key/font # + +# function keys {{{ # +# backlight {{{ # +bindsym $mod+Shift+plus exec xbacklight -inc 10 +bindsym $mod+Shift+minus exec xbacklight -dec 10 +# }}} backlight # + +# connect/disconnect wifi {{{ # +bindsym $mod+Shift+w exec nmcli radio wifi on +bindsym $mod+Shift+q exec nmcli radio wifi off +# }}} connect/disconnect wifi # + +# volume keys {{{ # +bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -c 1 sset Master 5%+ +bindsym XF86AudioLowerVolume exec --no-startup-id amixer -c 1 sset Master 5%- +bindsym XF86AudioMute exec --no-startup-id amixer -c 1 amixer -D pulse set Master 1+ toggle +# }}} volume keys # + +# media keys {{{ # +bindsym XF86AudioPlay exec playerctl play +bindsym XF86AudioPause exec playerctl pause +bindsym XF86AudioNext exec playerctl next +bindsym XF86AudioPrev exec playerctl previous +# }}} media keys # +# volume keys }}} # diff --git a/X1-Carbon-i3blocks.conf b/X1-Carbon-i3blocks.conf new file mode 100644 index 0000000..736df15 --- /dev/null +++ b/X1-Carbon-i3blocks.conf @@ -0,0 +1,151 @@ +# properties {{{ # +# i3blocks config file +# +# Please see man i3blocks for a complete reference! +# The man page is also hosted at http://vivien.github.io/i3blocks +# +# List of valid properties: +# +# align +# color +# command +# full_text +# instance +# interval +# label +# min_width +# name +# separator +# separator_block_width +# short_text +# signal +# urgent +# }}} properties # + +# Global properties {{{ # +# The top properties below are applied to every block, but can be overridden. +# Each block command defaults to the script name to avoid boilerplate. +align=center +command=/usr/share/i3blocks/$BLOCK_NAME +separator=true +separator_block_width=25 +markup=pango +# }}} Global properties # + +[time] +command=date '+%H:%M.%a-%m-%d' +interval=60 +color=#999999 + +[load_average] +label=πŸ—  +interval=5 +color=#990000 +# font=Hack 14 + +[battery] +label=⚑ +interval=60 + +[wifi] +label=πŸ–§ +instance=wlp3s0 +interval=10 + +[name] +color=#cc5490 +interval=6000 + +# unused blocks {{{ # +# [memory] +# label=ο‹› +# color=#006600 + +# [cpu_usage -w 50 -c 80] +# label=ο„ˆ +# min_width=CPU: 100.00% +# color=#adeaea + +# Volume indicator +# +# The first parameter sets the step (and units to display) +# The second parameter overrides the mixer selection +# See the script for details. +# [volume] +# label=VOL +# #label=β™ͺ +# instance=Master +# #instance=PCM +# interval=once +# signal=10 + +# [memory] +# label=SWAP +# instance=swap +# separator=false +# interval=30 + +# Disk usage +# +# The directory defaults to $HOME if the instance is not specified. +# The script may be called with a optional argument to set the alert +# (defaults to 10 for 10%). +# [disk] +# label=HOME +# #instance=/mnt/data +# interval=30 + +# Network interface monitoring +# +# If the instance is not specified, use the interface used for default route. +# The address can be forced to IPv4 or IPv6 with -4 or -6 switches. +# [iface] +# #instance=wlan0 +# color=#00FF00 +# interval=10 +# separator=false + +# [bandwidth] +# #instance=eth0 +# interval=5 + +# Generic media player support +# +# This displays "ARTIST - SONG" if a music is playing. +# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others. +#[mediaplayer] +#instance=spotify +#interval=5 +#signal=10 + +# OpenVPN support +# +# Support multiple VPN, with colors. +#[openvpn] +#interval=20 + +# Temperature +# +# Support multiple chips, though lm-sensors. +# The script may be called with -w and -c switches to specify thresholds, +# see the script for details. +#[temperature] +#label=TEMP +#interval=10 + +# Key indicators +# +# Add the following bindings to i3 config file: +# +# bindsym --release Caps_Lock exec pkill -SIGRTMIN+11 i3blocks +# bindsym --release Num_Lock exec pkill -SIGRTMIN+11 i3blocks +#[keyindicator] +#instance=CAPS +#interval=once +#signal=11 + +#[keyindicator] +#instance=NUM +#interval=once +#signal=11 +# }}} unused blocks # diff --git a/X1-Carbon-terminator b/X1-Carbon-terminator index ba377ba..cca0424 100644 --- a/X1-Carbon-terminator +++ b/X1-Carbon-terminator @@ -1,25 +1,10 @@ [global_config] + focus = mouse + hide_from_taskbar = True inactive_color_offset = 1.0 title_font = Noto Sans 10 title_transmit_bg_color = "#3d3d3d" [keybindings] - close_term = w - cycle_next = Tab - edit_window_title = r - go_down = j - go_left = h - go_right = l - go_up = k - new_tab = t - new_window = n - next_tab = End - prev_tab = Home - resize_down = j - resize_left = h - resize_right = l - resize_up = k - split_horiz = i - split_vert = o [layouts] [[default]] [[[child1]]] @@ -31,12 +16,19 @@ [plugins] [profiles] [[default]] + background_darkness = 0.88 background_image = None + background_type = transparent copy_on_selection = True cursor_color = "#b9b9b9" custom_command = env TERM=xterm-256color bash - font = Monospace 11 + font = Hack 18 foreground_color = "#0077ff" palette = "#000000:#aa0000:#00aa00:#aa5500:#0000aa:#aa00aa:#00aaaa:#aaaaaa:#555555:#ff5555:#55ff55:#ffff55:#5555ff:#ff55ff:#55ffff:#ffffff" use_custom_command = True use_system_font = False + [[light]] + background_color = "#fdf6e3" + background_image = None + foreground_color = "#657b83" + palette = "#073642:#dc322f:#859900:#b58900:#268bd2:#d33682:#2aa198:#eee8d5:#002b36:#cb4b16:#586e75:#657b83:#839496:#6c71c4:#93a1a1:#fdf6e3" diff --git a/set-from-git.sh b/set-from-git.sh index 5683a08..a9957d2 100755 --- a/set-from-git.sh +++ b/set-from-git.sh @@ -10,10 +10,11 @@ done # config files dot_dir=~/linux-config config_dir=~/.config +pc=$(hostname) config_files="neofetch/config.conf i3/config i3blocks/i3blocks.conf" for file in $config_files; do rm $config_dir/$file - ln -s $dot_dir/$(echo $file | cut -d'/' -f 1).conf $config_dir/$file + ln -s $dot_dir/"$pc"-$(echo $file | cut -d'/' -f 1).conf $config_dir/$file # echo $(echo $file | cut -d'/' -f 1) done