1 Commits

Author SHA1 Message Date
id101010
1fed155d4a Configs for my home desktop computer 2017-01-28 14:21:02 +01:00
44 changed files with 1512 additions and 1102 deletions

View File

@@ -1,16 +1,30 @@
# dotfiles
# LinuxDotFiles
Personal Linux configuration files for
Less is more. This repo contains all my dotfiles for frequently used software.
- i3wm
- vim
- tmux
- urxvt
- zsh
# how to manage
# Dependencies
Personally I use [rcm](https://robots.thoughtbot.com/rcm-for-rc-files-in-dotfiles-repos) to keep my dotfiles in sync but this repo does not depend on anything.
You'll need the following software for a fully functional setup.
My ansible-setup will install this repo to ~/.dotfiles and rcm will take care
of all symlinks. Here are some simple commands to manage your symlinks:
- i3-wm
- i3status
- i3lock
- dmenu
- zsh
- vim
- rxvt-unicode
- tmux
- feh
- volnoti (AUR, GitHub)
- jauth-git (AUR, GitHub)
```bash
$ mkrc .$DOTFILE # Add new dotfile and create symlink
$ lsrc # List all linked dotfiles
$ rcup -v # Update all dotfile symlinks
```
# Screenshots
![Desktop](images/desktop_screenshot.png)
![VIM](images/coding_screenshot.png)

View File

@@ -1,88 +0,0 @@
################################
# _ #
# | | #
# _ _ _ ____ ____ _| |_ #
# | | | | '__\ \/ /\ \ / / __| #
# | |_| | | > < \ V /| |_ #
# \__,_|_| /_/\_\ \_/ \__| #
# #
################################
# Real transparency -> needs composite manager
URxvt*depth: 32
URxvt*background: rgba:0000/0000/0000/CFFF
ARxvt.transparent: true
URxvt.tintColor: white
URxvt.shading: 20
URxvt*tintColor: Black
#URxvt*saveLines: 9000000
# Font For Powerlinefonts: https://github.com/powerline/fonts (Arch linux -> AUR)
URxvt*font: xft:Roboto Mono for Powerline:pixelsize=15:antialias=true:hinting=false
URxvt*boldFont: xft:Roboto Mono for Powerline :bold:pixelsize=14:antialias=true:hinting=true
URxvt*tabbed.font: xft:Roboto Mono for Powerline :pixelsize=14:antialias=true:hinting=true
# Misc configurations
URxvt*colorUL: #4682B4
URxvt*tabbed.scrollBar: false
URxvt*tabbed.tabbar-fg: 3
URxvt*tabbed.tabbar-bg: 0
URxvt*tabbed.tab-fg: 0
URxvt*tabbed.tab-bg: 1
URxvt*tabbed.secondaryScroll: true
URxvt*inheritPixmap: true
#Graphic
Xft*dpi: 96
Xft*antialias: true
Xft*hinting: full
# Scroll behavior, don't scroll with output
URxvt*scrollBar: false
URxvt*secondaryScroll: true
URxvt*scrollTtyOutput: false
URxvt*scrollWithBuffer: true
URxvt*scrollTtyKeypress: true
# Clickable urls
URxvt*perl-ext-common: default,matcher
URxvt*url-launcher: /usr/bin/xdg-open
URxvt*matcher.button: 1
! special
*.foreground: #c5c8c6
*.background: #1d1f21
*.cursorColor: #c5c8c6
! black
*.color0: #282a2e
*.color8: #373b41
! red
*.color1: #a54242
*.color9: #cc6666
! green
*.color2: #8c9440
*.color10: #b5bd68
! yellow
*.color3: #de935f
*.color11: #f0c674
! blue
*.color4: #5f819d
*.color12: #81a2be
! magenta
*.color5: #85678f
*.color13: #b294bb
! cyan
*.color6: #5e8d87
*.color14: #8abeb7
! white
*.color7: #707880
*.color15: #c5c8c6

View File

@@ -1,89 +0,0 @@
# Environment vars
env:
TERM: alacritty
# Scroll config
scrolling:
# Maximum number of lines in the scrollback buffer.
history: 100000
# Scrolling distance multiplier.
multiplier: 3
font:
# Normal (roman) font face
normal:
family: "IBM Plex Mono"
style: regular
# Bold font face
bold:
family: "IBM Plex Mono"
style: bold
# Italic font face
italic:
family: "IBM Plex Mono"
style: italic
size: 11
# Colors (Gruvbox dark)
colors:
# Default colors
primary:
# hard contrast: background = '#1d2021'
background: '#282828'
# soft contrast: background = '#32302f'
foreground: '#ebdbb2'
# Normal colors
normal:
black: '#282828'
red: '#cc241d'
green: '#98971a'
yellow: '#d79921'
blue: '#458588'
magenta: '#b16286'
cyan: '#689d6a'
white: '#a89984'
# Bright colors
bright:
black: '#928374'
red: '#fb4934'
green: '#b8bb26'
yellow: '#fabd2f'
blue: '#83a598'
magenta: '#d3869b'
cyan: '#8ec07c'
white: '#ebdbb2'
cursor:
style:
shape: Underline
blinking: Always
unfocused_hollow: false
thickness: 0.15
# Background opacity
window:
opacity: 0.9
# Live config reload (changes require restart)
live_config_reload: true
# Shell
shell:
program: /bin/zsh
# Startup directory
working_directory: None
# url launcher
mouse:
hint:
launcher:
program: firefox
key_bindings:
- { key: Left, mods: Control, action: ResetFontSize }
- { key: Right, mods: Control, action: ResetFontSize }
- { key: Up, mods: Control, action: IncreaseFontSize }
- { key: Down, mods: Control, action: DecreaseFontSize }

View File

@@ -1,95 +0,0 @@
#########################################
# _____ _ #
# | __ \ | | #
# | | | |_ _ _ __ ___| |_ _ __ ___ #
# | | | | | | | '_ \/ __| __| '__/ __| #
# | |__| | |_| | | | \__ \ |_| | | (__ #
# |_____/ \__,_|_| |_|___/\__|_| \___| #
# #
#########################################
[global]
# these should be in sync with i3 gaps
origin = top-right
offset = 10x10
# Font
font = IBM Plex Mono 12
# Allow a small subset of html markup:
markup = yes
# The format of the message.
format = "%s %p\n%b"
# Sort messages by urgency.
sort = yes
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Alignment of message text.
alignment = center
# Show age of message if message is older than show_age_threshold
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit
word_wrap = no
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Shrink window if it's smaller than the width.
shrink = yes
# The transparency of the window. Range: [0; 100].
transparency = 0
# Don't remove messages, if the user is idle (no mouse or keyboard input)
idle_threshold = 120
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor.
follow = mouse
# Should a notification popped up from history be sticky or timeout
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
# The height of a single line.
line_height = 0
# Draw a line of "separator_height" pixel height between two
separator_height = 1
# Padding between text and separator.
padding = 10
# Horizontal padding.
horizontal_padding = 10
# Define a color for the separator.
separator_color = auto
# dmenu path.
dmenu = /usr/bin/dmenu -p dunst:
# Browser for opening urls in context menu.
browser = palemoon
# Align icons left/right/off
icon_position = left
# Paths to default icons.
icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/
# Frame width
frame_width = 3
frame_color = "#1d2021"
separator_color = "#d5c4a1"
[base16_low]
msg_urgency = low
background = "#3c3836"
foreground = "#665c54"
[base16_normal]
msg_urgency = normal
background = "#504945"
foreground = "#d5c4a1"
[base16_critical]
msg_urgency = critical
background = "#fb4934"
foreground = "#ebdbb2"
[spotify]
appname = Spotify*
format = "<b> Now Playing:</b>\n%s\n%b"
background = "#1d2021"
foreground = "#ebdbb2"
frame_color = "#1db954"
timeout = 5
script = spotup

View File

@@ -1,9 +0,0 @@
[user]
email = aaron@duckpond.ch
name = id101010
signingkey = 348F38C5
[commit]
gpgsign = true
[alias]
logs = log --show-signature
lg = log --graph --abbrev-commit --decorate --format=format:'%C(yellow)%h%C(reset)%C(auto)%d%C(reset) %C(normal)%s%C(reset) %C(dim white)%an%C(reset) %C(dim blue)(%ad)%C (reset)' --all

252
i3/config
View File

@@ -1,252 +0,0 @@
#######################################
# _____ ____ #
# |_ _||___ \ #
# | | __) |__ __ _ __ ___ #
# | | |__ < \ \ /\ / /| '_ ` _ \ #
# _| |_ ___) | \ V V / | | | | | | #
# |_____||____/ \_/\_/ |_| |_| |_| #
# #
#######################################
#############################################
# General configurations #
#############################################
# font
#set $font "pango:DejaVu Sans Mono for Powerline 10"
#set $font "pango:Source Code Pro for Powerline 10"
set $font "pango:IBM Plex Mono, FontAwesome 6 Free 11"
font $font
# floating modifier
# mod1 = Alt (xmodmap to show)
# mod4 = Winkey (xmodmap to show)
set $mod mod4
floating_modifier $mod
# focus follows mouse
focus_follows_mouse no
# no window decorations
new_window pixel 1
# gaps
gaps inner 10
gaps outer 10
#############################################
# Script Section #
#############################################
#
# "xev" and "showkeys" can be usefull to determine the keycodes.
#
# display brightness management (laptop)
bindsym XF86MonBrightnessUp exec --no-startup-id "xbacklight +10"
bindsym XF86MonBrightnessDown exec --no-startup-id "xbacklight -10"
# webcam
bindsym XF86WebCam exec --no-startup-id "cheese"
# screenshot
bindsym $mod+F4 exec --no-startup-id "gnome-screenshot -w"
# start dmenu-launcher
bindsym $mod+d exec --no-startup-id rofi -show drun -theme gruvbox-dark-soft -font "mono 10"
# lock i3 with i3lock
bindsym $mod+Shift+x exec --no-startup-id i3lock -c 000000
#############################################
# Keymaps #
#############################################
# start terminal
#bindsym $mod+Return exec --no-startup-id kitty
bindsym $mod+Return exec --no-startup-id alacritty
# kill focused window
bindsym $mod+Shift+q kill
# change focus vim Style
bindsym $mod+h focus left
bindsym $mod+l focus right
bindsym $mod+k focus up
bindsym $mod+j focus down
# move focused window vim Style
bindsym $mod+Shift+h move left
bindsym $mod+Shift+l move right
bindsym $mod+Shift+k move up
bindsym $mod+Shift+j move down
# 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+v split h
# split in vertical orientation
bindsym $mod+c split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w 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
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace
bindsym $mod+Shift+r restart
# exit i3
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3?' -b 'Yes' 'i3-msg exit'"
# enter the resize mode
bindsym $mod+r mode "resize"
# scratchpad
bindsym $mod+y scratchpad show
bindsym $mod+x move scratchpad
# Use pactl to adjust volume in PulseAudio.
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +1%
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -1%
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle
#############################################
# Workspace & Tags #
#############################################
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
#############################################
# Resize handling #
#############################################
mode "resize" {
# bindings to resize
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# back to normal
bindsym Return mode "default"
bindsym Escape mode "default"
}
#############################################
# Colors #
#############################################
# primary gruvbox colorscheme
set $bg #282828
set $bg0 #282828
set $bg1 #3c3836
set $bg2 #504945
set $bg3 #665c54
set $bg4 #7c6f64
set $fg #ebdbb2
set $red #cc241d
set $green #98971a
set $yellow #d79921
set $blue #458588
set $purple #b16286
set $aqua #689d68
set $grey #a89984
set $darkgrey #1d2021
set $white #000000
# workspace config
# class border backgr text indicator child_border
client.focused $bg2 $bg2 $bg $bg4 $bg2
client.focused_inactive $darkgrey $darkgrey $bg2 $bg $darkgrey
client.unfocused $darkgrey $darkgrey $bg2 $bg $darkgrey
client.urgent $red $bg2 $red $bg $red
#############################################
# i3-bar #
#############################################
bar {
font $font
position top
status_command i3status-rs ~/.config/i3status-rust/config.toml
colors {
background #222439 # -> BG of Wallpaper for fake transparency
statusline $yellow
# class border backgr text
focused_workspace $darkgrey $grey $darkgrey
inactive_workspace $darkgrey $darkgrey $grey
active_workspace $darkgrey $darkgrey $grey
urgent_workspace $red $darkgrey $red
}
}
#############################################
# specific windows #
#############################################
# always floating
for_window [class="Gedit"] floating enable
for_window [class="Teamspeak3"] floating enable
# 0px Border
for_window [class="chrome"] border none
for_window [class="firefox"] border none
#############################################
# auto start with i3 #
#############################################
# composite manager
exec --no-startup-id picom -b --config ~/.config/picom.conf
# less eye pain
exec --no-startup-id redshift -l 46.95:7.45 -t 6500:3000
# start notification daemon
exec --no-startup-id dunst -config ~/.config/dunstrc
# no beep!
exec --no-startup-id xset b off
# wallpaper
exec --no-startup-id feh --bg-fill ~/.config/wallpapers/gentoo.jpg
# syncthing
exec --no-startup-id syncthing --no-browser
# use lockscreen as screensaver (needs xss-lock installed)
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock -c000000 --nofork

View File

@@ -1,91 +0,0 @@
# vim: ts=2 sw=2 et ft=toml
[theme]
theme = "gruvbox-dark"
[icons]
icons = "awesome5"
[[block]]
block = "pacman"
interval = 600
[[block]]
block = "custom"
command = "if [[ $(date +'%H%M') -eq 1620 ]]; then; echo ''; else; echo ''; fi"
interval = 10
hide_when_empty = true
[[block]]
block = "custom"
command = "if [[ $(date +'%H') < 16 ]]; then; echo '☕'; else; echo '🍺'; fi"
interval = 10
[[block]]
block = "disk_space"
path = "/"
format = "$icon $free"
info_type = "available"
interval = 20
[[block]]
block = "net"
device = "enp0s31f6"
format = "$icon $ip"
interval = 1
missing_format = ""
[[block]]
block = "net"
device = "wlp0s20f3"
format = "$icon $ip"
interval = 1
missing_format = ""
[[block]]
block = "net"
device = "enp10s0u1"
format = "$icon $ip"
interval = 1
missing_format = ""
[[block]]
block = "cpu"
interval = 1
format = " $icon $barchart $utilization "
format_alt = " $icon $frequency { $boost|} "
[[block]]
block = "memory"
interval = 5
warning_mem = 80
critical_mem = 95
[[block]]
block = "battery"
format = " $icon $percentage {$time |}"
[[block]]
block = "temperature"
interval = 10
format = " $icon "
format_alt = " min: $min C, max: $max C, avg: $average C "
chip = "*-isa-*"
[[block]]
block = "sound"
format = " $icon { $volume|}"
[[block.click]]
button = "left"
cmd = "pavucontrol"
[[block]]
block = "backlight"
device = "intel_backlight"
[[block]]
block = "time"
format = " $icon $timestamp.datetime(f:'%a %d.%m.%y %H:%M:%S') "
timezone = "Europe/Zurich"
interval = 1

294
i3wm/config Normal file
View File

@@ -0,0 +1,294 @@
#############################################
# General configurations #
#############################################
# font
set $font "pango:RobotoMono 12"
font $font
# floating modifier
# mod1 = Alt (xmodmap to show)
# mod4 = Winkey (xmodmap to show)
set $mod mod4
floating_modifier $mod
#gaps
gaps inner 13
gaps outer 5
###border
new_window pixel 3
# focus follows mouse
focus_follows_mouse yes
#############################################
# Script Section #
#############################################
#
# "xev" and "showkeys" can be usefull to determine the keycodes.
#
# Sound softkeys management
bindsym Print exec ~/.i3/util/volnotid.sh down
bindsym Scroll_Lock exec ~/.i3/util/volnotid.sh up
bindsym Pause exec ~/.i3/util/volnotid.sh mute
# Display brightness management
bindsym XF86MonBrightnessUp exec "xbacklight +10"
bindsym XF86MonBrightnessDown exec "xbacklight -10"
# Lenovo Key wifi-menu
bindsym XF86Launch1 exec urxvt -e sh -c "sudo wifi-menu wlp3s0"
# jauth two factor authenticator
bindsym $mod+F1 exec ~/.i3/util/authenticator.sh google
bindsym $mod+F2 exec ~/.i3/util/authenticator.sh facebook
bindsym $mod+F3 exec ~/.i3/util/authenticator.sh dropbox
# start dmenu-launcher
bindsym $mod+d exec ~/.i3/util/i3dmenu-wrapper.sh
# lock i3 with i3lock
bindsym $mod+Shift+x exec ~/.i3/util/i3blur.py && systemctl suspend
#############################################
# Keymaps #
#############################################
# start terminal
bindsym $mod+Return exec --no-startup-id i3-sensible-terminal
# kill focused window
bindsym $mod+Shift+q kill
# change focus vim Style
bindsym $mod+h focus left
bindsym $mod+l focus right
bindsym $mod+j focus up
bindsym $mod+k focus down
# move focused window vim Style
bindsym $mod+Shift+h move left
bindsym $mod+Shift+l move right
bindsym $mod+Shift+j move up
bindsym $mod+Shift+k move down
# 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+v split h
# split in vertical orientation
bindsym $mod+c split v
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# change container layout (stacked, tabbed, toggle split)
bindsym $mod+s layout stacking
bindsym $mod+w 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
# reload the configuration file
bindsym $mod+Shift+c reload
# restart i3 inplace
bindsym $mod+Shift+r restart
# exit i3
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3?' -b 'Yes' 'i3-msg exit'"
# enter the resize mode
bindsym $mod+r mode "resize"
# scratchpad
bindsym $mod+y scratchpad show
bindsym $mod+x move scratchpad
#############################################
# Workspace & Tags #
#############################################
# name for the workspaces
set $tag1 "1 Terminal"
set $tag2 "2 Internet"
set $tag3 "3 Coding"
set $tag4 "4 Music"
# switch to workspace
bindsym $mod+1 workspace $tag1
bindsym $mod+2 workspace $tag2
bindsym $mod+3 workspace $tag3
bindsym $mod+4 workspace $tag4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $tag1
bindsym $mod+Shift+2 move container to workspace $tag2
bindsym $mod+Shift+3 move container to workspace $tag3
bindsym $mod+Shift+4 move container to workspace $tag4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
#############################################
# Resize handling #
#############################################
mode "resize" {
# bindings to resize
bindsym h resize shrink width 10 px or 10 ppt
bindsym j resize grow height 10 px or 10 ppt
bindsym k resize shrink height 10 px or 10 ppt
bindsym l resize grow width 10 px or 10 ppt
# back to normal
bindsym Return mode "default"
bindsym Escape mode "default"
}
#############################################
## Colors #
##############################################
# Darkbrown colorscheme
set $DARKBROWN #402e2e
set $LIGHTBROWN #978965
set $DARKGREY #1f1f1f
set $DARKRED #9b0e0e
# Solarized colorscheme
set $BACKGROUND #20444d
set $FOREGROUND #93a1a1
set $LIGHTGREY #dc322f
set $GREEN #b0cc54
set $BROWN #b58900
set $BLUE #268bd2
set $VIOLET #6c71c4
set $MAGENTA #2aa198
set $WHITE #fdf6e3
client.background #ffffff
# Darkbrown colorscheme
# name #border #background #text #indicator #child_border
#client.focused $DARKBROWN $LIGHTBROWN $DARKBROWN $LIGHTBROWN $DARKBROWN
#client.unfocused $DARKBROWN $DARKBROWN $LIGHTBROWN $LIGHTBROWN $DARKBROWN
#client.focused_inactive $DARKBROWN $DARKBROWN $LIGHTBROWN $LIGHTBROWN $DARKBROWN
#client.urgent $DARKBROWN $DARKBROWN $LIGHTBROWN $LIGHTBROWN $DARKBROWN
# Solarized colorscheme
# name #border #background #text #indicator #child_border
client.focused $MAGENTA $BACKGROUND $GREEN $GREEN $MAGENTA
client.unfocused $BACKGROUND $BACKGROUND $GREEN $GREEN $BACKGROUND
client.focused_inactive $BACKGROUND $BACKGROUND $GREEN $GREEN $BACKGROUND
client.urgent $BACKGROUND $BACKGROUND $BACKGROUND $GREEN $BACKGROUND
#############################################
# i3-bar #
#############################################
bar {
position top
font $font
i3bar_command /usr/bin/i3bar
status_command i3status -c ~/.i3/i3status.conf
separator_symbol "  "
# Solarized colorscheme
colors {
statusline $GREEN
background $BACKGROUND
separator $MAGENTA
# name #border #bg #text
focused_workspace $MAGENTA $BACKGROUND $GREEN
active_workspace $BACKGROUND $BACKGROUND $GREEN
inactive_workspace $BACKGROUND $BACKGROUND $GREEN
urgent_workspace $BACKGROUND $BACKGROUND $GREEN
}
}
#############################################
# specific windows #
#############################################
# always floating
for_window [class="Thunar"] floating enable
for_window [class="Nautilus"] floating enable
for_window [class="GParted"] floating enable
for_window [class="Gedit"] floating enable
for_window [class="Evince"] floating enable
for_window [class="Telegram"] floating enable
for_window [class="teamspeak3"] floating enable
for_window [class="rhythmbox"] floating enable
for_window [class="LibreOffice"] floating enable
for_window [class="JAuth"] floating enable
# 0px Border
for_window [class="chrome"] border none
for_window [class="Firefox"] border none
# 1px Border
for_window [class="URxvt" ] border 1pixel
#############################################
# auto start with i3 #
#############################################
# less eye pain
exec --no-startup-id redshift-gtk
exec --no-startup-id compton --config ~/.compton.conf
# fucking no beep!
exec --no-startup-id xset b off
# set dpi for my monitor
exec --no-startup-id xrandr --dpi 81
# set mouse accel
exec --no-startup-id xset m 1/4 1
# volnoti volume changer
exec --no-startup-id volnoti
# numlock on by default
exec --no-startup-id numlockx on
# wallpapers
exec --no-startup-id nitrogen --restore
# archlinux update notifier
exec --no-startup-id aarchup
# dropbox daemon
exec dropbox start
# telegram
exec /bin/telegram-desktop

69
i3wm/i3status.conf Normal file
View File

@@ -0,0 +1,69 @@
# i3status configuration file.
# see "man i3status" for documentation.
# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!
general {
colors = true
interval = 1
}
#order += "ipv6"
order += "disk /home"
order += "disk /"
order += "disk /media/Data1"
order += "disk /media/Data2"
order += "run_watch VPN"
order += "ethernet eth0"
order += "cpu_temperature 0"
order += "volume master"
order += "tztime local"
ethernet eth0 {
format_up = "🔌 %ip (%speed)"
format_down = "🔌 down"
}
run_watch DHCP {
pidfile = "/var/run/dhclient*.pid"
}
run_watch VPN {
pidfile = "/var/run/vpn/pid"
}
tztime local {
format = " 📅 %d-%m-%Y 🕑 %H:%M:%S"
}
cpu_temperature 0 {
format = "🌡 %degrees °C"
max_threshold = 65
path = "/sys/devices/platform/coretemp.0/hwmon/hwmon1/temp1_input"
}
disk "/" {
format = "root: %free"
}
disk "/home" {
format = "home: %free"
}
disk "/media/Data1" {
format = "data1: %free"
}
disk "/media/Data2" {
format = "data2: %free"
}
volume master {
format = "♪ %volume"
device = "default"
mixer = "Master"
mixer_idx = 0
}

37
i3wm/util/authenticator.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
###############################
# _ _ _ #
# (_) | | | | #
# _ __ _ _ _| |_| |__ #
# | |/ _` | | | | __| '_ \ #
# | | (_| | |_| | |_| | | | #
# | |\__,_|\__,_|\__|_| |_| #
# _/ | #
# |__/ #
# #
###############################
# This script needs jauth-git to work
# jauth can be installed from the arch aur
#
# yaourt -S jauth-git
#
SECRET_GOOGLE="There"
SECRET_FACEBOOK="IsJust"
SECRET_DROPBOX="NoWayImUploadingThisToGit"
ARG="${1}"
case ${ARG} in
"google")
jauth -secret=${SECRET_GOOGLE}
;;
"facebook")
jauth -secret=${SECRET_FACEBOOK}
;;
"dropbox")
jauth -secret=${SECRET_DROPBOX}
;;
esac

64
i3wm/util/i3blur.py Executable file
View File

@@ -0,0 +1,64 @@
#!/usr/bin/python2
###############################
# _ ____ _ _ #
# (_)___ \| | | | #
# _ __) | |__ | |_ _ _ __ #
# | ||__ <| '_ \| | | | | '__|#
# | |___) | |_) | | |_| | | #
# |_|____/|_.__/|_|\__,_|_| #
# #
###############################
"""
A simple python script that takes a
screenshot, blurs it and invokes i3lock.
"""
import gtk.gdk
import os, sys
from PIL import ImageFilter
from PIL import Image
# Get screen and its size
w = gtk.gdk.get_default_root_window()
sz = w.get_size()
print "[DEBUG]: The size of the window is %d x %d" % sz
# Get a drawable with the size of the desktop
scr = gtk.gdk.Pixbuf( gtk.gdk.COLORSPACE_RGB,
False,
8,
sz[0],
sz[1])
# Fill it with the screenshot
scr = scr.get_from_drawable(w,
w.get_colormap(),
0,
0,
0,
0,
sz[0],
sz[1])
# Save the screenshot as png
if(scr != None):
scr.save("/tmp/i3screen.png","png")
print "[DEBUG]: Screenshot saved to /tmp/i3screen.png."
else:
print "[DEBUG]: Unable to get the screenshot."
# Load the screenshot as image and blur it
iml = Image.open("/tmp/i3screen.png")
iml = iml.filter(ImageFilter.BLUR)
# Save the blured screenshot and call i3lock
if(iml != None):
iml.save("/tmp/i3screenblr.png", "png")
os.system("i3lock -i /tmp/i3screenblr.png")
print "[DEBUG]: Screenshot blured and saved to /tmp/i3screenblr.png."
else:
print "[DEBUG]: Unable to blur the screenshot."

8
i3wm/util/i3dmenu-wrapper.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
BG="#002b36"
FG="#93a1a1"
SBG="#6c71c4"
SFG="#93a1a1"
i3-dmenu-desktop --dmenu="dmenu -i -nb $BG -nf $FG -sb $SBG -sf $SFG -l 16"

55
i3wm/util/volnotid.sh Executable file
View File

@@ -0,0 +1,55 @@
#!/bin/bash
##########################################
# _ _ _ _ #
# | | | | (_) | | #
# __ _____ | |_ __ ___ | |_ _ __| | #
# \ \ / / _ \| | '_ \ / _ \| __| |/ _` | #
# \ V / (_) | | | | | (_) | |_| | (_| | #
# \_/ \___/|_|_| |_|\___/ \__|_|\__,_| #
# #
##########################################
#
# This script uses volnoti, which can be installed from git or
# from the arch aur.
#
# yaourt -S volnoti
#
VOLUME=$(amixer get Master | grep Mono: | sed 's|[^[]*\[\([0-9]*\).*|\1|')
VALUE=3dB
MUTE=0
case "$1" in
"up")
# Increase Volume
[[ "$VOLUME" -eq 100 ]] && VALUE=0
amixer -q set Master $VALUE+ unmute && killall -SIGUSR1 i3status
MUTE=0
;;
"down")
# Decrease Volume
amixer -q set Master $VALUE- unmute && killall -SIGUSR1 i3status
MUTE=0
# If the Volume is already 0, then mute
if [ "$VOLUME" == "0" ]; then
MUTE=1
amixer -q set Master toggle && killall -SIGUSR1 i3status
fi
;;
"mute")
# Mute
amixer -q set Master toggle && killall -SIGUSR1 i3status
MUTE=1
;;
esac
VOLUME=$(amixer get Master | grep Mono: | sed 's|[^[]*\[\([0-9]*\).*|\1|')
if [ "$MUTE" == "0" ]; then
volnoti-show $VOLUME
else
volnoti-show -m $VOLUME
fi

21
i3wm/util/wallpapers.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/sh
#######################################################
# _ _ #
# | | | #
# __ ____ _| | |_ __ __ _ _ __ ___ _ __ ___ #
# \ \ /\ / / _` | | | '_ \ / _` | '_ \ / _ \ '__/ __| #
# \ V V / (_| | | | |_) | (_| | |_) | __/ | \__ \ #
# \_/\_/ \__,_|_|_| .__/ \__,_| .__/ \___|_| |___/ #
# | | | | #
# |_| |_| #
#######################################################
PICTURES="$HOME/.wallpapers/"
SHOWTIME="10m"
while true; do
find $PICTURES -type f \( -name '*.jpg' -o -name '*.png' \) -print0 | shuf -n1 -z | xargs -0 feh --bg-scale
sleep $SHOWTIME
done

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

View File

@@ -1,31 +0,0 @@
macos_option_as_alt no
# Themes
include ./theme.conf
# Fonts
font_family MesloLGS NF
font_size 11
bold_font auto
italic_font auto
bold_italic_font auto
# No screaming please
enable_audio_bell no
# Background opacity
background_opacity 0.95
# How to open links
open_url_with firefox
open_url_modifiers none
# INFINITE POWER (scrollback)!!!
scrollback_lines -1
# Do not annoy me
update_check_interval 0
# Zoom with ; and _
map cmd+0x2c change_font_size all +2.0
map cmd+0x2d change_font_size all -2.0

View File

@@ -1,49 +0,0 @@
# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
# This work is licensed under the terms of the MIT license.
# For a copy, see https://opensource.org/licenses/MIT.
background #282828
foreground #ebdbb2
cursor #928374
selection_foreground #928374
selection_background #3c3836
color0 #282828
color8 #928374
# red
color1 #cc241d
# light red
color9 #fb4934
# green
color2 #98971a
# light green
color10 #b8bb26
# yellow
color3 #d79921
# light yellow
color11 #fabd2d
# blue
color4 #458588
# light blue
color12 #83a598
# magenta
color5 #b16286
# light magenta
color13 #d3869b
# cyan
color6 #689d6a
# lighy cyan
color14 #8ec07c
# light gray
color7 #a89984
# dark gray
color15 #928374

0
mpd/database Normal file
View File

0
mpd/log Normal file
View File

424
mpd/mpd.conf Normal file
View File

@@ -0,0 +1,424 @@
# An example configuration file for MPD.
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Files and directories #######################################################
#
# This setting controls the top directory which MPD will search to discover the
# available audio files and add them to the daemon's online database. This
# setting defaults to the XDG directory, otherwise the music directory will be
# be disabled and audio files will only be accepted over ipc socket (using
# file:// protocol) or streaming files over an accepted protocol.
#
music_directory "~/Music"
#
# This setting sets the MPD internal playlist directory. The purpose of this
# directory is storage for playlists created by MPD. The server will use
# playlist files not created by the server but only if they are in the MPD
# format. This setting defaults to playlist saving being disabled.
#
playlist_directory "~/.mpd/playlists"
#
# This setting sets the location of the MPD database. This file is used to
# load the database at server start up and store the database while the
# server is not up. This setting defaults to disabled which will allow
# MPD to accept files over ipc socket (using file:// protocol) or streaming
# files over an accepted protocol.
#
db_file "~/.mpd/database"
#
# These settings are the locations for the daemon log files for the daemon.
# These logs are great for troubleshooting, depending on your log_level
# settings.
#
# The special value "syslog" makes MPD use the local syslog daemon. This
# setting defaults to logging to syslog, otherwise logging is disabled.
#
log_file "~/.mpd/log"
#
# This setting sets the location of the file which stores the process ID
# for use of mpd --kill and some init scripts. This setting is disabled by
# default and the pid file will not be stored.
#
pid_file "~/.mpd/pid"
#
# This setting sets the location of the file which contains information about
# most variables to get MPD back into the same general shape it was in before
# it was brought down. This setting is disabled by default and the server
# state will be reset on server start up.
#
state_file "~/.mpd/state"
#
# The location of the sticker database. This is a database which
# manages dynamic information attached to songs.
#
sticker_file "~/.mpd/sticker.sql"
#
###############################################################################
# General music daemon options ################################################
#
# This setting specifies the user that MPD will run as. MPD should never run as
# root and you may use this setting to make MPD change its user ID after
# initialization. This setting is disabled by default and MPD is run as the
# current user.
#
user "aaron"
#
# This setting specifies the group that MPD will run as. If not specified
# primary group of user specified with "user" setting will be used (if set).
# This is useful if MPD needs to be a member of group such as "audio" to
# have permission to use sound card.
#
group "users"
#
# This setting sets the address for the daemon to listen on. Careful attention
# should be paid if this is assigned to anything other then the default, any.
# This setting can deny access to control of the daemon.
#
# For network
#bind_to_address "any"
#
# And for Unix Socket
#bind_to_address "~/.mpd/socket"
#
# This setting is the TCP port that is desired for the daemon to get assigned
# to.
#
#port "6600"
#
# This setting controls the type of information which is logged. Available
# setting arguments are "default", "secure" or "verbose". The "verbose" setting
# argument is recommended for troubleshooting, though can quickly stretch
# available resources on limited hardware storage.
#
log_level "default"
#
# If you have a problem with your MP3s ending abruptly it is recommended that
# you set this argument to "no" to attempt to fix the problem. If this solves
# the problem, it is highly recommended to fix the MP3 files with vbrfix
# (available from <http://www.willwap.co.uk/Programs/vbrfix.php>), at which
# point gapless MP3 playback can be enabled.
#
#gapless_mp3_playback "yes"
#
# Setting "restore_paused" to "yes" puts MPD into pause mode instead
# of starting playback after startup.
#
#restore_paused "no"
#
# This setting enables MPD to create playlists in a format usable by other
# music players.
#
#save_absolute_paths_in_playlists "no"
#
# This setting defines a list of tag types that will be extracted during the
# audio file discovery process. The complete list of possible values can be
# found in the user manual.
metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc"
#
# This setting enables automatic update of MPD's database when files in
# music_directory are changed.
#
auto_update "yes"
#
# Limit the depth of the directories being watched, 0 means only watch
# the music directory itself. There is no limit by default.
#
#auto_update_depth "3"
#
###############################################################################
# Symbolic link behavior ######################################################
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#
#follow_outside_symlinks "yes"
#
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#
#follow_inside_symlinks "yes"
#
###############################################################################
# Zeroconf / Avahi Service Discovery ##########################################
#
# If this setting is set to "yes", service information will be published with
# Zeroconf / Avahi.
#
#zeroconf_enabled "yes"
#
# The argument to this setting will be the Zeroconf / Avahi unique name for
# this MPD server on the network.
#
#zeroconf_name "Music Player"
#
###############################################################################
# Permissions #################################################################
#
# If this setting is set, MPD will require password authorization. The password
# can setting can be specified multiple times for different password profiles.
#
#password "password@read,add,control,admin"
#
# This setting specifies the permissions a user has who has not yet logged in.
#
#default_permissions "read,add,control,admin"
#
###############################################################################
# Database #######################################################################
#
#database {
# plugin "proxy"
# host "other.mpd.host"
# port "6600"
#}
# Input #######################################################################
#
input {
plugin "curl"
# proxy "proxy.isp.com:8080"
# proxy_user "user"
# proxy_password "password"
}
#
###############################################################################
# Audio Output ################################################################
#
# MPD supports various audio output types, as well as playing through multiple
# audio outputs at the same time, through multiple audio_output settings
# blocks. Setting this block is optional, though the server will only attempt
# autodetection for one sound card.
#
# An example of an ALSA output:
#
audio_output {
type "alsa"
name "HDA Intel PCH"
# device "hw:0,0" # optional
mixer_type "software" # optional
# mixer_device "default" # optional
# mixer_control "PCM" # optional
# mixer_index "0" # optional
}
#
# An example of an OSS output:
#
#audio_output {
# type "oss"
# name "My OSS Device"
## device "/dev/dsp" # optional
## mixer_type "hardware" # optional
## mixer_device "/dev/mixer" # optional
## mixer_control "PCM" # optional
#}
#
# An example of a shout output (for streaming to Icecast):
#
#audio_output {
# type "shout"
# encoder "vorbis" # optional
# name "My Shout Stream"
# host "localhost"
# port "8000"
# mount "/mpd.ogg"
# password "hackme"
# quality "5.0"
# bitrate "128"
# format "44100:16:1"
## protocol "icecast2" # optional
## user "source" # optional
## description "My Stream Description" # optional
## url "http://example.com" # optional
## genre "jazz" # optional
## public "no" # optional
## timeout "2" # optional
## mixer_type "software" # optional
#}
#
# An example of a recorder output:
#
#audio_output {
# type "recorder"
# name "My recorder"
# encoder "vorbis" # optional, vorbis or lame
# path "/var/lib/mpd/recorder/mpd.ogg"
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
#}
#
# An example of a httpd output (built-in HTTP streaming server):
#
#audio_output {
# type "httpd"
# name "My HTTP Stream"
# encoder "vorbis" # optional, vorbis or lame
# port "8000"
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
## quality "5.0" # do not define if bitrate is defined
# bitrate "128" # do not define if quality is defined
# format "44100:16:1"
# max_clients "0" # optional 0=no limit
#}
#
# An example of a pulseaudio output (streaming to a remote pulseaudio server)
#
#audio_output {
# type "pulse"
# name "My Pulse Output"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
#}
#
# An example of a winmm output (Windows multimedia API).
#
#audio_output {
# type "winmm"
# name "My WinMM output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
# or
## device "0" # optional
## mixer_type "hardware" # optional
#}
#
# An example of an openal output.
#
#audio_output {
# type "openal"
# name "My OpenAL output"
## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional
#}
#
## Example "pipe" output:
#
#audio_output {
# type "pipe"
# name "my pipe"
# command "aplay -f cd 2>/dev/null"
## Or if you're want to use AudioCompress
# command "AudioCompress -m | aplay -f cd 2>/dev/null"
## Or to send raw PCM stream through PCM:
# command "nc example.org 8765"
# format "44100:16:2"
#}
#
## An example of a null output (for no audio output):
#
#audio_output {
# type "null"
# name "My Null Output"
# mixer_type "none" # optional
#}
#
# If MPD has been compiled with libsamplerate support, this setting specifies
# the sample rate converter to use. Possible values can be found in the
# mpd.conf man page or the libsamplerate documentation. By default, this is
# setting is disabled.
#
#samplerate_converter "Fastest Sinc Interpolator"
#
###############################################################################
# Normalization automatic volume adjustments ##################################
#
# This setting specifies the type of ReplayGain to use. This setting can have
# the argument "off", "album", "track" or "auto". "auto" is a special mode that
# chooses between "track" and "album" depending on the current state of
# random playback. If random playback is enabled then "track" mode is used.
# See <http://www.replaygain.org> for more details about ReplayGain.
# This setting is off by default.
#
#replaygain "album"
#
# This setting sets the pre-amp used for files that have ReplayGain tags. By
# default this setting is disabled.
#
#replaygain_preamp "0"
#
# This setting sets the pre-amp used for files that do NOT have ReplayGain tags.
# By default this setting is disabled.
#
#replaygain_missing_preamp "0"
#
# This setting enables or disables ReplayGain limiting.
# MPD calculates actual amplification based on the ReplayGain tags
# and replaygain_preamp / replaygain_missing_preamp setting.
# If replaygain_limit is enabled MPD will never amplify audio signal
# above its original level. If replaygain_limit is disabled such amplification
# might occur. By default this setting is enabled.
#
#replaygain_limit "yes"
#
# This setting enables on-the-fly normalization volume adjustment. This will
# result in the volume of all playing audio to be adjusted so the output has
# equal "loudness". This setting is disabled by default.
#
#volume_normalization "no"
#
###############################################################################
# Character Encoding ##########################################################
#
# If file or directory names do not display correctly for your locale then you
# may need to modify this setting.
#
filesystem_charset "UTF-8"
#
# This setting controls the encoding that ID3v1 tags should be converted from.
#
#id3v1_encoding "ISO-8859-1"
#
###############################################################################
# SIDPlay decoder #############################################################
#
# songlength_database:
# Location of your songlengths file, as distributed with the HVSC.
# The sidplay plugin checks this for matching MD5 fingerprints.
# See http://www.c64.org/HVSC/DOCUMENTS/Songlengths.faq
#
# default_songlength:
# This is the default playing time in seconds for songs not in the
# songlength database, or in case you're not using a database.
# A value of 0 means play indefinitely.
#
# filter:
# Turns the SID filter emulation on or off.
#
#decoder {
# plugin "sidplay"
# songlength_database "/media/C64Music/DOCUMENTS/Songlengths.txt"
# default_songlength "120"
# filter "true"
#}
#
###############################################################################
# NCMPCPP Visualisation #######################################################
#
#
audio_output {
type "fifo"
name "my_fifo"
path "/tmp/mpd.fifo"
format "44100:16:2"
}
#
###############################################################################

0
mpd/pid Normal file
View File

0
mpd/state Normal file
View File

0
mpd/sticker.sql Normal file
View File

49
ncmpcpp/config Normal file
View File

@@ -0,0 +1,49 @@
mpd_music_dir = "/home/aaron/Music"
mpd_crossfade_time = "5"
# Visualizer
visualizer_fifo_path = "/tmp/mpd.fifo"
visualizer_output_name = "fifo"
visualizer_type = "wave" (spectrum/wave)
# Playlist
song_list_format = "{%a - }{%t}|{$8%f$9}$R{$7(%b)$9}"
song_status_format = "{%a - }{%t - }{%b}"
alternative_header_first_line_format = "{$5%t$/b}"
alternative_header_second_line_format= "$7{$b%a$/b}$9 - $5{%b}$9 $8{(%y)}"
now_playing_prefix = "$b"
now_playing_suffix = "$/b"
browser_playlist_prefix = "$7$bplaylist$/b$9 "
selected_item_prefix = "$6"
selected_item_suffix = "$9"
song_window_title_format = "{%a - }{%t}|{%f}"
# Progress bar look
song_columns_list_format = "(8)[white]{l} (28)[cyan]{a} (28)[white]{b} (50)[cyan]{t}"
discard_colors_if_item_is_selected = "yes"
progressbar_look = "─╼ "
user_interface = "classic" (classic/alternative)
header_visibility = "no"
titles_visibility = "no"
cyclic_scrolling = "yes"
mouse_support = "no"
external_editor = "vim"
use_console_editor = "yes" (set to yes, if your editor is console app)
# Colors
colors_enabled = "yes"
empty_tag_color = "cyan"
header_window_color = "white"
volume_color = "cyan"
state_line_color = "white"
state_flags_color = "white"
main_window_color = "white"
color1 = "white"
color2 = "cyan"
main_window_highlight_color = "white"
progressbar_color = "white"
statusbar_color = "cyan"
alternative_ui_separator_color = "black"
active_column_color = "cyan"
window_border_color = "white"
# vim: set ts=2 sw=2 tw=0 :

View File

@@ -1,168 +0,0 @@
#################################
#
# Backend
#
#################################
# Backend to use: "xrender" or "glx".
# GLX backend is typically much faster.
# backend = "xrender";
# backend = "xr_glx_hybrid";
backend = "glx";
#################################
#
# GLX backend
#
#################################
glx-no-stencil = true;
glx-copy-from-front = false;
glx-no-rebind-pixmap = true;
use-damage = false;
#################################
#
# Shadows
#
#################################
# Enabled client-side shadows on windows.
shadow = true;
# The blur radius for shadows. (default 12)
shadow-radius = 20;
# The left offset for shadows. (default -15)
shadow-offset-x = -20;
# The top offset for shadows. (default -15)
shadow-offset-y = -20;
# The translucency for shadows. (default .75)
shadow-opacity = 0.8;
# Exclude from shadow drawing
shadow-exclude = [
"_GTK_FRAME_EXTENTS@:c",
# Removed to avoid no-shadow in modal dialog windows.
# "! name~=''",
"name = 'Notification'",
"name = 'Plank'",
"name = 'Docky'",
"name = 'Kupfer'",
"name = 'Pensela'",
"name = 'Drawing Board'",
"class_g = 'Conky'",
"class_g = 'Kupfer'",
"class_g = 'Synapse'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Xfce4-notifyd'",
# Exclude special Firefox/Firefox-esr/Thunderbird dropdowns.
"class_g = 'Firefox' && argb",
"class_g = 'Firefox-esr' && argb",
"class_g = 'Tor Browser' && argb",
"class_g = 'Navegador Tor' && argb",
"class_g = 'Thunderbird' && argb",
"class_g = 'Telegram' && argb",
"class_g ?= 'Thunderbird' && class_i = 'Popup' && argb",
"class_g = 'firefox' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'Firefox' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'firefox-esr' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'Firefox-esr' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'Tor Browser' && (window_type = 'utility') && argb",
"class_g = 'Navegador Tor' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'Thunderbird' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
"class_g = 'Mozilla Thunderbird' && (window_type = 'utility' || window_type = 'popup_menu') && argb",
];
shadow-ignore-shaped = false;
#################################
#
# Opacity
#
#################################
inactive-opacity = 1;
active-opacity = 1;
frame-opacity = 1;
inactive-opacity-override = false;
# Desaturate and darken the inactive windows
# Dim inactive windows. (0.0 - 1.0)
inactive-dim = 0.1;
inactive-dim-fixed = true;
# Blur background of transparent windows. Bad performance with X Render backend. GLX backend is preferred.
blur-background = true;
blur-method = "kernel";
#blur-size = 50;
#blur-deviation = 5.0;
# Blur background of opaque windows with transparent frames as well.
# blur-background-frame = true;
# Do not let blur radius adjust based on window opacity.
#blur-background-fixed = true;
# blur-kern = "3x3box";
# blur-kern = "5x5box";
# blur-kern = "5x5gaussian"
blur-kern = "9x9gaussian"
blur-background-exclude = [
"class_g = 'Peek'",
"class_g = 'Pensela'",
"name = 'Drawing Board'",
"window_type = 'dock'",
"window_type = 'dropdown_menu'",
"window_type = 'combo'",
"window_type = 'popup_menu'",
"window_type = 'utility'",
"window_type = 'desktop'",
"_GTK_FRAME_EXTENTS@:c"
];
opacity-exclude = [
"name = 'Stratagus'"
];
#################################
#
# Fading
#
#################################
fading = true;
# fade-delta = 30;
#fade-in-step = 0.03;
#fade-out-step = 0.03;
fade-in-step = 0.2;
fade-out-step = 0.2;
# no-fading-openclose = true;
# no-fading-destroyed-argb = true;
fade-exclude = [ ];
#################################
#
# OTHER CONFIG
#
#################################
log-level = "warn";
# log-file = "/path/to/your/log/file";
mark-wmwin-focused = true;
mark-ovredir-focused = true;
detect-rounded-corners = true;
detect-client-opacity = true;
detect-transient = true;
detect-client-leader = true;
invert-color-include = [ ];
resize-damage = 2;
#################################
#
# Window type settings
#
#################################
wintypes:
{
dock = { shadow = false; }
dnd = { shadow = false; }
popup_menu = { opacity = 1; }
dropdown_menu = { opacity = 1; }
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
};

82
setup.sh Executable file
View File

@@ -0,0 +1,82 @@
#!/bin/bash
#############################################################
# _____ _ _ _ #
# / ____| | | (_) | | #
# | (___ ___| |_ _ _ _ __ ___ ___ _ __ _ _ __ | |_ #
# \___ \ / _ \ __| | | | '_ \ / __|/ __| '__| | '_ \| __| #
# ____) | __/ |_| |_| | |_) | \__ \ (__| | | | |_) | |_ #
# |_____/ \___|\__|\__,_| .__/ |___/\___|_| |_| .__/ \__| #
# | | | | #
# |_| |_| #
#############################################################
#
# ./setup.sh - download repository to $HOME/.dotfiles and symlink everythin ing place
# ./setup.sh clean - backup all files in $BAKFILES to .dotfilebackup
#
# The dependencies for this script are (arch linux repo names):
# - i3-wm
# - i3status
# - i3lock
# - dmenu
# - zsh
# - vim
# - rxvt-unicode
# - tmux
# - feh
# - volnoti (AUR, GitHub)
# - jauth-git (AUR, GitHub)
# - powerline-fonts-git (AUR, GitHub)
# Files and folders
DOTFILES="$HOME/.dotfiles"
BAKFILES=".i3
.zshrc
.tmux.conf
.vimrc
.Xdefaults"
BAKFOLD="$HOME/.dotfilebackup"
# Clean environment
if [ "$1" == "clean" ]; then
echo "[*] Backing up dotfiles to $BAKFOLD"
# Create backup folder if it doesn't exist
if [ ! -d $BAKFOLD ]; then
mkdir $BAKFOLD
fi
# Backup each config file specified by $BAKFILES
for file in $BAKFILES
do
mv -v $HOME/$file $BAKFOLD/$file
done
exit
fi
# Clone the repository if it doesn't exist
if [ ! -e "$HOME/.dotfiles/" ]; then
git clone https://github.com/id101010/LinuxDotFiles.git $DOTFILES
fi
# ------------------------------------------------ Setup I3wm
ln -sfv $DOTFILES/i3wm/ $HOME/.i3
# ------------------------------------------------ Setup tmux
ln -sfv $DOTFILES/tmux/tmux.conf $HOME/.tmux.conf
# ------------------------------------------------ Setup vim
ln -sfv $DOTFILES/vim/vimrc $HOME/.vimrc
# ------------------------------------------------ Setup zsh
ln -sfv $DOTFILES/zsh/zshrc $HOME/.zshrc
# ------------------------------------------------ Setup urxvt
ln -sfv $DOTFILES/urxvt/Xdefaults $HOME/.Xdefaults
# ------------------------------------------------ Setup wallpapers
ln -sfv $DOTFILES/wallpapers/ $HOME/.wallpapers

View File

@@ -1,91 +0,0 @@
#################################
# _ #
# | | #
# | |_ _ __ ___ _ ___ __ #
# | __| '_ ` _ \| | | \ \/ / #
# | |_| | | | | | |_| |> < #
# \__|_| |_| |_|\__,_/_/\_\ #
# #
#################################
#################################
# Basic Options #
#################################
set -g prefix ^a
set -g status-keys vi
set -g mode-keys vi
set -g mouse on
# Fix terminal name issues
#set -s escape-time 1
#################################
# Key bindings #
#################################
# Reload configuration
bind r source-file ~/.tmux.conf
# Panel splites and selection
unbind %
bind c split-window -h
unbind '"'
bind v split-window -v
#unbind o
bind n next-window
bind b previous-window
# Move around panes with hjkl, as one would in vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Resize
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
# Kill
bind q kill-window
bind Q kill-session
#################################
# COLORSCHEME: gruvbox dark #
#################################
set-option -g status "on"
# default statusbar color
set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1
# default window title colors
set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1
# default window with an activity alert
set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3
# active window title colors
set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1
# pane border
set-option -g pane-active-border-style fg=colour250 #fg2
set-option -g pane-border-style fg=colour237 #bg1
# message infos
set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1
# writing commands inactive
set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1
# pane number display
set-option -g display-panes-active-colour colour250 #fg2
set-option -g display-panes-colour colour237 #bg1
# clock
set-window-option -g clock-mode-colour colour109 #blue
# bell
set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg
## Theme settings mixed with colors (unfortunately, but there is no cleaner way)
set-option -g status-justify "left"
set-option -g status-left-style none
set-option -g status-left-length "80"
set-option -g status-right-style none
set-option -g status-right-length "80"
set-window-option -g window-status-separator ""
set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=colour237,fg=colour241,nobold,noitalics,nounderscore]"
set-option -g status-right "#[bg=colour237,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d  %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h "
set-window-option -g window-status-current-format "#[bg=colour214,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour214,fg=colour239] #I #[bg=colour214,fg=colour239,bold] #W#{?window_zoomed_flag,*Z,} #[bg=colour237,fg=colour214,nobold,noitalics,nounderscore]"
set-window-option -g window-status-format "#[bg=colour239,fg=colour237,noitalics]#[bg=colour239,fg=colour223] #I #[bg=colour239,fg=colour223] #W #[bg=colour237,fg=colour239,noitalics]"

85
tmux/tmux.conf Normal file
View File

@@ -0,0 +1,85 @@
#################################
# _ #
# | | #
# | |_ _ __ ___ _ ___ __ #
# | __| '_ ` _ \| | | \ \/ / #
# | |_| | | | | | |_| |> < #
# \__|_| |_| |_|\__,_/_/\_\ #
# #
#################################
#################################
# Basic Options #
#################################
set -g prefix ^a
set -g status-keys vi
setw -g mode-keys vi
# Shut up!
set -g bell-action none
set -g bell-on-alert off
set quiet off
# Fix terminal name issues
set -s escape-time 1
#################################
# Key bindings #
#################################
# Reload configuration
bind r source-file ~/.tmux.conf
# Panel splites and selection
unbind %
bind g split-window -h
unbind '"'
bind v split-window -v
unbind o
bind-key -n C-g last-window
bind-key -n C-b previous-window
bind-key -n C-n next-window
bind n next-window
bind b previous-window
# Move around panes with hjkl, as one would in vim
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
# Resize
bind H resize-pane -L 5
bind J resize-pane -D 5
bind K resize-pane -U 5
bind L resize-pane -R 5
# Kill
bind q kill-window
bind Q kill-session
#################################
# Statusline #
#################################
set -g status-justify "left"
set -g status "on"
set -g status-left-style "none"
set -g message-command-style "fg=colour144,bg=colour237"
set -g status-right-style "none"
set -g pane-active-border-style "fg=colour27"
#set -g status-utf8 "on"
set -g status-style "bg=colour234,none"
set -g message-style "fg=colour144,bg=colour237"
set -g pane-border-style "fg=colour237"
set -g status-right-length "100"
set -g status-left-length "100"
setw -g window-status-activity-attr "none"
setw -g window-status-activity-style "fg=colour27,bg=colour234,none"
setw -g window-status-separator ""
setw -g window-status-style "fg=colour39,bg=colour234,none"
set -g status-left "#[fg=colour15,bg=colour27] #S #[fg=colour27,bg=colour234,nobold,nounderscore,noitalics]"
set -g status-right "#[fg=colour237,bg=colour234,nobold,nounderscore,noitalics]#[fg=colour144,bg=colour237] %d.%m.%Y  %H:%M #[fg=colour27,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour15,bg=colour27] #h "
setw -g window-status-format "#[fg=colour39,bg=colour234] #I #[fg=colour39,bg=colour234] #W "
setw -g window-status-current-format "#[fg=colour234,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour144,bg=colour237] #I #[fg=colour144,bg=colour237] #{pane_current_path} #[fg=colour144,bg=colour237] #W #[fg=colour237,bg=colour234,nobold,nounderscore,noitalics]"

55
urxvt/Xdefaults Normal file
View File

@@ -0,0 +1,55 @@
################################
# _ #
# | | #
# _ _ _ ____ ____ _| |_ #
# | | | | '__\ \/ /\ \ / / __| #
# | |_| | | > < \ V /| |_ #
# \__,_|_| /_/\_\ \_/ \__| #
# #
################################
Xcursor.theme: adwaita
Xcursor.size: 16
# Real transparency -> needs composite manager
URxvt.depth: 32
URxvt.background: rgba:0000/0000/0200/afff
# Fake transparency
#URxvt.transparent: true
#URxvt.shading: 30
URxvt.tintColor: White
URxvt.saveLines: 9000000
URxvt.foreground: Grey
# Fonts For Powerlinefonts: https://github.com/powerline/fonts (Arch linux -> AUR)
#URxvt.font: xft:Droid Sans Mono:pixelsize=18:antialias=true:hinting=true
#URxvt.boldFont: xft:Droid Sans Mono:bold:pixelsize=18:antialias=true:hinting=true
#URxvt.tabbed.font: xft:Droid Sans Mono:pixelsize=18:antialias=true:hinting=true
URxvt.font: xft:Roboto Mono for Powerline:pixelsize=15:antialias=true:hinting=false
URxvt.boldFont: xft:RobotoMono for Powerline :bold:pixelsize=14:antialias=true:hinting=true
URxvt.tabbed.font: xft:RobotoMono for Powerline :pixelsize=14:antialias=true:hinting=true
# Misc configurations
URxvt.colorUL: #4682B4
URxvt.tabbed.saveLines: 1000
URxvt.tabbed.scrollBar: false
URxvt.tabbed.tabbar-fg: 3
URxvt.tabbed.tabbar-bg: 0
URxvt.tabbed.tab-fg: 0
URxvt.tabbed.tab-bg: 1
URxvt.tabbed.secondaryScroll: true
URxvt.inheritPixmap: true
# Scroll behavior, don't scroll with output
URxvt.scrollBar: false
URxvt.secondaryScroll: true
URxvt.scrollTtyOutput: false
URxvt.scrollWithBuffer: true
URxvt.scrollTtyKeypress: true
# Clickable urls
URxvt.perl-ext-common: default,matcher
URxvt.url-launcher: /usr/bin/xdg-open
URxvt.matcher.button: 1

121
vim/vimrc Normal file
View File

@@ -0,0 +1,121 @@
"""""""""""""""""""""""""""""""""""""
" __ _______ __ __ "
" \ \ / /_ _| \/ | "
" \ \ / / | | | \ / |_ __ ___ "
" \ \/ / | | | |\/| | '__/ __| "
" \ / _| |_| | | | | | (__ "
" \/ |_____|_| |_|_| \___| "
" "
"""""""""""""""""""""""""""""""""""""
" Install powerline fonts and configure your
" terminal emulator to use them.
" -> https://github.com/powerline/fonts "
" -> Arch linux AUR: powerline-fonts-git
"
set nocompatible
filetype off
""""""""""""""""""""""""""""""""""""""
" Vundle (vim plugin manager) stuff "
""""""""""""""""""""""""""""""""""""""
set rtp+=~/.vim/bundle/Vundle.vim
" Automatically setting up vundle "
let has_vundle=1
if !filereadable($HOME."/.vim/bundle/Vundle.vim/README.md")
echo "Installing Vundle..."
echo ""
silent !mkdir -p $HOME/.vim/bundle
silent !git clone https://github.com/gmarik/Vundle.vim $HOME/.vim/bundle/Vundle.vim
let has_vundle=0
endif
" Start Vundle stuff "
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
" A pretty statusline, bufferline integration "
Plugin 'itchyny/lightline.vim'
Plugin 'bling/vim-bufferline'
" <Tab> everything! "
Plugin 'ervandew/supertab'
" Glorious colorscheme "
Plugin 'nanotech/jellybeans.vim'
" Super easy commenting, toggle comments etc "
Plugin 'scrooloose/nerdcommenter'
" Autoclose (, " etc "
Plugin 'Townk/vim-autoclose'
" Git wrapper inside Vim "
Plugin 'tpope/vim-fugitive'
" Handle surround chars like "
Plugin 'tpope/vim-surround'
" Vim signs (:h signs) for modified lines based off VCS (e.g. Git) "
Plugin 'mhinz/vim-signify'
" Finish Vundle stuff "
call vundle#end()
" Installing plugins the first time, quits when done "
if has_vundle == 0
:silent! PluginInstall
:qa
endif
filetype plugin indent on
"""""""""""""""""""""""""""""""""""""""""
" Lightline (statusline) configuration "
"""""""""""""""""""""""""""""""""""""""""
let g:lightline = {
\ 'colorscheme': 'default',
\ 'component': {
\ 'readonly': '%{&readonly?"":""}',
\ },
\ 'separator': { 'left': '', 'right': '' },
\ 'subseparator': { 'left': '', 'right': '' }
\ }
"""""""""""""""""""""""""""""""""""""""""
" Misc configurations "
"""""""""""""""""""""""""""""""""""""""""
" Autointend and autoscroll 4 lines above the cursor "
set cindent
set scrolloff=4
"T abstop, Shiftwith and replace tabs with spaces but not in makefiles "
set tabstop=4
set shiftwidth=4
set expandtab
" Autocommands for special files "
autocmd FileType make set noexpandtab
autocmd BufNewFile,BufRead *.md set ft=markdown tw=79
autocmd BufNewFile,BufRead *.tex set ft=tex tw=79
autocmd BufNewFile,BufRead *.txt set ft=sh tw=79
" Stuff needed by urxvt "
set nocompatible
set mouse=a
set backspace=2
" Syntaxhighlighting, colorscheme, linenumbers "
syntax on
colorscheme jellybeans " Colorscheme from plugin
set cursorline
set more " Use more
set title " Blank title
set vb t_vb= " No beeping and flashing "
set wildmenu
set background=dark
set number " Linenumbers
set list
set nowrap
set hlsearch
set t_Co=256
set laststatus=2 " Always display the statusline in all windows
set showtabline=2 " Always display the tabline, even if there is only one tab
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline)
"Automaticly reread a file, if file has changed"
set autoread

66
vimrc
View File

@@ -1,66 +0,0 @@
set nocompatible
set encoding=utf-8
filetype plugin indent on
" Pluigin installation using vim-plug "
call plug#begin('~/.vim/plugged')
Plug 'preservim/nerdtree'
Plug 'morhetz/gruvbox'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'Yggdroot/indentLine'
Plug 'rust-lang/rust.vim'
Plug 'scrooloose/syntastic'
" Plug 'dense-analysis/ale'
call plug#end()
" Autocommands for special files "
autocmd FileType make set noexpandtab " we want tabs in Makefiles
autocmd BufWritePre * :%s/\s\+$//e " no trailing whitespace
autocmd BufNewFile,BufRead *.md set ft=markdown tw=79 " markdown
autocmd BufNewFile,BufRead *.tex set ft=tex tw=79 " latex
autocmd BufNewFile,BufRead *.py set ft=python tabstop=4 shiftwidth=4 softtabstop=4 showtabline=4 expandtab " Python PEP8
" Syntaxhighlighting, colorscheme, linenumbers "
syntax on
colorscheme gruvbox
" Tabstop, Shiftwith and replace tabs with spaces but not in makefiles "
set tabstop=2 " number of spaces in a tab
set shiftwidth=2 " number of spaces to use for each step of (auto)indent
set softtabstop=2 " number of spaces that a Tab counts for while editing
set showtabline=2 " always display tab labels
set expandtab " expand tabs with spaces
set backspace=indent,eol,start " set behavior of backspace
set showmatch " when a bracket is inserted briefly jump to the matching one
set showcmd " show command in the last line of the screen
set showmode
set cursorline " always show cursor line
set more " use more
set title " blank title
set background=dark " set bg
set relativenumber " linenumbers
set number " current line number
set nowrap " do not wrap long lines per default
set laststatus=2 " always display the statusline in all windows
set showtabline=2 " always display the tabline
set hlsearch " highlight after search
set incsearch " highlight while searching
set ttyfast " fast rendering
set encoding=utf8 " use utf8
set laststatus=2 " always display a status line
set display=lastline " show as much as possible of the last line
set updatetime=300 " 300ms update
" Airline configs
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#formatter = 'default'
let g:airline_powerline_fonts = 1
let g:airline_section_z = "%p%% : \ue0a1:%l/%L: Col:%c"
" Indent indicator configs
let g:indentLine_enabled = 1
let g:indentLine_setColors = 2
let g:indentLine_color_term = 239
let g:indentLine_char = '┊'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

BIN
wallpapers/solarized1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

BIN
wallpapers/solarized1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
wallpapers/solarized2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
wallpapers/solarized3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
wallpapers/solarized4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
wallpapers/solarized5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
wallpapers/solarized6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

BIN
wallpapers/solarized7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

10
xinitrc
View File

@@ -1,10 +0,0 @@
#!/bin/sh
# test for an existing bus daemon, just to be safe
if test -z "$DBUS_SESSION_BUS_ADDRESS" ; then
# if not found, launch a new one
eval `dbus-launch --sh-syntax --exit-with-session`
fi
setxkbmap ch &
exec dbus-launch --exit-with-session i3

123
zsh/zshrc Normal file
View File

@@ -0,0 +1,123 @@
################################
# _ #
# | | #
# _______| |__ _ __ ___ #
# |_ / __| '_ \| '__/ __| #
# / /\__ \ | | | | | (__ #
# /___|___/_| |_|_| \___| #
# #
################################
# Autoload stuff
autoload -U compinit promptinit
compinit
promptinit
# History
export HISTSIZE=100000
export HISTFILE="$HOME/.history"
export SAVEHIST=$HISTSIZE
setopt hist_ignore_all_dups
setopt hist_ignore_space
# Promptstyle
prompt walters
# Autocomplete stuff
zstyle ':completion:*' menu select
setopt completealiases
typeset -A key
# Key settings
key[Home]=${terminfo[khome]}
key[End]=${terminfo[kend]}
key[Insert]=${terminfo[kich1]}
key[Delete]=${terminfo[kdch1]}
key[Up]=${terminfo[kcuu1]}
key[Down]=${terminfo[kcud1]}
key[Left]=${terminfo[kcub1]}
key[Right]=${terminfo[kcuf1]}
key[PageUp]=${terminfo[kpp]}
key[PageDown]=${terminfo[knp]}
# Key bindings
[[ -n "${key[Home]}" ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n "${key[End]}" ]] && bindkey "${key[End]}" end-of-line
[[ -n "${key[Insert]}" ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n "${key[Delete]}" ]] && bindkey "${key[Delete]}" delete-char
[[ -n "${key[Up]}" ]] && bindkey "${key[Up]}" up-line-or-history
[[ -n "${key[Down]}" ]] && bindkey "${key[Down]}" down-line-or-history
[[ -n "${key[Left]}" ]] && bindkey "${key[Left]}" backward-char
[[ -n "${key[Right]}" ]] && bindkey "${key[Right]}" forward-char
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" beginning-of-buffer-or-history
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" end-of-buffer-or-history
[[ -n ${key[Backspace]} ]] && bindkey "${key[Backspace]}" backward-delete-char
[[ -n ${key[Insert]} ]] && bindkey "${key[Insert]}" overwrite-mode
[[ -n ${key[Home]} ]] && bindkey "${key[Home]}" beginning-of-line
[[ -n ${key[PageUp]} ]] && bindkey "${key[PageUp]}" up-line-or-history
[[ -n ${key[Delete]} ]] && bindkey "${key[Delete]}" delete-char
[[ -n ${key[End]} ]] && bindkey "${key[End]}" end-of-line
[[ -n ${key[PageDown]} ]] && bindkey "${key[PageDown]}" down-line-or-history
[[ -n ${key[Up]} ]] && bindkey "${key[Up]}" up-line-or-search
[[ -n ${key[Left]} ]] && bindkey "${key[Left]}" backward-char
[[ -n ${key[Down]} ]] && bindkey "${key[Down]}" down-line-or-search
[[ -n ${key[Right]} ]] && bindkey "${key[Right]}" forward-char
[[ -n "${key[PageUp]}" ]] && bindkey "${key[PageUp]}" history-beginning-search-backward
[[ -n "${key[PageDown]}" ]] && bindkey "${key[PageDown]}" history-beginning-search-forward
bindkey "[C" forward-word
bindkey "[D" backward-word
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
function zle-line-init () {
printf '%s' "${terminfo[smkx]}"
}
function zle-line-finish () {
printf '%s' "${terminfo[rmkx]}"
}
zle -N zle-line-init
zle -N zle-line-finish
fi
DIRSTACKFILE="$HOME/.cache/zsh/dirs"
if [[ -f $DIRSTACKFILE ]] && [[ $#dirstack -eq 0 ]]; then
dirstack=( ${(f)"$(< $DIRSTACKFILE)"} )
[[ -d $dirstack[1] ]] && cd $dirstack[1]
fi
chpwd() {
print -l $PWD ${(u)dirstack} >$DIRSTACKFILE
}
DIRSTACKSIZE=20
# Colored manpages
man() {
env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
LESS_TERMCAP_md=$(printf "\e[1;31m") \
LESS_TERMCAP_me=$(printf "\e[0m") \
LESS_TERMCAP_se=$(printf "\e[0m") \
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \
man "$@"
}
alias ll="ls -l"
alias llm='ls -al | more'
alias ls='ls --color=auto'
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias diff='colordiff'
alias ports='netstat -tulanp'
alias cal='cal -m'
setopt autopushd pushdsilent pushdtohome
setopt pushdignoredups
setopt pushdminus
setopt nohashdirs
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
rehash
source ~/Coding/0_C/Microcontroller/zephyr-project/zephyr-env.sh

52
zshrc
View File

@@ -1,52 +0,0 @@
# Dont try to display a fancy theme in a tty
if [[ $TERM == "linux" ]] || [[ $TERM == "screen" ]]; then
[[ ! -f ~/.p10k-portable.zsh ]] || source ~/.p10k-portable.zsh
else
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
fi
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# Move one word left or right using alt
bindkey "[D" backward-word
bindkey "^[h" backward-word
bindkey "[C" forward-word
bindkey "^[l" forward-word
# Aliases
alias ls="ls --color=auto"
alias lsblk="lsblk -o +LABEL"
alias ip="ip -c"
alias showip="ip --brief a"
alias ssh='TERM=xterm ssh'
alias ll="ls -l"
# Lines configured by zsh-newuser-install
bindkey -e
# History config
HIST_IGNORE_DUPS="true"
HIST_STAMPS="mm/dd/yyyy"
HISTFILE=~/.zsh_history
HISTSIZE=999999999
SAVEHIST=$HISTSIZE
setopt SHARE_HISTORY
# Autocompletion behaviour
autoload -Uz compinit; compinit
zstyle ':completion:*' menu select
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/aaron/.zshrc'
autoload -Uz compinit
compinit
# End of lines added by compinstall
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme