Merge branch 'master' of gitlab.com:chriscochrun/dotfiles

This commit is contained in:
Chris Cochrun 2021-08-17 20:40:58 -05:00
commit 3aff662f4d
21 changed files with 533 additions and 401 deletions

View file

@ -318,7 +318,7 @@ colors:
# #
# Window opacity as a floating point number from `0.0` to `1.0`. # Window opacity as a floating point number from `0.0` to `1.0`.
# The value `0.0` is completely transparent and `1.0` is opaque. # The value `0.0` is completely transparent and `1.0` is opaque.
background_opacity: 0.75 background_opacity: 0.95
#selection: #selection:
#semantic_escape_chars: ",│`|:\"' ()[]{}<>\t" #semantic_escape_chars: ",│`|:\"' ()[]{}<>\t"

View file

@ -79,7 +79,7 @@
(if (= "syl\n" stdout) (if (= "syl\n" stdout)
(global laptop true) (global laptop true)
(global laptop false)))) (global laptop false))))
(local laptop false) (local laptop true)
;; Table of layouts to cover with awful.layout.inc, order matters. ;; Table of layouts to cover with awful.layout.inc, order matters.
(set awful.layout.layouts [ (set awful.layout.layouts [
@ -456,7 +456,7 @@
(set s.myrightwidgets { (set s.myrightwidgets {
1 { 1 {
:layout wibox.layout.fixed.horizontal :layout wibox.layout.fixed.horizontal
1 s.wttrwidget ;; 1 s.wttrwidget
2 s.mailwidget 2 s.mailwidget
3 s.cpuwidget 3 s.cpuwidget
4 s.volumewidget 4 s.volumewidget
@ -594,6 +594,7 @@
(not c.size_hints.program_position)) (not c.size_hints.program_position))
;; Prevent clients from being unreachable after screen count changes. ;; Prevent clients from being unreachable after screen count changes.
(awful.placement.no_offscreen c)) (awful.placement.no_offscreen c))
;; MPV wasn't centering right
(when (= c.class "mpv") (awful.placement.centered c)) (when (= c.class "mpv") (awful.placement.centered c))
(awful.client.focus.byidx 1) (awful.client.focus.byidx 1)
(: c :activate []))) (: c :activate [])))

View file

@ -128,8 +128,6 @@
;; Programs ;; Programs
(awful.key [ modkey ] "d" (fn [] (awful.spawn "emacsclient -c -e '(dired-jump)'")) (awful.key [ modkey ] "d" (fn [] (awful.spawn "emacsclient -c -e '(dired-jump)'"))
{:description "launch dired in new emacs frame" :group "apps" }) {:description "launch dired in new emacs frame" :group "apps" })
(awful.key [ modkey alt ] "d" (fn [] (awful.spawn "dolphin"))
{:description "dolphin" :group "apps" })
(awful.key [ modkey shift ] "d" (fn [] (awful.spawn "dolphin")) (awful.key [ modkey shift ] "d" (fn [] (awful.spawn "dolphin"))
{:description "launch dolphin file browser" :group "apps" }) {:description "launch dolphin file browser" :group "apps" })
(awful.key [ modkey ] "x" (fn [] (awful.spawn "emacsclient -c -e '(org-capture)'")) (awful.key [ modkey ] "x" (fn [] (awful.spawn "emacsclient -c -e '(org-capture)'"))
@ -147,11 +145,11 @@
{:description "launch eshell in new emacs frame" :group "apps" }) {:description "launch eshell in new emacs frame" :group "apps" })
(awful.key [ modkey ] "e" (fn [] (awful.spawn "emacsclient -c -a 'emacs'")) (awful.key [ modkey ] "e" (fn [] (awful.spawn "emacsclient -c -a 'emacs'"))
{:description "launch new emacs frame" :group "apps" }) {:description "launch new emacs frame" :group "apps" })
(awful.key [ modkey ] "p" (fn [] (awful.spawn "rofi-rbw")) (awful.key [ modkey ] "p" (fn [] (awful.spawn "rofi-pass"))
{:description "select pass" :group "apps" }) {:description "select pass" :group "apps" })
(awful.key [ modkey shift ] "w" (fn [] (awful.spawn "libreoffice --writer")) (awful.key [ modkey shift ] "w" (fn [] (awful.spawn "libreoffice --writer"))
{:description "Open Writer" :group "apps" }) {:description "Open Writer" :group "apps" })
(awful.key [modkey] "b" (fn [] (awful.spawn "nyxt")) (awful.key [modkey] "b" (fn [] (awful.spawn "qutebrowser"))
{:description "launch browser" :group "apps"}) {:description "launch browser" :group "apps"})
;; rofi ;; rofi
(awful.key [] "Menu" (fn [] (awful.spawn "/home/chris/.dotfiles/rofi/launchers-git/launcher.sh")) (awful.key [] "Menu" (fn [] (awful.spawn "/home/chris/.dotfiles/rofi/launchers-git/launcher.sh"))

View file

@ -217,3 +217,4 @@ if status is-login
end end
end end
fm6000 -r -c blue

View file

@ -1,194 +1,23 @@
# Configuration file for libinput-gestures. # Generated by Gestures 0.2.6 --> https://gitlab.com/cunidev/gestures
# Mark Blakeney, Sep 2015 # Manual editing might result in data loss!
#
# The default configuration file exists at /etc/libinput-gestures.conf
# but a user can create a personal custom configuration file at
# ~/.config/libinput-gestures.conf.
#
# Lines starting with '#' and blank lines are ignored. Currently
# "gesture" and "device" configuration keywords are supported as
# described below. The keyword can optionally be appended with a ":" (to
# maintain compatibility with original format configuration files).
#
# Each gesture line has 3 [or 4] arguments separated by whitespace:
#
# action motion [finger_count] command
#
# where action and motion is either:
# swipe up
# swipe down
# swipe left
# swipe right
# swipe left_up
# swipe left_down
# swipe right_up
# swipe right_down
# pinch in
# pinch out
# pinch clockwise
# pinch anticlockwise
#
# command is the remainder of the line and is any valid shell command +
# arguments.
#
# finger_count is a single numeric digit and is optional (and is
# typically 3 or 4). If specified then the command is executed when
# exactly that number of fingers is used in the gesture. If not
# specified then the command is executed when that gesture is executed
# with any number of fingers. Gesture lines specified with finger_count
# have priority over the same gesture specified without any
# finger_count.
#
# Typically command will be _internal, or xdotool. See "man xdotool" for
# the many things you can action with that tool. Note that unfortunately
# xdotool does not work with native Wayland clients.
###############################################################################
# SWIPE GESTURES:
###############################################################################
# Note the default is an "internal" command that uses wmctrl to switch
# workspaces and, unlike xdotool, works on both Xorg and Wayland (via
# XWayland). It also can be configured for vertical and horizontal
# switching over tabular workspaces, as per the example below. You can
# also add "-w" to the internal command to allow wrapping workspaces.
# Ensure you install wmctrl if you use _internal.
# NOTE ABOUT FINGER COUNT: # Invalid lines
# The above command will configure this command for all fingers (i.e. 3
# for 4) but to configure it for 3 fingers only, change it to:
# gesture swipe up 3 _internal ws_up
# Then you can configure something else for 4 fingers or leave 4 fingers
# unconfigured. You can configure an explicit finger count like this for
# all example commands in this configuration file.
#
# gesture swipe up xdotool key super+Page_Down
# KDE Plasma open/close overview
# Unsupported lines
# Swipe threshold (0-100)
swipe_threshold 0
# Gestures
gesture swipe up 3 ydotool key ctrl+F10 gesture swipe up 3 ydotool key ctrl+F10
gesture swipe down 3 ydotool key ctrl+F10 gesture swipe down 3 ydotool key ctrl+F10
# Move through workspaces (works for GNOME/KDE/etc on Wayland and Xorg)
gesture swipe up 4 _internal ws_up gesture swipe up 4 _internal ws_up
gesture swipe down 4 _internal ws_down gesture swipe down 4 _internal ws_down
gesture swipe left 4 _internal ws_left gesture swipe left 4 _internal ws_left
gesture swipe right 4 _internal ws_right gesture swipe right 4 _internal ws_right
# Browser go forward and back (works only for Xorg, and Xwayland clients)
gesture swipe left 3 ydotool key alt+Right gesture swipe left 3 ydotool key alt+Right
gesture swipe right 3 ydotool key alt+Left gesture swipe right 3 ydotool key alt+Left
gesture pinch clockwise 4 xdotool key XF86AudioRaiseVolume
# NOTE: If you don't use "natural" scrolling direction for your touchpad gesture pinch anticlockwise 4 xdotool key XF86AudioLowerVolume
# then you may want to swap the above default left/right and up/down
# configurations.
# Optional extended swipe gestures, e.g. for browser tab navigation:
#
# Jump to next open browser tab
# gesture swipe right_up xdotool key control+Tab
#
# Jump to previous open browser tab
# gesture swipe left_up xdotool key control+shift+Tab
#
# Close current browser tab
# gesture swipe left_down xdotool key control+w
#
# Reopen and jump to last closed browser tab
# gesture swipe right_down xdotool key control+shift+t
# Example of 8 static workspaces, e.g. using KDE virtual-desktops,
# arranged in 2 rows of 4 columns across using swipe up/down/left/right
# to navigate in fixed planes. You can also add the "-w/--wrap" option
# to allow wrapping in any direction. You must configure your virtual
# desktops with the same column dimension.
# gesture swipe up _internal --cols 4 ws_up
# gesture swipe down _internal --cols 4 ws_down
# gesture swipe left _internal --cols 4 ws_left
# gesture swipe right _internal --cols 4 ws_right
#
# Example of 16 static workspaces, e.g. using KDE virtual-desktops,
# arranged in 4 rows of 4 columns across using swipe up/down/left/right
# to navigate in fixed planes, and also using swipe
# left_up/left_down/right_up/right_down to navigate diagonally. You can
# also add the "-w/--wrap" option to allow wrapping in any direction
# and/or diagonally. You must configure your virtual desktops with the
# same column dimension.
# gesture swipe up _internal --cols 4 ws_up
# gesture swipe down _internal --cols 4 ws_down
# gesture swipe left _internal --cols 4 ws_left
# gesture swipe right _internal --cols 4 ws_right
# gesture swipe left_up _internal --cols 4 ws_left_up
# gesture swipe left_down _internal --cols 4 ws_left_down
# gesture swipe right_up _internal --cols 4 ws_right_up
# gesture swipe right_down _internal --cols 4 ws_right_down
# Example virtual desktop switching for Ubuntu Unity/Compiz. The
# _internal command does not work for Compiz but you can explicitly
# configure the swipe commands to work for a Compiz virtual 2
# dimensional desktop as follows:
# gesture swipe up xdotool key ctrl+alt+Up
# gesture swipe down xdotool key ctrl+alt+Down
# gesture swipe left xdotool key ctrl+alt+Left
# gesture swipe right xdotool key ctrl+alt+Right
###############################################################################
# PINCH GESTURES:
###############################################################################
# GNOME SHELL open/close overview (works for GNOME on Xorg only)
#gesture pinch in xdotool key super+s
#gesture pinch out xdotool key super+s
# GNOME SHELL open/close overview (works for GNOME on Wayland and Xorg)
# Note since GNOME 3.24 on Wayland this is implemented natively so no
# real point configuring for Wayland.
# gesture pinch in dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
# gesture pinch out dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.toggle();'
# Example to change audio volume:
# Note this only works on an Xorg desktop (not Wayland).
# gesture swipe up xdotool key XF86AudioRaiseVolume
# gesture swipe down xdotool key XF86AudioLowerVolume
# Optional extended pinch gestures:
gesture pinch clockwise xdotool key XF86AudioRaiseVolume
gesture pinch anticlockwise xdotool key XF86AudioLowerVolume
###############################################################################
# This application normally determines your touchpad device
# automatically. Some users may have multiple touchpads but by default
# we use only the first one found. However, you can choose to specify
# the explicit device name to use. Run "libinput list-devices" to work
# out the name of your device (from the "Device:" field). Then add a
# device line specifying that name, e.g:
#
# device DLL0665:01 06CB:76AD Touchpad
#
# If the device name starts with a '/' then it is instead considered as
# the explicit device path although since device paths can change
# through reboots this is best to be a symlink. E.g. instead of specifying
# /dev/input/event12, you should use the corresponding full path link
# under /dev/input/by-path/ or /dev/input/by-id/.
#
# You can choose to use ALL touchpad devices by setting the device name
# to "all". E.g. Do this if you have multiple touchpads which you want
# to use in parallel. This reduces performance slightly so only set this
# if you have to.
#
# device all
###############################################################################
# You can set a minimum travel distance threshold before swipe gestures
# are actioned using the swipe_threshold configuration command.
# Specify this value in dots. The default is 0.
# E.g. set it to 100 dots with "swipe_threshold 100".
# swipe_threshold 0
###############################################################################
# You can set a timeout on gestures from start to end. The default is
# the value commented below. It can be any value in float secs >= 0.
# 0 = no timeout. E.g. set it to 2 secs with "timeout 2".
# timeout 1.5

View file

@ -21,16 +21,16 @@ round-borders-exclude = [
shadow = true; shadow = true;
# The blur radius for shadows, in pixels. (defaults to 12) # The blur radius for shadows, in pixels. (defaults to 12)
shadow-radius = 28; shadow-radius = 48;
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75) # The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
shadow-opacity = .55; shadow-opacity = .99;
# The left offset for shadows, in pixels. (defaults to -15) # The left offset for shadows, in pixels. (defaults to -15)
shadow-offset-x = -12; shadow-offset-x = -30;
# The top offset for shadows, in pixels. (defaults to -15) # The top offset for shadows, in pixels. (defaults to -15)
shadow-offset-y = -12; shadow-offset-y = -30;
# Avoid drawing shadows on dock/panel windows. This option is deprecated, # Avoid drawing shadows on dock/panel windows. This option is deprecated,
# you should use the *wintypes* option in your config file instead. # you should use the *wintypes* option in your config file instead.
@ -234,8 +234,8 @@ blur: {
# requires: https://github.com/ibhagwan/picom # requires: https://github.com/ibhagwan/picom
method = "dual_kawase"; method = "dual_kawase";
#method = "kernel"; #method = "kernel";
strength = 11; strength = 17;
deviation = 1.0; deviation = 4.0;
# kernel = "11x11gaussian"; # kernel = "11x11gaussian";
background = false; background = false;
background-frame = false; background-frame = false;
@ -319,7 +319,7 @@ use-ewmh-active-win = true;
# Unredirect all windows if a full-screen opaque window is detected, # Unredirect all windows if a full-screen opaque window is detected,
# to maximize performance for full-screen windows. Known to cause flickering # to maximize performance for full-screen windows. Known to cause flickering
# when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious. # when redirecting/unredirecting windows. paint-on-overlay may make the flickering less obvious.
unredir-if-possible = false; unredir-if-possible = true;
# Delay before unredirecting the window, in milliseconds. Defaults to 0. # Delay before unredirecting the window, in milliseconds. Defaults to 0.
# unredir-if-possible-delay = 0 # unredir-if-possible-delay = 0
@ -351,7 +351,7 @@ detect-client-leader = true;
# with a 5x5 one you use `--resize-damage 2`, and so on). # with a 5x5 one you use `--resize-damage 2`, and so on).
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly. # May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
# #
# resize-damage = 1 resize-damage = 1
# Specify a list of conditions of windows that should be painted with inverted color. # Specify a list of conditions of windows that should be painted with inverted color.
# Resource-hogging, and is not well tested. # Resource-hogging, and is not well tested.
@ -468,8 +468,8 @@ log-level = "info";
# #
wintypes: wintypes:
{ {
normal = { fade = false; shadow = true; } normal = { fade = false; shadow = true; full-shadow = false; }
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; tooltip = { fade = false; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
dock = { shadow = true; } dock = { shadow = true; }
dnd = { shadow = false; } dnd = { shadow = false; }
popup_menu = { opacity = 0.8; } popup_menu = { opacity = 0.8; }

View file

@ -16,7 +16,7 @@ riverctl map normal $mod E spawn "emacsclient -c -a 'emacs'"
riverctl map normal $mod B spawn qutebrowser riverctl map normal $mod B spawn qutebrowser
riverctl map normal None Menu spawn "rofi -no-lazy-grab -show drun -modi drun" riverctl map normal None Menu spawn "rofi -no-lazy-grab -show drun -modi drun"
riverctl map normal $mod Menu spawn "rofi -no-lazy-grab -show run -modi run" riverctl map normal $mod Menu spawn "rofi -no-lazy-grab -show run -modi run"
riverctl map normal $mod P spawn rofipass riverctl map normal $mod P spawn rofi-rbw
riverctl map normal $mod+Control M spawn "makoctl dismiss -a" riverctl map normal $mod+Control M spawn "makoctl dismiss -a"
@ -191,7 +191,8 @@ riverctl spawn mako
riverctl spawn rbw-agent riverctl spawn rbw-agent
# Turn on Waybar # Turn on Waybar
riverctl spawn waybar riverctl spawn 'export XDG_CURRENT_DESKTOP="Unity"'
riverctl spawn 'waybar'
riverctl spawn 'swaybg -i /usr/share/wallpapers/Flow/contents/images/5120x2880.jpg -m fill' riverctl spawn 'swaybg -i /usr/share/wallpapers/Flow/contents/images/5120x2880.jpg -m fill'
riverctl spawn 'export QT_QPA_PLATFORMTHEME="qt5ct"' riverctl spawn 'export QT_QPA_PLATFORMTHEME="qt5ct"'
@ -199,19 +200,20 @@ riverctl spawn 'export QT_QPA_PLATFORMTHEME="qt5ct"'
# Use kile as my layout generator allows me to create really unique layouts # Use kile as my layout generator allows me to create really unique layouts
# with an s-expression syntax # with an s-expression syntax
riverctl spawn kile riverctl spawn kile
riverctl output-layout kile riverctl default-layout kile
# riverctl output-layout kile
read -r -d '' DECK <<EOM read -r -d '' DECK <<EOM
( { h: ( { v: full deck } 1 0.6 0 ) } 1 0.6 1 ) ( { h: ( { v: full deck } 1 0.6 0 ) } 1 0.6 1 )
EOM EOM
read -r -d '' TEST <<EOM read -r -d '' TEST <<EOM
( {v: deck deck } 1 0.6 0 ) ( {v: h h } 1 0.6 0 )
EOM EOM
riverctl send-layout-cmd kile "all $TEST" riverctl send-layout-cmd kile "all $TEST"
riverctl send-layout-cmd kile "outer_padding 20" riverctl send-layout-cmd kile "outer_padding 20"
riverctl send-layout-cmd kile "view_padding 10" riverctl send-layout-cmd kile "view_padding 10"
riverctl send-layout-cmd kile "smart_padding true" riverctl send-layout-cmd kile "smart_padding false"
riverctl attach-mode bottom riverctl attach-mode bottom

View file

@ -4,4 +4,4 @@
# echo 100 - $(mpstat | rg all | cut -d \ -f43) | bc # echo 100 - $(mpstat | rg all | cut -d \ -f43) | bc
cpu="$(mpstat 1 1 | rg Average | awk '{print $3+$4+$5}' | sed 's/\(.*\)/\1%/g')" cpu="$(mpstat 1 1 | rg Average | awk '{print $3+$4+$5}' | sed 's/\(.*\)/\1%/g')"
echo "$cpu | color=#ff0000" echo "$cpu | color=#5af78e"

206
scripts/doppler Executable file
View file

@ -0,0 +1,206 @@
#!/bin/sh
# Show a Doppler RADAR of an American user's preferred location.
secs=600 # Download a new doppler radar if one hasn't been downloaded in $secs seconds.
radarloc="${XDG_CACHE_HOME:-$HOME/.cache}/radar"
doppler="${XDG_CACHE_HOME:-$HOME/.cache}/doppler.gif"
pickloc() { chosen="$(echo "Northeast
Southeast
PacNorthWest
PacSouthWest
UpperMissVly
SouthMissVly
SouthPlains
NorthRockies
SouthRockies
Alaska
Carib
Hawaii
CentGrLakes
Conus-Large
KABR: Aberdeen, SD
KBIS: Bismarck, ND
KFTG: Denver/Boulder, CO
KDMX: Des Moines, IA
KDTX: Detroit, MI
KDDC: Dodge City, KS
KDLH: Duluth, MN
KCYS: Cheyenne, WY
KLOT: Chicago, IL
KGLD: Goodland, KS
KUEX: Hastings, NE
KGJX: Grand Junction, CO
KGRR: Grand Rapids, MI
KMVX: Fargo/Grand Forks, ND
KGRB: Green Bay, WI
KIND: Indianapolis, IN
KJKL: Jackson, KY
KARX: La Crosse, WI
KILX: Lincoln/Central Illinois, IL
KLVX: Louisville, KY
KMQT: Marquette
KMKX: Milwaukee, WI
KMPX: Minneapolis, MN
KAPX: Gaylord/Alpena, MI
KLNX: North Platte, NE
KIWX: N. Webster/Northern, IN
KOAX: Omaha, NE
KPAH: Paducah, KY
KEAX: Pleasant Hill, MO
KPUX: Pueblo, CO
KDVN: Quad Cities, IA
KUDX: Rapid City, SD
KRIW: Riverton, WY
KSGF: Springfield, MO
KLSX: St. LOUIS, MO
KFSD: Sioux Falls, IA
KTWX: Topeka, KS
KICT: Wichita, KS
KVWX: Paducah, KY
ICAO: Responsible Wfo
KLTX: WILMINGTON, NC
KCCX: State College/Central, PA
KLWX: Sterling, VA
KFCX: Blacksburg/Roanoke, VA
KRAX: Raleigh/Durham, NC
KGYX: Portland, ME
KDIX: Mt Holly/Philadelphia, PA
KPBZ: Pittsburgh, PA
KAKQ: Wakefield, VA
KMHX: Morehead City, NC
KGSP: Greer/Greenville/Sprtbg, SC
KILN: Wilmington/Cincinnati, OH
KCLE: Cleveland, OH
KCAE: Columbia, SC
KBGM: Binghamton, NY
KENX: Albany, NY
KBUF: Buffalo, NY
KCXX: Burlington, VT
KCBW: Caribou, ME
KBOX: Boston /Taunton, MA
KOKX: New York City, NY
KCLX: Charleston, SC
KRLX: Charleston, WV
ICAO: Responsible WFO
KBRO: Brownsville, TX
KABX: Albuquerque, NM
KAMA: Amarillo, TX
KFFC: Peachtree City/Atlanta, GA
KEWX: Austin/Sanantonio, TX
KBMX: Birmingham, AL
KCRP: Corpus Christi, TX
KFWS: Dallas / Ft. Worth, TX
KEPZ: El Paso, TX
KHGX: Houston/ Galveston, TX
KJAX: Jacksonville, FL
KBYX: Key West, FL
KMRX: Morristown/knoxville, TN
KLBB: Lubbock, TX
KLZK: Little Rock, AR
KLCH: Lake Charles, LA
KOHX: Nashville, TN
KMLB: Melbourne, FL
KNQA: Memphis, TN
KAMX: Miami, FL
KMAF: Midland/odessa, TX
KTLX: Norman, OK
KHTX: Huntsville, AL
KMOB: Mobile, AL
KTLH: Tallahassee, FL
KTBW: Tampa Bay Area, FL
KSJT: San Angelo, TX
KINX: Tulsa, OK
KSRX: Tulsa, OK
KLIX: New Orleans/slidell, LA
KDGX: Jackson, MS
KSHV: Shreveport, LA
ICAO: Responsible WFO
KLGX: Seattle / Tacoma, WA
KOTX: Spokane, WA
KEMX: Tucson, AZ
KYUX: Phoenix, AZ
KNKX: San Diego, CA
KMUX: Monterey/san Francisco, CA
KHNX: San Joaquin/hanford, CA
KSOX: San Diego, CA
KATX: Seattle / Tacoma, WA
KIWA: Phoenix, AZ
KRTX: Portland, OR
KSFX: Pocatello, ID
KRGX: Reno, NV
KDAX: Sacramento, CA
KMTX: Salt Lake City, UT
KPDT: Pendleton, OR
KMSX: Missoula, MT
KESX: Las Vegas, NV
KVTX: Los Angeles, CA
KMAX: Medford, OR
KFSX: Flagstaff, AZ
KGGW: Glasgow, MT
KLRX: Elko, NV
KBHX: Eureka, CA
KTFX: Great Falls, MT
KCBX: Boise, ID
KBLX: Billings, MT
KICX: Salt Lake City, UT
ICAO: Responsible Wfo W/ MSCF
PABC: Anchorage, AK
PAPD: Fairbanks, AK
PHKM: Honolulu, HI
PAHG: Anchorage, AK
PAKC: Anchorage, AK
PAIH: Anchorage, AK
PHMO: Honolulu, HI
PAEC: Fairbanks, AK
TJUA: San Juan, PR
PACG: Juneau, AK
PHKI: Honolulu, HI
PHWA: Honolulu, HI
ICAO: Responsible Wfo W/ MSCF
KFDR: Norman, OK
PGUA: Guam
KBBX: Sacramento, CA
KFDX: Albuquerque, NM
KGWX: Jackson, MS
KDOX: Wakefield, VA
KDYX: San Angelo, TX
KEYX: Las Vegas, NV
KEVX: Mobile, AL
KHPX: Paducah, KY
KTYX: Burlington, VT
KGRK: Dallas / Ft. Worth, TX
KPOE: Lake Charles, LA
KEOX: Tallahassee, FL
KHDX: El Paso, TX
KDFX: San Antonio, TX
KMXX: Birmingham, AL
KMBX: Bismarck, ND
KVAX: Jacksonville, FL
KJGX: Peachtree City/atlanta, GA
KVNX: Norman, OK
KVBX: Vandenberg Afb: Orcutt, CA" | dmenu -r -i -l 50 -p "Select a National Weather Service radar to use as default:" | sed "s/:.*//" | tr "[:lower:]" "[:upper:]")"
# Sanity check of selection and ensure user did not escape.
echo "$chosen" | grep -q "^[A-Z]\+$" && echo "$chosen" > "$radarloc" ;}
getdoppler() {
loc="$(cat "$radarloc")"
notify-send "🌦️ Doppler RADAR" "Pulling most recent Doppler RADAR for $loc."
curl -sL "https://radar.weather.gov/ridge/lite/${loc}_loop.gif" > "$doppler" ;}
showdoppler() { setsid -f mpv --no-osc --loop=inf --no-terminal "$doppler" ;}
case $BLOCK_BUTTON in
1) [ ! -f "$radarloc" ] && pickloc && getdoppler
[ $(($(date '+%s') - $(stat -c %Y "$doppler"))) -gt "$secs" ] && getdoppler
showdoppler ;;
2) pickloc && getdoppler && showdoppler ;;
3) notify-send "🗺️ Doppler RADAR module" "\- Left click for local Doppler RADAR.
- Middle click to update change RADAR location.
After $secs seconds, new clicks will also automatically update the doppler RADAR." ;;
6) "$TERMINAL" -e "$EDITOR" "$0" ;;
esac
echo 🗺️

View file

@ -1,8 +1,12 @@
#!/bin/sh #!/bin/sh
if [ $(hostname) = "syl" ]; then if [ $(hostname) = "syl" ]; then
if [ $WAYLAND_DISPLAY = "wayland-0" ]; then
style="desktop"
else
style="laptop" style="laptop"
#echo "this is hidpi" #echo "this is hidpi"
fi
else else
style="desktop" style="desktop"
#echo "this is not hidpi" #echo "this is not hidpi"

View file

@ -44,11 +44,13 @@ sub get_de {
my $de = $ENV{XDG_CURRENT_DESKTOP}; my $de = $ENV{XDG_CURRENT_DESKTOP};
unless ($de) { $de = $ENV{XDG_SESSION_DESKTOP} }; unless ($de) { $de = $ENV{XDG_SESSION_DESKTOP} };
unless ($de) { $de = $ENV{DESKTOP_SESSION} }; unless ($de) { $de = $ENV{DESKTOP_SESSION} };
return $de; # return $de;
return "river";
} }
sub shell { sub shell {
return (split '/', $ENV{SHELL})[-1]; # return (split '/', $ENV{SHELL})[-1];
return "fish";
} }
sub kernel { sub kernel {

10
scripts/mem-plasma.3s.sh Executable file
View file

@ -0,0 +1,10 @@
#!/bin/sh
# Get the percentage of used memory and print it
read used total <<< $(free -m | awk '/Mem/{printf $2" "$3}')
percent=$(bc -l <<< "100 * $total / $used")
mem=$(awk -v u=$used -v t=$total -v p=$percent 'BEGIN {printf "%sMi/%sMi %.1f% ", t, u, p}'| awk '{printf $2}')
echo "$mem | color=#ff9f43"

4
scripts/muunread-plasma.2s.sh Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
muunread="$(mu find flag:unread AND NOT flag:trashed AND NOT maildir:\"/outlook/Junk\" AND NOT maildir:\"/office/Junk Email\" AND NOT maildir:\"/outlook/Deleted\" AND NOT maildir:\"/office/Deleted Items\" | wc -l)"
echo "$muunread | color=#f3f99d"

View file

@ -1,5 +0,0 @@
#!/bin/bash
set -eu
set -o pipefail
rbw ls --fields folder,name,user | sed 's/\t/\//g' | sort | rofi -dmenu | sed 's/^[^\/]*\///' | sed 's/\// /' | xargs -r rbw get | xclip -l 1

View file

@ -11,48 +11,48 @@ list_passwords() {
} }
prompt='search for passwords...' prompt='search for passwords...'
SECRET=$(list_passwords | rofi -i -p="${prompt}" -dmenu) SECRET=$(list_passwords | rofi -i -p="${prompt}" -dmenu --no-lazy-grab)
# Ask whether pass, user or both are required # Ask whether pass, user or both are required
options=("Password" \ # options=("Password" \
"User" \ # "User" \
"User and password" \ # "User and password" \
"QR-Code" \ # "QR-Code" \
"OTP") # "OTP")
option=$(printf '%s\n' "${options[@]%}" | rofi -i -dmenu -width 400 -lines 4 -prompt="...") # option=$(printf '%s\n' "${options[@]%}" | rofi -i -dmenu -width 400 -lines 4 -prompt="...")
echo $option # echo $option
case ${option} in # case ${option} in
Password ) # Password )
echo "${SECRET}" # echo "${SECRET}"
xdotool type $(rbw get "${SECRET}") # xdotool type $(rbw get "${SECRET}")
;; # ;;
User ) # User )
xdotool type $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}') # xdotool type $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}')
;; # ;;
"User and password" ) # "User and password" )
xdotool type $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}') # xdotool type $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}')
xdotool key Tab # xdotool key Tab
xdotool type $(rbw get "${SECRET}") # xdotool type $(rbw get "${SECRET}")
;; # ;;
"QR-Code" ) # "QR-Code" )
if [[ $SECRET =~ wifi$ ]]; then # if [[ $SECRET =~ wifi$ ]]; then
# Produce a valid wifi QR-code # # Produce a valid wifi QR-code
WIFISSID=$(pass get_user ${SECRET}) # WIFISSID=$(pass get_user ${SECRET})
WIFIPASS=$(pass get_pass ${SECRET}) # WIFIPASS=$(pass get_pass ${SECRET})
WIFIQR="WIFI:T:WPA;S:${WIFISSID};P:${WIFIPASS};;" # WIFIQR="WIFI:T:WPA;S:${WIFISSID};P:${WIFIPASS};;"
qrencode -s 8 -o - $WIFIQR | feh --title "pass: QR-WIFI" - # qrencode -s 8 -o - $WIFIQR | feh --title "pass: QR-WIFI" -
else # else
# Only password # # Only password
pass show -q1 ${SECRET} # pass show -q1 ${SECRET}
fi # fi
;; # ;;
"OTP" ) # "OTP" )
xdotool type $(rbw code ${SECRET}) # xdotool type $(rbw code ${SECRET})
;; # ;;
esac # esac
# wl-copy -o -s ${seat} ${PASSWD_PASS} # # wl-copy -o -s ${seat} ${PASSWD_PASS}

56
scripts/wlrofi-rbw Executable file
View file

@ -0,0 +1,56 @@
#!/usr/bin/env bash
# Very basic interface for rbw using rofi
# Get all password files and create an array
CACHE=~/.local/tmp/pass_rofi
seat=seat0
list_passwords() {
rbw list
}
prompt='search for passwords...'
SECRET=$(list_passwords | rofi -i -p="${prompt}" -dmenu)
# Ask whether pass, user or both are required
options=("Password" \
"User" \
"User and password" \
"QR-Code" \
"OTP")
option=$(printf '%s\n' "${options[@]%}" | rofi -i -dmenu -width 400 -lines 4 -prompt="...")
# echo $option
case ${option} in
Password )
# echo "${SECRET}"
wtype $(rbw get "${SECRET}")
;;
User )
wtype $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}')
;;
"User and password" )
wtype $(rbw get --full "${SECRET}" | rg Username: | awk '{$1 = ""; print $0}')
wtype -k TAB
wtype $(rbw get "${SECRET}")
;;
"QR-Code" )
if [[ $SECRET =~ wifi$ ]]; then
# Produce a valid wifi QR-code
WIFISSID=$(pass get_user ${SECRET})
WIFIPASS=$(pass get_pass ${SECRET})
WIFIQR="WIFI:T:WPA;S:${WIFISSID};P:${WIFIPASS};;"
qrencode -s 8 -o - $WIFIQR | feh --title "pass: QR-WIFI" -
else
# Only password
pass show -q1 ${SECRET}
fi
;;
"OTP" )
wtype $(rbw code ${SECRET})
;;
esac
# wl-copy -o -s ${seat} ${PASSWD_PASS}

View file

@ -74,11 +74,12 @@ titlebar_border_thickness 1
# Start your launcher # Start your launcher
bindsym Menu exec $menu bindsym Menu exec $menu
bindsym $mod+Shift+Menu exec wofi --show drun
bindsym $mod+Menu exec rofi -no-lazy-grab -show run -modi run | xargs swaymsg exec -- bindsym $mod+Menu exec rofi -no-lazy-grab -show run -modi run | xargs swaymsg exec --
bindsym $mod+s exec filesearch bindsym $mod+s exec filesearch
#Pass #Pass
bindsym $mod+p exec rofipass bindsym $mod+p exec wlrofi-rbw
# Screenshot # Screenshot
bindsym Print exec grim -g "${slurp}" - | wl-copy bindsym Print exec grim -g "${slurp}" - | wl-copy
@ -233,8 +234,9 @@ bindsym $mod+Ctrl+m exec makoctl dismiss -a
mode "$mode_launcher" { mode "$mode_launcher" {
bindsym e exec emacsclient -c -a emacs & bindsym e exec emacsclient -c -a emacs &
bindsym b exec qutebrowser bindsym b exec qutebrowser
bindsym a exec emacsclient -c -e '(org-agenda)' bindsym a exec emacsclient -c -e '(chris/org-agenda)'
bindsym m exec emacsclient -c -e '(mu4e)' bindsym m exec emacsclient -c -e '(mu4e)'
bindsym Shift+d exec dolphin
bindsym Return mode "default" bindsym Return mode "default"
bindsym Escape mode "default" bindsym Escape mode "default"
} }
@ -253,9 +255,10 @@ for_window [app_id="mpv"] floating enable
for_window [app_id="imv"] floating enable for_window [app_id="imv"] floating enable
for_window [app_id="dolphin"] floating enable for_window [app_id="dolphin"] floating enable
for_window [app_id="pulsemixer"] floating enable for_window [app_id="pulsemixer"] floating enable
for_window [class="\*Org Agenda(a)\*"] floating enable
for_window [app_id="qutebrowser"] move container to workspace number 2 for_window [app_id="qutebrowser"] move container to workspace number 2
for_window [app_id="qutebrowser"] opacity 1 for_window [app_id="qutebrowser"] opacity 1
for_window [app_id="emacs"] opacity 0.95 for_window [app_id="emacs"] opacity 0.90
for_window [app_id="__focused__"] opacity 1 for_window [app_id="__focused__"] opacity 1
exec emacs --daemon exec emacs --daemon

View file

@ -0,0 +1,8 @@
[Unit]
Description=lolcate updater
[Service]
ExecStart=lolcate --update
[Install]
WantedBy=default.target

View file

@ -0,0 +1,10 @@
[Unit]
Description=run lolcate updater every 20min
[Timer]
OnBootSec=1min
OnUnitActiveSec=20min
[Install]
WantedBy=timers.target

View file

@ -1,14 +1,16 @@
{ {
// "layer": "top", // Waybar at top layer // "layer": "top", // Waybar at top layer
"position": "bottom", // Waybar position (top|bottom|left|right) "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 25, // Waybar height (to be removed for auto height) "height": 35, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width // "width": 1280, // Waybar width
// Choose the order of the modules // Choose the order of the modules
"modules-left": ["sway/workspaces", "river/tags", "sway/mode", "sway/window"], "modules-left": ["sway/workspaces", "sway/mode", "sway/window"],
"modules-center": ["clock"], "modules-center": ["clock"],
"modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "battery#bat2", "tray"], "modules-right": ["pulseaudio", "network", "cpu", "memory", "battery", "battery#bat2", "tray"],
"margin-top": 5, // "margin-top": -10,
"margin-bottom": 10, "margin-bottom": 10,
"margin-left": 29,
"margin-right": 29,
// Modules configuration // Modules configuration
"sway/workspaces": { "sway/workspaces": {
"disable-scroll": true, "disable-scroll": true,
@ -26,7 +28,7 @@
} }
}, },
"river/tags": { "river/tags": {
"num-tags": 5 "num-tags": 8
}, },
"sway/mode": { "sway/mode": {
"format": "<span style=\"italic\"> {}</span>" "format": "<span style=\"italic\"> {}</span>"
@ -49,11 +51,11 @@
"format": "{:%a %b %e, %l:%M %p}" "format": "{:%a %b %e, %l:%M %p}"
}, },
"cpu": { "cpu": {
"format": "{usage}%", "format": "{usage}%",
"tooltip": false "tooltip": false
}, },
"memory": { "memory": {
"format": "{}%" "format": "{}%"
}, },
"temperature": { "temperature": {
// "thermal-zone": 2, // "thermal-zone": 2,
@ -65,7 +67,7 @@
}, },
"backlight": { "backlight": {
// "device": "acpi_video1", // "device": "acpi_video1",
"format": "{percent}% {icon}", "format": "{icon} {percent}%",
"format-icons": ["", ""] "format-icons": ["", ""]
}, },
"battery": { "battery": {
@ -74,9 +76,9 @@
"warning": 30, "warning": 30,
"critical": 15 "critical": 15
}, },
"format": "{capacity}% {icon}", "format": "{icon} {capacity}%",
"format-charging": "{capacity}%", "format-charging": "{capacity}%",
"format-plugged": "{capacity}%", "format-plugged": "{capacity}%",
"format-alt": "{time} {icon}", "format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module // "format-good": "", // An empty format will hide the module
// "format-full": "", // "format-full": "",
@ -89,9 +91,9 @@
"warning": 30, "warning": 30,
"critical": 15 "critical": 15
}, },
"format": "{capacity}% {icon}", "format": "{icon} {capacity}%",
"format-charging": "{capacity}%", "format-charging": "{capacity}%",
"format-plugged": "{capacity}%", "format-plugged": "{capacity}%",
"format-alt": "{time} {icon}", "format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module // "format-good": "", // An empty format will hide the module
// "format-full": "", // "format-full": "",
@ -99,19 +101,19 @@
}, },
"network": { "network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface // "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%)", "format-wifi": "{essid} ({signalStrength}%)",
"format-ethernet": "{ipaddr}", "format-ethernet": "{ipaddr}",
"format-linked": "{ifname} (No IP) ", "format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠", "format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}" "format-alt": "{ifname}: {ipaddr}/{cidr}"
}, },
"pulseaudio": { "pulseaudio": {
// "scroll-step": 1, // %, can be a float // "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}", "format": "{icon} {volume}% {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}", "format-bluetooth": "{icon} {volume}% {format_source}",
"format-bluetooth-muted": " {icon} {format_source}", "format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}", "format-muted": " {format_source}",
"format-source": "{volume}%", "format-source": "{volume}%",
"format-source-muted": "", "format-source-muted": "",
"format-icons": { "format-icons": {
"headphone": "", "headphone": "",
@ -137,7 +139,7 @@
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}, },
"wlr/taskbar": { "wlr/taskbar": {
"format": "<span style='italic'>{icon} {title}</span>", "format": "{icon} {title}",
"icon-size": 20, "icon-size": 20,
"icon-theme": "Papirus-Dark", "icon-theme": "Papirus-Dark",
"tooltip-format": "{title}", "tooltip-format": "{title}",

View file

@ -20,7 +20,7 @@
border: none; border: none;
border-radius: 0; border-radius: 0;
font-family: VictorMono Nerd Font; font-family: VictorMono Nerd Font;
font-size: 12px; font-size: 15px;
font-weight: normal; font-weight: normal;
box-shadow: none; box-shadow: none;
text-shadow: none; text-shadow: none;
@ -32,11 +32,12 @@
window { window {
color: @base05; color: @base05;
background: @basetransparent; background: @base00;
border-radius: 20px;
} }
window#waybar.solo { window#waybar.solo {
background: @basetransparent; background: @base00;
} }
#workspaces { #workspaces {