summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBenjamin Morrison <ben@gbmor.org>2023-11-06 22:15:23 -0500
committerBenjamin Morrison <ben@gbmor.org>2023-11-06 22:15:23 -0500
commitdc500844c448deb46aa8613faa3d295a0061965c (patch)
treed8090e57e9d728f6119d34d05b730d4cf168ddfc
parentc5bae0a85eccbfb07fa5b269b3e8d73e7a60bac4 (diff)
downloaddogfiles-trunk.tar.gz
config drifted. HEAD trunk
-rw-r--r--.SpaceVim.d/init.toml117
-rw-r--r--.config/VSCodium/User/settings.json73
-rw-r--r--.config/alacritty/alacritty.yml6
-rw-r--r--.config/i3/config17
-rw-r--r--.config/polybar.old/config285
-rwxr-xr-x.config/polybar.old/launch.sh7
-rw-r--r--.doom.d/init.el4
-rw-r--r--.fontconfig/fonts.conf13
-rw-r--r--.kshrc10
-rwxr-xr-xbin/touchpad_enable_tap.sh13
-rwxr-xr-xbin/yubikey_detect_touch.sh10
11 files changed, 54 insertions, 501 deletions
diff --git a/.SpaceVim.d/init.toml b/.SpaceVim.d/init.toml
deleted file mode 100644
index 3f9214a..0000000
--- a/.SpaceVim.d/init.toml
+++ /dev/null
@@ -1,117 +0,0 @@
-#=============================================================================
-# dark_powered.toml --- dark powered configuration example for SpaceVim
-# Copyright (c) 2016-2017 Wang Shidong & Contributors
-# Author: Wang Shidong < wsdjeg at 163.com >
-# URL: https://spacevim.org
-# License: GPLv3
-#=============================================================================
-
-# All SpaceVim option below [option] section
-[options]
-    # set spacevim theme. by default colorscheme layer is not loaded,
-    # if you want to use more colorscheme, please load the colorscheme
-    # layer
-    #colorscheme = "molokai"
-    #colorscheme = "gruvbox"
-    colorscheme = "jellybeans"
-    colorscheme_bg = "dark"
-    # file manager pane. Values: vimfiler (default), nerdtree, defx
-    #filemanager = "nerdtree"
-    enable_vimfiler_gitstatus = true
-    # Disable guicolors in basic mode, many terminal do not support 24bit
-    # true colors
-    enable_guicolors = true
-    # Disable statusline separator, if you want to use other value, please
-    # install nerd fonts
-    statusline_separator = "arrow"
-    statusline_inactive_separator = "arrow"
-    buffer_index_type = 4
-    enable_tabline_filetype_icon = true
-    enable_statusline_mode = true
-    enable_neomake = false
-    enable_ale = true
-    lint_on_the_fly = true
-    disabled_plugins = ["neco-look", "floobits"]
-
-# Enable autocomplete layer
-[[layers]]
-    name = 'autocomplete'
-    auto-completion-return-key-behavior = "complete"
-    auto-completion-tab-key-behavior = "smart"
-[[layers]]
-    name = 'checkers'
-    show_cursor_error = false
-[[layers]]
-    name = 'colorscheme'
-[[layers]]
-    name = 'core#statusline'
-[[layers]]
-    name = 'debug'
-[[layers]]
-    name = 'edit'
-[[layers]]
-    name = 'format'
-[[layers]]
-    name = 'fzf'
-[[layers]]
-    name = 'git'
-[[layers]]
-    name = 'gtags'
-[[layers]]
-    name = 'lang#elixir'
-[[layers]]
-    name = 'lang#extra'
-[[layers]]
-    name = 'lang#html'
-[[layers]]
-    name = 'lang#javascript'
-    auto_fix = true
-[[layers]]
-    name = 'lang#latex'
-[[layers]]
-    name = 'lang#lisp'
-[[layers]]
-    name = 'lang#markdown'
-[[layers]]
-    name = 'lang#perl'
-[[layers]]
-    name = 'lang#scheme'
-[[layers]]
-    name = 'lang#sh'
-[[layers]]
-    name = 'lang#typescript'
-[[layers]]
-    name = 'lsp'
-    filetypes = [
-        'c',
-        'cpp',
-        'python',
-        'go',
-        'rust',
-        'zig'
-    ]
-    [layers.override_cmd]
-      zig = ["zls"]
-      python = ["pyright"]
-[[layers]]
-    name = 'shell'
-    default_position = 'top'
-    default_height = 30
-[[layers]]
-    name = 'sudo'
-[[layers]]
-    name = 'test'
-[[layers]]
-    name = 'tmux'
-[[layers]]
-    name = 'tools'
-[[layers]]
-    name = 'ui'
-[[layers]]
-    name = 'unite'
-[[layers]]
-    name = 'VersionControl'
-
-[[custom_plugins]]
-    name = "airblade/vim-gitgutter"
-    merged = true
diff --git a/.config/VSCodium/User/settings.json b/.config/VSCodium/User/settings.json
deleted file mode 100644
index 6d72dd3..0000000
--- a/.config/VSCodium/User/settings.json
+++ /dev/null
@@ -1,73 +0,0 @@
-{
-  "breadcrumbs.enabled": true,
-  "clang-format.executable": "/usr/bin/clang-format",
-  "d.servedPath": "$HOME/.local/share/code-d/bin/serve-d",
-  "editor.acceptSuggestionOnEnter": "off",
-  "editor.fontFamily": "JetBrains Mono",
-  "editor.fontLigatures": true,
-  "editor.formatOnPaste": true,
-  "editor.formatOnSave": true,
-  "editor.minimap.enabled": false,
-  "extensions.showRecommendationsOnlyOnDemand": true,
-  "files.enableTrash": false,
-  "git.autoStash": true,
-  "git.confirmSync": false,
-  "git.defaultCloneDirectory": "$HOME/dev/github",
-  "git.enableCommitSigning": true,
-  "git.fetchOnPull": true,
-  "gitlens.advanced.telemetry.enabled": false,
-  "go.formatTool": "goimports",
-  "go.testFlags": [
-    "-v",
-    "--bench",
-    ".",
-    "--benchmem"
-  ],
-  "go.useLanguageServer": true,
-  "java.configuration.checkProjectSettingsExclusions": false,
-  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
-  "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": true,
-  "[javascript]": {
-    "editor.formatOnSave": false,
-    "editor.tabSize": 2
-  },
-  "[makefile]": {
-    "editor.insertSpaces": false,
-    "editor.tabSize": 4
-  },
-  "prettier.singleQuote": true,
-  "rust.clippy_preference": "on",
-  "rust.crate_blacklist": null,
-  "rust.show_warnings": true,
-  "standard.autoFixOnSave": true,
-  "telemetry.enableCrashReporter": false,
-  "[typescript]": {
-    "editor.tabSize": 2,
-    "editor.defaultFormatter": "vscode.typescript-language-features"
-  },
-  "update.enableWindowsBackgroundUpdates": false,
-  "update.mode": "none",
-  "update.showReleaseNotes": false,
-  "window.menuBarVisibility": "toggle",
-  "workbench.colorTheme": "Dracula",
-  "workbench.enableExperiments": false,
-  "workbench.iconTheme": "material-icon-theme",
-  "workbench.settings.enableNaturalLanguageSearch": false,
-  "editor.formatOnSave": true,
-  "githubPullRequests.telemetry.enabled": false,
-  "[c]": {
-    "editor.defaultFormatter": "ms-vscode.cpptools",
-    "editor.tabSize": 2
-  },
-  "C_Cpp.default.cStandard": "c11",
-  "C_Cpp.default.intelliSenseMode": "clang-x64",
-  "C_Cpp.default.cppStandard": "c++17",
-  "C_Cpp.clang_format_style": "Mozilla",
-  "todo-tree.tree.showScanModeButton": false,
-  "rust-client.engine": "rust-analyzer",
-  "rust-analyzer.updates.channel": "nightly",
-  "python.formatting.provider": "black",
-  "python.pythonPath": "/usr/bin/python3",
-  "shellcheck.executablePath": "/usr/bin/shellcheck",
-  "git.enableStatusBarSync": false
-}
diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml
index 5e10e1d..ae3fbf4 100644
--- a/.config/alacritty/alacritty.yml
+++ b/.config/alacritty/alacritty.yml
@@ -95,19 +95,19 @@ scrolling:
 font:
   # Normal (roman) font face
   normal:
-    family: JetBrains Mono
+    family: terminal-font
     # The `style` can be specified to pick a specific face.
     style: Regular
 
   # Bold font face
   bold:
-    family: JetBrains Mono
+    family: terminal-font
     # The `style` can be specified to pick a specific face.
     style: Bold
 
   # Italic font face
   italic:
-    family: JetBrains Mono
+    family: terminal-font
     # The `style` can be specified to pick a specific face.
     style: Italic
 
diff --git a/.config/i3/config b/.config/i3/config
index d7fb54d..d303d97 100644
--- a/.config/i3/config
+++ b/.config/i3/config
@@ -14,12 +14,13 @@
 exec_always "sh $HOME/.fehbg"
 #exec_always --no-startup-id $HOME/.config/polybar/launch.sh
 exec_always --no-startup-id "$HOME/.config/polybar/launch.sh --material"
-exec "xcompmgr &"
+exec "picom &"
 exec "xscreensaver &"
 exec "blueman-applet"
 exec "pactl upload-sample /usr/share/sounds/freedesktop/stereo/bell.oga x11-bell"
 exec "pactl load-module module-x11-bell sample=x11-bell display=$DISPLAY"
 exec "xset b 100"
+exec "yubikey_detect_touch.sh"
 
 # Font for window titles. Will also be used by the bar unless a different font
 # is used in the bar {} block below.
@@ -55,12 +56,12 @@ floating_modifier $mod
 bindsym $mod+m bar mode toggle
 
 # start a terminal
-bindsym $mod+Shift+Return exec alacritty
-bindsym $mod+Return exec urxvt
+bindsym $mod+Shift+Return exec urxvt
+bindsym $mod+Return exec alacritty
 
-bindsym XF86AudioMute exec "amixer -D pulse sset Master toggle"
-bindsym XF86AudioLowerVolume exec "amixer -D pulse sset Master 5%-"
-bindsym XF86AudioRaiseVolume exec "amixer -D pulse sset Master 5%+"
+bindsym XF86AudioMute exec "pamixer --toggle-mute"
+bindsym XF86AudioLowerVolume exec "pamixer --decrease 5"
+bindsym XF86AudioRaiseVolume exec "pamixer --increase 5"
 bindsym XF86AudioMicMute exec "amixer -D pulse sset Mic toggle"
 #bindsym XF86Sleep exec dmenu_run
 bindsym XF86MonBrightnessDown exec "brightnessctl s 15-"
@@ -76,8 +77,8 @@ bindsym $mod+Shift+q kill
 
 # start dmenu (a program launcher)
 #bindsym $mod+d exec dmenu_run
-bindsym $mod+d exec "rofi -show run"
-bindsym $mod+Shift+d exec "rofi -show ssh"
+bindsym $mod+d exec "dmenu_run"
+bindsym $mod+Shift+d exec "passmenu"
 
 # There also is the (new) i3-dmenu-desktop which only displays applications
 # shipping a .desktop file. It is a wrapper around dmenu, so you need that
diff --git a/.config/polybar.old/config b/.config/polybar.old/config
deleted file mode 100644
index 4228df7..0000000
--- a/.config/polybar.old/config
+++ /dev/null
@@ -1,285 +0,0 @@
-[bar/i3_bar]
-width = 100%
-height = 20
-#radius = 10.0
-fixed-center = false
-
-background = #272827
-foreground = #657b83
-
-line-size = 3
-line-color =
-
-border-size = 0
-border-color =
-
-padding-left = 0
-padding-right = 0
-
-module-margin-left = 1
-module-margin-right = 2
-
-font-0 = "Fira Code:size=10;1"
-font-1 = "Font Awesome 5 Free:style=Solid:size=10;1"
-font-2 = "Font Awesome 5 Brands:size=10;1"
-
-modules-left = i3
-modules-center =
-modules-right = cpu memory rootfs cputemp batt1 batt0 wlan eth date
-
-tray-position = right
-tray-padding = 2
-;wm-restack = i3
-;override-redirect = true
-
-cursor-click = pointer
-cursor-scroll = ns-resize
-
-[module/i3]
-type = internal/i3
-format = <label-state> <label-mode>
-index-sort = true
-wrapping-scroll = false
-
-label-mode-padding = 2
-label-mode-foreground = #657b83
-label-mode-background = #272827
-
-label-focused = %index%
-label-focused-background = #4E524F
-label-focused-foreground = #272827
-label-focused-padding = 2
-
-label-unfocused = %index%
-label-unfocused-background = #7E807E
-label-unfocused-foreground = #272827
-label-unfocused-padding = 2
-
-label-visible = %index%
-label-visible-background = #7E807E
-label-visible-foreground = #272827
-label-visible-padding = 2
-
-label-urgent = %index%
-label-urgent-background = #BA2922
-label-urgent-padding = 2
-
-[module/batt1]
-type = internal/battery
-full-at = 98
-
-battery = BAT1
-adapter = AC
-
-format-charging = <animation-charging> <label-charging>
-format-discharging = <ramp-capacity> <label-discharging>
-format-full = <ramp-capacity> <label-full>
-
-label-charging = %percentage%% %time%h
-label-discharging = %percentage%% %time%h
-ramp-capacity-0 = 
-ramp-capacity-0-foreground = #f53c3c
-ramp-capacity-1 = 
-ramp-capacity-1-foreground = #ffa900
-ramp-capacity-2 = 
-ramp-capacity-3 = 
-ramp-capacity-4 = 
-
-bar-capacity-width = 10
-bar-capacity-format = %{+u}%{+o}%fill%%empty%%{-u}%{-o}
-bar-capacity-fill = █
-bar-capacity-fill-foreground = #ddffffff
-bar-capacity-fill-font = 3
-bar-capacity-empty = █
-bar-capacity-empty-font = 3
-bar-capacity-empty-foreground = #44ffffff
-
-animation-charging-0 = 
-animation-charging-1 = 
-animation-charging-2 = 
-animation-charging-3 = 
-animation-charging-4 = 
-animation-charging-framerate = 750
-
-[module/batt0]
-type = internal/battery
-full-at = 98
-
-battery = BAT0
-adapter = AC
-
-format-charging = <animation-charging> <label-charging>
-format-discharging = <ramp-capacity> <label-discharging>
-format-full = <ramp-capacity> <label-full>
-
-label-charging = %percentage%% %time%h
-label-discharging = %percentage%% %time%h
-ramp-capacity-0 = 
-ramp-capacity-0-foreground = #f53c3c
-ramp-capacity-1 = 
-ramp-capacity-1-foreground = #ffa900
-ramp-capacity-2 = 
-ramp-capacity-3 = 
-ramp-capacity-4 = 
-
-bar-capacity-width = 10
-bar-capacity-format = %{+u}%{+o}%fill%%empty%%{-u}%{-o}
-bar-capacity-fill = █
-bar-capacity-fill-foreground = #ddffffff
-bar-capacity-fill-font = 3
-bar-capacity-empty = █
-bar-capacity-empty-font = 3
-bar-capacity-empty-foreground = #44ffffff
-
-animation-charging-0 = 
-animation-charging-1 = 
-animation-charging-2 = 
-animation-charging-3 = 
-animation-charging-4 = 
-animation-charging-framerate = 750
-
-[module/cpu]
-type = internal/cpu
-interval = 0.5
-format = <label> <ramp-coreload>
-label = CPU
-ramp-coreload-0 = ▁
-ramp-coreload-0-font = 2
-ramp-coreload-0-foreground = #aaff77
-ramp-coreload-1 = ▂
-ramp-coreload-1-font = 2
-ramp-coreload-1-foreground = #aaff77
-ramp-coreload-2 = ▃
-ramp-coreload-2-font = 2
-ramp-coreload-2-foreground = #aaff77
-ramp-coreload-3 = ▄
-ramp-coreload-3-font = 2
-ramp-coreload-3-foreground = #aaff77
-ramp-coreload-4 = ▅
-ramp-coreload-4-font = 2
-ramp-coreload-4-foreground = #fba922
-ramp-coreload-5 = ▆
-ramp-coreload-5-font = 2
-ramp-coreload-5-foreground = #fba922
-ramp-coreload-6 = ▇
-ramp-coreload-6-font = 2
-ramp-coreload-6-foreground = #ff5555
-ramp-coreload-7 = █
-ramp-coreload-7-font = 2
-ramp-coreload-7-foreground = #ff5555
-
-[module/memory]
-type = internal/memory
-format = <label> <bar-used>
-label = RAM
-
-bar-used-width = 10
-bar-used-foreground-0 = #aaff77
-bar-used-foreground-1 = #aaff77
-bar-used-foreground-2 = #fba922
-bar-used-foreground-3 = #ff5555
-bar-used-indicator = |
-bar-used-indicator-font = 6
-bar-used-indicator-foreground = #ff
-bar-used-fill = ─
-bar-used-fill-font = 6
-bar-used-empty = ─
-bar-used-empty-font = 6
-bar-used-empty-foreground = #444444
-
-[module/wireless-network]
-type = internal/network
-interface = wlp5s0
-interval = 1.0
-ping-interval = 10
-
-format-connected = <ramp-signal> <label-connected>
-label-connected = %local_ip%    %downspeed%    %upspeed%
-label-disconnected =    not connected
-label-disconnected-foreground = #66
-
-ramp-signal-0 = 
-ramp-signal-1 = 
-ramp-signal-2 = 
-ramp-signal-3 = 
-ramp-signal-4 = 
-
-animation-packetloss-0 = 
-animation-packetloss-0-foreground = #ffa64c
-animation-packetloss-1 = 
-animation-packetloss-1-foreground = ${bar/top.foreground}
-animation-packetloss-framerate = 500
-
-[module/wlan]
-type = internal/network
-interface = wlp3s0
-interval = 3.0
-
-format-connected = <ramp-signal> <label-connected>
-#format-connected-background = #7E807E
-format-connected-padding = 2
-label-connected = %essid%
-
-format-disconnected =
-
-ramp-signal-0 = 
-ramp-signal-1 = 
-ramp-signal-2 = 
-ramp-signal-3 = 
-ramp-signal-4 = 
-
-[module/eth]
-type = internal/network
-interface = enp0s25
-interval = 3.0
-
-format-connected-padding = 2
-format-connected-foreground = #272827
-format-connected-background = #7E807E
-format-connected-prefix = " "
-format-connected-prefix-foreground = #272827
-label-connected = %local_ip%
-
-format-disconnected =
-
-[module/date]
-type = internal/date
-interval = 5
-
-date =
-date-alt = " %Y-%m-%d"
-
-time = %F %H:%M
-time-alt = %H:%M:%S
-
-format-prefix = 
-format-foreground = #272827
-format-background = #7E807E
-format-padding = 2
-
-label = %date% %time%
-
-[module/rootfs]
-type = internal/fs
-
-mount-0 = /
-interval = 10
-
-format-mounted = <label-mounted>
-label-mounted = %free% free
-
-[module/cputemp]
-type = internal/temperature
-interval = 1
-thermal-zone = 0
-base-temperature = 20
-warn-temperature = 75
-
-[settings]
-screenchange-reload = true
-
-[global/wm]
-margin-top = 20
-margin-bottom = 20
-
-; vim:ft=dosini
diff --git a/.config/polybar.old/launch.sh b/.config/polybar.old/launch.sh
deleted file mode 100755
index 39379b3..0000000
--- a/.config/polybar.old/launch.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/env sh
-
-pkill polybar
-
-sleep 1;
-
-polybar i3_bar &
diff --git a/.doom.d/init.el b/.doom.d/init.el
index b0d650c..cd0f672 100644
--- a/.doom.d/init.el
+++ b/.doom.d/init.el
@@ -39,11 +39,11 @@
        ;;minimap           ; show a map of the code on the side
        modeline            ; snazzy, Atom-inspired modeline, plus API
        ;;nav-flash         ; blink cursor line after big motions
-       neotree             ; a project drawer, like NERDTree for vim
+       ;;neotree             ; a project drawer, like NERDTree for vim
        ophints             ; highlight the region an operation acts on
        (popup +defaults)   ; tame sudden yet inevitable temporary windows
        tabs                ; a tab bar for Emacs
-       ;;treemacs          ; a project drawer, like neotree but cooler
+       treemacs          ; a project drawer, like neotree but cooler
        unicode             ; extended unicode support for various languages
        vc-gutter           ; vcs diff in the fringe
        vi-tilde-fringe     ; fringe tildes to mark beyond EOB
diff --git a/.fontconfig/fonts.conf b/.fontconfig/fonts.conf
new file mode 100644
index 0000000..341ec9f
--- /dev/null
+++ b/.fontconfig/fonts.conf
@@ -0,0 +1,13 @@
+<?xml version='1.0'?>
+<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+<fontconfig>
+
+  <alias>
+    <family>terminal-font</family>
+    <prefer>
+      <family>Fira Code</family>
+      <family>Noto Color Emoji</family>
+     </prefer>
+  </alias>
+
+</fontconfig>
diff --git a/.kshrc b/.kshrc
index 3dd091a..30aeb9c 100644
--- a/.kshrc
+++ b/.kshrc
@@ -4,6 +4,12 @@ bind ^L=clear-screen
 set -o emacs
 export TERM=xterm-256color
 
+export GPG_TTY="$(tty)"
+#export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
+#gpgconf --create-socketdir
+#gpgconf --launch gpg-agent
+#gpg-connect-agent updatestartuptty /bye >/dev/null
+
 [ -f "$HOME/.ksh_completions" ] && . "$HOME/.ksh_completions"
 
 _ps1_ret_code() {
@@ -12,14 +18,14 @@ _ps1_ret_code() {
 }
 
 _ps1_git_branch() {
-  git_status="$(git status 2>/dev/null | awk '/On branch/ {print $3}')"
+  git_status="$(git branch --show-current 2>/dev/null)"
   if [ "$git_status" != "" ]; then
     echo " ($git_status)" 
   fi
 }
 
 #shellcheck disable=SC2025
-export PS1='\u@\h \w`_ps1_git_branch``_ps1_ret_code`\$ '
+export PS1='\n\u@\h \w`_ps1_git_branch``_ps1_ret_code`\$ '
 
 dotfiles() {
   #shellcheck disable=SC2068
diff --git a/bin/touchpad_enable_tap.sh b/bin/touchpad_enable_tap.sh
index 938c652..fbe1150 100755
--- a/bin/touchpad_enable_tap.sh
+++ b/bin/touchpad_enable_tap.sh
@@ -13,11 +13,16 @@ set -eu
 #       xinput, libinput
 
 TOUCHPAD_ID="$(xinput | awk '/Touchpad/ {split($6, a, "="); print a[2]}')"
-TAPPING_PROP_ID="$(xinput list-props "$TOUCHPAD_ID" | awk '/Tapping Enabled \(/ {split($4, a, "[()]"); print a[2]}')"
+#TAPPING_PROP_ID="$(xinput list-props "$TOUCHPAD_ID" | awk '/Tapping Enabled \(/ {split($4, a, "[()]"); print a[2]}')"
+TAPPING_PROP_ID="$(xinput list-props "$TOUCHPAD_ID" | awk '/Tap Action \(/ {split($4, a, "[()]"); print a[2]}')"
+PALM_DETECT_PROP="$(xinput list-props "$TOUCHPAD_ID" | awk '/Palm Detection \(/ {split($4, a, "[()]"); print a[2]}')"
 
-printf 'Touchpad ID:\t%s\n' "$TOUCHPAD_ID"
-printf 'Tapping Prop:\t%s\n' "$TAPPING_PROP_ID"
+printf 'Touchpad ID:\t\t%s\n' "$TOUCHPAD_ID"
+printf 'Tapping Prop:\t\t%s\n' "$TAPPING_PROP_ID"
+printf "Palm Detect Prop:\t%s\n" "$PALM_DETECT_PROP"
 
-/usr/bin/xinput set-prop "$TOUCHPAD_ID" "$TAPPING_PROP_ID" 1
+/usr/bin/xinput set-prop "$TOUCHPAD_ID" "$TAPPING_PROP_ID" 1 1 1 1 1 1
+/usr/bin/xinput set-prop "$TOUCHPAD_ID" "$PALM_DETECT_PROP" 1
 
 printf '\n...Tapping Enabled\n'
+
diff --git a/bin/yubikey_detect_touch.sh b/bin/yubikey_detect_touch.sh
new file mode 100755
index 0000000..ce4893e
--- /dev/null
+++ b/bin/yubikey_detect_touch.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -e
+
+if ! pgrep yubikey-touch-detector; then
+    yubikey-touch-detector &
+fi
+
+if ! pgrep yubikey-push-the-button; then
+    yubikey-push-the-button &
+fi