diff --git a/.Xresources b/.Xresources new file mode 100644 index 0000000..4933da9 --- /dev/null +++ b/.Xresources @@ -0,0 +1,117 @@ +! ____ _____ +! | _ \_ _| Derek Taylor (DistroTube) +! | | | || | http://www.youtube.com/c/DistroTube +! | |_| || | http://www.gitlab.com/dwt1/ +! |____/ |_| +! + + +Xft.dpi: 96 +Xft.antialias: true +Xft.hinting: true +Xft.rgba: rgb +Xft.autohint: true +Xft.hintstyle: hintfull +Xft.lcdfilter: lcdfilter + +XTerm*renderFont: true +XTerm*faceName: xft:UbuntuMono Nerd Font +XTerm*faceSize: 13 +XTerm*utf8: 2 +XTerm*locale: true + +XTerm.vt100.translations: #override \n\ + Ctrl j: smaller-vt-font() \n\ + Ctrl k: larger-vt-font() + + +! Every shell is a login shell by default (for inclusion of all necessary environment variables) +XTerm*loginshell: true + +! I like a LOT of scrollback... +XTerm*savelines: 16384 + +! double-click to select whole URLs :D +XTerm*charClass: 33:48,36-47:48,58-59:48,61:48,63-64:48,95:48,126:48 + +URxvt*imLocale: en_US.UTF-8 +URxvt*termName: rxvt-unicode-256color +Urxvt*buffered: false +URxvt.intensityStyles: false +URxvt.font: xft:UbuntuMono Nerd Font:size=13, \ + xft:Inconsolata Nerd Font Mono:size=13, \ + xft:DejaVuSansMono Nerd Font:size=13, \ + xft:DroidSansMono Nerd Font:size=13, \ + xft:FuraMono Nerd Font:size=13, \ + xft:RobotoMono Nerd Font:size=13, \ + xft:Noto Sans Mono:size=13, \ + xft:Monospace:style=Medium:size=13 +URxvt.saveLines: 2000 +URxvt.scrollBar: false +URxvt.cursorColor: white + +!! Extensions +URxvt.perl-ext-common: default,matcher,resize-font,url-select,keyboard-select,clipboard +URxvt.colorUL: #4682B4 +!! url-select +URxvt.keysym.M-u: perl:url-select:select_next +URxvt.url-select.launcher: urxvt -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss +URxvt.url-select.underline: true +!! keyboard-select: +URxvt.keysym.M-Escape: perl:keyboard-select:activate +!! resize-font +URxvt.resize-font.smaller: C-j +URxvt.resize-font.bigger: C-k +!! Matcher +URxvt.url-launcher: urxvt -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss +URxvt.matcher.button: 1 +!!clipboard +URxvt.keysym.M-c: perl:clipboard:copy +URxvt.keysym.M-v: perl:clipboard:paste +URxvt*depth: 32 + + +! DTs Modified Ocean Dark +!! COLORS + +! special +URxvt*foreground: #c0c5ce +URxvt*background: [100]#1D2330 +URxvt*cursorColor: #c0c5ce + +XTerm*foreground: #c0c5ce +XTerm*background: #1D2330 +XTerm*cursorColor: #c0c5ce + + +! black +*.color0: #1D2330 +*.color8: #4B5665 + +! red +*.color1: #645377 +*.color9: #84598D + +! green +*.color2: #AD69AF +*.color10: #7B8290 + +! yellow +*.color3: #B1B5C8 +*.color11: #d1d7e1 + +! blue +*.color4: #92969d +*.color12: #4B5665 + +! magenta +*.color5: #645377 +*.color13: #84598D + +! cyan +*.color6: #AD69AF +*.color14: #7B8290 + +! white +*.color7: #B1B5C8 +*.color15: #d1d7e1 diff --git a/.config/canto/conf b/.config/canto/conf new file mode 100755 index 0000000..9e65cee --- /dev/null +++ b/.config/canto/conf @@ -0,0 +1,360 @@ +{ + "CantoCurses": { + "browser": { + "path": "lynx", + "text": true + }, + "color": { + "1": 0, + "10": 9, + "100": 99, + "101": 100, + "102": 101, + "103": 102, + "104": 103, + "105": 104, + "106": 105, + "107": 106, + "108": 107, + "109": 108, + "11": 10, + "110": 109, + "111": 110, + "112": 111, + "113": 112, + "114": 113, + "115": 114, + "116": 115, + "117": 116, + "118": 117, + "119": 118, + "12": 11, + "120": 119, + "121": 120, + "122": 121, + "123": 122, + "124": 123, + "125": 124, + "126": 125, + "127": 126, + "128": 127, + "129": 128, + "13": 12, + "130": 129, + "131": 130, + "132": 131, + "133": 132, + "134": 133, + "135": 134, + "136": 135, + "137": 136, + "138": 137, + "139": 138, + "14": 13, + "140": 139, + "141": 140, + "142": 141, + "143": 142, + "144": 143, + "145": 144, + "146": 145, + "147": 146, + "148": 147, + "149": 148, + "15": 14, + "150": 149, + "151": 150, + "152": 151, + "153": 152, + "154": 153, + "155": 154, + "156": 155, + "157": 156, + "158": 157, + "159": 158, + "16": 15, + "160": 159, + "161": 160, + "162": 161, + "163": 162, + "164": 163, + "165": 164, + "166": 165, + "167": 166, + "168": 167, + "169": 168, + "17": 16, + "170": 169, + "171": 170, + "172": 171, + "173": 172, + "174": 173, + "175": 174, + "176": 175, + "177": 176, + "178": 177, + "179": 178, + "18": 17, + "180": 179, + "181": 180, + "182": 181, + "183": 182, + "184": 183, + "185": 184, + "186": 185, + "187": 186, + "188": 187, + "189": 188, + "19": 18, + "190": 189, + "191": 190, + "192": 191, + "193": 192, + "194": 193, + "195": 194, + "196": 195, + "197": 196, + "198": 197, + "199": 198, + "2": 1, + "20": 19, + "200": 199, + "201": 200, + "202": 201, + "203": 202, + "204": 203, + "205": 204, + "206": 205, + "207": 206, + "208": 207, + "209": 208, + "21": 20, + "210": 209, + "211": 210, + "212": 211, + "213": 212, + "214": 213, + "215": 214, + "216": 215, + "217": 216, + "218": 217, + "219": 218, + "22": 21, + "220": 219, + "221": 220, + "222": 221, + "223": 222, + "224": 223, + "225": 224, + "226": 225, + "227": 226, + "228": 227, + "229": 228, + "23": 22, + "230": 229, + "231": 230, + "232": 231, + "233": 232, + "234": 233, + "235": 234, + "236": 235, + "237": 236, + "238": 237, + "239": 238, + "24": 23, + "240": 239, + "241": 240, + "242": 241, + "243": 242, + "244": 243, + "245": 244, + "246": 245, + "247": 246, + "248": 247, + "249": 248, + "25": 24, + "250": 249, + "251": 250, + "252": 251, + "253": 252, + "254": 253, + "255": 254, + "256": 255, + "26": 25, + "27": 26, + "28": 27, + "29": 28, + "3": 2, + "30": 29, + "31": 30, + "32": 31, + "33": 32, + "34": 33, + "35": 34, + "36": 35, + "37": 36, + "38": 37, + "39": 38, + "4": 3, + "40": 39, + "41": 40, + "42": 41, + "43": 42, + "44": 43, + "45": 44, + "46": 45, + "47": 46, + "48": 47, + "49": 48, + "5": 4, + "50": 49, + "51": 50, + "52": 51, + "53": 52, + "54": 53, + "55": 54, + "56": 55, + "57": 56, + "58": 57, + "59": 58, + "6": 5, + "60": 59, + "61": 60, + "62": 61, + "63": 62, + "64": 63, + "65": 64, + "66": 65, + "67": 66, + "68": 67, + "69": 68, + "7": 6, + "70": 69, + "71": 70, + "72": 71, + "73": 72, + "74": 73, + "75": 74, + "76": 75, + "77": 76, + "78": 77, + "79": 78, + "8": 7, + "80": 79, + "81": 80, + "82": 81, + "83": 82, + "84": 83, + "85": 84, + "86": 85, + "87": 86, + "88": 87, + "89": 88, + "9": 8, + "90": 89, + "91": 90, + "92": 91, + "93": 92, + "94": 93, + "95": 94, + "96": 95, + "97": 96, + "98": 97, + "99": 98, + "defbg": -1, + "deffg": -1, + "enum_hints": 8, + "error": 6, + "marked": 8, + "pending": 8, + "read": 2, + "reader_image_link": 4, + "reader_italics": 8, + "reader_link": 3, + "reader_quote": 6, + "selected": -1, + "unread": 1 + }, + "config_version": 1, + "reader": { + "enumerate_links": true, + "show_description": true, + "show_enclosures": true + }, + "tagorder": [ + "maintag:Linux.com - Latest News", + "maintag:Linux Journal - The Original Magazine of the Linux Community", + "maintag:Phoronix", + "maintag:Unixmen", + "category:[Linux]" + ] + }, + "defaults": { + "global_transform": "filter_read", + "keep_time": 86400, + "keep_unread": false, + "rate": 10 + }, + "feeds": [ + { + "name": "Linux.com - Latest News", + "url": "https://www.linux.com/feeds/news/rss" + }, + { + "name": "Phoronix", + "url": "https://www.phoronix.com/rss.php" + }, + { + "name": "Linux Journal - The Original Magazine of the Linux Community", + "url": "http://feeds.feedburner.com/linuxjournalcom" + }, + { + "name": "Unixmen", + "url": "https://www.unixmen.com/feed/" + } + ], + "tags": { + "maintag:DistroWatch.com: News": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:Linux Journal - The Original Magazine of the Linux Community": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:Linux.com - Latest News": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:OMG! Ubuntu!": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:Phoronix": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:Slashdot": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + }, + "maintag:Unixmen": { + "collapsed": false, + "extra_tags": [ + "category:[Linux]" + ] + } + } +} \ No newline at end of file diff --git a/.config/compton/compton.conf b/.config/compton/compton.conf new file mode 100755 index 0000000..5742190 --- /dev/null +++ b/.config/compton/compton.conf @@ -0,0 +1,79 @@ +shadow = true; +detect-rounded-corners = true; +shadow-radius = 5; +shadow-offset-x = 1; +shadow-offset-y = 1; +shadow-opacity = 0.3; +shadow-ignore-shaped = false; +shadow-exclude = [ "name = 'Notification'", "override_redirect = 1 && !WM_CLASS@:s", "class_g ?= 'Dmenu'", "_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'", "_GTK_FRAME_EXTENTS@:c", "class_g ?= 'i3-frame'" ]; +menu-opacity = 1.0; +inactive-opacity = 1.0; +active-opacity = 1; +alpha-step = 0.01; +inactive-dim = 0.0; +blur-background = false; +blur-kern = "3x3box"; +fading = false; +fade-delta = 1; +fade-in-step = 0.03; +fade-out-step = 0.03; +fade-exclude = [ ]; +backend = "xrender"; +mark-wmwin-focused = true; +mark-ovredir-focused = true; +detect-client-opacity = true; +unredir-if-possible = true; +refresh-rate = 0; +vsync = "none"; +dbe = false; +focus-exclude = [ "class_g = 'Cairo-clock'" ]; +detect-transient = true; +detect-client-leader = true; +invert-color-include = [ ]; +glx-copy-from-front = false; +glx-swap-method = "undefined"; +opacity-rule = [ "99:name *?= 'Call'", +"99:class_g = 'Chromium'", +"99:name *?= 'Conky'", +"99:class_g = 'Darktable'", +"50:class_g = 'Dmenu'", +"99:name *?= 'Event'", +"99:class_g = 'Firefox'", +"99:class_g = 'GIMP'", +"99:name *?= 'Image'", +"99:class_g = 'Lazpaint'", +"99:class_g = 'Midori'", +"99:name *?= 'Minitube'", +"99:class_g = 'Mousepad'", +"99:name *?= 'MuseScore'", +"90:name *?= 'Page Info'", +"90:name *?= 'Panel'", +"99:class_g = 'Pinta'", +"90:name *?= 'Restart'", +"99:name *?= 'sudo'", +"99:name *?= 'Screenshot'", +"99:class_g = 'Viewnior'", +"99:class_g = 'VirtualBox'", +"99:name *?= 'VLC'", +"99:name *?= 'Write'", +"95:class_g = 'XTerm' && !_NET_WM_STATE@:32a", +"95:class_g = 'URxvt' && !_NET_WM_STATE@:32a", +"0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'", +"96:_NET_WM_STATE@:32a *= '_NET_WM_STATE_STICKY'" ]; +wintypes : +{ + tooltip : + { + fade = true; + shadow = false; + opacity = 0.85; + focus = true; + }; + fullscreen : + { + fade = true; + shadow = false; + opacity = 1; + focus = true; + }; +}; diff --git a/.config/conky/openbox.conkyrc b/.config/conky/openbox.conkyrc new file mode 100644 index 0000000..e63453e --- /dev/null +++ b/.config/conky/openbox.conkyrc @@ -0,0 +1,103 @@ + +own_window yes +own_window_type normal +# own_window_argb_visual yes +# own_window_argb_value 125 +own_window_transparent no +own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager +own_window_colour 222222 +own_window_class Conky +own_window_title Monitor Conky + +gap_x 3580 +gap_y 60 +alignment tl +minimum_width 220 + +use_xft yes +xftfont Cantarell:size=9 +xftalpha 1 +override_utf8_locale yes +draw_shades no #yes +default_shade_color 000000 +draw_outline no +default_outline_color 000000 + +color2 ededed +color3 109567 +cpu_avg_samples 2 +default_color bbbbbb + +draw_borders no #yes + +stippled_borders 5 +border_inner_margin 15 +border_outer_margin 0 +border_width 1 + +background yes +no_buffers yes +imlib_cache_size 0 + +double_buffer yes +update_interval 1 + + +TEXT +${voffset 8}$color${font Cantarell:size=16}${time %A}$font${voffset -8}$alignr${color 109567}${font Cantarell:size=38}${time %e}$font +$color${voffset -30}$color${font Cantarell:size=18}${time %B}$font${voffset -3} $color${font Cantarell:size=20}${time %Y}$font +#${voffset 10}$alignr$color Kraków (PL) ${weather http://weather.noaa.gov/pub/data/observations/metar/stations/ EPKK temperature temperature 15}°C +# +${voffset 10}${goto 12}${color3}${font Cantarell:size=9:bold}CPU$alignr${color2}${font}$cpu% +$color2${goto 12}${cpubar 4,200} +${voffset 5}${goto 12}$font$color2${top name 1}$alignr$color${top cpu 1}% +${goto 12}$color2${top name 2}$alignr$color${top cpu 2}% +${goto 12}$color2${top name 3}$alignr$color${top cpu 3}% +${goto 12}$color2${top name 4}$alignr$color${top cpu 4}% +# +${voffset 10}${goto 12}${color3}${font Cantarell:size=9:bold}RAM$alignr${color2}${font}$mem/$memmax +$color2${goto 12}${membar 4,200} +${goto 12}${voffset 5}$color2${top_mem name 1}$alignr$color${top_mem mem_res 1} +${goto 12}$color2${top_mem name 2}$alignr$color${top_mem mem_res 2} +${goto 12}$color2${top_mem name 3}$alignr$color${top_mem mem_res 3} +${goto 12}$color2${top_mem name 4}$alignr$color${top_mem mem_res 4} +# +${voffset 10}$alignr disk ${color2}${fs_used /} - ${fs_size /} +$alignr$color memory ${color2}$mem - $memmax +#${alignr}${color2}${font Cantarell:size=9}swap $swapmax - $swap +${voffset 10}$alignr${execi 1200 whoami}@${nodename} +${alignr}${color2}${font Cantarell:size=9}uptime ${color}${uptime_short} +$alignr${color} Manjaro Linux ${execi 10000 awk -F'=' '/DISTRIB_RELEASE=/ {printf $2" "} /CODENAME/ {print $2}' /etc/lsb-release} +${alignr}${color2}${font Cantarell:size=9}${alignr}kernel ${color}${kernel} +${alignr}${color2}${font Cantarell:size=9}${alignr}filesystem ${color}${fs_type} +${voffset 10}${alignr}${color} packages installed: ${color2}${execi 10000 pacman -Q | wc -l} +${alignr}${color} available updates ${color CC2A2E}${font Cantarell:bold:size=10}${execpi 10800 checkupdates | wc -l}${font}${color} +${alignr}${color} last updated on: ${font Cantarell:size=8}${color2}${execi 10000 grep "starting full system upgrade" /var/log/pacman.log | tail -n1| cut --bytes=2-17} +${voffset 14}${color3}${font Cantarell:size=9:bold}APPLICATIONS${font}${voffset -6} +${color2}${hr 1}${voffset -6} +${color2}terminal ${alignr}${color}super+enter +${color2}menu ${alignr}${color}super+spacebar +${color2}run command... ${alignr}${color}super+r +${color2}file manager ${alignr}${color}super+f +${color2}web browser ${alignr}${color}super+w +${color2}volume control ${alignr}${color}super+v +${color2}lock screen ${alignr}${color}super+l +${color2}xkill ${alignr}${color}shift+super+k +${color2}exit openbox ${alignr}${color}shift+super+q +${voffset 10}${color3}${font Cantarell:size=9:bold}WINDOWS${font}${voffset -6} +${color2}${hr 1}${voffset -6} +${color2}close ${alignr} ${color}shift+super+c +${color2}minimalize ${alignr} ${color}alt+up arrow +${color2}maximize ${alignr} ${color}alt+down arrow +${color2}lower ${alignr} ${color}alt+esc +${color2}show desktop ${alignr} ${color}super+d +${color2}toggle borders ${alignr} ${color}shift+super+b +${color2}toggle fullscreen ${alignr} ${color}shift+super+enter +${color2}resize/move ${alignr} ${color}super+arrows +${color2}window placement: +${color2} - half screen ${alignr} ${color}super+alt+arrows +${color2} - 1/4 screen ${alignr} ${color}super+alt+keypad[1..9] +${color2} - 1/9 screen ${alignr} ${color}super+keypad[1..9] +${voffset 10}${color3}${font Cantarell:size=9:bold}DESKTOPS${font}${voffset -6} +${color2}${hr 1}${voffset -6} +${color2}go to desktop ${alignr} ${color}super+[F1..F4] diff --git a/.config/herbstluftwm/autostart b/.config/herbstluftwm/autostart new file mode 100755 index 0000000..a1400b0 --- /dev/null +++ b/.config/herbstluftwm/autostart @@ -0,0 +1,172 @@ +#!/usr/bin/env bash + +# this is a simple config for herbstluftwm + +hc() { + herbstclient "$@" +} + +hc emit_hook reload + +xsetroot -solid '#5A8E3A' + +nitrogen --restore +urxvtd -q -o -f + +# remove all existing keybindings +hc keyunbind --all + +# keybindings +# if you have a super key you will be much happier with Mod set to Mod4 +#Mod=Mod1 # Use alt as the main modifier +Mod=Mod4 # Use the super key as the main modifier + +hc keybind $Mod-Shift-q quit +hc keybind $Mod-Shift-r reload +hc keybind $Mod-Shift-c close +hc keybind $Mod-Return spawn urxvtc + +# basic movement +# focusing clients +hc keybind $Mod-Left focus left +hc keybind $Mod-Down focus down +hc keybind $Mod-Up focus up +hc keybind $Mod-Right focus right +hc keybind $Mod-h focus left +hc keybind $Mod-j focus down +hc keybind $Mod-k focus up +hc keybind $Mod-l focus right + +# moving clients +hc keybind $Mod-Shift-Left shift left +hc keybind $Mod-Shift-Down shift down +hc keybind $Mod-Shift-Up shift up +hc keybind $Mod-Shift-Right shift right +hc keybind $Mod-Shift-h shift left +hc keybind $Mod-Shift-j shift down +hc keybind $Mod-Shift-k shift up +hc keybind $Mod-Shift-l shift right + +# splitting frames +# create an empty frame at the specified direction +hc keybind $Mod-u split bottom 0.5 +hc keybind $Mod-o split right 0.5 +# let the current frame explode into subframes +hc keybind $Mod-Control-space split explode + +# resizing frames +resizestep=0.05 +hc keybind $Mod-Control-h resize left +$resizestep +hc keybind $Mod-Control-j resize down +$resizestep +hc keybind $Mod-Control-k resize up +$resizestep +hc keybind $Mod-Control-l resize right +$resizestep +hc keybind $Mod-Control-Left resize left +$resizestep +hc keybind $Mod-Control-Down resize down +$resizestep +hc keybind $Mod-Control-Up resize up +$resizestep +hc keybind $Mod-Control-Right resize right +$resizestep + +# tags +tag_names=( {1..9} ) +tag_keys=( {1..9} 0 ) + +hc rename default "${tag_names[0]}" || true +for i in ${!tag_names[@]} ; do + hc add "${tag_names[$i]}" + key="${tag_keys[$i]}" + if ! [ -z "$key" ] ; then + hc keybind "$Mod-$key" use_index "$i" + hc keybind "$Mod-Shift-$key" move_index "$i" + fi +done + +# cycle through tags +hc keybind $Mod-period use_index +1 --skip-visible +hc keybind $Mod-comma use_index -1 --skip-visible + +# layouting +hc keybind $Mod-r remove +hc keybind $Mod-s floating toggle +hc keybind $Mod-f fullscreen toggle +hc keybind $Mod-p pseudotile toggle +# The following cycles through the available layouts within a frame, but skips +# layouts, if the layout change wouldn't affect the actual window positions. +# I.e. if there are two windows within a frame, the grid layout is skipped. +hc keybind $Mod-space \ + or , and . compare tags.focus.curframe_wcount = 2 \ + . cycle_layout +1 vertical horizontal max vertical grid \ + , cycle_layout +1 + +# mouse +hc mouseunbind --all +hc mousebind $Mod-Button1 move +hc mousebind $Mod-Button2 zoom +hc mousebind $Mod-Button3 resize + +# focus +hc keybind $Mod-BackSpace cycle_monitor +hc keybind $Mod-Tab cycle_all +1 +hc keybind $Mod-Shift-Tab cycle_all -1 +hc keybind $Mod-c cycle +hc keybind $Mod-i jumpto urgent + +# theme +hc attr theme.tiling.reset 1 +hc attr theme.floating.reset 1 +hc set frame_border_active_color '#222222' +hc set frame_border_normal_color '#101010' +hc set frame_bg_normal_color '#565656' +hc set frame_bg_active_color '#345F0C' +hc set frame_border_width 1 +hc set always_show_frame 1 +hc set frame_bg_transparent 1 +hc set frame_transparent_width 5 +hc set frame_gap 4 + +hc attr theme.active.color '#9fbc00' +hc attr theme.normal.color '#454545' +hc attr theme.urgent.color orange +hc attr theme.inner_width 1 +hc attr theme.inner_color black +hc attr theme.border_width 3 +hc attr theme.floating.border_width 4 +hc attr theme.floating.outer_width 1 +hc attr theme.floating.outer_color black +hc attr theme.active.inner_color '#3E4A00' +hc attr theme.active.outer_color '#3E4A00' +hc attr theme.background_color '#141414' + +hc set window_gap 0 +hc set frame_padding 0 +hc set smart_window_surroundings 0 +hc set smart_frame_surroundings 1 +hc set mouse_recenter_gap 0 + +# rules +hc unrule -F +#hc rule class=XTerm tag=3 # move all xterms to tag 3 +hc rule focus=on # normally focus new clients +#hc rule focus=off # normally do not focus new clients +# give focus to most common terminals +#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on +hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' pseudotile=on +hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on +hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off + +# unlock, just to be sure +hc unlock + +herbstclient set tree_style '╾│ ├└╼─┐' + +# do multi monitor setup here, e.g.: +# hc set_monitors 1280x1024+0+0 1280x1024+1280+0 +# or simply: +# hc detect_monitors +hc set_monitors 1920x1054+1920+26 1920x1054+3840+26 1920x1054+0+26 + +# find the panel +panel=~/.config/herbstluftwm/panel.sh +[ -x "$panel" ] || panel=/etc/xdg/herbstluftwm/panel.sh +for monitor in $(herbstclient list_monitors | cut -d: -f1) ; do + # start it on each monitor + "$panel" $monitor & +done diff --git a/.config/herbstluftwm/panel.sh b/.config/herbstluftwm/panel.sh new file mode 100755 index 0000000..fb3dec1 --- /dev/null +++ b/.config/herbstluftwm/panel.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +# Panel for herbstluftwm using dzen2 + +## dzen stuff +FG='#CCCCCC' +BG='#333333' +FONT="-*-fixed-medium-*-*-*-12-*-*-*-*-*-*-*" + +monitor=$@ + +rect="$(herbstclient monitor_rect $monitor)" +xoff=$(echo $rect | awk '{print $1}') +yoff=0 +width=$(echo $rect | awk '{print $3}') +height=$(echo $rect | awk '{print $2}') + +function uniq_linebuffered() { + awk '$0 != l { print ; l=$0 ; fflush(); }' "$@" +} + +{ + conky -c ~/.config/herbstluftwm/statusbar | while read -r; do + echo -e "conky $REPLY"; + + done > >(uniq_linebuffered) & + childpid=$! + herbstclient --idle + kill $childpid +} | { + TAGS=( $(herbstclient tag_status $monitor) ) + conky="" + separator="^fg(#002B36)^ro(1x16)^fg()" + while true; do + for i in "${TAGS[@]}"; do + echo -n "^ca(1,herbstclient use ${i:1}) " + case ${i:0:1} in + '#') + echo -n "^fg(#2290B5)[^fg(#FFCC30)${i:1}^fg(#2290B5)]" + ;; + '%') + echo -n "^fg(#2290B5)(^fg(#FFCC30)${i:1}^fg(#2290B5))" + ;; + '+') + echo -n "^fg(#2290B5)[^fg(#CCCCCC)${i:1}^fg(#2290B5)]" + ;; + '-') + echo -n "^fg(#2290B5)(^fg(#CCCCCC)${i:1}^fg(#2290B5))" + ;; + ':') + echo -n "^fg(#CCCCCC) ${i:1} " + ;; + *) + echo -n "^fg(#2290B5) ${i:1} " + ;; + esac + echo -n "^ca()" + done + echo -n " $separator" + conky_text_only=$(echo -n "$conky "|sed 's.\^[^(]*([^)]*)..g') + width=$(textwidth "$FONT" "$conky_text_only ") + echo -n "^p(_RIGHT)^p(-$width)$conky" + echo + read line || break + cmd=( $line ) + case "$cmd[0]" in + tag*) + TAGS=( $(herbstclient tag_status $monitor) ) + ;; + conky*) + conky="${cmd[@]:1}" + ;; + esac + done +} 2> /dev/null |dzen2 -ta l -y $yoff -x $xoff -h $height -w $width -fg $FG -bg $BG -fn $FONT & diff --git a/.config/herbstluftwm/rename.sh b/.config/herbstluftwm/rename.sh new file mode 100755 index 0000000..6ac2f11 --- /dev/null +++ b/.config/herbstluftwm/rename.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +function hc() { + herbstclient "$@" +} + +tags=$(hc tag_status) +current="" + +for i in ${tags}; do + if [[ ${i:0:1} == '#' ]]; then + current=${i} + break + fi +done + +# If : is in current tag +if [[ "$current" == *:* ]]; then + num=$(echo $current | sed -e 's/#\([^:]*\):.*/\1/') + name=$(echo $current | sed -e 's/#[^:]*:\(.*\)/\1/') + + old_tag=${num}:${name} + new_name=$(echo ${name} | dmenu -p "Rename #${num}: ") + new_tag=${num}:${new_name} +else + old_tag=$(echo ${current} | sed -e 's/^#//') + new_name=$(echo "" | dmenu -p "Rename #${old_tag}: ") + new_tag="${old_tag}:${new_name}" +fi + +hc rename "${old_tag}" "${new_tag}" +hc rename ${num}:${name} "${num}:${new_name}" diff --git a/.config/openbox/autostart b/.config/openbox/autostart new file mode 100644 index 0000000..2710d5f --- /dev/null +++ b/.config/openbox/autostart @@ -0,0 +1,4 @@ +tint2 & +compton & +nitrogen --restore & +rofi -show run & diff --git a/.config/openbox/menu.xml b/.config/openbox/menu.xml new file mode 100755 index 0000000..a40ebd2 --- /dev/null +++ b/.config/openbox/menu.xml @@ -0,0 +1,755 @@ + + + + + + + + + /home/derek/.conky/conky_start_brownie + + + + + + + conky -c '/home/derek/.conky/Rings/.conkyrc' + + + + + gedit /home/derek/.conky/Rings/.conkyrc + + + + + + + /home/derek/.conky/conky_start_electro + + + + + geany ~/.conky/electro/electro-1366.conkyrc + + + + + + + killall conky + + + + + + + + + + + + + + galculator + + + + + + gucharmap + + + + + + + + + + + + + leafpad + + + + + java -jar '/home/derek/PRT_Launcher.jar' + + + + + scrot + + + + + + x-terminal-emulator + + + + + + /bin/sh /home/derek/thinkorswim.desktop + + + + + tint2 + + + + + + killall tint2 + + + + + + + + + 0ad + + + + + + /usr/games/sol + + + + + + + + + + + + + + + + + + + + + /usr/games/gnome-sudoku + + + + + + supertuxkart + + + + + '/home/derek/Games/Xonotic/xonotic-linux64-glx' + + + + + + + + gimp + + + + + + + + + + + + + ristretto + + + + + inkscape + + + + + libreoffice -draw + + + + + + + + + + + + + shotwell + + + + + + + simple-scan + + + + + + + + termite -e 'canto-curses' -t 'Canto RSS Reader' + + + + + deluge + + + + + discord + + + + + dropbox start -i + + + + + + filezilla + + + + + + + firefox + + + + + + termite -e 'irssi' -t 'irssi' + + + + + termite -e 'lynx www.google.com' -t 'lynx web browser' + + + + + termite -e 'mutt' -t 'mutt email' + + + + + teamviewer + + + + + + thunderbird + + + + + + + + geany + + + + + /bin/sh '/home/derek/netbeans-8.0.2/bin/netbeans' + + + + + sensible-browser http://localhost/phpmyadmin/ + + + + + x-terminal-emulator -e python3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + termite -e 'alsamixer' -t 'alsamixer' + + + + + anoise + + + + + audacity + + + + + deadbeef + + + + + guvcview + + + + + + k3b + + + + + + kdenlive + + + + + obs + + + + + pavucontrol + + + + + pithos + + + + + simplescreenrecorder + + + + + + vlc + + + + + + + + + + pcmanfm -n ~/ + + + + + pcmanfm -n ~/Desktop + + + + + pcmanfm -n / + + + + + + pcmanfm -n ~/Backgrounds + + + + + pcmanfm -n ~/Documents + + + + + pcmanfm -n ~/Downloads + + + + + pcmanfm -n ~/Dropbox + + + + + pcmanfm -n ~/Music + + + + + pcmanfm -n ~/Pictures + + + + + pcmanfm -n ~/Videos + + + + + + pcmanfm -n computer:/// + + + + + pcmanfm -n network:/// + + + + + pcmanfm -n trash:/// + + + + + + + + + + + termite -e 'glances' -t 'glances' + + + + + termite -e 'htop' -t 'htop' + + + + + termite -e 'nmon' -t 'nmon' + + + + + stacer + + + + + termite -e 's-tui' -t 'Stress Terminal UI' + + + + + + + + + + + + + /usr/bin/nvidia-settings + + + + + gksu octopi + + + + + + obconf + + + + + + + obmenu + + + + + + + system-config-printer + + + + + + termite -e 'ranger' -t 'ranger file manager' + + + + + + usb-creator-gtk + + + + + + imagewriter %f + + + + + gksu timeshift-launcher + + + + + gksu pkexec xdiagnose + + + + + + users-admin + + + + + + + + + + + + + + + + lxappearance + + + + + + + + + + + + + + baobab + + + + + + + + + + + + + gnome-font-viewer + + + + + + ibus-setup + + + + + + im-config + + + + + + alacarte + + + + + + nitrogen + + + + + /usr/bin/seahorse + + + + + + gnome-file-share-properties + + + + + + + vino-preferences + + + + + + rofi-theme-selector + + + + + xscreensaver-demo + + + + + + + termite -e 'vim ~/.bashrc' -t 'Bash RC' + + + + + termite -e 'vim ~/.config/canto/conf' -t 'Canto Conf' + + + + + termite -e 'vim ~/.config/compton/compton.conf' -t 'Compton Conf' + + + + + termite -e 'vim ~/.irssi/config' -t 'Irssi Conf' + + + + + termite -e 'vim ~/.config/qtile/config.py' -t 'qtile config.py' + + + + + termite -e 'vim ~/.config/termite/config' -t 'Termite Config' + + + + + termite -e 'vim ~/.xmonad/xmonad.hs' -t 'xmonad.hs' + + + + + termite -e 'vim ~/.Xresources' -t 'Xresrouces' + + + + + termite -e 'vim ~/.zshrc' -t 'Zsh RC' + + + + + + + + + + + + + + rofi -show drun + + + + + termite + + + + + firefox + + + + + + + diff --git a/.config/openbox/pipemenus/date-menu.py b/.config/openbox/pipemenus/date-menu.py new file mode 100755 index 0000000..0a89069 --- /dev/null +++ b/.config/openbox/pipemenus/date-menu.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# +# DATE-MENU by Derek Taylor (DistroTube) +# A simple python script that creates an openbox pipemenu that displays time and date. + +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses + +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# Reconfigure openbox. + +# SETTINGS + +import datetime + +dt = datetime.datetime.now() +theDate = dt.strftime('%A, %B %d, %Y') +theTime = dt.strftime('%I:%M %p %Z') +theDay = dt.strftime('%j') +theWeek = dt.strftime('%U') + +# OPENBOX PIPEMENU + +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') diff --git a/.config/openbox/pipemenus/deadbeef.sh b/.config/openbox/pipemenus/deadbeef.sh new file mode 100755 index 0000000..9db522a --- /dev/null +++ b/.config/openbox/pipemenus/deadbeef.sh @@ -0,0 +1,51 @@ +#! /bin/bash +# +# DEADBEEF by Derek Taylor (DistroTube) +# A simple script that creates an openbox pipemenu that controls the deadbeef music player. +# +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses +# +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# +# Reconfigure openbox. +# +# REQUIRES the Deadbeef music player to be installed on your computer. + + +nowplaying=`deadbeef --nowplaying "%n %a - %t - %b - %y" | sed -n '1p' | tr -d '"'` +tracktime=`deadbeef --nowplaying "%l" | sed -n '1p'` +playlist_dir=`/home/derek/.config/deadbeef/playlists/` +playlist_num=`ls -l /home/derek/.config/deadbeef/playlists/* | wc -l | sed -n '1p'` + +echo "" +echo "" +echo "deadbeef" +echo "deadbeef" +echo "" +echo "deadbeef" +echo "" +echo "" +for file in $(ls /home/derek/.config/deadbeef/playlists/*.dbpl -1v); do +NAME=$(echo "$file" | rev | cut -d"/" -f1 | rev) +echo "deadbeef $file" +done +echo "" +echo "" +echo "deadbeef --play" +echo "deadbeef --pause" +echo "deadbeef --stop" +echo "deadbeef --next" +echo "deadbeef --prev" +echo "" +echo "deadbeef --quit" +echo "" diff --git a/.config/openbox/pipemenus/gmusicbrowser.py b/.config/openbox/pipemenus/gmusicbrowser.py new file mode 100755 index 0000000..fdcaf56 --- /dev/null +++ b/.config/openbox/pipemenus/gmusicbrowser.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 +# +# GMUISCBROWSER by Derek Taylor (DistroTube) +# A simple script that creates an openbox pipemenu that controls gmusicbrowser. +# +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses +# +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# +# Reconfigure openbox. +# +# REQUIRES the gmusicbrowser music player to be installed on your computer. + +# The playlist submenu is designed to pull all .m3u files from the ~home/$USER/.config/gmusicbrowser/ directory. +# Therefore, you must create this folder and export your playlists to this folder. +# To enable song information to display, you must enable the NOW PLAYHING plugin in gmusicbrowser. +# Add this to "command for when playing song changed": tee /home/$USER/.config/gmusicbrowser/nowplaying.info +# Change $USER to your actual username. Tick the checkbox for send title/artist/album in standard input. +# You also should go to Preferences > Misc. and tick the checkbox for remember playing position between sessions. +# This allows gmusicbrowser to remember the song it was playing within the playlist upon exit. + +# SETTING + +import subprocess +import os + +playlistDir = '/home/derek/.config/gmusicbrowser/' + +cmd1 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Title=//p' | tr -d '\"'" +process = subprocess.Popen(cmd1, stdout=subprocess.PIPE, shell=True) +songTitle = process.communicate()[0].decode("utf-8").rstrip() + +cmd2 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Artist=//p' | tr -d '\"'" +process = subprocess.Popen(cmd2, stdout=subprocess.PIPE, shell=True) +songArtist = process.communicate()[0].decode("utf-8").rstrip() + +cmd3 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Album=//p' | tr -d '\"'" +process = subprocess.Popen(cmd3, stdout=subprocess.PIPE, shell=True) +songAlbum = process.communicate()[0].decode("utf-8").rstrip() + +cmd4 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Length=//p' | tr -d '\"'" +process = subprocess.Popen(cmd4, stdout=subprocess.PIPE, shell=True) +songLength = process.communicate()[0].decode("utf-8").rstrip() + +cmd5 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Year=//p' | tr -d '\"'" +process = subprocess.Popen(cmd5, stdout=subprocess.PIPE, shell=True) +songYear = process.communicate()[0].decode("utf-8").rstrip() + +cmd6 = "cat /home/derek/.config/gmusicbrowser/*.info | sed -n -e 's/^.*Track=//p' | tr -d '\"'" +process = subprocess.Popen(cmd6, stdout=subprocess.PIPE, shell=True) +songTrack = process.communicate()[0].decode("utf-8").rstrip() + +cmd7 = "ls -l /home/derek/.config/gmusicbrowser/*m3u | wc -l | sed -n '1p'" +process = subprocess.Popen(cmd7, stdout=subprocess.PIPE, shell=True) +playlistNum = process.communicate()[0].decode("utf-8").rstrip() + +# OPENBOX PIPEMENU + +print ('') +print ('') +print ('') +print ('gmusicbrowser -cmd PlayPause') +print ('gmusicbrowser -cmd PlayPause') +print ('') +print ('gmusicbrowser -cmd') +print ('') +print ('') +for filename in os.listdir('/home/derek/.config/gmusicbrowser/'): + plist = "echo "+filename+" | rev | cut -d\"/\" -f1 | rev" + process = subprocess.Popen(plist, stdout=subprocess.PIPE, shell=True) + playlist = process.communicate()[0].decode("utf-8").rstrip() + if playlist.endswith(".m3u"): + print ('gmusicbrowser '+playlistDir+filename+'') +print ('') +print ('') +print ('gmusicbrowser -cmd Play') +print ('gmusicbrowser -cmd Pause') +print ('gmusicbrowser -cmd Stop') +print ('gmusicbrowser -cmd NextSong') +print ('gmusicbrowser -cmd PrevSong') +print ('') +print ('gmusicbrowser -cmd IncVolume') +print ('gmusicbrowser -cmd DecVolume') +print ('') +print ('gmusicbrowser -cmd ShowHide') +print ('gmusicbrowser -cmd Quit') +print ('') diff --git a/.config/openbox/pipemenus/mpcob.sh b/.config/openbox/pipemenus/mpcob.sh new file mode 100755 index 0000000..04ff17d --- /dev/null +++ b/.config/openbox/pipemenus/mpcob.sh @@ -0,0 +1,95 @@ +#!/bin/sh +# mpcob - control mpc in your openbox menu +# 02/03/10 - supulton - vrfeight3@gmail.com +# chmod +x mpcob.sh, and place: +# "" +# somewhere in your menu. + +# replace "urxvtc" with your preferred terminal +set_term=`echo urxvt` + +# gui mpd preference? +set_player=`echo ncmpcpp` + +#set variables +playing=`mpc -f "%track%. %artist% - %title%" | sed -n '1p'` +nowstatus=`mpc | sed -n '2p' | cut -d ' ' -f1` +repeat=`mpc | tail -n 1 | cut -c 15-25` +random=`mpc | tail -n 1 | cut -c 29-39` +single=`mpc | tail -n 1 | cut -c 43-53` +consume=`mpc | tail -n 1 | cut -c 57-` + +# tell when mpc is stopped + +if [ "$nowstatus" != "[Playing]" -a "$nowstatus" != "[Paused]" ] +then +export nowstatus=`echo "[Stopped]"` +fi +if [ "$nowstatus" = "[Stopped]" ] +then +export Playing=`echo Play` +fi + +# convert reserved XML characters '&', '<', '>', '"' for songs containing characters + +if [[ $playing =~ '&' ]] +then +export playing=${playing//\&/\&\;} +fi +if [[ $playing =~ '<' ]] +then +export playing=${playing//\' ]] +then +export playing=${playing//\>/\>\;} +fi +if [[ $playing =~ '"' ]] +then +export playing=${playing//\"/\"\;} +fi +# echo menu +echo "" +echo "" +echo " " +echo " " +echo " mpc toggle" +echo " " +echo " " +echo " " +echo " urxvt -e ncmpcpp" +echo " " +echo " " +echo " " +echo " " +echo " mpc toggle" +echo " " +echo " " +echo " mpc prev" +echo " " +echo " " +echo " mpc next" +echo " " +echo " " +echo " mpc stop" +echo " " +echo " " +echo " " +echo " " +echo " mpc random" +echo " " +echo " " +echo " mpc repeat" +echo " " +echo " " +echo " mpc consume" +echo " " +echo " " +echo " mpc single" +echo " " +echo " " +echo " " +echo " mpc update" +echo " " +echo " " +echo "" diff --git a/.config/openbox/pipemenus/mpd.sh b/.config/openbox/pipemenus/mpd.sh new file mode 100755 index 0000000..b29bee1 --- /dev/null +++ b/.config/openbox/pipemenus/mpd.sh @@ -0,0 +1,68 @@ +#! /bin/bash + +# MPD/MPC by olshrimpeyes +nowplaying=`mpc -f "%track%. %artist% - %title%" | sed -n '1p'` +playing=`mpc | grep playing ` +nowstatus=`mpc | sed -n '2p' | cut -d ' ' -f1` + +echo "" + + + +# +# +# +# pcmanfm -n ~/ +# +# +# + + +if [[ -z $nowplaying ]] + +then + +echo "mpc" + +else + +echo "" +echo "mpc" +echo "mpc" +echo "" +echo "urxvt -e ncmpcpp" +echo "" + +# if [[ -z $playing ]] + +# then + +# echo "mpc" + +# else + +# echo "mpc" + +# fi + +fi + +echo "" + +if [[ -z $playing ]] + +then + +echo "mpc play" + +else + +echo "mpc pause" +echo "mpc stop" + +fi + +echo "mpc next" +echo "mpc prev" +echo "urxvt -e alsamixer" +echo "" diff --git a/.config/openbox/pipemenus/obrecent.sh b/.config/openbox/pipemenus/obrecent.sh new file mode 100755 index 0000000..84fd981 --- /dev/null +++ b/.config/openbox/pipemenus/obrecent.sh @@ -0,0 +1,22 @@ +From Openbox +Jump to: navigation, search + +#!/bin/sh +echo "" +files=$( +cat ~/.local/share/recently-used.xbel | grep file:/// | tail -n15 | cut -d "\"" -f 2 | tac | while read line; +do +file=$(echo "$line") +name=$(echo -en "$file" | sed 's,.*/,,' | sed 's/%20/ /g') +echo " + xdg-open $line + " +done); +echo "$files" +echo "" +echo " + rm ~/.local/share/recently-used.xbel + " +echo "" + + diff --git a/.config/openbox/pipemenus/places-menu.sh b/.config/openbox/pipemenus/places-menu.sh new file mode 100755 index 0000000..faf90c3 --- /dev/null +++ b/.config/openbox/pipemenus/places-menu.sh @@ -0,0 +1,183 @@ +#!/bin/sh +# cb-places-pipemenu - a places openbox pipe menu +# Copyright (C) 2010 John Crawley +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# Version 2012/09/27-cb + + +# Ported to #!++ +# by Ben Young +# Ported to Manjaro +# by Daniel Napora + +# NB The shell, not bash, is invoked in the hope that +# dash will be used, as it is much faster. + +# Usage: add +# +# to your .config/openbox/menu.xml + +# or, if you want the "recent files" menu incorporated at the top, use: +# +# make sure you have mabox-recent-files-pipemenu somewhere, and enter its path below. + +# path to your "recent files" script, if you want to incorporate it: +recent_script=/usr/bin/mabox-recent-files-pipemenu + +# Command to open folders at "Browse here..." - any file manager +open_folder_cmd=pcmanfm +# Default command to open files with - others might be xdg-open, gnome-open, pcmanfm... +default_open_cmd=exo-open # exo-open comes with thunar +# Text editor of choice +text_editor=geany + +# function to open files with default open command, or alternative command for certain files +# - add other conditions to choice +open_file() { + [ -x "$1" ] && exec "$text_editor" "$1" # comment out this line if you don't want to edit executables instead of executing + #[ -x "$1" ] && exec "terminator -e" "$1" # uncomment this and comment out previous line to run executables in terminal instead of editing + [ "${1##*.}" = desktop ] && exec "$text_editor" "$1" # comment out this line if you don't want to edit .desktop files instead of executing + exec "$default_open_cmd" "$1" # use default open command if above conditions not satisfied +} + +# extra dotfiles to display in HOME folder (dotfiles are hidden by default) +# edit the list (space separated, surrounded by single quotes) or comment this line out, to taste: +shown_dotfiles='.config .local' + +# By default, this script will display directories separately, before files. +# To change this behaviour, see NOTE1, NOTE2 and NOTE3 below, near end of page. + +####################################################################### + +case $1 in +# if "--open" option is sent as $1, open file ($2) instead of generating menu +--open) + open_file "$2" + echo "$0 : failed to open $2" >&2 + exit;; # in case exec command fails +# if "--recent" option is sent, incorporate "recent files" menu +--recent) + shift + output=' +' + if [ -x "$recent_script" ] + then + output="$output"' + +' + else + echo "$0 : cannot find executable script $recent_script" >&2 + fi;; +*) + output=' +';; +esac + +path="${1:-$HOME}" # default starting place is ~, otherwise $1 +path="$( echo "${path}"/ | tr -s '/' )" # ensure one final slash +[ -d "$path" ] || { echo "$0 : $path is not a directory" >&2; exit 1; } + +case "$path" in # only escape if string needs it +*\&*|*\<*|*\>*|*\"*|*\'*) pathe=$(sed "s/\&/\&/g;s//\>/g;s/\"/\"/g;s/'/\'/g;" < +output="$output"' + + + + ''"$open_folder_cmd"'' ''"$pathe_apos"'' + + + + +' + +unset extra_entries directories_menu files_menu +[ "$path" = "$HOME"/ ] && extra_entries="$shown_dotfiles" +for i in "$path"* $extra_entries +do + [ -e "$i" ] || continue # only output code if file exists + shortname="${i##*/}" + case $shortname in + *\&*|*\<*|*\>*|*\"*|*\'*) shortnamee=$(sed "s/\&/\&/g;s//\>/g;s/\"/\"/g;s/'/\'/g;" <'; continue; } + files_menu="$files_menu"' + + + + ''"$0"'' --open ''"${pathe_apos}${shortnamee_apos}"'' + + +' +done + +[ -n "$directories_menu" ] && { +# NOTE2 comment out next 2 lines if you don't want "Directories" label +# output="${output}"' +# ' +# output="${output}"' +# ' +output="${output}${directories_menu}"' +'; } +# [ -n "$files_menu" ] && { +# NOTE3 comment out next 2 lines if you don't want "Files" label +# output="${output}"' +# ' +# output="${output}"' +# ' +# output="${output}${files_menu}"' +#'; } +output="${output}"' +' +printf '%s' "$output" +exit diff --git a/.config/openbox/pipemenus/shell-color-scripts.sh b/.config/openbox/pipemenus/shell-color-scripts.sh new file mode 100755 index 0000000..6cc2c13 --- /dev/null +++ b/.config/openbox/pipemenus/shell-color-scripts.sh @@ -0,0 +1,97 @@ +#! /bin/bash +# +# SHELL-COLOR-SCRIPTS by Derek Taylor (DistroTube) +# A simple script that creates an openbox pipemenu that runs shell-color-scripts +# (https://github.com/dwt1/shell-color-scripts) in a terminal window. +# +# shell-color-scripts was forked from Color-Scripts (https://github.com/stark/Color-Scripts) +# +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses +# +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# +# Reconfigure openbox. + + +# output the initial menu +# NOTE: If you do not use the "termite" terminal program or the "ranger" file manager, edit the below. +cat < + + + + termite -e 'ranger ~/color-scripts' + + + +EOF + + +# seperate the main command from the virtuals +echo " " + +echo " " +# each color script listed in the menu +for file in $(ls ~/shell-color-scripts/* | head -15); do +NAME=$(echo "$file" | rev | cut -d"/" -f1 | rev) +echo " " +# NOTE: If you do not use the "termite" terminal program, then change "termite" to your preferred terminal (ex. xterm, urxvt, etc.) +echo "termite -e '$file' -t '$file'" +# NOTE: If you do not use the "vim" text editor, then change "vim" to your preferred editor (ex. nano, geany, etc.) +echo "termite -e 'vim $file'" +echo " " +done +echo " " + +echo " " +# each color script listed in the menu +for file in $(ls ~/shell-color-scripts/* | tail -37 | head -15); do +NAME=$(echo "$file" | rev | cut -d"/" -f1 | rev) +echo " " +# NOTE: If you do not use the "termite" terminal program, then change "termite" to your preferred terminal (ex. xterm, urxvt, etc.) +echo "termite -e '$file' -t '$file'" +# NOTE: If you do not use the "vim" text editor, then change "vim" to your preferred editor (ex. nano, geany, etc.) +echo "termite -e 'vim $file'" +echo " " +done +echo " " + +echo " " +# each color script listed in the menu +for file in $(ls ~/shell-color-scripts/* | tail -22 | head -15); do +NAME=$(echo "$file" | rev | cut -d"/" -f1 | rev) +echo " " +# NOTE: If you do not use the "termite" terminal program, then change "termite" to your preferred terminal (ex. xterm, urxvt, etc.) +echo "termite -e '$file' -t '$file'" +# NOTE: If you do not use the "vim" text editor, then change "vim" to your preferred editor (ex. nano, geany, etc.) +echo "termite -e 'vim $file'" +echo " " +done +echo " " + +echo " " +# each color script listed in the menu +for file in $(ls ~/shell-color-scripts/* | tail -7 | head -15); do +NAME=$(echo "$file" | rev | cut -d"/" -f1 | rev) +echo " " +# NOTE: If you do not use the "termite" terminal program, then change "termite" to your preferred terminal (ex. xterm, urxvt, etc.) +echo "termite -e '$file' -t '$file'" +# NOTE: If you do not use the "vim" text editor, then change "vim" to your preferred editor (ex. nano, geany, etc.) +echo "termite -e 'vim $file'" +echo " " +done +echo " " + +# and finally... +echo "" + diff --git a/.config/openbox/pipemenus/steam.sh b/.config/openbox/pipemenus/steam.sh new file mode 100755 index 0000000..b9d0d32 --- /dev/null +++ b/.config/openbox/pipemenus/steam.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# +# STEAM by Derek Taylor (DistroTube) +# A simple script that creates an openbox pipemenu that launches Steam games. +# +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses +# +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# +# Reconfigure openbox. + +STEAMAPPS=~/.steam/steam/steamapps +echo '' +echo 'steam' +echo '' +for file in $(ls $STEAMAPPS/*.acf -1v); do +ID=$(cat "$file" | grep '"appID"' | head -1 | sed -r 's/[^"]*"appID"[^"]*"([^"]*)"/\1/') +NAME=$(cat "$file" | grep '"name"' | head -1 | sed -r 's/[^"]*"name"[^"]*"([^"]*)"/\1/') +echo "steam steam://run/$ID" +done +echo '' diff --git a/.config/openbox/pipemenus/sysinfo.py b/.config/openbox/pipemenus/sysinfo.py new file mode 100755 index 0000000..abb5fe5 --- /dev/null +++ b/.config/openbox/pipemenus/sysinfo.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +# +# SYSTEMINFO by Derek Taylor (DistroTube) +# A simple script that creates an openbox pipemenu that displays system information. +# My root partition is on /dev/sda1 and my swap is /dev/sda5. Edit these is your partitioning is different. +# +# This program is free software: you can redistribute it and/or modify it under the terms of +# the GNU General Public License version 3 as published by the Free Software Foundation. +# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see: http://www.gnu.org/licenses +# +# Copy this file somewhere on your path and make it executable. +# Add the following line somewhere to your /.config/openbox/menu.xml +# +# Be sure to change the PATH/TO to the correct path to this file. +# +# Reconfigure openbox. +# +# REQUIRES net-tools (for ifconfig) to be installed on your computer. + +# SETTINGS + +import subprocess + +# SETTINGS - SYSTEM + +syst1 = "whoami" +process = subprocess.Popen(syst1, stdout=subprocess.PIPE, shell=True) +user = process.communicate()[0].decode("utf-8").rstrip() + +syst2 = "uname -n" +process = subprocess.Popen(syst2, stdout=subprocess.PIPE, shell=True) +host = process.communicate()[0].decode("utf-8").rstrip() + +syst3 = "uname -s" +process = subprocess.Popen(syst3, stdout=subprocess.PIPE, shell=True) +system = process.communicate()[0].decode("utf-8").rstrip() + +syst4 = "uname -r" +process = subprocess.Popen(syst4, stdout=subprocess.PIPE, shell=True) +release = process.communicate()[0].decode("utf-8").rstrip() + +syst5 = "uname -m" +process = subprocess.Popen(syst5, stdout=subprocess.PIPE, shell=True) +arch = process.communicate()[0].decode("utf-8").rstrip() + +syst6 = "uptime | sed 's/.* up //' | sed 's/[0-9]* us.*//' | sed 's/ day, / day /' | sed 's/ days, / days /' | sed 's/:/ hours /' | sed 's/ min//'| sed 's/,/ min/' | sed 's/ / /'" +process = subprocess.Popen(syst6, stdout=subprocess.PIPE, shell=True) +uptime = process.communicate()[0].decode("utf-8").rstrip() + +# SETTINGS - CPU + +cpu1 = "cat /proc/cpuinfo | grep 'model name' | sed 's/.*: //' | sed -n '1p'" +process = subprocess.Popen(cpu1, stdout=subprocess.PIPE, shell=True) +CPUmodel = process.communicate()[0].decode("utf-8").rstrip() + +cpu2 = "cat /proc/cpuinfo | grep -m 1 'cpu MHz' | sed 's/.*: //'" +process = subprocess.Popen(cpu2, stdout=subprocess.PIPE, shell=True) +CPUfreq = process.communicate()[0].decode("utf-8").rstrip() + +cpu3 = "cat /proc/cpuinfo | grep -m 1 'cache size' | sed 's/.*: //'" +process = subprocess.Popen(cpu3, stdout=subprocess.PIPE, shell=True) +CPUcache = process.communicate()[0].decode("utf-8").rstrip() + +# SETTINGS - MEM + +mem1 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep MemTotal: | awk '{print $2}' | sed 's/k//')' /1024)' | bc" +process = subprocess.Popen(mem1, stdout=subprocess.PIPE, shell=True) +memTotal = process.communicate()[0].decode("utf-8").rstrip() + +mem2 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep MemFree: | awk '{print $2}' | sed 's/k//')' /1024) + ('$(cat /proc/meminfo | grep grep -m 1 Cached: | awk '{print $2}' | sed 's/k//')' /1024)' | bc" +process = subprocess.Popen(mem2, stdout=subprocess.PIPE, shell=True) +memFree = process.communicate()[0].decode("utf-8").rstrip() + +mem3 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep MemTotal: | awk '{print $2}' | sed 's/k//')' /1024) - (('$(cat /proc/meminfo | grep MemFree: | awk '{print $2}' | sed 's/k//')' /1024) + ('$(cat /proc/meminfo | grep -m 1 Cached: | awk '{print $2}' | sed 's/k//')' /1024))' | bc" +process = subprocess.Popen(mem3, stdout=subprocess.PIPE, shell=True) +memUsed = process.communicate()[0].decode("utf-8").rstrip() + +mem4 = "echo 'scale = 2; (('$(cat /proc/meminfo | grep MemTotal: | awk '{print $2}' | sed 's/k//')' /1024) - (('$(cat /proc/meminfo | grep MemFree: | awk '{print $2}' | sed 's/k//')' /1024) + ('$(cat /proc/meminfo | grep -m 1 Cached: | awk '{print $2}' | sed 's/k//')' /1024))) / ('$(cat /proc/meminfo | grep MemTotal: | awk '{print $2}' | sed 's/k//')' /1024) *100' | bc" +process = subprocess.Popen(mem4, stdout=subprocess.PIPE, shell=True) +memUsedPercent = process.communicate()[0].decode("utf-8").rstrip() + +# SETTINGS - DISKS + +disk1 = "df -HlT | grep /dev/sda1 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 1" +process = subprocess.Popen(disk1, stdout=subprocess.PIPE, shell=True) +rootPart = process.communicate()[0].decode("utf-8").rstrip() + +disk2 = "df -HlT | grep /dev/sda1 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 2" +process = subprocess.Popen(disk2, stdout=subprocess.PIPE, shell=True) +fileSys = process.communicate()[0].decode("utf-8").rstrip() + +disk3 = "df -HlT | grep /dev/sda1 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 3" +process = subprocess.Popen(disk3, stdout=subprocess.PIPE, shell=True) +diskTotal = process.communicate()[0].decode("utf-8").rstrip() + +disk4 = "df -HlT | grep /dev/sda1 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 4" +process = subprocess.Popen(disk4, stdout=subprocess.PIPE, shell=True) +diskUsed = process.communicate()[0].decode("utf-8").rstrip() + +disk5 = "df -HlT | grep /dev/sda1 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 5" +process = subprocess.Popen(disk5, stdout=subprocess.PIPE, shell=True) +diskFree = process.communicate()[0].decode("utf-8").rstrip() + +# SETTINGS - SWAP + +swap1 = "cat /proc/swaps | grep /dev/sda5 | sed -r 's/ / /g' | sed -r 's/ / /g' | cut -d ' ' -f 1" +process = subprocess.Popen(swap1, stdout=subprocess.PIPE, shell=True) +swapPart = process.communicate()[0].decode("utf-8").rstrip() + +swap2 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep SwapTotal: | awk '{print $2}' | sed 's/k//')' /1024)' | bc" +process = subprocess.Popen(swap2, stdout=subprocess.PIPE, shell=True) +swapTotal = process.communicate()[0].decode("utf-8").rstrip() + +swap3 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep SwapFree: | awk '{print $2}' | sed 's/k//')' /1024)' | bc" +process = subprocess.Popen(swap3, stdout=subprocess.PIPE, shell=True) +swapFree = process.communicate()[0].decode("utf-8").rstrip() + +swap4 = "echo 'scale = 2; ('$(cat /proc/meminfo | grep SwapTotal: | awk '{print $2}' | sed 's/k//')' /1024) - ('$(cat /proc/meminfo | grep SwapFree: | awk '{print $2}' | sed 's/k//')' /1024)' | bc" +process = subprocess.Popen(swap4, stdout=subprocess.PIPE, shell=True) +swapUsed = process.communicate()[0].decode("utf-8").rstrip() + +swap5 = "echo 'scale = 2; (('$(cat /proc/meminfo | grep SwapTotal: | awk '{print $2}' | sed 's/k//')' /1024) - ('$(cat /proc/meminfo | grep SwapFree: | awk '{print $2}' | sed 's/k//')' /1024)) / ('$(cat /proc/meminfo | grep SwapTotal: | awk '{print $2}' | sed 's/k//')' /1024) *100' | bc" +process = subprocess.Popen(swap5, stdout=subprocess.PIPE, shell=True) +swapUsedPercent = process.communicate()[0].decode("utf-8").rstrip() + +# SETTINGS - NET + +net1 = "/sbin/ifconfig 'enp3s0' | grep 'inet ' | sed 's/.*inet //' | sed 's/netmask.*//'" +process = subprocess.Popen(net1, stdout=subprocess.PIPE, shell=True) +netIP = process.communicate()[0].decode("utf-8").rstrip() + +net2 = "/sbin/ifconfig 'enp3s0' | grep 'RX packets' | sed 's/.*bytes [0-9]* (//' | sed 's/iB).*)*//' | sed 's/b).*)*//' | sed 's/).*)*//'" +process = subprocess.Popen(net2, stdout=subprocess.PIPE, shell=True) +netDown = process.communicate()[0].decode("utf-8").rstrip() + +net3 = "/sbin/ifconfig 'enp3s0' | grep 'TX packets' | sed 's/.*bytes [0-9]* (//' | sed 's/iB).*)*//' | sed 's/b).*)*//' | sed 's/).*)*//'" +process = subprocess.Popen(net3, stdout=subprocess.PIPE, shell=True) +netUp = process.communicate()[0].decode("utf-8").rstrip() + +# OPENBOX PIPEMENU + +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') +print ('') diff --git a/.config/openbox/pipemenus/virtualbox.sh b/.config/openbox/pipemenus/virtualbox.sh new file mode 100755 index 0000000..f85ccb3 --- /dev/null +++ b/.config/openbox/pipemenus/virtualbox.sh @@ -0,0 +1,82 @@ +#!/bin/sh +# +# Copyright (C) 2009-2013 "isomorph" +# All Rights Reserved. +# +# BSD 3-Clause License +# +# ---- +# +# OpenBox "VirtualBox" pipe-menu +# Outputs a menu roughly akin to: +# +# VirtualBox +# ---------- +# +# +# +# ... +# +# Usage: +# +# 1. Copy this file somewhere on your path and make it executable +# 2. Add the following line somewhere to your /.config/openbox/menu.xml +# +# +# +# 3. Reconfigure openbox + + +# make sure virtualbox itself exists +which "virtualbox" > /dev/null +if [ "$?" -ne "0" ]; then + cat < + + + + x-www-browser https://www.virtualbox.org/wiki/Linux_Downloads + + +EOF + exit 1 +fi + +# output the initial menu +cat < + + + + virtualbox -style gtk + + + +EOF + +# Check for the vboxmanage binary +which "vboxmanage" > /dev/null +if [ "$?" -ne "0" ]; then + echo "" + exit 0 +fi + +# seperate the main command from the virtuals +echo " " + +# output the list of virtual machines +vboxmanage list vms | cut -f 2 -d "\"" | sort -f | while read vm +do + cat < + + + vboxmanage startvm "$vm" + + + +EOF +done; + +# and finally... +echo "" diff --git a/.config/openbox/rc.xml b/.config/openbox/rc.xml new file mode 100644 index 0000000..bd39053 --- /dev/null +++ b/.config/openbox/rc.xml @@ -0,0 +1,1090 @@ + + + + + 10 + 20 + + + yes + + no + + yes + + no + + 200 + + no + + + + Smart + +
yes
+ + Primary + + 1 + +
+ + Mabox-superdesk + CSIML + + yes + yes + + sans + 8 + + bold + + normal + + + + sans + 8 + + bold + + normal + + + + Sans + 8 + + Bold + + Normal + + + + Sans + 8 + + Bold + + Normal + + + + sans + 9 + + bold + + normal + + + + sans + 9 + + bold + + normal + + + + + + 4 + 1 + + + + 875 + + + + yes + Nonpixel + + Center + + + + 10 + + 10 + + + + + + 0 + 0 + 0 + 0 + + + TopLeft + + 0 + 0 + no + Above + + Vertical + + no + 300 + + 300 + + Middle + + + + C-g + + + + left + no + + + + + right + no + + + + + up + no + + + + + down + no + + + + + left + no + + + + + right + no + + + + + up + no + + + + + down + no + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + + + + + + 0 + 0 + 50% + 50% + + + + + + 25% + 0 + 50% + 50% + + + + + + 50% + 0 + 50% + 50% + + + + + + 0 + 25% + 50% + 50% + + + + + + 50% + 25% + 50% + 50% + + + + + + 0 + 50% + 50% + 50% + + + + + + 25% + 50% + 50% + 50% + + + + + + 50% + 50% + 50% + 50% + + + + + + center + center + 95% + 95% + + + + + + 0% + 0% + 33% + 33% + + + + + + 33% + 0% + 34% + 33% + + + + + + 67% + 0% + 33% + 33% + + + + + + 0% + 33% + 33% + 34% + + + + + + 33% + 33% + 34% + 34% + + + + + + 67% + 33% + 33% + 34% + + + + + + 0% + 67% + 33% + 33% + + + + + + 33% + 67% + 34% + 33% + + + + + + 67% + 67% + 33% + 33% + + + + + + + + + + + + + + + + + + + + + + + 100% + 50% + 0 + 0 + + + + + + + 100% + 50% + 0 + -0 + + + + + + + 50% + 0 + 0 + + + + + + + 50% + -0 + 0 + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + yes + yes + + + + + + + + + + + right + + + + + left + + + + + up + + + + + down + + + + + + + true + Termite + + termite + + + + + + root-menu + + + + + + true + Rofi + + rofi -show run + + + + + + + true + Firefox + + firefox + + + + + + true + PCManFM + + pcmanfm + + + + + + true + xkill + + xkill + + + + + + true + pavucontrol + + pavucontrol + + + + + + true + i3lock + + i3lock -c 48D884 + + + + + + + true + Oblogout + + oblogout + + + + + 1 + + 500 + + 400 + + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + + + + + no + + + + + + + + + + + yes + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + top + + + + + + + left + + + + + + + right + + + + + + + bottom + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + client-menu + + + + + + + client-menu + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + vertical + + + + + horizontal + + + + + + + + + + + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + + + + + + + + + client-list-combined-menu + + + + + root-menu + + + + + + + previous + + + + + next + + + + + previous + + + + + next + + + + + + + + menu.xml + 200 + + no + + 100 + + 400 + + yes + + yes + + + + + +
diff --git a/.config/polybar/config b/.config/polybar/config new file mode 100644 index 0000000..ca76ff9 --- /dev/null +++ b/.config/polybar/config @@ -0,0 +1,1514 @@ +# ____ _____ +# | _ \_ _| Derek Taylor (DistroTube) +# | | | || | http://www.youtube.com/c/DistroTube +# | |_| || | http://www.gitlab.com/dwt1/ +# |____/ |_| +# + +;===================================================== +; +; To learn more about how to configure Polybar +; go to https://github.com/jaagr/polybar +; +; The README contains alot of information +; Themes : https://github.com/jaagr/dots/tree/master/.local/etc/themer/themes +; https://github.com/jaagr/polybar/wiki/ +; https://github.com/jaagr/polybar/wiki/Configuration +; https://github.com/jaagr/polybar/wiki/Formatting +; +;===================================================== + +[global/wm] +;https://github.com/jaagr/polybar/wiki/Configuration#global-wm-settings +margin-top = 0 +margin-bottom = 0 + +[settings] +;https://github.com/jaagr/polybar/wiki/Configuration#application-settings +throttle-output = 5 +throttle-output-for = 10 +throttle-input-for = 30 +screenchange-reload = true +compositing-background = over +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +; Define fallback values used by all module formats +format-foreground = #FF0000 +format-background = #00FF00 +format-underline = +format-overline = +format-spacing = +format-padding = +format-margin = +format-offset = + +[colors] +; Nord theme ============ +background = #1D2330 +foreground = #c0c5ce +alert = #bd2c40 +volume-min = #a3be8c +volume-med = #ebcb8b +volume-max = #bf616a +; ======================= + +; Gotham theme ========== +; background = #0a0f14 +; foreground = #99d1ce +; alert = #d26937 +; volume-min = #2aa889 +; volume-med = #edb443 +; volume-max = #c23127 +; ======================= + +; INTRCPTR theme ============ +;background = ${xrdb:color0:#222} +;background = #aa000000 +;background-alt = #444 +;foreground = ${xrdb:color7:#222} +;foreground = #fff +;foreground-alt = #555 +;primary = #ffb52a +;secondary = #e60053 +;alert = #bd2c40 + +################################################################################ +################################################################################ +############ MAINBAR-I3 ############ +################################################################################ +################################################################################ + +[bar/mainbar-i3] +;https://github.com/jaagr/polybar/wiki/Configuration + +monitor = ${env:MONITOR} +;monitor-fallback = HDMI1 +monitor-strict = false +override-redirect = false +bottom = false +fixed-center = true +width = 100% +height = 20 +;offset-x = 1% +;offset-y = 1% + +background = ${colors.background} +foreground = ${colors.foreground} + +; Background gradient (vertical steps) +; background-[0-9]+ = #aarrggbb +;background-0 = + +radius = 0.0 +line-size = 2 +line-color = #000000 + +border-size = 0 +;border-left-size = 25 +;border-right-size = 25 +;border-top-size = 0 +;border-bottom-size = 25 +border-color = #000000 + +padding-left = 1 +padding-right = 1 + +module-margin-left = 0 +module-margin-right = 0 + +;https://github.com/jaagr/polybar/wiki/Fonts +font-0 = "UbuntuMono Nerd Font:size=10;2" +font-1 = "UbuntuMono Nerd Font:size=16;3" +font-2 = "Font Awesome 5 Free:style=Regular:pixelsize=8;1" +font-3 = "Font Awesome 5 Free:style=Solid:pixelsize=8;1" +font-4 = "Font Awesome 5 Brands:pixelsize=8;1" + +modules-left = i3 xwindow +modules-center = +modules-right = arrow1 networkspeedup networkspeeddown arrow2 memory2 arrow3 cpu2 arrow4 pavolume arrow5 arch-aur-updates arrow6 date + +separator = + +;dim-value = 1.0 + +tray-position = right +tray-detached = false +tray-maxsize = 20 +tray-background = ${colors.background} +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 4 +tray-scale = 1.0 + +#i3: Make the bar appear below windows +;wm-restack = i3 +;override-redirect = true + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +; Fallback click handlers that will be called if +; there's no matching module handler found. +click-left = +click-middle = +click-right = +scroll-up = i3wm-wsnext +scroll-down = i3wm-wsprev +double-click-left = +double-click-middle = +double-click-right = + +; Requires polybar to be built with xcursor support (xcb-util-cursor) +; Possible values are: +; - default : The default pointer as before, can also be an empty string (default) +; - pointer : Typically in the form of a hand +; - ns-resize : Up and down arrows, can be used to indicate scrolling +cursor-click = +cursor-scroll = + +################################################################################ +################################################################################ +############ MAINBAR-OPENBOX ############ +################################################################################ +################################################################################ + +[bar/mainbar-openbox] +monitor = ${env:MONITOR} +;monitor-fallback = HDMI1 +width = 100% +height = 30 +;offset-x = 1% +;offset-y = 1% +radius = 0.0 +fixed-center = true +bottom = false +separator = | + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2 +line-color = #f00 + +;border-size = 2 +;border-left-size = 25 +;border-right-size = 25 +;border-top-size = 0 +;border-bottom-size = 25 +;border-color = #00000000 + +padding-left = 1 +padding-right = 1 + +module-margin-left = 3 +module-margin-right = 3 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +;https://github.com/jaagr/polybar/wiki/Fonts +font-0 = "Noto Sans:size=10;0" +font-1 = "Font Awesome 5 Free:size=10;0" +font-2 = "Font Awesome 5 Free Solid:size=10;0" +font-3 = "Font Awesome 5 Brands:size=10;0" + +modules-left = ewmh xwindow +modules-center = release kernel +modules-right = memory1 cpu1 date + +tray-detached = false +tray-offset-x = 0 +tray-offset-y = 0 +tray-position = right +tray-padding = 2 +tray-maxsize = 20 +tray-scale = 1.0 +tray-background = ${colors.background} + + + +################################################################################ +################################################################################ +############ MAINBAR-OPENBOX-EXTRA ############ +################################################################################ +################################################################################ + +[bar/mainbar-openbox-extra] +monitor = ${env:MONITOR} +;monitor-fallback = HDMI1 +width = 100% +height = 30 +;offset-x = 1% +;offset-y = 1% +radius = 0.0 +fixed-center = true +bottom = true +separator = | + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2 +line-color = #f00 + +;border-size = 2 +;border-left-size = 25 +;border-right-size = 25 +;border-top-size = 0 +;border-bottom-size = 25 +;border-color = #00000000 + +padding-left = 1 +padding-right = 1 + +module-margin-left = 3 +module-margin-right = 3 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +;https://github.com/jaagr/polybar/wiki/Fonts +font-0 = "Noto Sans:size=10;0" +font-1 = "FontAwesome:size=10;0" +font-2 = "Noto Sans:size=10;0" +font-3 = "Noto Sans Mono:size=10;0" + +modules-left = spotify1 +modules-center = networkspeedup networkspeeddown +modules-right = filesystem + +tray-detached = false +tray-offset-x = 0 +tray-offset-y = 0 +tray-position = right +tray-padding = 2 +tray-maxsize = 20 +tray-scale = 1.0 +tray-background = ${colors.background} + + +################################################################################ +################################################################################ +############ MAINBAR-BSPWM ############ +################################################################################ +################################################################################ + +[bar/mainbar-bspwm] +monitor = ${env:MONITOR} +;monitor-fallback = HDMI1 +width = 100% +height = 30 +;offset-x = 1% +;offset-y = 1% +radius = 0.0 +fixed-center = true +bottom = false +separator = | + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2 +line-color = #f00 + +wm-restack = bspwm +override-redirect = true + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +border-size = 0 +;border-left-size = 0 +;border-right-size = 25 +;border-top-size = 0 +;border-bottom-size = 25 +border-color = #00000000 + +padding-left = 0 +padding-right = 1 + +module-margin-left = 3 +module-margin-right = 3 + +;https://github.com/jaagr/polybar/wiki/Fonts +font-0 = "Noto Sans:size=10;0" +font-1 = "FontAwesome:size=13;0" +font-2 = "Noto Sans:size=10;0" +font-3 = "Noto Sans Mono:size=10;0" + +modules-left = bspwm xwindow +modules-center = kernel +modules-right = pavolume memory2 cpu2 date + +tray-detached = false +tray-offset-x = 0 +tray-offset-y = 0 +tray-position = right +tray-padding = 2 +tray-maxsize = 20 +tray-scale = 1.0 +tray-background = #2e3440 + +scroll-up = bspwm-desknext +scroll-down = bspwm-deskprev + + +################################################################################ +################################################################################ +############ MAINBAR-XMONAD ############ +################################################################################ +################################################################################ + +[bar/mainbar-xmonad] +monitor = ${env:MONITOR} +;monitor-fallback = HDMI1 +monitor-strict = false +override-redirect = false +width = 100% +height = 30 +;offset-x = 1% +;offset-y = 1% +radius = 0.0 +fixed-center = true +bottom = false +separator = | + +background = ${colors.background} +foreground = ${colors.foreground} + +line-size = 2 +line-color = #f00 + +;border-size = 2 +;border-left-size = 25 +;border-right-size = 25 +;border-top-size = 0 +;border-bottom-size = 25 +border-color = #00000000 + +padding-left = 0 +padding-right = 1 + +module-margin-left = 3 +module-margin-right = 3 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +;https://github.com/jaagr/polybar/wiki/Fonts +font-0 = "Noto Sans:size=10;0" +font-1 = "FontAwesome:size=13;0" +font-2 = "Noto Sans:size=10;0" +font-3 = "Noto Sans Mono:size=10;0" + +modules-left = ewmh +modules-center = kernel +modules-right = pavolume memory2 cpu2 date + +tray-detached = false +tray-offset-x = 0 +tray-offset-y = 0 +tray-position = right +tray-padding = 2 +tray-maxsize = 20 +tray-scale = 1.0 +tray-background = ${colors.background} + + +################################################################################ +################################################################################ +############ MODULE I3 ############ +################################################################################ +################################################################################ + +[module/i3] +;https://github.com/jaagr/polybar/wiki/Module:-i3 +type = internal/i3 + +; Only show workspaces defined on the same output as the bar +; +; Useful if you want to show monitor specific workspaces +; on different bars +; +; Default: false +pin-workspaces = true + +; This will split the workspace name on ':' +; Default: false +strip-wsnumbers = false + +; Sort the workspaces by index instead of the default +; sorting that groups the workspaces by output +; Default: false +index-sort = false + +; Create click handler used to focus workspace +; Default: true +enable-click = true + +; Create scroll handlers used to cycle workspaces +; Default: true +enable-scroll = true + +; Wrap around when reaching the first/last workspace +; Default: true +wrapping-scroll = false + +; Set the scroll cycle direction +; Default: true +reverse-scroll = false + +; Use fuzzy (partial) matching on labels when assigning +; icons to workspaces +; Example: code;♚ will apply the icon to all workspaces +; containing 'code' in the label +; Default: false +fuzzy-match = false + +;extra icons to choose from +;http://fontawesome.io/cheatsheet/ +;       v     + +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +ws-icon-8 = 9; +ws-icon-9 = 10; +ws-icon-default = " " + +; Available tags: +; (default) - gets replaced with +; (default) +format = + +label-mode = %mode% +label-mode-padding = 2 +label-mode-foreground = #000000 +label-mode-background = #FFBB00 + +; Available tokens: +; %name% +; %icon% +; %index% +; %output% +; Default: %icon% %name% +; focused = Active workspace on focused monitor +label-focused = %icon% %name% +label-focused-background = ${colors.background} +label-focused-foreground = ${colors.foreground} +label-focused-underline = #AD69AF +label-focused-padding = 2 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +; unfocused = Inactive workspace on any monitor +label-unfocused = %icon% %name% +label-unfocused-padding = 2 +label-unfocused-background = ${colors.background} +label-unfocused-foreground = ${colors.foreground} +label-unfocused-underline = + +; visible = Active workspace on unfocused monitor +label-visible = %icon% %name% +label-visible-background = ${self.label-focused-background} +label-visible-underline = ${self.label-focused-underline} +label-visible-padding = 2 + +; Available tokens: +; %name% +; %icon% +; %index% +; Default: %icon% %name% +; urgent = Workspace with urgency hint set +label-urgent = %icon% %name% +label-urgent-background = ${self.label-focused-background} +label-urgent-foreground = #db104e +label-urgent-padding = 2 + +format-foreground = ${colors.foreground} +format-background = ${colors.background} + +################################################################################ +################################################################################ +############ MODULE BSPWM ############ +################################################################################ +################################################################################ + +[module/bspwm] +type = internal/bspwm + +enable-click = true +enable-scroll = true +reverse-scroll = true +pin-workspaces = true + +ws-icon-0 = 1; +ws-icon-1 = 2; +ws-icon-2 = 3; +ws-icon-3 = 4; +ws-icon-4 = 5; +ws-icon-5 = 6; +ws-icon-6 = 7; +ws-icon-7 = 8; +;ws-icon-8 = 9; +;ws-icon-9 = 10; +;ws-icon-default = " " + + +format = + +label-focused = %icon% +label-focused-background = ${colors.background} +label-focused-underline= #6790eb +label-focused-padding = 4 +label-focused-foreground = ${colors.foreground} + +label-occupied = %icon% +label-occupied-padding = 2 +label-occupied-background = ${colors.background} + +label-urgent = %icon% +label-urgent-padding = 2 + +label-empty = %icon% +label-empty-foreground = ${colors.foreground} +label-empty-padding = 2 +label-empty-background = ${colors.background} +label-monocle = "  " +label-monocle-foreground = ${colors.foreground} +label-tiled = "  " +label-tiled-foreground = ${colors.foreground} +label-fullscreen = "  " +label-fullscreen-foreground = ${colors.foreground} +label-floating = "  " +label-floating-foreground = ${colors.foreground} +label-pseudotiled = "  " +label-pseudotiled-foreground = ${colors.foreground} +label-locked = "  " +label-locked-foreground = ${colors.foreground} +label-sticky = "  " +label-sticky-foreground = ${colors.foreground} +label-private = "  " +label-private-foreground = ${colors.foreground} + +; Separator in between workspaces +;label-separator = | +;label-separator-padding = 10 +;label-separator-foreground = #ffb52a + +format-foreground = ${colors.foreground} +format-background = ${colors.background} + + + + +################################################################################ +############################################################################### +############ MODULES ARROWS ############ +################################################################################ +################################################################################ + + +[module/arrow1] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #84598D +content-background = #1D2330 + +[module/arrow2] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #4B5665 +content-background = #84598D + +[module/arrow3] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #92969D +content-background = #4B5665 + +[module/arrow4] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #645377 +content-background = #92969D + +[module/arrow5] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #AD69AF +content-background = #645377 + +[module/arrow6] +; grey to Blue +type = custom/text +content = "%{T2} %{T-}" +content-font = 2 +content-foreground = #1D2330 +content-background = #AD69AF + + + +################################################################################ +############################################################################### +############ MODULES A-Z ############ +################################################################################ +################################################################################ + +[module/arch-aur-updates] +type = custom/script +exec = ~/.config/polybar/scripts/check-all-updates.sh +interval = 1000 +label = Updates: %output% +format-foreground = #ededed +format-background = #AD69AF +format-prefix = "  " +format-prefix-foreground = #d7d7d7 + + +[module/aur-updates] +type = custom/script +exec = cower -u | wc -l +interval = 1000 +label = Aur: %output% +format-foreground = ${colors.foreground} +format-background = ${colors.background} +format-prefix = "  " +format-prefix-foreground = #FFBB00 +format-underline = #FFBB00 + +################################################################################ + +[module/backlight-acpi] +inherit = module/xbacklight +type = internal/backlight +card = intel_backlight +format-foreground = ${colors.foreground} +format-background = ${colors.background} +format-prefix-foreground = #7D49B6 +format-prefix-underline = #7D49B6 +format-underline = #7D49B6 +################################################################################ + +[module/backlight] +;https://github.com/jaagr/polybar/wiki/Module:-backlight + +type = internal/backlight + +; Use the following command to list available cards: +; $ ls -1 /sys/class/backlight/ +card = intel_backlight + +; Available tags: +;