pruned stuff specific to old non-kde setup

This commit is contained in:
Rudis Muiznieks 2023-04-04 13:21:04 -05:00
parent 9e68a6c023
commit 0fac7a4bca
Signed by: rudism
GPG key ID: CABF2F86EF7884F9
684 changed files with 2 additions and 50083 deletions

13
.gitignore vendored
View file

@ -1,14 +1,3 @@
nvim/plugin
qutebrowser/bookmarks
qutebrowser/quickmarks
qutebrowser/qsettings
qutebrowser/qutepocket.secrets
vnc/tigervnc.history
buildfiles/st/st
buildfiles/x265/x265_git
buildfiles/x265/build
buildfiles/x265/build-10
buildfiles/x265/build-12
buildfiles/newtabber/newtabber
newtabber/newtabber
termux/font.ttf
btop/btop.log

View file

@ -1,960 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#1e1e2e</string>
<key>caret</key>
<string>#bac2de</string>
<key>invisibles</key>
<string>#a6adc8</string>
<key>gutterForeground</key>
<string>#9399b2</string>
<key>gutterForegroundHighlight</key>
<string>#a6e3a1</string>
<key>lineHighlight</key>
<string>#1e1e2e</string>
<key>selection</key>
<string>#6c7086</string>
<key>selectionBorder</key>
<string>#1e1e2e</string>
<key>activeGuide</key>
<string>#fab387</string>
<key>findHighlightForeground</key>
<string>#181825</string>
<key>findHighlight</key>
<string>#f9e2af</string>
<key>bracketsForeground</key>
<string>#9399b2</string>
<key>bracketContentsForeground</key>
<string>#9399b2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c7086</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String regex</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Boolean</string>
<key>scope</key>
<string>constant.language.boolean</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>bold italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in function</string>
<key>scope</key>
<string>support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>variable.other.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Conditional/loop</string>
<key>scope</key>
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Return</string>
<key>scope</key>
<string>keyword.control.return, keyword.control.flow.return</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exception</string>
<key>scope</key>
<string>support.type.exception</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operator</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation separator</string>
<key>scope</key>
<string>punctuation.separator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation terminator</string>
<key>scope</key>
<string>punctuation.terminator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation bracket</string>
<key>scope</key>
<string>punctuation.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9399b2</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Include</string>
<key>scope</key>
<string>keyword.control.import.include</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type</string>
<key>scope</key>
<string>storage.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type namespace</string>
<key>scope</key>
<string>entity.name.namespace, meta.path</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type class</string>
<key>scope</key>
<string>storage.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Label</string>
<key>scope</key>
<string>entity.name.label</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword class</string>
<key>scope</key>
<string>keyword.declaration.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class, meta.toc-list.full-identifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function macro</string>
<key>scope</key>
<string>entity.name.function.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Macro directive - ifdef</string>
<key>scope</key>
<string>keyword.control.import</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constructor</string>
<key>scope</key>
<string>entity.name.function.constructor, entity.name.function.destructor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function declaration</string>
<key>scope</key>
<string>keyword.declaration.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable parameter</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable other</string>
<key>scope</key>
<string>variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable field</string>
<key>scope</key>
<string>variable.other.member</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag delimiter</string>
<key>scope</key>
<string>punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown URL</string>
<key>scope</key>
<string>markup.underline.link.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
<key>fontStyle</key>
<string>italic underline</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown reference</string>
<key>scope</key>
<string>meta.link.inline.description</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown literal</string>
<key>scope</key>
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown title</string>
<key>scope</key>
<string>punctuation.definition.heading, entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown emphasis</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown strong</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash built-in function</string>
<key>scope</key>
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash parameter</string>
<key>scope</key>
<string>variable.language.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua field</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua constructor</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java constant</string>
<key>scope</key>
<string>entity.name.constant.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS property</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS constant</string>
<key>scope</key>
<string>support.constant.property-value.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS suffix</string>
<key>scope</key>
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variable property</string>
<key>scope</key>
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SCSS tag</string>
<key>scope</key>
<string>entity.name.tag.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SASS variable</string>
<key>scope</key>
<string>variable.other.sass</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>background</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c7086</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Message error</string>
<key>scope</key>
<string>message.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.Catppuccin</string>
<key>author</key>
<string>BrunDerSchwarzmagier</string>
</dict>
</plist>

View file

@ -1,25 +0,0 @@
#!/usr/bin/env bash
bluecard=$(pactl list cards | grep 'Name: bluez_card' | awk '{ print $2 }')
if [ "$1" = "fixbt" ] && [ -n "$bluecard" ]; then
pactl set-card-profile "$bluecard" a2dp-sink
exit
fi
hdmisink=$(pactl list sinks | grep 'Name: ' | grep hdmi | awk '{ print $2 }')
bluesink=$(pactl list sinks | grep 'Name: ' | grep bluez | awk '{ print $2 }')
analogsink=$(pactl list sinks | grep 'Name: ' | grep analog | awk '{ print $2 }')
currentsink=$(pactl get-default-sink)
case "$currentsink" in
"$hdmisink") nextsink="${bluesink:-$analogsink}";;
*) nextsink="$hdmisink";;
esac
pactl set-default-sink "$nextsink"
if [ "$nextsink" = "$bluesink" ]; then
pactl set-card-profile "$bluecard" a2dp-sink
fi

View file

@ -1,2 +0,0 @@
#!/bin/sh
col -bx < "$1" | bat --language man -p

View file

@ -1,10 +0,0 @@
#!/bin/sh
# battery percentage
battpct="$(upower --show-info $(upower --enumerate | grep -i 'BAT') | grep -E "percentage" | awk '{print $2}')"
battpct="${battpct%\%}"
# battery status (charging/charged/etc)
batstat="$(upower --show-info $(upower --enumerate | grep -i 'BAT') | grep -E "state" | awk '{print $2}')"
notify-send "Battery: ${battpct}% ($batstat)"

View file

@ -1,500 +0,0 @@
#!/usr/bin/env bash
# Rofi extension for BitWarden-cli
NAME="$(basename "$0")"
VERSION="0.4"
DEFAULT_CLEAR=5
BW_HASH=
# Options
CLEAR=$DEFAULT_CLEAR # Clear password after N seconds (0 to disable)
SHOW_PASSWORD=no # Show part of the password in the notification
AUTO_LOCK=900 # 15 minutes, default for bitwarden apps
# Holds the available items in memory
ITEMS=
# Stores which command will be used to emulate keyboard type
AUTOTYPE_MODE=
# Stores which command will be used to deal with clipboards
CLIPBOARD_MODE=
# Specify what happens when pressing Enter on an item.
# Defaults to copy_password, can be changed to (auto_type all) or (auto_type password)
ENTER_CMD=copy_password
# Keyboard shortcuts
KB_SYNC="Alt+r"
KB_URLSEARCH="Alt+u"
KB_NAMESEARCH="Alt+n"
KB_FOLDERSELECT="Alt+c"
KB_TOTPCOPY="Alt+t"
KB_LOCK="Alt+L"
KB_TYPEALL="Alt+1"
KB_TYPEUSER="Alt+2"
KB_TYPEPASS="Alt+3"
# Item type classification
TYPE_LOGIN=1
TYPE_NOTE=2
TYPE_CARD=3
TYPE_IDENTITY=4
# Populated in parse_cli_arguments
ROFI_OPTIONS=()
DEDUP_MARK="(+)"
# Source helper functions
DIR="$(dirname "$(readlink -f "$0")")"
source "$DIR/lib-bwmenu"
ask_password() {
mpw=$(printf '' | rofi -dmenu -p "Master Password" -password -lines 0) || exit $?
echo "$mpw" | bw unlock 2>/dev/null | grep 'export' | sed -E 's/.*export BW_SESSION="(.*==)"$/\1/' || exit_error $? "Could not unlock vault"
}
get_session_key() {
if [ $AUTO_LOCK -eq 0 ]; then
keyctl purge user bw_session &>/dev/null
BW_HASH=$(ask_password)
else
if ! key_id=$(keyctl request user bw_session 2>/dev/null); then
session=$(ask_password)
[[ -z "$session" ]] && exit_error 1 "Could not unlock vault"
key_id=$(echo "$session" | keyctl padd user bw_session @u)
fi
if [ $AUTO_LOCK -gt 0 ]; then
keyctl timeout "$key_id" $AUTO_LOCK
fi
BW_HASH=$(keyctl pipe "$key_id")
fi
}
# source the hash file to gain access to the BitWarden CLI
# Pre fetch all the items
load_items() {
if ! ITEMS=$(bw list items --session "$BW_HASH" 2>/dev/null); then
exit_error $? "Could not load items"
fi
}
exit_error() {
local code="$1"
local message="$2"
rofi -e "$message"
exit "$code"
}
# Show the Rofi menu with options
# Reads items from stdin
rofi_menu() {
actions=(
-kb-custom-1 $KB_SYNC
-kb-custom-2 $KB_NAMESEARCH
-kb-custom-3 $KB_URLSEARCH
-kb-custom-4 $KB_FOLDERSELECT
-kb-custom-8 $KB_TOTPCOPY
-kb-custom-9 $KB_LOCK
)
msg="<b>$KB_SYNC</b>: sync | <b>$KB_URLSEARCH</b>: urls | <b>$KB_NAMESEARCH</b>: names | <b>$KB_FOLDERSELECT</b>: folders | <b>$KB_TOTPCOPY</b>: totp | <b>$KB_LOCK</b>: lock"
[[ ! -z "$AUTOTYPE_MODE" ]] && {
actions+=(
-kb-custom-5 $KB_TYPEALL
-kb-custom-6 $KB_TYPEUSER
-kb-custom-7 $KB_TYPEPASS
)
msg+="
<b>$KB_TYPEALL</b>: Type all | <b>$KB_TYPEUSER</b>: Type user | <b>$KB_TYPEPASS</b>: Type pass"
}
rofi -dmenu -p 'Name' \
-i -no-custom \
-mesg "$msg" \
"${actions[@]}" \
"${ROFI_OPTIONS[@]}"
}
# Show items in a rofi menu by name of the item
show_items() {
if item=$(
echo "$ITEMS" \
| jq -r ".[] | select( has( \"login\" ) ) | \"\\(.name)\"" \
| dedup_lines \
| rofi_menu
); then
item_array="$(array_from_name "$item")"
"${ENTER_CMD[@]}" "$item_array"
else
rofi_exit_code=$?
item_array="$(array_from_name "$item")"
on_rofi_exit "$rofi_exit_code" "$item_array"
fi
}
# Similar to show_items() but using the item's ID for deduplication
show_full_items() {
if item=$(
echo "$ITEMS" \
| jq -r ".[] | select( has( \"login\" )) | \"\\(.id): name: \\(.name), username: \\(.login.username)\"" \
| rofi_menu
); then
item_id="$(echo "$item" | cut -d ':' -f 1)"
item_array="$(array_from_id "$item_id")"
"${ENTER_CMD[@]}" "$item_array"
else
rofi_exit_code=$?
item_id="$(echo "$item" | cut -d ':' -f 1)"
item_array="$(array_from_id "$item_id")"
on_rofi_exit "$rofi_exit_code" "$item_array"
fi
}
# Show items in a rofi menu by url of the item
# if url occurs in multiple items, show the menu again with those items only
show_urls() {
if url=$(
echo "$ITEMS" \
| jq -r '.[] | select(has("login")) | .login | select(has("uris")).uris | .[].uri' \
| rofi_menu
); then
item_array="$(bw list items --url "$url" --session "$BW_HASH")"
"${ENTER_CMD[@]}" "$item_array"
else
rofi_exit_code="$?"
item_array="$(bw list items --url "$url" --session "$BW_HASH")"
on_rofi_exit "$rofi_exit_code" "$item_array"
fi
}
show_folders() {
folders=$(bw list folders --session "$BW_HASH")
if folder=$(echo "$folders" | jq -r '.[] | .name' | rofi_menu); then
folder_id=$(echo "$folders" | jq -r ".[] | select(.name == \"$folder\").id")
ITEMS=$(bw list items --folderid "$folder_id" --session "$BW_HASH")
show_items
else
rofi_exit_code="$?"
folder_id=$(echo "$folders" | jq -r ".[] | select(.name == \"$folder\").id")
item_array=$(bw list items --folderid "$folder_id" --session "$BW_HASH")
on_rofi_exit "$rofi_exit_code" "$item_array"
fi
}
# re-sync the BitWarden items with the server
sync_bitwarden() {
bw sync --session "$BW_HASH" &>/dev/null || exit_error 1 "Failed to sync bitwarden"
load_items
show_items
}
# Evaluate the rofi exit codes
on_rofi_exit() {
case "$1" in
10) sync_bitwarden;;
11) load_items; show_items;;
12) show_urls;;
13) show_folders;;
17) copy_totp "$2";;
18) lock_vault;;
14) auto_type all "$2";;
15) auto_type username "$2";;
16) auto_type password "$2";;
*) exit "$1";;
esac
}
# Auto type using xdotool/ydotool
# $1: what to type; all, username, password
# $2: item array
auto_type() {
if not_unique "$2"; then
ITEMS="$2"
show_full_items
else
sleep 0.3
case "$1" in
all)
type_word "$(echo "$2" | jq -r '.[0].login.username')"
type_tab
type_word "$(echo "$2" | jq -r '.[0].login.password')"
;;
username)
type_word "$(echo "$2" | jq -r '.[0].login.username')"
;;
password)
type_word "$(echo "$2" | jq -r '.[0].login.password')"
;;
esac
fi
}
# Set $AUTOTYPE_MODE to a command that will emulate keyboard input
select_autotype_command() {
if [[ -z "$AUTOTYPE_MODE" ]]; then
if [ "$XDG_SESSION_TYPE" = "wayland" ] && hash ydotool 2>/dev/null; then
AUTOTYPE_MODE=(sudo ydotool)
elif [ "$XDG_SESSION_TYPE" != "wayland" ] && hash xdotool 2>/dev/null; then
AUTOTYPE_MODE=xdotool
fi
fi
}
type_word() {
"${AUTOTYPE_MODE[@]}" type "$1"
}
type_tab() {
"${AUTOTYPE_MODE[@]}" key Tab
}
# Set $CLIPBOARD_MODE to a command that will put stdin into the clipboard.
select_copy_command() {
if [[ -z "$CLIPBOARD_MODE" ]]; then
if [ "$XDG_SESSION_TYPE" = "wayland" ]; then
hash wl-copy 2>/dev/null && CLIPBOARD_MODE=wayland
elif hash xclip 2>/dev/null; then
CLIPBOARD_MODE=xclip
elif hash xsel 2>/dev/null; then
CLIPBOARD_MODE=xsel
fi
[ -z "$CLIPBOARD_MODE" ] && exit_error 1 "No clipboard command found. Please install either xclip, xsel, or wl-clipboard."
fi
}
clipboard-set() {
clipboard-${CLIPBOARD_MODE}-set
}
clipboard-get() {
clipboard-${CLIPBOARD_MODE}-get
}
clipboard-clear() {
clipboard-${CLIPBOARD_MODE}-clear
}
clipboard-xclip-set() {
xclip -selection clipboard -r
}
clipboard-xclip-get() {
xclip -selection clipboard -o
}
clipboard-xclip-clear() {
echo -n "" | xclip -selection clipboard -r
}
clipboard-xsel-set() {
xsel --clipboard --input
}
clipboard-xsel-get() {
xsel --clipboard
}
clipboard-xsel-clear() {
xsel --clipboard --delete
}
clipboard-wayland-set() {
wl-copy
}
clipboard-wayland-get() {
wl-paste
}
clipboard-wayland-clear() {
wl-copy --clear
}
# Copy the password
# copy to clipboard and give the user feedback that the password is copied
# $1: json array of items
copy_password() {
if not_unique "$1"; then
ITEMS="$1"
show_full_items
else
pass="$(echo "$1" | jq -r '.[0].login.password')"
show_copy_notification "$(echo "$1" | jq -r '.[0]')"
echo -n "$pass" | clipboard-set
if [[ $CLEAR -gt 0 ]]; then
sleep "$CLEAR"
if [[ "$(clipboard-get)" == "$pass" ]]; then
clipboard-clear
fi
fi
fi
}
# Copy the TOTP
# $1: item array
copy_totp() {
if not_unique "$1"; then
ITEMS="$item_array"
show_full_items
else
id=$(echo "$1" | jq -r ".[0].id")
if ! totp=$(bw --session "$BW_HASH" get totp "$id"); then
exit_error 1 "$totp"
fi
echo -n "$totp" | clipboard-set
notify-send "TOTP Copied"
fi
}
# Lock the vault by purging the key used to store the session hash
lock_vault() {
keyctl purge user bw_session &>/dev/null
}
# Show notification about the password being copied.
# $1: json item
show_copy_notification() {
local title
local body=""
local extra_options=()
title="<b>$(echo "$1" | jq -r '.name')</b> copied"
if [[ $SHOW_PASSWORD == "yes" ]]; then
pass=$(echo "$1" | jq -r '.login.password')
body="${pass:0:4}****"
fi
if [[ $CLEAR -gt 0 ]]; then
body="$body<br>Will be cleared in ${CLEAR} seconds."
# Keep notification visible while the clipboard contents are active.
extra_options+=("-t" "$((CLEAR * 1000))")
fi
# not sure if icon will be present everywhere, /usr/share/icons is default icon location
notify-send "$title" "$body" "${extra_options[@]}" -i /usr/share/icons/hicolor/64x64/apps/bitwarden.png
}
parse_cli_arguments() {
# Use GNU getopt to parse command line arguments
if ! ARGUMENTS=$(getopt -o c:C --long auto-lock:,clear:,no-clear,show-password,state-path:,help,version -- "$@"); then
exit_error 1 "Failed to parse command-line arguments"
fi
eval set -- "$ARGUMENTS"
while true; do
case "$1" in
--help )
cat <<-USAGE
$NAME $VERSION
Usage:
$NAME [options] -- [rofi options]
Options:
--help
Show this help text and exit.
--version
Show version information and exit.
--auto-lock <SECONDS>
Automatically lock the Vault <SECONDS> seconds after last unlock.
Use 0 to lock immediatly.
Use -1 to disable.
Default: 900 (15 minutes)
-c <SECONDS>, --clear <SECONDS>, --clear=<SECONDS>
Clear password from clipboard after this many seconds.
Defaults: ${DEFAULT_CLEAR} seconds.
-C, --no-clear
Don't automatically clear the password from the clipboard. This disables
the default --clear option.
--show-password
Show the first 4 characters of the copied password in the notification.
Quick Actions:
When hovering over an item in the rofi menu, you can make use of Quick Actions.
$KB_SYNC Resync your vault
$KB_URLSEARCH Search through urls
$KB_NAMESEARCH Search through names
$KB_FOLDERSELECT Search through folders
$KB_TOTPCOPY Copy the TOTP
$KB_TYPEALL Autotype the username and password [needs xdotool or ydotool]
$KB_TYPEUSER Autotype the username [needs xdotool or ydotool]
$KB_TYPEPASS Autotype the password [needs xdotool or ydotool]
$KB_LOCK Lock your vault
Examples:
# Default options work well
$NAME
# Immediatly lock the Vault after use
$NAME --auto-lock 0
# Never lock the Vault
$NAME --auto-lock -1
# Place rofi on top of screen, like a Quake console
$NAME -- -location 2
USAGE
shift
exit 0
;;
--version )
echo "$NAME $VERSION"
shift
exit 0
;;
--auto-lock )
AUTO_LOCK=$2
shift 2
;;
-c | --clear )
CLEAR="$2"
shift 2
;;
-C | --no-clear )
CLEAR=0
shift
;;
--show-password )
SHOW_PASSWORD=yes
shift
;;
-- )
shift
ROFI_OPTIONS=("$@")
break
;;
* )
exit_error 1 "Unknown option $1"
esac
done
}
parse_cli_arguments "$@"
get_session_key
select_autotype_command
select_copy_command
load_items
show_items

View file

@ -1,30 +0,0 @@
#!/bin/bash
# Helper functions
# Extract item or items matching .name, including deduplication
# $1: item name, prepended or not with deduplication mark
array_from_name() {
item_name="$(echo "$1" | sed "s/$DEDUP_MARK //")"
echo "$ITEMS" | jq -r ". | map(select((.name == \"$item_name\") and (.type == $TYPE_LOGIN)))"
}
# Extract item matching .id
# $1: string starting with ".id:"
array_from_id() {
echo "$ITEMS" | jq -r ". | map(select(.id == \"$1\"))"
}
# Count the number of items in an array. Return true if more than 1 or none
# $1: Array of items
not_unique() {
item_count=$(echo "$1" | jq -r '. | length')
! [[ $item_count -eq 1 ]]
}
# Pipe a document and deduplicate lines.
# Mark those duplicated by prepending $DEDUP_MARK
dedup_lines() {
sort | uniq -c \
| sed "s/^\s*1 //" \
| sed -r "s/^\s*[0-9]+ /$DEDUP_MARK /"
}

View file

@ -1,24 +0,0 @@
#!/usr/bin/env bash
winid=$(xdotool search --classname QuakeConsole)
mongeom=$(herbstclient attr monitors.focus.geometry)
monw=${mongeom%x*}
monw=$(( monw - 4 ))
curtag=$(herbstclient attr tags.focus.name)
if [ -z "$winid" ]; then
(
rules=( floating=on floating_geometry="${monw}x512+1+1" )
herbstclient rule once pid=$BASHPID maxage=10 "${rules[@]}"
exec st -c QuakeConsole -n QuakeConsole -t QuakeConsole
) &
else
hcid=$(printf "0x%x" "$winid")
visible=$(herbstclient attr clients."$hcid".visible)
wintag=$(herbstclient attr clients."$hcid".tag)
if [ "$visible" = "false" ] || [ "$wintag" != "$curtag" ]; then
herbstclient chain , lock , set_attr clients."$hcid".floating_geometry "${monw}x512+1+1" , bring "$winid" , unlock
else
herbstclient set_attr clients."$hcid".minimized true
fi
fi

View file

@ -1,73 +0,0 @@
#!/usr/bin/env sh
VERSION="0.0.2"
usage() {
echo 'stickyctl'
echo
echo "Version: $VERSION"
echo
echo 'stickyctl is a script to manage making windows (floating'
echo 'or tiled) sticky in herbstluftwm so it is visible on any'
echo 'tag.'
echo
echo 'Herbstluftwm autostart requirements:'
echo 'The following attributes need to be defined in the'
echo 'autostart file. This holds the window ID of the sticky'
echo 'window. It should be of type string'
echo ' my_sticky'
echo
echo 'Usage:'
echo ' stick Makes the focused window sticky.'
echo
echo ' unstick Clears the window ID and un-stick the'
echo ' window.'
echo
echo ' get-sticky Called when switching tags and gets'
echo ' the sticky window and pulls it to the'
echo ' current tag.'
echo
echo ' status Shows if a window is sticky. Use with'
echo ' status bars.'
echo
echo ' locate Focuses the sticky window.'
echo
echo ' reset Resets the my_sticky attribute in case'
echo ' the sticky window is closed without'
echo ' un-sticking it.'
exit 0
}
hc() {
herbstclient "$@"
}
case "$@" in
stick)
hc set_attr my_sticky $(hc attr clients.focus.winid)
notify-send -u normal "Sticky" "Window is <b><span foreground=\"#c0f83e\">STICKY</span></b>"
;;
unstick)
hc set_attr my_sticky ''
notify-send -u normal "Sticky" "Window is <b><span foreground=\"#c0f83e\">NOT STICKY</span></b>"
;;
get-sticky)
focused=$(hc get_attr clients.focus.winid)
hc bring $(hc attr my_sticky)
hc jumpto $focused
;;
status)
[[ -n $(hc attr my_sticky) ]] && echo "%{F#ffff52} %{F-} |" || echo ""
;;
locate)
hc jumpto "$(hc attr my_sticky)"
;;
reset)
hc set_attr my_sticky ''
notify-send -u critical -t 5000 "Sticky" "Sticky-Control is <b><span foreground=\"#ff4a52\">RESET</span></b>"
;;
*)
usage
;;
esac

View file

@ -1,6 +0,0 @@
#!/usr/bin/env bash
cd ~/.timewarrior/
git add --all .
git commit -m 'timew-backup'
git push

View file

@ -1,5 +0,0 @@
#!/usr/bin/env bash
sudo modprobe v4l2loopback devices=1 exclusive_caps=1 video_nr=4 card_label="virt_webcam"
ffmpeg -f v4l2 -input_format mjpeg -framerate 30 -video_size 1280x720 -i /dev/video-webcam -vcodec copy -pix_fmt yuyv422 -f v4l2 /dev/video4
sudo rmmod v4l2loopback

View file

@ -1,22 +0,0 @@
#!/usr/bin/env bash
running=$(pgrep xnots)
curtag=$(herbstclient attr tags.focus.name)
if [ -z "$running" ]; then
exec xnots
else
visible=
for winid in $(xdotool search --class XNots); do
hcid=$(printf "0x%x" "$winid")
if [ -z "$visible" ]; then
visible=$(herbstclient attr clients."$hcid".visible)
fi
wintag=$(herbstclient attr clients."$hcid".tag)
if [ "$visible" = false ] || [ "$wintag" != "$curtag" ]; then
herbstclient bring "$winid"
else
herbstclient set_attr clients."$hcid".minimized true
fi
done
fi

View file

@ -1,7 +0,0 @@
#!/bin/sh
if command -v st 2>/dev/null; then
st -f "monospace:pixelsize=26:antialias=true:autohint=true" -e nvim ~/writing +TZAtaraxis -c "lua require('telescope').setup { defaults = { layout_strategy = 'vertical', layout_config = { vertical = { preview_cutoff = 10 }}}}"
else
nvim ~/writing +TZAtaraxis -c "lua require('telescope').setup { defaults = { layout_strategy = 'vertical', layout_config = { vertical = { preview_cutoff = 10 }}}}"
fi

View file

@ -1,212 +0,0 @@
#? Config file for btop v. 1.2.13
#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes.
#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes"
color_theme = "/home/rudism/.config/btop/themes/catppuccin_mocha.theme"
#* If the theme set background should be shown, set to False if you want terminal background transparency.
theme_background = True
#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false.
truecolor = True
#* Set to true to force tty mode regardless if a real tty has been detected or not.
#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols.
force_tty = False
#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets.
#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box.
#* Use whitespace " " as separator between different presets.
#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty"
presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty"
#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists.
#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift.
vim_keys = False
#* Rounded corners on boxes, is ignored if TTY mode is ON.
rounded_corners = True
#* Default symbols to use for graph creation, "braille", "block" or "tty".
#* "braille" offers the highest resolution but might not be included in all fonts.
#* "block" has half the resolution of braille but uses more common characters.
#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY.
#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view.
graph_symbol = "braille"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_net = "default"
# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace.
shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct",
#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly.
proc_sorting = "cpu lazy"
#* Reverse sorting order, True or False.
proc_reversed = False
#* Show processes as a tree.
proc_tree = False
#* Use the cpu graph colors in the process list.
proc_colors = True
#* Use a darkening gradient in the process list.
proc_gradient = True
#* If process cpu usage should be of the core it's running on or usage of the total available cpu power.
proc_per_core = False
#* Show process memory as bytes instead of percent.
proc_mem_bytes = True
#* Show cpu graph for each process.
proc_cpu_graphs = True
#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate)
proc_info_smaps = False
#* Show proc box on left side of screen instead of right.
proc_left = False
#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop).
proc_filter_kernel = False
#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_upper = "total"
#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available.
#* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "total"
#* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True
#* Set to True to completely disable the lower CPU graph.
cpu_single_graph = False
#* Show cpu box at bottom of screen instead of top.
cpu_bottom = False
#* Shows the system uptime in the CPU box.
show_uptime = True
#* Show cpu temperature.
check_temp = True
#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors.
cpu_sensor = "Auto"
#* Show temperatures for cpu cores also if check_temp is True and sensors has been found.
show_coretemp = True
#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core.
#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine.
#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries.
#* Example: "4:0 5:1 6:3"
cpu_core_map = ""
#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine".
temp_scale = "celsius"
#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024.
base_10_sizes = False
#* Show CPU frequency.
show_cpu_freq = True
#* Draw a clock at top of screen, formatting according to strftime, empty string to disable.
#* Special formatting: /host = hostname | /user = username | /uptime = system uptime
clock_format = "%X"
#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort.
background_update = True
#* Custom cpu model name, empty string to disable.
custom_cpu_name = ""
#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ".
#* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user".
disks_filter = ""
#* Show graphs instead of meters for memory values.
mem_graphs = True
#* Show mem box below net box instead of above.
mem_below_net = False
#* Count ZFS ARC in cached and available memory.
zfs_arc_cached = True
#* If swap memory should be shown in memory box.
show_swap = True
#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk.
swap_disk = True
#* If mem box should be split to also show disks info.
show_disks = True
#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar.
only_physical = True
#* Read disks list from /etc/fstab. This also disables only_physical.
use_fstab = True
#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool)
zfs_hide_datasets = False
#* Set to true to show available disk space for privileged users.
disk_free_priv = False
#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view.
show_io_stat = True
#* Toggles io mode for disks, showing big graphs for disk read/write speeds.
io_mode = False
#* Set to True to show combined read/write io graphs in io mode.
io_graph_combined = False
#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ".
#* Example: "/mnt/media:100 /:20 /boot:1".
io_graph_speeds = ""
#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False.
net_download = 100
net_upload = 100
#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest.
net_auto = True
#* Sync the auto scaling for download and upload to whichever currently has the highest scale.
net_sync = True
#* Starts with the Network Interface specified here.
net_iface = ""
#* Show battery stats in top right if battery is present.
show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto"
#* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG".
#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING"

View file

@ -1,42 +0,0 @@
theme[main_bg]="#1E1E2E"
theme[main_fg]="#CDD6F4"
theme[title]="#CDD6F4"
theme[hi_fg]="#89B4FA"
theme[selected_bg]="#45475A"
theme[selected_fg]="#89B4FA"
theme[inactive_fg]="#7F849C"
theme[graph_text]="#F5E0DC"
theme[meter_bg]="#45475A"
theme[proc_misc]="#F5E0DC"
theme[cpu_box]="#74C7EC"
theme[mem_box]="#A6E3A1"
theme[net_box]="#CBA6F7"
theme[proc_box]="#F2CDCD"
theme[div_line]="#6C7086"
theme[temp_start]="#F9E2AF"
theme[temp_mid]="#FAB387"
theme[temp_end]="#F38BA8"
theme[cpu_start]="#74C7EC"
theme[cpu_mid]="#89DCEB"
theme[cpu_end]="#94E2D5"
theme[free_start]="#94E2D5"
theme[free_mid]="#94E2D5"
theme[free_end]="#A6E3A1"
theme[cached_start]="#F5C2E7"
theme[cached_mid]="#F5C2E7"
theme[cached_end]="#CBA6F7"
theme[available_start]="#F5E0DC"
theme[available_mid]="#F2CDCD"
theme[available_end]="#F2CDCD"
theme[used_start]="#FAB387"
theme[used_mid]="#FAB387"
theme[used_end]="#F38BA8"
theme[download_start]="#B4BEFE"
theme[download_mid]="#B4BEFE"
theme[download_end]="#CBA6F7"
theme[upload_start]="#B4BEFE"
theme[upload_mid]="#B4BEFE"
theme[upload_end]="#CBA6F7"
theme[process_start]="#74C7EC"
theme[process_mid]="#89DCEB"
theme[process_end]="#94E2D5"

View file

@ -1,5 +0,0 @@
## Build Files
- `st` builds [st](https://st.suckless.org/) with my custom config and installs to `/usr/local`
- `x265` builds a multi-bitrate [x265](https://bitbucket.org/multicoreware/x265_git) with numa support and installs to `/home/rudism/.local`
- `newtabber` is my config and publish script for [my new tab generator](https://code.sitosis.com/rudism/newtabber)

View file

@ -1,19 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
builddir="$(dirname "$0")"
pushd "$builddir"
if [ -d "./st" ]; then
git -C "./st" pull
else
git clone "https://git.suckless.org/st"
fi
cp config.h ./st/
cd st
make
sudo make install
popd

View file

@ -1,472 +0,0 @@
/* See LICENSE file for copyright and license details. */
/*
* appearance
*
* font: see http://freedesktop.org/software/fontconfig/fontconfig-user.html
*/
static char *font = "monospace:pixelsize=16:antialias=true:autohint=true";
static int borderpx = 2;
/*
* What program is execed by st depends of these precedence rules:
* 1: program passed with -e
* 2: scroll and/or utmp
* 3: SHELL environment variable
* 4: value of shell in /etc/passwd
* 5: value of shell in config.h
*/
static char *shell = "/bin/sh";
char *utmp = NULL;
/* scroll program: to enable use a string like "scroll" */
char *scroll = NULL;
char *stty_args = "stty raw pass8 nl -echo -iexten -cstopb 38400";
/* identification sequence returned in DA and DECID */
char *vtiden = "\033[?6c";
/* Kerning / character bounding-box multipliers */
static float cwscale = 1.0;
static float chscale = 1.0;
/*
* word delimiter string
*
* More advanced example: L" `'\"()[]{}"
*/
wchar_t *worddelimiters = L" ";
/* selection timeouts (in milliseconds) */
static unsigned int doubleclicktimeout = 300;
static unsigned int tripleclicktimeout = 600;
/* alt screens */
int allowaltscreen = 1;
/* allow certain non-interactive (insecure) window operations such as:
setting the clipboard text */
int allowwindowops = 0;
/*
* draw latency range in ms - from new content/keypress/etc until drawing.
* within this range, st draws when content stops arriving (idle). mostly it's
* near minlatency, but it waits longer for slow updates to avoid partial draw.
* low minlatency will tear/flicker more, as it can "detect" idle too early.
*/
static double minlatency = 8;
static double maxlatency = 33;
/*
* blinking timeout (set to 0 to disable blinking) for the terminal blinking
* attribute.
*/
static unsigned int blinktimeout = 800;
/*
* thickness of underline and bar cursors
*/
static unsigned int cursorthickness = 2;
/*
* bell volume. It must be a value between -100 and 100. Use 0 for disabling
* it
*/
static int bellvolume = 0;
/* default TERM value */
char *termname = "st-256color";
/*
* spaces per tab
*
* When you are changing this value, don't forget to adapt the »it« value in
* the st.info and appropriately install the st.info in the environment where
* you use this st version.
*
* it#$tabspaces,
*
* Secondly make sure your kernel is not expanding tabs. When running `stty
* -a` »tab0« should appear. You can tell the terminal to not expand tabs by
* running following command:
*
* stty tabs
*/
unsigned int tabspaces = 8;
/* Terminal colors (16 first used in escape sequence) */
static const char *colorname[] = {
/* 8 normal colors */
"#45475A",
"#F38BA8",
"#A6E3A1",
"#F9E2AF",
"#89B4FA",
"#F5C2E7",
"#94E2D5",
"#BAC2DE",
/* 8 bright colors */
"#585B70",
"#F38BA8",
"#A6E3A1",
"#F9E2AF",
"#89B4FA",
"#F5C2E7",
"#94E2D5",
"#A6ADC8",
[256] = "#CDD6F4", /* default foreground colour */
[257] = "#1E1E2E", /* default background colour */
[258] = "#F5E0DC", /*575268*/
};
/*
* foreground, background, cursor, reverse cursor
*/
unsigned int defaultfg = 256;
unsigned int defaultbg = 257;
unsigned int defaultcs = 258;
static unsigned int defaultrcs = 258;
/*
* Default shape of cursor
* 2: Block ("")
* 4: Underline ("_")
* 6: Bar ("|")
* 7: Snowman ("")
*/
static unsigned int cursorshape = 4;
/*
* Default columns and rows numbers
*/
static unsigned int cols = 80;
static unsigned int rows = 24;
/*
* Default colour and shape of the mouse cursor
*/
static unsigned int mouseshape = XC_xterm;
static unsigned int mousefg = 7;
static unsigned int mousebg = 0;
/*
* Color used to display font attributes when fontconfig selected a font which
* doesn't match the ones requested.
*/
static unsigned int defaultattr = 11;
/*
* Force mouse select/shortcuts while mask is active (when MODE_MOUSE is set).
* Note that if you want to use ShiftMask with selmasks, set this to an other
* modifier, set to 0 to not use it.
*/
static uint forcemousemod = ShiftMask;
/*
* Internal mouse shortcuts.
* Beware that overloading Button1 will disable the selection.
*/
static MouseShortcut mshortcuts[] = {
/* mask button function argument release */
{ XK_ANY_MOD, Button2, selpaste, {.i = 0}, 1 },
{ ShiftMask, Button4, ttysend, {.s = "\033[5;2~"} },
{ XK_ANY_MOD, Button4, ttysend, {.s = "\031"} },
{ ShiftMask, Button5, ttysend, {.s = "\033[6;2~"} },
{ XK_ANY_MOD, Button5, ttysend, {.s = "\005"} },
};
/* Internal keyboard shortcuts. */
#define MODKEY Mod1Mask
#define TERMMOD (ControlMask|ShiftMask)
static Shortcut shortcuts[] = {
/* mask keysym function argument */
{ XK_ANY_MOD, XK_Break, sendbreak, {.i = 0} },
/*{ ControlMask, XK_Print, toggleprinter, {.i = 0} },
{ ShiftMask, XK_Print, printscreen, {.i = 0} },
{ XK_ANY_MOD, XK_Print, printsel, {.i = 0} },*/
{ TERMMOD, XK_Prior, zoom, {.f = +1} },
{ TERMMOD, XK_Next, zoom, {.f = -1} },
{ TERMMOD, XK_Home, zoomreset, {.f = 0} },
{ TERMMOD, XK_C, clipcopy, {.i = 0} },
{ TERMMOD, XK_V, clippaste, {.i = 0} },
{ TERMMOD, XK_Y, selpaste, {.i = 0} },
{ ShiftMask, XK_Insert, selpaste, {.i = 0} },
{ TERMMOD, XK_Num_Lock, numlock, {.i = 0} },
{ XK_ANY_MOD, 0xFF57, clipcopy, {.i = 0} },
{ XK_ANY_MOD, 0xFF6D, clippaste, {.i = 0} },
};
/*
* Special keys (change & recompile st.info accordingly)
*
* Mask value:
* * Use XK_ANY_MOD to match the key no matter modifiers state
* * Use XK_NO_MOD to match the key alone (no modifiers)
* appkey value:
* * 0: no value
* * > 0: keypad application mode enabled
* * = 2: term.numlock = 1
* * < 0: keypad application mode disabled
* appcursor value:
* * 0: no value
* * > 0: cursor application mode enabled
* * < 0: cursor application mode disabled
*
* Be careful with the order of the definitions because st searches in
* this table sequentially, so any XK_ANY_MOD must be in the last
* position for a key.
*/
/*
* If you want keys other than the X11 function keys (0xFD00 - 0xFFFF)
* to be mapped below, add them to this array.
*/
static KeySym mappedkeys[] = { -1 };
/*
* State bits to ignore when matching key or button events. By default,
* numlock (Mod2Mask) and keyboard layout (XK_SWITCH_MOD) are ignored.
*/
static uint ignoremod = Mod2Mask|XK_SWITCH_MOD;
/*
* This is the huge key array which defines all compatibility to the Linux
* world. Please decide about changes wisely.
*/
static Key key[] = {
/* keysym mask string appkey appcursor */
{ XK_KP_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_KP_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_KP_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_KP_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_KP_Up, XK_ANY_MOD, "\033Ox", +1, 0},
{ XK_KP_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_KP_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_KP_Down, XK_ANY_MOD, "\033Or", +1, 0},
{ XK_KP_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_KP_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_KP_Left, XK_ANY_MOD, "\033Ot", +1, 0},
{ XK_KP_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_KP_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_KP_Right, XK_ANY_MOD, "\033Ov", +1, 0},
{ XK_KP_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_KP_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_KP_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_KP_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_KP_Begin, XK_ANY_MOD, "\033[E", 0, 0},
{ XK_KP_End, ControlMask, "\033[J", -1, 0},
{ XK_KP_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_KP_End, ShiftMask, "\033[K", -1, 0},
{ XK_KP_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_KP_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_KP_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_KP_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_KP_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_KP_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[L", -1, 0},
{ XK_KP_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_KP_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_KP_Delete, ControlMask, "\033[M", -1, 0},
{ XK_KP_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_KP_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_KP_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_KP_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_KP_Multiply, XK_ANY_MOD, "\033Oj", +2, 0},
{ XK_KP_Add, XK_ANY_MOD, "\033Ok", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\033OM", +2, 0},
{ XK_KP_Enter, XK_ANY_MOD, "\r", -1, 0},
{ XK_KP_Subtract, XK_ANY_MOD, "\033Om", +2, 0},
{ XK_KP_Decimal, XK_ANY_MOD, "\033On", +2, 0},
{ XK_KP_Divide, XK_ANY_MOD, "\033Oo", +2, 0},
{ XK_KP_0, XK_ANY_MOD, "\033Op", +2, 0},
{ XK_KP_1, XK_ANY_MOD, "\033Oq", +2, 0},
{ XK_KP_2, XK_ANY_MOD, "\033Or", +2, 0},
{ XK_KP_3, XK_ANY_MOD, "\033Os", +2, 0},
{ XK_KP_4, XK_ANY_MOD, "\033Ot", +2, 0},
{ XK_KP_5, XK_ANY_MOD, "\033Ou", +2, 0},
{ XK_KP_6, XK_ANY_MOD, "\033Ov", +2, 0},
{ XK_KP_7, XK_ANY_MOD, "\033Ow", +2, 0},
{ XK_KP_8, XK_ANY_MOD, "\033Ox", +2, 0},
{ XK_KP_9, XK_ANY_MOD, "\033Oy", +2, 0},
{ XK_Up, ShiftMask, "\033[1;2A", 0, 0},
{ XK_Up, Mod1Mask, "\033[1;3A", 0, 0},
{ XK_Up, ShiftMask|Mod1Mask,"\033[1;4A", 0, 0},
{ XK_Up, ControlMask, "\033[1;5A", 0, 0},
{ XK_Up, ShiftMask|ControlMask,"\033[1;6A", 0, 0},
{ XK_Up, ControlMask|Mod1Mask,"\033[1;7A", 0, 0},
{ XK_Up,ShiftMask|ControlMask|Mod1Mask,"\033[1;8A", 0, 0},
{ XK_Up, XK_ANY_MOD, "\033[A", 0, -1},
{ XK_Up, XK_ANY_MOD, "\033OA", 0, +1},
{ XK_Down, ShiftMask, "\033[1;2B", 0, 0},
{ XK_Down, Mod1Mask, "\033[1;3B", 0, 0},
{ XK_Down, ShiftMask|Mod1Mask,"\033[1;4B", 0, 0},
{ XK_Down, ControlMask, "\033[1;5B", 0, 0},
{ XK_Down, ShiftMask|ControlMask,"\033[1;6B", 0, 0},
{ XK_Down, ControlMask|Mod1Mask,"\033[1;7B", 0, 0},
{ XK_Down,ShiftMask|ControlMask|Mod1Mask,"\033[1;8B",0, 0},
{ XK_Down, XK_ANY_MOD, "\033[B", 0, -1},
{ XK_Down, XK_ANY_MOD, "\033OB", 0, +1},
{ XK_Left, ShiftMask, "\033[1;2D", 0, 0},
{ XK_Left, Mod1Mask, "\033[1;3D", 0, 0},
{ XK_Left, ShiftMask|Mod1Mask,"\033[1;4D", 0, 0},
{ XK_Left, ControlMask, "\033[1;5D", 0, 0},
{ XK_Left, ShiftMask|ControlMask,"\033[1;6D", 0, 0},
{ XK_Left, ControlMask|Mod1Mask,"\033[1;7D", 0, 0},
{ XK_Left,ShiftMask|ControlMask|Mod1Mask,"\033[1;8D",0, 0},
{ XK_Left, XK_ANY_MOD, "\033[D", 0, -1},
{ XK_Left, XK_ANY_MOD, "\033OD", 0, +1},
{ XK_Right, ShiftMask, "\033[1;2C", 0, 0},
{ XK_Right, Mod1Mask, "\033[1;3C", 0, 0},
{ XK_Right, ShiftMask|Mod1Mask,"\033[1;4C", 0, 0},
{ XK_Right, ControlMask, "\033[1;5C", 0, 0},
{ XK_Right, ShiftMask|ControlMask,"\033[1;6C", 0, 0},
{ XK_Right, ControlMask|Mod1Mask,"\033[1;7C", 0, 0},
{ XK_Right,ShiftMask|ControlMask|Mod1Mask,"\033[1;8C",0, 0},
{ XK_Right, XK_ANY_MOD, "\033[C", 0, -1},
{ XK_Right, XK_ANY_MOD, "\033OC", 0, +1},
{ XK_ISO_Left_Tab, ShiftMask, "\033[Z", 0, 0},
{ XK_Return, Mod1Mask, "\033\r", 0, 0},
{ XK_Return, XK_ANY_MOD, "\r", 0, 0},
{ XK_Insert, ShiftMask, "\033[4l", -1, 0},
{ XK_Insert, ShiftMask, "\033[2;2~", +1, 0},
{ XK_Insert, ControlMask, "\033[L", -1, 0},
{ XK_Insert, ControlMask, "\033[2;5~", +1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[4h", -1, 0},
{ XK_Insert, XK_ANY_MOD, "\033[2~", +1, 0},
{ XK_Delete, ControlMask, "\033[M", -1, 0},
{ XK_Delete, ControlMask, "\033[3;5~", +1, 0},
{ XK_Delete, ShiftMask, "\033[2K", -1, 0},
{ XK_Delete, ShiftMask, "\033[3;2~", +1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[P", -1, 0},
{ XK_Delete, XK_ANY_MOD, "\033[3~", +1, 0},
{ XK_BackSpace, XK_NO_MOD, "\177", 0, 0},
{ XK_BackSpace, Mod1Mask, "\033\177", 0, 0},
{ XK_Home, ShiftMask, "\033[2J", 0, -1},
{ XK_Home, ShiftMask, "\033[1;2H", 0, +1},
{ XK_Home, XK_ANY_MOD, "\033[H", 0, -1},
{ XK_Home, XK_ANY_MOD, "\033[1~", 0, +1},
{ XK_End, ControlMask, "\033[J", -1, 0},
{ XK_End, ControlMask, "\033[1;5F", +1, 0},
{ XK_End, ShiftMask, "\033[K", -1, 0},
{ XK_End, ShiftMask, "\033[1;2F", +1, 0},
{ XK_End, XK_ANY_MOD, "\033[4~", 0, 0},
{ XK_Prior, ControlMask, "\033[5;5~", 0, 0},
{ XK_Prior, ShiftMask, "\033[5;2~", 0, 0},
{ XK_Prior, XK_ANY_MOD, "\033[5~", 0, 0},
{ XK_Next, ControlMask, "\033[6;5~", 0, 0},
{ XK_Next, ShiftMask, "\033[6;2~", 0, 0},
{ XK_Next, XK_ANY_MOD, "\033[6~", 0, 0},
{ XK_F1, XK_NO_MOD, "\033OP" , 0, 0},
{ XK_F1, /* F13 */ ShiftMask, "\033[1;2P", 0, 0},
{ XK_F1, /* F25 */ ControlMask, "\033[1;5P", 0, 0},
{ XK_F1, /* F37 */ Mod4Mask, "\033[1;6P", 0, 0},
{ XK_F1, /* F49 */ Mod1Mask, "\033[1;3P", 0, 0},
{ XK_F1, /* F61 */ Mod3Mask, "\033[1;4P", 0, 0},
{ XK_F2, XK_NO_MOD, "\033OQ" , 0, 0},
{ XK_F2, /* F14 */ ShiftMask, "\033[1;2Q", 0, 0},
{ XK_F2, /* F26 */ ControlMask, "\033[1;5Q", 0, 0},
{ XK_F2, /* F38 */ Mod4Mask, "\033[1;6Q", 0, 0},
{ XK_F2, /* F50 */ Mod1Mask, "\033[1;3Q", 0, 0},
{ XK_F2, /* F62 */ Mod3Mask, "\033[1;4Q", 0, 0},
{ XK_F3, XK_NO_MOD, "\033OR" , 0, 0},
{ XK_F3, /* F15 */ ShiftMask, "\033[1;2R", 0, 0},
{ XK_F3, /* F27 */ ControlMask, "\033[1;5R", 0, 0},
{ XK_F3, /* F39 */ Mod4Mask, "\033[1;6R", 0, 0},
{ XK_F3, /* F51 */ Mod1Mask, "\033[1;3R", 0, 0},
{ XK_F3, /* F63 */ Mod3Mask, "\033[1;4R", 0, 0},
{ XK_F4, XK_NO_MOD, "\033OS" , 0, 0},
{ XK_F4, /* F16 */ ShiftMask, "\033[1;2S", 0, 0},
{ XK_F4, /* F28 */ ControlMask, "\033[1;5S", 0, 0},
{ XK_F4, /* F40 */ Mod4Mask, "\033[1;6S", 0, 0},
{ XK_F4, /* F52 */ Mod1Mask, "\033[1;3S", 0, 0},
{ XK_F5, XK_NO_MOD, "\033[15~", 0, 0},
{ XK_F5, /* F17 */ ShiftMask, "\033[15;2~", 0, 0},
{ XK_F5, /* F29 */ ControlMask, "\033[15;5~", 0, 0},
{ XK_F5, /* F41 */ Mod4Mask, "\033[15;6~", 0, 0},
{ XK_F5, /* F53 */ Mod1Mask, "\033[15;3~", 0, 0},
{ XK_F6, XK_NO_MOD, "\033[17~", 0, 0},
{ XK_F6, /* F18 */ ShiftMask, "\033[17;2~", 0, 0},
{ XK_F6, /* F30 */ ControlMask, "\033[17;5~", 0, 0},
{ XK_F6, /* F42 */ Mod4Mask, "\033[17;6~", 0, 0},
{ XK_F6, /* F54 */ Mod1Mask, "\033[17;3~", 0, 0},
{ XK_F7, XK_NO_MOD, "\033[18~", 0, 0},
{ XK_F7, /* F19 */ ShiftMask, "\033[18;2~", 0, 0},
{ XK_F7, /* F31 */ ControlMask, "\033[18;5~", 0, 0},
{ XK_F7, /* F43 */ Mod4Mask, "\033[18;6~", 0, 0},
{ XK_F7, /* F55 */ Mod1Mask, "\033[18;3~", 0, 0},
{ XK_F8, XK_NO_MOD, "\033[19~", 0, 0},
{ XK_F8, /* F20 */ ShiftMask, "\033[19;2~", 0, 0},
{ XK_F8, /* F32 */ ControlMask, "\033[19;5~", 0, 0},
{ XK_F8, /* F44 */ Mod4Mask, "\033[19;6~", 0, 0},
{ XK_F8, /* F56 */ Mod1Mask, "\033[19;3~", 0, 0},
{ XK_F9, XK_NO_MOD, "\033[20~", 0, 0},
{ XK_F9, /* F21 */ ShiftMask, "\033[20;2~", 0, 0},
{ XK_F9, /* F33 */ ControlMask, "\033[20;5~", 0, 0},
{ XK_F9, /* F45 */ Mod4Mask, "\033[20;6~", 0, 0},
{ XK_F9, /* F57 */ Mod1Mask, "\033[20;3~", 0, 0},
{ XK_F10, XK_NO_MOD, "\033[21~", 0, 0},
{ XK_F10, /* F22 */ ShiftMask, "\033[21;2~", 0, 0},
{ XK_F10, /* F34 */ ControlMask, "\033[21;5~", 0, 0},
{ XK_F10, /* F46 */ Mod4Mask, "\033[21;6~", 0, 0},
{ XK_F10, /* F58 */ Mod1Mask, "\033[21;3~", 0, 0},
{ XK_F11, XK_NO_MOD, "\033[23~", 0, 0},
{ XK_F11, /* F23 */ ShiftMask, "\033[23;2~", 0, 0},
{ XK_F11, /* F35 */ ControlMask, "\033[23;5~", 0, 0},
{ XK_F11, /* F47 */ Mod4Mask, "\033[23;6~", 0, 0},
{ XK_F11, /* F59 */ Mod1Mask, "\033[23;3~", 0, 0},
{ XK_F12, XK_NO_MOD, "\033[24~", 0, 0},
{ XK_F12, /* F24 */ ShiftMask, "\033[24;2~", 0, 0},
{ XK_F12, /* F36 */ ControlMask, "\033[24;5~", 0, 0},
{ XK_F12, /* F48 */ Mod4Mask, "\033[24;6~", 0, 0},
{ XK_F12, /* F60 */ Mod1Mask, "\033[24;3~", 0, 0},
{ XK_F13, XK_NO_MOD, "\033[1;2P", 0, 0},
{ XK_F14, XK_NO_MOD, "\033[1;2Q", 0, 0},
{ XK_F15, XK_NO_MOD, "\033[1;2R", 0, 0},
{ XK_F16, XK_NO_MOD, "\033[1;2S", 0, 0},
{ XK_F17, XK_NO_MOD, "\033[15;2~", 0, 0},
{ XK_F18, XK_NO_MOD, "\033[17;2~", 0, 0},
{ XK_F19, XK_NO_MOD, "\033[18;2~", 0, 0},
{ XK_F20, XK_NO_MOD, "\033[19;2~", 0, 0},
{ XK_F21, XK_NO_MOD, "\033[20;2~", 0, 0},
{ XK_F22, XK_NO_MOD, "\033[21;2~", 0, 0},
{ XK_F23, XK_NO_MOD, "\033[23;2~", 0, 0},
{ XK_F24, XK_NO_MOD, "\033[24;2~", 0, 0},
{ XK_F25, XK_NO_MOD, "\033[1;5P", 0, 0},
{ XK_F26, XK_NO_MOD, "\033[1;5Q", 0, 0},
{ XK_F27, XK_NO_MOD, "\033[1;5R", 0, 0},
{ XK_F28, XK_NO_MOD, "\033[1;5S", 0, 0},
{ XK_F29, XK_NO_MOD, "\033[15;5~", 0, 0},
{ XK_F30, XK_NO_MOD, "\033[17;5~", 0, 0},
{ XK_F31, XK_NO_MOD, "\033[18;5~", 0, 0},
{ XK_F32, XK_NO_MOD, "\033[19;5~", 0, 0},
{ XK_F33, XK_NO_MOD, "\033[20;5~", 0, 0},
{ XK_F34, XK_NO_MOD, "\033[21;5~", 0, 0},
{ XK_F35, XK_NO_MOD, "\033[23;5~", 0, 0},
};
/*
* Selection types' masks.
* Use the same masks as usual.
* Button1Mask is always unset, to make masks match between ButtonPress.
* ButtonRelease and MotionNotify.
* If no match is found, regular selection is used.
*/
static uint selmasks[] = {
[SEL_RECTANGULAR] = Mod1Mask,
};
/*
* Printable characters in ASCII, used to estimate the advance width
* of single wide characters.
*/
static char ascii_printable[] =
" !\"#$%&'()*+,-./0123456789:;<=>?"
"@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_"
"`abcdefghijklmnopqrstuvwxyz{|}~";

View file

@ -1,58 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
builddir="$(dirname "$0")"
pushd "$builddir"
rm -rf ./build ./build-10 ./build-12
if [ ! -d "./x265_git" ]; then
git clone --depth 1 --branch 3.4.1 "https://bitbucket.org/multicoreware/x265_git.git"
fi
cmake -S x265_git/source -B build-12 \
-DCMAKE_INSTALL_PREFIX='/home/rudism/.local' \
-DCMAKE_ASM_NASM_FLAGS='-w-macro-params-legacy' \
-DENABLE_ASSEMBLY='ON' \
-DENABLE_LIBNUMA='ON' \
-DHIGH_BIT_DEPTH='ON' \
-DMAIN12='ON' \
-DEXPORT_C_API='OFF' \
-DENABLE_CLI='OFF' \
-DENABLE_SHARED='OFF' \
-Wno-dev
make -C build-12
cmake -S x265_git/source -B build-10 \
-DCMAKE_INSTALL_PREFIX='/home/rudism/.local' \
-DCMAKE_ASM_NASM_FLAGS='-w-macro-params-legacy' \
-DENABLE_ASSEMBLY='ON' \
-DENABLE_LIBNUMA='ON' \
-DHIGH_BIT_DEPTH='ON' \
-DEXPORT_C_API='OFF' \
-DENABLE_CLI='OFF' \
-DENABLE_SHARED='OFF' \
-Wno-dev
make -C build-10
cmake -S x265_git/source -B build \
-DCMAKE_INSTALL_PREFIX:PATH='/home/rudism/.local' \
-DCMAKE_ASM_NASM_FLAGS='-w-macro-params-legacy' \
-DENABLE_ASSEMBLY='ON' \
-DENABLE_SHARED='ON' \
-DENABLE_LIBNUMA='ON' \
-DENABLE_HDR10_PLUS='ON' \
-DEXTRA_LIB='x265_main10.a;x265_main12.a' \
-DEXTRA_LINK_FLAGS='-L.' \
-DLINKED_10BIT='ON' \
-DLINKED_12BIT='ON' \
-Wno-dev
ln -s ../build-10/libx265.a build/libx265_main10.a
ln -s ../build-12/libx265.a build/libx265_main12.a
make -C build
make -C build install
popd

View file

@ -1,21 +0,0 @@
[global]
width = (100, 600)
offset = 50x50
corner_radius = 15
font = Monospace 18
frame_color = "#89B4FA"
separator_color= frame
[urgency_low]
background = "#1E1E2E"
foreground = "#CDD6F4"
[urgency_normal]
background = "#1E1E2E"
foreground = "#CDD6F4"
[urgency_critical]
background = "#1E1E2E"
foreground = "#CDD6F4"
frame_color = "#FAB387"

View file

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<fontconfig>
<alias>
<family>monospace</family>
<prefer>
<family>Drafting* Mono</family>
<family>Unifont</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>Unifont</family>
</prefer>
</alias>
<alias>
<family>Helvetica</family>
<prefer>
<family>DejaVu Sans</family>
</prefer>
</alias>
<alias>
<family>Times</family>
<prefer>
<family>DejaVu Serif</family>
</prefer>
</alias>
<alias>
<family>Georgia</family>
<prefer>
<family>DejaVu Serif</family>
</prefer>
</alias>
<alias>
<family>Charter</family>
<prefer>
<family>DejaVu Serif</family>
</prefer>
</alias>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>Unifont</family>
</prefer>
</alias>
<match target="font">
<test name="spacing" compare="eq">
<const>mono</const>
</test>
<edit name="embolden" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>

View file

@ -1 +0,0 @@
pinentry-program /usr/bin/pinentry-curses

View file

@ -1,181 +0,0 @@
#!/usr/bin/env bash
PATH="$PATH:$HOME/.local/bin"
hc() {
herbstclient "$@"
}
# don't need sticky win on pinebook
hc new_attr string my_sticky
refresh_panel="pgrep -f 'bash.*panel\.sh' | xargs -n1 kill -s USR1"
hc emit_hook reload
if hc silent new_attr bool my_picom_is_running; then
picom -b
fi
hc lock
hsetroot -solid "#1e1e2e"
feh --bg-fill ~/.config/herbstluftwm/wallpaper.png
xobpipe="$XDG_RUNTIME_DIR/xobpipe"
# theme
hc attr theme.tiling.reset 1
hc attr theme.floating.reset 1
hc set always_show_frame on
hc set frame_bg_transparent off
hc attr theme.active.color '#a6e3a1'
hc attr theme.normal.color '#89b4fa'
hc attr theme.urgent.color '#f38ba8'
hc attr theme.inner_color black
hc attr theme.border_width 1
hc attr theme.floating.border_width 2
hc attr theme.floating.outer_width 1
hc attr theme.floating.outer_color black
hc attr theme.background_color '#1e1e2e'
hc set window_gap 0
hc set frame_padding 0
hc set smart_window_surroundings on
hc set smart_frame_surroundings on
hc set mouse_recenter_gap 0
hc set frame_active_opacity 1
hc set frame_normal_opacity 1
hc set frame_bg_active_color '#0000000000'
hc set snap_distance 0
hc set snap_gap 0
hc unlock
# remove all existing keybindings
hc keyunbind --all
hc set default_frame_layout horizontal
hc set_layout horizontal
# keybindings
Mod=Mod4 # Use the super key as the main modifier
hc keybind $Mod-Shift-q quit
hc keybind $Mod-Control-r reload
hc keybind $Mod-Shift-c close
hc keybind $Mod-Return spawn st
hc keybind $Mod-grave spawn $HOME/skynet/bin/quake-term
hc keybind $Mod-Control-grave spawn $HOME/skynet/bin/xnots-toggle
hc keybind $Mod-Alt-Return spawn ~/skynet/bin/zenvim
hc keybind $Mod-Control-Return spawn firefox
hc keybind Print spawn flameshot gui
hc keybind $Mod-Tab cycle_all +1
hc keybind $Mod-d spawn rofi -show drun -show-icons
hc keybind $Mod-r spawn rofi -show run
hc keybind $Mod-F1 spawn sh -c 'CM_LAUNCHER=rofi clipmenu'
hc keybind $Mod-F2 spawn rofi -show calc -modi calc -no-show-match -no-sort
hc keybind $Mod-F3 spawn sh -c 'clipctl disable; bwmenu; clipctl enable'
hc keybind XF86AudioPlay spawn playerctl play-pause
hc keybind XF86AudioPause spawn playerctl pause-pause
hc keybind XF86AudioRaiseVolume spawn sh -c "pamixer -i 5; pamixer --get-volume > \"$xobpipe\"; $refresh_panel"
hc keybind XF86AudioLowerVolume spawn sh -c "pamixer -d 5; pamixer --get-volume > \"$xobpipe\"; $refresh_panel"
hc keybind XF86AudioMute spawn sh -c "pamixer -t; pamixer --get-volume-human | sed 's/muted/0/' > \"$xobpipe\"; $refresh_panel"
hc keybind XF86Launch7 spawn sh -c "sleep 0.15 && xdotool keydown ctrl key w keyup ctrl"
hc keybind XF86PowerOff spawn battlvl
hc keybind XF86MonBrightnessUp spawn sh -c "light -A 5; light > \"$xobpipe\""
hc keybind XF86MonBrightnessDown spawn sh -c "light -U 5; light > \"$xobpipe\""
# mouse
hc mouseunbind --all
hc set focus_follows_mouse true
hc set focus_follows_monitor_boundaries true
hc mousebind $Mod-Button1 move
hc mousebind $Mod-Button3 resize
# basic movement in tiling and floating mode
# focusing clients
hc keybind $Mod-Left focus left
hc keybind $Mod-Down focus down
hc keybind $Mod-Up focus up
hc keybind $Mod-Right focus right
# moving clients in tiling and floating mode
hc keybind $Mod-Shift-Left shift left
hc keybind $Mod-Shift-Down shift down
hc keybind $Mod-Shift-Up shift up
hc keybind $Mod-Shift-Right shift right
hc keybind $Mod-j spawn ~/skynet/bin/stickyctl stick
hc keybind $Mod-Shift-j spawn ~/skynet/bin/stickyctl unstick
# tags
tag_names=( {1..9} 0 )
tag_keys=( {1..9} 0 )
hc rename default "${tag_names[0]}" || true
for i in "${!tag_names[@]}" ; do
hc add "${tag_names[$i]}"
key="${tag_keys[$i]}"
if ! [ -z "$key" ] ; then
hc keybind "$Mod-$key" chain , lock , use_index "$i" , spawn ~/skynet/bin/stickyctl get-sticky , unlock
hc keybind "$Mod-Shift-$key" move_index "$i"
fi
done
# cycle through tags
hc keybind $Mod-Control-Right use_index +1 --skip-visible
hc keybind $Mod-Control-Left use_index -1 --skip-visible
hc keybind XF86Paste use_index +1 --skip_visible
hc keybind XF86Copy use_index -1 --skip_visible
# layouting
hc keybind $Mod-f fullscreen toggle
hc keybind $Mod-Shift-f set_attr clients.focus.floating toggle
# The following cycles through the available layouts within a frame, but skips
# layouts, if the layout change wouldn't affect the actual window positions.
# I.e. if there are two windows within a frame, the grid layout is skipped.
hc keybind $Mod-space or , and . compare tags.focus.curframe_wcount = 2 . cycle_layout +1 vertical horizontal max vertical grid , cycle_layout +1
# focus
hc keybind $Mod-BackSpace cycle_monitor
hc keybind $Mod-Tab cycle_all +1
hc keybind $Mod-Shift-Tab cycle_all -1
hc keybind $Mod-Alt-Tab jumpto urgent
# rules
hc unrule -F
#hc rule class=XTerm tag=3 # move all xterms to tag 3
hc rule focus=on # normally focus new clients
hc rule floatplacement=smart
#hc rule focus=off # normally do not focus new clients
# give focus to most common terminals
#hc rule class~'(.*[Rr]xvt.*|.*[Tt]erm|Konsole)' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(DIALOG|UTILITY|SPLASH)' floating=on
hc rule windowtype='_NET_WM_WINDOW_TYPE_DIALOG' focus=on
hc rule windowtype~'_NET_WM_WINDOW_TYPE_(NOTIFICATION|DOCK|DESKTOP)' manage=off
hc rule class='nvim-zen' fullscreen=on
hc rule class='mpv' floating=on
hc rule class='sim_arduboy' floating=on
hc rule class='XNots' floating=on
hc rule class='Pithos' floating=on
hc set tree_style '╾│ ├└╼─┐'
# unlock, just to be sure
hc unlock
# do multi monitor setup here, e.g.:
# hc set_monitors 1280x1024+0+0 1280x1024+1280+0
# or simply:
hc detect_monitors
# restart panel
~/.config/herbstluftwm/killpanel.sh
{ exec ~/.config/herbstluftwm/panel.sh; } &
# restart xob
pgrep xob | xargs -n1 kill -9
if [ ! -p "$xobpipe" ]; then
mkfifo "$xobpipe"
fi
{ tail -f "$xobpipe" | xob; } &

View file

@ -1,7 +0,0 @@
#!/usr/bin/env bash
pgrep -f 'panel_text' | xargs -n1 kill -9
pgrep -f 'lemonbar' | xargs -n1 kill -9
pgrep -f 'xobpipe' | xargs -n1 kill -9
pgrep -f 'trayer' | xargs -n1 kill -9
pgrep -f 'bash.*panel\.sh' | xargs -n1 kill -9

View file

@ -1,452 +0,0 @@
#!/usr/bin/env bash
hostname=$(hostname)
hc() { herbstclient "$@" ;}
panel_height=20
for monitor in $(hc list_monitors | cut -d: -f1); do
hc pad "$monitor" "$panel_height" 0 0 0
done
{ sleep 1; exec trayer --SetPartialStrut false --edge top --height 20 --widthtype request --align right --tint 0x11111b --transparent true --alpha 0; } &
fggreen='%{F#a6e3a1}'
fgblue='%{F#89b4fa}'
fgred='%{F#f38ba8}'
fgdark='%{F#313244}'
fgend='%{F-}'
bggreen='%{B#a6e3a1}'
bgblue='%{B#89b4fa}'
bgred='%{B#f38ba8}'
bglight='%{B#313244}'
bgend='%{B-}'
ulblue='%{U#89b4fa+u}'
ulend='%{-u}'
handle_signal() {
FORCE_REFRESH=1
}
handle_kill() {
kill 0
rm "$fifo"
exit 0
}
trap handle_signal SIGUSR1
trap handle_kill SIGINT
fifo="/tmp/panel_text"
if [ ! -p "$fifo" ]; then
mkfifo "$fifo"
fi
msgfifo="/tmp/panel_msg"
if [ ! -p "$msgfifo" ]; then
mkfifo "$msgfifo"
fi
# process to handle lemonbar clicks
{
while IFS= read -r line; do
IFS="-" read -r -a command <<< "$line"
if [ "${command[0]}" = "tag" ]; then
# not sure how to specify a monitor, but probably don't need to anyway
monitor="${command[1]}"
index=$(( "${command[2]}" - 1 ))
if [ "$index" -eq -1 ]; then
index=9
fi
herbstclient chain , lock , focus_monitor "$monitor" , use_index "$index" , spawn stickyctl get-sticky , unlock
fi
done < "$msgfifo"
} &
tail -f "$fifo" | stdbuf -oL lemonbar -d -p -a 100 -g "x${panel_height}" -f "Drafting* Mono:pixelsize=18:antialias=true" -f "Unifont:pixelsize=18:antialias=true" -B "#11111b" -F "#cdd6f4" > "$msgfifo" &
append_segment() {
local seconds=$1
local name=$2
local param=$3
shift
local now=$SECONDS
local escparam
segment_text=''
escparam="${param//\//_}"
eval "local lastrun=\$${name}${escparam}_lastrun"
if [ -z "$lastrun" ]; then
lastrun=0
fi
if [ -n "$FORCE_REFRESH" ] || [ "$lastrun" -eq 0 ] || (( SECONDS - lastrun >= seconds )); then
"$@"
eval "${name}${escparam}_lastrun=\$now"
eval "${name}${escparam}_lastoutput=\"$segment_text\""
panel_text="$panel_text$segment_text"
else
eval "panel_text=\"\$panel_text\$${name}${escparam}_lastoutput\""
fi
}
append_separator() {
panel_text="$panel_text "
}
append_percent_icon() {
local pct=$1
segment_text="$segment_text$bglight"
if (( pct < 12 )); then
segment_text="$segment_text"
elif (( pct < 25 )); then
segment_text="$segment_text"
elif (( pct < 38 )); then
segment_text="$segment_text"
elif (( pct < 51 )); then
segment_text="$segment_text"
elif (( pct < 64 )); then
segment_text="$segment_text"
elif (( pct < 77 )); then
segment_text="$segment_text"
elif (( pct < 90 )); then
segment_text="$segment_text"
else
segment_text="$segment_text"
fi
segment_text="$segment_text$bgend%{O5}"
}
append_battery_icon() {
local pct=$1
segment_text="$segment_text$bglight"
if (( pct < 10 )); then
segment_text="$segment_text"
elif (( pct < 20 )); then
segment_text="$segment_text"
elif (( pct < 30 )); then
segment_text="$segment_text"
elif (( pct < 40 )); then
segment_text="$segment_text"
elif (( pct < 50 )); then
segment_text="$segment_text"
elif (( pct < 60 )); then
segment_text="$segment_text"
elif (( pct < 70 )); then
segment_text="$segment_text"
elif (( pct < 80 )); then
segment_text="$segment_text"
elif (( pct < 90 )); then
segment_text="$segment_text"
else
segment_text="$segment_text"
fi
segment_text="$segment_text$bgend%{O5}"
}
segment_tags() {
local monitor=$1
local tags
local prefix
local tagclass
IFS=$'\t' read -ra tags <<< "$(hc tag_status "$monitor")"
segment_text=''
for i in "${tags[@]}"; do
prefix=${i:0:1}
case $prefix in
'.') tagclass=$fgend$bgend ;;
'+') tagclass=$bgblue$fgdark ;;
'#') tagclass=$bggreen$fgdark ;;
'!') tagclass=$bgred$fgdark ;;
'-') tagclass=$ulblue$bglight$fgblue ;;
'%') tagclass=$ulblue$bglight$fgblue ;;
*) tagclass=$bglight ;;
esac
segment_text="$segment_text%{A:tag-$monitor-${i:1}:}$tagclass%{O8}${i:1}%{O8}%{A}$fgend$bgend$ulend"
done
}
segment_timew() {
local curday
local active
local twclass
local twicon
if hash timew 2>/dev/null; then
active=$(timew get dom.active)
if [ "$active" = "1" ]; then
twicon=""
twclass=$fggreen
else
twicon=""
twclass=$fgred
fi
curday=$(timew summary | tail -n2 | head -n1 | awk '{ print $1 }')
if [ "$curday" = "No" ]; then
curday='0:00'
else
curday="${curday%:*}"
fi
segment_text="${twclass}${twicon}${fgend}%{O5}$curday"
fi
}
segment_keyboard() {
local kblayout
local kbclass
local kbicon
kblayout=$(setxkbmap -query | grep variant | awk '{ print $2 }' | tr -d ',')
if [ "$kblayout" = "dvorak" ]; then
kbclass=$fgred
kbicon=""
else
kbclass=$fggreen
kbicon=""
fi
segment_text="$kbclass$kbicon$fgend"
}
segment_network() {
local net
local neticon
local btpower
local btconn
local bticon
local nasavpn
local nasaicon
local vnc
local vncicon
# network device
net=$(ip route get 1.1.1.1 | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' ')
if ! [ "$net" ]; then
neticon="%{O3}$fgred$fgend"
else
neticon="%{O3}$fggreenﯱ$fgend"
fi
if hash bluetoothctl 2>/dev/null; then
# bluetooth status
btpower=$(bluetoothctl show | grep Powered | awk '{ print $2 }')
if [ "$btpower" = "yes" ]; then
btconn=$(bluetoothctl devices | cut -f2 -d' ' | while read uuid; do bluetoothctl info $uuid; done | grep "Connected: yes")
if [ -z "$btconn" ]; then
bticon="${fggreen}$fgend"
else
bticon="${fgblue}$fgend"
fi
else
bticon="${fgred}$fgend"
fi
fi
if hash docker 2>/dev/null; then
nasavpn=$(docker ps --format "{{.Names}}" | grep nasavpn)
if [ -n "$nasavpn" ]; then
nasaicon="%{O3}${fggreen}$fgend"
else
nasaicon="%{O3}${fgred}$fgend"
fi
vnc=$(docker ps --format "{{.Names}}" | grep novnc)
if [ -n "$vnc" ]; then
vncicon="%{O3}${fggreen}$fgend"
else
vncicon="%{O3}${fgred}$fgend"
fi
fi
segment_text="$bticon$nasaicon$vncicon$neticon"
}
segment_memory() {
local mempct
local memclass
mempct=$(free | grep Mem | awk '{ print int($3/$2 * 100.0 + 0.5) }')
if [ "$mempct" -gt 75 ]; then
memclass=$fgred
elif [ "$mempct" -gt 50 ]; then
memclass=$fgblue
else
memclass=$fggreen
fi
segment_text=$memclass
append_percent_icon "$mempct"
segment_text="${segment_text}$fgend"
}
segment_disk() {
local dpath=$1
local diskpct
local diskclass
local diskicon
if [ "$dpath" = "/" ]; then
diskicon=""
else
diskicon=""
fi
diskpct=$(df --output=pcent "$dpath" | sed 1d | sed 's/^[ \t]*//' | sed 's/%.*//')
if [ "$diskpct" -gt 90 ]; then
diskclass=$fgred
elif [ "$diskpct" -gt 75 ]; then
diskclass=$fgblue
else
diskclass=$fggreen
fi
segment_text=$diskclass
append_percent_icon "$diskpct"
segment_text="${segment_text}$diskicon$fgend"
}
segment_cpu() {
local cpupct
local cpuclass
cpupct=$(awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat) | awk '{print int($1+0.5)}')
if [ "$cpupct" -gt 90 ]; then
cpuclass=$fgred
elif [ "$cpupct" -gt 25 ]; then
cpuclass=$fgblue
else
cpuclass=$fggreen
fi
segment_text=$cpuclass
append_percent_icon "$cpupct"
segment_text="${segment_text}$fgend"
}
segment_audio() {
local audiohdmi
local audiobt
local audicon
local volpct
if hash pactl 2>/dev/null; then
# audio output device (hdmi/analog)
audiohdmi=$(pactl get-default-sink | grep hdmi)
audiobt=$(pactl get-default-sink | grep bluez)
fi
if [ -n "$audiobt" ]; then
audclass=$fgblue
audicon='﫽'
else
audclass=$fggreen
if [ "$hostname" != "ellison" ]; then
if [ -z "$audiohdmi" ]; then
audicon=''
else
audicon='蓼'
fi
else
audicon='蓼'
fi
fi
if hash pamixer 2>/dev/null; then
volpct=$(pamixer --get-volume-human | sed 's/%//')
if [ "$volpct" = "muted" ]; then
audclass=$fgred
volpct="0"
fi
fi
segment_text=$audclass
append_percent_icon "$volpct"
segment_text="$segment_text$audicon$fgend"
}
segment_battery() {
local battpct
local batstat
local baticon
local batclass
if hash upower 2>/dev/null; then
# battery charge percent
battpct="$(upower --show-info $(upower --enumerate | grep -i 'BAT') | grep -E "percentage" | awk '{print $2}')"
battpct="${battpct%\%}"
# battery status (charging/charged/etc)
batstat="$(upower --show-info $(upower --enumerate | grep -i 'BAT') | grep -E "state" | awk '{print $2}')"
if (( battpct > 80 )); then
batclass=$fggreen
elif (( battpct < 20 )); then
batclass=$fgred
else
batclass=$fgblue
fi
segment_text="$batclass"
if [ "$batstat" = "charging" ]; then
segment_text="${segment_text}"
elif [ "$batstat" = "fully-charged" ]; then
segment_text="${segment_text}"
else
append_battery_icon "$battpct"
fi
segment_text="$segment_text$fgend"
else
segment_text="$fggreenﮣ$fgend"
fi
}
segment_date() {
segment_text="$(date +$'%a %b %d') $fgblue$(date +$'%H:%M')$fgend"
}
last_text=''
while true; do
{
full_text=''
for monitor in $(herbstclient list_monitors | cut -d: -f1); do
panel_text="%{S$monitor}%{l}"
append_segment 0 segment_tags "$monitor"
panel_text="$panel_text%{l}%{r}"
append_segment 60 segment_timew
append_separator
append_segment 60 segment_keyboard
append_separator
append_segment 10 segment_network
append_separator
panel_text="$panel_text%{A:conky:}"
append_segment 10 segment_memory
append_separator
append_segment 60 segment_disk "/"
append_separator
if [ "$hostname" != "ellison" ]; then
append_segment 60 segment_disk "/home"
append_separator
fi
append_segment 5 segment_cpu
append_separator
append_segment 60 segment_audio
append_separator
append_segment 30 segment_battery
panel_text="$panel_text%{A}"
append_separator
append_segment 60 segment_date
if [ "$monitor" -eq 0 ]; then
tray_width=$(xdotool search --classname panel | xargs -n1 xprop -id | grep 'program specified minimum size' | cut -d ' ' -f 5)
tray_width=$(( tray_width + 5 ))
panel_text="$panel_text%{O$tray_width}"
fi
panel_text="$panel_text%{r}"
full_text="$full_text$panel_text"
done
if [ "$full_text" != "$last_text" ]; then
echo -e "$full_text"
last_text="$full_text"
fi
} >> "$fifo"
unset FORCE_REFRESH
sleep 1
done

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View file

@ -73,7 +73,7 @@ lsp.omnisharp.setup {
end
return util.root_pattern("*.sln")(file) or util.root_pattern("*.csproj")(file) or util.root_pattern("omnisharp.json")(file)
end,
cmd = { "/home/rudism/.local/share/omnisharp/OmniSharp" }, --"--languageserver" , "--hostPID", tostring(pid) },
cmd = { "/usr/bin/omnisharp" }, --"--languageserver" , "--hostPID", tostring(pid) },
}
lsp.tsserver.setup {
capabilities = lspcap,

View file

@ -1,5 +0,0 @@
shadow = false;
fading = false;
inactive-opacity = 1.0;
frame-opacity = 1.0;
vsync = true;

View file

@ -1,17 +0,0 @@
shadow = true;
shadow-radius = 7;
shadow-offset-x = -7;
shadow-offset-y = -7;
fading = true;
fade-in-step = 0.1;
fade-out-step = 0.1;
inactive-opacity = 1.0;
frame-opacity = 1.0;
wintypes:
{
tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
dock = { shadow = false; }
dnd = { shadow = false; }
popup_menu = { opacity = 0.9; }
dropdown_menu = { opacity = 0.9; }
};

View file

@ -1,170 +0,0 @@
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/01 - Flurries.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/02 - Frosty the Snowman.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/03 - Sleigh Ride.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/04 - God Rest Ye Merry Gentlemen.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/05 - Jingle Bells.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/06 - Oh Holy Night.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/07 - Rudolph the Red Nosed Reindeer.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/08 - Sleddin' Hill.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/09 - Little Drummer Boy.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/10 - Winter Wonderland.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/11 - O Come O Come Emmanuel.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/12 - Carol of the Bells.mp3
/<microSD0>/MUSIC/August Burns Red/August Burns Red Presents Sleddin' Hill, A Holiday Album (2012)/13 - We Wish You a Merry Christmas.mp3
/<microSD0>/MUSIC/Austrian Death Machine/A Very Brutal Christmas (2008)/01 - Jingle Bells.mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/01 Deck the Halls (Nos Galan).mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/02 Hanukkah.mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/03 O Christmas Tree (Oh Chanukuh).mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/04 Jingle Bells (One Horse Open Sleigh).mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/05 Joy to the World.mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/06 Greensleeves (What Child Is This).mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/07 God Rest Ye Merry Gentlemen.mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/08 Ave Maria (Well-Tempered Clavier).mp3
/<microSD0>/MUSIC/ComputeHer & 8 Bit Weapon/It's a Chiptune Holiday! (2009)/Folder.gif
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/01 Get Into the Spirit.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/02 We Three Kings.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/03 Oh Come, O Come, Emanuel.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/04 Winter Song.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/06 Christmas for Everyone.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/07 I Don't Care.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/08 Light of the World.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/09 Oh Holy Night.mp3
/<microSD0>/MUSIC/Halford/Halford III- Winter Songs (2009)/10 Come All Ye Faithful.mp3
/<microSD0>/MUSIC/J.J. Hrubovcak/Death Metal Christmas (2013)/01 - Unrest for Melancholy Men (God Rest Ye Merry Gentlemen).mp3
/<microSD0>/MUSIC/J.J. Hrubovcak/Death Metal Christmas (2013)/02 - Earthen Kings (We Three Kings).mp3
/<microSD0>/MUSIC/J.J. Hrubovcak/Death Metal Christmas (2013)/03 - Nutcracker Dance of the Sugar Plum Fairy.mp3
/<microSD0>/MUSIC/J.J. Hrubovcak/Death Metal Christmas (2013)/04 - Greensleeves.mp3
/<microSD0>/MUSIC/J.J. Hrubovcak/Death Metal Christmas (2013)/05 - O Come, O Come, Azrael (O Come, O Come, Emmanuel).mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/01 - Little Drummer Boy.mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/02 - Deck the Joy (To the Halls).mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/03 - O Come Emannuel.mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/04 - Rudolph vs. Frosty.mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/05 - Angels From the Realms of Glory.mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/06 - All I Want For Christmas.mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/07 - Christmas Medley (Remix).mp3
/<microSD0>/MUSIC/Theocracy/Club of Souls - Christmas Music (2012)/08 - Wynter Fever.mp3
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/01 - An Angel Came Down.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/02 - O Come All Ye FaithfulO Holy Night (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/03 - A Star to Follow.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/04 - First Snow (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/05 - The Silent Nutcracker (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/06 - A Mad Russian's Christmas (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/07 - The Prince of Peace.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/08 - Christmas EveSarajevo 1224 (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/09 - Good King Joy.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/10 - Ornament.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/11 - The First Noel (Instrumental).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/12 - Old City Bar.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/13 - Promises to Keep.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/14 - This Christmas Day.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/15 - An Angel Returned.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/16 - O Holy Night.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/Christmas Eve and Other Stories (1996)/17 - God Rest Ye Merry Gentlemen.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/01 - The Ghosts of Christmas Eve.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/02 - Boughs of Holly.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/03 - The World that She Sees.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/04 - The World that He Sees.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/05 - Midnight Christmas Eve.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/06 - The March of the Kings Hark the Herald Angel.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/07 - The Three Kings and I (What Really Happened).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/08 - Christmas Canon.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/09 - Joy Angels We Have Heard On High.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/10 - Find Our Way Home.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/11 - Appalachian Snowfall.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/12 - The Music Box.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/13 - The Snow Came Down.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/14 - Christmas in the Air.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/15 - Dream Child (A Christmas Dream).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/16 - An Angel's Share.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Christmas Attic (1998)/17 - Music Box Blues.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/01 - Faith Noel.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/02 - The Lost Christmas Eve.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/03 - Christmas Dreams.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/04 - Wizards in Winter.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/05 - Remember.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/06 - Anno Domine.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/07 - Christmas Concerto.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/08 - Queen of the Winter Night.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/09 - Christmas Nights in Blue.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/10 - Christmas Jazz.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/11 - Christmas Jam.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/12 - Siberian Sleigh Ride.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/13 - What is Christmas.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/14 - For the Sake of Our Brother.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/15 - The Wisdom of Snow.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/16 - Wish Liszt (Toy Shop Madness).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/17 - Back to a Reason (Part II).ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/18 - Christmas Bells, Carousels & Time.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/19 - What Child is This.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/20 - O' Come All Ye Faithful.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/21 - Christmas Canon Rock.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/22 - Different Wings.ogg
/<microSD0>/MUSIC/Trans-Siberian Orchestra/The Lost Christmas Eve (2004)/23 - Midnight Clear.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/01 - Have Yourself a Merry Little Christmas.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/02 - O Come All Ye Faithful.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/03 - White Christmas.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/04 - I'll Be Home for Christmas.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/05 - Silver Bells.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/06 - I Saw Mommy Kissing Santa Claus.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/07 - Let It Snow.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/08 - Deck the Halls.ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/09 - The Christmas Song (Chestnuts Roasting on an Open Fire).ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/10 - Heavy Metal Christmas (The Twelve Days of Christmas).ogg
/<microSD0>/MUSIC/Twisted Sister/A Twisted Christmas (2006)/11 - Twisted Christmas Cheer.ogg
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/01 - Angels We have Heard on High.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/02 - God Rest Ye Merry Gentlemen.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/03 - Mary did You Know.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/04 - Coventry Carol.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/05 - Let All Mortal Flesh Keep Silence.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/06 - The Little Drummer Boy.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/07 - O Come All Ye Faithful.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/08 - Child Messiah.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/09 - O Holy Night.mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/10 - God Rest Ye Merry Gentlemen (Take 2).mp3
/<microSD0>/MUSIC/Various Artists/A Brutal Christmas The Season in Chaos (2002)/11 - Joy to the World.mp3
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-01 Christmas Time's A Comin'.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-02 What Child Is This.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-03 Beautiful Star Of Bethlehem.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-04 Santa Claus Is Comin' To Town.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-05 Mary, Did You Know.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-06 Joy To The World.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-07 Deck The Halls.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-08 Please Come Home For Christmas.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-09 God Rest Ye Merry Gentlemen.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-10 Tennessee Christmas.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-11 It Came Upon A Midnight Clear.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-12 I'll Be Home For Christmas.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-13 O Christmas Candle.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/1-14 Carol Of The Bells.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-01 Rudolph The Red-Nosed Reindeer.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-02 One Bright Star.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-03 Winter Wonderland.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-04 Silent Night.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-05 The Christmas Song.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-06 I Heard The Bells On Christmas Day.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-07 Jingle Bells.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-08 O Christmas Tree.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-09 Merry Christmas Ho, Ho, Ho.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-10 Away In A Manger.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-11 Christmas Is Near You.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-12 Silver Bells.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-13 Christmas in Dixie.ogg
/<microSD0>/MUSIC/Various Artists/Christmas Grass (2013)/2-14 We Wish You A Merry Christmas Afternoon.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-01 - We Wish You a Merry Xmas.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-02 - Run Rudolph Run.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-03 - Santa Claws Is Coming To Town.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-04 - God Rest Ye Merry Gentlemen.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-05 - Silver Bells.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-06 - Little Drummer Boy.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-07 - Santa Claus is Back in Town.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-08 - Silent Night.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-09 - Deck the Halls.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-10 - Grandma got Ran Over by a Reindeer.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-11 - Rockin' Around the Xmas Tree.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/01-12 - Happy Xmas (War is Over).ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/02-01 - O' Christmas Tree.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/02-02 - Auld Lang Syne.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/02-03 - Frosty the Snowman.ogg
/<microSD0>/MUSIC/Various Artists/We Wish You a Metal Xmas and a Headbanging New Year (2008)/02-04 - Rudolph the Red Nosed Reindeer.ogg
/<microSD0>/MUSIC/_Singles (Christmas)/Kamelot - We Three Kings.mp3
/<microSD0>/MUSIC/_Singles (Christmas)/King Diamond - No Presents For Christmas.mp3

View file

@ -1,3 +0,0 @@
Shortcuts and custom database navigation definitions that I use on my Rockbox devices. They just go into the root of the `.rockbox` directory.
Playlists go to the root of the SD card and are pathed for the FiiO M3K (but could be converted to other base paths easily enough).

View file

@ -1,14 +0,0 @@
[shortcut]
name: Sleep Timer 60
type: time
data: sleep 60
[shortcut]
name: Sleep Timer 30
type: time
data: sleep 30
[shortcut]
name: Stop Sleep Timer
type: time
data: sleep 0

View file

@ -1,5 +0,0 @@
#! rockbox/tagbrowser/2.0
%menu_start "custom" "Custom Browsers"
"Genre Artists" -> genre -> albumartist -> album -> title = "fmt_title"
"Genre Albums" -> genre -> album -> title = "fmt_title"

View file

@ -1,17 +0,0 @@
configuration{
modi: "run,drun,window";
icon-theme: "Oranchelo";
show-icons: true;
terminal: "st";
drun-display-format: "{icon} {name}";
location: 0;
disable-history: false;
hide-scrollbar: true;
display-drun: "  Apps ";
display-run: "  Run ";
display-window: " 﩯 Window";
display-Network: " 󰤨 Network";
sidebar-mode: true;
}
@theme "catppuccin-mocha"

View file

@ -1,104 +0,0 @@
* {
bg-col: #1e1e2e;
bg-col-light: #1e1e2e;
border-col: #1e1e2e;
selected-col: #1e1e2e;
blue: #89b4fa;
fg-col: #cdd6f4;
fg-col2: #f38ba8;
grey: #6c7086;
width: 600;
font: "monospace 14";
}
element-text, element-icon , mode-switcher {
background-color: inherit;
text-color: inherit;
}
window {
height: 360px;
border: 3px;
border-color: @border-col;
background-color: @bg-col;
}
mainbox {
background-color: @bg-col;
}
inputbar {
children: [prompt,entry];
background-color: @bg-col;
border-radius: 5px;
padding: 2px;
}
prompt {
background-color: @blue;
padding: 6px;
text-color: @bg-col;
border-radius: 3px;
margin: 20px 0px 0px 20px;
}
textbox {
padding: 20px 20px 0 20px;
text-color: @fg-col;
background-color: @bg-col;
}
textbox-prompt-colon {
expand: false;
str: ":";
}
entry {
padding: 6px;
margin: 20px 0px 0px 10px;
text-color: @fg-col;
background-color: @bg-col;
}
listview {
border: 0px 0px 0px;
padding: 6px 0px 0px;
margin: 10px 0px 0px 20px;
columns: 1;
lines: 5;
background-color: @bg-col;
}
element {
padding: 5px;
background-color: @bg-col;
text-color: @fg-col ;
}
element-icon {
size: 25px;
}
element selected {
background-color: @selected-col ;
text-color: @fg-col2 ;
}
mode-switcher {
spacing: 0;
}
button {
padding: 10px;
background-color: @bg-col-light;
text-color: @grey;
vertical-align: 0.5;
horizontal-align: 0.5;
}
button selected {
background-color: @bg-col;
text-color: @blue;
}

View file

@ -1,5 +0,0 @@
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc

View file

@ -1,11 +0,0 @@
#!/usr/bin/env bash
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# source shared config
for shared in ~/skynet/shell/bashrc.d/*.sh; do
source "$shared"
done

View file

@ -1,47 +0,0 @@
#!/usr/bin/env bash
set -o vi
shopt -s histappend
shopt -s cmdhist
HISTSIZE=1000000
HISTFILESIZE=1000000
HISTCONTROL=ignoreboth
HISTIGNORE='ls:history'
HISTTIMEFORMAT='%F %T '
eval "$(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)"
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/.local/lib"
PATH="$HOME/.local/bin:$PATH:$HOME/skynet/bin:$HOME/node/node_modules/.bin:$HOME/go/bin:$HOME/.dotnet:$HOME/.dotnet/tools:$HOME/.cargo/bin:$HOME/.luarocks/bin"
TERM_ITALICS=true
EDITOR=vim
PAGER=bat
MANPAGER=batman
DOTNET_ROOT=~/.dotnet
ANDROID_EMULATOR_USE_SYSTEM_LIBS=1
GPG_TTY=$(tty)
export TERM_ITALICS LD_LIBRARY_PATH PATH EDITOR PAGER MANPAGER DOTNET_ROOT ANDROID_EMULATOR_USE_SYSTEM_LIBS GPG_TTY
alias ls='exa --icons'
alias cat='bat'
alias cd..='cd ..'
alias j='goto'
alias jqize="jq -R -r '. as \$line | try fromjson catch \$line'"
alias jcurl="curl -H 'Content-Type: application/json' -H 'Accept: application/json'"
alias gitlog='git log --oneline --graph'
alias watchsync='watch grep -e Dirty: -e Writeback: /proc/meminfo'
alias psgrep='ps -ef | grep -v grep | grep'
alias serve='python -m http.server'
alias dockerrm='docker stop $(docker ps -aq); docker rm -v $(docker ps -aq); docker volume prune -f --filter all=true; docker rmi $(docker images -q --filter "dangling=true")'
alias cls='clear && echo -en "\e[3J"'
alias removebom="sed -i \$'1s/^\uFEFF//'"
alias duskh="du -hka --max-depth=1 | sort -h"
alias 8bitdo="xboxdrv --evdev /dev/btjoy --config ~/.config/xboxdrv/8bitdo.conf"
alias ddev="export COMPOSE_FILE=docker-compose.dev.yaml"
alias penscreen="xsetwacom set 'Wacom Intuos PT S Pen stylus' MapToOutput HEAD-1; xsetwacom set 'Wacom Intuos PT S Pen eraser' MapToOutput HEAD-1"
alias connected="ss -O4Hpr -tun state connected"
test -e ~/.bash_aliases && source ~/.bash_aliases

View file

@ -1,50 +0,0 @@
#!/usr/bin/env bash
# set prefix if in termux
if uname -a | grep -q Android; then
pathprefix=/data/data/com.termux/files
else
pathprefix=
fi;
# fzf config
[ -f "$pathprefix/usr/share/fzf/completion.bash" ] && source "$pathprefix/usr/share/fzf/completion.bash"
[ -f "$pathprefix/usr/share/fzf/key-bindings.bash" ] && source "$pathprefix/usr/share/fzf/key-bindings.bash"
# goto
[ -f ~/skynet/scripts/goto.sh ] && source ~/skynet/scripts/goto.sh
# bash completion
test -e "$pathprefix/usr/share/bash-completion/bash_completion" && source "$pathprefix/usr/share/bash-completion/bash_completion"
# colorizer
GRC_ALIASES=true
test -e "$pathprefix/usr/share/grc/grc.sh" && source "$pathprefix/usr/share/grc/grc.sh"
# git bash completions
test -e ~/skynet/scripts/git-completion.bash && source ~/skynet/scripts/git-completion.bash
# nvm
test -e ~/.nvm/nvm.sh && source ~/.nvm/nvm.sh
test -e ~/.cargo/env && source ~/.cargo/env
# bat theme
BAT_THEME='Catppuccin-mocha'
# nnn color config
NNN_PLUG='d:dragdrop;i:imgview'
NNN_PREVIEWDIR="$HOME/.cache/nnn/previews"
BLK="03" CHR="03" DIR="04" EXE="02" REG="07" HARDLINK="05" SYMLINK="05" MISSING="08" ORPHAN="01" FIFO="06" SOCK="03" UNKNOWN="01"
NNN_COLORS="#04020301;4231"
NNN_FCOLORS="$BLK$CHR$DIR$EXE$REG$HARDLINK$SYMLINK$MISSING$ORPHAN$FIFO$SOCK$UNKNOWN"
export GRC_ALIASES BAT_THEME NNN_PLUG NNN_PREVIEWDIR NNN_COLORS NNN_FCOLORS
# google cloud sdk
# The next line updates PATH for the Google Cloud SDK.
if [ -f '/home/rudism/.local/opt/google-cloud-sdk/path.bash.inc' ]; then . '/home/rudism/.local/opt/google-cloud-sdk/path.bash.inc'; fi
# The next line enables shell command completion for gcloud.
if [ -f '/home/rudism/.local/opt/google-cloud-sdk/completion.bash.inc' ]; then . '/home/rudism/.local/opt/google-cloud-sdk/completion.bash.inc'; fi

View file

@ -1,31 +0,0 @@
#!/usr/bin/env bash
# dictionary
define(){
dict -d gcide "$1" | bat
}
# thesaurus
synonym(){
dict -d moby-thesaurus "$1" | bat
}
# mount with user permissions
mmount(){
sudo mount -o uid="$(whoami)",gid="$(whoami)" "/dev/$1" "/mnt/$2"
}
# easy ssh-agent persistence
function ssha() {
test=$(ps -ef | grep '\sssh-agent$' | grep -v grep | awk '{print $2}' | xargs)
if [ "$test" = "" ]; then
if [ -e ~/.ssh-agent.sh ]; then
rm -f ~/.ssh-agent.sh
fi
ssh-agent | grep -v echo >&~/.ssh-agent.sh
fi
test -e ~/.ssh-agent.sh && source ~/.ssh-agent.sh
ssh-add -l > /dev/null || ssh-add
}
test -e ~/.ssh-agent.sh && source ~/.ssh-agent.sh

View file

@ -1,72 +0,0 @@
#!/usr/bin/env bash
RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
MAGENTA=$(tput setaf 5)
GRAY=$(tput setaf 8)
ITALIC=$(tput sitm)
RESET=$(tput sgr0)
format_command_time() {
local x="$1"
local ms="$((x % 1000))"
x="$((x / 1000))"
local sec="$((x % 60))"
x="$((x / 60))"
local min="$((x % 60))"
x="$((x / 60))"
local hour="$((x % 24))"
local day="$((x / 24))"
local timestr
if [ "$day" -gt 0 ]; then
timestr="${day}d "
fi
if [ "$hour" -gt 0 ]; then
timestr="$timestr${hour}h "
fi
if [ "$min" -gt 0 ]; then
timestr="$timestr${min}m "
fi
if [ "$sec" -gt 0 ]; then
timestr="$timestr${sec}s "
fi
timestr="$timestr${ms}ms"
printf '%s' "$timestr"
}
last_command_timer() {
last_command_start=${last_command_start:-$(date +%s%3N)}
}
set_prompt() {
if [ $? -eq 0 ]; then
prompt_color="$GREEN"
else
prompt_color="$RED"
fi
if [ -n "$last_command_start" ]; then
last_command_length=$(format_command_time "$(($(date +%s%3N) - last_command_start))")
unset last_command_start
last_command_stats="$ITALIC${MAGENTA}Completed in $last_command_length.$RESET\n"
else
last_command_stats=
fi
git_branch=$(git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/')
if [ -n "$git_branch" ]; then
local git_status
git_status=$(git status --porcelain)
if [ -n "$git_status" ]; then
git_symbol=" $RED"
else
git_symbol=" $GREEN"
fi
else
git_symbol=
fi
PS1="\n$last_command_stats\[$GRAY\]$(whoami)@$(hostname)\[$RESET\]\n\[$BLUE\]\w\[$RESET\]$git_symbol\[$YELLOW\]$git_branch\[$RESET\]\n\[$prompt_color\]\[$RESET\] "
}
trap 'last_command_timer' DEBUG
PROMPT_COMMAND=set_prompt

View file

@ -1,479 +0,0 @@
# shellcheck shell=bash
# shellcheck disable=SC2039
# SOURCE: https://github.com/iridakos/goto
# MIT License
#
# Copyright (c) 2018 Lazarus Lazaridis
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# Changes to the given alias directory
# or executes a command based on the arguments.
goto()
{
local target
_goto_resolve_db
if [ -z "$1" ]; then
# display usage and exit when no args
_goto_usage
return
fi
subcommand="$1"
shift
case "$subcommand" in
-c|--cleanup)
_goto_cleanup "$@"
;;
-r|--register) # Register an alias
_goto_register_alias "$@"
;;
-u|--unregister) # Unregister an alias
_goto_unregister_alias "$@"
;;
-p|--push) # Push the current directory onto the pushd stack, then goto
_goto_directory_push "$@"
;;
-o|--pop) # Pop the top directory off of the pushd stack, then change that directory
_goto_directory_pop
;;
-l|--list)
_goto_list_aliases
;;
-x|--expand) # Expand an alias
_goto_expand_alias "$@"
;;
-h|--help)
_goto_usage
;;
-v|--version)
_goto_version
;;
*)
_goto_directory "$subcommand"
;;
esac
return $?
}
_goto_resolve_db()
{
local CONFIG_DEFAULT="${XDG_CONFIG_HOME:-$HOME/.config}/goto"
GOTO_DB="${GOTO_DB:-$CONFIG_DEFAULT}"
GOTO_DB_CONFIG_DIRNAME=$(dirname "$GOTO_DB")
if [[ ! -d "$GOTO_DB_CONFIG_DIRNAME" ]]; then
mkdir "$GOTO_DB_CONFIG_DIRNAME"
fi
touch -a "$GOTO_DB"
}
_goto_usage()
{
cat <<\USAGE
usage: goto [<option>] <alias> [<directory>]
default usage:
goto <alias> - changes to the directory registered for the given alias
OPTIONS:
-r, --register: registers an alias
goto -r|--register <alias> <directory>
-u, --unregister: unregisters an alias
goto -u|--unregister <alias>
-p, --push: pushes the current directory onto the stack, then performs goto
goto -p|--push <alias>
-o, --pop: pops the top directory from the stack, then changes to that directory
goto -o|--pop
-l, --list: lists aliases
goto -l|--list
-x, --expand: expands an alias
goto -x|--expand <alias>
-c, --cleanup: cleans up non existent directory aliases
goto -c|--cleanup
-h, --help: prints this help
goto -h|--help
-v, --version: displays the version of the goto script
goto -v|--version
USAGE
}
# Displays version
_goto_version()
{
echo "goto version 2.1.0"
}
# Expands directory.
# Helpful for ~, ., .. paths
_goto_expand_directory()
{
builtin cd "$1" 2>/dev/null && pwd
}
# Lists registered aliases.
_goto_list_aliases()
{
local IFS=$' '
if [ -f "$GOTO_DB" ]; then
local maxlength=0
while read -r name directory; do
local length=${#name}
if [[ $length -gt $maxlength ]]; then
local maxlength=$length
fi
done < "$GOTO_DB"
while read -r name directory; do
printf "\e[1;36m%${maxlength}s \e[0m%s\n" "$name" "$directory"
done < "$GOTO_DB"
else
echo "You haven't configured any directory aliases yet."
fi
}
# Expands a registered alias.
_goto_expand_alias()
{
if [ "$#" -ne "1" ]; then
_goto_error "usage: goto -x|--expand <alias>"
return
fi
local resolved
resolved=$(_goto_find_alias_directory "$1")
if [ -z "$resolved" ]; then
_goto_error "alias '$1' does not exist"
return
fi
echo "$resolved"
}
# Lists duplicate directory aliases
_goto_find_duplicate()
{
local duplicates=
duplicates=$(sed -n 's:[^ ]* '"$1"'$:&:p' "$GOTO_DB" 2>/dev/null)
echo "$duplicates"
}
# Registers and alias.
_goto_register_alias()
{
if [ "$#" -ne "2" ]; then
_goto_error "usage: goto -r|--register <alias> <directory>"
return 1
fi
if ! [[ $1 =~ ^[[:alnum:]]+[a-zA-Z0-9_-]*$ ]]; then
_goto_error "invalid alias - can start with letters or digits followed by letters, digits, hyphens or underscores"
return 1
fi
local resolved
resolved=$(_goto_find_alias_directory "$1")
if [ -n "$resolved" ]; then
_goto_error "alias '$1' exists"
return 1
fi
local directory
directory=$(_goto_expand_directory "$2")
if [ -z "$directory" ]; then
_goto_error "failed to register '$1' to '$2' - can't cd to directory"
return 1
fi
local duplicate
duplicate=$(_goto_find_duplicate "$directory")
if [ -n "$duplicate" ]; then
_goto_warning "duplicate alias(es) found: \\n$duplicate"
fi
# Append entry to file.
echo "$1 $directory" >> "$GOTO_DB"
echo "Alias '$1' registered successfully."
}
# Unregisters the given alias.
_goto_unregister_alias()
{
if [ "$#" -ne "1" ]; then
_goto_error "usage: goto -u|--unregister <alias>"
return 1
fi
local resolved
resolved=$(_goto_find_alias_directory "$1")
if [ -z "$resolved" ]; then
_goto_error "alias '$1' does not exist"
return 1
fi
# shellcheck disable=SC2034
local readonly GOTO_DB_TMP="$HOME/.goto_"
# Delete entry from file.
sed "/^$1 /d" "$GOTO_DB" > "$GOTO_DB_TMP" && mv "$GOTO_DB_TMP" "$GOTO_DB"
echo "Alias '$1' unregistered successfully."
}
# Pushes the current directory onto the stack, then goto
_goto_directory_push()
{
if [ "$#" -ne "1" ]; then
_goto_error "usage: goto -p|--push <alias>"
return
fi
{ pushd . || return; } 1>/dev/null 2>&1
_goto_directory "$@"
}
# Pops the top directory from the stack, then goto
_goto_directory_pop()
{
{ popd || return; } 1>/dev/null 2>&1
}
# Unregisters aliases whose directories no longer exist.
_goto_cleanup()
{
if ! [ -f "$GOTO_DB" ]; then
return
fi
while IFS= read -r i && [ -n "$i" ]; do
echo "Cleaning up: $i"
_goto_unregister_alias "$i"
done <<< "$(awk '{al=$1; $1=""; dir=substr($0,2);
system("[ ! -d \"" dir "\" ] && echo " al)}' "$GOTO_DB")"
}
# Changes to the given alias' directory
_goto_directory()
{
# directly goto the special name that is unable to be registered due to invalid alias, eg: ~
if ! [[ $1 =~ ^[[:alnum:]]+[a-zA-Z0-9_-]*$ ]]; then
{ builtin cd "$1" 2> /dev/null && return 0; } || \
{ _goto_error "Failed to goto '$1'" && return 1; }
fi
local target
target=$(_goto_resolve_alias "$1") || return 1
builtin cd "$target" 2> /dev/null || \
{ _goto_error "Failed to goto '$target'" && return 1; }
}
# Fetches the alias directory.
_goto_find_alias_directory()
{
local resolved
resolved=$(sed -n "s/^$1 \\(.*\\)/\\1/p" "$GOTO_DB" 2>/dev/null)
echo "$resolved"
}
# Displays the given error.
# Used for common error output.
_goto_error()
{
(>&2 echo -e "goto error: $1")
}
# Displays the given warning.
# Used for common warning output.
_goto_warning()
{
(>&2 echo -e "goto warning: $1")
}
# Displays entries with aliases starting as the given one.
_goto_print_similar()
{
local similar
similar=$(sed -n "/^$1[^ ]* .*/p" "$GOTO_DB" 2>/dev/null)
if [ -n "$similar" ]; then
(>&2 echo "Did you mean:")
(>&2 column -t <<< "$similar")
fi
}
# Fetches alias directory, errors if it doesn't exist.
_goto_resolve_alias()
{
local resolved
resolved=$(_goto_find_alias_directory "$1")
if [ -z "$resolved" ]; then
_goto_error "unregistered alias $1"
_goto_print_similar "$1"
return 1
else
echo "${resolved}"
fi
}
# Completes the goto function with the available commands
_complete_goto_commands()
{
local IFS=$' \t\n'
# shellcheck disable=SC2207
COMPREPLY=($(compgen -W "-r --register -u --unregister -p --push -o --pop -l --list -x --expand -c --cleanup -v --version" -- "$1"))
}
# Completes the goto function with the available aliases
_complete_goto_aliases()
{
local IFS=$'\n' matches
_goto_resolve_db
# shellcheck disable=SC2207
matches=($(sed -n "/^$1/p" "$GOTO_DB" 2>/dev/null))
if [ "${#matches[@]}" -eq "1" ]; then
# remove the filenames attribute from the completion method
compopt +o filenames 2>/dev/null
# if you find only one alias don't append the directory
COMPREPLY=("${matches[0]// *}")
else
for i in "${!matches[@]}"; do
# remove the filenames attribute from the completion method
compopt +o filenames 2>/dev/null
if ! [[ $(uname -s) =~ Darwin* ]]; then
matches[$i]=$(printf '%*s' "-$COLUMNS" "${matches[$i]}")
COMPREPLY+=("$(compgen -W "${matches[$i]}")")
else
COMPREPLY+=("${matches[$i]// */}")
fi
done
fi
}
# Bash programmable completion for the goto function
_complete_goto_bash()
{
local cur="${COMP_WORDS[$COMP_CWORD]}" prev
if [ "$COMP_CWORD" -eq "1" ]; then
# if we are on the first argument
if [[ $cur == -* ]]; then
# and starts like a command, prompt commands
_complete_goto_commands "$cur"
else
# and doesn't start as a command, prompt aliases
_complete_goto_aliases "$cur"
fi
elif [ "$COMP_CWORD" -eq "2" ]; then
# if we are on the second argument
prev="${COMP_WORDS[1]}"
if [[ $prev = "-u" ]] || [[ $prev = "--unregister" ]]; then
# prompt with aliases if user tries to unregister one
_complete_goto_aliases "$cur"
elif [[ $prev = "-x" ]] || [[ $prev = "--expand" ]]; then
# prompt with aliases if user tries to expand one
_complete_goto_aliases "$cur"
elif [[ $prev = "-p" ]] || [[ $prev = "--push" ]]; then
# prompt with aliases only if user tries to push
_complete_goto_aliases "$cur"
fi
elif [ "$COMP_CWORD" -eq "3" ]; then
# if we are on the third argument
prev="${COMP_WORDS[1]}"
if [[ $prev = "-r" ]] || [[ $prev = "--register" ]]; then
# prompt with directories only if user tries to register an alias
local IFS=$' \t\n'
# shellcheck disable=SC2207
COMPREPLY=($(compgen -d -- "$cur"))
fi
fi
}
# Zsh programmable completion for the goto function
_complete_goto_zsh()
{
local all_aliases=()
_goto_resolve_db
while IFS= read -r line; do
all_aliases+=("$line")
done <<< "$(sed -e 's/ /:/g' $GOTO_DB 2>/dev/null)"
local state
local -a options=(
'(1)'{-r,--register}'[registers an alias]:register:->register'
'(- 1 2)'{-u,--unregister}'[unregisters an alias]:unregister:->unregister'
'(: -)'{-l,--list}'[lists aliases]'
'(*)'{-c,--cleanup}'[cleans up non existent directory aliases]'
'(1 2)'{-x,--expand}'[expands an alias]:expand:->aliases'
'(1 2)'{-p,--push}'[pushes the current directory onto the stack, then performs goto]:push:->aliases'
'(*)'{-o,--pop}'[pops the top directory from stack, then changes to that directory]'
'(: -)'{-h,--help}'[prints this help]'
'(* -)'{-v,--version}'[displays the version of the goto script]'
)
_arguments -C \
"${options[@]}" \
'1:alias:->aliases' \
'2:dir:_files' \
&& ret=0
case ${state} in
(aliases)
_describe -t aliases 'goto aliases:' all_aliases && ret=0
;;
(unregister)
_describe -t aliases 'unregister alias:' all_aliases && ret=0
;;
esac
return $ret
}
goto_aliases=($(alias | sed -n "s/.*\s\(.*\)='goto'/\1/p"))
goto_aliases+=("goto")
for i in "${goto_aliases[@]}"
do
# Register the goto completions.
if [ -n "${BASH_VERSION}" ]; then
if ! [[ $(uname -s) =~ Darwin* ]]; then
complete -o filenames -F _complete_goto_bash $i
else
complete -F _complete_goto_bash $i
fi
elif [ -n "${ZSH_VERSION}" ]; then
compdef _complete_goto_zsh $i
else
echo "Unsupported shell."
exit 1
fi
done

View file

@ -1,26 +0,0 @@
#!/usr/bin/env bash
if [ -z "$DISPLAY" ] && [ -x "$(command -v startx)" ] && ! pgrep herbstluftwm >/dev/null; then
# start x if it's available and we're not already in it
startx
else
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ linux ]] && [ -z "$TMUX" ]; then
# otherwise start tmux if it's available and we're not already in it
exec tmux
else
# otherwise robot quote
if [ -x "$(command -v botsay)" ]; then
len=1642 #$(jq '. | length' ~/skynet/quotes.json)
idx=$(( RANDOM % len))
quote=()
while read -r value; do
quote+=("$value")
done < <(jq -r ".[$idx] | .quoteText, .quoteAuthor" ~/skynet/shell/quotes.json)
quoteText="${quote[0]}"
if [ -n "${quote[1]}" ]; then
quoteText="$quoteText --${quote[1]}"
fi
echo "$quoteText" | botsay -c -
fi
fi
fi

File diff suppressed because it is too large Load diff

View file

@ -1,33 +0,0 @@
set-option -sa terminal-overrides ',rxvt-unicode-256color:RGB'
set-option -g history-limit 100000
set-option -g status off
set-option -g focus-events on
set -g default-terminal "st-256color"
set -g mouse on
setw -g aggressive-resize on
setw -g mode-keys vi
setw -g automatic-rename on
bind m \
set -g mouse on \;\
display 'Mouse: ON'
bind M \
set -g mouse off \;\
display 'Mouse: OFF'
set -s copy-command 'xsel -b -i'
bind ] run "tmux set-buffer -- \"$(xsel -b -o)\"; tmux paste-buffer"
bind-key -n MouseDown2Pane run "tmux set-buffer -- \"$(xsel -b -o)\"; tmux paste-buffer"
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection
bind-key -T copy-mode-vi r send-keys -X rectangle-toggle
bind r source-file ~/.tmux.conf \; display "tmux config reloaded :)"
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
set -s escape-time 0

View file

@ -1,16 +0,0 @@
// ==UserScript==
// @name Redirect-YouTube
// @namespace code.sitosis.com
// @version 1.0
// @description Rediret YouTube
// @author rudism
// @match https://www.youtube.com/*
// @match https://youtube.com/*
// @grant none
// @run-at document-start
// ==/UserScript==
(function () {
'use strict';
top.location.hostname = "yt.rdsm.ca";
})();

View file

@ -1,30 +0,0 @@
TigerVNC Configuration file Version 1.0
ServerName=voidism
X509CA=/home/rudism/.vnc/x509_ca.pem
X509CRL=/home/rudism/.vnc/x509_crl.pem
SecurityTypes=X509Plain,TLSPlain,X509Vnc,TLSVnc,X509None,TLSNone,VncAuth,None
EmulateMiddleButton=0
DotWhenNoCursor=0
ReconnectOnError=1
AutoSelect=1
FullColor=1
LowColorLevel=2
PreferredEncoding=Tight
CustomCompressLevel=0
CompressLevel=2
NoJPEG=0
QualityLevel=8
FullScreen=1
FullScreenMode=Current
FullScreenSelectedMonitors=1
DesktopSize=
RemoteResize=0
ViewOnly=0
Shared=0
AcceptClipboard=1
SendClipboard=1
SendPrimary=1
SetPrimary=1
MenuKey=F8
FullscreenSystemKeys=1

View file

@ -1,35 +0,0 @@
default = {
x = {relative = 0.5; offset = 0;};
y = {relative = 1; offset = -100;};
length = {relative = 0.3; offset = 0;};
thickness = 24;
outline = 3;
border = 4;
padding = 3;
orientation = "horizontal";
overflow = "proportional";
color = {
normal = {
fg = "#ffffff";
bg = "#00000090";
border = "#ffffff";
};
alt = {
fg = "#555555";
bg = "#00000090";
border = "#555555";
};
overflow = {
fg = "#ff0000";
bg = "#00000090";
border = "#ff0000";
};
altoverflow = {
fg = "#550000";
bg = "#00000090";
border = "#550000";
};
};
};

View file

@ -1,42 +0,0 @@
Xcursor.theme: Adwaita
*.foreground: #dedacf
*.background: #080808
*.cursorColor: #bbbbbb
!
! Black
*.color0: #080808
*.color8: #313131
!
! Red
*.color1: #ff615a
*.color9: #f58c80
!
! Green
*.color2: #b1e969
*.color10: #ddf88f
!
! Yellow
*.color3: #ebd99c
*.color11: #eee5b2
!
! Blue
*.color4: #5da9f6
*.color12: #a5c7ff
!
! Magenta
*.color5: #e86aff
*.color13: #ddaaff
!
! Cyan
*.color6: #82fff7
*.color14: #b7fff9
!
! White
*.color7: #dedacf
*.color15: #ffffff
!
! Bold, Italic, Underline
*.colorBD: #ffffff
!*.colorIT:
!*.colorUL:

View file

@ -1,16 +0,0 @@
[Settings]
gtk-icon-theme-name=Catppuccin-Mocha-Dark-Cursors
gtk-theme-name=Catppuccin-Mocha
gtk-application-prefer-dark-theme=0
gtk-font-name=Sans 10
gtk-cursor-theme-name=Catppuccin-Mocha-Dark-Cursors
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH_HORIZ
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=0
gtk-menu-images=0
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintmedium

View file

@ -1,3 +0,0 @@
gtk-theme-name="Arc-Dark"
gtk-icon-theme="Arc-Dark"
gtk-application-prefer-dark-theme="true"

Some files were not shown because too many files have changed in this diff Show more