├── .Xresources ├── .cache └── squash │ ├── colors │ ├── colors.css │ └── x_colors ├── .compton.conf ├── .config ├── awesome │ ├── README.md │ ├── blue │ │ ├── alias-config.lua │ │ ├── autostart-config.lua │ │ ├── desktop-config.lua │ │ ├── edges-config.lua │ │ ├── env-config.lua │ │ ├── ercheck-config.lua │ │ ├── keys-config.lua │ │ ├── layout-config.lua │ │ ├── menu-config.lua │ │ ├── rules-config.lua │ │ ├── signals-config.lua │ │ └── titlebar-config.lua │ ├── colorless │ │ ├── env-config.lua │ │ ├── ercheck-config.lua │ │ ├── keys-config.lua │ │ ├── layout-config.lua │ │ ├── menu-config.lua │ │ ├── rules-config.lua │ │ ├── signals-config.lua │ │ └── titlebar-config.lua │ ├── green │ │ ├── autostart-config.lua │ │ ├── desktop-config.lua │ │ ├── edges-config.lua │ │ ├── env-config.lua │ │ ├── ercheck-config.lua │ │ ├── keys-config.lua │ │ ├── layout-config.lua │ │ ├── menu-config.lua │ │ ├── rules-config.lua │ │ ├── signals-config.lua │ │ └── titlebar-config.lua │ ├── orange │ │ ├── alias-config.lua │ │ ├── autostart-config.lua │ │ ├── desktop-config.lua │ │ ├── edges-config.lua │ │ ├── env-config.lua │ │ ├── ercheck-config.lua │ │ ├── keys-config.lua │ │ ├── layout-config.lua │ │ ├── menu-config.lua │ │ ├── rules-config.lua │ │ ├── signals-config.lua │ │ └── titlebar-config.lua │ ├── rc-blue.lua │ ├── rc-colorless.lua │ ├── rc-green.lua │ ├── rc-orange.lua │ ├── rc-red.lua │ ├── rc.lua │ ├── red │ │ ├── autostart-config.lua │ │ ├── desktop-config.lua │ │ ├── edges-config.lua │ │ ├── env-config.lua │ │ ├── ercheck-config.lua │ │ ├── keys-config.lua │ │ ├── layout-config.lua │ │ ├── menu-config.lua │ │ ├── rules-config.lua │ │ ├── signals-config.lua │ │ └── titlebar-config.lua │ ├── redflat │ │ ├── desktop │ │ │ ├── common │ │ │ │ ├── barpack.lua │ │ │ │ ├── barvalue.lua │ │ │ │ ├── chart.lua │ │ │ │ ├── cornerpack.lua │ │ │ │ ├── corners.lua │ │ │ │ ├── dashbar.lua │ │ │ │ ├── fullchart.lua │ │ │ │ ├── init.lua │ │ │ │ └── textbox.lua │ │ │ ├── dashpack.lua │ │ │ ├── init.lua │ │ │ ├── multim.lua │ │ │ ├── simpleline.lua │ │ │ ├── speedgraph.lua │ │ │ └── textset.lua │ │ ├── float │ │ │ ├── apprunner.lua │ │ │ ├── appswitcher.lua │ │ │ ├── brightness.lua │ │ │ ├── clientmenu.lua │ │ │ ├── decoration.lua │ │ │ ├── hotkeys.lua │ │ │ ├── init.lua │ │ │ ├── keychain.lua │ │ │ ├── notify.lua │ │ │ ├── player.lua │ │ │ ├── prompt.lua │ │ │ ├── qlaunch.lua │ │ │ ├── tooltip.lua │ │ │ └── top.lua │ │ ├── gauge │ │ │ ├── audio │ │ │ │ ├── blue.lua │ │ │ │ ├── init.lua │ │ │ │ └── red.lua │ │ │ ├── graph │ │ │ │ ├── bar.lua │ │ │ │ ├── dash.lua │ │ │ │ ├── dots.lua │ │ │ │ ├── doublebar.lua │ │ │ │ └── init.lua │ │ │ ├── icon │ │ │ │ ├── double.lua │ │ │ │ ├── init.lua │ │ │ │ └── single.lua │ │ │ ├── init.lua │ │ │ ├── monitor │ │ │ │ ├── circle.lua │ │ │ │ ├── dash.lua │ │ │ │ ├── double.lua │ │ │ │ ├── init.lua │ │ │ │ └── plain.lua │ │ │ ├── separator.lua │ │ │ ├── svgbox.lua │ │ │ ├── tag │ │ │ │ ├── blue.lua │ │ │ │ ├── green.lua │ │ │ │ ├── init.lua │ │ │ │ ├── orange.lua │ │ │ │ └── red.lua │ │ │ └── task │ │ │ │ ├── green.lua │ │ │ │ ├── init.lua │ │ │ │ └── red.lua │ │ ├── init.lua │ │ ├── layout │ │ │ ├── common.lua │ │ │ ├── grid.lua │ │ │ ├── init.lua │ │ │ └── map.lua │ │ ├── menu.lua │ │ ├── service │ │ │ ├── dfparser.lua │ │ │ ├── init.lua │ │ │ └── navigator.lua │ │ ├── system.lua │ │ ├── timestamp.lua │ │ ├── titlebar.lua │ │ ├── util │ │ │ ├── base.lua │ │ │ ├── cairo.lua │ │ │ ├── client.lua │ │ │ ├── desktop.lua │ │ │ ├── init.lua │ │ │ ├── key.lua │ │ │ ├── placement.lua │ │ │ ├── read.lua │ │ │ ├── table.lua │ │ │ └── text.lua │ │ └── widget │ │ │ ├── init.lua │ │ │ ├── keyboard.lua │ │ │ ├── layoutbox.lua │ │ │ ├── mail.lua │ │ │ ├── minitray.lua │ │ │ ├── net.lua │ │ │ ├── pulse.lua │ │ │ ├── sysmon.lua │ │ │ ├── taglist.lua │ │ │ ├── tasklist.lua │ │ │ ├── textclock.lua │ │ │ └── upgrades.lua │ ├── scripts │ │ └── pop_mail_checker.py │ └── themes │ │ ├── blue │ │ ├── common │ │ ├── desktop │ │ │ ├── bstar.svg │ │ │ ├── down.svg │ │ │ ├── skull.svg │ │ │ ├── star.svg │ │ │ └── up.svg │ │ ├── layouts │ │ ├── theme.lua │ │ └── widget │ │ │ ├── audio.svg │ │ │ ├── battery.svg │ │ │ ├── brightness.svg │ │ │ ├── headphones.svg │ │ │ ├── keyboard.svg │ │ │ ├── mail.svg │ │ │ ├── monitor.svg │ │ │ ├── search.svg │ │ │ ├── upgrades.svg │ │ │ └── wireless.svg │ │ ├── colorless │ │ ├── common │ │ │ ├── awesome.svg │ │ │ ├── blank.svg │ │ │ ├── check.svg │ │ │ ├── player │ │ │ │ ├── cover.svg │ │ │ │ ├── next.svg │ │ │ │ ├── pause.svg │ │ │ │ ├── play.svg │ │ │ │ └── previous.svg │ │ │ ├── submenu.svg │ │ │ ├── unknown.svg │ │ │ ├── warning.svg │ │ │ └── window_control │ │ │ │ ├── below.svg │ │ │ │ ├── close.svg │ │ │ │ ├── floating.svg │ │ │ │ ├── maximized.svg │ │ │ │ ├── minimize.svg │ │ │ │ ├── ontop.svg │ │ │ │ └── pin.svg │ │ ├── layouts │ │ │ ├── cornerne.svg │ │ │ ├── cornernw.svg │ │ │ ├── cornerse.svg │ │ │ ├── cornersw.svg │ │ │ ├── fair.svg │ │ │ ├── floating.svg │ │ │ ├── fullscreen.svg │ │ │ ├── grid.svg │ │ │ ├── magnifier.svg │ │ │ ├── map.svg │ │ │ ├── max.svg │ │ │ ├── spiral.svg │ │ │ ├── tile.svg │ │ │ ├── tilebottom.svg │ │ │ ├── tileleft.svg │ │ │ └── tiletop.svg │ │ ├── theme.lua │ │ ├── wallpaper │ │ │ └── primary.png │ │ └── widget │ │ │ ├── down.svg │ │ │ ├── headphones.svg │ │ │ ├── search.svg │ │ │ └── up.svg │ │ ├── green │ │ ├── common │ │ ├── desktop │ │ │ ├── down.svg │ │ │ ├── fire.svg │ │ │ └── up.svg │ │ ├── layouts │ │ ├── theme.lua │ │ └── widget │ │ │ ├── audio.svg │ │ │ ├── brightness.svg │ │ │ ├── down.svg │ │ │ ├── keyboard.svg │ │ │ ├── mail.svg │ │ │ ├── mute.svg │ │ │ ├── search.svg │ │ │ ├── up.svg │ │ │ └── upgrades.svg │ │ ├── orange │ │ ├── common │ │ ├── layouts │ │ ├── theme.lua │ │ └── widget │ │ │ ├── audio.svg │ │ │ ├── brightness.svg │ │ │ ├── down.svg │ │ │ ├── headphones.svg │ │ │ ├── keyboard.svg │ │ │ ├── mail.svg │ │ │ ├── search.svg │ │ │ ├── up.svg │ │ │ └── upgrades.svg │ │ └── red │ │ ├── common │ │ ├── desktop │ │ ├── down.svg │ │ ├── ed1.svg │ │ ├── ed2.svg │ │ └── up.svg │ │ ├── layouts │ │ ├── theme.lua │ │ └── widget │ │ ├── audio.svg │ │ ├── brightness.svg │ │ ├── keyboard.svg │ │ ├── mail.svg │ │ ├── mute.svg │ │ ├── search.svg │ │ └── upgrades.svg ├── bspwm │ └── bspwmrc ├── libinput-gestures.conf ├── nvim │ ├── appearance.vim │ ├── basic.vim │ ├── init.vim │ ├── mapping.vim │ ├── plugins.vim │ └── syn.vim ├── polybar │ └── config ├── redshift │ ├── hooks │ │ └── brightness.sh │ └── redshift.conf └── sxhkd │ └── sxhkdrc ├── .ncmpcpp └── config ├── .vimrc ├── .xinitrc ├── .xrdb ├── colors │ ├── atelierforest │ ├── google-light │ ├── gruvbox │ ├── monodevek │ ├── mostly-bright │ └── nord ├── fonts │ ├── M+1mn │ ├── dina │ ├── fixed │ ├── gohu │ ├── hack │ ├── iosevka │ ├── lime │ ├── peep │ ├── pragmata │ ├── scientifica │ ├── sfmono │ ├── smoothansi │ └── tewi └── rofi │ ├── atelierforest │ └── nord ├── 2bwm └── config.h ├── README.md └── scripts ├── colors.sh └── readydots.sh /.Xresources: -------------------------------------------------------------------------------- 1 | ! ----------------------------------- 2 | ! Includes for easier (Instant) rice! 3 | ! ----------------------------------- 4 | !#include ".cache/squash/x_colors" 5 | !#include "/home/winston/.xrdb/colors/monodevek" 6 | #include "/home/t60r/.xrdb/fonts/anka" 7 | !#include "/home/winston/.xrdb/rofi/monodevek" 8 | 9 | Xft.autohint: 0 10 | Xft.lcdfilter: lcddefault 11 | Xft.hintstyle: hintslight 12 | Xft.hinting: 1 13 | XTerm.vt100.faceName: Iosevka Term SS07:size=11:antialias=true 14 | XTerm.vt100.font: -schumacher-clean-medium-r-normal-*-12-120-75-75-c-*-iso8859-* 15 | Xft.rgba: rgb 16 | Xft.dpi: 96 17 | XTerm.termName: xterm-256color 18 | XTerm.vt100.locale: true 19 | XTerm.vt100.selectToClipboard: true 20 | Xcursor*theme: Adwaita 21 | XTerm.scaleHeight: 1.01 22 | 23 | URxvt.scrollBar: false 24 | URxvt.internalBorder: 16 25 | !URxvt*depth: 32 26 | URxvt.perl-ext-common: default,matcher,resize-font 27 | URxvt.url-launcher: /usr/bin/xdg-open 28 | URxvt.matcher.button: 1 29 | URxvt.matcher.rend.0: Uline Bold fg5 30 | URxvt*borderless: false 31 | URxvt.letterSpace: 0 32 | *background: #282F37 33 | *foreground: #F1FCF9 34 | *cursorColor: #F1FCF9 35 | *color0: #20262C 36 | *color1: #DB86BA 37 | *color2: #74DD91 38 | *color3: #E49186 39 | *color4: #75DBE1 40 | *color5: #B4A1DB 41 | *color6: #9EE9EA 42 | *color7: #F1FCF9 43 | *color8: #465463 44 | *color9: #D04E9D 45 | *color10: #4BC66D 46 | *color11: #DB695B 47 | *color12: #3DBAC2 48 | *color13: #825ECE 49 | *color14: #62CDCD 50 | *color15: #E0E5E5 51 | 52 | -------------------------------------------------------------------------------- /.cache/squash/colors: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # DEFINE COLORS 4 | BG="#20292d" 5 | FG="#c4c4b5" 6 | 7 | #BLK="#253034" 8 | BLK="#2c3539" 9 | RED="#a66959" 10 | GRN="#769070" 11 | YLW="#ac8d6e" 12 | BLU="#607a86" 13 | MAG="#8a757e" 14 | CYN="#60867f" 15 | WHT="#c4c4b5" 16 | 17 | #BBLK="#35444b" 18 | BBLK="#343d41" 19 | BRED="#a66959" 20 | BGRN="#769070" 21 | BYLW="#ac8d6e" 22 | BBLU="#607a86" 23 | BMAG="#8a757e" 24 | BCYN="#60867f" 25 | BWHT="#c4c4b5" 26 | 27 | # ROFI OPTIONS 28 | ACC="${YLW}" 29 | 30 | # BAR OPTIONS 31 | #BAR_SCRIPT="polybar -r burs" 32 | BAR_SCRIPT="polybar -r burs" 33 | 34 | # VIM COLORSCHEME 35 | VIM_SCHEME='bleh' 36 | 37 | # WALLPAPER OPTIONS 38 | #WALLPAPER_PATH="$HOME/Wallpapers/designr.png" 39 | #WALLPAPER_STYLE="tile" 40 | WALLPAPER_PATH="$HOME/Wallpapers/ashim-d-silva-628775-unsplash.jpg" 41 | WALLPAPER_STYLE="fill" 42 | 43 | # 2BWM OPTIONS 44 | TWOBWM_FOCUS="${CYN}" 45 | TWOBWM_UNFOCUS="${BBLK}" 46 | TWOBWM_FIXED="${RED}" 47 | TWOBWM_UNKILL="${CYN}" 48 | TWOBWM_FIXEDUNK="${MAG}" 49 | TWOBWM_OUTR="${BG}" 50 | TWOBWM_EMP="${BG}" 51 | 52 | # BSPWM OPTIONS 53 | BSPWM_NORMAL="${BBLK}" 54 | BSPWM_FOCUSED="${CYN}" 55 | BSPWM_URGENT="${RED}" 56 | BSPWM_PRESEL="${GRN}" 57 | 58 | OB_THEME="designr" 59 | 60 | SQUASH_FONT="xft:Iosevka Term:pixelsize=15" 61 | -------------------------------------------------------------------------------- /.cache/squash/colors.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --wallpaper: url(); 3 | --background: #20292d; 4 | --foreground: #c4c4b5; 5 | --color0: #2c3539; 6 | --color1: #a66959; 7 | --color2: #769070; 8 | --color3: #ac8d6e; 9 | --color4: #607a86; 10 | --color5: #8a757e; 11 | --color6: #60867f; 12 | --color7: #c4c4b5; 13 | --color8: #343d41; 14 | --color9: #a66959; 15 | --color10: #769070; 16 | --color11: #ac8d6e; 17 | --color12: #607a86; 18 | --color13: #8a757e; 19 | --color14: #60867f; 20 | --color15: #c4c4b5; 21 | } -------------------------------------------------------------------------------- /.cache/squash/x_colors: -------------------------------------------------------------------------------- 1 | *.foreground: #c4c4b5 2 | *.background: #20292d 3 | *.cursorColor: #c4c4b5 4 | *.color0: #2c3539 5 | *.color1: #a66959 6 | *.color2: #769070 7 | *.color3: #ac8d6e 8 | *.color4: #607a86 9 | *.color5: #8a757e 10 | *.color6: #60867f 11 | *.color7: #c4c4b5 12 | *.color8: #343d41 13 | *.color9: #a66959 14 | *.color10: #769070 15 | *.color11: #ac8d6e 16 | *.color12: #607a86 17 | *.color13: #8a757e 18 | *.color14: #60867f 19 | *.color15: #c4c4b5 20 | URxvt*font:xft:Iosevka Term:pixelsize=15 21 | URxvt*boldFont:xft:Iosevka Term:pixelsize=15 22 | rofi.color-enaled: true 23 | rofi.color-window: #2c3539, #2c3539, #2c3539 24 | rofi.color-normal: #2c3539, #c4c4b5, #2c3539, #343d41, #ac8d6e 25 | twobwm.focus_color: #60867f 26 | twobwm.unfocus_color: #60867f 27 | twobwm.fixed_color: #a66959 28 | twobwm.unkill_color: #60867f 29 | twobwm.outer_border_color: #20292d 30 | twobwm.fixed_unkill_color: #60867f 31 | -------------------------------------------------------------------------------- /.compton.conf: -------------------------------------------------------------------------------- 1 | # Shadow 2 | respect-prop-shadow = true; 3 | shadow = true; 4 | no-dnd-shadow = true; 5 | no-dock-shadow = false; 6 | clear-shadow = true; 7 | shadow-radius = 7; 8 | shadow-offset-x = -7; 9 | shadow-offset-y = -7; 10 | # shadow-opacity = 0.7; 11 | # shadow-red = 0.0; 12 | # shadow-green = 0.0; 13 | # shadow-blue = 0.0; 14 | shadow-exclude = [ 15 | "name = 'Notification'", 16 | "class_g = 'Conky'", 17 | "class_g ?= 'Notify-osd'", 18 | "class_g = 'Cairo-clock'", 19 | "_GTK_FRAME_EXTENTS@:c" 20 | ]; 21 | # shadow-exclude = "n:e:Notification"; 22 | # shadow-exclude-reg = "x10+0+0"; 23 | # xinerama-shadow-crop = true; 24 | 25 | # Opacity 26 | #menu-opacity = 0.8; 27 | #inactive-opacity = 0.8; 28 | # active-opacity = 0.8; 29 | #frame-opacity = 0.7; 30 | inactive-opacity-override = false; 31 | alpha-step = 0.06; 32 | # inactive-dim = 0.2; 33 | # inactive-dim-fixed = true; 34 | # blur-background = true; 35 | # blur-background-frame = true; 36 | blur-kern = "3x3box"; 37 | # blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"; 38 | # blur-background-fixed = true; 39 | blur-background-exclude = [ 40 | "window_type = 'dock'", 41 | "window_type = 'desktop'", 42 | "_GTK_FRAME_EXTENTS@:c" 43 | ]; 44 | # opacity-rule = [ "80:class_g = 'URxvt'" ]; 45 | 46 | # Fading 47 | fading = true; 48 | # fade-delta = 30; 49 | fade-in-step = 0.03; 50 | fade-out-step = 0.03; 51 | # no-fading-openclose = true; 52 | # no-fading-destroyed-argb = true; 53 | fade-exclude = [ ]; 54 | 55 | # Other 56 | backend = "glx"; 57 | mark-wmwin-focused = true; 58 | mark-ovredir-focused = true; 59 | # use-ewmh-active-win = true; 60 | detect-rounded-corners = true; 61 | detect-client-opacity = true; 62 | refresh-rate = 0; 63 | vsync = "opengl-swc"; 64 | dbe = false; 65 | paint-on-overlay = true; 66 | # sw-opti = true; 67 | # unredir-if-possible = true; 68 | # unredir-if-possible-delay = 5000; 69 | # unredir-if-possible-exclude = [ ]; 70 | focus-exclude = [ "class_g = 'Cairo-clock'" ]; 71 | detect-transient = true; 72 | detect-client-leader = true; 73 | invert-color-include = [ ]; 74 | # resize-damage = 1; 75 | 76 | # GLX backend 77 | # glx-no-stencil = true; 78 | glx-copy-from-front = false; 79 | # glx-use-copysubbuffermesa = true; 80 | # glx-no-rebind-pixmap = true; 81 | glx-swap-method = "undefined"; 82 | # glx-use-gpushader4 = true; 83 | # xrender-sync = true; 84 | # xrender-sync-fence = true; 85 | 86 | # Window type settings 87 | wintypes: 88 | { 89 | tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; }; 90 | }; 91 | -------------------------------------------------------------------------------- /.config/awesome/blue/alias-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Application aliases for tasklist widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | appnames = {} 6 | 7 | appnames["Exaile" ] = "EXAILE" 8 | appnames["Smplayer" ] = "SMPL" 9 | appnames["Firefox" ] = "FIFOX" 10 | appnames["Gnome-terminal" ] = "GTERM" 11 | appnames["Gnome-system-monitor"] = "SYSMN" 12 | appnames["Gthumb" ] = "THUMB" 13 | appnames["Gimp-2.8" ] = "GIMP" 14 | appnames["Goldendict" ] = "GDIC" 15 | appnames["Easytag" ] = "ETAG" 16 | appnames["Mcomix" ] = "COMIX" 17 | appnames["Claws-mail" ] = "CMAIL" 18 | appnames["Evolution" ] = "EVOM" 19 | appnames["URxvt" ] = "RXVT" 20 | appnames["VirtualBox" ] = "VBOX" 21 | appnames["Keepassx" ] = "KPASS" 22 | appnames["keepassxc" ] = "KPASS" 23 | appnames["Evince" ] = "EVINCE" 24 | appnames["jetbrains-pycharm-ce"] = "PYCRM" 25 | appnames["Qemu-system-x86_64" ] = "QEMU" 26 | 27 | return appnames 28 | 29 | -------------------------------------------------------------------------------- /.config/awesome/blue/autostart-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Autostart app list -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful = require("awful") 7 | 8 | -- Initialize tables and vars for module 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | local autostart = {} 11 | 12 | -- Application list function 13 | -------------------------------------------------------------------------------- 14 | function autostart.run() 15 | -- utils 16 | awful.spawn.with_shell("compton") 17 | awful.spawn.with_shell("nm-applet") 18 | awful.spawn.with_shell("bash ~/scripts/pa-setup.sh") 19 | awful.spawn.with_shell("sleep 1 && bash ~/scripts/ff-sync.sh") 20 | awful.spawn.with_shell("bash ~/scripts/color-profile-setup.sh") 21 | 22 | -- gnome environment 23 | awful.spawn.with_shell("/lib/gsd-xsettings") 24 | awful.spawn.with_shell("/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1") 25 | 26 | -- keyboard layouts 27 | awful.spawn.with_shell("kbdd") 28 | awful.spawn.with_shell("sleep 1 && bash ~/scripts/kbdd-setup.sh") 29 | 30 | -- apps 31 | awful.spawn.with_shell("clipflap") 32 | awful.spawn.with_shell("sleep 1 && transmission-gtk -m") 33 | end 34 | 35 | -- Read and commads from file and spawn them 36 | -------------------------------------------------------------------------------- 37 | function autostart.run_from_file(file_) 38 | local f = io.open(file_) 39 | for line in f:lines() do 40 | if line:sub(1, 1) ~= "#" then awful.spawn.with_shell(line) end 41 | end 42 | f:close() 43 | end 44 | 45 | -- End 46 | ----------------------------------------------------------------------------------------------------------------------- 47 | return autostart 48 | -------------------------------------------------------------------------------- /.config/awesome/blue/edges-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Active screen edges config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful = require("awful") 7 | local redflat = require("redflat") 8 | 9 | -- Initialize tables and vars for module 10 | ----------------------------------------------------------------------------------------------------------------------- 11 | local edges = {} 12 | 13 | local switcher = redflat.float.appswitcher 14 | local currenttags = redflat.widget.tasklist.filter.currenttags 15 | local allscreen = redflat.widget.tasklist.filter.allscreen 16 | 17 | -- Active screen edges 18 | ----------------------------------------------------------------------------------------------------------------------- 19 | function edges:init(args) 20 | 21 | local args = args or {} 22 | local ew = args.width or 1 -- edge width 23 | local workarea = args.workarea or screen[mouse.screen].workarea 24 | 25 | -- edge geometry 26 | local egeometry = { 27 | top = { width = workarea.width - 2 * ew, height = ew , x = ew, y = 0 }, 28 | right = { width = ew, height = workarea.height - ew, x = workarea.width - ew, y = ew }, 29 | left = { width = ew, height = workarea.height, x = 0, y = 0 } 30 | } 31 | 32 | -- Top 33 | -------------------------------------------------------------------------------- 34 | local top = redflat.util.desktop.edge("horizontal") 35 | top.wibox:geometry(egeometry["top"]) 36 | 37 | top.layout:buttons(awful.util.table.join( 38 | awful.button({}, 1, 39 | function() 40 | if client.focus then client.focus.maximized = not client.focus.maximized end 41 | end 42 | ) 43 | )) 44 | 45 | -- Right 46 | -------------------------------------------------------------------------------- 47 | local right = redflat.util.desktop.edge("vertical") 48 | right.wibox:geometry(egeometry["right"]) 49 | 50 | right.layout:buttons(awful.util.table.join( 51 | awful.button({}, 5, function() awful.tag.viewnext(mouse.screen) end), 52 | awful.button({}, 4, function() awful.tag.viewprev(mouse.screen) end) 53 | )) 54 | 55 | -- Left 56 | -------------------------------------------------------------------------------- 57 | local left = redflat.util.desktop.edge("vertical", { ew, workarea.height - ew }) 58 | left.wibox:geometry(egeometry["left"]) 59 | 60 | left.area[1]:buttons(awful.util.table.join( 61 | awful.button({}, 4, function() switcher:show({ filter = allscreen }) end), 62 | awful.button({}, 5, function() switcher:show({ filter = allscreen, reverse = true }) end) 63 | )) 64 | 65 | left.area[2]:buttons(awful.util.table.join( 66 | awful.button({}, 9, function() if client.focus then client.focus.minimized = true end end), 67 | awful.button({}, 4, function() switcher:show({ filter = currenttags }) end), 68 | awful.button({}, 5, function() switcher:show({ filter = currenttags, reverse = true }) end) 69 | )) 70 | 71 | left.wibox:connect_signal("mouse::leave", function() redflat.float.appswitcher:hide() end) 72 | end 73 | 74 | -- End 75 | ----------------------------------------------------------------------------------------------------------------------- 76 | return edges 77 | -------------------------------------------------------------------------------- /.config/awesome/blue/ercheck-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/ercheck-config.lua -------------------------------------------------------------------------------- /.config/awesome/blue/layout-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Layouts config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful = require("awful") 7 | local redflat = require("redflat") 8 | 9 | -- Initialize tables and vars for module 10 | ----------------------------------------------------------------------------------------------------------------------- 11 | local layouts = {} 12 | 13 | 14 | -- Build table 15 | ----------------------------------------------------------------------------------------------------------------------- 16 | function layouts:init(args) 17 | local args = args or {} 18 | 19 | -- layouts list 20 | local layset = { 21 | awful.layout.suit.floating, 22 | redflat.layout.grid, 23 | awful.layout.suit.tile, 24 | awful.layout.suit.fair, 25 | redflat.layout.map, 26 | awful.layout.suit.max, 27 | awful.layout.suit.max.fullscreen, 28 | } 29 | 30 | awful.layout.layouts = layset 31 | end 32 | 33 | -- some advanced layout settings 34 | redflat.layout.map.notification = false 35 | 36 | 37 | -- connect alternatve moving handler to allow using custom handler per layout 38 | -- by now custom handler provided for 'redflat.layout.grid' only 39 | -- feel free to remove if you don't use this one 40 | client.disconnect_signal("request::geometry", awful.layout.move_handler) 41 | client.connect_signal("request::geometry", redflat.layout.common.mouse.move) 42 | 43 | 44 | -- connect additional signal for 'redflat.layout.map' 45 | -- this one removing client in smart way and correct tiling scheme 46 | -- feel free to remove if you want to restore plain queue behavior 47 | client.connect_signal("unmanage", redflat.layout.map.clean_client) 48 | 49 | client.connect_signal("property::minimized", function(c) 50 | if c.minimized and redflat.layout.map.check_client(c) then redflat.layout.map.clean_client(c) end 51 | end) 52 | client.connect_signal("property::floating", function(c) 53 | if c.floating and redflat.layout.map.check_client(c) then redflat.layout.map.clean_client(c) end 54 | end) 55 | 56 | client.connect_signal("untagged", function(c, t) 57 | if redflat.layout.map.data[t] then redflat.layout.map.clean_client(c) end 58 | end) 59 | 60 | 61 | -- user map layout preset 62 | -- preset can be defined for individual tags, but this should be done after tag initialization 63 | 64 | -- redflat.layout.map.base_construct = function(wa) 65 | -- local tree = { set = {}, active = 1, autoaim = true } 66 | 67 | -- tree.set[1] = redflat.layout.map.construct_itempack({}, wa, false) 68 | -- tree.set[2] = redflat.layout.map.base_set_new_pack({}, wa, true, tree.set[1]) 69 | -- tree.set[3] = redflat.layout.map.base_set_new_pack({}, wa, true, tree.set[1]) 70 | -- tree.set[4] = redflat.layout.map.base_set_new_pack({}, wa, true, tree.set[1]) 71 | 72 | -- function tree:aim() 73 | -- for i = 2, 4 do if #self.set[i].items == 0 then return i end end 74 | -- local active = #self.set[4].items >= #self.set[2].items and 2 or 4 75 | -- return active 76 | -- end 77 | 78 | -- return tree 79 | -- end 80 | 81 | 82 | -- End 83 | ----------------------------------------------------------------------------------------------------------------------- 84 | return layouts 85 | -------------------------------------------------------------------------------- /.config/awesome/blue/rules-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Rules config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful =require("awful") 7 | local beautiful = require("beautiful") 8 | local redtitle = require("redflat.titlebar") 9 | 10 | -- Initialize tables and vars for module 11 | ----------------------------------------------------------------------------------------------------------------------- 12 | local rules = {} 13 | 14 | rules.base_properties = { 15 | border_width = beautiful.border_width, 16 | border_color = beautiful.border_normal, 17 | focus = awful.client.focus.filter, 18 | raise = true, 19 | size_hints_honor = false, 20 | screen = awful.screen.preferred, 21 | } 22 | 23 | rules.floating_any = { 24 | class = { 25 | "Clipflap", "Run.py", 26 | }, 27 | role = { "AlarmWindow", "pop-up", }, 28 | type = { "dialog" } 29 | } 30 | 31 | rules.titlebar_exeptions = { 32 | class = { "Cavalcade", "Clipflap", "Steam", "Qemu-system-x86_64" } 33 | } 34 | 35 | rules.maximized = { 36 | class = { "Emacs24" } 37 | } 38 | 39 | -- Build rule table 40 | ----------------------------------------------------------------------------------------------------------------------- 41 | function rules:init(args) 42 | 43 | local args = args or {} 44 | self.base_properties.keys = args.hotkeys.keys.client 45 | self.base_properties.buttons = args.hotkeys.mouse.client 46 | 47 | 48 | -- Build rules 49 | -------------------------------------------------------------------------------- 50 | self.rules = { 51 | { 52 | rule = {}, 53 | properties = args.base_properties or self.base_properties 54 | }, 55 | { 56 | rule_any = args.floating_any or self.floating_any, 57 | properties = { floating = true } 58 | }, 59 | { 60 | rule_any = self.maximized, 61 | callback = function(c) 62 | c.maximized = true 63 | redtitle.cut_all({ c }) 64 | c.height = c.screen.workarea.height - 2 * c.border_width 65 | end 66 | }, 67 | { 68 | rule_any = { type = { "normal", "dialog" }}, 69 | except_any = self.titlebar_exeptions, 70 | properties = { titlebars_enabled = true } 71 | }, 72 | { 73 | rule_any = { type = { "normal" }}, 74 | properties = { placement = awful.placement.no_overlap + awful.placement.no_offscreen } 75 | } 76 | } 77 | 78 | 79 | -- Set rules 80 | -------------------------------------------------------------------------------- 81 | awful.rules.rules = rules.rules 82 | end 83 | 84 | -- End 85 | ----------------------------------------------------------------------------------------------------------------------- 86 | return rules 87 | -------------------------------------------------------------------------------- /.config/awesome/blue/signals-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/signals-config.lua -------------------------------------------------------------------------------- /.config/awesome/blue/titlebar-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/titlebar-config.lua -------------------------------------------------------------------------------- /.config/awesome/colorless/ercheck-config.lua: -------------------------------------------------------------------------------- 1 | local naughty = require("naughty") 2 | 3 | if awesome.startup_errors then 4 | naughty.notify({ 5 | preset = naughty.config.presets.critical, 6 | title = "Oops, there were errors during startup!", 7 | text = awesome.startup_error 8 | }) 9 | end 10 | 11 | do 12 | local in_error = false 13 | awesome.connect_signal( 14 | "debug::error", 15 | function (err) 16 | if in_error then return end 17 | in_error = true 18 | 19 | naughty.notify({ 20 | preset = naughty.config.presets.critical, 21 | title = "Oops, an error happened!", 22 | text = err 23 | }) 24 | in_error = false 25 | end 26 | ) 27 | end 28 | -------------------------------------------------------------------------------- /.config/awesome/colorless/layout-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Layouts config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful = require("awful") 7 | local redflat = require("redflat") 8 | local beautiful = require("beautiful") 9 | 10 | -- Initialize tables and vars for module 11 | ----------------------------------------------------------------------------------------------------------------------- 12 | local layouts = {} 13 | 14 | 15 | -- Build table 16 | ----------------------------------------------------------------------------------------------------------------------- 17 | function layouts:init(args) 18 | local args = args or {} 19 | 20 | -- layouts list 21 | local layset = { 22 | awful.layout.suit.floating, 23 | awful.layout.suit.tile, 24 | awful.layout.suit.tile.left, 25 | awful.layout.suit.tile.bottom, 26 | awful.layout.suit.tile.top, 27 | awful.layout.suit.fair, 28 | awful.layout.suit.corner.nw, 29 | awful.layout.suit.corner.ne, 30 | awful.layout.suit.corner.sw, 31 | awful.layout.suit.corner.se, 32 | awful.layout.suit.spiral, 33 | awful.layout.suit.magnifier, 34 | redflat.layout.grid, 35 | redflat.layout.map, 36 | } 37 | 38 | awful.layout.layouts = layset 39 | end 40 | 41 | -- some advanced layout settings 42 | redflat.layout.map.notification = true 43 | redflat.layout.map.notification_style = { icon = redflat.util.table.check(beautiful, "widget.layoutbox.icon.usermap") } 44 | 45 | 46 | -- connect alternatve moving handler to allow using custom handler per layout 47 | -- by now custom handler provided for 'redflat.layout.grid' only 48 | -- feel free to remove if you don't use this one 49 | client.disconnect_signal("request::geometry", awful.layout.move_handler) 50 | client.connect_signal("request::geometry", redflat.layout.common.mouse.move) 51 | 52 | 53 | -- connect additional signal for 'redflat.layout.map' 54 | -- this one removing client in smart way and correct tiling scheme 55 | -- feel free to remove if you want to restore plain queue behavior 56 | client.connect_signal("unmanage", redflat.layout.map.clean_client) 57 | 58 | client.connect_signal("property::minimized", function(c) 59 | if c.minimized and redflat.layout.map.check_client(c) then redflat.layout.map.clean_client(c) end 60 | end) 61 | client.connect_signal("property::floating", function(c) 62 | if c.floating and redflat.layout.map.check_client(c) then redflat.layout.map.clean_client(c) end 63 | end) 64 | 65 | client.connect_signal("untagged", function(c, t) 66 | if redflat.layout.map.data[t] then redflat.layout.map.clean_client(c) end 67 | end) 68 | 69 | -- End 70 | ----------------------------------------------------------------------------------------------------------------------- 71 | return layouts 72 | -------------------------------------------------------------------------------- /.config/awesome/colorless/menu-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Menu config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local beautiful = require("beautiful") 7 | local redflat = require("redflat") 8 | local awful = require("awful") 9 | local naughty = require("naughty") 10 | 11 | 12 | -- Initialize tables and vars for module 13 | ----------------------------------------------------------------------------------------------------------------------- 14 | local menu = {} 15 | 16 | -- Build function 17 | -------------------------------------------------------------------------------- 18 | function menu:init(args) 19 | 20 | -- vars 21 | local args = args or {} 22 | local env = args.env or {} -- fix this? 23 | local separator = args.separator or { widget = redflat.gauge.separator.horizontal() } 24 | local theme = args.theme or { auto_hotkey = true } 25 | local icon_style = args.icon_style or {} 26 | 27 | -- Application submenu 28 | ------------------------------------------------------------ 29 | 30 | -- WARNING! 31 | -- 'dfparser' module used to parse available desktop files for building application list and finding app icons, 32 | -- it may cause significant delay on wm start/restart due to the synchronous type of the scripts. 33 | -- This issue can be reduced by using additional settings like custom desktop files directory 34 | -- and user only icon theme. See colored configs for more details. 35 | 36 | -- At worst, you can give up all applications widgets (appmenu, applauncher, appswitcher, qlaunch) in your config 37 | local appmenu = redflat.service.dfparser.menu({ icons = icon_style, wm_name = "awesome" }) 38 | 39 | -- Main menu 40 | ------------------------------------------------------------ 41 | self.mainmenu = redflat.menu({ theme = theme, 42 | items = { 43 | { "Applications", appmenu, }, 44 | { "Terminal", env.terminal, }, 45 | separator, 46 | { "Test Item 0", function() naughty.notify({ text = "Test menu 0" }) end, }, 47 | { "Test Item 1", function() naughty.notify({ text = "Test menu 1" }) end, key = "i" }, 48 | { "Test Item 2", function() naughty.notify({ text = "Test menu 2" }) end, key = "m" }, 49 | separator, 50 | { "Restart", awesome.restart, }, 51 | { "Exit", awesome.quit, }, 52 | } 53 | }) 54 | 55 | -- Menu panel widget 56 | ------------------------------------------------------------ 57 | 58 | -- theme vars 59 | local deficon = redflat.util.base.placeholder() 60 | local icon = redflat.util.table.check(beautiful, "icon.awesome") and beautiful.icon.awesome or deficon 61 | local color = redflat.util.table.check(beautiful, "color.icon") and beautiful.color.icon or nil 62 | 63 | -- widget 64 | self.widget = redflat.gauge.svgbox(icon, nil, color) 65 | self.buttons = awful.util.table.join( 66 | awful.button({ }, 1, function () self.mainmenu:toggle() end) 67 | ) 68 | end 69 | 70 | -- End 71 | ----------------------------------------------------------------------------------------------------------------------- 72 | return menu 73 | -------------------------------------------------------------------------------- /.config/awesome/colorless/rules-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Rules config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful =require("awful") 7 | local beautiful = require("beautiful") 8 | 9 | -- Initialize tables and vars for module 10 | ----------------------------------------------------------------------------------------------------------------------- 11 | local rules = {} 12 | 13 | rules.base_properties = { 14 | border_width = beautiful.border_width, 15 | border_color = beautiful.border_normal, 16 | focus = awful.client.focus.filter, 17 | raise = true, 18 | size_hints_honor = false, 19 | screen = awful.screen.preferred, 20 | placement = awful.placement.no_overlap + awful.placement.no_offscreen 21 | } 22 | 23 | rules.floating_any = { 24 | instance = { "DTA", "copyq", }, 25 | class = { 26 | "Arandr", "Gpick", "Kruler", "MessageWin", "Sxiv", "Wpa_gui", "pinentry", "veromix", 27 | "xtightvncviewer" 28 | }, 29 | name = { "Event Tester", }, 30 | role = { "AlarmWindow", "pop-up", } 31 | } 32 | 33 | 34 | -- Build rule table 35 | ----------------------------------------------------------------------------------------------------------------------- 36 | function rules:init(args) 37 | 38 | local args = args or {} 39 | self.base_properties.keys = args.hotkeys.keys.client 40 | self.base_properties.buttons = args.hotkeys.mouse.client 41 | 42 | 43 | -- Build rules 44 | -------------------------------------------------------------------------------- 45 | self.rules = { 46 | { 47 | rule = {}, 48 | properties = args.base_properties or self.base_properties 49 | }, 50 | { 51 | rule_any = args.floating_any or self.floating_any, 52 | properties = { floating = true } 53 | }, 54 | { 55 | rule_any = { type = { "normal", "dialog" }}, 56 | properties = { titlebars_enabled = true } 57 | }, 58 | } 59 | 60 | 61 | -- Set rules 62 | -------------------------------------------------------------------------------- 63 | awful.rules.rules = rules.rules 64 | end 65 | 66 | -- End 67 | ----------------------------------------------------------------------------------------------------------------------- 68 | return rules 69 | -------------------------------------------------------------------------------- /.config/awesome/colorless/signals-config.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- Signals config -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | -- Grab environment 6 | local awful = require("awful") 7 | local beautiful = require("beautiful") 8 | 9 | 10 | -- Initialize tables and vars for module 11 | ----------------------------------------------------------------------------------------------------------------------- 12 | local signals = {} 13 | 14 | -- Support functions 15 | ----------------------------------------------------------------------------------------------------------------------- 16 | local function do_sloppy_focus(c) 17 | if awful.layout.get(c.screen) ~= awful.layout.suit.magnifier and awful.client.focus.filter(c) then 18 | client.focus = c 19 | end 20 | end 21 | 22 | local function fixed_maximized_geometry(c, context) 23 | if c.maximized and context ~= "fullscreen" then 24 | c:geometry({ 25 | x = c.screen.workarea.x, 26 | y = c.screen.workarea.y, 27 | height = c.screen.workarea.height - 2 * c.border_width, 28 | width = c.screen.workarea.width - 2 * c.border_width 29 | }) 30 | end 31 | end 32 | 33 | -- Build table 34 | ----------------------------------------------------------------------------------------------------------------------- 35 | function signals:init(args) 36 | 37 | local args = args or {} 38 | local env = args.env 39 | 40 | -- actions on every application start 41 | client.connect_signal( 42 | "manage", 43 | function(c) 44 | -- put client at the end of list 45 | if env.set_slave then awful.client.setslave(c) end 46 | 47 | -- startup placement 48 | if awesome.startup 49 | and not c.size_hints.user_position 50 | and not c.size_hints.program_position 51 | then 52 | awful.placement.no_offscreen(c) 53 | end 54 | end 55 | ) 56 | 57 | -- add missing borders to windows that get unmaximized 58 | client.connect_signal( 59 | "property::maximized", 60 | function(c) 61 | if not c.maximized then 62 | c.border_width = beautiful.border_width 63 | end 64 | end 65 | ) 66 | 67 | -- don't allow maximized windows move/resize themselves 68 | client.connect_signal( 69 | "request::geometry", fixed_maximized_geometry 70 | ) 71 | 72 | -- enable sloppy focus, so that focus follows mouse 73 | if env.sloppy_focus then 74 | client.connect_signal("mouse::enter", do_sloppy_focus) 75 | end 76 | 77 | -- hilight border of focused window 78 | -- can be disabled since focus indicated by titlebars in current config 79 | if env.color_border_focus then 80 | client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end) 81 | client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end) 82 | end 83 | 84 | -- wallpaper update on screen geometry change 85 | screen.connect_signal("property::geometry", env.wallpaper) 86 | 87 | -- Awesome v4.0 introduce screen handling without restart. 88 | -- Since I'm using single monitor setup and I'm too lazy to rework my panel widgets for this new feature, 89 | -- simple adding signal to restart wm on new monitor pluging. 90 | -- For reference, screen-dependent widgets are 91 | -- redflat.widget.layoutbox, redflat.widget.taglist, redflat.widget.tasklist 92 | screen.connect_signal("list", awesome.restart) 93 | end 94 | 95 | -- End 96 | ----------------------------------------------------------------------------------------------------------------------- 97 | return signals 98 | -------------------------------------------------------------------------------- /.config/awesome/green/autostart-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/autostart-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/edges-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/edges-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/env-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/env-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/ercheck-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/ercheck-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/keys-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/keys-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/layout-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/layout-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/menu-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/menu-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/rules-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/rules-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/signals-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/signals-config.lua -------------------------------------------------------------------------------- /.config/awesome/green/titlebar-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/titlebar-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/alias-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/alias-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/autostart-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/autostart-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/edges-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/edges-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/env-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/env-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/ercheck-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/ercheck-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/keys-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/keys-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/layout-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/layout-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/menu-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/menu-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/rules-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/rules-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/signals-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/signals-config.lua -------------------------------------------------------------------------------- /.config/awesome/orange/titlebar-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/titlebar-config.lua -------------------------------------------------------------------------------- /.config/awesome/rc.lua: -------------------------------------------------------------------------------- 1 | -- local rc = "rc-red" 2 | -- local rc = "rc-blue" 3 | -- local rc = "rc-orange" 4 | -- local rc = "rc-green" 5 | local rc = "rc-colorless" 6 | require(rc) 7 | 8 | -- green volume is nice 9 | -- green network is nice 10 | -- orange volume is also nice 11 | -- orange network is the same 12 | -------------------------------------------------------------------------------- /.config/awesome/red/autostart-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/autostart-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/edges-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/edges-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/env-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/env-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/ercheck-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/ercheck-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/keys-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/keys-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/layout-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/layout-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/menu-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/menu-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/rules-config.lua: -------------------------------------------------------------------------------- 1 | ../blue/rules-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/signals-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/signals-config.lua -------------------------------------------------------------------------------- /.config/awesome/red/titlebar-config.lua: -------------------------------------------------------------------------------- 1 | ../colorless/titlebar-config.lua -------------------------------------------------------------------------------- /.config/awesome/redflat/desktop/common/barvalue.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat barvalue widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Complex indicator with progress bar and label on top of it 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local string = string 12 | local wibox = require("wibox") 13 | local color = require("gears.color") 14 | --local beautiful = require("beautiful") 15 | 16 | local redutil = require("redflat.util") 17 | local dcommon = require("redflat.desktop.common") 18 | 19 | -- Initialize tables for module 20 | ----------------------------------------------------------------------------------------------------------------------- 21 | local barvalue = { mt = {} } 22 | 23 | -- Create a new barvalue widget 24 | -- @param dashbar_style Style variables for redflat dashbar 25 | -- @param label_style Style variables for redflat textbox 26 | ----------------------------------------------------------------------------------------------------------------------- 27 | function barvalue.new(dashbar_style, label_style) 28 | 29 | local widg = {} 30 | 31 | -- construct layout with indicators 32 | local progressbar = dcommon.dashbar(dashbar_style) 33 | local label = dcommon.textbox(nil, label_style) 34 | 35 | widg.layout = wibox.widget({ 36 | label, nil, progressbar, 37 | layout = wibox.layout.align.vertical, 38 | }) 39 | 40 | -- setup functions 41 | function widg:set_text(text) 42 | label:set_text(text) 43 | end 44 | 45 | function widg:set_value(x) 46 | progressbar:set_value(x) 47 | end 48 | 49 | return widg 50 | end 51 | 52 | -- Config metatable to call barvalue module as function 53 | ----------------------------------------------------------------------------------------------------------------------- 54 | function barvalue.mt:__call(...) 55 | return barvalue.new(...) 56 | end 57 | 58 | return setmetatable(barvalue, barvalue.mt) 59 | -------------------------------------------------------------------------------- /.config/awesome/redflat/desktop/common/cornerpack.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat cornerpack widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Group of corner indicators placed in horizontal layout 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local string = string 12 | 13 | local wibox = require("wibox") 14 | local color = require("gears.color") 15 | --local beautiful = require("beautiful") 16 | 17 | local corners = require("redflat.desktop.common.corners") 18 | 19 | -- Initialize tables for module 20 | ----------------------------------------------------------------------------------------------------------------------- 21 | local cornerpack = { mt = {} } 22 | 23 | -- Create a new cornerpack widget 24 | -- @param num Number of indicators 25 | -- @param style Style variables for redflat corners widget 26 | ----------------------------------------------------------------------------------------------------------------------- 27 | function cornerpack.new(num, style) 28 | 29 | local pack = {} 30 | local style = style or {} 31 | 32 | -- construct group of corner indicators 33 | pack.layout = wibox.layout.align.horizontal() 34 | local flex_horizontal = wibox.layout.flex.horizontal() 35 | local crn = {} 36 | 37 | for i = 1, num do 38 | crn[i] = corners(style) 39 | if i == 1 then 40 | pack.layout:set_left(crn[i]) 41 | else 42 | local corner_space = wibox.layout.align.horizontal() 43 | corner_space:set_right(crn[i]) 44 | flex_horizontal:add(corner_space) 45 | end 46 | end 47 | pack.layout:set_middle(flex_horizontal) 48 | 49 | -- setup functions 50 | function pack:set_values(values, n) 51 | if n then 52 | if crn[n] then crn[n]:set_value(values) end 53 | else 54 | for i, v in ipairs(values) do 55 | if crn[i] then crn[i]:set_value(v) end 56 | end 57 | end 58 | end 59 | 60 | return pack 61 | end 62 | 63 | -- Config metatable to call cornerpack module as function 64 | ----------------------------------------------------------------------------------------------------------------------- 65 | function cornerpack.mt:__call(...) 66 | return cornerpack.new(...) 67 | end 68 | 69 | return setmetatable(cornerpack, cornerpack.mt) 70 | -------------------------------------------------------------------------------- /.config/awesome/redflat/desktop/common/fullchart.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat fullchart widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Complex indicator with history chart, progress bar and label 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local wibox = require("wibox") 11 | local awful = require("awful") 12 | local beautiful = require("beautiful") 13 | local color = require("gears.color") 14 | 15 | local dcommon = require("redflat.desktop.common") 16 | local redutil = require("redflat.util") 17 | 18 | 19 | -- Initialize tables for module 20 | ----------------------------------------------------------------------------------------------------------------------- 21 | local fullchart = { mt = {} } 22 | 23 | -- Create a new fullchart widget 24 | -- @param label_style Style variables for redflat textbox widget 25 | -- @param dashbar_style Style variables for redflat dashbar widget 26 | -- @param chart_style Style variables for redflat chart widget 27 | -- @param barvalue_height Height for barvalue widget 28 | -- @param maxm Maximum value for redflat dashbar and chart (optional) 29 | ----------------------------------------------------------------------------------------------------------------------- 30 | function fullchart.new(label_style, dashbar_style, chart_style, barvalue_height, maxm) 31 | 32 | local widg = {} 33 | local chart_style = redutil.table.merge(chart_style, { maxm = maxm }) 34 | local dashbar_style = redutil.table.merge(dashbar_style, { maxm = maxm }) 35 | 36 | -- construct layout with indicators 37 | widg.barvalue = dcommon.barvalue(dashbar_style, label_style) 38 | widg.chart = dcommon.chart(chart_style) 39 | widg.barvalue.layout:set_forced_height(barvalue_height) 40 | 41 | widg.layout = wibox.widget({ 42 | widg.barvalue.layout, nil, widg.chart, 43 | layout = wibox.layout.align.vertical, 44 | }) 45 | 46 | return widg 47 | end 48 | 49 | -- Config metatable to call fullchart module as function 50 | ----------------------------------------------------------------------------------------------------------------------- 51 | function fullchart.mt:__call(...) 52 | return fullchart.new(...) 53 | end 54 | 55 | return setmetatable(fullchart, fullchart.mt) 56 | -------------------------------------------------------------------------------- /.config/awesome/redflat/desktop/common/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.desktop.common" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/desktop/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.desktop" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/float/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.float" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/audio/blue.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat volume indicator widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Indicator with audio icon 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local string = string 12 | local wibox = require("wibox") 13 | local beautiful = require("beautiful") 14 | local color = require("gears.color") 15 | 16 | local redutil = require("redflat.util") 17 | local svgbox = require("redflat.gauge.svgbox") 18 | local reddash = require("redflat.gauge.graph.dash") 19 | 20 | 21 | -- Initialize tables for module 22 | ----------------------------------------------------------------------------------------------------------------------- 23 | local audio = { mt = {} } 24 | 25 | -- Generate default theme vars 26 | ----------------------------------------------------------------------------------------------------------------------- 27 | local function default_style() 28 | local style = { 29 | width = 100, 30 | icon = redutil.base.placeholder(), 31 | dash = {}, 32 | dmargin = { 10, 0, 0, 0 }, 33 | color = { icon = "#a0a0a0", mute = "#404040" } 34 | } 35 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.audio.blue") or {}) 36 | end 37 | 38 | -- Create a new audio widget 39 | -- @param style Table containing colors and geometry parameters for all elemets 40 | ----------------------------------------------------------------------------------------------------------------------- 41 | function audio.new(style) 42 | 43 | -- Initialize vars 44 | -------------------------------------------------------------------------------- 45 | local style = redutil.table.merge(default_style(), style or {}) 46 | 47 | -- Construct widget 48 | -------------------------------------------------------------------------------- 49 | local icon = svgbox(style.icon) 50 | local dash = reddash(style.dash) 51 | 52 | local layout = wibox.layout.fixed.horizontal() 53 | layout:add(icon) 54 | layout:add(wibox.container.margin(dash, unpack(style.dmargin))) 55 | 56 | local widg = wibox.container.constraint(layout, "exact", style.width) 57 | 58 | -- User functions 59 | ------------------------------------------------------------ 60 | function widg:set_value(x) dash:set_value(x) end 61 | 62 | function widg:set_mute(mute) 63 | icon:set_color(mute and style.color.mute or style.color.icon) 64 | end 65 | 66 | -------------------------------------------------------------------------------- 67 | return widg 68 | end 69 | 70 | -- Config metatable to call audio module as function 71 | ----------------------------------------------------------------------------------------------------------------------- 72 | function audio.mt:__call(...) 73 | return audio.new(...) 74 | end 75 | 76 | return setmetatable(audio, audio.mt) 77 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/audio/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.audio" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/audio/red.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat volume indicator widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Indicator with audio icon 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local string = string 12 | local wibox = require("wibox") 13 | local beautiful = require("beautiful") 14 | local color = require("gears.color") 15 | 16 | local redutil = require("redflat.util") 17 | local svgbox = require("redflat.gauge.svgbox") 18 | 19 | 20 | -- Initialize tables for module 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local audio = { mt = {} } 23 | 24 | -- Generate default theme vars 25 | ----------------------------------------------------------------------------------------------------------------------- 26 | local function default_style() 27 | local style = { 28 | icon = {}, 29 | color = { main = "#b1222b", icon = "#a0a0a0", mute = "#404040" } 30 | } 31 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.audio.red") or {}) 32 | end 33 | 34 | -- Support functions 35 | ----------------------------------------------------------------------------------------------------------------------- 36 | local function pattern_string(height, value, c1, c2) 37 | return string.format("linear:0,%s:0,0:0,%s:%s,%s:%s,%s:1,%s", height, c1, value, c1, value, c2, c2) 38 | end 39 | 40 | -- Create a new audio widget 41 | -- @param style Table containing colors and geometry parameters for all elemets 42 | ----------------------------------------------------------------------------------------------------------------------- 43 | function audio.new(style) 44 | 45 | -- Initialize vars 46 | -------------------------------------------------------------------------------- 47 | local style = redutil.table.merge(default_style(), style or {}) 48 | 49 | -- Icon widgets 50 | ------------------------------------------------------------ 51 | local icon = {} 52 | icon.ready = svgbox(style.icon.ready or redutil.base.placeholder()) 53 | icon.ready:set_color(style.color.icon) 54 | icon.mute = svgbox(style.icon.mute or redutil.base.placeholder()) 55 | icon.mute:set_color(style.color.mute) 56 | 57 | -- Create widget 58 | -------------------------------------------------------------------------------- 59 | local widg = wibox.container.background(icon.ready) 60 | 61 | -- User functions 62 | ------------------------------------------------------------ 63 | function widg:set_value(x) 64 | if x > 1 then x = 1 end 65 | 66 | if self.widget._image then 67 | local h = self.widget._image.height 68 | icon.ready:set_color(pattern_string(h, x, style.color.main, style.color.icon)) 69 | end 70 | end 71 | 72 | function widg:set_mute(mute) 73 | widg:set_widget(mute and icon.mute or icon.ready) 74 | end 75 | 76 | -------------------------------------------------------------------------------- 77 | return widg 78 | end 79 | 80 | -- Config metatable to call audio module as function 81 | ----------------------------------------------------------------------------------------------------------------------- 82 | function audio.mt:__call(...) 83 | return audio.new(...) 84 | end 85 | 86 | return setmetatable(audio, audio.mt) 87 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/graph/bar.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat progressbar widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Horizontal progresspar 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local wibox = require("wibox") 11 | local beautiful = require("beautiful") 12 | local color = require("gears.color") 13 | 14 | local redutil = require("redflat.util") 15 | 16 | -- Initialize tables for module 17 | ----------------------------------------------------------------------------------------------------------------------- 18 | local progressbar = { mt = {} } 19 | 20 | -- Generate default theme vars 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local function default_style() 23 | local style = { 24 | color = { main = "#b1222b", gray = "#404040" } 25 | } 26 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.graph.bar") or {}) 27 | end 28 | 29 | -- Create a new progressbar widget 30 | -- @param style Table containing colors and geometry parameters for all elemets 31 | ----------------------------------------------------------------------------------------------------------------------- 32 | function progressbar.new(style) 33 | 34 | -- Initialize vars 35 | -------------------------------------------------------------------------------- 36 | local style = redutil.table.merge(default_style(), style or {}) 37 | 38 | -- updating values 39 | local data = { 40 | value = 0 41 | } 42 | 43 | -- Create custom widget 44 | -------------------------------------------------------------------------------- 45 | local widg = wibox.widget.base.make_widget() 46 | 47 | -- User functions 48 | ------------------------------------------------------------ 49 | function widg:set_value(x) 50 | data.value = x < 1 and x or 1 51 | self:emit_signal("widget::updated") 52 | end 53 | 54 | -- Fit 55 | ------------------------------------------------------------ 56 | function widg:fit(context, width, height) 57 | return width, height 58 | end 59 | 60 | -- Draw 61 | ------------------------------------------------------------ 62 | function widg:draw(context, cr, width, height) 63 | cr:set_source(color(style.color.gray)) 64 | cr:rectangle(0, 0, width, height) 65 | cr:fill() 66 | cr:set_source(color(style.color.main)) 67 | cr:rectangle(0, 0, data.value * width, height) 68 | cr:fill() 69 | end 70 | 71 | -------------------------------------------------------------------------------- 72 | return widg 73 | end 74 | 75 | -- Config metatable to call progressbar module as function 76 | ----------------------------------------------------------------------------------------------------------------------- 77 | function progressbar.mt:__call(...) 78 | return progressbar.new(...) 79 | end 80 | 81 | return setmetatable(progressbar, progressbar.mt) 82 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/graph/dash.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat dashcontrol widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Horizontal progresspar with stairs form 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local wibox = require("wibox") 12 | local beautiful = require("beautiful") 13 | local color = require("gears.color") 14 | 15 | local redutil = require("redflat.util") 16 | 17 | -- Initialize tables for module 18 | ----------------------------------------------------------------------------------------------------------------------- 19 | local dashcontrol = { mt = {} } 20 | 21 | -- Generate default theme vars 22 | ----------------------------------------------------------------------------------------------------------------------- 23 | local function default_style() 24 | local style = { 25 | bar = { width = 4, num = 10 }, 26 | color = { main = "#b1222b", gray = "#404040" } 27 | } 28 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.graph.dash") or {}) 29 | end 30 | 31 | -- Create a new dashcontrol widget 32 | -- @param style Table containing colors and geometry parameters for all elemets 33 | ----------------------------------------------------------------------------------------------------------------------- 34 | function dashcontrol.new(style) 35 | 36 | -- Initialize vars 37 | -------------------------------------------------------------------------------- 38 | local style = redutil.table.merge(default_style(), style or {}) 39 | 40 | -- updating values 41 | local data = { 42 | value = 0 43 | } 44 | 45 | -- Create custom widget 46 | -------------------------------------------------------------------------------- 47 | local widg = wibox.widget.base.make_widget() 48 | 49 | -- User functions 50 | ------------------------------------------------------------ 51 | function widg:set_value(x) 52 | data.value = x < 1 and x or 1 53 | self:emit_signal("widget::updated") 54 | end 55 | 56 | -- Fit 57 | ------------------------------------------------------------ 58 | function widg:fit(context, width, height) 59 | return width, height 60 | end 61 | 62 | -- Draw 63 | ------------------------------------------------------------ 64 | function widg:draw(context, cr, width, height) 65 | local wstep = (width - style.bar.width) / (style.bar.num - 1) 66 | local hstep = height / style.bar.num 67 | local point = math.ceil(data.value * style.bar.num) 68 | 69 | for i = 1, style.bar.num do 70 | cr:set_source(color(i > point and style.color.gray or style.color.main)) 71 | cr:rectangle((i - 1) * wstep, height, style.bar.width, - i * hstep) 72 | cr:fill() 73 | end 74 | end 75 | 76 | -------------------------------------------------------------------------------- 77 | return widg 78 | end 79 | 80 | -- Config metatable to call dashcontrol module as function 81 | ----------------------------------------------------------------------------------------------------------------------- 82 | function dashcontrol.mt:__call(...) 83 | return dashcontrol.new(...) 84 | end 85 | 86 | return setmetatable(dashcontrol, dashcontrol.mt) 87 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/graph/doublebar.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat doublebar widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Gauge wigget with two vertical progressbar 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local wibox = require("wibox") 11 | local beautiful = require("beautiful") 12 | local color = require("gears.color") 13 | 14 | local redutil = require("redflat.util") 15 | 16 | -- Initialize tables for module 17 | ----------------------------------------------------------------------------------------------------------------------- 18 | local doublebar = { mt = {} } 19 | 20 | -- Generate default theme vars 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local function default_style() 23 | local style = { 24 | line = { width = 4, gap = 5 }, 25 | color = { main = "#b1222b", gray = "#575757" } 26 | } 27 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.doublebar") or {}) 28 | end 29 | 30 | -- Create a new doublebar widget 31 | -- @param style Table containing colors and geometry parameters for all elemets 32 | ----------------------------------------------------------------------------------------------------------------------- 33 | function doublebar.new(style) 34 | 35 | -- Initialize vars 36 | -------------------------------------------------------------------------------- 37 | local style = redutil.table.merge(default_style(), style or {}) 38 | 39 | -- updating values 40 | local data = { 41 | value = {0, 0} 42 | } 43 | 44 | -- Create custom widget 45 | -------------------------------------------------------------------------------- 46 | local widg = wibox.widget.base.make_widget() 47 | 48 | -- User functions 49 | ------------------------------------------------------------ 50 | function widg:set_value(value) 51 | data.value = { value[1] < 1 and value[1] or 1, value[2] < 1 and value[2] or 1 } 52 | self:emit_signal("widget::updated") 53 | return self 54 | end 55 | 56 | -- Fit 57 | ------------------------------------------------------------ 58 | function widg:fit(context, width, height) 59 | local width = 2 * style.line.width + style.line.gap 60 | return width, height 61 | end 62 | 63 | -- Draw 64 | ------------------------------------------------------------ 65 | function widg:draw(context, cr, width, height) 66 | cr:set_source(color(style.color.gray)) 67 | cr:rectangle(0, 0, style.line.width, height) 68 | cr:rectangle(width - style.line.width, 0, style.line.width, height) 69 | cr:fill() 70 | 71 | cr:set_source(color(style.color.main)) 72 | cr:rectangle(0, height, style.line.width, - height * data.value[1]) 73 | cr:rectangle(width - style.line.width, height, style.line.width, - height * data.value[2]) 74 | cr:fill() 75 | end 76 | 77 | -------------------------------------------------------------------------------- 78 | return widg 79 | end 80 | 81 | -- Config metatable to call doublebar module as function 82 | ----------------------------------------------------------------------------------------------------------------------- 83 | function doublebar.mt:__call(...) 84 | return doublebar.new(...) 85 | end 86 | 87 | return setmetatable(doublebar, doublebar.mt) 88 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/graph/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.graph" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/icon/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.icon" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/icon/single.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat indicator widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Image indicator 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | local string = string 12 | local wibox = require("wibox") 13 | local beautiful = require("beautiful") 14 | local color = require("gears.color") 15 | 16 | local redutil = require("redflat.util") 17 | local svgbox = require("redflat.gauge.svgbox") 18 | 19 | 20 | -- Initialize tables for module 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local gicon = { mt = {} } 23 | 24 | -- Generate default theme vars 25 | ----------------------------------------------------------------------------------------------------------------------- 26 | local function default_style() 27 | local style = { 28 | icon = redutil.base.placeholder(), 29 | is_vertical = false, 30 | color = { main = "#b1222b", icon = "#a0a0a0", urgent = "#32882d" } 31 | } 32 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.icon.single") or {}) 33 | end 34 | 35 | -- Support functions 36 | ----------------------------------------------------------------------------------------------------------------------- 37 | local function pattern_string_v(height, value, c1, c2) 38 | return string.format("linear:0,%s:0,0:0,%s:%s,%s:%s,%s:1,%s", height, c1, value, c1, value, c2, c2) 39 | end 40 | 41 | local function pattern_string_h(width, value, c1, c2) 42 | return string.format("linear:0,0:%s,0:0,%s:%s,%s:%s,%s:1,%s", width, c1, value, c1, value, c2, c2) 43 | end 44 | 45 | -- Create a new gicon widget 46 | -- @param style Table containing colors and geometry parameters for all elemets 47 | ----------------------------------------------------------------------------------------------------------------------- 48 | function gicon.new(style) 49 | 50 | -- Initialize vars 51 | -------------------------------------------------------------------------------- 52 | local style = redutil.table.merge(default_style(), style or {}) 53 | local pattern = style.is_vertical and pattern_string_v or pattern_string_h 54 | 55 | local data = { 56 | color = style.color.main 57 | } 58 | 59 | -- Create widget 60 | -------------------------------------------------------------------------------- 61 | local widg = svgbox(style.icon) 62 | 63 | -- User functions 64 | ------------------------------------------------------------ 65 | function widg:set_value(x) 66 | if x > 1 then x = 1 end 67 | 68 | if self._image then 69 | local d = style.is_vertical and self._image.height or self._image.width 70 | widg:set_color(pattern(d, x, data.color, style.color.icon)) 71 | end 72 | end 73 | 74 | function widg:set_alert(alert) 75 | data.color = alert and style.color.urgent or style.color.main 76 | end 77 | 78 | -------------------------------------------------------------------------------- 79 | return widg 80 | end 81 | 82 | -- Config metatable to call gicon module as function 83 | ----------------------------------------------------------------------------------------------------------------------- 84 | function gicon.mt:__call(...) 85 | return gicon.new(...) 86 | end 87 | 88 | return setmetatable(gicon, gicon.mt) 89 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/monitor/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.monitor" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/separator.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat separatoe widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Simple graphical separator to decorate panel 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local unpack = unpack 11 | local wibox = require("wibox") 12 | local beautiful = require("beautiful") 13 | local color = require("gears.color") 14 | 15 | local redutil = require("redflat.util") 16 | 17 | -- Initialize tables for module 18 | ----------------------------------------------------------------------------------------------------------------------- 19 | local separator = {} 20 | 21 | -- Generate default theme vars 22 | ----------------------------------------------------------------------------------------------------------------------- 23 | local function default_style() 24 | local style = { 25 | marginv = { 0, 0, 0, 0 }, 26 | marginh = { 0, 0, 0, 0 }, 27 | color = { shadow1 = "#141414", shadow2 = "#313131" } 28 | } 29 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.separator") or {}) 30 | end 31 | 32 | -- Create a new separator widget 33 | -- Total size two pixels bigger than sum of margins for general direction 34 | ----------------------------------------------------------------------------------------------------------------------- 35 | local function separator_base(horizontal, style) 36 | 37 | -- Initialize vars 38 | -------------------------------------------------------------------------------- 39 | local style = redutil.table.merge(default_style(), style or {}) 40 | if not style.margin then 41 | style.margin = horizontal and style.marginh or style.marginv 42 | end 43 | 44 | -- Create custom widget 45 | -------------------------------------------------------------------------------- 46 | local widg = wibox.widget.base.make_widget() 47 | 48 | -- Fit 49 | ------------------------------------------------------------ 50 | function widg:fit(context, width, height) 51 | if horizontal then 52 | return width, 2 53 | else 54 | return 2, height 55 | end 56 | end 57 | 58 | -- Draw 59 | ------------------------------------------------------------ 60 | function widg:draw(context, cr, width, height) 61 | cr:set_source(color(style.color.shadow1)) 62 | if horizontal then cr:rectangle(0, 0, width, 1) 63 | else cr:rectangle(0, 0, 1, height) end 64 | cr:fill() 65 | 66 | cr:set_source(color(style.color.shadow2)) 67 | if horizontal then cr:rectangle(0, 1, width, 1) 68 | else cr:rectangle(1, 0, 1, height) end 69 | cr:fill() 70 | end 71 | 72 | -------------------------------------------------------------------------------- 73 | return wibox.container.margin(widg, unpack(style.margin)) 74 | end 75 | 76 | -- Horizontal and vertial variants 77 | ----------------------------------------------------------------------------------------------------------------------- 78 | function separator.vertical(style) 79 | return separator_base(false, style) 80 | end 81 | 82 | function separator.horizontal(style) 83 | return separator_base(true, style) 84 | end 85 | 86 | ----------------------------------------------------------------------------------------------------------------------- 87 | return separator 88 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/tag/green.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat tag widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Custom widget to display tag info 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local math = math 11 | 12 | local awful = require("awful") 13 | local wibox = require("wibox") 14 | local beautiful = require("beautiful") 15 | local color = require("gears.color") 16 | 17 | local redutil = require("redflat.util") 18 | local svgbox = require("redflat.gauge.svgbox") 19 | 20 | -- Initialize tables for module 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local greentag = { mt = {} } 23 | 24 | -- Generate default theme vars 25 | ----------------------------------------------------------------------------------------------------------------------- 26 | local function default_style() 27 | local style = { 28 | width = 80, 29 | margin = { 2, 2, 2, 2 }, 30 | icon = { unknown = redutil.base.placeholder() }, 31 | color = { main = "#b1222b", gray = "#575757", icon = "#a0a0a0", urgent = "#32882d" }, 32 | } 33 | 34 | return redutil.table.merge(style, redutil.table.check(beautiful, "gauge.tag.green") or {}) 35 | end 36 | 37 | 38 | -- Create a new tag widget 39 | -- @param style Table containing colors and geometry parameters for all elemets 40 | ----------------------------------------------------------------------------------------------------------------------- 41 | function greentag.new(style) 42 | 43 | -- Initialize vars 44 | -------------------------------------------------------------------------------- 45 | local style = redutil.table.merge(default_style(), style or {}) 46 | 47 | -- updating values 48 | local data = { 49 | state = {}, 50 | width = style.width or nil 51 | } 52 | 53 | -- Create custom widget 54 | -------------------------------------------------------------------------------- 55 | local widg = wibox.layout.align.horizontal() 56 | widg._svgbox = svgbox() 57 | widg:set_middle(wibox.container.margin(widg._svgbox, unpack(style.margin))) 58 | widg:set_forced_width(data.width) 59 | widg:set_expand("outside") 60 | 61 | -- User functions 62 | ------------------------------------------------------------ 63 | function widg:set_state(state) 64 | data.state = state 65 | icon = style.icon[awful.layout.getname(state.layout)] or style.icon.unknown 66 | self._svgbox:set_image(icon) 67 | self._svgbox:set_color( 68 | data.state.active and style.color.main 69 | or data.state.urgent and style.color.urgent 70 | or data.state.occupied and style.color.icon 71 | or style.color.gray 72 | ) 73 | end 74 | 75 | function widg:set_width(width) 76 | data.width = width 77 | self.set_forced_width(width) 78 | end 79 | 80 | -------------------------------------------------------------------------------- 81 | return widg 82 | end 83 | 84 | -- Config metatable to call greentag module as function 85 | ----------------------------------------------------------------------------------------------------------------------- 86 | function greentag.mt:__call(...) 87 | return greentag.new(...) 88 | end 89 | 90 | return setmetatable(greentag, greentag.mt) 91 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/tag/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.tag" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/gauge/task/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.gauge.task" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | local setmetatable = setmetatable 5 | 6 | return setmetatable( 7 | { _NAME = "redflat" }, 8 | { __index = function(table, key) 9 | local module = rawget(table, key) 10 | return module or require(table._NAME .. '.' .. key) 11 | end } 12 | ) 13 | -------------------------------------------------------------------------------- /.config/awesome/redflat/layout/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.layout" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/service/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.service" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/timestamp.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat time stamp -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Make time stamp on every awesome exit or restart 5 | -- It still working if user config was broken and default rc loaded 6 | -- Time stamp may be useful for making diffrence between awesome wm first run or restart 7 | ----------------------------------------------------------------------------------------------------------------------- 8 | 9 | -- Grab environment 10 | ----------------------------------------------------------------------------------------------------------------------- 11 | local tonumber = tonumber 12 | local io = io 13 | local os = os 14 | 15 | local awful = require("awful") 16 | 17 | -- Initialize tables for module 18 | ----------------------------------------------------------------------------------------------------------------------- 19 | local timestamp = {} 20 | 21 | timestamp.path = "/tmp/awesome-stamp" 22 | timestamp.timeout = 5 23 | timestamp.bin = "awesome-client" 24 | 25 | -- Grab environment 26 | ----------------------------------------------------------------------------------------------------------------------- 27 | local awful = require("awful") 28 | local redutil = require("redflat.util") 29 | 30 | -- Stamp functions 31 | ----------------------------------------------------------------------------------------------------------------------- 32 | 33 | -- make time stamp 34 | function timestamp.make() 35 | local file = io.open(timestamp.path, "w") 36 | file:write(os.time()) 37 | file:close() 38 | end 39 | 40 | -- get time stamp 41 | function timestamp.get() 42 | res = redutil.read.file(timestamp.path) 43 | if res then return tonumber(res) end 44 | end 45 | 46 | -- check if it is first start 47 | function timestamp.is_startup() 48 | local stamp = timestamp.get() 49 | return not stamp or (os.time() - stamp) > timestamp.timeout 50 | end 51 | 52 | -- Connect exit signal on module initialization 53 | ----------------------------------------------------------------------------------------------------------------------- 54 | awesome.connect_signal("exit", 55 | function() 56 | timestamp.make() 57 | awful.spawn.with_shell( 58 | string.format( 59 | "sleep 2 && %s %s", 60 | timestamp.bin, [["if timestamp == nil then timestamp = require('redflat.timestamp') end"]] 61 | ) 62 | ) 63 | end 64 | ) 65 | 66 | ----------------------------------------------------------------------------------------------------------------------- 67 | return timestamp 68 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/base.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local wibox = require("wibox") 4 | local surface = require("gears.surface") 5 | 6 | local base = {} 7 | 8 | -- Functions 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | 11 | -- Advanced buttons setup 12 | -- Copypasted from awful.widget.common 13 | -- (c) 2008-2009 Julien Danjou 14 | -------------------------------------------------------------------------------- 15 | function base.buttons(buttons, object) 16 | if buttons then 17 | local btns = {} 18 | 19 | for kb, b in ipairs(buttons) do 20 | -- Create a proxy button object: it will receive the real 21 | -- press and release events, and will propagate them the the 22 | -- button object the user provided, but with the object as 23 | -- argument. 24 | local btn = button { modifiers = b.modifiers, button = b.button } 25 | btn:connect_signal("press", function () b:emit_signal("press", object) end) 26 | btn:connect_signal("release", function () b:emit_signal("release", object) end) 27 | btns[#btns + 1] = btn 28 | end 29 | 30 | return btns 31 | end 32 | end 33 | 34 | -- Create cairo surface from text (useful for themed icons replacement) 35 | -------------------------------------------------------------------------------- 36 | function base.placeholder(args) 37 | local args = args or {} 38 | local tb = wibox.widget { 39 | markup = args.txt or "?", 40 | align = "center", 41 | valign = "center", 42 | widget = wibox.widget.textbox 43 | } 44 | 45 | return surface.widget_to_surface(tb, args.width or 24, args.height or 24) 46 | end 47 | 48 | 49 | -- End 50 | ----------------------------------------------------------------------------------------------------------------------- 51 | return base 52 | 53 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/cairo.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | 4 | local cairo = { textcentre = {} } 5 | 6 | -- Functions 7 | ----------------------------------------------------------------------------------------------------------------------- 8 | 9 | -- Draw text aligned by center 10 | ------------------------------------------------------------ 11 | function cairo.textcentre.vertical(cr, coord, text) 12 | local ext = cr:text_extents(text) 13 | cr:move_to(coord[1] - (ext.width/2 + ext.x_bearing), coord[2] - (ext.height/2 + ext.y_bearing)) 14 | cr:show_text(text) 15 | end 16 | 17 | -- Draw text aligned by center horizontal only 18 | ------------------------------------------------------------ 19 | function cairo.textcentre.horizontal(cr, coord, text) 20 | local ext = cr:text_extents(text) 21 | cr:move_to(coord[1] - (ext.width/2 + ext.x_bearing), coord[2]) 22 | cr:show_text(text) 23 | end 24 | 25 | -- Set font 26 | ------------------------------------------------------------ 27 | function cairo.set_font(cr, font) 28 | cr:set_font_size(font.size) 29 | cr:select_font_face(font.font, font.slant, font.face) 30 | end 31 | 32 | 33 | -- End 34 | ----------------------------------------------------------------------------------------------------------------------- 35 | return cairo 36 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/client.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local awful = require("awful") 4 | local client = { floatset = {} } 5 | 6 | -- Functions 7 | ----------------------------------------------------------------------------------------------------------------------- 8 | local function size_correction(c, geometry, is_restore) 9 | local sign = is_restore and - 1 or 1 10 | local bg = sign * 2 * c.border_width 11 | 12 | if geometry.width then geometry.width = geometry.width - bg end 13 | if geometry.height then geometry.height = geometry.height - bg end 14 | end 15 | 16 | -- Client geometry correction by border width 17 | -------------------------------------------------------------------------------- 18 | function client.fullgeometry(c, g) 19 | local ng 20 | 21 | if g then 22 | if g.width and g.width <= 1 then return end 23 | if g.height and g.height <= 1 then return end 24 | 25 | size_correction(c, g, false) 26 | ng = c:geometry(g) 27 | else 28 | ng = c:geometry() 29 | end 30 | 31 | size_correction(c, ng, true) 32 | 33 | return ng 34 | end 35 | 36 | -- Smart swap include floating layout 37 | -------------------------------------------------------------------------------- 38 | function client.swap(c1, c2) 39 | local lay = awful.layout.get(c1.screen) 40 | if awful.util.table.hasitem(client.floatset, lay) then 41 | local g1, g2 = client.fullgeometry(c1), client.fullgeometry(c2) 42 | 43 | client.fullgeometry(c1, g2) 44 | client.fullgeometry(c2, g1) 45 | end 46 | 47 | c1:swap(c2) 48 | end 49 | 50 | 51 | -- End 52 | ----------------------------------------------------------------------------------------------------------------------- 53 | return client 54 | 55 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/desktop.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local wibox = require("wibox") 4 | 5 | local desktop = {} 6 | 7 | -- Functions 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local function sum(t, n) 10 | local s = 0 11 | local n = n or #t 12 | for i = 1, n do s = s + t[i] end 13 | return s 14 | end 15 | 16 | local function wposition(grid, n, workarea, dir) 17 | local total = sum(grid[dir]) 18 | local full_gap = sum(grid.edge[dir]) 19 | local gap = #grid[dir] > 1 and (workarea[dir] - total - full_gap) / (#grid[dir] - 1) or 0 20 | 21 | local current = sum(grid[dir], n - 1) 22 | local pos = grid.edge[dir][1] + (n - 1) * gap + current 23 | 24 | return pos 25 | end 26 | 27 | -- Calculate size and position for desktop widget 28 | ------------------------------------------------------------ 29 | function desktop.wgeometry(grid, place, workarea) 30 | return { 31 | x = wposition(grid, place[1], workarea, "width"), 32 | y = wposition(grid, place[2], workarea, "height"), 33 | width = grid.width[place[1]], 34 | height = grid.height[place[2]] 35 | } 36 | end 37 | 38 | -- Edge constructor 39 | ------------------------------------------------------------ 40 | function desktop.edge(direction, zone) 41 | local edge = { area = {} } 42 | 43 | edge.wibox = wibox({ 44 | bg = "#00000000", -- transparent without compositing manager 45 | opacity = 0, -- transparent with compositing manager 46 | ontop = true, 47 | visible = true 48 | }) 49 | 50 | edge.layout = wibox.layout.fixed[direction]() 51 | edge.wibox:set_widget(edge.layout) 52 | 53 | if zone then 54 | for i, z in ipairs(zone) do 55 | edge.area[i] = wibox.container.margin(nil, 0, 0, z) 56 | edge.layout:add(edge.area[i]) 57 | end 58 | end 59 | 60 | return edge 61 | end 62 | 63 | 64 | -- End 65 | ----------------------------------------------------------------------------------------------------------------------- 66 | return desktop 67 | 68 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = function(table_, key) 6 | local module = rawget(table_, key) 7 | return module or require(table_._NAME .. '.' .. key) 8 | end 9 | 10 | local setmetatable = setmetatable 11 | 12 | local lib = { _NAME = "redflat.util", wrequire = wrequire } 13 | 14 | return setmetatable(lib, { __index = wrequire }) 15 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/key.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local table = table 4 | local awful = require("awful") 5 | 6 | local key = {} 7 | 8 | key.ignored_mod = { "Unknown", "Mod2" } 9 | 10 | -- Functions 11 | ----------------------------------------------------------------------------------------------------------------------- 12 | 13 | -- Build awful keys from reflat raw keys table 14 | ------------------------------------------------------------ 15 | function key.build(t) 16 | local temp = {} 17 | 18 | for _, v in ipairs(t) do 19 | table.insert(temp, awful.key(unpack(v))) 20 | end 21 | 22 | return awful.util.table.join(unpack(temp)) 23 | end 24 | 25 | -- Check if redflat raw key matched with awful prompt key 26 | ------------------------------------------------------------ 27 | function key.match_prompt(rawkey, mod, _key) 28 | for m, _ in pairs(mod) do 29 | if awful.util.table.hasitem(key.ignored_mod, m) then 30 | mod[m] = nil 31 | break 32 | end 33 | end 34 | 35 | local modcheck = true 36 | local count = 0 37 | 38 | for k, _ in pairs(mod) do 39 | modcheck = modcheck and awful.util.table.hasitem(rawkey[1], k) 40 | count = count + 1 41 | end 42 | 43 | return #rawkey[1] == count and modcheck and _key:lower() == rawkey[2]:lower() 44 | end 45 | 46 | -- Check if redflat raw key matched with awful prompt key 47 | ------------------------------------------------------------ 48 | function key.match_grabber(rawkey, mod, _key) 49 | for i, m in ipairs(mod) do 50 | if awful.util.table.hasitem(key.ignored_mod, m) then 51 | table.remove(mod, i) 52 | break 53 | end 54 | end 55 | 56 | local modcheck = #mod == #rawkey[1] 57 | for _, v in ipairs(mod) do modcheck = modcheck and awful.util.table.hasitem(rawkey[1], v) end 58 | return modcheck and _key:lower() == rawkey[2]:lower() 59 | end 60 | 61 | 62 | -- End 63 | ----------------------------------------------------------------------------------------------------------------------- 64 | return key 65 | 66 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/placement.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local awful = require("awful") 4 | 5 | local placement = {} 6 | local direction = { x = "width", y = "height" } 7 | 8 | -- Functions 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | function placement.add_gap(geometry, gap) 11 | return { 12 | x = geometry.x + gap, 13 | y = geometry.y + gap, 14 | width = geometry.width - 2 * gap, 15 | height = geometry.height - 2 * gap 16 | } 17 | end 18 | 19 | function placement.no_offscreen(object, gap, area) 20 | local geometry = object:geometry() 21 | local border = object.border_width 22 | 23 | local screen_idx = object.screen or awful.screen.getbycoord(geometry.x, geometry.y) 24 | local area = area or screen[screen_idx].workarea 25 | if gap then area = placement.add_gap(area, gap) end 26 | 27 | for coord, dim in pairs(direction) do 28 | if geometry[coord] + geometry[dim] + 2 * border > area[coord] + area[dim] then 29 | geometry[coord] = area[coord] + area[dim] - geometry[dim] - 2*border 30 | elseif geometry[coord] < area[coord] then 31 | geometry[coord] = area[coord] 32 | end 33 | end 34 | 35 | object:geometry(geometry) 36 | end 37 | 38 | local function centered_base(is_h, is_v) 39 | return function(object, gap, area) 40 | local geometry = object:geometry() 41 | local new_geometry = {} 42 | 43 | local screen_idx = object.screen or awful.screen.getbycoord(geometry.x, geometry.y) 44 | local area = area or screen[screen_idx].geometry 45 | if gap then area = placement.add_gap(area, gap) end 46 | 47 | if is_h then new_geometry.x = area.x + (area.width - geometry.width) / 2 - object.border_width end 48 | if is_v then new_geometry.y = area.y + (area.height - geometry.height) / 2 - object.border_width end 49 | 50 | return object:geometry(new_geometry) 51 | end 52 | end 53 | 54 | placement.centered = setmetatable({}, { 55 | __call = function(_, ...) return centered_base(true, true)(...) end 56 | }) 57 | placement.centered.horizontal = centered_base(true, false) 58 | placement.centered.vertical = centered_base(false, true) 59 | 60 | 61 | -- End 62 | ----------------------------------------------------------------------------------------------------------------------- 63 | return placement 64 | 65 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/read.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local io = io 4 | local assert = assert 5 | 6 | local read = {} 7 | 8 | -- Functions 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | function read.file(path) 11 | local file = io.open(path) 12 | 13 | if file then 14 | output = file:read("*a") 15 | file:close() 16 | else 17 | return nil 18 | end 19 | 20 | return output 21 | end 22 | 23 | function read.output(cmd) 24 | local file = assert(io.popen(cmd, 'r')) 25 | local output = file:read('*all') 26 | file:close() 27 | 28 | return output 29 | end 30 | 31 | -- End 32 | ----------------------------------------------------------------------------------------------------------------------- 33 | return read 34 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/table.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local awful = require("awful") 4 | 5 | local table_ = {} 6 | 7 | -- Functions 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | 10 | -- Merge two table to new one 11 | ------------------------------------------------------------ 12 | function table_.merge(t1, t2) 13 | local ret = awful.util.table.clone(t1) 14 | 15 | for k, v in pairs(t2) do 16 | if type(v) == "table" and ret[k] and type(ret[k]) == "table" then 17 | ret[k] = table_.merge(ret[k], v) 18 | else 19 | ret[k] = v 20 | end 21 | end 22 | 23 | return ret 24 | end 25 | 26 | -- Check if deep key exists 27 | ------------------------------------------------------------ 28 | function table_.check(t, s) 29 | local v = t 30 | 31 | for key in string.gmatch(s, "([^%.]+)(%.?)") do 32 | if v[key] then 33 | v = v[key] 34 | else 35 | return nil 36 | end 37 | end 38 | 39 | return v 40 | end 41 | 42 | -- End 43 | ----------------------------------------------------------------------------------------------------------------------- 44 | return table_ 45 | 46 | -------------------------------------------------------------------------------- /.config/awesome/redflat/util/text.lua: -------------------------------------------------------------------------------- 1 | -- RedFlat util submodule 2 | 3 | local math = math 4 | local string = string 5 | 6 | local text = {} 7 | 8 | -- Functions 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | 11 | -- Format string to number with minimum length 12 | ------------------------------------------------------------ 13 | function text.oformat(v, w) 14 | local p = math.ceil(math.log10(v)) 15 | local prec = v <= 10 and w - 1 or p > w and 0 or w - p 16 | return string.format('%.' .. prec .. 'f', v) 17 | end 18 | 19 | -- Format output for destop widgets 20 | ------------------------------------------------------------ 21 | function text.dformat(value, unit, w, spacer) 22 | local res = value 23 | local add = "" 24 | local w = w or 3 25 | local spacer = spacer or " " 26 | 27 | for _, v in pairs(unit) do 28 | if value > v[2] then 29 | res = math.abs(value/v[2]) 30 | add = v[1] 31 | end 32 | end 33 | 34 | return text.oformat(res, w) .. spacer .. add 35 | end 36 | 37 | 38 | -- End 39 | ----------------------------------------------------------------------------------------------------------------------- 40 | return text 41 | 42 | -------------------------------------------------------------------------------- /.config/awesome/redflat/widget/init.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat library -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | 5 | local wrequire = require("redflat.util").wrequire 6 | local setmetatable = setmetatable 7 | 8 | local lib = { _NAME = "redflat.widget" } 9 | 10 | return setmetatable(lib, { __index = wrequire }) 11 | -------------------------------------------------------------------------------- /.config/awesome/redflat/widget/sysmon.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat sysmon widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Monitoring widget 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | 7 | -- Grab environment 8 | ----------------------------------------------------------------------------------------------------------------------- 9 | local setmetatable = setmetatable 10 | local wibox = require("wibox") 11 | local beautiful = require("beautiful") 12 | local timer = require("gears.timer") 13 | 14 | local monitor = require("redflat.gauge.monitor.plain") 15 | local tooltip = require("redflat.float.tooltip") 16 | local system = require("redflat.system") 17 | local redutil = require("redflat.util") 18 | 19 | -- Initialize tables and vars for module 20 | ----------------------------------------------------------------------------------------------------------------------- 21 | local sysmon = { mt = {} } 22 | 23 | -- Generate default theme vars 24 | ----------------------------------------------------------------------------------------------------------------------- 25 | local function default_style() 26 | local style = { 27 | timeout = 5, 28 | width = nil, 29 | widget = monitor.new 30 | } 31 | return redutil.table.merge(style, redutil.table.check(beautiful, "widget.sysmon") or {}) 32 | end 33 | 34 | -- Create a new cpu monitor widget 35 | ----------------------------------------------------------------------------------------------------------------------- 36 | function sysmon.new(args, style) 37 | 38 | -- Initialize vars 39 | -------------------------------------------------------------------------------- 40 | local args = args or {} 41 | local style = redutil.table.merge(default_style(), style or {}) 42 | 43 | -- Create monitor widget 44 | -------------------------------------------------------------------------------- 45 | local widg = style.widget(style.monitor) 46 | 47 | -- Set tooltip 48 | -------------------------------------------------------------------------------- 49 | local tp = tooltip({ objects = { widg } }, style.tooltip) 50 | 51 | -- Set update timer 52 | -------------------------------------------------------------------------------- 53 | local t = timer({ timeout = style.timeout }) 54 | t:connect_signal("timeout", 55 | function() 56 | local state = args.func(args.arg) 57 | widg:set_value(state.value) 58 | widg:set_alert(state.alert) 59 | tp:set_text(state.text) 60 | end 61 | ) 62 | t:start() 63 | t:emit_signal("timeout") 64 | 65 | -------------------------------------------------------------------------------- 66 | return widg 67 | end 68 | 69 | -- Config metatable to call module as function 70 | ----------------------------------------------------------------------------------------------------------------------- 71 | function sysmon.mt:__call(...) 72 | return sysmon.new(...) 73 | end 74 | 75 | return setmetatable(sysmon, sysmon.mt) 76 | -------------------------------------------------------------------------------- /.config/awesome/redflat/widget/textclock.lua: -------------------------------------------------------------------------------- 1 | ----------------------------------------------------------------------------------------------------------------------- 2 | -- RedFlat clock widget -- 3 | ----------------------------------------------------------------------------------------------------------------------- 4 | -- Text clock widget with date in tooltip (optional) 5 | ----------------------------------------------------------------------------------------------------------------------- 6 | -- Some code was taken from 7 | ------ awful.widget.textclock v3.5.2 8 | ------ (c) 2009 Julien Danjou 9 | ----------------------------------------------------------------------------------------------------------------------- 10 | 11 | local setmetatable = setmetatable 12 | local os = os 13 | local textbox = require("wibox.widget.textbox") 14 | local beautiful = require("beautiful") 15 | local timer = require("gears.timer") 16 | 17 | local tooltip = require("redflat.float.tooltip") 18 | local redutil = require("redflat.util") 19 | 20 | -- Initialize tables and vars for module 21 | ----------------------------------------------------------------------------------------------------------------------- 22 | local textclock = { mt = {} } 23 | 24 | -- Generate default theme vars 25 | ----------------------------------------------------------------------------------------------------------------------- 26 | local function default_style() 27 | local style = { 28 | font = "Sans 12", 29 | tooltip = {}, 30 | color = { text = "#aaaaaa" } 31 | } 32 | return redutil.table.merge(style, redutil.table.check(beautiful, "widget.textclock") or {}) 33 | end 34 | 35 | -- Create a textclock widget. It draws the time it is in a textbox. 36 | -- @param format The time format. Default is " %a %b %d, %H:%M ". 37 | -- @param timeout How often update the time. Default is 60. 38 | -- @return A textbox widget 39 | ----------------------------------------------------------------------------------------------------------------------- 40 | function textclock.new(args, style) 41 | 42 | -- Initialize vars 43 | -------------------------------------------------------------------------------- 44 | local args = args or {} 45 | local timeformat = args.timeformat or " %a %b %d, %H:%M " 46 | local timeout = args.timeout or 60 47 | local style = redutil.table.merge(default_style(), style or {}) 48 | 49 | -- Create widget 50 | -------------------------------------------------------------------------------- 51 | local widg = textbox() 52 | widg:set_font(style.font) 53 | 54 | -- Set tooltip if need 55 | -------------------------------------------------------------------------------- 56 | local tp 57 | if args.dateformat then tp = tooltip({ objects = { widg } }, style.tooltip) end 58 | 59 | -- Set update timer 60 | -------------------------------------------------------------------------------- 61 | local timer = timer({ timeout = timeout }) 62 | timer:connect_signal("timeout", 63 | function() 64 | widg:set_markup('' .. os.date(timeformat) .. "") 65 | if args.dateformat then tp:set_text(os.date(args.dateformat)) end 66 | end) 67 | timer:start() 68 | timer:emit_signal("timeout") 69 | 70 | -------------------------------------------------------------------------------- 71 | return widg 72 | end 73 | 74 | -- Config metatable to call textclock module as function 75 | ----------------------------------------------------------------------------------------------------------------------- 76 | function textclock.mt:__call(...) 77 | return textclock.new(...) 78 | end 79 | 80 | return setmetatable(textclock, textclock.mt) 81 | -------------------------------------------------------------------------------- /.config/awesome/scripts/pop_mail_checker.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import poplib 4 | from email import parser 5 | 6 | pop_conn = poplib.POP3_SSL('pop.gmail.com') 7 | pop_conn.user('username') 8 | pop_conn.pass_('password') 9 | #Get message num from server: 10 | numMsgs, totalSize = pop_conn.stat() 11 | #Print result: 12 | print numMsgs 13 | #Quit: 14 | pop_conn.quit() 15 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/common: -------------------------------------------------------------------------------- 1 | ../colorless/common -------------------------------------------------------------------------------- /.config/awesome/themes/blue/desktop/bstar.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/desktop/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/desktop/star.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/desktop/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/layouts: -------------------------------------------------------------------------------- 1 | ../colorless/layouts -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/battery.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/brightness.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/monitor.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/upgrades.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/blue/widget/wireless.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/awesome.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/check.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/player/cover.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/player/next.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/player/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/player/play.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/player/previous.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/submenu.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/unknown.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/warning.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/below.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/close.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/floating.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/maximized.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/ontop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/common/window_control/pin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/cornerne.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/cornernw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/cornerse.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/cornersw.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/fair.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/floating.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/fullscreen.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/grid.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/magnifier.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/map.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/max.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/spiral.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/tile.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/tilebottom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/tileleft.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/layouts/tiletop.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/wallpaper/primary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/t60r/dots/88ea03ea1ef4a24acada9afea1617d4efdc15e44/.config/awesome/themes/colorless/wallpaper/primary.png -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/widget/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/widget/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/widget/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/colorless/widget/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/common: -------------------------------------------------------------------------------- 1 | ../colorless/common -------------------------------------------------------------------------------- /.config/awesome/themes/green/desktop/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/desktop/fire.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/desktop/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/layouts: -------------------------------------------------------------------------------- 1 | ../colorless/layouts -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/brightness.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/mute.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/green/widget/upgrades.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/common: -------------------------------------------------------------------------------- 1 | ../colorless/common -------------------------------------------------------------------------------- /.config/awesome/themes/orange/layouts: -------------------------------------------------------------------------------- 1 | ../colorless/layouts -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/brightness.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/headphones.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/orange/widget/upgrades.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/common: -------------------------------------------------------------------------------- 1 | ../colorless/common -------------------------------------------------------------------------------- /.config/awesome/themes/red/desktop/down.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/desktop/ed2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/desktop/up.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/layouts: -------------------------------------------------------------------------------- 1 | ../colorless/layouts -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/audio.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/brightness.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/keyboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/mail.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/mute.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/search.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/awesome/themes/red/widget/upgrades.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.config/bspwm/bspwmrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | #bspc monitor -d 一 二 三 四 五 六 七 八 九 十 4 | #bspc monitor -d 一 二 三 四 五 六 七 5 | # formal numerals now 6 | bspc monitor -d 壱 弐 参 肆 伍 陸 漆 7 | 8 | background=$(xrdb -query | grep "background" | cut -f2 | sed -r 's/#//' | head -n 1) 9 | foreground=$(xrdb -query | grep "foreground" | cut -f2 | sed -r 's/#//' | head -n 1) 10 | color0=$(xrdb -query | grep "color0" | cut -f2 | sed -r 's/#//' | head -n 1) 11 | color1=$(xrdb -query | grep "color1" | cut -f2 | sed -r 's/#//' | head -n 1) 12 | color2=$(xrdb -query | grep "color2" | cut -f2 | sed -r 's/#//' | head -n 1) 13 | color3=$(xrdb -query | grep "color3" | cut -f2 | sed -r 's/#//' | head -n 1) 14 | color4=$(xrdb -query | grep "color4" | cut -f2 | sed -r 's/#//' | head -n 1) 15 | color5=$(xrdb -query | grep "color5" | cut -f2 | sed -r 's/#//' | head -n 1) 16 | color6=$(xrdb -query | grep "color6" | cut -f2 | sed -r 's/#//' | head -n 1) 17 | color7=$(xrdb -query | grep "color7" | cut -f2 | sed -r 's/#//' | head -n 1) 18 | color8=$(xrdb -query | grep "color8" | cut -f2 | sed -r 's/#//' | head -n 1) 19 | 20 | bspc config border_width 4 21 | bspc config window_gap 8 22 | 23 | bspc config split_ratio 0.50 24 | bspc config borderless_monocle true 25 | bspc config gapless_monocle true 26 | bspc config focus_follows_pointer true 27 | 28 | #bspc config normal_border_color "#$color8" 29 | #bspc config active_border_color "#$color9" 30 | #bspc config focused_border_color "#$color9" 31 | bspc config presel_feedback_color "#$color1" 32 | 33 | bspc rule -a Gimp desktop='^8' state=floating follow=on 34 | bspc rule -a Chromium desktop='^2' 35 | bspc rule -a mplayer2 state=floating 36 | bspc rule -a Kupfer.py focus=on 37 | bspc rule -a Screenkey manage=off 38 | 39 | # Autostart 40 | colors.sh & 41 | -------------------------------------------------------------------------------- /.config/nvim/appearance.vim: -------------------------------------------------------------------------------- 1 | syntax enable 2 | colorscheme espresso 3 | set laststatus=2 4 | syntax enable 5 | set fillchars+=vert:\ 6 | 7 | set nowrap 8 | set number 9 | set relativenumber 10 | set noshowmode 11 | 12 | 13 | set statusline= 14 | set statusline+=%#PrimaryBlock# 15 | set statusline+=%#SecondaryBlock# 16 | set statusline+=%{StatuslineGit()} 17 | set statusline+=%#Blanks# 18 | set statusline+=\ %t\ 19 | set statusline+=%(%m%) 20 | set statusline+=%= 21 | set statusline+=%#SecondaryBlock# 22 | set statusline+=\ Ln 23 | set statusline+=\ %l 24 | set statusline+=,Col 25 | set statusline+=\ %c\ 26 | set statusline+=%#PrimaryBlock# 27 | set statusline+=\ %Y\ 28 | 29 | function! GitBranch() 30 | return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") 31 | endfunction 32 | 33 | function! StatuslineGit() 34 | let l:branchname = GitBranch() 35 | return strlen(l:branchname) > 0?' '.l:branchname.' ':'' 36 | endfunction 37 | 38 | " general settings 39 | set nobackup 40 | set nowritebackup 41 | set noswapfile " get rid of swapfiles everywhere 42 | set dir=/tmpset 43 | 44 | syntax on 45 | 46 | set omnifunc=syntaxcomplete#Complete 47 | set completefunc=LanguageClient#complete 48 | set list 49 | filetype indent on 50 | set laststatus=2 51 | set nowrap 52 | set noshowmode 53 | set listchars=tab:│\ ,nbsp:␣,trail:∙,extends:>,precedes:<,eol:¬ 54 | set fillchars=vert:\│ 55 | set scrolloff=3 56 | set ignorecase 57 | set smartcase 58 | set sidescroll=40 59 | set incsearch 60 | set hlsearch 61 | set undofile 62 | set undodir=~/tmp 63 | set path+=** 64 | set inccommand=split 65 | set backspace=indent,eol,start 66 | set hidden 67 | set wildmenu 68 | set foldmethod=manual 69 | set complete=.,w,b,i,u,t, 70 | "set background=dark 71 | set mouse=a 72 | -------------------------------------------------------------------------------- /.config/nvim/basic.vim: -------------------------------------------------------------------------------- 1 | set nocompatible 2 | filetype off 3 | filetype plugin on 4 | set nocp 5 | syntax on 6 | filetype plugin indent on 7 | set tabstop=4 8 | set shiftwidth=4 9 | set expandtab 10 | set nobackup 11 | set noswapfile 12 | -------------------------------------------------------------------------------- /.config/nvim/init.vim: -------------------------------------------------------------------------------- 1 | " vim:fdm=marker 2 | 3 | " __ _______ __ __ _____ _____ 4 | " \ \ / /_ _| \/ | __ \ / ____| 5 | " \ \ / / | | | \ / | |__) | | 6 | " \ \/ / | | | |\/| | _ /| | 7 | " \ / _| |_| | | | | \ \| |____ 8 | " \/ |_____|_| |_|_| \_\\_____| 9 | 10 | 11 | source ~/.config/nvim/basic.vim 12 | source ~/.config/nvim/plugins.vim 13 | source ~/.config/nvim/appearance.vim 14 | source ~/.config/nvim/mapping.vim 15 | source ~/.config/nvim/syn.vim 16 | 17 | -------------------------------------------------------------------------------- /.config/nvim/mapping.vim: -------------------------------------------------------------------------------- 1 | imap jj 2 | noremap 3 | noremap 4 | noremap 5 | noremap 6 | noremap za 7 | vnoremap zf 8 | vnoremap s //e=&selection=='exclusive'?'+1':'':call histdel('search',-1)let @/=histget('search',-1)gv 9 | omap s :normal vs 10 | inoremap pumvisible() ? "\" : "\" 11 | inoremap pumvisible() ? "\" : "\" 12 | nnoremap :let _s=@/:%s/\s\+$//e:let @/=_s 13 | autocmd filetype cpp nnoremap :w exec '!g++ '.shellescape('%').' -o '.shellescape('%:r').' && ./'.shellescape('%:r') 14 | set backspace=indent,eol,start 15 | 16 | map :call CompileFile() 17 | function! CompileFile() 18 | let current_filetype = &filetype 19 | if current_filetype == 'python' 20 | :!python %:t 21 | endif 22 | if current_filetype == 'java' 23 | :w 24 | :!javac "%" 25 | :!java -cp "%:p:h" "%:t:r" 26 | endif 27 | endfunction 28 | -------------------------------------------------------------------------------- /.config/nvim/plugins.vim: -------------------------------------------------------------------------------- 1 | if 0 | endif 2 | 3 | if &compatible 4 | set nocompatible " Be iMproved 5 | endif 6 | 7 | set runtimepath+=~/.vim/bundle/neobundle.vim/ 8 | 9 | call neobundle#begin(expand('~/.vim/bundle/')) 10 | 11 | NeoBundleFetch 'Shougo/neobundle.vim' 12 | 13 | NeoBundle 'flazz/vim-colorschemes' 14 | NeoBundle 'scrooloose/nerdcommenter' 15 | NeoBundle 'vim-syntastic/syntastic' 16 | NeoBundle 'kh3phr3n/python-syntax' 17 | NeoBundle 'tmhedberg/SimpylFold' 18 | 19 | NeoBundle 'mhartington/oceanic-next' 20 | 21 | NeoBundle 'roxma/nvim-completion-manager' 22 | NeoBundle 'jalvesaq/Nvim-R' 23 | NeoBundle 'gaalcaras/ncm-R' 24 | NeoBundle 'roxma/ncm-clang' 25 | NeoBundle 'godlygeek/tabular' 26 | call neobundle#end() 27 | 28 | filetype plugin indent on 29 | 30 | NeoBundleCheck 31 | -------------------------------------------------------------------------------- /.config/nvim/syn.vim: -------------------------------------------------------------------------------- 1 | let g:syntastic_always_populate_loc_list = 1 2 | let g:syntastic_auto_loc_list = 1 3 | let g:syntastic_check_on_open = 1 4 | let g:syntastic_check_on_wq = 0 5 | 6 | set statusline+=%#warningmsg# 7 | set statusline+=%{SyntasticStatuslineFlag()} 8 | set statusline+=%* 9 | -------------------------------------------------------------------------------- /.config/redshift/hooks/brightness.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Set brightness via xbrightness when redshift status changes 4 | 5 | # Set brightness values for each status. 6 | # Range from 1 to 100 is valid 7 | brightness_day="100" 8 | brightness_transition="50" 9 | brightness_night="50" 10 | # Set fade time for changes to one minute 11 | fade_time=60000 12 | 13 | case $1 in 14 | period-changed) 15 | case $3 in 16 | night) 17 | xbacklight -set $brightness_night -time $fade_time 18 | ;; 19 | transition) 20 | xbacklight -set $brightness_transition -time $fade_time 21 | ;; 22 | daytime) 23 | xbacklight -set $brightness_day -time $fade_time 24 | ;; 25 | esac 26 | ;; 27 | esac 28 | -------------------------------------------------------------------------------- /.config/redshift/redshift.conf: -------------------------------------------------------------------------------- 1 | ; Global settings for redshift 2 | [redshift] 3 | ; Set the day and night screen temperatures 4 | temp-day=5700 5 | temp-night=5500 6 | 7 | ; Disable the smooth fade between temperatures when Redshift starts and stops. 8 | ; 0 will cause an immediate change between screen temperatures. 9 | ; 1 will gradually apply the new screen temperature over a couple of seconds. 10 | fade=1 11 | 12 | ; Solar elevation thresholds. 13 | ; By default, Redshift will use the current elevation of the sun to determine 14 | ; whether it is daytime, night or in transition (dawn/dusk). When the sun is 15 | ; above the degrees specified with elevation-high it is considered daytime and 16 | ; below elevation-low it is considered night. 17 | ;elevation-high=3 18 | ;elevation-low=-6 19 | 20 | ; Custom dawn/dusk intervals. 21 | ; Instead of using the solar elevation, the time intervals of dawn and dusk 22 | ; can be specified manually. The times must be specified as HH:MM in 24-hour 23 | ; format. 24 | ;dawn-time=6:00-7:45 25 | ;dusk-time=18:35-20:15 26 | 27 | ; Set the screen brightness. Default is 1.0. 28 | ;brightness=0.9 29 | ; It is also possible to use different settings for day and night 30 | ; since version 1.8. 31 | ;brightness-day=0.7 32 | ;brightness-night=0.4 33 | ; Set the screen gamma (for all colors, or each color channel 34 | ; individually) 35 | gamma=0.8 36 | ;gamma=0.8:0.7:0.8 37 | ; This can also be set individually for day and night since 38 | ; version 1.10. 39 | ;gamma-day=0.8:0.7:0.8 40 | ;gamma-night=0.6 41 | 42 | ; Set the location-provider: 'geoclue2', 'manual' 43 | ; type 'redshift -l list' to see possible values. 44 | ; The location provider settings are in a different section. 45 | location-provider=geoclue2 46 | 47 | ; Set the adjustment-method: 'randr', 'vidmode' 48 | ; type 'redshift -m list' to see all possible values. 49 | ; 'randr' is the preferred method, 'vidmode' is an older API. 50 | ; but works in some cases when 'randr' does not. 51 | ; The adjustment method settings are in a different section. 52 | adjustment-method=randr 53 | 54 | ; Configuration of the location-provider: 55 | ; type 'redshift -l PROVIDER:help' to see the settings. 56 | ; ex: 'redshift -l manual:help' 57 | ; Keep in mind that longitudes west of Greenwich (e.g. the Americas) 58 | ; are negative numbers. 59 | [manual] 60 | lat=41.49 61 | lon=90.48 62 | 63 | ; Configuration of the adjustment-method 64 | ; type 'redshift -m METHOD:help' to see the settings. 65 | ; ex: 'redshift -m randr:help' 66 | ; In this example, randr is configured to adjust only screen 0. 67 | ; Note that the numbering starts from 0, so this is actually the first screen. 68 | ; If this option is not specified, Redshift will try to adjust _all_ screens. 69 | [randr] 70 | screen=0 71 | -------------------------------------------------------------------------------- /.config/sxhkd/sxhkdrc: -------------------------------------------------------------------------------- 1 | # 2 | # wm independent hotkeys 3 | # 4 | # scrot 5 | super + shift + p 6 | scrot && pkill scrot -q 100 7 | 8 | super + shift + r 9 | pkill polybar && polybar -r burs 10 | # brightness and darkness of monitor 11 | # darker 12 | super + F11 13 | xbacklight -dec 10 14 | # brighter 15 | super + F12 16 | xbacklight -inc 10 17 | 18 | # terminal emulator 19 | super + Return 20 | urxvt 21 | 22 | super + shift + Return 23 | xterm 24 | 25 | # program launcher 26 | super + @space 27 | rofi -show run -show-icons -sidebar-mode -terminal urxvt -font "SF Pro Display Semibold 11" 28 | 29 | # make sxhkd reload its configuration files: 30 | super + Escape 31 | pkill -USR1 -x sxhkd 32 | 33 | # 34 | # bspwm hotkeys 35 | # 36 | 37 | # quit bspwm normally 38 | super + alt + Escape 39 | bspc quit 40 | 41 | # close and kill 42 | super + {_,shift + }w 43 | bspc node -{c,k} 44 | 45 | # alternate between the tiled and monocle layout 46 | super + m 47 | bspc desktop -l next 48 | 49 | # send the newest marked node to the newest preselected node 50 | super + y 51 | bspc node newest.marked.local -n newest.!automatic.local 52 | 53 | # swap the current node and the biggest node 54 | super + g 55 | bspc node -s biggest 56 | 57 | # 58 | # state/flags 59 | # 60 | 61 | # set the window state 62 | super + {t,shift + t,s,f} 63 | bspc node -t {tiled,pseudo_tiled,floating,fullscreen} 64 | 65 | # set the node flags 66 | super + ctrl + {m,x,y,z} 67 | bspc node -g {marked,locked,sticky,private} 68 | 69 | # 70 | # focus/swap 71 | # 72 | 73 | # focus the node in the given direction 74 | super + {_,shift + }{h,j,k,l} 75 | bspc node -{f,s} {west,south,north,east} 76 | 77 | # focus the node for the given path jump 78 | super + {p,b,comma,period} 79 | bspc node -f @{parent,brother,first,second} 80 | 81 | # focus the next/previous node in the current desktop 82 | super + {_,shift + }c 83 | bspc node -f {next,prev}.local 84 | 85 | # focus the next/previous desktop in the current monitor 86 | super + bracket{left,right} 87 | bspc desktop -f {prev,next}.local 88 | 89 | # focus the last node/desktop 90 | super + {grave,Tab} 91 | bspc {node,desktop} -f last 92 | 93 | # focus the older or newer node in the focus history 94 | super + {o,i} 95 | bspc wm -h off; \ 96 | bspc node {older,newer} -f; \ 97 | bspc wm -h on 98 | 99 | # focus or send to the given desktop 100 | super + {_,shift + }{1-9,0} 101 | bspc {desktop -f,node -d} '^{1-9,10}' 102 | 103 | # 104 | # preselect 105 | # 106 | 107 | # preselect the direction 108 | super + ctrl + {h,j,k,l} 109 | bspc node -p {west,south,north,east} 110 | 111 | # preselect the ratio 112 | super + ctrl + {1-9} 113 | bspc node -o 0.{1-9} 114 | 115 | # cancel the preselection for the focused node 116 | super + ctrl + space 117 | bspc node -p cancel 118 | 119 | # cancel the preselection for the focused desktop 120 | super + ctrl + shift + space 121 | bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel 122 | 123 | # 124 | # move/resize 125 | # 126 | 127 | # expand a window by moving one of its side outward 128 | super + alt + {h,j,k,l} 129 | bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0} 130 | 131 | # contract a window by moving one of its side inward 132 | super + alt + shift + {h,j,k,l} 133 | bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0} 134 | 135 | # move a floating window 136 | super + {Left,Down,Up,Right} 137 | bspc node -v {-20 0,0 20,0 -20,20 0} 138 | -------------------------------------------------------------------------------- /.ncmpcpp/config: -------------------------------------------------------------------------------- 1 | #---------------------------------------------------- 2 | # file: ~/.ncmpcpp/config 3 | # author: jason ryan - http://jasonwryan.com/ 4 | # vim:nu:ai:si:et:ts=4:sw=4:fdm=indent:fdn=1:ft=conf: 5 | #---------------------------------------------------- 6 | 7 | mpd_host = "localhost" 8 | mpd_port = "6600" 9 | mpd_music_dir = "/home/winston/music" 10 | mpd_connection_timeout = "5" 11 | playlist_disable_highlight_delay = "3" 12 | message_delay_time = "4" 13 | header_visibility = "no" 14 | statusbar_visibility = "yes" 15 | song_list_format = "{%a - }{%t}|{$5%f$9}$R{$7(%l)$9}" 16 | song_status_format = "$2%a $1• $3%t $1• $4%b {(Disc %d) }$1• $5%y$1" 17 | song_window_title_format = "{%a - }{%t}|{%f}" 18 | song_columns_list_format = "(5f)[blue]{l} (33)[cyan]{t} (32)[green]{a} (30)[magenta]{b}" 19 | playlist_display_mode = "columns" (classic/columns) 20 | browser_display_mode = "columns" (classic/columns) 21 | titles_visibility = "yes" 22 | progressbar_look = "─╼" 23 | user_interface = "classic" (classic/alternative) 24 | header_text_scrolling = "yes" 25 | display_remaining_time = "yes" 26 | ignore_leading_the = "yes" 27 | empty_tag_marker = "" 28 | enable_window_title = "yes" 29 | colors_enabled = "yes" 30 | header_window_color = "magenta" 31 | volume_color = "green" 32 | state_line_color = "yellow" 33 | state_flags_color = "blue" 34 | main_window_color = "cyan" 35 | color1 = "cyan" 36 | color2 = "blue" 37 | main_window_highlight_color = "cyan" 38 | progressbar_color = "yellow" 39 | statusbar_color = "cyan" 40 | active_column_color = "cyan" 41 | 42 | 43 | -------------------------------------------------------------------------------- /.vimrc: -------------------------------------------------------------------------------- 1 | colorscheme nord 2 | " powerline symbols 3 | let g:airline_left_sep = '' 4 | let g:airline_left_alt_sep = '' 5 | let g:airline_right_sep = '' 6 | let g:airline_right_alt_sep = '' 7 | ""let g:airline_symbols.branch = '' 8 | ""let g:airline_symbols.readonly = '' 9 | ""let g:airline_symbols.linenr = '☰' 10 | ""let g:airline_symbols.maxlinenr = '' 11 | set nocompatible " be iMproved, required 12 | filetype off 13 | let g:airline#extensions#tabline#enabled = 1 14 | set background=dark 15 | set t_Co=16 16 | set mouse=a 17 | set number 18 | syntax on 19 | set ruler 20 | filetype plugin on 21 | filetype indent on 22 | set history=500 23 | set showmatch 24 | set noerrorbells 25 | set novisualbell 26 | set t_vb= 27 | set tm=500 28 | set encoding=utf8 29 | set ffs=unix,dos,mac 30 | " use spaces instead of tabs 31 | set expandtab 32 | set laststatus=2 33 | "set statusline=\ %F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c 34 | set colorcolumn=80 35 | :inoremap ( ()i 36 | :inoremap { {}i 37 | :inoremap [ []i 38 | :inoremap " ""i 39 | ":inoremap ' ''i 40 | :inoremap ` ``i 41 | function! GitBranch() 42 | return system("git rev-parse --abbrev-ref HEAD 2>/dev/null | tr -d '\n'") 43 | endfunction 44 | 45 | function! StatuslineGit() 46 | let l:branchname = GitBranch() 47 | return strlen(l:branchname) > 0?' '.l:branchname.' ':'' 48 | endfunction 49 | 50 | set statusline= 51 | set statusline+=%#PmenuSel# 52 | set statusline+=%{StatuslineGit()} 53 | set statusline+=%#LineNr# 54 | set statusline+=\ %f 55 | set statusline+=%m\ 56 | set statusline+=%= 57 | set statusline+=%#CursorColumn# 58 | set statusline+=\ %y 59 | set statusline+=\ %{&fileencoding?&fileencoding:&encoding} 60 | set statusline+=\[%{&fileformat}\] 61 | set statusline+=\ %p%% 62 | set statusline+=\ %l:%c 63 | set statusline+=\ 64 | -------------------------------------------------------------------------------- /.xinitrc: -------------------------------------------------------------------------------- 1 | #nitrogen --restore & 2 | xrdb merge ./.Xresources & 3 | xsetroot -cursor_name left_ptr & 4 | #flashfocus & 5 | colors.sh & 6 | xset +fp /usr/share/fonts/artwiz-fonts & 7 | xset fp rehash & 8 | #compton --config .compton.conf & 9 | #sxhkd & 10 | #exec bspwm 11 | 12 | case $WM in 13 | 2bwm) 14 | infobar2 & 15 | exec 2bwm 16 | ;; 17 | wmutils) 18 | /usr/local/bin/sxhkd -c ~/.config/sxhkd/sxhkdrc.wmutils 19 | /usr/bin/wew | ~/bin/wchg & 20 | exec ~/bin/wmrc 21 | ;; 22 | xmonad) 23 | exec xmonad 24 | ;; 25 | fvwm) 26 | exec fvwm-crystal 27 | ;; 28 | fluxbox) 29 | exec startfluxbox 30 | ;; 31 | openbox) 32 | exec openbox-session 33 | ;; 34 | kde) 35 | exec startkde 36 | ;; 37 | *) 38 | /usr/bin/polybar -r burs & 39 | /usr/local/bin/sxhkd & 40 | exec /usr/local/bin/bspwm 41 | ;; 42 | esac 43 | -------------------------------------------------------------------------------- /.xrdb/colors/atelierforest: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #68615e 3 | *.background: #f1efee 4 | *.cursorColor: #68615e 5 | 6 | ! black 7 | *.color0: #1b1918 8 | *.color8: #766e6b 9 | 10 | ! red 11 | *.color1: #f22c40 12 | *.color9: #f22c40 13 | 14 | ! green 15 | *.color2: #5ab738 16 | *.color10: #5ab738 17 | 18 | ! yellow 19 | *.color3: #d5911a 20 | *.color11: #d5911a 21 | 22 | ! blue 23 | *.color4: #407ee7 24 | *.color12: #407ee7 25 | 26 | ! magenta 27 | *.color5: #6666ea 28 | *.color13: #6666ea 29 | 30 | ! cyan 31 | *.color6: #00ad9c 32 | *.color14: #00ad9c 33 | 34 | ! white 35 | *.color7: #a8a19f 36 | *.color15: #f1efee 37 | 38 | -------------------------------------------------------------------------------- /.xrdb/colors/google-light: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #373b41 3 | *.background: #ffffff 4 | *.cursorColor: #373b41 5 | 6 | ! black 7 | *.color0: #1d1f21 8 | *.color8: #969896 9 | 10 | ! red 11 | *.color1: #cc342b 12 | *.color9: #cc342b 13 | 14 | ! green 15 | *.color2: #198844 16 | *.color10: #198844 17 | 18 | ! yellow 19 | *.color3: #fba922 20 | *.color11: #fba922 21 | 22 | ! blue 23 | *.color4: #3971ed 24 | *.color12: #3971ed 25 | 26 | ! magenta 27 | *.color5: #a36ac7 28 | *.color13: #a36ac7 29 | 30 | ! cyan 31 | *.color6: #3971ed 32 | *.color14: #3971ed 33 | 34 | ! white 35 | *.color7: #c5c8c6 36 | *.color15: #ffffff 37 | 38 | -------------------------------------------------------------------------------- /.xrdb/colors/gruvbox: -------------------------------------------------------------------------------- 1 | ! ----------------------------------------------------------------------------- 2 | ! File: gruvbox-dark.xresources 3 | ! Description: Retro groove colorscheme generalized 4 | ! Author: morhetz 5 | ! Source: https://github.com/morhetz/gruvbox-generalized 6 | ! Last Modified: 6 Sep 2014 7 | ! ----------------------------------------------------------------------------- 8 | 9 | ! hard contrast: *background: #1d2021 10 | *background: #282828 11 | ! soft contrast: *background: #32302f 12 | *foreground: #ebdbb2 13 | ! Black + DarkGrey 14 | *color0: #282828 15 | *color8: #928374 16 | ! DarkRed + Red 17 | *color1: #cc241d 18 | *color9: #fb4934 19 | ! DarkGreen + Green 20 | *color2: #98971a 21 | *color10: #b8bb26 22 | ! DarkYellow + Yellow 23 | *color3: #d79921 24 | *color11: #fabd2f 25 | ! DarkBlue + Blue 26 | *color4: #458588 27 | *color12: #83a598 28 | ! DarkMagenta + Magenta 29 | *color5: #b16286 30 | *color13: #d3869b 31 | ! DarkCyan + Cyan 32 | *color6: #689d6a 33 | *color14: #8ec07c 34 | ! LightGrey + White 35 | *color7: #a89984 36 | *color15: #ebdbb2 37 | -------------------------------------------------------------------------------- /.xrdb/colors/monodevek: -------------------------------------------------------------------------------- 1 | *background: #0e0021 2 | *foreground: #c0bbbb 3 | *color0: #000000 4 | *color1: #cb1578 5 | *color2: #8ecb15 6 | *color3: #cb9a15 7 | *color4: #6f15cb 8 | *color5: #cb15c9 9 | *color6: #15b4cb 10 | *color7: #8c8984 11 | *color8: #465457 12 | *color9: #dc5e86 13 | *color10: #9edc60 14 | *color11: #dcb65e 15 | *color12: #7e5edc 16 | *color13: #b75edc 17 | *color14: #5edcb4 18 | *color15: #fffefe 19 | -------------------------------------------------------------------------------- /.xrdb/colors/mostly-bright: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #474c57 3 | *.background: #ffffff 4 | *.cursorColor: #fec7cd 5 | 6 | ! black 7 | *.color0 : #737a8a 8 | *.color8 : #636a7a 9 | 10 | ! red 11 | *.color1 : #ef6b7b 12 | *.color9 : #e76373 13 | 14 | ! green 15 | *.color2 : #a1d569 16 | *.color10 : #99cd61 17 | 18 | ! yellow 19 | *.color3 : #f59335 20 | *.color11 : #ed8b2d 21 | 22 | ! blue 23 | *.color4 : #4ec2e8 24 | *.color12 : #46bae0 25 | 26 | ! magenta 27 | *.color5 : #fec7cd 28 | *.color13 : #f6bfc5 29 | 30 | ! cyan 31 | *.color6 : #95c1c0 32 | *.color14 : #8db9b8 33 | 34 | ! white 35 | *.color7 : #dde1e8 36 | *.color15 : #d5d9e0 37 | -------------------------------------------------------------------------------- /.xrdb/colors/nord: -------------------------------------------------------------------------------- 1 | ! special 2 | *.foreground: #d8dee8 3 | *.background: #2f343f 4 | *.cursorColor: #b48ead 5 | 6 | ! black 7 | *.color0 : #4b5262 8 | *.color8 : #434a5a 9 | 10 | ! red 11 | *.color1 : #bf616a 12 | *.color9 : #b3555e 13 | 14 | ! green 15 | *.color2 : #a3be8c 16 | *.color10 : #93ae7c 17 | 18 | ! yellow 19 | *.color3 : #ebcb8b 20 | *.color11 : #dbbb7b 21 | 22 | ! blue 23 | *.color4 : #81a1c1 24 | *.color12 : #7191b1 25 | 26 | ! magenta 27 | *.color5 : #b48ead 28 | *.color13 : #a6809f 29 | 30 | ! cyan 31 | *.color6 : #89d0bA 32 | *.color14 : #7dbba8 33 | 34 | ! white 35 | *.color7 : #e5e9f0 36 | *.color15 : #d1d5dc 37 | -------------------------------------------------------------------------------- /.xrdb/fonts/M+1mn: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:M+ 1mn:size=11 4 | URxvt*boldFont: xft:M+ 1mn:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/dina: -------------------------------------------------------------------------------- 1 | !fonts 2 | URxvt.font: -windows-dina-medium-r-normal-*-17-*-*-*-*-*-*-* 3 | URxvt.boldFont: -windows-dina-medium-r-normal-*-17-*-*-*-*-*-*-* 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/fixed: -------------------------------------------------------------------------------- 1 | ! fonts 2 | URxvt.font: -misc-fixed-medium-r-semicondensed-*-13-120-75-75-c-60-iso8859-1 3 | URxvt.boldFont: -misc-fixed-medium-r-semicondensed-*-13-120-75-75-c-60-iso8859-1 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/gohu: -------------------------------------------------------------------------------- 1 | !fonts 2 | URxvt.font: -gohu-gohufont-medium-*-*-*-11-*-*-*-*-*-iso8859-* 3 | URxvt.boldFont: -gohu-gohufont-medium-*-*-*-11-*-*-*-*-*-iso8859-* 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/hack: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:Hack:size=11 4 | URxvt*boldFont: xft:Hack:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/iosevka: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:Iosevka Term:style=medium:size=11 4 | URxvt*boldFont: xft:Iosevka Term:style=bold:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/lime: -------------------------------------------------------------------------------- 1 | ! fonts 2 | URxvt.font: -artwiz-lime-medium-r-normal--10-110-75-75-m-50-iso8859-1 3 | URxvt.boldFont: -artwiz-lime-medium-r-normal--10-110-75-75-m-50-iso8859-1 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/peep: -------------------------------------------------------------------------------- 1 | ! fonts 2 | URxvt.font: -zevv-peep-medium-r-normal-*-14-130-75-75-c-70-iso8859-15 3 | URxvt.boldFont: -zevv-peep-medium-r-normal-*-14-130-75-75-c-70-iso8859-15 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/pragmata: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:PragmataPro:style=regular:size=11 4 | URxvt*boldFont: xft:PragmataPro:style=bold:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/scientifica: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:scientifica:size=13 4 | URxvt*boldFont: xft:scientifica:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/sfmono: -------------------------------------------------------------------------------- 1 | ! fonts 2 | 3 | URxvt*font: xft:SF Mono:style=semibold:size=11 4 | URxvt*boldFont: xft:SF Mono:style=bold:size=11 5 | -------------------------------------------------------------------------------- /.xrdb/fonts/smoothansi: -------------------------------------------------------------------------------- 1 | ! fonts 2 | URxvt.font: -artwiz-smoothansi-medium-r-normal--13-130-75-75-m-60-iso8859-1 3 | URxvt.boldFont: -artwiz-smoothansi-medium-r-normal--13-130-75-75-m-60-iso8859-1 4 | -------------------------------------------------------------------------------- /.xrdb/fonts/tewi: -------------------------------------------------------------------------------- 1 | ! fonts 2 | URxvt.font: -lucy-tewi-medium-r-normal-*-11-90-100-100-c-60-iso10646-1 3 | URxvt.boldFont: -lucy-tewi-medium-r-normal-*-11-90-100-100-c-60-iso10646-1 4 | -------------------------------------------------------------------------------- /.xrdb/rofi/atelierforest: -------------------------------------------------------------------------------- 1 | rofi.color-enabled: true 2 | rofi.color-window: #f1efee, #f1efee, #f1efee 3 | rofi.color-normal: #f1efee, #d8dee8, #f1efee, #f1efee, #bf616a 4 | rofi.color-active: #f1efee, #b48ead, #f1efee, #f1efee, #93e5cc 5 | rofi.color-urgent: #f1efee, #ebcb8b, #f1efee, #f1efee, #ebcb8b 6 | -------------------------------------------------------------------------------- /.xrdb/rofi/nord: -------------------------------------------------------------------------------- 1 | rofi.color-enabled: true 2 | rofi.color-window: #2f343f, #2f343f, #2f343f 3 | rofi.color-normal: #2f343f, #d8dee8, #2f343f, #2f343f, #bf616a 4 | rofi.color-active: #2f343f, #b48ead, #2f343f, #2f343f, #93e5cc 5 | rofi.color-urgent: #2f343f, #ebcb8b, #2f343f, #2f343f, #ebcb8b 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dots 2 | This repo is for storing my dotfiles and configs 3 | -------------------------------------------------------------------------------- /scripts/colors.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | background=$(xrdb -query | grep "background" | cut -f2 | sed -r 's/#//' | head -n 1) 3 | foreground=$(xrdb -query | grep "foreground" | cut -f2 | sed -r 's/#//' | head -n 1) 4 | color0=$(xrdb -query | grep "color0" | cut -f2 | sed -r 's/#//' | head -n 1) 5 | color1=$(xrdb -query | grep "color1" | cut -f2 | sed -r 's/#//' | head -n 1) 6 | color2=$(xrdb -query | grep "color2" | cut -f2 | sed -r 's/#//' | head -n 1) 7 | color3=$(xrdb -query | grep "color3" | cut -f2 | sed -r 's/#//' | head -n 1) 8 | color4=$(xrdb -query | grep "color4" | cut -f2 | sed -r 's/#//' | head -n 1) 9 | color5=$(xrdb -query | grep "color5" | cut -f2 | sed -r 's/#//' | head -n 1) 10 | color6=$(xrdb -query | grep "color6" | cut -f2 | sed -r 's/#//' | head -n 1) 11 | color7=$(xrdb -query | grep "color7" | cut -f2 | sed -r 's/#//' | head -n 1) 12 | color8=$(xrdb -query | grep "color8" | cut -f2 | sed -r 's/#//' | head -n 1) 13 | color9=$(xrdb -query | grep "color9" | cut -f2 | sed -r 's/#//' | head -n 1) 14 | color10=$(xrdb -query | grep "color10" | cut -f2 | sed -r 's/#//' | head -n 1) 15 | color11=$(xrdb -query | grep "color11" | cut -f2 | sed -r 's/#//' | head -n 1) 16 | color12=$(xrdb -query | grep "color12" | cut -f2 | sed -r 's/#//' | head -n 1) 17 | color13=$(xrdb -query | grep "color13" | cut -f2 | sed -r 's/#//' | head -n 1) 18 | color14=$(xrdb -query | grep "color14" | cut -f2 | sed -r 's/#//' | head -n 1) 19 | color15=$(xrdb -query | grep "color15" | cut -f2 | sed -r 's/#//' | head -n 1) 20 | 21 | bspc config normal_border_color "#$color8" 22 | bspc config active_border_color "#$color9" 23 | bspc config focused_border_color "#$color9" 24 | bspc config presel_feedback_color "#$color1" 25 | #END 26 | -------------------------------------------------------------------------------- /scripts/readydots.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cp ~/.Xresources ~/git/dots 4 | cp ~/.config/bspwm/bspwmrc ~/git/dots/.config/bspwm/ 5 | cp ~/.config/sxhkd/sxhkdrc ~/git/dots/.config/sxhkd/ 6 | cp ~/.config/polybar/config ~/git/dots/.config/polybar/ 7 | cp ~/.config/neofetch/config.conf ~/git/dots/.config/neofetch/ 8 | cp ~/.vimrc ~/git/dots/.vimrc 9 | cp ~/.xrdb/colors/* ~/git/dots/.xrdb/colors/ 10 | cp ~/.xrdb/fonts/* ~/git/dots/.xrdb/fonts/ 11 | cp ~/.xrdb/rofi/* ~/git/dots/.xrdb/rofi/ 12 | cp ~/.xinitrc ~/git/dots/ 13 | cp ~/.ncmpcpp/config ~/git/dots/.ncmpcpp/ 14 | cp ~/builds/2bwm/2bwm/config.h ~/git/dots/2bwm 15 | cp ~/bin/colors.sh ~/git/dots/scripts 16 | cp ~/.config/libinput-gestures.conf ~/git/dots/.config 17 | cp ~/bin/readydots.sh ~/git/dots/scripts 18 | cp ~/.config/redshift/redshift.conf ~/git/dots/.config/redshift 19 | cp ~/.config/redshift/hooks/brightness.sh ~/git/dots/.config/redshift/hooks 20 | #END 21 | --------------------------------------------------------------------------------