pruned stuff specific to old non-kde setup
This commit is contained in:
parent
9e68a6c023
commit
0fac7a4bca
|
@ -1,14 +1,3 @@
|
||||||
nvim/plugin
|
nvim/plugin
|
||||||
qutebrowser/bookmarks
|
newtabber/newtabber
|
||||||
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
|
|
||||||
termux/font.ttf
|
termux/font.ttf
|
||||||
btop/btop.log
|
|
||||||
|
|
|
@ -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>
|
|
|
@ -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
|
|
|
@ -1,2 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
col -bx < "$1" | bat --language man -p
|
|
10
bin/battlvl
10
bin/battlvl
|
@ -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)"
|
|
500
bin/bwmenu
500
bin/bwmenu
|
@ -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
|
|
|
@ -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 /"
|
|
||||||
}
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -1,6 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
cd ~/.timewarrior/
|
|
||||||
git add --all .
|
|
||||||
git commit -m 'timew-backup'
|
|
||||||
git push
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
212
btop/btop.conf
212
btop/btop.conf
|
@ -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"
|
|
|
@ -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"
|
|
|
@ -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)
|
|
|
@ -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
|
|
|
@ -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{|}~";
|
|
|
@ -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
|
|
|
@ -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"
|
|
|
@ -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>
|
|
|
@ -1 +0,0 @@
|
||||||
pinentry-program /usr/bin/pinentry-curses
|
|
|
@ -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; } &
|
|
|
@ -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
|
|
|
@ -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 |
|
@ -73,7 +73,7 @@ lsp.omnisharp.setup {
|
||||||
end
|
end
|
||||||
return util.root_pattern("*.sln")(file) or util.root_pattern("*.csproj")(file) or util.root_pattern("omnisharp.json")(file)
|
return util.root_pattern("*.sln")(file) or util.root_pattern("*.csproj")(file) or util.root_pattern("omnisharp.json")(file)
|
||||||
end,
|
end,
|
||||||
cmd = { "/home/rudism/.local/share/omnisharp/OmniSharp" }, --"--languageserver" , "--hostPID", tostring(pid) },
|
cmd = { "/usr/bin/omnisharp" }, --"--languageserver" , "--hostPID", tostring(pid) },
|
||||||
}
|
}
|
||||||
lsp.tsserver.setup {
|
lsp.tsserver.setup {
|
||||||
capabilities = lspcap,
|
capabilities = lspcap,
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
shadow = false;
|
|
||||||
fading = false;
|
|
||||||
inactive-opacity = 1.0;
|
|
||||||
frame-opacity = 1.0;
|
|
||||||
vsync = true;
|
|
|
@ -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; }
|
|
||||||
};
|
|
|
@ -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
|
|
|
@ -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).
|
|
|
@ -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
|
|
|
@ -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"
|
|
|
@ -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"
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
#
|
|
||||||
# ~/.bash_profile
|
|
||||||
#
|
|
||||||
|
|
||||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
|
11
shell/bashrc
11
shell/bashrc
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
6570
shell/quotes.json
6570
shell/quotes.json
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
|
@ -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";
|
|
||||||
})();
|
|
|
@ -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
|
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
|
@ -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:
|
|
|
@ -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
|
|
|
@ -1,3 +0,0 @@
|
||||||
gtk-theme-name="Arc-Dark"
|
|
||||||
gtk-icon-theme="Arc-Dark"
|
|
||||||
gtk-application-prefer-dark-theme="true"
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue