├── .Xresources ├── .asoundrc.hdmi ├── .astylerc ├── .bashrc ├── .config ├── bspwm │ └── bspwmrc ├── compton.conf ├── conky │ ├── HUD.conky │ ├── HUD.lua │ ├── README │ ├── archey.conky │ ├── crunchbang.conky │ ├── grey.conky │ ├── grey.lua │ ├── laptop.conky │ ├── laptop.conky.desktop │ ├── solarized.conky │ ├── solarized.lua │ ├── solarized.png │ ├── stickyclock.conky │ ├── stickynote.conky │ └── stickynote.conky.desktop ├── openbox │ ├── autostart │ ├── menu.xml │ └── rc.xml ├── sxhkd │ └── sxhkdrc ├── tint2 │ └── tint2rc └── zsh │ └── custom │ ├── aliases.zsh │ └── git-prompt.zsh ├── .gitignore ├── .vim ├── after │ └── ftplugin │ │ └── markdown │ │ └── instant-markdown.vim └── colors │ └── solarized.vim ├── .vimrc ├── .yuri_misc_sys_files ├── FILES.txt ├── bash.bashrc ├── bspwm-exit ├── bspwm-session ├── bspwm.desktop ├── lightdm-gtk-greeter.conf ├── lightdm.conf ├── mirrorlist ├── pacman.conf ├── scripts │ ├── brightness.sh │ ├── conkystart.sh │ ├── killstart.sh │ ├── mirror_displays.sh │ ├── quiet.sh │ ├── rip-yt.sh │ ├── shuffle.sh │ ├── stickynote.sh │ ├── updates-available.sh │ ├── urxvt-quake.sh │ └── volume_change.sh ├── updates-available.service ├── updates-available.timer └── yuri ├── .zshrc ├── README.md └── update-yuri_config.sh /.Xresources: -------------------------------------------------------------------------------- 1 | ! Xft font settings - used by urxvt 2 | Xft.dpi: 96 3 | Xft.antialias: true 4 | Xft.rgba: rgb 5 | Xft.hinting: true 6 | Xft.hintstyle: hintslight 7 | 8 | ! solarized dmenu - requires patched dmenu 9 | dmenu.font: xft:Consolas:pixelsize=12 10 | dmenu.foreground: #839496 11 | dmenu.background: #002b36 12 | dmenu.selforeground: #839496 13 | dmenu.selbackground: #eee8d5 14 | 15 | ! yuri - all urxvt X resources are listed below, in the order output by 16 | ! urxvt --help 2>&1| sed -n '/: /s/^ */! URxvt*/gp' 17 | ! 18 | ! use xrdb .Xresources to reload this file 19 | 20 | ! URxvt*termName: string 21 | URxvt*geometry: 110x30+100+100 22 | URxvtDesktop*geometry: 110x30+5+5 23 | URxvtQuake*geometry: 110x20 24 | ! URxvt*chdir: string 25 | ! URxvt*reverseVideo: boolean 26 | URxvt*loginShell: true 27 | ! URxvt*jumpScroll: boolean 28 | ! URxvt*skipScroll: boolean 29 | ! URxvt*pastableTabs: boolean 30 | ! URxvt*scrollstyle: mode 31 | URxvt*scrollBar: false 32 | ! URxvt*scrollBar_right: boolean 33 | ! URxvt*scrollBar_floating: boolean 34 | ! URxvt*scrollBar_align: mode 35 | ! URxvt*thickness: number 36 | ! URxvt*scrollTtyOutput: boolean 37 | ! URxvt*scrollTtyKeypress: boolean 38 | ! URxvt*scrollWithBuffer: boolean 39 | ! URxvt*inheritPixmap: boolean 40 | ! URxvt*transparent: false 41 | ! URxvt*tintColor: color 42 | ! URxvt*shading: number 43 | ! URxvt*blurRadius: HxV 44 | URxvtDesktop*fading: 0 45 | URxvt*fading: 40 46 | !URxvt*fadeColor: #002b36 47 | ! URxvt*utmpInhibit: boolean 48 | ! URxvt*urgentOnBell: boolean 49 | ! URxvt*visualBell: boolean 50 | ! URxvt*mapAlert: boolean 51 | ! URxvt*meta8: boolean 52 | ! URxvt*mouseWheelScrollPage: boolean 53 | ! URxvt*tripleclickwords: boolean 54 | ! URxvt*insecure: boolean 55 | ! URxvt*cursorUnderline: true 56 | URxvt*cursorBlink: true 57 | URxvt*pointerBlank: true 58 | ! yuri - solarized colors for both urxvt and xterm 59 | ! - true transparency supported by urxvt 60 | ! - use [alpha]#rrggbb format 61 | URxvt*background: [85]#002b36 62 | URxvtDesktop*background: [0]#002b36 63 | XTerm*background: #002b36 64 | XTerm*foreground: #839496 65 | URxvt*foreground: #839496 66 | ! dark grey 67 | XTerm*color0: #073642 68 | URxvt*color0: #073642 69 | ! dark red 70 | XTerm*color1: #dc322f 71 | URxvt*color1: #dc322f 72 | ! dark green 73 | XTerm*color2: #586e75 74 | URxvt*color2: #586e75 75 | ! dark yellow 76 | XTerm*color3: #b58900 77 | URxvt*color3: #b58900 78 | ! dark blue 79 | XTerm*color4: #268bd2 80 | URxvt*color4: #268bd2 81 | ! dark magenta 82 | XTerm*color5: #d33682 83 | URxvt*color5: #d33682 84 | ! dark cyan 85 | XTerm*color6: #2aa198 86 | URxvt*color6: #2aa198 87 | ! light grey 88 | XTerm*color7: #eee8d5 89 | URxvt*color7: #eee8d5 90 | ! black 91 | XTerm*color8: #002b36 92 | URxvt*color8: #002b36 93 | ! red 94 | XTerm*color9: #cb4b16 95 | URxvt*color9: #cb4b16 96 | ! green 97 | XTerm*color10: #859900 98 | URxvt*color10: #859900 99 | ! yellow 100 | XTerm*color11: #657b83 101 | URxvt*color11: #657b83 102 | ! blue 103 | XTerm*color12: #839496 104 | URxvt*color12: #839496 105 | ! magenta 106 | XTerm*color13: #6c71c4 107 | URxvt*color13: #6c71c4 108 | ! cyan 109 | XTerm*color14: #93a1a1 110 | URxvt*color14: #93a1a1 111 | ! white 112 | XTerm*color15: #fdf6e3 113 | URxvt*color15: #fdf6e3 114 | ! URxvt*colorBD: color 115 | ! URxvt*colorIT: color 116 | URxvt*colorUL: #268bd2 117 | ! URxvt*colorRV: color 118 | ! URxvt*underlineColor: color 119 | ! URxvt*scrollColor: color 120 | ! URxvt*troughColor: color 121 | ! URxvt*highlightColor: color 122 | ! URxvt*highlightTextColor: color 123 | XTerm*cursorColor: #93a1a1 124 | URxvt*cursorColor: #93a1a1 125 | ! URxvt*cursorColor2: color 126 | ! URxvt*pointerColor: color 127 | ! URxvt*pointerColor2: color 128 | ! URxvt*borderColor: color 129 | ! URxvt*path: search path 130 | ! yuri - backgroundPixmap and iconFile require installation from AUR 131 | ! - packer -S rxvt-unicode-pixbuf 132 | ! URxvt*backgroundPixmap: file[;geom] 133 | URxvt*iconFile: /usr/share/icons/Faenza/apps/48/utilities-terminal.png 134 | URxvt*font: xft:Consolas:pixelsize=11 135 | URxvt*boldFont: xft:Consolas:bold:pixelsize=11 136 | XTerm*faceName: Consolas:size=8:antialias=true 137 | ! URxvt*italicFont: fontname 138 | ! URxvt*boldItalicFont: fontname 139 | ! URxvt*intensityStyles: boolean 140 | ! URxvt*inputMethod: name 141 | ! URxvt*preeditType: style 142 | ! URxvt*imLocale: string 143 | ! URxvt*imFont: fontname 144 | ! URxvt*title: string 145 | ! URxvt*iconName: string 146 | URxvt*saveLines: 4096 147 | ! URxvt*buffered: boolean 148 | URxvt*depth: 32 149 | ! URxvt*visual: number 150 | ! URxvt*transient-for: windowid 151 | ! URxvt*override-redirect: boolean 152 | ! URxvt*hold: boolean 153 | ! URxvt*externalBorder: number 154 | URxvt*internalBorder: 0 155 | ! URxvt*borderLess: boolean 156 | URxvt*lineSpace: 0 157 | URxvt*letterSpace: -1 158 | ! URxvt*skipBuiltinGlyphs: boolean 159 | ! URxvt*pointerBlankDelay: number 160 | ! URxvt*backspacekey: string 161 | ! URxvt*deletekey: string 162 | ! URxvt*print-pipe: string 163 | ! URxvt*modifier: modifier 164 | ! URxvt*cutchars: string 165 | ! URxvt*answerbackString: string 166 | ! URxvt*secondaryScreen: boolean 167 | ! URxvt*secondaryScroll: boolean 168 | ! URxvt*perl-lib: string 169 | ! URxvt*perl-eval: perl-eval 170 | URxvt*perl-ext-common: default,clipboard,matcher,vtwheel 171 | ! URxvt*perl-ext: string 172 | URxvt*iso14755: false 173 | ! URxvt*iso14755_52: boolean 174 | ! URxvt*xrm: string 175 | ! URxvt*keysym.sym: keysym 176 | URxvt.keysym.Control-Shift-C: perl:clipboard:copy 177 | URxvt.keysym.Control-Shift-V: perl:clipboard:paste 178 | ! URxvt*background.border: boolean 179 | ! URxvt*background.expr: string 180 | ! URxvt*background.interval: seconds 181 | ! URxvt*bell-command: string 182 | URxvt*matcher.button: 1 183 | ! URxvt*matcher.launcher: string 184 | ! URxvt*matcher.launcher.*: string 185 | ! URxvt*matcher.pattern.*: string 186 | ! URxvt*matcher.rend.*: string 187 | ! URxvt*remote-clipboard.fetch: string 188 | ! URxvt*remote-clipboard.store: string 189 | ! URxvt*searchable-scrollback: string 190 | ! URxvt*selection-autotransform.*: string 191 | ! URxvt*selection-pastebin.cmd: string 192 | ! URxvt*selection-pastebin.url: string 193 | ! URxvt*selection.pattern-0: string 194 | ! URxvt*tab-bg: colour 195 | ! URxvt*tab-fg: colour 196 | ! URxvt*tabbar-bg: colour 197 | ! URxvt*tabbar-fg: colour 198 | URxvt*url-launcher: /usr/bin/google-chrome-stable 199 | -------------------------------------------------------------------------------- /.asoundrc.hdmi: -------------------------------------------------------------------------------- 1 | defaults.pcm.card 0 2 | defaults.pcm.device 3 3 | defaults.ctl.card 0 4 | -------------------------------------------------------------------------------- /.astylerc: -------------------------------------------------------------------------------- 1 | # ROOT code formatting style 2 | style=stroustrup 3 | mode=c 4 | align-pointer=name 5 | indent=spaces=2 6 | indent-switches 7 | indent-cases 8 | indent-namespaces 9 | max-instatement-indent=40 10 | indent-preprocessor 11 | convert-tabs 12 | pad-header 13 | pad-oper 14 | unpad-paren 15 | -------------------------------------------------------------------------------- /.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.bashrc 3 | # 4 | 5 | # If not running interactively, don't do anything 6 | [[ $- != *i* ]] && return 7 | 8 | # include common options for commands 9 | alias ls='ls --color=auto' 10 | alias grep='grep --color=auto' 11 | alias df='df -hT -x tmpfs -x devtmpfs' 12 | alias free='free -ht' 13 | 14 | # PS1='\u@\h: \w\$ ' 15 | # yuri - nicer looking command prompt in solarized scheme 16 | PS1='\[\e[0;37m\]\u\[\e[m\] \[\e[0;34m\]\w\[\e[m\] \[\e[0;37m\]\$\[\e[m\] ' 17 | 18 | # yuri - set fixed window title for transparent desktop terminal 19 | # test for custom named terminal with same window id as the present one 20 | # if it matches, set the window title so that the compositor and 21 | # window manager can treat it appropriately 22 | 23 | if [ -n "$WINDOWID" ]; then # this shell is running in X 24 | 25 | # use X forwarding with ssh 26 | alias ssh='ssh -Y' 27 | 28 | DESKTOPWINDOWID=$((`wmctrl -lpx | grep URxvtDesktop | awk '{ print $1 }'`)) 29 | if [ $WINDOWID -eq $DESKTOPWINDOWID ]; then 30 | PROMPT_COMMAND='echo -ne "\033]0;URxvtDesktop\007"' 31 | # display system info on the desktop terminal 32 | archey 33 | fi 34 | fi 35 | 36 | # add --user-install ruby gems to PATH 37 | if which ruby >/dev/null && which gem >/dev/null; then 38 | PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" 39 | fi 40 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # TODO: find a way to use `sleep` less 4 | 5 | bspc config border_width 0 6 | bspc config window_gap 2 7 | 8 | bspc config split_ratio 0.50 9 | bspc config borderless_monocle true 10 | bspc config gapless_monocle true 11 | bspc config focus_by_distance true 12 | bspc config remove_disabled_monitor true 13 | 14 | bspc monitor -d 01 02 03 04 05 06 07 08 09 10 15 | 16 | bspc rule -a gimp floating=on 17 | bspc rule -a URxvtQuake sticky=on floating=on 18 | bspc rule -a tint2 floating=on manage=off # needed with R675M, window hints previously worked 19 | 20 | xsetroot -cursor_name left_ptr & 21 | hsetroot -fill ~/images/wallpaper.png 22 | compton --config "$HOME/.config/compton.conf" -b 23 | udiskie --tray & 24 | nm-applet & 25 | numlockx on & 26 | 27 | # desktop 10 is the sys monitor workspace 28 | bspc rule -a URxvtDesktop desktop=^10 29 | bspc rule -a htop desktop=^10 30 | bspc config -d ^10 split_ratio 0.80 31 | conky -c ~/.config/conky/bspwm.conky & 32 | urxvt -name URxvtDesktop & 33 | # sleep to allow terminal to spawn first 34 | sleep 2 && urxvt -bg '[0]#000000' -name htop -e htop & 35 | 36 | # seems to help if tint2 is started after compton is fully up and running 37 | # previous sleep command should allow for that 38 | tint2 & 39 | 40 | # seems as if split_ratio takes effect for all desktops 41 | # this resets it 42 | # sleep is required to allow desktop 10 windows to spawn 43 | sleep 2 && bspc config -d focused split_ratio 0.50 44 | -------------------------------------------------------------------------------- /.config/compton.conf: -------------------------------------------------------------------------------- 1 | # Shadow 2 | shadow = true; # Enabled client-side shadows on windows. 3 | no-dock-shadow = true; # Avoid drawing shadows on dock/panel windows. 4 | no-dnd-shadow = true; # Don't draw shadows on DND windows. 5 | clear-shadow = true; # Zero the part of the shadow's mask behind the 6 | # window. Fix some weirdness with ARGB windows. 7 | shadow-radius = 7; # The blur radius for shadows. (default 12) 8 | shadow-offset-x = -3; # The left offset for shadows. (default -15) 9 | shadow-offset-y = -3; # The top offset for shadows. (default -15) 10 | # shadow-opacity = 0.7; # The translucency for shadows. (default .75) 11 | # shadow-red = 0.0; # Red color value of shadow. (0.0 - 1.0, defaults to 0) 12 | # shadow-green = 0.0; # Green color value of shadow. (0.0 - 1.0, defaults to 0) 13 | # shadow-blue = 0.0; # Blue color value of shadow. (0.0 - 1.0, defaults to 0) 14 | 15 | # yuri - custom rules, mostly integrating desktop windows 16 | shadow-exclude = [ "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "n:e:slingshot", "n:e:Wingpanel", "n:e:Notification", "name = 'URxvtDesktop'" ]; # Exclude conditions for shadows. 17 | # shadow-exclude = "n:e:Notification"; 18 | shadow-ignore-shaped = true; # Avoid drawing shadow on all shaped windows 19 | # (see also: --detect-rounded-corners) 20 | #detect-rounded-corners = true; 21 | 22 | # Opacity 23 | # yuri - custom rules for translucent terminal windows, editors, etc 24 | opacity-rule = [ "85:class_g = 'Gvim'" ]; 25 | menu-opacity = 0.8; # The opacity for menus. (default 1.0) 26 | inactive-opacity = 1.0; # Default opacity of inactive windows. (0.0 - 1.0) 27 | # active-opacity = 0.8; # Default opacity for active windows. (0.0 - 1.0) 28 | # frame-opacity = 0.8; # Opacity of window titlebars and borders. (0.1 - 1.0) 29 | # inactive-opacity-override = true; # Let inactive opacity set by 'inactive-opacity' overrides 30 | # value of _NET_WM_OPACITY. Bad choice. 31 | alpha-step = 0.06; # XRender backend: Step size for alpha pictures. Increasing 32 | # it may result in less X resource usage, 33 | # Yet fading may look bad. 34 | # inactive-dim = 0.2; # Dim inactive windows. (0.0 - 1.0) 35 | # inactive-dim-fixed = true; # Do not let dimness adjust based on window opacity. 36 | blur-background = true; # Blur background of transparent windows. 37 | # Bad performance with X Render backend. 38 | # GLX backend is preferred. 39 | # blur-background-frame = true; # Blur background of opaque windows with transparent 40 | # frames as well. 41 | blur-background-fixed = false; # Do not let blur radius adjust based on window opacity. 42 | blur-background-exclude = [ "class_g ?= 'Notify-osd'", 43 | "n:e:Notification", 44 | "window_type = 'dock'", 45 | "window_type = 'desktop'", 46 | "class_g = 'Conky'", 47 | "name = 'URxvtDesktop'" ]; 48 | # Exclude conditions for background blur. 49 | 50 | # Fading 51 | fading = true; # Fade windows during opacity changes. 52 | fade-delta = 5; # The time between steps in a fade in milliseconds. (default 10). 53 | fade-in-step = 0.03; # Opacity change between steps while fading in. (default 0.028). 54 | fade-out-step = 0.03; # Opacity change between steps while fading out. (default 0.03). 55 | # no-fading-openclose = true; # Avoid fade windows in/out when opening/closing. 56 | # fade-exclude = [ ]; # Exclude conditions for fading. 57 | 58 | # Other 59 | backend = "glx" # Backend to use: "xrender" or "glx". GLX backend is typically 60 | # much faster but depends on a sane driver. 61 | mark-wmwin-focused = true; # Try to detect WM windows and mark them as active. 62 | mark-ovredir-focused = true; # Mark all non-WM but override-redirect windows active (e.g. menus). 63 | use-ewmh-active-win = false; # Use EWMH _NET_WM_ACTIVE_WINDOW to determine which window is focused 64 | # instead of using FocusIn/Out events. Usually more reliable but 65 | # depends on a EWMH-compliant WM. 66 | detect-rounded-corners = true; # Detect rounded corners and treat them as rectangular when --shadow-ignore-shaped is on. 67 | detect-client-opacity = true; # Detect _NET_WM_OPACITY on client windows, useful for window 68 | # managers not passing _NET_WM_OPACITY of client windows to frame 69 | # windows. 70 | refresh-rate = 0; # For --sw-opti: Specify refresh rate of the screen. 0 for auto. 71 | vsync = "none"; # "none", "drm", "opengl", "opengl-oml", "opengl-swc", "opengl-mswc" 72 | # See man page for more details. 73 | dbe = false; # Enable DBE painting mode. Rarely needed. 74 | paint-on-overlay = true; # Painting on X Composite overlay window. Recommended. 75 | sw-opti = false; # Limit compton to repaint at most once every 1 / refresh_rate. 76 | # Incompatible with certain VSync methods. 77 | unredir-if-possible = false; # Unredirect all windows if a full-screen opaque window is 78 | # detected, to maximize performance for full-screen windows. 79 | focus-exclude = [ ]; # A list of conditions of windows that should always be considered 80 | # focused. 81 | detect-transient = true; # Use WM_TRANSIENT_FOR to group windows, and consider windows in 82 | # the same group focused at the same time. 83 | detect-client-leader = true; # Use WM_CLIENT_LEADER to group windows. 84 | invert-color-include = [ ]; # Conditions for windows to be painted with inverted color. 85 | 86 | # GLX backend # GLX backend fine-tune options. See man page for more info. 87 | glx-no-stencil = true; # Recommended. 88 | glx-copy-from-front = false; # Useful with --glx-swap-method, 89 | glx-use-copysubbuffermesa = true; # Recommended if it works. Breaks VSync. 90 | glx-no-rebind-pixmap = true; # Recommended if it works. 91 | glx-swap-method = "undefined"; # See man page. 92 | 93 | # Window type settings 94 | wintypes: 95 | { 96 | tooltip = { fade = true; shadow = false; opacity = 0.75; focus = true; }; 97 | # fade: Fade the particular type of windows. 98 | # shadow: Give those windows shadow 99 | # opacity: Default opacity for the type of windows. 100 | # focus: Whether to always consider windows of this type focused. 101 | }; 102 | -------------------------------------------------------------------------------- /.config/conky/HUD.conky: -------------------------------------------------------------------------------- 1 | #============================================================================== 2 | # conkyrc_HUD 3 | # 4 | # author : SLK 5 | # version : v2011011601 6 | # license : Distributed under the terms of GNU GPL version 2 or later 7 | # 8 | #============================================================================== 9 | 10 | background no 11 | update_interval 1 12 | 13 | cpu_avg_samples 2 14 | net_avg_samples 2 15 | temperature_unit fahrenheit 16 | 17 | double_buffer yes 18 | no_buffers yes 19 | text_buffer_size 2048 20 | 21 | gap_x 90 22 | gap_y 285 23 | minimum_size 250 130 24 | maximum_width 250 25 | own_window yes 26 | own_window_type normal 27 | own_window_transparent yes 28 | own_window_argb_visual yes 29 | own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below 30 | border_inner_margin 0 31 | border_outer_margin 0 32 | alignment tl 33 | 34 | draw_shades no 35 | draw_outline no 36 | draw_borders no 37 | draw_graph_borders no 38 | 39 | override_utf8_locale yes 40 | use_xft yes 41 | xftfont caviar dreams:size=8 42 | xftalpha 0.5 43 | uppercase no 44 | 45 | default_color 000000 46 | color1 444444 47 | 48 | lua_load ~/.config/conky/HUD.lua 49 | lua_draw_hook_post main 50 | 51 | TEXT 52 | #${color1}${font ubuntu:size=10}${time %H:%M:%S} 53 | ${voffset 25} 54 | ${goto 100}${font Ubuntu:size=8,weight:bold}${color}DISKS 55 | ${goto 110}${font Ubuntu:size=7,weight:normal}${color1}size / 56 | ${goto 105}${font Ubuntu:size=9,weight:normal}${color1}${offset 5}${voffset -4}${fs_size /} 57 | ${goto 105}${font Ubuntu:size=7,weight:normal}${color1}size /home 58 | ${goto 105}${font Ubuntu:size=9,weight:normal}${color1}${offset 5}${voffset -4}${fs_size /home} 59 | 60 | ${voffset -70} 61 | ${goto 30}${font Ubuntu:size=8,weight:bold}${color}MEM 62 | 63 | ${voffset -25} 64 | ${goto 180}${font Ubuntu:size=8,weight:bold}${color}CPU 65 | 66 | -------------------------------------------------------------------------------- /.config/conky/HUD.lua: -------------------------------------------------------------------------------- 1 | --============================================================================== 2 | -- conky_HUD.lua 3 | -- 4 | -- author : SLK 5 | -- version : v2011062101 6 | -- license : Distributed under the terms of GNU GPL version 2 or later 7 | -- 8 | --============================================================================== 9 | 10 | require 'cairo' 11 | 12 | -------------------------------------------------------------------------------- 13 | -- gauge DATA 14 | gauge = { 15 | { 16 | name='cpu', arg='cpu0', max_value=100, 17 | x=180, y=120, 18 | graph_radius=50, 19 | graph_thickness=5, 20 | graph_start_angle=0, 21 | graph_unit_angle=0.9, graph_unit_thickness=0.9, 22 | graph_bg_colour=0x111111, graph_bg_alpha=0.3, 23 | graph_fg_colour=0x111111, graph_fg_alpha=0.0, 24 | hand_fg_colour=0x111111, hand_fg_alpha=1.0, 25 | txt_radius=40, 26 | txt_weight=1, txt_size=10.0, 27 | txt_fg_colour=0x111111, txt_fg_alpha=0.8, 28 | graduation_radius=30, 29 | graduation_thickness=0, graduation_mark_thickness=1, 30 | graduation_unit_angle=27, 31 | graduation_fg_colour=0x111111, graduation_fg_alpha=0.3, 32 | caption='', 33 | caption_weight=1, caption_size=8.0, 34 | caption_fg_colour=0x000000, caption_fg_alpha=0.3, 35 | }, 36 | { 37 | name='cpu', arg='cpu1', max_value=100, 38 | x=180, y=120, 39 | graph_radius=60, 40 | graph_thickness=5, 41 | graph_start_angle=0, 42 | graph_unit_angle=0.9, graph_unit_thickness=0.9, 43 | graph_bg_colour=0x111111, graph_bg_alpha=0.3, 44 | graph_fg_colour=0x111111, graph_fg_alpha=0.0, 45 | hand_fg_colour=0x111111, hand_fg_alpha=1.0, 46 | txt_radius=70, 47 | txt_weight=1, txt_size=10.0, 48 | txt_fg_colour=0x111111, txt_fg_alpha=0.8, 49 | graduation_radius=55, 50 | graduation_thickness=5, graduation_mark_thickness=2, 51 | graduation_unit_angle=27, 52 | graduation_fg_colour=0x111111, graduation_fg_alpha=0.3, 53 | caption='', 54 | caption_weight=1, caption_size=8.0, 55 | caption_fg_colour=0x000000, caption_fg_alpha=0.3, 56 | }, 57 | { 58 | name='memperc', arg='', max_value=100, 59 | x=40, y=85, 60 | graph_radius=34, 61 | graph_thickness=5, 62 | graph_start_angle=180, 63 | graph_unit_angle=2, graph_unit_thickness=2, 64 | graph_bg_colour=0x111111, graph_bg_alpha=0.3, 65 | graph_fg_colour=0x111111, graph_fg_alpha=0.0, 66 | hand_fg_colour=0x111111, hand_fg_alpha=1.0, 67 | txt_radius=20, 68 | txt_weight=1, txt_size=10.0, 69 | txt_fg_colour=0x111111, txt_fg_alpha=0.8, 70 | graduation_radius=24, 71 | graduation_thickness=6, graduation_mark_thickness=2, 72 | graduation_unit_angle=10, 73 | graduation_fg_colour=0x111111, graduation_fg_alpha=0.3, 74 | caption='', 75 | caption_weight=1, caption_size=10.0, 76 | caption_fg_colour=0x000000, caption_fg_alpha=0.5, 77 | }, 78 | { 79 | name='fs_used_perc', arg='/', max_value=100, 80 | x=120, y=70, 81 | graph_radius=40, 82 | graph_thickness=4, 83 | graph_start_angle=210, 84 | graph_unit_angle=2, graph_unit_thickness=2, 85 | graph_bg_colour=0x111111, graph_bg_alpha=0.3, 86 | graph_fg_colour=0x111111, graph_fg_alpha=0.0, 87 | hand_fg_colour=0x111111, hand_fg_alpha=1.0, 88 | txt_radius=32, 89 | txt_weight=1, txt_size=10.0, 90 | txt_fg_colour=0x111111, txt_fg_alpha=0.8, 91 | graduation_radius=46, 92 | graduation_thickness=0, graduation_mark_thickness=2, 93 | graduation_unit_angle=20, 94 | graduation_fg_colour=0x111111, graduation_fg_alpha=0.3, 95 | caption='', 96 | caption_weight=1, caption_size=8.0, 97 | caption_fg_colour=0x000000, caption_fg_alpha=0.5, 98 | }, 99 | { 100 | name='fs_used_perc', arg='/home/', max_value=100, 101 | x=120, y=70, 102 | graph_radius=50, 103 | graph_thickness=8, 104 | graph_start_angle=210, 105 | graph_unit_angle=2, graph_unit_thickness=2, 106 | graph_bg_colour=0x111111, graph_bg_alpha=0.3, 107 | graph_fg_colour=0x111111, graph_fg_alpha=0.0, 108 | hand_fg_colour=0x111111, hand_fg_alpha=1.0, 109 | txt_radius=60, 110 | txt_weight=1, txt_size=10.0, 111 | txt_fg_colour=0x111111, txt_fg_alpha=0.8, 112 | graduation_radius=58, 113 | graduation_thickness=4, graduation_mark_thickness=2, 114 | graduation_unit_angle=20, 115 | graduation_fg_colour=0x111111, graduation_fg_alpha=0.3, 116 | caption='', 117 | caption_weight=1, caption_size=8.0, 118 | caption_fg_colour=0x000000, caption_fg_alpha=0.5, 119 | }, 120 | } 121 | 122 | ------------------------------------------------------------------------------- 123 | -- rgb_to_r_g_b 124 | -- converts color in hexa to decimal 125 | -- 126 | function rgb_to_r_g_b(colour, alpha) 127 | return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha 128 | end 129 | 130 | ------------------------------------------------------------------------------- 131 | -- angle_to_position 132 | -- convert degree to rad and rotate (0 degree is top/north) 133 | -- 134 | function angle_to_position(start_angle, current_angle) 135 | local pos = current_angle + start_angle 136 | return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) ) 137 | end 138 | 139 | ------------------------------------------------------------------------------- 140 | -- draw_gauge_ring 141 | -- displays gauges 142 | -- 143 | function draw_gauge_ring(display, data, value) 144 | local max_value = data['max_value'] 145 | local x, y = data['x'], data['y'] 146 | local graph_radius = data['graph_radius'] 147 | local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness'] 148 | local graph_start_angle = data['graph_start_angle'] 149 | local graph_unit_angle = data['graph_unit_angle'] 150 | local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha'] 151 | local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha'] 152 | local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha'] 153 | local graph_end_angle = (max_value * graph_unit_angle) % 360 154 | 155 | -- background ring 156 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle)) 157 | cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha)) 158 | cairo_set_line_width(display, graph_thickness) 159 | cairo_stroke(display) 160 | 161 | -- arc of value 162 | local val = value % (max_value + 1) 163 | local start_arc = 0 164 | local stop_arc = 0 165 | local i = 1 166 | while i <= val do 167 | start_arc = (graph_unit_angle * i) - graph_unit_thickness 168 | stop_arc = (graph_unit_angle * i) 169 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 170 | cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha)) 171 | cairo_stroke(display) 172 | i = i + 1 173 | end 174 | local angle = start_arc 175 | 176 | -- hand 177 | start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2) 178 | stop_arc = (graph_unit_angle * val) 179 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 180 | cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha)) 181 | cairo_stroke(display) 182 | 183 | -- graduations marks 184 | local graduation_radius = data['graduation_radius'] 185 | local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness'] 186 | local graduation_unit_angle = data['graduation_unit_angle'] 187 | local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha'] 188 | if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then 189 | local nb_graduation = graph_end_angle / graduation_unit_angle 190 | local i = 0 191 | while i < nb_graduation do 192 | cairo_set_line_width(display, graduation_thickness) 193 | start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2) 194 | stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2) 195 | cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 196 | cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha)) 197 | cairo_stroke(display) 198 | cairo_set_line_width(display, graph_thickness) 199 | i = i + 1 200 | end 201 | end 202 | 203 | -- text 204 | local txt_radius = data['txt_radius'] 205 | local txt_weight, txt_size = data['txt_weight'], data['txt_size'] 206 | local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha'] 207 | local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle)) 208 | local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle)) 209 | cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight) 210 | cairo_set_font_size (display, txt_size) 211 | cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha)) 212 | cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3) 213 | cairo_show_text (display, value) 214 | cairo_stroke (display) 215 | 216 | -- caption 217 | local caption = data['caption'] 218 | local caption_weight, caption_size = data['caption_weight'], data['caption_size'] 219 | local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha'] 220 | local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2))) 221 | local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2))) 222 | cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight); 223 | cairo_set_font_size (display, caption_size) 224 | cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha)) 225 | cairo_move_to (display, x + tox + 5, y + toy + 1) 226 | -- bad hack but not enough time ! 227 | if graph_start_angle < 105 then 228 | cairo_move_to (display, x + tox - 30, y + toy + 1) 229 | end 230 | cairo_show_text (display, caption) 231 | cairo_stroke (display) 232 | end 233 | 234 | ------------------------------------------------------------------------------- 235 | -- go_gauge_rings 236 | -- loads data and displays gauges 237 | -- 238 | function go_gauge_rings(display) 239 | local function load_gauge_rings(display, data) 240 | local str, value = '', 0 241 | str = string.format('${%s %s}',data['name'], data['arg']) 242 | str = conky_parse(str) 243 | value = tonumber(str) 244 | draw_gauge_ring(display, data, value) 245 | end 246 | 247 | for i in pairs(gauge) do 248 | load_gauge_rings(display, gauge[i]) 249 | end 250 | end 251 | 252 | ------------------------------------------------------------------------------- 253 | -- MAIN 254 | function conky_main() 255 | if conky_window == nil then 256 | return 257 | end 258 | 259 | local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height) 260 | local display = cairo_create(cs) 261 | 262 | local updates = conky_parse('${updates}') 263 | update_num = tonumber(updates) 264 | 265 | if update_num > 5 then 266 | go_gauge_rings(display) 267 | end 268 | 269 | cairo_surface_destroy(cs) 270 | cairo_destroy(display) 271 | end 272 | 273 | -------------------------------------------------------------------------------- /.config/conky/README: -------------------------------------------------------------------------------- 1 | yuri - Jun 2014 2 | 3 | Put all conkyrc files in $HOME/.config/conky 4 | 5 | All files ending in .desktop will be run by /usr/local/bin/conkystart.sh 6 | 7 | $HOME/.config/openbox/autostart calls conkystart.sh 8 | 9 | Suggest symlinks ending in .desktop rather than renaming files 10 | -------------------------------------------------------------------------------- /.config/conky/archey.conky: -------------------------------------------------------------------------------- 1 | use_xft yes 2 | xftfont Consolas:size=7 3 | xftalpha 1.0 4 | update_interval 1.0 5 | total_run_times 0 6 | own_window yes 7 | own_window_transparent yes 8 | own_window_argb_visual yes 9 | own_window_type normal 10 | # own_window_class conky-clock 11 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 12 | background no 13 | double_buffer yes 14 | draw_outline no 15 | draw_borders no 16 | imlib_cache_size 0 17 | draw_shades no 18 | alignment bottom_right 19 | gap_x 20 20 | gap_y 10 21 | no_buffers yes 22 | uppercase no 23 | override_utf8_locale yes 24 | default_color 839496 25 | temperature_unit fahrenheit 26 | text_buffer_size 2048 27 | 28 | TEXT 29 | ${execi 300 archey | sed 's/\x1b\[[0-9;]*m//g'} 30 | 31 | -------------------------------------------------------------------------------- /.config/conky/crunchbang.conky: -------------------------------------------------------------------------------- 1 | # conky configuration 2 | # 3 | # The list of variables has been removed from this file in favour 4 | # of keeping the documentation more maintainable. 5 | # Check http://conky.sf.net for an up-to-date-list. 6 | # 7 | # For ideas about how to modify conky, please see: 8 | # http://crunchbanglinux.org/forums/topic/59/my-conky-config/ 9 | # 10 | # For help with conky, please see: 11 | # http://crunchbanglinux.org/forums/topic/2047/conky-help/ 12 | # 13 | # Enjoy! :) 14 | ############################################## 15 | # Settings 16 | ############################################## 17 | background yes 18 | use_xft yes 19 | xftfont Liberation Sans:size=9 20 | xftalpha 1 21 | update_interval 1.0 22 | total_run_times 0 23 | own_window yes 24 | own_window_transparent yes 25 | own_window_type desktop 26 | #own_window_argb_visual yes 27 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 28 | double_buffer yes 29 | minimum_size 200 200 30 | maximum_width 240 31 | draw_shades no 32 | draw_outline no 33 | draw_borders no 34 | draw_graph_borders no 35 | default_color 656667 36 | default_shade_color 000000 37 | default_outline_color 828282 38 | alignment top_right 39 | gap_x 12 40 | gap_y 56 41 | no_buffers yes 42 | uppercase no 43 | cpu_avg_samples 2 44 | override_utf8_locale no 45 | ############################################## 46 | # Output 47 | ############################################## 48 | TEXT 49 | S Y S T E M I N F O 50 | ${hr} 51 | Host:$alignr$nodename 52 | Uptime:$alignr$uptime 53 | RAM:$alignr$mem/$memmax 54 | Swap usage:$alignr$swap/$swapmax 55 | Disk usage:$alignr${fs_used /}/${fs_size /} 56 | CPU usage:$alignr${cpu cpu0}% 57 | 58 | 59 | S H O R T C U T K E Y S 60 | ${hr} 61 | Alt+F2$alignr Run Dialog 62 | Alt+F3$alignr Alt Menu 63 | Super+Space$alignr Main Menu 64 | Super+Tab$alignr Client Menu 65 | Super+t$alignr Terminal 66 | Super+f$alignr File Manager 67 | Super+e$alignr Editor 68 | Super+m$alignr Media Player 69 | Super+w$alignr Web Browser 70 | Super+h$alignr Task Manager 71 | Super+l$alignr Lock Screen 72 | Super+v$alignr Volume Control 73 | Super+x$alignr Logout 74 | PrtSc$alignr Screenshot 75 | -------------------------------------------------------------------------------- /.config/conky/grey.conky: -------------------------------------------------------------------------------- 1 | #============================================================================== 2 | # conkyrc_grey 3 | # 4 | # author : SLK 5 | # version : v2011011601 6 | # license : Distributed under the terms of GNU GPL version 2 or later 7 | # 8 | #============================================================================== 9 | 10 | background no 11 | update_interval 1 12 | 13 | cpu_avg_samples 2 14 | net_avg_samples 2 15 | temperature_unit fahrenheit 16 | 17 | double_buffer yes 18 | no_buffers yes 19 | text_buffer_size 2048 20 | 21 | gap_x 10 22 | gap_y 30 23 | minimum_size 190 450 24 | maximum_width 190 25 | own_window yes 26 | own_window_type normal 27 | own_window_transparent yes 28 | own_window_argb_visual yes 29 | own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below 30 | border_inner_margin 0 31 | border_outer_margin 0 32 | alignment tr 33 | 34 | draw_shades no 35 | draw_outline no 36 | draw_borders no 37 | draw_graph_borders no 38 | 39 | override_utf8_locale yes 40 | use_xft yes 41 | xftfont caviar dreams:size=8 42 | xftalpha 0.5 43 | uppercase no 44 | 45 | default_color FFFFFF 46 | color1 DDDDDD 47 | color2 AAAAAA 48 | color3 888888 49 | color4 666666 50 | 51 | lua_load ~/.config/conky/grey.lua 52 | lua_draw_hook_post main 53 | 54 | TEXT 55 | ${voffset 35} 56 | ${goto 95}${color4}${font ubuntu:size=22}${time %e}${color1}${offset -50}${font ubuntu:size=10}${time %A} 57 | ${goto 85}${color2}${voffset -2}${font ubuntu:size=9}${time %b}${voffset -2} ${color3}${font ubuntu:size=12}${time %Y}${font} 58 | 59 | ${voffset 80} 60 | ${goto 90}${font Ubuntu:size=7,weight:bold}${color}CPU 61 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${top name 1}${alignr}${top cpu 1}% 62 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color2}${top name 2}${alignr}${top cpu 2}% 63 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color3}${top name 3}${alignr}${top cpu 3}% 64 | ${goto 90}${cpugraph 10,100 666666 666666} 65 | ${goto 90}${voffset -10}${font Ubuntu:size=7,weight:normal}${color}${threads} process 66 | 67 | ${voffset 20} 68 | ${goto 90}${font Ubuntu:size=7,weight:bold}${color}MEM 69 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${top_mem name 1}${alignr}${top_mem mem 1}% 70 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color2}${top_mem name 2}${alignr}${top_mem mem 2}% 71 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color3}${top_mem name 3}${alignr}${top_mem mem 3}% 72 | 73 | ${voffset 15} 74 | ${goto 90}${font Ubuntu:size=7,weight:bold}${color}DISKS 75 | 76 | ${goto 90}${diskiograph 30,100 666666 666666}${voffset -40} 77 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color}used: ${fs_used /home} /home 78 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color}used: ${fs_used /} / 79 | 80 | ${voffset 10} 81 | ${goto 70}${font Ubuntu:size=18,weight:bold}${color3}NET${alignr}${color2}${font Ubuntu:size=7,weight:bold}${color1}${if_up eth0}eth ${addr eth0} ${endif} 82 | ${alignr}${if_up wlan0}wifi ${addr wlan0}${endif} 83 | ${goto 90}${font Ubuntu:size=7,weight:bold}${color}open ports: ${alignr}${color2}${tcp_portmon 1 65535 count} 84 | ${goto 90}${font Ubuntu:size=7,weight:bold}${color}${offset 10}IP${alignr}DPORT 85 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 0}${alignr 1}${tcp_portmon 1 65535 rport 0} 86 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 1}${alignr 1}${tcp_portmon 1 65535 rport 1} 87 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 2}${alignr 1}${tcp_portmon 1 65535 rport 2} 88 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 3}${alignr 1}${tcp_portmon 1 65535 rport 3} 89 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 4}${alignr 1}${tcp_portmon 1 65535 rport 4} 90 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 5}${alignr 1}${tcp_portmon 1 65535 rport 5} 91 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 6}${alignr 1}${tcp_portmon 1 65535 rport 6} 92 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 7}${alignr 1}${tcp_portmon 1 65535 rport 7} 93 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 8}${alignr 1}${tcp_portmon 1 65535 rport 8} 94 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 9}${alignr 1}${tcp_portmon 1 65535 rport 9} 95 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 10}${alignr 1}${tcp_portmon 1 65535 rport 10} 96 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 11}${alignr 1}${tcp_portmon 1 65535 rport 11} 97 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 12}${alignr 1}${tcp_portmon 1 65535 rport 12} 98 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 13}${alignr 1}${tcp_portmon 1 65535 rport 13} 99 | ${goto 90}${font Ubuntu:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rip 14}${alignr 1}${tcp_portmon 1 65535 rport 14} 100 | 101 | 102 | -------------------------------------------------------------------------------- /.config/conky/grey.lua: -------------------------------------------------------------------------------- 1 | --============================================================================== 2 | -- conky_grey.lua 3 | -- 4 | -- author : SLK 5 | -- version : v2011062101 6 | -- license : Distributed under the terms of GNU GPL version 2 or later 7 | -- 8 | --============================================================================== 9 | 10 | require 'cairo' 11 | 12 | -------------------------------------------------------------------------------- 13 | -- clock DATA 14 | -- HOURS 15 | clock_h = { 16 | { 17 | name='time', arg='%H', max_value=12, 18 | x=110, y=80, 19 | graph_radius=53, 20 | graph_thickness=3, 21 | graph_unit_angle=30, graph_unit_thickness=30, 22 | graph_bg_colour=0xffffff, graph_bg_alpha=0.0, 23 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3, 24 | txt_radius=34, 25 | txt_weight=1, txt_size=10.0, 26 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.6, 27 | graduation_radius=53, 28 | graduation_thickness=6, graduation_mark_thickness=2, 29 | graduation_unit_angle=30, 30 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 31 | }, 32 | } 33 | -- MINUTES 34 | clock_m = { 35 | { 36 | name='time', arg='%M', max_value=60, 37 | x=110, y=80, 38 | graph_radius=57, 39 | graph_thickness=2, 40 | graph_unit_angle=6, graph_unit_thickness=6, 41 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 42 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.3, 43 | txt_radius=70, 44 | txt_weight=0, txt_size=9.0, 45 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.6, 46 | graduation_radius=57, 47 | graduation_thickness=0, graduation_mark_thickness=2, 48 | graduation_unit_angle=30, 49 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 50 | }, 51 | } 52 | -- SECONDS 53 | clock_s = { 54 | { 55 | name='time', arg='%S', max_value=60, 56 | x=110, y=80, 57 | graph_radius=50, 58 | graph_thickness=2, 59 | graph_unit_angle=6, graph_unit_thickness=2, 60 | graph_bg_colour=0xffffff, graph_bg_alpha=0.0, 61 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.2, 62 | txt_radius=40, 63 | txt_weight=0, txt_size=12.0, 64 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.3, 65 | graduation_radius=0, 66 | graduation_thickness=0, graduation_mark_thickness=0, 67 | graduation_unit_angle=0, 68 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0, 69 | }, 70 | } 71 | 72 | -------------------------------------------------------------------------------- 73 | -- gauge DATA 74 | gauge = { 75 | { 76 | name='cpu', arg='cpu0', max_value=100, 77 | x=85, y=200, 78 | graph_radius=24, 79 | graph_thickness=5, 80 | graph_start_angle=180, 81 | graph_unit_angle=2.7, graph_unit_thickness=2.7, 82 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 83 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.5, 84 | hand_fg_colour=0xEF5A29, hand_fg_alpha=0.0, 85 | txt_radius=34, 86 | txt_weight=0, txt_size=8.0, 87 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.3, 88 | graduation_radius=28, 89 | graduation_thickness=0, graduation_mark_thickness=1, 90 | graduation_unit_angle=27, 91 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 92 | caption='', 93 | caption_weight=1, caption_size=8.0, 94 | caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3, 95 | }, 96 | { 97 | name='cpu', arg='cpu1', max_value=100, 98 | x=85, y=200, 99 | graph_radius=18, 100 | graph_thickness=5, 101 | graph_start_angle=180, 102 | graph_unit_angle=2.7, graph_unit_thickness=2.7, 103 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 104 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.5, 105 | hand_fg_colour=0xEF5A29, hand_fg_alpha=0.0, 106 | txt_radius=10, 107 | txt_weight=0, txt_size=8.0, 108 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.3, 109 | graduation_radius=28, 110 | graduation_thickness=0, graduation_mark_thickness=1, 111 | graduation_unit_angle=27, 112 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 113 | caption='', 114 | caption_weight=1, caption_size=8.0, 115 | caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3, 116 | }, 117 | { 118 | name='memperc', arg='', max_value=100, 119 | x=85, y=300, 120 | graph_radius=24, 121 | graph_thickness=5, 122 | graph_start_angle=180, 123 | graph_unit_angle=2.7, graph_unit_thickness=2.7, 124 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 125 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.5, 126 | hand_fg_colour=0xEF5A29, hand_fg_alpha=0.0, 127 | txt_radius=10, 128 | txt_weight=0, txt_size=8.0, 129 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.3, 130 | graduation_radius=23, 131 | graduation_thickness=8, graduation_mark_thickness=2, 132 | graduation_unit_angle=27, 133 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.5, 134 | caption='', 135 | caption_weight=1, caption_size=8.0, 136 | caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.3, 137 | }, 138 | { 139 | name='fs_used_perc', arg='/', max_value=100, 140 | x=85, y=380, 141 | graph_radius=24, 142 | graph_thickness=5, 143 | graph_start_angle=180, 144 | graph_unit_angle=2.7, graph_unit_thickness=2.7, 145 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 146 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.5, 147 | hand_fg_colour=0xEF5A29, hand_fg_alpha=0.0, 148 | txt_radius=34, 149 | txt_weight=0, txt_size=8.0, 150 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.5, 151 | graduation_radius=28, 152 | graduation_thickness=0, graduation_mark_thickness=1, 153 | graduation_unit_angle=27, 154 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 155 | caption='/', 156 | caption_weight=1, caption_size=8.0, 157 | caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5, 158 | }, 159 | { 160 | name='fs_used_perc', arg='/home/', max_value=100, 161 | x=85, y=380, 162 | graph_radius=18, 163 | graph_thickness=5, 164 | graph_start_angle=180, 165 | graph_unit_angle=2.7, graph_unit_thickness=2.7, 166 | graph_bg_colour=0xffffff, graph_bg_alpha=0.1, 167 | graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.5, 168 | hand_fg_colour=0xEF5A29, hand_fg_alpha=0.0, 169 | txt_radius=10, 170 | txt_weight=0, txt_size=8.0, 171 | txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.5, 172 | graduation_radius=28, 173 | graduation_thickness=0, graduation_mark_thickness=1, 174 | graduation_unit_angle=27, 175 | graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.3, 176 | caption='/home', 177 | caption_weight=1, caption_size=8.0, 178 | caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.5, 179 | }, 180 | } 181 | 182 | ------------------------------------------------------------------------------- 183 | -- rgb_to_r_g_b 184 | -- converts color in hexa to decimal 185 | -- 186 | function rgb_to_r_g_b(colour, alpha) 187 | return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha 188 | end 189 | 190 | ------------------------------------------------------------------------------- 191 | -- angle_to_position 192 | -- convert degree to rad and rotate (0 degree is top/north) 193 | -- 194 | function angle_to_position(start_angle, current_angle) 195 | local pos = current_angle + start_angle 196 | return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) ) 197 | end 198 | 199 | ------------------------------------------------------------------------------- 200 | -- draw_clock_ring 201 | -- displays clock 202 | -- 203 | function draw_clock_ring(display, data, value) 204 | local max_value = data['max_value'] 205 | local x, y = data['x'], data['y'] 206 | local graph_radius = data['graph_radius'] 207 | local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness'] 208 | local graph_unit_angle = data['graph_unit_angle'] 209 | local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha'] 210 | local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha'] 211 | 212 | -- background ring 213 | cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi) 214 | cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha)) 215 | cairo_set_line_width(display, graph_thickness) 216 | cairo_stroke(display) 217 | 218 | -- arc of value 219 | local val = (value % max_value) 220 | local i = 1 221 | while i <= val do 222 | cairo_arc(display, x, y, graph_radius,( ((graph_unit_angle * i) - graph_unit_thickness)*(2*math.pi/360) )-(math.pi/2),((graph_unit_angle * i) * (2*math.pi/360))-(math.pi/2)) 223 | cairo_set_source_rgba(display,rgb_to_r_g_b(graph_fg_colour,graph_fg_alpha)) 224 | cairo_stroke(display) 225 | i = i + 1 226 | end 227 | local angle = (graph_unit_angle * i) - graph_unit_thickness 228 | 229 | -- graduations marks 230 | local graduation_radius = data['graduation_radius'] 231 | local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness'] 232 | local graduation_unit_angle = data['graduation_unit_angle'] 233 | local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha'] 234 | if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then 235 | local nb_graduation = 360 / graduation_unit_angle 236 | local i = 1 237 | while i <= nb_graduation do 238 | cairo_set_line_width(display, graduation_thickness) 239 | cairo_arc(display, x, y, graduation_radius, (((graduation_unit_angle * i)-(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2),(((graduation_unit_angle * i)+(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2)) 240 | cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha)) 241 | cairo_stroke(display) 242 | cairo_set_line_width(display, graph_thickness) 243 | i = i + 1 244 | end 245 | end 246 | 247 | -- text 248 | local txt_radius = data['txt_radius'] 249 | local txt_weight, txt_size = data['txt_weight'], data['txt_size'] 250 | local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha'] 251 | local movex = txt_radius * (math.cos((angle * 2 * math.pi / 360)-(math.pi/2))) 252 | local movey = txt_radius * (math.sin((angle * 2 * math.pi / 360)-(math.pi/2))) 253 | cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight); 254 | cairo_set_font_size (display, txt_size); 255 | cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha)); 256 | cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3); 257 | cairo_show_text (display, value); 258 | cairo_stroke (display); 259 | end 260 | 261 | ------------------------------------------------------------------------------- 262 | -- draw_gauge_ring 263 | -- displays gauges 264 | -- 265 | function draw_gauge_ring(display, data, value) 266 | local max_value = data['max_value'] 267 | local x, y = data['x'], data['y'] 268 | local graph_radius = data['graph_radius'] 269 | local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness'] 270 | local graph_start_angle = data['graph_start_angle'] 271 | local graph_unit_angle = data['graph_unit_angle'] 272 | local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha'] 273 | local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha'] 274 | local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha'] 275 | local graph_end_angle = (max_value * graph_unit_angle) % 360 276 | 277 | -- background ring 278 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle)) 279 | cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha)) 280 | cairo_set_line_width(display, graph_thickness) 281 | cairo_stroke(display) 282 | 283 | -- arc of value 284 | local val = value % (max_value + 1) 285 | local start_arc = 0 286 | local stop_arc = 0 287 | local i = 1 288 | while i <= val do 289 | start_arc = (graph_unit_angle * i) - graph_unit_thickness 290 | stop_arc = (graph_unit_angle * i) 291 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 292 | cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha)) 293 | cairo_stroke(display) 294 | i = i + 1 295 | end 296 | local angle = start_arc 297 | 298 | -- hand 299 | start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2) 300 | stop_arc = (graph_unit_angle * val) 301 | cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 302 | cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha)) 303 | cairo_stroke(display) 304 | 305 | -- graduations marks 306 | local graduation_radius = data['graduation_radius'] 307 | local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness'] 308 | local graduation_unit_angle = data['graduation_unit_angle'] 309 | local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha'] 310 | if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then 311 | local nb_graduation = graph_end_angle / graduation_unit_angle 312 | local i = 0 313 | while i < nb_graduation do 314 | cairo_set_line_width(display, graduation_thickness) 315 | start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2) 316 | stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2) 317 | cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc)) 318 | cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha)) 319 | cairo_stroke(display) 320 | cairo_set_line_width(display, graph_thickness) 321 | i = i + 1 322 | end 323 | end 324 | 325 | -- text 326 | local txt_radius = data['txt_radius'] 327 | local txt_weight, txt_size = data['txt_weight'], data['txt_size'] 328 | local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha'] 329 | local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle)) 330 | local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle)) 331 | cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight) 332 | cairo_set_font_size (display, txt_size) 333 | cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha)) 334 | cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3) 335 | cairo_show_text (display, value) 336 | cairo_stroke (display) 337 | 338 | -- caption 339 | local caption = data['caption'] 340 | local caption_weight, caption_size = data['caption_weight'], data['caption_size'] 341 | local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha'] 342 | local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2))) 343 | local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2))) 344 | cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight); 345 | cairo_set_font_size (display, caption_size) 346 | cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha)) 347 | cairo_move_to (display, x + tox + 5, y + toy + 1) 348 | -- bad hack but not enough time ! 349 | if graph_start_angle < 105 then 350 | cairo_move_to (display, x + tox - 30, y + toy + 1) 351 | end 352 | cairo_show_text (display, caption) 353 | cairo_stroke (display) 354 | end 355 | 356 | ------------------------------------------------------------------------------- 357 | -- go_clock_rings 358 | -- loads data and displays clock 359 | -- 360 | function go_clock_rings(display) 361 | local function load_clock_rings(display, data) 362 | local str, value = '', 0 363 | str = string.format('${%s %s}',data['name'], data['arg']) 364 | str = conky_parse(str) 365 | value = tonumber(str) 366 | draw_clock_ring(display, data, value) 367 | end 368 | 369 | for i in pairs(clock_h) do 370 | load_clock_rings(display, clock_h[i]) 371 | end 372 | for i in pairs(clock_m) do 373 | load_clock_rings(display, clock_m[i]) 374 | end 375 | for i in pairs(clock_s) do 376 | load_clock_rings(display, clock_s[i]) 377 | end 378 | end 379 | 380 | ------------------------------------------------------------------------------- 381 | -- go_gauge_rings 382 | -- loads data and displays gauges 383 | -- 384 | function go_gauge_rings(display) 385 | local function load_gauge_rings(display, data) 386 | local str, value = '', 0 387 | str = string.format('${%s %s}',data['name'], data['arg']) 388 | str = conky_parse(str) 389 | value = tonumber(str) 390 | draw_gauge_ring(display, data, value) 391 | end 392 | 393 | for i in pairs(gauge) do 394 | load_gauge_rings(display, gauge[i]) 395 | end 396 | end 397 | 398 | ------------------------------------------------------------------------------- 399 | -- MAIN 400 | function conky_main() 401 | if conky_window == nil then 402 | return 403 | end 404 | 405 | local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height) 406 | local display = cairo_create(cs) 407 | 408 | local updates = conky_parse('${updates}') 409 | update_num = tonumber(updates) 410 | 411 | if update_num > 5 then 412 | go_clock_rings(display) 413 | go_gauge_rings(display) 414 | end 415 | 416 | cairo_surface_destroy(cs) 417 | cairo_destroy(display) 418 | end 419 | 420 | -------------------------------------------------------------------------------- /.config/conky/laptop.conky: -------------------------------------------------------------------------------- 1 | use_xft yes 2 | xftfont Roboto:bold:size=8 3 | xftalpha 1.0 4 | update_interval 1.0 5 | total_run_times 0 6 | own_window yes 7 | own_window_transparent yes 8 | own_window_argb_visual yes 9 | own_window_type normal 10 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 11 | background no 12 | double_buffer yes 13 | draw_outline no 14 | draw_borders no 15 | imlib_cache_size 0 16 | draw_shades no 17 | alignment top_right 18 | gap_x 20 19 | gap_y 20 20 | no_buffers yes 21 | uppercase no 22 | override_utf8_locale yes 23 | default_color 839496 24 | temperature_unit fahrenheit 25 | 26 | TEXT 27 | ${font Rock Salt:size=14}${alignc}Vorlauf${font} 28 | 29 | Central: ${alignr}${tztime America/Chicago %H:%M:%S} 30 | Zulu: ${alignr}${tztime Etc/Zulu %H:%M:%S} 31 | 32 | HDD $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_used_perc /}% 33 | ${fs_bar /} 34 | 35 | MEM $alignc $mem / $memmax $alignr $memperc% 36 | $membar 37 | 38 | CPU Avg $alignr ${cpu cpu0}% 39 | ${cpubar cpu0} 40 | ${font Roboto:bold:size=8}Core 1$alignr ${cpu cpu1}% 41 | ${cpubar 3,230 cpu1} 42 | Core 2$alignr ${cpu cpu2}% 43 | ${cpubar 3,230 cpu2} 44 | Core 3$alignr ${cpu cpu3}% 45 | ${cpubar 3,230 cpu3} 46 | Core 4$alignr ${cpu cpu4}% 47 | ${cpubar 3,230 cpu4}${font} 48 | 49 | CPU Temp $alignr ${hwmon 1 temp 2}°F 50 | ${execbar sensors | grep 'CPUTIN' | cut -f2 -d '+' | cut -f1 -d'.'} 51 | 52 | NVidia GPU Temp $alignr ${hwmon 0 temp 1}°F 53 | ${execbar sensors | grep 'temp1' | cut -f2 -d '+' | cut -f1 -d'.'} 54 | 55 | Wifi Signal $alignr ${wireless_link_qual_perc wlp2s0}% 56 | ${wireless_link_bar wlp2s0} 57 | 58 | Battery: $alignr ${execi 60 acpi | awk '{ sub (/\%,/, "%"); print $3 " " $4 }'} 59 | 60 | ${execpi 120 [ -e /var/local/updates-available-sh.info ] && cat /var/local/updates-available-sh.info || echo "Update info not available"} 61 | 62 | -------------------------------------------------------------------------------- /.config/conky/laptop.conky.desktop: -------------------------------------------------------------------------------- 1 | laptop.conky -------------------------------------------------------------------------------- /.config/conky/solarized.conky: -------------------------------------------------------------------------------- 1 | # Conky settings # 2 | background no 3 | update_interval 1 4 | 5 | cpu_avg_samples 2 6 | net_avg_samples 2 7 | 8 | override_utf8_locale yes 9 | 10 | double_buffer yes 11 | no_buffers yes 12 | 13 | text_buffer_size 2048 14 | #imlib_cache_size 0 15 | 16 | temperature_unit fahrenheit 17 | 18 | # Window specifications # 19 | 20 | own_window yes 21 | own_window_type normal 22 | own_window_transparent yes 23 | own_window_argb_visual yes 24 | own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below 25 | 26 | border_inner_margin 0 27 | border_outer_margin 0 28 | 29 | minimum_size 200 250 30 | maximum_width 200 31 | 32 | alignment tr 33 | gap_x 35 34 | gap_y 55 35 | 36 | # Graphics settings # 37 | draw_shades no 38 | draw_outline no 39 | draw_borders no 40 | draw_graph_borders no 41 | 42 | # Text settings # 43 | use_xft yes 44 | xftfont Roboto:size=8 45 | xftalpha 0.5 46 | 47 | uppercase no 48 | 49 | temperature_unit fahrenheit 50 | 51 | 52 | default_color 839496 53 | 54 | # Lua Load # 55 | lua_load ~/.config/conky/solarized.lua 56 | lua_draw_hook_pre clock_rings 57 | 58 | TEXT 59 | ${voffset 8}${color 839496}${font Roboto:size=16}${time %A}${font}${voffset -8}${alignr 50}${color 839496}${font Roboto:size=38}${time %e}${font} 60 | ${color 839496}${voffset -30}${color 839496}${font Roboto:size=18}${time %b}${font}${voffset -3} ${color 839496}${font Roboto:size=20}${time %Y}${font}${color 839496}${hr} 61 | ${voffset 140}${font Roboto:size=10}${alignr}HDAM${font} 62 | ${font Roboto:size=10}${color 839496}${alignr}${weather http://weather.noaa.gov/pub/data/observations/metar/stations/ HDAM temperature temperature 30} °F${font} 63 | ${image ~/.config/conky/solarized.png -p 20,160 -s 160x26} 64 | 65 | ${color 839496}${goto 25}${voffset 35}${cpu cpu0}% 66 | ${color 839496}${goto 25}CPU 67 | ${color 839496}${goto 50}${voffset 23}${memperc}% 68 | ${color 839496}${goto 50}RAM 69 | ${color 839496}${goto 75}${voffset 23}${swapperc}% 70 | ${color 839496}${goto 75}Swap 71 | ${color 839496}${goto 100}${voffset 23}${fs_used_perc /}% 72 | ${color 839496}${goto 100}Disk 73 | ${color 839496}${goto 125}${voffset 25}${downspeed wlan0} 74 | ${color 839496}${goto 125}${upspeed wlan0} 75 | ${color 839496}${goto 125}Wifi 76 | 77 | 78 | 79 | 80 | ${color 839496}${font Roboto:bold:size=9}Uptime: ${uptime_short} 81 | ${color 839496}${font Roboto:bold:size=9}Processes: ${processes} 82 | ${color 839496}${font Roboto:bold:size=9}Running: ${running_processes} 83 | 84 | ${color 839496}${font Roboto:bold:size=9}${alignr}${nodename} 85 | ${color 839496}${font Roboto:bold:size=9}${alignr}${pre_exec cat /etc/issue.net} $machine 86 | ${color 839496}${font Roboto:bold:size=9}${alignr}Kernel: ${kernel} 87 | -------------------------------------------------------------------------------- /.config/conky/solarized.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | Clock Rings by Linux Mint (2011) reEdited by despot77 3 | 4 | This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua script. 5 | 6 | IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num>5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num>3; conversely if you update Conky every 0.5s, you should use update_num>10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error. 7 | 8 | To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua): 9 | lua_load ~/scripts/clock_rings.lua 10 | lua_draw_hook_pre clock_rings 11 | 12 | Changelog: 13 | + v1.0 -- Original release (30.09.2009) 14 | v1.1p -- Jpope edit londonali1010 (05.10.2009) 15 | *v 2011mint -- reEdit despot77 (18.02.2011) 16 | ]] 17 | 18 | settings_table = { 19 | { 20 | -- Edit this table to customise your rings. 21 | -- You can create more rings simply by adding more elements to settings_table. 22 | -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'. 23 | name='time', 24 | -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''. 25 | arg='%I.%M', 26 | -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100. 27 | max=12, 28 | -- "bg_colour" is the colour of the base ring. 29 | bg_colour=0xffffff, 30 | -- "bg_alpha" is the alpha value of the base ring. 31 | bg_alpha=0.1, 32 | -- "fg_colour" is the colour of the indicator part of the ring. 33 | fg_colour=0x094959, 34 | -- "fg_alpha" is the alpha value of the indicator part of the ring. 35 | fg_alpha=0.3, 36 | -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window. 37 | x=100, y=150, 38 | -- "radius" is the radius of the ring. 39 | radius=50, 40 | -- "thickness" is the thickness of the ring, centred around the radius. 41 | thickness=5, 42 | -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative. 43 | start_angle=0, 44 | -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle. 45 | end_angle=360 46 | }, 47 | { 48 | name='time', 49 | arg='%M.%S', 50 | max=60, 51 | bg_colour=0xffffff, 52 | bg_alpha=0.1, 53 | fg_colour=0x094959, 54 | fg_alpha=0.4, 55 | x=100, y=150, 56 | radius=56, 57 | thickness=5, 58 | start_angle=0, 59 | end_angle=360 60 | }, 61 | { 62 | name='time', 63 | arg='%S', 64 | max=60, 65 | bg_colour=0xffffff, 66 | bg_alpha=0.1, 67 | fg_colour=0x094959, 68 | fg_alpha=0.6, 69 | x=100, y=150, 70 | radius=62, 71 | thickness=5, 72 | start_angle=0, 73 | end_angle=360 74 | }, 75 | { 76 | name='time', 77 | arg='%d', 78 | max=31, 79 | bg_colour=0xffffff, 80 | bg_alpha=0.1, 81 | fg_colour=0x094959, 82 | fg_alpha=0.8, 83 | x=100, y=150, 84 | radius=70, 85 | thickness=5, 86 | start_angle=-90, 87 | end_angle=90 88 | }, 89 | { 90 | name='time', 91 | arg='%m', 92 | max=12, 93 | bg_colour=0xffffff, 94 | bg_alpha=0.1, 95 | fg_colour=0x094959, 96 | fg_alpha=1, 97 | x=100, y=150, 98 | radius=76, 99 | thickness=5, 100 | start_angle=-90, 101 | end_angle=90 102 | }, 103 | { 104 | name='cpu', 105 | arg='cpu0', 106 | max=100, 107 | bg_colour=0xffffff, 108 | bg_alpha=0.2, 109 | fg_colour=0x094959, 110 | fg_alpha=0.8, 111 | x=50, y=300, 112 | radius=25, 113 | thickness=5, 114 | start_angle=-90, 115 | end_angle=180 116 | }, 117 | { 118 | name='memperc', 119 | arg='', 120 | max=100, 121 | bg_colour=0xffffff, 122 | bg_alpha=0.2, 123 | fg_colour=0x094959, 124 | fg_alpha=0.8, 125 | x=75, y=350, 126 | radius=25, 127 | thickness=5, 128 | start_angle=-90, 129 | end_angle=180 130 | }, 131 | { 132 | name='swapperc', 133 | arg='', 134 | max=100, 135 | bg_colour=0xffffff, 136 | bg_alpha=0.2, 137 | fg_colour=0x094959, 138 | fg_alpha=0.8, 139 | x=100, y=400, 140 | radius=25, 141 | thickness=5, 142 | start_angle=-90, 143 | end_angle=180 144 | }, 145 | { 146 | name='fs_used_perc', 147 | arg='/', 148 | max=100, 149 | bg_colour=0xffffff, 150 | bg_alpha=0.2, 151 | fg_colour=0x094959, 152 | fg_alpha=0.8, 153 | x=125, y=450, 154 | radius=25, 155 | thickness=5, 156 | start_angle=-90, 157 | end_angle=180 158 | }, 159 | { 160 | name='downspeedf', 161 | arg='wlan0', 162 | max=100, 163 | bg_colour=0xffffff, 164 | bg_alpha=0.2, 165 | fg_colour=0x094959, 166 | fg_alpha=0.8, 167 | x=150, y=500, 168 | radius=25, 169 | thickness=4, 170 | start_angle=-90, 171 | end_angle=180 172 | }, 173 | { 174 | name='upspeedf', 175 | arg='wlan0', 176 | max=100, 177 | bg_colour=0xffffff, 178 | bg_alpha=0.2, 179 | fg_colour=0x094959, 180 | fg_alpha=0.8, 181 | x=150, y=500, 182 | radius=20, 183 | thickness=4, 184 | start_angle=-90, 185 | end_angle=180 186 | }, 187 | } 188 | 189 | -- Use these settings to define the origin and extent of your clock. 190 | 191 | clock_r=65 192 | 193 | -- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window. 194 | 195 | clock_x=100 196 | clock_y=150 197 | 198 | show_seconds=true 199 | 200 | require 'cairo' 201 | 202 | function rgb_to_r_g_b(colour,alpha) 203 | return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha 204 | end 205 | 206 | function draw_ring(cr,t,pt) 207 | local w,h=conky_window.width,conky_window.height 208 | 209 | local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle'] 210 | local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha'] 211 | 212 | local angle_0=sa*(2*math.pi/360)-math.pi/2 213 | local angle_f=ea*(2*math.pi/360)-math.pi/2 214 | local t_arc=t*(angle_f-angle_0) 215 | 216 | -- Draw background ring 217 | 218 | cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f) 219 | cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga)) 220 | cairo_set_line_width(cr,ring_w) 221 | cairo_stroke(cr) 222 | 223 | -- Draw indicator ring 224 | 225 | cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc) 226 | cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga)) 227 | cairo_stroke(cr) 228 | end 229 | 230 | function draw_clock_hands(cr,xc,yc) 231 | local secs,mins,hours,secs_arc,mins_arc,hours_arc 232 | local xh,yh,xm,ym,xs,ys 233 | 234 | secs=os.date("%S") 235 | mins=os.date("%M") 236 | hours=os.date("%I") 237 | 238 | secs_arc=(2*math.pi/60)*secs 239 | mins_arc=(2*math.pi/60)*mins+secs_arc/60 240 | hours_arc=(2*math.pi/12)*hours+mins_arc/12 241 | 242 | -- Draw hour hand 243 | 244 | xh=xc+0.7*clock_r*math.sin(hours_arc) 245 | yh=yc-0.7*clock_r*math.cos(hours_arc) 246 | cairo_move_to(cr,xc,yc) 247 | cairo_line_to(cr,xh,yh) 248 | 249 | cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND) 250 | cairo_set_line_width(cr,5) 251 | cairo_set_source_rgba(cr,0.8,0.8,0.8,0.8) 252 | cairo_stroke(cr) 253 | 254 | -- Draw minute hand 255 | 256 | xm=xc+clock_r*math.sin(mins_arc) 257 | ym=yc-clock_r*math.cos(mins_arc) 258 | cairo_move_to(cr,xc,yc) 259 | cairo_line_to(cr,xm,ym) 260 | 261 | cairo_set_line_width(cr,3) 262 | cairo_stroke(cr) 263 | 264 | -- Draw seconds hand 265 | 266 | if show_seconds then 267 | xs=xc+clock_r*math.sin(secs_arc) 268 | ys=yc-clock_r*math.cos(secs_arc) 269 | cairo_move_to(cr,xc,yc) 270 | cairo_line_to(cr,xs,ys) 271 | 272 | cairo_set_line_width(cr,1) 273 | cairo_stroke(cr) 274 | end 275 | end 276 | 277 | function conky_clock_rings() 278 | local function setup_rings(cr,pt) 279 | local str='' 280 | local value=0 281 | 282 | str=string.format('${%s %s}',pt['name'],pt['arg']) 283 | str=conky_parse(str) 284 | 285 | value=tonumber(str) 286 | pct=value/pt['max'] 287 | 288 | draw_ring(cr,pct,pt) 289 | end 290 | 291 | -- Check that Conky has been running for at least 5s 292 | 293 | if conky_window==nil then return end 294 | local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height) 295 | 296 | local cr=cairo_create(cs) 297 | 298 | local updates=conky_parse('${updates}') 299 | update_num=tonumber(updates) 300 | 301 | if update_num>5 then 302 | for i in pairs(settings_table) do 303 | setup_rings(cr,settings_table[i]) 304 | end 305 | end 306 | 307 | draw_clock_hands(cr,clock_x,clock_y) 308 | end 309 | -------------------------------------------------------------------------------- /.config/conky/solarized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yuri-rage/yuri_config/370f5debdcd39939e10de677ec0eab4c962d9c64/.config/conky/solarized.png -------------------------------------------------------------------------------- /.config/conky/stickyclock.conky: -------------------------------------------------------------------------------- 1 | use_xft yes 2 | xftfont Roboto:bold:size=8 3 | xftalpha 1.0 4 | update_interval 1.0 5 | total_run_times 0 6 | own_window yes 7 | own_window_transparent yes 8 | own_window_argb_visual yes 9 | own_window_type normal 10 | # own_window_class conky-clock 11 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 12 | # own_window_hints undecorated,above,sticky,skip_taskbar,skip_pager 13 | background no 14 | double_buffer yes 15 | draw_outline no 16 | draw_borders no 17 | imlib_cache_size 0 18 | draw_shades no 19 | alignment top_right 20 | gap_x 100 21 | gap_y 0 22 | no_buffers yes 23 | uppercase no 24 | override_utf8_locale no 25 | color1 839496 26 | 27 | TEXT 28 | ${alignr}${color1}${time %a, %e %B %G %T} 29 | -------------------------------------------------------------------------------- /.config/conky/stickynote.conky: -------------------------------------------------------------------------------- 1 | use_xft yes 2 | xftfont Roboto::size=8 3 | xftalpha 1.0 4 | update_interval 1.0 5 | total_run_times 0 6 | own_window yes 7 | own_window_transparent yes 8 | own_window_argb_visual yes 9 | own_window_type normal 10 | own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager 11 | # own_window_hints undecorated,above,sticky,skip_taskbar,skip_pager 12 | background no 13 | double_buffer yes 14 | draw_outline no 15 | draw_borders no 16 | imlib_cache_size 0 17 | draw_shades no 18 | alignment bottom_left 19 | gap_x 1037 20 | gap_y 20 21 | no_buffers yes 22 | uppercase no 23 | override_utf8_locale no 24 | default_color 839496 25 | 26 | TEXT 27 | 28 | -------------------------------------------------------------------------------- /.config/conky/stickynote.conky.desktop: -------------------------------------------------------------------------------- 1 | stickynote.conky -------------------------------------------------------------------------------- /.config/openbox/autostart: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | 3 | # yuri - custom startup for openbox without a desktop environment 4 | # - I made it executable so I can rerun it 5 | # - #!/bin/bash is not the default first line 6 | 7 | # no longer necessary to run xrandr - lightdm uses mirror_displays.sh at display startup 8 | # xrandr --output LVDS1 --mode 1366x768 --output HDMI1 --mode 1360x768 --same-as LVDS1 9 | 10 | # set wallpaper 11 | hsetroot -fill ~/images/wallpaper.png 12 | 13 | # start compositor 14 | compton --config "$HOME/.config/compton.conf" -b 15 | 16 | # recent system update starts nm-applet automatically (daemon support?) 17 | # nm-applet & 18 | 19 | # perhaps not the best place to start an automount daemon 20 | # but I'm not sure there's a better option for the moment 21 | # OBE - udevil + spacefm installed instead, Nov 2015 22 | # udiskie --tray & 23 | 24 | volumeicon & 25 | 26 | # desktop terminal 27 | urxvt -name URxvtDesktop & 28 | 29 | # start task manager 30 | tint2 & 31 | 32 | # start conky system monitor(s) 33 | # conky -c ~/.config/conky/conkyrc_lua_solarized & 34 | # conky -c "$HOME/.config/conky/stickyclock.conky" & 35 | /usr/local/bin/conkystart.sh 36 | 37 | # start openbox with numlock on 38 | numlockx on & 39 | -------------------------------------------------------------------------------- /.config/openbox/menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | gvim 8 | 9 | yes 10 | GVim 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | catfish --fileman=thunar --path=/home/yuri 19 | 20 | 21 | 22 | 23 | 24 | 25 | vlc 26 | 27 | 28 | 29 | 30 | ghb 31 | 32 | 33 | 34 | 35 | xfburn 36 | 37 | 38 | 39 | 40 | filebot 41 | 42 | 43 | 44 | 45 | openshot 46 | 47 | 48 | 49 | 50 | xbmc 51 | 52 | yes 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | gimp 61 | 62 | yes 63 | 64 | 65 | 66 | 67 | 68 | scrot -d 1 -e 'feh $f' 69 | 70 | 71 | 72 | 73 | scrot -s -b -e 'feh $f' 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | brightness.sh up 82 | 83 | 84 | 85 | 86 | brightness.sh down 87 | 88 | 89 | 90 | 91 | brightness.sh 100 92 | 93 | 94 | 95 | 96 | brightness.sh 50 97 | 98 | 99 | 100 | 101 | brightness.sh 1 102 | 103 | 104 | 105 | 106 | 107 | obconf 108 | 109 | yes 110 | 111 | 112 | 113 | 114 | 115 | lxappearance 116 | 117 | 118 | 119 | 120 | obmenu 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | /usr/local/bin/killstart.sh "compton --config ~/.config/compton.conf -b" tint2 /usr/local/bin/conkystart.sh 131 | 132 | 133 | 134 | 135 | /usr/local/bin/killstart.sh "compton --config ~/.config/compton.conf -b" 136 | 137 | 138 | 139 | 140 | /usr/local/bin/killstart.sh tint2 141 | 142 | 143 | 144 | 145 | /usr/local/bin/conkystart.sh 146 | 147 | 148 | 149 | 150 | sh -c 'hsetroot -fill ~/images/wallpaper.png' 151 | 152 | 153 | 154 | 155 | 156 | 157 | dmenu_run 158 | 159 | 160 | 161 | 162 | urxvt 163 | 164 | 165 | 166 | 167 | google-chrome-stable 168 | 169 | 170 | 171 | 172 | spacefm 173 | 174 | 175 | 176 | 177 | libreoffice 178 | 179 | 180 | 181 | 182 | arduino 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | oblogout 199 | 200 | 201 | 202 | 203 | -------------------------------------------------------------------------------- /.config/openbox/rc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 10 6 | 20 7 | 8 | 9 | yes 10 | 11 | no 12 | 13 | yes 14 | 16 | no 17 | 18 | 200 19 | 21 | no 22 | 24 | 25 | 26 | Smart 27 | 28 | Primary 29 | 32 | 1 33 | 38 | 39 | 40 | Onyx-black 41 | NLIMC 42 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | no 53 | yes 54 | 55 | Roboto 56 | 7 57 | 58 | Normal 59 | 60 | Normal 61 | 62 | 63 | 64 | Roboto 65 | 7 66 | 67 | Normal 68 | 69 | Normal 70 | 71 | 72 | 73 | Roboto 74 | 8 75 | 76 | Normal 77 | 78 | Normal 79 | 80 | 81 | 82 | Roboto 83 | 8 84 | 85 | Normal 86 | 87 | Normal 88 | 89 | 90 | 91 | Roboto 92 | 8 93 | 94 | Normal 95 | 96 | Normal 97 | 98 | 99 | 100 | Roboto 101 | 8 102 | 103 | Normal 104 | 105 | Normal 106 | 107 | 108 | 109 | 110 | 118 | 4 119 | 1 120 | 121 | 01 122 | 02 123 | 03 124 | 04 125 | 126 | 875 127 | 129 | 130 | 131 | yes 132 | Nonpixel 133 | 134 | Center 135 | 136 | 137 | 138 | 10 139 | 141 | 10 142 | 144 | 145 | 146 | 150 | 151 | 0 152 | 153 | 2 154 | 0 155 | 0 156 | 157 | 158 | TopLeft 159 | 160 | 0 161 | 0 162 | yes 163 | Above 164 | 165 | Vertical 166 | 167 | no 168 | 300 169 | 170 | 300 171 | 172 | Middle 173 | 174 | 175 | 176 | C-g 177 | 178 | 179 | 180 | left 181 | no 182 | 183 | 184 | 185 | 186 | right 187 | no 188 | 189 | 190 | 191 | 192 | up 193 | no 194 | 195 | 196 | 197 | 198 | down 199 | no 200 | 201 | 202 | 203 | 204 | left 205 | no 206 | 207 | 208 | 209 | 210 | right 211 | no 212 | 213 | 214 | 215 | 216 | up 217 | no 218 | 219 | 220 | 221 | 222 | down 223 | no 224 | 225 | 226 | 227 | 228 | 1 229 | 230 | 231 | 232 | 233 | 2 234 | 235 | 236 | 237 | 238 | 3 239 | 240 | 241 | 242 | 243 | 4 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | client-menu 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | yes 285 | yes 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | right 297 | 298 | 299 | 300 | 301 | left 302 | 303 | 304 | 305 | 306 | up 307 | 308 | 309 | 310 | 311 | down 312 | 313 | 314 | 315 | 316 | 317 | 318 | true 319 | Konqueror 320 | 321 | kfmclient openProfile filemanagement 322 | 323 | 324 | 325 | 326 | 327 | 328 | /usr/local/bin/urxvt-quake.sh 329 | 330 | 331 | 332 | 333 | /usr/local/bin/urxvt-quake.sh 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 0 345 | 50% 346 | 50% 347 | 50% 348 | 349 | 350 | 351 | 352 | 353 | 0 354 | 50% 355 | 100% 356 | 50% 357 | 358 | 359 | 360 | 361 | 362 | 50% 363 | 50% 364 | 50% 365 | 50% 366 | 367 | 368 | 369 | 370 | 371 | 0 372 | 0 373 | 50% 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 50% 384 | 0 385 | 50% 386 | 387 | 388 | 389 | 390 | 391 | 392 | 0 393 | 0 394 | 50% 395 | 50% 396 | 397 | 398 | 399 | 400 | 401 | 0 402 | 0 403 | 100% 404 | 50% 405 | 406 | 407 | 408 | 409 | 410 | 50% 411 | 0 412 | 50% 413 | 50% 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | /usr/local/bin/volume_change.sh up 433 | 434 | 435 | 436 | 437 | 438 | 439 | 440 | /usr/local/bin/volume_change.sh down 441 | 442 | 443 | 444 | 445 | /usr/local/bin/volume_change.sh toggle 446 | 447 | 448 | 449 | 450 | 1 451 | 452 | 500 453 | 454 | 400 455 | 458 | false 459 | 461 | 462 | 463 | 464 | 465 | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | previous 488 | 489 | 490 | 491 | 492 | next 493 | 494 | 495 | 496 | 497 | previous 498 | 499 | 500 | 501 | 502 | next 503 | 504 | 505 | 506 | 507 | previous 508 | 509 | 510 | 511 | 512 | next 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | no 526 | 527 | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | yes 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 | 559 | client-menu 560 | 561 | 562 | 563 | 564 | 565 | 566 | top 567 | 568 | 569 | 570 | 571 | 572 | 573 | left 574 | 575 | 576 | 577 | 578 | 579 | 580 | right 581 | 582 | 583 | 584 | 585 | 586 | 587 | bottom 588 | 589 | 590 | 591 | 592 | 593 | 594 | client-menu 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 | URxvtDesktop 621 | 622 | 623 | root-menu 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | client-menu 640 | 641 | 642 | 643 | 644 | 645 | 646 | client-menu 647 | 648 | 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | vertical 700 | 701 | 702 | 703 | 704 | horizontal 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 | 714 | 715 | 716 | 717 | 718 | 719 | 729 | 730 | 731 | previous 732 | 733 | 734 | 735 | 736 | next 737 | 738 | 739 | 740 | 741 | previous 742 | 743 | 744 | 745 | 746 | next 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | client-list-combined-menu 763 | 764 | 765 | 766 | 767 | root-menu 768 | 769 | 770 | 771 | 772 | 773 | 774 | previous 775 | 776 | 777 | 778 | 779 | next 780 | 781 | 782 | 783 | 784 | previous 785 | 786 | 787 | 788 | 789 | next 790 | 791 | 792 | 793 | 794 | 795 | 797 | 798 | menu.xml 799 | 200 800 | 802 | no 803 | 804 | 100 805 | 808 | 400 809 | 813 | yes 814 | 815 | yes 816 | 817 | 818 | 819 | 913 | 914 | 915 | no 916 | yes 917 | yes 918 | below 919 | no 920 | all 921 | 922 | 923 | 924 | no 925 | 926 | center 927 | 0 928 | 929 | no 930 | yes 931 | yes 932 | above 933 | yes 934 | all 935 | 936 | 940 | 941 | no 942 | 943 | 944 | 945 | -------------------------------------------------------------------------------- /.config/sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # 2 | # bspwm hotkeys 3 | # 4 | 5 | # graceful exit (calls modified crunchbang exit script) 6 | # if systemd is in use, need to modify /etc/systemd/logind.conf to ignore power button events 7 | {XF86PowerOff} 8 | /usr/local/bin/bspwm-exit 9 | 10 | # exit bspwm 11 | super + alt + Escape 12 | bspc quit 13 | 14 | # close/kill window 15 | super + w 16 | bspc window -c 17 | 18 | # next desktop 19 | super + t 20 | bspc desktop -l next 21 | 22 | # balance tree 23 | super + b 24 | bspc desktop -B 25 | 26 | # toggle floating/fullscreen 27 | super + {s,f} 28 | bspc window -t {floating,fullscreen} 29 | 30 | # set focus on previous window/desktop 31 | super + {grave,Tab} 32 | bspc {window,desktop} -f last 33 | 34 | # swap position of current window with the last one 35 | super + apostrophe 36 | bspc window -s last 37 | 38 | # set focus to windows in "historical" order 39 | super + {o,i} 40 | bspc control --record-history off; \ 41 | bspc window {older,newer} -f; \ 42 | bspc control --record-history on 43 | 44 | # swap position of current window with the last one (in manual mode) 45 | # seems useless 46 | super + y 47 | bspc window -w last.manual 48 | 49 | # swap this win›dow with the largest one in the layout 50 | super + m 51 | bspc window -s biggest 52 | 53 | # switch/move window (vim keybinding) 54 | super + {_,shift + }{h,j,k,l} 55 | bspc window -{f,s} {left,down,up,right} 56 | 57 | # switch windows sequentially (like an app/task switcher) 58 | super + {_,shift + }c 59 | bspc window -f {next,prev} 60 | 61 | # circulate binary tree leaves back/forward ("rotate" window layout) 62 | super + {comma,period} 63 | bspc desktop -C {backward,forward} 64 | 65 | # rotate binary tree clockwise/counter-clockwise 66 | super + ctrl + {comma,period} 67 | bspc desktop -R {-90,90} 68 | 69 | # flip (mirror) binary tree horizontally/vertically 70 | super + alt + {comma,period} 71 | bspc desktop -F {vertical,horizontal} 72 | 73 | # switch desktops sequentially 74 | super + bracket{left,right} 75 | bspc desktop -f {prev,next} 76 | 77 | # pre-select next window split location 78 | super + ctrl + {h,j,k,l} 79 | bspc window -p {left,down,up,right} 80 | 81 | # cancel pre-selection of window/desktop 82 | super + ctrl + {_,shift + }space 83 | bspc {window -p cancel,desktop -c} 84 | 85 | # resize window outwards(?) 86 | super + alt + {h,j,k,l} 87 | bspc window -e {left -10,down +10,up -10,right +10} 88 | 89 | # resize window inwards(?) 90 | super + alt + shift + {h,j,k,l} 91 | bspc window -e {right -10,up +10,down -10,left +10} 92 | 93 | # set focus to desktop / send window to desktop 94 | super + {_,shift + }{1-9,0} 95 | bspc {desktop -f,window -d} ^{1-9,10} 96 | 97 | # man page says "set the splitting ratio of the selected window" (appears useless) 98 | # super + ctrl + {1-9} 99 | # bspc window -r 0.{1-9} 100 | 101 | # adjust desktop split ratio - replaced window ratio command above 102 | super + ctrl + {1-9} 103 | bspc config -d focused split_ratio {0.10,0.20,0.30,0.40,0.50,0.60,0.70,0.80,0.90};\ 104 | bspc desktop --equalize 105 | 106 | # dynamic window gaps (mostly just showing off...) 107 | super + {minus,equal} 108 | bspc config -d focused window_gap $((`bspc config -d focused window_gap` {+,-} 2 )) 109 | 110 | # click to focus 111 | ~button1 112 | bspc pointer -g focus 113 | 114 | # move/resize window 115 | super + button{1-3} 116 | bspc pointer -g {move,resize_side,resize_corner} 117 | 118 | # send the coordinates of the pointer to the current action (don't change this) 119 | super + !button{1-3} 120 | bspc pointer -t %i %i 121 | 122 | # terminate the current pointer action (don't change this) 123 | super + @button{1-3} 124 | bspc pointer -u 125 | 126 | # 127 | # wm independent hotkeys 128 | # 129 | 130 | # open a terminal 131 | super + Return 132 | urxvt 133 | 134 | # open a "scratchpad" terminal (quake-style, in this case, on a 1366x768 display) 135 | F12 136 | xdotool search --onlyvisible --classname URxvtQuake windowunmap \ 137 | || xdotool search --classname URxvtQuake windowmap \ 138 | || urxvt -name URxvtQuake -geometry 110x20+297+1 139 | 140 | # open dmenu 141 | super + space 142 | dmenu_run 143 | 144 | # make sxhkd reload its configuration files: 145 | super + Escape 146 | pkill -USR1 -x sxhkd 147 | 148 | # volume key bindings 149 | {XF86AudioLowerVolume} 150 | amixer -q set Master 5- 151 | 152 | {XF86AudioRaiseVolume} 153 | amixer -q set Master 5+ 154 | 155 | {XF86AudioMute} 156 | $(amixer get Master | grep off > /dev/null && amixer -q set Master unmute) || amixer -q set Master mute 157 | 158 | # some simple notifications in lieu of a systray 159 | # might be better to dedicate a desktop to system performance 160 | 161 | # show acpi output (battery status) 162 | super + a 163 | notify-send -t 5000 "`acpi`" 164 | 165 | # show current date/time 166 | super + d 167 | notify-send -t 5000 "`date +'%H:%M %a, %d %b %Y'`" 168 | 169 | # show output of periodically run update-checking script 170 | super + u 171 | notify-send -t 5000 "`cat /var/local/updates-available-sh.info`" 172 | -------------------------------------------------------------------------------- /.config/tint2/tint2rc: -------------------------------------------------------------------------------- 1 | # Tint2 config file 2 | # Generated by tintwizard (http://code.google.com/p/tintwizard/) 3 | # For information on manually configuring tint2 see http://code.google.com/p/tint2/wiki/Configure 4 | 5 | # Background definitions 6 | # ID 1 - transparent - panel and inactive tasks 7 | rounded = 7 8 | border_width 0 9 | background_color = #000000 0 10 | border_color = #FFFFFF 16 11 | 12 | # ID 2 - task active 13 | rounded = 5 14 | border_width = 0 15 | background_color = #FFFFFF 10 16 | border_color = #FFFFFF 48 17 | 18 | # ID 3 - desktop inactive 19 | rounded = 7 20 | border_width = 0 21 | background_color = #000000 40 22 | border_color = #FFFFFF 68 23 | 24 | # ID 4 - desktop active 25 | rounded = 7 26 | border_width = 0 27 | background_color = #000000 80 28 | border_color = #000000 0 29 | 30 | # Panel 31 | panel_monitor = all 32 | panel_position = bottom center horizontal 33 | panel_size = 90% 24 34 | panel_margin = 0 0 35 | panel_padding = 7 0 7 36 | panel_dock = 0 37 | # shows openbox menu on right click 38 | wm_menu = 1 39 | panel_layer = top 40 | panel_background_id = 1 41 | panel_items = TSC 42 | 43 | # Panel Autohide 44 | autohide = 1 45 | autohide_show_timeout = 0 46 | autohide_hide_timeout = 0 47 | autohide_height = 2 48 | strut_policy = none 49 | 50 | # Launcher 51 | launcher_padding = 6 4 6 52 | launcher_background_id = 4 53 | launcher_icon_size = 24 54 | launcher_icon_asb = 90 0 0 55 | launcher_tooltip = 0 56 | launcher_icon_theme = Faenza-CrunchBang-Dark 57 | launcher_item_app = /usr/share/applications/Thunar.desktop 58 | launcher_item_app = /usr/share/applications/urxvt.desktop 59 | launcher_item_app = /usr/share/applications/chromium.desktop 60 | launcher_item_app = /usr/share/applications/xbmc.desktop 61 | 62 | # Taskbar 63 | taskbar_mode = multi_desktop 64 | taskbar_padding = 2 2 2 65 | taskbar_background_id = 4 66 | taskbar_active_background_id = 4 67 | taskbar_name = 1 68 | taskbar_name_font = Roboto bold 9 69 | taskbar_name_font_color = #FFFFFF 30 70 | taskbar_name_active_font_color = #FFFFFF 80 71 | 72 | # Tasks 73 | urgent_nb_of_blink = 8 74 | task_icon = 1 75 | task_text = 0 76 | task_centered = 1 77 | task_maximum_size = 24 24 78 | task_padding = 6 2 79 | task_background_id = 1 80 | task_active_background_id = 1 81 | task_urgent_background_id = 1 82 | task_iconified_background_id = 1 83 | task_tooltip = 0 84 | 85 | # Task Icons 86 | task_icon_asb = 30 0 0 87 | task_active_icon_asb = 90 0 0 88 | task_urgent_icon_asb = 90 0 0 89 | task_iconified_icon_asb = 30 0 0 90 | 91 | # Fonts 92 | task_font = Roboto 7 93 | task_font_color = #FFFFFF 68 94 | task_active_font_color = #FFFFFF 83 95 | task_urgent_font_color = #FFFFFF 83 96 | task_iconified_font_color = #FFFFFF 68 97 | font_shadow = 0 98 | 99 | # System Tray 100 | systray = 1 101 | systray_padding = 2 3 2 102 | systray_sort = ascending 103 | systray_background_id = 4 104 | systray_icon_size = auto 105 | systray_icon_asb = 70 0 0 106 | 107 | # Clock 108 | time1_format = %H:%M 109 | time1_font = Roboto 8 110 | time2_format = %A %d %B 111 | time2_font = Roboto 6 112 | clock_font_color = #FFFFFF 74 113 | clock_padding = 4 4 114 | clock_background_id = 4 115 | clock_rclick_command = orage 116 | 117 | # Tooltips 118 | tooltip_padding = 2 2 119 | tooltip_show_timeout = 0.7 120 | tooltip_hide_timeout = 0.3 121 | tooltip_background_id = 1 122 | tooltip_font = sans 10 123 | tooltip_font_color = #000000 80 124 | 125 | # Mouse 126 | mouse_middle = none 127 | mouse_right = none 128 | mouse_scroll_up = toggle 129 | mouse_scroll_down = iconify 130 | 131 | # Battery 132 | battery = 0 133 | battery_low_status = 20 134 | battery_low_cmd = notify-send "Battery low" 135 | battery_hide = never 136 | bat1_font = Roboto 8 137 | bat2_font = Roboto 6 138 | battery_font_color = #FFFFFF 74 139 | battery_padding = 34 0 140 | battery_background_id = 4 141 | 142 | # End of config 143 | -------------------------------------------------------------------------------- /.config/zsh/custom/aliases.zsh: -------------------------------------------------------------------------------- 1 | # zsh aliases 2 | # - yuri - July 2014 3 | 4 | alias ls='ls --color=auto' 5 | alias grep='grep --color=auto' 6 | alias df='df -hT -x tmpfs -x devtmpfs' 7 | alias free='free -ht' 8 | alias vi='vim' 9 | alias packer='packer --noedit' 10 | alias hackterm='nohup urxvt -fg "rgb:00/aa/00" -bg "rgba:0000/0000/0000/ee00" -e zsh -c "cmatrix -aBls && zsh" > /dev/null 2>&1 &' 11 | alias cmatrix='cmatrix -aBls' 12 | alias checklibs='lsof +c 0 | grep '\''DEL.*lib'\'' | awk '\''1 { print $1 ": " $NF }'\'' | sort -u' 13 | 14 | # give common file types default behavior 15 | alias -s com="$BROWSER" 16 | alias -s net="$BROWSER" 17 | alias -s org="$BROWSER" 18 | alias -s pdf="$BROWSER" # requires browser pdf plugin 19 | 20 | alias -s txt="$EDITOR" 21 | alias -s md="$EDITOR" 22 | alias -s markdown="$EDITOR" 23 | alias -s htm="$EDITOR" 24 | alias -s html="$EDITOR" 25 | alias -s ino="$EDITOR" 26 | alias -s c="$EDITOR" 27 | alias -s cpp="$EDITOR" 28 | alias -s h="$EDITOR" 29 | 30 | alias -s jar="java -jar" 31 | 32 | alias -s iso="vlc" 33 | alias -s avi="vlc" 34 | alias -s AVI="vlc" 35 | alias -s mov="vlc" 36 | alias -s mpg="vlc" 37 | alias -s m4v="vlc" 38 | alias -s mp4="vlc" 39 | alias -s rmvb="vlc" 40 | alias -s MP4="vlc" 41 | alias -s ogg="vlc" 42 | alias -s ogv="vlc" 43 | alias -s flv="vlc" 44 | alias -s mkv="vlc" 45 | alias -s wav="vlc" 46 | alias -s mp3="vlc" 47 | alias -s webm="vlc" 48 | 49 | alias -s tif="feh" 50 | alias -s tiff="feh" 51 | alias -s png="feh" 52 | alias -s jpg="feh" 53 | alias -s jpeg="feh" 54 | alias -s JPG="feh" 55 | alias -s gif="feh" 56 | alias -s svg="feh" 57 | alias -s psd="feh" 58 | -------------------------------------------------------------------------------- /.config/zsh/custom/git-prompt.zsh: -------------------------------------------------------------------------------- 1 | # copied from http://techanic.net/2012/12/30/my_git_prompt_for_zsh.html 2 | # - yuri - July 2014 3 | 4 | # Adapted from code found at . 5 | 6 | setopt prompt_subst 7 | autoload -U colors && colors # Enable colors in prompt 8 | 9 | # Modify the colors and symbols in these variables as desired. 10 | GIT_PROMPT_SYMBOL="%{$fg[blue]%}±" 11 | GIT_PROMPT_PREFIX="%{$fg[green]%}[%{$reset_color%}" 12 | GIT_PROMPT_SUFFIX="%{$fg[green]%}]%{$reset_color%}" 13 | GIT_PROMPT_AHEAD="%{$fg[red]%}ANUM%{$reset_color%}" 14 | GIT_PROMPT_BEHIND="%{$fg[cyan]%}BNUM%{$reset_color%}" 15 | GIT_PROMPT_MERGING="%{$fg_bold[magenta]%}⚡︎%{$reset_color%}" 16 | GIT_PROMPT_UNTRACKED="%{$fg_bold[red]%}●%{$reset_color%}" 17 | GIT_PROMPT_MODIFIED="%{$fg_bold[yellow]%}●%{$reset_color%}" 18 | GIT_PROMPT_STAGED="%{$fg_bold[green]%}●%{$reset_color%}" 19 | 20 | # Show Git branch/tag, or name-rev if on detached head 21 | parse_git_branch() { 22 | (git symbolic-ref -q HEAD || git name-rev --name-only --no-undefined --always HEAD) 2> /dev/null 23 | } 24 | 25 | # Show different symbols as appropriate for various Git repository states 26 | parse_git_state() { 27 | 28 | # Compose this value via multiple conditional appends. 29 | local GIT_STATE="" 30 | 31 | local NUM_AHEAD="$(git log --oneline @{u}.. 2> /dev/null | wc -l | tr -d ' ')" 32 | if [ "$NUM_AHEAD" -gt 0 ]; then 33 | GIT_STATE=$GIT_STATE${GIT_PROMPT_AHEAD//NUM/$NUM_AHEAD} 34 | fi 35 | 36 | local NUM_BEHIND="$(git log --oneline ..@{u} 2> /dev/null | wc -l | tr -d ' ')" 37 | if [ "$NUM_BEHIND" -gt 0 ]; then 38 | GIT_STATE=$GIT_STATE${GIT_PROMPT_BEHIND//NUM/$NUM_BEHIND} 39 | fi 40 | 41 | local GIT_DIR="$(git rev-parse --git-dir 2> /dev/null)" 42 | if [ -n $GIT_DIR ] && test -r $GIT_DIR/MERGE_HEAD; then 43 | GIT_STATE=$GIT_STATE$GIT_PROMPT_MERGING 44 | fi 45 | 46 | if [[ -n $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then 47 | GIT_STATE=$GIT_STATE$GIT_PROMPT_UNTRACKED 48 | fi 49 | 50 | if ! git diff --quiet 2> /dev/null; then 51 | GIT_STATE=$GIT_STATE$GIT_PROMPT_MODIFIED 52 | fi 53 | 54 | if ! git diff --cached --quiet 2> /dev/null; then 55 | GIT_STATE=$GIT_STATE$GIT_PROMPT_STAGED 56 | fi 57 | 58 | if [[ -n $GIT_STATE ]]; then 59 | echo "$GIT_PROMPT_PREFIX$GIT_STATE$GIT_PROMPT_SUFFIX" 60 | fi 61 | 62 | } 63 | 64 | # If inside a Git repository, print its branch and state 65 | git_prompt_string() { 66 | local git_where="$(parse_git_branch)" 67 | [ -n "$git_where" ] && echo "$GIT_PROMPT_SYMBOL$(parse_git_state)$GIT_PROMPT_PREFIX%{$fg[yellow]%}${git_where#(refs/heads/|tags/)}$GIT_PROMPT_SUFFIX" 68 | } 69 | 70 | # Set the right-hand prompt 71 | RPS1='$(git_prompt_string)' 72 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vim/tmp 2 | .vim/.netrwhist 3 | downloads 4 | images 5 | sketchbook 6 | yuri-rage.github.io 7 | .ICEauthority 8 | .Xauthority 9 | .arduino/ 10 | .bash_history 11 | .bash_logout 12 | .bash_profile 13 | .cache/ 14 | .config/Thunar/ 15 | .config/Trolltech.conf 16 | .config/catfish/ 17 | .config/chromium/ 18 | .config/dconf/ 19 | .config/fontconfig/ 20 | .config/gtk-2.0/ 21 | .config/gtk-3.0/ 22 | .config/pulse/ 23 | .config/vlc/ 24 | .config/volumeicon/ 25 | .config/xfburn/ 26 | .config/xfce4/ 27 | .dbus/ 28 | .dmrc 29 | .gem/ 30 | .gimp-2.8/ 31 | .gitconfig 32 | .gmrun_history 33 | .gstreamer-0.10/ 34 | .gtkrc-2.0 35 | .histfile 36 | .icons/ 37 | .java/ 38 | .lesshst 39 | .local/ 40 | .mplayer/ 41 | .npm/ 42 | .openshot/ 43 | .pki/ 44 | .python_history 45 | .ssh/ 46 | .subversion/ 47 | .teensy 48 | .thumbnails/ 49 | .viminfo 50 | .w3m/ 51 | .xbmc/addons/ 52 | .xbmc/media/ 53 | .xbmc/temp/ 54 | .xbmc/userdata/Database/ 55 | .xbmc/userdata/LCD.xml 56 | .xbmc/userdata/RssFeeds.xml 57 | .xbmc/userdata/Thumbnails/ 58 | .xbmc/userdata/addon_data/ 59 | .xbmc/userdata/guisettings.xml 60 | .xbmc/userdata/keymaps/Joystick.AppleRemote.xml 61 | .xbmc/userdata/profiles.xml 62 | .xbmc/userdata/sources.xml 63 | .xsel.log 64 | .xsession-errors 65 | .xsession-errors.old 66 | .zcompdump 67 | .zcompdump-vorlauf-arch-5.0.5 68 | .zsh-update 69 | .zsh_history 70 | .config/zsh/MIT-LICENSE.txt 71 | .config/zsh/README.textile 72 | .config/zsh/lib/ 73 | .config/zsh/log/ 74 | .config/zsh/oh-my-zsh.sh 75 | .config/zsh/plugins/ 76 | .config/zsh/templates/ 77 | .config/zsh/themes/ 78 | .config/zsh/tools/ 79 | .oh-my-zsh 80 | -------------------------------------------------------------------------------- /.vim/after/ftplugin/markdown/instant-markdown.vim: -------------------------------------------------------------------------------- 1 | " # Configuration 2 | if !exists('g:instant_markdown_slow') 3 | let g:instant_markdown_slow = 0 4 | endif 5 | 6 | if !exists('g:instant_markdown_autostart') 7 | let g:instant_markdown_autostart = 1 8 | endif 9 | 10 | " # Utility Functions 11 | " Simple system wrapper that ignores empty second args 12 | function! s:system(cmd, stdin) 13 | if strlen(a:stdin) == 0 14 | call system(a:cmd) 15 | else 16 | call system(a:cmd, a:stdin) 17 | endif 18 | endfu 19 | 20 | function! s:refreshView() 21 | let bufnr = expand('') 22 | call s:system("curl -X PUT -T - http://localhost:8090/ &>/dev/null &", 23 | \ s:bufGetContents(bufnr)) 24 | endfu 25 | 26 | function! s:startDaemon(initialMD) 27 | call s:system("instant-markdown-d &>/dev/null &", a:initialMD) 28 | endfu 29 | 30 | function! s:initDict() 31 | if !exists('s:buffers') 32 | let s:buffers = {} 33 | endif 34 | endfu 35 | 36 | function! s:pushBuffer(bufnr) 37 | call s:initDict() 38 | let s:buffers[a:bufnr] = 1 39 | endfu 40 | 41 | function! s:popBuffer(bufnr) 42 | call s:initDict() 43 | call remove(s:buffers, a:bufnr) 44 | endfu 45 | 46 | function! s:killDaemon() 47 | call system("curl -s -X DELETE http://localhost:8090/ &>/dev/null &") 48 | endfu 49 | 50 | function! s:bufGetContents(bufnr) 51 | return join(getbufline(a:bufnr, 1, "$"), "\n") 52 | endfu 53 | 54 | " I really, really hope there's a better way to do this. 55 | fu! s:myBufNr() 56 | return str2nr(expand('')) 57 | endfu 58 | 59 | " # Functions called by autocmds 60 | " 61 | " ## push a new Markdown buffer into the system. 62 | " 63 | " 1. Track it so we know when to garbage collect the daemon 64 | " 2. Start daemon if we're on the first MD buffer. 65 | " 3. Initialize changedtickLast, possibly needlessly(?) 66 | fu! s:pushMarkdown() 67 | let bufnr = s:myBufNr() 68 | call s:initDict() 69 | if len(s:buffers) == 0 70 | call s:startDaemon(s:bufGetContents(bufnr)) 71 | endif 72 | call s:pushBuffer(bufnr) 73 | let b:changedtickLast = b:changedtick 74 | endfu 75 | 76 | " ## pop a Markdown buffer 77 | " 78 | " 1. Pop the buffer reference 79 | " 2. Garbage collection 80 | " * daemon 81 | " * autocmds 82 | fu! s:popMarkdown() 83 | let bufnr = s:myBufNr() 84 | silent au! instant-markdown * 85 | call s:popBuffer(bufnr) 86 | if len(s:buffers) == 0 87 | call s:killDaemon() 88 | endif 89 | endfu 90 | 91 | " ## Refresh if there's something new worth showing 92 | " 93 | " 'All things in moderation' 94 | fu! s:temperedRefresh() 95 | if !exists('b:changedtickLast') 96 | let b:changedtickLast = b:changedtick 97 | elseif b:changedtickLast != b:changedtick 98 | let b:changedtickLast = b:changedtick 99 | call s:refreshView() 100 | endif 101 | endfu 102 | 103 | fu! s:previewMarkdown() 104 | call s:startDaemon(join(getline(1, '$'), "\n")) 105 | aug instant-markdown 106 | if g:instant_markdown_slow 107 | au CursorHold,BufWrite,InsertLeave call s:temperedRefresh() 108 | else 109 | au CursorHold,CursorHoldI,CursorMoved,CursorMovedI call s:temperedRefresh() 110 | endif 111 | au BufWinLeave call s:cleanUp() 112 | aug END 113 | endfu 114 | 115 | fu! s:cleanUp() 116 | call s:killDaemon() 117 | au! instant-markdown * 118 | endfu 119 | 120 | if g:instant_markdown_autostart 121 | " # Define the autocmds " 122 | aug instant-markdown 123 | au! * 124 | au BufEnter call s:refreshView() 125 | if g:instant_markdown_slow 126 | au CursorHold,BufWrite,InsertLeave call s:temperedRefresh() 127 | else 128 | au CursorHold,CursorHoldI,CursorMoved,CursorMovedI call s:temperedRefresh() 129 | endif 130 | au BufWinLeave call s:popMarkdown() 131 | au BufwinEnter call s:pushMarkdown() 132 | aug END 133 | else 134 | command! -buffer InstantMarkdownPreview call s:previewMarkdown() 135 | endif 136 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | set shell=bash\ -i 2 | syntax on 3 | set number 4 | set tabstop=4 5 | set expandtab 6 | set shiftwidth=2 7 | set softtabstop=2 8 | 9 | " make sure gvim uses a nice 'theme' 10 | if has('gui_running') 11 | set background=dark 12 | colorscheme solarized 13 | set guifont=Consolas\ 10 14 | endif 15 | 16 | " change cursor shape based on mode 17 | if &term =~ "^rxvt" || &term=~ "^xterm" 18 | " blinking underscore 19 | let &t_SI .= "\[3 q" 20 | " blinking block 21 | let &t_EI .= "\[1 q" 22 | " reset to blinking underscore on exit 23 | autocmd VimLeave * silent !echo -ne "\033[3 q" 24 | " 1 or 0 -> blinking block 25 | " 2 -> solid block 26 | " 3 -> blinking underscore 27 | " 4 -> solid underscore 28 | endif 29 | 30 | " make xclipboard more easily accessible 31 | set clipboard=unnamedplus 32 | 33 | " collate .swp files - don't keep them in the working directory 34 | set directory=~/.vim/tmp,/tmp,. 35 | set backupdir=~/.vim/tmp,/tmp,. 36 | 37 | " use gggqG for autoformat of c-like code 38 | " requires astyle 39 | autocmd FileType h,c,cpp,java,ino,pde set formatprg=astyle 40 | 41 | " use gggqG for autoformat of xml 42 | " requires xmllint 43 | autocmd FileType xml set formatprg=xmllint\ --encode\ UTF-8\ --format\ % 44 | 45 | " force *.md files to be opened as markdown filetypes 46 | autocmd BufNewFile,BufReadPost *.md set filetype=markdown 47 | 48 | " vim-instant-markdown previewer 49 | " from https://github.com/suan/vim-instant-markdown 50 | " requires ruby rubygems nodejs xdg-utils 51 | " gems: pygments.rb redcarpet 52 | " also, from npm (nodejs) - instant-markdown-d 53 | let g:instant_markdown_slow = 0 54 | filetype plugin on 55 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/FILES.txt: -------------------------------------------------------------------------------- 1 | /etc/lightdm/lightdm.conf 2 | /etc/lightdm/lightdm-gtk-greeter.conf 3 | /etc/bash.bashrc 4 | /var/lib/AccountsService/users/yuri 5 | /usr/local/bin/*.sh 6 | /etc/pacman.d/mirrorlist 7 | /etc/pacman.conf 8 | /usr/lib/systemd/system/updates-available.* 9 | /usr/local/bin/bspwm-exit 10 | /usr/share/xsessions/bspwm.desktop 11 | /usr/bin/bspwm-session 12 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/bash.bashrc: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/bash.bashrc 3 | # 4 | 5 | # If not running interactively, don't do anything 6 | [[ $- != *i* ]] && return 7 | 8 | PS1='\u@\h:\w\$ ' 9 | PS2='> ' 10 | PS3='> ' 11 | PS4='+ ' 12 | 13 | case ${TERM} in 14 | xterm*|rxvt*|Eterm|aterm|kterm|gnome*) 15 | PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' 16 | 17 | ;; 18 | screen) 19 | PROMPT_COMMAND=${PROMPT_COMMAND:+$PROMPT_COMMAND; }'printf "\033_%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"' 20 | ;; 21 | esac 22 | 23 | [ -r /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion 24 | 25 | # yuri - if not an X terminal, display system info 26 | if [ -z "$DISPLAY" ]; then 27 | archey 28 | fi 29 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/bspwm-exit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | import pygtk 4 | pygtk.require('2.0') 5 | import gtk 6 | import os 7 | import getpass 8 | 9 | class bspwm_exit: 10 | def disable_buttons(self): 11 | self.cancel.set_sensitive(False) 12 | self.logout.set_sensitive(False) 13 | self.suspend.set_sensitive(False) 14 | self.reboot.set_sensitive(False) 15 | self.shutdown.set_sensitive(False) 16 | 17 | def cancel_action(self,btn): 18 | self.disable_buttons() 19 | gtk.main_quit() 20 | 21 | def logout_action(self,btn): 22 | self.disable_buttons() 23 | # yuri - modified cb-exit script to exit bspwm gracefully 24 | self.status.set_label("Exiting bspwm, please standby...") 25 | os.system("bspc quit") 26 | 27 | def suspend_action(self,btn): 28 | self.disable_buttons() 29 | self.status.set_label("Suspending, please standby...") 30 | # os.system("cb-lock") 31 | # yuri - modified to send systemctl suspend 32 | os.system("systemctl suspend") 33 | # os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.UPower\" /org/freedesktop/UPower org.freedesktop.UPower.Suspend") 34 | gtk.main_quit() 35 | 36 | def reboot_action(self,btn): 37 | self.disable_buttons() 38 | self.status.set_label("Rebooting, please standby...") 39 | # yuri - modified to send systemctl reboot 40 | os.system("systemctl reboot") 41 | # os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart") 42 | 43 | def shutdown_action(self,btn): 44 | self.disable_buttons() 45 | self.status.set_label("Shutting down, please standby...") 46 | # yuri - modified to send systemctl poweroff 47 | os.system("systemctl poweroff") 48 | # os.system("dbus-send --system --print-reply --dest=\"org.freedesktop.ConsoleKit\" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop") 49 | 50 | def create_window(self): 51 | self.window = gtk.Window() 52 | title = "Log out " + getpass.getuser() + "? Choose an option:" 53 | self.window.set_title(title) 54 | self.window.set_border_width(5) 55 | self.window.set_size_request(500, 80) 56 | self.window.set_resizable(False) 57 | self.window.set_keep_above(True) 58 | self.window.stick 59 | self.window.set_position(1) 60 | self.window.connect("delete_event", gtk.main_quit) 61 | windowicon = self.window.render_icon(gtk.STOCK_QUIT, gtk.ICON_SIZE_MENU) 62 | self.window.set_icon(windowicon) 63 | 64 | 65 | #Create HBox for buttons 66 | self.button_box = gtk.HBox() 67 | self.button_box.show() 68 | 69 | #Cancel button 70 | self.cancel = gtk.Button(stock = gtk.STOCK_CANCEL) 71 | self.cancel.set_border_width(4) 72 | self.cancel.connect("clicked", self.cancel_action) 73 | self.button_box.pack_start(self.cancel) 74 | self.cancel.show() 75 | 76 | #Logout button 77 | self.logout = gtk.Button("_Log out") 78 | self.logout.set_border_width(4) 79 | self.logout.connect("clicked", self.logout_action) 80 | self.button_box.pack_start(self.logout) 81 | self.logout.show() 82 | 83 | #Suspend button 84 | self.suspend = gtk.Button("_Suspend") 85 | self.suspend.set_border_width(4) 86 | self.suspend.connect("clicked", self.suspend_action) 87 | self.button_box.pack_start(self.suspend) 88 | self.suspend.show() 89 | 90 | #Reboot button 91 | self.reboot = gtk.Button("_Reboot") 92 | self.reboot.set_border_width(4) 93 | self.reboot.connect("clicked", self.reboot_action) 94 | self.button_box.pack_start(self.reboot) 95 | self.reboot.show() 96 | 97 | #Shutdown button 98 | self.shutdown = gtk.Button("_Power off") 99 | self.shutdown.set_border_width(4) 100 | self.shutdown.connect("clicked", self.shutdown_action) 101 | self.button_box.pack_start(self.shutdown) 102 | self.shutdown.show() 103 | 104 | #Create HBox for status label 105 | self.label_box = gtk.HBox() 106 | self.label_box.show() 107 | self.status = gtk.Label() 108 | self.status.show() 109 | self.label_box.pack_start(self.status) 110 | 111 | #Create VBox and pack the above HBox's 112 | self.vbox = gtk.VBox() 113 | self.vbox.pack_start(self.button_box) 114 | self.vbox.pack_start(self.label_box) 115 | self.vbox.show() 116 | 117 | self.window.add(self.vbox) 118 | self.window.show() 119 | 120 | def __init__(self): 121 | self.create_window() 122 | 123 | 124 | def main(): 125 | gtk.main() 126 | 127 | if __name__ == "__main__": 128 | go = bspwm_exit() 129 | main() 130 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/bspwm-session: -------------------------------------------------------------------------------- 1 | #! /bin/bash 2 | # 3 | # bspwm-session 4 | # 5 | # This script is a session launcher for bspwm. 6 | # It is based on similar scripts included with Openbox. 7 | 8 | if [ -n "$1" ]; then 9 | echo "Usage: bspwm-session" 10 | echo 11 | exit 1 12 | fi 13 | 14 | # Multi-user support: 15 | state_prefix=${XDG_CACHE_HOME:-"$HOME/.cache"} 16 | mkdir -p "${state_prefix}" 17 | 18 | if [ ! -d "${state_prefix}" ]; then 19 | echo "bspwm-session: cache directory ‘${state_prefix}‘ is missing." 20 | echo 21 | exit 1 22 | elif [ ! -w "${state_prefix}" ]; then 23 | echo "bspwm-session: cache directory ‘${state_prefix}‘ is not writable." 24 | echo 25 | exit 1 26 | fi 27 | 28 | state_path=$(mktemp -d "${state_prefix}/bspwm-session.XXXXXX") 29 | 30 | if [ $? -ne 0 ]; then 31 | echo "bspwm-session: failed to create state directory ‘${state_path}‘." 32 | echo 33 | exit 1 34 | fi 35 | 36 | export BSPWM_SOCKET=${state_path}/bspwm-socket 37 | 38 | # Trap: make sure everything started in ~/.config/bspwm/autostart is 39 | # signalled when this script exits or dies. Also clean up $state_path. 40 | function on_exit { 41 | for child in $(jobs -p); do 42 | jobs -p | grep -q $child && kill $child 43 | done 44 | # Extra paranoia 45 | [[ -d "${state_path}" && -w "${state_path}" ]] && rm -rf -- "${state_path}" 46 | } 47 | 48 | trap on_exit EXIT SIGHUP SIGINT SIGTERM 49 | 50 | # Environment and autostart: 51 | source_these=( 52 | "/etc/profile" 53 | "${HOME}/.profile" 54 | "${XDG_CONFIG_HOME:-"$HOME/.config"}/bspwm/autostart" 55 | ) 56 | 57 | for file in "${source_these[@]}"; do 58 | [ -r "${file}" ] && . "${file}" 59 | done 60 | 61 | # Launch sxhkd: 62 | sxhkd & 63 | 64 | # Launch bspwm: 65 | bspwm 66 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/bspwm.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=XSession 3 | Exec=bspwm-session 4 | TryExec=bspwm-session 5 | Name=Bspwm 6 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/lightdm-gtk-greeter.conf: -------------------------------------------------------------------------------- 1 | # yuri - custom gtk greeter settings 2 | [greeter] 3 | clock-format = %a, %d %b %Y %H:%M:%S 4 | icon-theme-name = Faenza-CrunchBang-Dark 5 | xft-dpi = 96 6 | xft-antialias = true 7 | show-clock = true 8 | xft-hintstyle = hintslight 9 | screensaver-timeout = 60 10 | xft-rgba = rgb 11 | theme-name = MediterraneanWhiteNight 12 | default-user-image = #avatar-default 13 | background = /usr/share/backgrounds/wallpaper.png 14 | position = 20%,center 50%,center 15 | font-name = Roboto 10 16 | keyboard = no 17 | 18 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/lightdm.conf: -------------------------------------------------------------------------------- 1 | # 2 | # General configuration 3 | # 4 | # start-default-seat = True to always start one seat if none are defined in the configuration 5 | # greeter-user = User to run greeter as 6 | # minimum-display-number = Minimum display number to use for X servers 7 | # minimum-vt = First VT to run displays on 8 | # lock-memory = True to prevent memory from being paged to disk 9 | # user-authority-in-system-dir = True if session authority should be in the system location 10 | # guest-account-script = Script to be run to setup guest account 11 | # log-directory = Directory to log information to 12 | # run-directory = Directory to put running state in 13 | # cache-directory = Directory to cache to 14 | # sessions-directory = Directory to find sessions 15 | # remote-sessions-directory = Directory to find remote sessions 16 | # greeters-directory = Directory to find greeters 17 | # 18 | [LightDM] 19 | #start-default-seat=true 20 | #greeter-user=lightdm 21 | #minimum-display-number=0 22 | minimum-vt=7 # yuri - changed from minimum-vt=1, which started X on virtual terminal 1 23 | #lock-memory=true 24 | #user-authority-in-system-dir=false 25 | #guest-account-script=guest-account 26 | #log-directory=/var/log/lightdm 27 | run-directory=/run/lightdm 28 | #cache-directory=/var/cache/lightdm 29 | sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions 30 | #remote-sessions-directory=/usr/share/lightdm/remote-sessions 31 | #greeters-directory=/usr/share/lightdm/greeters:/usr/share/xgreeters 32 | 33 | # 34 | # Seat defaults 35 | # 36 | # type = Seat type (xlocal, xremote) 37 | # xdg-seat = Seat name to set pam_systemd XDG_SEAT variable and name to pass to X server 38 | # xserver-command = X server command to run (can also contain arguments e.g. X -special-option) 39 | # xserver-layout = Layout to pass to X server 40 | # xserver-config = Config file to pass to X server 41 | # xserver-allow-tcp = True if TCP/IP connections are allowed to this X server 42 | # xserver-share = True if the X server is shared for both greeter and session 43 | # xserver-hostname = Hostname of X server (only for type=xremote) 44 | # xserver-display-number = Display number of X server (only for type=xremote) 45 | # xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true) 46 | # xdmcp-port = XDMCP UDP/IP port to communicate on 47 | # xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf) 48 | # unity-compositor-command = Unity compositor command to run (can also contain arguments e.g. unity-system-compositor -special-option) 49 | # unity-compositor-timeout = Number of seconds to wait for compositor to start 50 | # greeter-session = Session to load for greeter 51 | # greeter-hide-users = True to hide the user list 52 | # greeter-allow-guest = True if the greeter should show a guest login option 53 | # greeter-show-manual-login = True if the greeter should offer a manual login option 54 | # greeter-show-remote-login = True if the greeter should offer a remote login option 55 | # user-session = Session to load for users 56 | # allow-guest = True if guest login is allowed 57 | # guest-session = Session to load for guests (overrides user-session) 58 | # session-wrapper = Wrapper script to run session with 59 | # greeter-wrapper = Wrapper script to run greeter with 60 | # guest-wrapper = Wrapper script to run guest sessions with 61 | # display-setup-script = Script to run when starting the display server (runs as root) 62 | # display-stopped-script = Script to run after stopping the display server (runs as root) 63 | # greeter-setup-script = Script to run when starting a greeter (runs as root) 64 | # session-setup-script = Script to run when starting a user session (runs as root) 65 | # session-cleanup-script = Script to run when quitting a user session (runs as root) 66 | # autologin-guest = True to log in as guest by default 67 | # autologin-user = User to log in with by default (overrides autologin-guest) 68 | # autologin-user-timeout = Number of seconds to wait before loading default user 69 | # autologin-session = Session to load for automatic login (overrides user-session) 70 | # autologin-in-background = True if autologin session should not be immediately activated 71 | # exit-on-failure = True if the daemon should exit if this seat fails 72 | # 73 | [SeatDefaults] 74 | #type=xlocal 75 | #xdg-seat=seat0 76 | #xserver-command=X 77 | #xserver-layout= 78 | #xserver-config= 79 | #xserver-allow-tcp=false 80 | #xserver-share=true 81 | #xserver-hostname= 82 | #xserver-display-number= 83 | #xdmcp-manager= 84 | #xdmcp-port=177 85 | #xdmcp-key= 86 | #unity-compositor-command=unity-system-compositor 87 | #unity-compositor-timeout=60 88 | #greeter-session=lightdm-webkit-greeter 89 | #greeter-hide-users=false 90 | #greeter-allow-guest=true 91 | #greeter-show-manual-login=false 92 | #greeter-show-remote-login=true 93 | #user-session=default 94 | #allow-guest=true 95 | #guest-session= 96 | session-wrapper=/etc/lightdm/Xsession 97 | #greeter-wrapper= 98 | #guest-wrapper= 99 | # yuri - mirror_displays.sh has an xrandr command to set up multiple displays properly 100 | display-setup-script=/usr/local/bin/mirror_displays.sh 101 | #display-stopped-script= 102 | #greeter-setup-script= 103 | #session-setup-script= 104 | #session-cleanup-script= 105 | #autologin-guest=false 106 | #autologin-user= 107 | #autologin-user-timeout=0 108 | #autologin-in-background=false 109 | #autologin-session=UNIMPLEMENTED 110 | #exit-on-failure=false 111 | pam-service=lightdm-autologin 112 | 113 | # 114 | # Seat configuration 115 | # 116 | # Each seat must start with "Seat:". 117 | # Uses settings from [SeatDefaults], any of these can be overriden by setting them in this section. 118 | # 119 | #[Seat:0] 120 | 121 | # 122 | # XDMCP Server configuration 123 | # 124 | # enabled = True if XDMCP connections should be allowed 125 | # port = UDP/IP port to listen for connections on 126 | # key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf) 127 | # 128 | # The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn. Alternatively 129 | # it can be a word and the first 7 characters are used as the key. 130 | # 131 | [XDMCPServer] 132 | #enabled=false 133 | #port=177 134 | #key= 135 | 136 | # 137 | # VNC Server configuration 138 | # 139 | # enabled = True if VNC connections should be allowed 140 | # command = Command to run Xvnc server with 141 | # port = TCP/IP port to listen for connections on 142 | # width = Width of display to use 143 | # height = Height of display to use 144 | # depth = Color depth of display to use 145 | # 146 | [VNCServer] 147 | #enabled=false 148 | #command=Xvnc 149 | #port=5900 150 | #width=1024 151 | #height=768 152 | #depth=8 153 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/mirrorlist: -------------------------------------------------------------------------------- 1 | # Server list generated by rankmirrors on 2015-01-20 2 | ## 3 | ## Arch Linux repository mirrorlist 4 | ## Sorted by mirror score from mirror status page 5 | ## Generated on 2015-01-21 6 | ## 7 | ## Score: 0.7, United States 8 | ## Score: 0.9, United States 9 | ## Score: 1.0, United States 10 | ## Score: 1.1, United States 11 | ## Score: 1.1, United States 12 | ## Score: 1.4, United States 13 | ## Score: 1.4, United States 14 | ## Score: 1.5, United States 15 | ## Score: 1.7, Canada 16 | ## Score: 1.7, United States 17 | ## Score: 1.8, United States 18 | ## Score: 1.9, United States 19 | ## Score: 1.9, United States 20 | ## Score: 1.9, United States 21 | ## Score: 1.9, United States 22 | ## Score: 2.0, United States 23 | ## Score: 2.0, United States 24 | ## Score: 2.1, United States 25 | ## Score: 2.4, Canada 26 | ## Score: 2.4, United States 27 | ## Score: 2.4, United States 28 | ## Score: 2.6, United States 29 | ## Score: 2.7, Canada 30 | ## Score: 2.7, United States 31 | ## Score: 2.8, United States 32 | ## Score: 2.9, United States 33 | ## Score: 3.0, United States 34 | ## Score: 3.8, United States 35 | ## Score: 3.8, United States 36 | ## Score: 4.1, United States 37 | ## Score: 4.1, United States 38 | ## Score: 4.2, United States 39 | ## Score: 4.2, Canada 40 | ## Score: 4.4, United States 41 | ## Score: 4.8, United States 42 | ## Score: 6.1, United States 43 | ## Score: 7.2, Canada 44 | ## Score: 12.8, Canada 45 | ## Score: 13.0, United States 46 | ## Score: 13.2, United States 47 | ## Score: 20.5, United States 48 | ## Score: 63.0, United States 49 | Server = http://mirror.umd.edu/archlinux/$repo/os/$arch 50 | Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch 51 | Server = http://mirror.us.leaseweb.net/archlinux/$repo/os/$arch 52 | Server = http://archlinux.surlyjake.com/archlinux/$repo/os/$arch 53 | Server = http://mirrors.liquidweb.com/archlinux/$repo/os/$arch 54 | Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch 55 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/pacman.conf: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/pacman.conf 3 | # 4 | # See the pacman.conf(5) manpage for option and repository directives 5 | 6 | # 7 | # GENERAL OPTIONS 8 | # 9 | [options] 10 | # The following paths are commented out with their default values listed. 11 | # If you wish to use different paths, uncomment and update the paths. 12 | #RootDir = / 13 | #DBPath = /var/lib/pacman/ 14 | #CacheDir = /var/cache/pacman/pkg/ 15 | #LogFile = /var/log/pacman.log 16 | #GPGDir = /etc/pacman.d/gnupg/ 17 | HoldPkg = pacman glibc 18 | #XferCommand = /usr/bin/curl -C - -f %u > %o 19 | #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u 20 | #CleanMethod = KeepInstalled 21 | #UseDelta = 0.7 22 | Architecture = auto 23 | 24 | # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup 25 | #IgnorePkg = 26 | #IgnoreGroup = 27 | 28 | #NoUpgrade = 29 | #NoExtract = 30 | 31 | # Misc options 32 | #UseSyslog 33 | Color 34 | TotalDownload 35 | CheckSpace 36 | #VerbosePkgLists 37 | ILoveCandy 38 | 39 | # By default, pacman accepts packages signed by keys that its local keyring 40 | # trusts (see pacman-key and its man page), as well as unsigned packages. 41 | SigLevel = Required DatabaseOptional 42 | LocalFileSigLevel = Optional 43 | #RemoteFileSigLevel = Required 44 | 45 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 46 | # keyring can then be populated with the keys of all official Arch Linux 47 | # packagers with `pacman-key --populate archlinux`. 48 | 49 | # 50 | # REPOSITORIES 51 | # - can be defined here or included from another file 52 | # - pacman will search repositories in the order defined here 53 | # - local/custom mirrors can be added here or in separate files 54 | # - repositories listed first will take precedence when packages 55 | # have identical names, regardless of version number 56 | # - URLs will have $repo replaced by the name of the current repo 57 | # - URLs will have $arch replaced by the name of the architecture 58 | # 59 | # Repository entries are of the format: 60 | # [repo-name] 61 | # Server = ServerName 62 | # Include = IncludePath 63 | # 64 | # The header [repo-name] is crucial - it must be present and 65 | # uncommented to enable the repo. 66 | # 67 | 68 | # The testing repositories are disabled by default. To enable, uncomment the 69 | # repo name header and Include lines. You can add preferred servers immediately 70 | # after the header, and they will be used before the default mirrors. 71 | 72 | #[testing] 73 | #Include = /etc/pacman.d/mirrorlist 74 | 75 | [core] 76 | Include = /etc/pacman.d/mirrorlist 77 | 78 | [extra] 79 | Include = /etc/pacman.d/mirrorlist 80 | 81 | #[community-testing] 82 | Include = /etc/pacman.d/mirrorlist 83 | 84 | [community] 85 | Include = /etc/pacman.d/mirrorlist 86 | 87 | # If you want to run 32 bit applications on your x86_64 system, 88 | # enable the multilib repositories as required here. 89 | 90 | #[multilib-testing] 91 | #Include = /etc/pacman.d/mirrorlist 92 | 93 | #[multilib] 94 | #Include = /etc/pacman.d/mirrorlist 95 | 96 | # An example of a custom package repository. See the pacman manpage for 97 | # tips on creating your own repositories. 98 | #[custom] 99 | #SigLevel = Optional TrustAll 100 | #Server = file:///home/custompkgs 101 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # wrapper for xbacklight - mostly to avoid turning the sreen off (brightness = 0) 4 | 5 | # yuri - Nov 2014 6 | 7 | # obsoleted by (grub) kernel parameter video.use_native_backlight=0 on Asus K55A laptop 8 | 9 | # if no argument, usage/exit with error status 10 | usage(){ 11 | echo "Usage: `basename $0` [brightness]" 12 | echo " [brightness] can be an integer from 1 to 100" 13 | echo " [brightness] also be \"up\" or \"down\"" 14 | exit 1 15 | } 16 | [ -z "$1" ] && usage 17 | 18 | # round brightness to integer part 19 | brightness=`xbacklight | awk '{printf("%d\n",$1 + 0.5)}'` 20 | 21 | [ "$1" == "up" ] && xbacklight -inc 10 22 | 23 | [ "$1" == "down" ] && [ $brightness -gt 10 ] && xbacklight -dec 10 24 | 25 | # test for integer greater than 0 26 | [[ $1 =~ ^-?[0-9]+$ ]] && [ $1 -gt 0 ] && xbacklight -set $1 27 | 28 | echo `xbacklight | awk '{printf("%d\n",$1 + 0.5)}'` 29 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/conkystart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # starts selected conkys in ~/.config/conky/ 4 | # looks for all config files ending in .desktop 5 | 6 | # yuri - Jun 2014 7 | 8 | CONFPATH=$HOME/.config/conky/*.desktop 9 | 10 | # kill existing conkys 11 | pgrep -x conky && pkill -x conky 12 | 13 | for f in $CONFPATH; do 14 | conky -c "$f" & 15 | done 16 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/killstart.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # start process(es) after killing all instances of the same 4 | 5 | # yuri - Jun 2014 6 | 7 | 8 | # if no argument, usage/exit with error status 9 | usage(){ 10 | echo "Usage: `basename $0` command1 command2 .." 11 | echo -e "\nCommands with arguments must be quoted:" 12 | echo " `basename $0` \"command --with args\"" 13 | exit 1 14 | } 15 | [ -z "$1" ] && usage 16 | 17 | # treat each argument as a separate command 18 | 19 | # kill all instances of each command 20 | for ARG in "$@"; do 21 | # accept commands with multiple arguments 22 | BASECMD=`echo "$ARG" | awk '{ print $1 }'` 23 | # if process(es) running, kill 'em 24 | pgrep -x $BASECMD && pkill -x $BASECMD 25 | done 26 | 27 | # run specified command(s) 28 | for ARG in "$@"; do 29 | $ARG & 30 | done 31 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/mirror_displays.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # yuri - mirror HDMI display at correct resolution 3 | # - useful for lightdm setup 4 | xrandr --output LVDS1 --mode 1366x768 --output HDMI1 --mode 1280x720 --same-as LVDS1 5 | exit 0 6 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/quiet.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # run a command quietly in the background even after shell exit 4 | 5 | # yuri - Jun 2014 6 | 7 | usage() { 8 | echo "Usage: `basename $0` command" 9 | echo -e "\nCommands with arguments must be quoted:" 10 | echo " `basename $0` \"command --with args\"" 11 | exit 1 12 | 13 | } 14 | 15 | [ -z "$1" ] && usage 16 | 17 | nohup $1 > /dev/null 2>&1 & 18 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/rip-yt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # A very simple Bash script to download a YouTube video 3 | # and extract the music file from it. 4 | if [ -n "$1" ]; then 5 | youtube-dl -i --extract-audio --audio-format mp3 --audio-quality 0 -o '%(title)s.%(ext)s' $1 6 | else 7 | echo "Nothing to download." 8 | exit 1 9 | fi 10 | 11 | # ask about normalizing audio (adjust track volume/gain) 12 | # default = yes 13 | read -n 1 -r -p 'Normalize all tracks? [Y/n] ' 14 | if [[ $REPLY =~ ^[Nn]$ ]]; then 15 | echo -e "\nExiting - tracks not normalized." 16 | exit 0 17 | fi 18 | 19 | # normalize all mp3 audio tracks in this directory 20 | mp3gain -r *.mp3 21 | 22 | exit 0 # code below will not be executed 23 | 24 | # alternate method below, including regex matching of video id 25 | 26 | address=$1 27 | regex='v=(.*)' 28 | if [[ $address =~ $regex ]]; then 29 | video_id=${BASH_REMATCH[1]} 30 | video_id=$(echo $video_id | cut -d'&' -f1) 31 | video_title="$(youtube-dl --get-title $address)" 32 | echo "Video title: $video_title" 33 | video_filename="$(youtube-dl -f bestaudio --get-filename $address)" 34 | echo "Download target: $video_filename" 35 | youtube-dl -f bestaudio $address 36 | avconv -i "$video_filename" "$video_title".wav 37 | lame "$video_title".wav "$video_title".mp3 38 | rm "$video_filename" "$video_title".wav 39 | echo -e "\nSuccess: $video_title.mp3\n" 40 | else 41 | echo "Sorry but the system encountered a problem." 42 | fi 43 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/shuffle.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for file in *.mp3 4 | do 5 | if [[ -d $file ]] 6 | then 7 | continue # skip directories 8 | fi 9 | if [[ $file =~ ^[0-9]{3}-(.*).mp3$ ]] # get basename 10 | then 11 | name=${file#*-} # of a previously shuffled file 12 | else 13 | name=$file # of an unshuffled file 14 | fi 15 | if [[ $1 != -u ]] 16 | then 17 | mv "$file" "`shuf -i 100-999 -n 1`-$name" # shuffle 18 | else 19 | mv "$file" "$name" # unshuffle 20 | fi 21 | done 22 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/stickynote.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # modifies a conky file with text from user input 4 | # intended to make conky into a bit of a "sticky note" app 5 | 6 | # yuri - Jan 2015 7 | 8 | INFILE=~/.config/conky/stickynote.conky 9 | 10 | # if no argument, usage/exit with error status 11 | usage(){ 12 | echo "Usage: `basename $0` [--clear] " 13 | exit 1 14 | } 15 | [ -z "$1" ] && usage 16 | 17 | # remove all lines after TEXT if --clear flag is the first argument 18 | [ $1 == '--clear' ] && sed -i '/TEXT/q' $INFILE 19 | 20 | for ARG in "$@"; do 21 | [ "$ARG" != '--clear' ] && MSG="$MSG $ARG" 22 | done 23 | 24 | echo $MSG >> $INFILE 25 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/updates-available.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # consolidates data from arch's built in checkupdates script 4 | # 5 | # if run as a normal user, output is simply to stdout 6 | # if run as root, output is also logged to OUTFILE 7 | # 8 | # this file can be run as a systemd.timer or cron job on a periodic basis 9 | # if run as a timer, conky can display the output file's results 10 | # 11 | # yuri - Jan 2015 12 | # 13 | # requires a typical arch install as well as the `bc` package 14 | # 15 | # *** SAMPLE /usr/lib/systemd/system/updates-available-sh.service *** 16 | # [Unit] 17 | # Description=Check for Arch updates 18 | # 19 | # [Service] 20 | # Type=simple 21 | # ExecStart=/usr/local/bin/updates-available.sh 22 | # *** END SAMPLE *** 23 | # 24 | # *** SAMPLE /usr/lib/systemd/system/updates-available-sh.timer *** 25 | # [Unit] 26 | # Description=Hourly check for Arch updates 27 | # 28 | # [Timer] 29 | # OnCalendar=hourly 30 | # Persistent=true 31 | # Unit=updates-available.service 32 | # 33 | # [Install] 34 | # WantedBy=multi-user.target 35 | # *** END SAMPLE *** 36 | 37 | # declare a couple of variables 38 | OUTFILE="/var/local/updates-available-sh.info" 39 | DBPATH="/tmp/checkup-db-$USER" 40 | USER_ID=`id -u` 41 | 42 | # check for Internet connectivity 43 | wget -q --tries=10 --timeout=20 --spider http://google.com > /dev/null 44 | # if no connectivity, append (offline) to the previous output 45 | if [[ $? -ne 0 ]]; then 46 | RESULT=`cat $OUTFILE` 47 | RESULT="${RESULT// (offline)/} (offline)" 48 | # if root, append to output file 49 | [ $USER_ID -eq 0 ] && echo "$RESULT" > $OUTFILE 50 | echo "$RESULT" 51 | exit 1 52 | fi 53 | 54 | NUMPKGS=0 55 | 56 | # run arch's checkupdates script and capture output 57 | PKGS=`checkupdates` 58 | 59 | # pacman -Si will retrieve a wealth of info 60 | # here we strip the "Download size" lines and count the number of iterations 61 | # DBPATH is probably unnecessary, but I suppose it's safe to use the 62 | # temp path created by `checkupdates` 63 | SIZES='' 64 | for pkg in $PKGS 65 | do 66 | SIZES+=`pacman -Si $pkg --dbpath $DBPATH | grep 'Download'`'\n' 67 | ((NUMPKGS++)) 68 | done 69 | 70 | # further strip pacman output to separate KiB from MiB 71 | KBLIST=`echo -e "$SIZES" | grep 'KiB' | awk '{ print $4 }'` 72 | MBLIST=`echo -e "$SIZES" | grep 'MiB' | awk '{ print $4 }'` 73 | 74 | # count KiBs 75 | KBS='0.0' 76 | for kb in $KBLIST 77 | do 78 | KBS=`echo "$KBS + $kb" | bc` 79 | done 80 | 81 | # add KiBs to MiBs for the grand total download size 82 | MBS=`echo "$KBS / 1000.0" | bc` 83 | for mb in $MBLIST 84 | do 85 | MBS=`echo "$MBS + $mb" | bc` 86 | done 87 | 88 | # display results 89 | RESULT="$NUMPKGS updates available ($MBS MiB)" 90 | # if root, write output to file 91 | [ $USER_ID -eq 0 ] && echo "$RESULT" > $OUTFILE 92 | echo "$RESULT" 93 | 94 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/urxvt-quake.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # urxvt-quake.sh - yuri - Jun 2014 4 | 5 | # toggles a tilda/guake/yakuake-like urxvt window 6 | # requires wmctrl, openbox, and custom .config/openbox/rc.xml settings 7 | 8 | # online forum example scripts use xdotool - wmctrl is faster 9 | 10 | # copy/paste to rc.xml in the applications section 11 | # 12 | # 13 | # no 14 | # 15 | # center 16 | # 0 17 | # 18 | # no 19 | # yes 20 | # yes 21 | # above 22 | # yes 23 | # all 24 | # 25 | # 26 | # for similar funcionality in bspwm, this script is less useful, instead map this to a key in sxhkdrc: 27 | # (note, geometry is hard coded into the keymapped command in this case) 28 | # xdotool search --onlyvisible --classname URxvtQuake windowunmap \ 29 | # || xdotool search --classname URxvtQuake windowmap \ 30 | # || urxvt -name URxvtQuake -geometry 110x20+297+1 31 | # 32 | # and add this rule to bspwmrc 33 | # bspc rule -a URxvtQuake sticky=on floating=on 34 | 35 | # grab the window ID of the urxvt-quake terminal window 36 | WINID=`wmctrl -lx | grep URxvtQuake.URxvt | awk '{ print $1 }'` 37 | 38 | # if no existing window, start the terminal 39 | if [ -z "$WINID" ]; then 40 | urxvt -name URxvtQuake & 41 | else # toggle hidden 42 | wmctrl -i -r $WINID -b toggle,hidden 43 | # if window is visible, activate it 44 | [ -z "$(xprop -id $WINID | grep HIDDEN)" ] && wmctrl -i -a $WINID 45 | fi 46 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/scripts/volume_change.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # wrapper for amixer volume changes - sends notifications to wm 4 | 5 | step=5 6 | 7 | if [[ $# -eq 1 ]]; then 8 | case $1 in 9 | "up") 10 | amixer set Master,0 $step+;; 11 | "down") 12 | amixer set Master,0 $step-;; 13 | "toggle") 14 | amixer set Master,0 toggle;; 15 | *) 16 | echo "Invalid option";; 17 | esac 18 | fi 19 | 20 | muted=`amixer get Master|tail -n1|sed -E 's/.*\[([a-z]+)\]/\1/'` 21 | volume=`amixer get Master|tail -n1|sed -E 's/.*\[([0-9]+)\%\].*/\1/'` 22 | 23 | if [ $volume -lt 33 ]; then 24 | intensity="low" 25 | elif [ $volume -lt 66 ]; then 26 | intensity="medium" 27 | else 28 | intensity="high" 29 | fi 30 | 31 | if [[ $muted == "off" ]]; then 32 | notify-send "Muted" -t 1000 -i notification-audio-volume-muted -h int:value:0 33 | 34 | else 35 | notify-send "Volume" -t 1000 -i notification-audio-volume-"$intensity" -h int:value:$volume 36 | fi 37 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/updates-available.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Check for Arch updates 3 | 4 | [Service] 5 | Type=simple 6 | ExecStart=/usr/local/bin/updates-available.sh 7 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/updates-available.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Hourly check for Arch updates 3 | 4 | [Timer] 5 | OnCalendar=hourly 6 | Persistent=true 7 | Unit=updates-available.service 8 | 9 | [Install] 10 | WantedBy=multi-user.target 11 | -------------------------------------------------------------------------------- /.yuri_misc_sys_files/yuri: -------------------------------------------------------------------------------- 1 | [User] 2 | Language=en_US.utf8 3 | XSession=openbox 4 | Icon=/var/lib/AccountsService/icons/yuri.png 5 | SystemAccount=false 6 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | # 2 | # ~/.zshrc 3 | # 4 | # yuri - Jul 2014 5 | 6 | BROWSER='/usr/bin/google-chrome-stable' 7 | if [ -n "$WINDOWID" ]; then # this shell is running in X 8 | EDITOR='/usr/bin/gvim' 9 | else 10 | EDITOR='/usr/bin/vim' 11 | fi 12 | 13 | ZSH="$HOME/.config/zsh" 14 | PLUGINS="$ZSH/plugins" 15 | CUSTOM="$ZSH/custom" 16 | 17 | # add --user-install ruby gems to PATH 18 | if which ruby >/dev/null && which gem >/dev/null; then 19 | PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" 20 | fi 21 | 22 | # initialize colors and completion 23 | autoload -U compinit promptinit colors 24 | compinit 25 | colors 26 | LS_COLORS='rs=0:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:'; 27 | export LS_COLORS 28 | 29 | # this is the highlight color for tab completion menu selection 30 | ZLS_COLORS="ma=47:$LS_COLORS" 31 | 32 | # enable arrow key navigation of tab completion options 33 | zstyle ':completion:*' menu select 34 | zstyle ':completion:*' list-colors ${(s.:.)ZLS_COLORS} 35 | 36 | # tab completion options 37 | setopt completealiases 38 | unsetopt flowcontrol 39 | setopt auto_menu 40 | setopt complete_in_word 41 | setopt always_to_end 42 | 43 | # in order try: 44 | # simple tab completion 45 | # case insensitive completion 46 | # simple substring completion 47 | # case insensitive substring completion 48 | # by defining multiple patterns, completion performance remains fast 49 | # while still affording tons of flexibility 50 | zstyle ':completion:*' matcher-list '' 'm:{A-ZÄÖÜa-zäöü}={a-zäöüA-ZÄÖÜ}' \ 51 | 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' \ 52 | 'm:{A-ZÄÖÜa-zäöü}={a-zäöüA-ZÄÖÜ} r:|[._-]=* r:|=*' \ 53 | 'm:{A-ZÄÖÜa-zäöü}={a-zäöüA-ZÄÖÜ} l:|=* r:|=*' 54 | 55 | # command history 56 | HISTFILE=~/.histfile 57 | HISTSIZE=4096 58 | SAVEHIST=4096 59 | 60 | # prevent duplicate history entries 61 | setopt HIST_IGNORE_DUPS 62 | setopt HIST_SAVE_NO_DUPS 63 | 64 | #share history between terminals 65 | setopt INC_APPEND_HISTORY 66 | setopt SHARE_HISTORY 67 | 68 | # add search functionality to up and down arrow keys 69 | autoload -U up-line-or-beginning-search down-line-or-beginning-search 70 | zle -N up-line-or-beginning-search 71 | zle -N down-line-or-beginning-search 72 | bindkey "^[[A" up-line-or-beginning-search # Up 73 | bindkey "^[[B" down-line-or-beginning-search # Down 74 | 75 | # a few more keybindings 76 | bindkey '^P' up-history 77 | bindkey '^N' down-history 78 | bindkey '^?' backward-delete-char 79 | bindkey '^h' backward-delete-char 80 | bindkey '^w' backward-kill-word 81 | bindkey '^r' history-incremental-search-backward 82 | 83 | # vi mode settings 84 | bindkey -v 85 | KEYTIMEOUT=1 # reduce time to transition between INSERT and NORMAL 86 | 87 | # right prompt indication of INSERT vs NORMAL vi modes 88 | # perhaps a bit more complex with substitution than required 89 | # in order to prepend vi mode to righthand prompt 90 | # function zle-line-init zle-keymap-select { 91 | # VI_MODE="${${KEYMAP/vicmd/[NORMAL]}/(main|viins)/[INSERT]}" 92 | # RPS1=${RPS1/\[*\] /} 93 | # RPS1="$VI_MODE $RPS1" 94 | # RPS2=$RPS1 95 | # zle reset-prompt 96 | # } 97 | # zle -N zle-line-init 98 | # zle -N zle-keymap-select 99 | 100 | # cursor shape indication of INSERT vs NORMAL vi modes 101 | # supported (at a minimum) by rxvt-unicode-256color and xterm 102 | zle-keymap-select () { 103 | if [[ "$TERM" =~ "^rxvt|^xterm" ]]; then 104 | if [ $KEYMAP = vicmd ]; then 105 | echo -ne "\033[1 q" 106 | else 107 | echo -ne "\033[3 q" 108 | fi 109 | fi 110 | } 111 | zle -N zle-keymap-select 112 | 113 | zle-line-init () { 114 | zle -K viins 115 | echo -ne "\033[3 q" 116 | } 117 | zle -N zle-line-init 118 | 119 | # nicely formatted prompt 120 | PROMPT="%m%{$fg[white]%} %n %{$fg_no_bold[blue]%}%~ %{$fg[white]%}%# %{$reset_color%}" 121 | 122 | # yuri - set fixed window title for transparent desktop terminal 123 | # test for custom named terminal with same window id as the present one 124 | # if it matches, set the window title so that the compositor and 125 | # window manager can treat it appropriately 126 | 127 | if [ -n "$WINDOWID" ]; then # this shell is running in X 128 | 129 | # use X forwarding with ssh 130 | alias ssh='ssh -Y' 131 | 132 | # this dynamically sets the window title of terminal windows 133 | # it's mostly just an openbox hack, hence the desktop session condition 134 | DESKTOPWINDOWID=0 135 | if [ -n $WINDOWID ]; then 136 | wmctrl -l > /dev/null 2>&1 && DESKTOPWINDOWID=$((`wmctrl -lpx | grep 'URxvtDesktop.URxvt' | awk '{ print $1 }'`)) 137 | fi 138 | if [ $WINDOWID -eq $DESKTOPWINDOWID ]; then 139 | print -n "\e]0;URxvtDesktop\a" 140 | # display system info on the desktop terminal 141 | if [ $DESKTOP_SESSION = "openbox" ]; then 142 | archey 143 | fi 144 | else 145 | case $TERM in 146 | termite|*xterm*|rxvt|rxvt-unicode|rxvt-256color|rxvt-unicode-256color|(dt|k|E)term) 147 | precmd () { print -Pn "\e]0;%n@%M:%~\a" } 148 | preexec () { print -Pn "\e]0;%n@%M:%~ ($1)\a" } 149 | ;; 150 | esac 151 | 152 | fi 153 | fi 154 | 155 | # plugins / scripts 156 | # source $CUSTOM/git-prompt.zsh # better/faster git prompt than the oh-my-zsh plugin 157 | source $CUSTOM/aliases.zsh # all aliases in one place 158 | source $PLUGINS/history-substring-search/history-substring-search.zsh 159 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ##yuri_config - Yuri's Linux configuration files## 2 | 3 | My collection of Linux configuration files, stored here primarily for personal use. 4 | 5 | Feel free to copy/clone them for your own use. I make no promises that they'll work on your system. 6 | 7 | --Yuri 8 | 9 | #####RELEASE NOTES:##### 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | Version 2, December 2004 12 | 13 | Copyright (C) 2004 Sam Hocevar 14 | 15 | Everyone is permitted to copy and distribute verbatim or modified 16 | copies of this license document, and changing it is allowed as long 17 | as the name is changed. 18 | 19 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 20 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 21 | 22 | 0. You just DO WHAT THE FUCK YOU WANT TO. 23 | 24 | --------------------------------------------- 25 | 26 | System info current as of: Fri, 20 Nov 2015 13:38:19 27 | 28 | Output of `uname -a >> README.md` : 29 | 30 | Linux vorlauf-arch 4.2.5-1-ARCH #1 SMP PREEMPT Tue Oct 27 08:13:28 CET 2015 x86_64 GNU/Linux 31 | 32 | Output of `pacman -Qe >> README.md` :
33 | (all explicitly installed Arch packages) 34 | 35 | accountsservice 0.6.40-1 36 | acpi 1.7-1 37 | aircrack-ng 1.2rc2-1 38 | alsa-utils 1.1.0-1 39 | archey 20130324-7 40 | arduino 1:1.6.5.r5-2 41 | asoundconf 1:1.2-1 42 | astyle 2.05.1-1 43 | at 3.1.16-1 44 | autoconf 2.69-2 45 | automake 1.15-1 46 | bash 4.3.042-3 47 | bc 1.06.95-1 48 | binutils 2.25.1-3 49 | bison 3.0.4-1 50 | blender 17:2.76.b-1 51 | bspwm 0.9-2 52 | bzip2 1.0.6-5 53 | catfish 1.3.3-3 54 | chromaprint 1.2-1 55 | cmake 3.4.0-1 56 | cmatrix 1.2a-11 57 | cnijfilter-mg5200 3.40-11 58 | compton-git 0.1_beta2.82.gd7f95b5-1 59 | conky-lua 1.9.0-2 60 | coreutils 8.24-1 61 | cryptsetup 1.7.0-1 62 | cups 2.1.0-1 63 | device-mapper 2.02.133-1 64 | dhcpcd 6.9.3-1 65 | dialog 1:1.2_20150920-1 66 | diffutils 3.3-2 67 | dmenu-mousey-git 2-1 68 | e2fsprogs 1.42.13-1 69 | expac 4-3 70 | faenza-crunchbang-icon-theme 1.2-2 71 | faenza-icon-theme 1.3.1-4 72 | fakeroot 1.20.2-1 73 | fdupes 1.51-2 74 | feh 2.14-1 75 | file 5.25-1 76 | filebot 4.6-1 77 | filesystem 2015.09-1 78 | findutils 4.4.2-6 79 | firefox 42.0-2 80 | flashplugin 11.2.202.548-1 81 | flex 2.5.39-1 82 | gawk 4.1.3-1 83 | gcc 5.2.0-2 84 | gcc-libs 5.2.0-2 85 | gettext 0.19.6-1 86 | ghostscript 9.18-4 87 | gimp 2.8.14-4 88 | glibc 2.22-3 89 | gmrun 0.9.2-5 90 | gnome-themes-standard 3.18.0-1 91 | google-chrome 46.0.2490.86-1 92 | grep 2.22-1 93 | groff 1.22.3-4 94 | grub 1:2.02.beta2-5 95 | gst-libav 1.6.1-1 96 | gst-plugins-good 1.6.1-2 97 | gstreamer0.10-bad-plugins 0.10.23-11 98 | gstreamer0.10-good-plugins 0.10.31-9 99 | gstreamer0.10-ugly-plugins 0.10.19-15 100 | gvim 7.4.884-1 101 | gzip 1.6-1 102 | hal 0.5.15-1 103 | handbrake 0.10.2-3 104 | hdparm 9.48-1 105 | hsetroot 1.0.2-4 106 | htop 1.0.3-3 107 | imagemagick 6.9.2.4-1 108 | inetutils 1.9.4-2 109 | iproute2 4.1.1-1 110 | iputils 20140519.fad11dc-1 111 | iw 4.1-1 112 | java-rxtx 2.2pre2-2 113 | jdk8-openjdk 8.u66-1 114 | jfsutils 1.1.15-4 115 | jre7-openjdk 7.u91_2.6.3-1 116 | jre8-openjdk 8.u66-1 117 | jshon 20131105-1 118 | kodi 15.2-1 119 | less 481-2 120 | libdvdcss 1.3.0-1 121 | libmediainfo 0.7.79-1 122 | libpng12 1.2.53-2 123 | libreoffice-fresh 5.0.3-1 124 | libtool 2.4.6-3 125 | libutil-linux 2.27-6 126 | licenses 20140629-1 127 | lightdm 1:1.16.5-1 128 | lightdm-gtk-greeter-settings 1.2.0-3 129 | lightdm-gtk3-greeter-devel 1.8.5-2 130 | linux 4.2.5-1 131 | lm_sensors 3.4.0-1 132 | logrotate 3.9.1-1 133 | lvm2 2.02.133-1 134 | lxappearance-obconf 0.2.2-3 135 | m4 1.4.17-1 136 | make 4.1-1 137 | man-db 2.7.5-1 138 | man-pages 4.02-1 139 | mdadm 3.3.4-1 140 | mediterraneannight-theme-git 2.03.0.1.r9.g2c41b16-1 141 | mencoder 37379-6 142 | mesa 11.0.5-1 143 | mlocate 0.26-5 144 | mp3gain 1.5.2-3 145 | nano 2.4.2-2 146 | network-manager-applet 1.0.6-1 147 | networkmanager 1.0.7-1 148 | nfs-utils 1.3.3-3 149 | nodejs 5.1.0-1 150 | nss-mdns 0.10-6 151 | ntfs-3g 2015.3.14-1 152 | ntop 5.0.1-7 153 | numlockx 1.2-3 154 | obconf 2.0.4-3 155 | oblogout 0.2-16 156 | obmenu 1.0-10 157 | openbox 3.6.1-1 158 | openbox-themes 1.0.2-3 159 | openshot 1.4.3-5 160 | openssh 7.1p1-1 161 | openvpn 2.3.8-2 162 | os-prober 1.70-1 163 | packer 20150808-1 164 | pacman 4.2.1-4 165 | patch 2.7.5-1 166 | pciutils 3.3.1-1 167 | pcmciautils 018-7 168 | perl 5.22.0-1 169 | php-mcrypt 5.6.15-3 170 | picocom 2.1-1 171 | pkg-config 0.29-1 172 | procps-ng 3.3.11-2 173 | psmisc 22.21-3 174 | python-dateutil 2.4.2-2 175 | python-gobject 3.18.2-1 176 | python2-xlib 0.15rc1-7 177 | reaver 1.4-2 178 | reiserfsprogs 3.6.24-1 179 | rxvt-unicode 9.21-3 180 | s-nail 14.8.5-1 181 | screen 4.3.1-2 182 | screenruler 2.0-1 183 | scrot 0.8.13-1 184 | sed 4.2.2-3 185 | shadow 4.2.1-3 186 | spacefm 1.0.4-1 187 | sudo 1.8.15-1 188 | sxhkd 0.5.5-1 189 | sysfsutils 2.1.0-9 190 | systemd-sysvcompat 227-1 191 | tar 1.28-1 192 | terminus-font 4.40-2 193 | texinfo 6.0-1 194 | tint2-git 0.12.1.r84.g095b311-1 195 | ttf-dejavu 2.34-2 196 | ttf-google-fonts-git 20150319-1 197 | ttf-mac-fonts 1-7 198 | ttf-microsoft-consolas 5.33-1 199 | ttf-ms-fonts 2.0-10 200 | udevil 0.4.4-1 201 | unrar 1:5.3.4-1 202 | urxvt-perls 2.2-1 203 | urxvt-vtwheel 0.3-2 204 | usbutils 008-1 205 | util-linux 2.27-6 206 | vi 1:070224-2 207 | vlc 2.2.1-9 208 | volumeicon 0.5.1-1 209 | waldorf-ui-theme 0.07-1 210 | wget 1.16.3-1 211 | which 2.21-1 212 | wireshark-gtk 2.0.0-1 213 | wmctrl 1.07-4 214 | wpa_supplicant 1:2.3-1 215 | wxgtk 3.0.2-4 216 | xclip 0.12-4 217 | xcursor-vanilla-dmz 0.4.4-1 218 | xdotool 3.20150503.1-1 219 | xf86-video-intel 1:2.99.917+478+gdf72bc5-2 220 | xfburn 0.5.4-2 221 | xfce4-notifyd 0.2.4-2 222 | xfsprogs 4.2.0-1 223 | xorg-server 1.17.4-2 224 | xorg-server-utils 7.6-4 225 | xorg-twm 1.0.9-1 226 | xorg-utils 7.6-9 227 | xorg-xclock 1.0.7-1 228 | xorg-xinit 1.3.4-3 229 | xsane 0.999-1 230 | xsel 1.2.0-6 231 | xterm 320-2 232 | youtube-dl-git 2015.11.10.r4.g6abce58-1 233 | zsh 5.1.1-2 234 | -------------------------------------------------------------------------------- /update-yuri_config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # updates README.md with current system info 4 | # copies some additional files for inclusion in the repo 5 | # stages all tracked files for upload to the git repo 6 | 7 | INPUT_FILE='/home/yuri/README.md' 8 | TMP_FILE=`mktemp -u "yuri_config-XXXXXX.md"` 9 | OUTPUT_FILE='/home/yuri/README.md' 10 | BACKUP_FILE="$INPUT_FILE.old" 11 | 12 | # files not in my home directory are listed in $ADDL_FILES_LIST 13 | # this script will copy them to $ADDL_FILES_PATH 14 | # files matching *.sh will be copied to $ADDL_FILES_PATH/scripts 15 | ADDL_FILES_LIST='/home/yuri/.yuri_misc_sys_files/FILES.txt' 16 | ADDL_FILES_PATH='/home/yuri/.yuri_misc_sys_files' 17 | 18 | # back up the previous file 19 | echo -e "Backing up $INPUT_FILE as $BACKUP_FILE\n" 20 | cp $INPUT_FILE $BACKUP_FILE 21 | 22 | # remove previous system info/output 23 | echo -e "Creating temporary $TMP_FILE\n" 24 | sed '/cut_here/q' $INPUT_FILE > $TMP_FILE 25 | 26 | # append date/time stamp 27 | date +"Appending time stamp: %a, %d %b %Y %H:%M:%S" 28 | date +"System info current as of: %a, %d %b %Y %H:%M:%S" >> $TMP_FILE 29 | 30 | # append uname info to temp file 31 | echo "Appending output of uname -a" 32 | echo -ne '\nOutput of `uname -a >> README.md` :\n\n ' >> $TMP_FILE 33 | uname -a >> $TMP_FILE 34 | 35 | # append package info to temp file 36 | # sed indents the lines for markdown purposes 37 | echo "Appending output of pacman -Qe" 38 | echo -ne '\nOutput of `pacman -Qe >> README.md` :
\n' >> $TMP_FILE 39 | echo -ne '(all explicitly installed Arch packages)\n\n' >> $TMP_FILE 40 | pacman -Qe | sed 's/^/ /' >> $TMP_FILE 41 | 42 | # move temp file to output file 43 | mv $TMP_FILE $OUTPUT_FILE 44 | echo -e "\nFile updated: $OUTPUT_FILE\n" 45 | 46 | # update files to include in the git repository 47 | # (files that are external to my home directory) 48 | echo -e "Copying selected system files to $ADDL_FILES_PATH\n" 49 | [ ! -d "$ADDL_FILES_PATH"/scripts ] && mkdir "$ADDL_FILES_PATH"/scripts 50 | while IFS= read -r f; do 51 | # copy files, scripts go to their own sub-directory 52 | [ ${f: -3} == ".sh" ] && cp $f "$ADDL_FILES_PATH"/scripts || cp $f $ADDL_FILES_PATH 53 | [ $? -ne 0 ] && echo "Error: did not copy $f" || echo "Success: copied $f" 54 | done < $ADDL_FILES_LIST 55 | echo 56 | 57 | # ask whether to stage update files for git 58 | # default = yes 59 | read -n 1 -r -p 'Stage tracked files (git add/commit)? [Y/n] ' 60 | REPLY="${REPLY:=Y}" 61 | if [[ ! $REPLY =~ ^[Yy]$ ]]; then 62 | echo -e "\nExiting - files not staged." 63 | exit 0 64 | fi 65 | 66 | # git add/commit 67 | git add $ADDL_FILES_PATH 68 | git add -u 69 | git commit -m "`date +"scripted update: %a, %d %b %Y %H:%M:%S"`" 70 | if [ $? -ne 0 ] ; then 71 | echo -e "\nError - exiting, files not staged." 72 | exit 1 73 | fi 74 | echo -e "\nFiles staged for upload.\n" 75 | 76 | # ask whether to push files to git 77 | # default = yes 78 | read -n 1 -r -p 'Push files to current git branch? [Y/n] ' 79 | REPLY="${REPLY:=Y}" 80 | if [[ ! $REPLY =~ ^[Yy]$ ]]; then 81 | echo -e "\nExiting - no files pushed." 82 | exit 0 83 | fi 84 | 85 | # git push 86 | echo 87 | git push origin master 88 | if [ $? -ne 0 ] ; then 89 | echo -e "\nError - exiting, no files pushed." 90 | exit 1 91 | fi 92 | echo -e "\n\nSuccess! Files pushed to current git branch.\n" 93 | --------------------------------------------------------------------------------