├── .config ├── ranger │ ├── plugins │ │ ├── __init__.py │ │ └── __pycache__ │ │ │ ├── __init__.cpython-39.opt-1.pyc │ │ │ └── __init__.cpython-310.opt-1.pyc │ ├── rc.conf │ └── open-tui ├── nvim │ ├── test.creole │ ├── lua │ │ ├── mystuff │ │ │ ├── plugin_conf │ │ │ │ ├── orgmode │ │ │ │ │ └── init.lua │ │ │ │ ├── none-ls-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-jdtls │ │ │ │ │ └── init.lua │ │ │ │ ├── orgmode-git │ │ │ │ │ └── init.lua │ │ │ │ ├── typescript-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-notify │ │ │ │ │ └── init.lua │ │ │ │ ├── mason-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-lsp-installer │ │ │ │ │ └── init.lua │ │ │ │ ├── mini-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── typescript-tools-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-snippy │ │ │ │ │ └── init.lua │ │ │ │ ├── vim-rest-console │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-dap-ui │ │ │ │ │ └── init.lua │ │ │ │ ├── dressing-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── flutter-tools-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── neotest │ │ │ │ │ └── init.lua │ │ │ │ ├── obsidian-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── workspaces-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── zk-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-dap-vscode-js │ │ │ │ │ └── init.lua │ │ │ │ ├── formatter-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-treesitter │ │ │ │ │ └── init.lua │ │ │ │ ├── neorg │ │ │ │ │ └── init.lua │ │ │ │ ├── null-ls-nvim │ │ │ │ │ └── init.lua │ │ │ │ ├── xbase │ │ │ │ │ └── init.lua │ │ │ │ ├── nvim-lspconfig │ │ │ │ │ └── init.lua │ │ │ │ └── nvim-cmp │ │ │ │ │ └── init.lua │ │ │ ├── option_utils.lua │ │ │ ├── mapping_utils.lua │ │ │ ├── settings.lua │ │ │ ├── test_path.lua │ │ │ ├── org.lua │ │ │ ├── bible_utils.lua │ │ │ └── on_attach_conf.lua │ │ ├── cache │ │ │ └── init.lua │ │ └── my_px │ │ │ ├── helpers.lua │ │ │ ├── markdown.lua │ │ │ └── svelte.lua │ ├── snippets │ │ ├── typescriptreact.snippets │ │ ├── markdown.snippets │ │ ├── lua.snippets │ │ ├── groovy.snippets │ │ ├── typescript.snippets │ │ └── dart.snippets │ ├── work │ ├── data │ │ ├── creole.add │ │ ├── creole.add.spl │ │ └── creole.txt │ ├── ftplugin │ │ ├── sh.lua │ │ ├── tex.lua │ │ ├── go.lua │ │ ├── python.lua │ │ ├── r.lua │ │ ├── fugitive.lua │ │ ├── scheme.lua │ │ ├── rmd.lua │ │ ├── typescript.lua │ │ ├── svelte.lua │ │ ├── org.lua │ │ ├── creole.lua │ │ ├── swift.lua │ │ ├── markdown.lua │ │ └── dart.lua │ ├── UltiSnips │ │ ├── snippets.snippets │ │ ├── creole.snippets │ │ ├── markdown.snippets │ │ ├── css.snippets │ │ ├── typescript.snippets │ │ ├── jproperties.snippets │ │ ├── java.snippets │ │ ├── typescriptreact.snippets │ │ ├── json.snippets │ │ └── dart.snippets │ ├── output.pdf │ ├── ftdetect │ │ ├── chord.lua │ │ ├── bible.lua │ │ └── creole.lua │ ├── spell │ │ ├── en.utf-8.add │ │ ├── en.utf-8.add.spl │ │ └── creole.utf-8.add.spl │ ├── thing.lua │ ├── after │ │ └── syntax │ │ │ ├── strongs.vim │ │ │ ├── bible.vim │ │ │ └── chord.vim │ ├── init.norg │ ├── init.lua │ ├── coc-settings.json │ ├── thing.svelte │ ├── thing.dart │ └── thing.swift ├── zathura │ └── zathurarc ├── kdeconnect │ ├── config │ ├── a7181952782b807a │ │ └── kdeconnect_runcommand │ │ │ └── config │ ├── ea80738bc1dbfb65 │ │ └── kdeconnect_runcommand │ │ │ └── config │ ├── certificate.pem │ ├── privateKey.pem │ └── trusted_devices ├── tmux │ └── tmux.conf ├── obs-studio │ ├── plugin_config │ │ └── rtmp-services │ │ │ ├── meta.json │ │ │ └── package.json │ ├── basic │ │ ├── profiles │ │ │ └── Untitled │ │ │ │ └── basic.ini │ │ └── scenes │ │ │ └── Untitled.json.bak │ └── global.ini ├── jack │ ├── end.sh │ └── start.sh ├── polybar │ ├── material │ │ ├── scripts │ │ │ ├── launcher.sh │ │ │ ├── rofi │ │ │ │ ├── colors.rasi │ │ │ │ ├── confirm.rasi │ │ │ │ ├── message.rasi │ │ │ │ ├── launcher.rasi │ │ │ │ ├── styles.rasi │ │ │ │ ├── networkmenu.rasi │ │ │ │ └── powermenu.rasi │ │ │ ├── powermenu.sh │ │ │ ├── updates.sh │ │ │ ├── pywal.sh │ │ │ ├── random.sh │ │ │ ├── color-switch.sh │ │ │ ├── colors-dark.sh │ │ │ ├── colors-light.sh │ │ │ └── checkupdates │ │ ├── launch.sh │ │ ├── preview.sh │ │ └── colors.ini │ ├── theos │ │ ├── launch.sh │ │ └── toggle.sh │ └── launch.sh ├── rofi │ ├── things.json │ ├── rofi-json-core │ └── config.rasi ├── yabai │ └── yabairc ├── yarn │ └── global │ │ └── package.json ├── alacritty │ └── alacritty.toml ├── conky │ ├── conky.conf │ ├── file.conf │ ├── print-env.conf │ └── low-battery.conf └── skhd │ └── skhdrc ├── .aliases ├── root └── etc │ ├── acpi │ ├── events │ │ ├── laptop-lid │ │ └── low-battery │ ├── low-battery.sh │ └── laptop-lid.sh │ └── pacman.conf ├── .local └── share │ ├── scripts │ ├── copytext │ ├── lockscreen │ ├── ffmpegwebm │ ├── choose-gui │ ├── ffmpegmov │ ├── rofi-json │ ├── ffmpeggif │ ├── adb-dynamic-link │ ├── ffmpegmp4 │ ├── toggle-stalone │ ├── vol │ ├── connecttablet │ ├── music-bar │ ├── fehbg │ ├── toggle_notifications │ ├── toggle-conky │ ├── battery-check │ ├── streampulse │ ├── mvln │ ├── print-agenda │ ├── rofi-sound-mixer │ ├── togglebluetooth │ ├── generate_proxy │ ├── org-clock-polybar │ ├── org-timer-polybar │ ├── choose-json │ ├── org-check-time │ ├── org-blog-export │ ├── bible │ ├── sound-mixer │ ├── sound-mixer-microphone │ └── strrt │ └── backgrounds │ ├── inspi.jpg │ ├── leaf.png │ ├── 544f57.png │ ├── cherrychapel.jpg │ ├── purpleishgrey.png │ ├── purplesunset.jpg │ ├── yuriTalesOfVesperia.png │ └── ChapelxCherryBlossoms.jpg ├── flameshot.conf ├── crontab ├── .gitignore ├── .emacs.d ├── history ├── .gitignore └── README.org ├── .yabairc ├── .skhdrc ├── README.md ├── install ├── .zshenv ├── Material.rasi ├── vimium_c.json ├── userChrome.css ├── packages.txt ├── .Xresources ├── .tmux.conf └── my_special_filter.lua /.config/ranger/plugins/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/nvim/test.creole: -------------------------------------------------------------------------------- 1 | eiskriminasyon 2 | -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | map recolor 2 | -------------------------------------------------------------------------------- /.config/kdeconnect/config: -------------------------------------------------------------------------------- 1 | [General] 2 | name=hope 3 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/orgmode/init.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.aliases: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | alias ddate="date --date=" 3 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/none-ls-nvim/init.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-jdtls/init.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/orgmode-git/init.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | /home/joshu/dotfiles/arch/.tmux.conf -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/typescript-nvim/init.lua: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.config/nvim/snippets/typescriptreact.snippets: -------------------------------------------------------------------------------- 1 | extends typescript 2 | -------------------------------------------------------------------------------- /.config/nvim/work: -------------------------------------------------------------------------------- 1 | /home/joshiep/.local/share/nvim/site/pack/packer/start/work -------------------------------------------------------------------------------- /.config/nvim/data/creole.add: -------------------------------------------------------------------------------- 1 | machin 2 | ankò 3 | souvan 4 | tandiske 5 | semèn 6 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/sh.lua: -------------------------------------------------------------------------------- 1 | vim.keymap.set('n', 'rf', '!sh %') 2 | -------------------------------------------------------------------------------- /.config/obs-studio/plugin_config/rtmp-services/meta.json: -------------------------------------------------------------------------------- 1 | {"etag":"W/\"62bcc144-a1\""} -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-notify/init.lua: -------------------------------------------------------------------------------- 1 | vim.notify = require("notify") 2 | -------------------------------------------------------------------------------- /root/etc/acpi/events/laptop-lid: -------------------------------------------------------------------------------- 1 | event=button/lid.* 2 | action=/etc/acpi/laptop-lid.sh 3 | -------------------------------------------------------------------------------- /.local/share/scripts/copytext: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | echo -n "$1" | xclip -selection clipboard 3 | -------------------------------------------------------------------------------- /.local/share/scripts/lockscreen: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | i3lock-fancy-multimonitor -p --no-text 4 | -------------------------------------------------------------------------------- /root/etc/acpi/events/low-battery: -------------------------------------------------------------------------------- 1 | event=battery.* 2 | action=/etc/acpi/actions/lowbattery.sh %e 3 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/snippets.snippets: -------------------------------------------------------------------------------- 1 | snippet ns 2 | snippet $1 3 | endsnippe 4 | endsnippet 5 | -------------------------------------------------------------------------------- /.config/nvim/output.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/nvim/output.pdf -------------------------------------------------------------------------------- /.config/nvim/ftdetect/chord.lua: -------------------------------------------------------------------------------- 1 | vim.cmd([[ 2 | au BufRead,BufNewFile *.chord set filetype=chord 3 | ]]) 4 | -------------------------------------------------------------------------------- /.config/nvim/spell/en.utf-8.add: -------------------------------------------------------------------------------- 1 | #achin 2 | #achin 3 | #achin 4 | #achin 5 | #achin 6 | #achin 7 | Some/! 8 | -------------------------------------------------------------------------------- /.config/jack/end.sh: -------------------------------------------------------------------------------- 1 | pactl unload-module module-jack-source & 2 | pactl unload-module module-jack-sink & 3 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/tex.lua: -------------------------------------------------------------------------------- 1 | local o = require('mystuff/option_utils') 2 | o.set_buf_option('textwidth', 80) 3 | -------------------------------------------------------------------------------- /.config/nvim/data/creole.add.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/nvim/data/creole.add.spl -------------------------------------------------------------------------------- /.config/nvim/ftdetect/bible.lua: -------------------------------------------------------------------------------- 1 | vim.cmd([[ 2 | au BufRead,BufNewFile *.bible set filetype=bible 3 | ]]) 4 | 5 | 6 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/creole.snippets: -------------------------------------------------------------------------------- 1 | snippet e` "è" i 2 | è 3 | endsnippet 4 | snippet o` "ò" i 5 | ò 6 | endsnippet 7 | -------------------------------------------------------------------------------- /.config/nvim/ftdetect/creole.lua: -------------------------------------------------------------------------------- 1 | vim.cmd([[ 2 | autocmd BufNewFile,BufRead *.creole set filetype=creole.org 3 | ]]) 4 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/go.lua: -------------------------------------------------------------------------------- 1 | local m = require("mystuff/mapping_utils") 2 | m.nmap("rf", "!go run %") 3 | -------------------------------------------------------------------------------- /.config/nvim/thing.lua: -------------------------------------------------------------------------------- 1 | local stuff = require("mystuff/plugin_conf/null-ls-nvim/dart") 2 | 3 | stuff.create_from_json() 4 | -------------------------------------------------------------------------------- /.local/share/backgrounds/inspi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/inspi.jpg -------------------------------------------------------------------------------- /.local/share/backgrounds/leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/leaf.png -------------------------------------------------------------------------------- /.local/share/scripts/ffmpegwebm: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ffmpeg -i "$1" -c:v libvpx-vp9 -crf 30 -b:v 0 -b:a 128k -c:a libopus "$2" 3 | -------------------------------------------------------------------------------- /.config/nvim/after/syntax/strongs.vim: -------------------------------------------------------------------------------- 1 | syntax match StrongNumber "\d\{4,5\}" 2 | 3 | hi def link StrongNumber SpecialComment 4 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/python.lua: -------------------------------------------------------------------------------- 1 | local map = require('mystuff/mapping_utils') 2 | map.nmap('rf', '!python %') 3 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/mason-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("mason").setup() 2 | require("mason-lspconfig").setup() 3 | -------------------------------------------------------------------------------- /.config/nvim/spell/en.utf-8.add.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/nvim/spell/en.utf-8.add.spl -------------------------------------------------------------------------------- /.local/share/backgrounds/544f57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/544f57.png -------------------------------------------------------------------------------- /.config/nvim/after/syntax/bible.vim: -------------------------------------------------------------------------------- 1 | syntax match PassageReference "^.*\t" 2 | 3 | hi def link PassageReference SpecialComment 4 | -------------------------------------------------------------------------------- /.config/nvim/spell/creole.utf-8.add.spl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/nvim/spell/creole.utf-8.add.spl -------------------------------------------------------------------------------- /.config/nvim/init.norg: -------------------------------------------------------------------------------- 1 | * This is a header 2 | ** This is a second level header 3 | 4 | The concelear module works very nicely! 5 | -------------------------------------------------------------------------------- /.local/share/backgrounds/cherrychapel.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/cherrychapel.jpg -------------------------------------------------------------------------------- /.local/share/backgrounds/purpleishgrey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/purpleishgrey.png -------------------------------------------------------------------------------- /.local/share/backgrounds/purplesunset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/purplesunset.jpg -------------------------------------------------------------------------------- /.local/share/scripts/choose-gui: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | choose-json $HOME/things.json | choose | xargs -I {} choose-json $HOME/things.json "{}" 3 | -------------------------------------------------------------------------------- /.local/share/scripts/ffmpegmov: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | ffmpeg -i $1 -c:v dnxhd -profile:v dnxhr_hq -pix_fmt yuv422p -c:a pcm_s16le -f mov $2 3 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/markdown.snippets: -------------------------------------------------------------------------------- 1 | snippet header 2 | --- 3 | title: 4 | author: 5 | geometry: margin=3cm 6 | --- 7 | endsnippet 8 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/r.lua: -------------------------------------------------------------------------------- 1 | vim.cmd([[ 2 | let maplocalleader = ',' 3 | nmap va :call RAction("view") 4 | ]]); 5 | -------------------------------------------------------------------------------- /.local/share/scripts/rofi-json: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | rofi -modi 'json:~/.config/rofi/rofi-json-core ~/sync/things.json' -show 'json' 4 | -------------------------------------------------------------------------------- /.config/nvim/lua/cache/init.lua: -------------------------------------------------------------------------------- 1 | M.found_notes = {} 2 | M.notes_mapping = {} 3 | M.floating_wins = {} 4 | M.open_windows = {} 5 | 6 | return M 7 | -------------------------------------------------------------------------------- /.local/share/backgrounds/yuriTalesOfVesperia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/yuriTalesOfVesperia.png -------------------------------------------------------------------------------- /.local/share/scripts/ffmpeggif: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | ffmpeg -i $1 -vf scale=460:-1 -r 10 -f image2pipe -vcodec ppm - | convert -delay 5 -loop 0 - $2 4 | -------------------------------------------------------------------------------- /.config/jack/start.sh: -------------------------------------------------------------------------------- 1 | a2jmidid -e & disown 2 | pactl load-module module-jack-source & disown 3 | pactl load-module module-jack-sink channels=2 & disown 4 | -------------------------------------------------------------------------------- /.local/share/backgrounds/ChapelxCherryBlossoms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.local/share/backgrounds/ChapelxCherryBlossoms.jpg -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-lsp-installer/init.lua: -------------------------------------------------------------------------------- 1 | -- require("nvim-lsp-installer").setup({ 2 | -- --automatic_installation = true, 3 | -- }) 4 | -------------------------------------------------------------------------------- /.config/nvim/snippets/markdown.snippets: -------------------------------------------------------------------------------- 1 | snippet q 2 | [[questions]] $0 3 | snippet b 4 | [bible:$1 $2]($1) $0 5 | snippet [ 6 | [${1:text}](${2:address}) 7 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/css.snippets: -------------------------------------------------------------------------------- 1 | snippet mqw "Media Query Width" 2 | @media(min-width: 768px) { 3 | .textBlob { 4 | width: 34vw; 5 | } 6 | } 7 | endsnippet 8 | -------------------------------------------------------------------------------- /.local/share/scripts/adb-dynamic-link: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | adb shell am start -a android.intent.action.VIEW \ 3 | -c android.intent.category.BROWSABLE \ 4 | -d "$1" 5 | -------------------------------------------------------------------------------- /flameshot.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | contrastOpacity=188 3 | drawColor=#fff263 4 | drawThickness=21 5 | saveLastRegion=true 6 | savePath=/home/joshu 7 | useJpgForClipboard=true 8 | -------------------------------------------------------------------------------- /.config/ranger/rc.conf: -------------------------------------------------------------------------------- 1 | set preview_images true 2 | default_linemode devicons 3 | set save_tabs_on_exit true 4 | 5 | map shell dragon-drag-and-drop -a -x %p --and-exit 6 | -------------------------------------------------------------------------------- /.local/share/scripts/ffmpegmp4: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | #ffmpeg -i $1 -vcodec h264 -acodec aac $2 3 | ffmpeg -i $1 -c:v libx264 -c:a aac -vf format=yuv420p -movflags +faststart $2 4 | -------------------------------------------------------------------------------- /.config/nvim/after/syntax/chord.vim: -------------------------------------------------------------------------------- 1 | " Music Chord Highlighting 2 | syn match Chord "[A-G][#b]\{0,1\}[m|M|maj|min]\{0,3\}[0-9]\{0,1\}\>" 3 | 4 | hi def link Chord SpecialComment 5 | -------------------------------------------------------------------------------- /.config/ranger/plugins/__pycache__/__init__.cpython-39.opt-1.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/ranger/plugins/__pycache__/__init__.cpython-39.opt-1.pyc -------------------------------------------------------------------------------- /.local/share/scripts/toggle-stalone: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | pgrep stalonetray 4 | if pgrep stalonetray ; then 5 | pkill stalonetray 6 | else 7 | stalonetray 8 | fi 9 | -------------------------------------------------------------------------------- /.config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/joshpetit/dotfiles/HEAD/.config/ranger/plugins/__pycache__/__init__.cpython-310.opt-1.pyc -------------------------------------------------------------------------------- /crontab: -------------------------------------------------------------------------------- 1 | */5 * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) ~/.local/share/scripts/battery-check 2 | */1 * * * * XDG_RUNTIME_DIR=/run/user/$(id -u) ~/.local/share/scripts/org-check-time 3 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | rofi -no-config -no-lazy-grab -show drun -modi drun -theme ~/.config/polybar/material/scripts/rofi/launcher.rasi 4 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/typescript.snippets: -------------------------------------------------------------------------------- 1 | snippet ts 2 | test('$1', () => { 3 | expect(3).toBe(3); 4 | }); 5 | endsnippet 6 | 7 | snippet exp 8 | expect(3).toBe(3); 9 | endsnippet 10 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/mini-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("mini.bracketed").setup({ 2 | oldfile = { suffix = "f", options = {} }, 3 | comment = { suffix = '', options = {} }, 4 | }) 5 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/typescript-tools-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local on_attach = require('mystuff/on_attach_conf') 2 | 3 | require("typescript-tools").setup ({ 4 | on_attach = on_attach 5 | }) 6 | -------------------------------------------------------------------------------- /.local/share/scripts/vol: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | pactl set-sink-volume @DEFAULT_SINK@ "${1:-+0}%" && notify-send "Volume:" $(pamixer --get-volume) -h string:x-canonical-private-synchronous:volume-change 4 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/fugitive.lua: -------------------------------------------------------------------------------- 1 | 2 | local m = require('mystuff/mapping_utils') 3 | 4 | m.nmap('q', [[q]], 5 | {buffer = true}) 6 | m.nmap('', [[=]], 7 | {buffer = true}) 8 | 9 | 10 | -------------------------------------------------------------------------------- /.config/nvim/snippets/lua.snippets: -------------------------------------------------------------------------------- 1 | snippet lol i 2 | local m = require("mystuff/mapping_utils") 3 | m.nmap("$1", "$2") 4 | snippet use i 5 | use("$1") 6 | snippet useh i 7 | use_help({ "$1" }, true) 8 | -------------------------------------------------------------------------------- /.config/ranger/open-tui: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | tool=$1 3 | loc="$2" 4 | loc=${loc#"file://"} 5 | 6 | if [[ ! -e $loc ]]; then 7 | loc=$(dirname "$loc") 8 | fi 9 | 10 | i3-msg exec 'alacrity -e '$tool' "'$loc'"' 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .config/nvim/plugin/packer_compiled.lua 2 | /.config/obs-studio/logs/* 3 | node_modules 4 | /.config/obs-studio/basic/scenes 5 | /.config/obs-studio/plugin_config 6 | /.config/nvim/lua/mystuff/amazon_hide.lua 7 | -------------------------------------------------------------------------------- /.config/obs-studio/plugin_config/rtmp-services/package.json: -------------------------------------------------------------------------------- 1 | {"$schema":"schema/package-schema.json","url":"https://obsproject.com/obs2_update/rtmp-services","version":201,"files":[{"name":"services.json","version":201}]} 2 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/colors.rasi: -------------------------------------------------------------------------------- 1 | /* colors */ 2 | 3 | * { 4 | al: #00000000; 5 | bg: #1F1F1FFF; 6 | bga: #7f87bd; 7 | bar: #1F1F1FFF; 8 | fg: #FFFFFFFF; 9 | ac: #888888; 10 | } 11 | -------------------------------------------------------------------------------- /.emacs.d/history: -------------------------------------------------------------------------------- 1 | ;; -*- mode: emacs-lisp; coding: utf-8-unix -*- 2 | ;; Minibuffer history file, automatically generated by ‘savehist’. 3 | 4 | (setq savehist-minibuffer-history-variables 'nil) 5 | (setq evil-jumps-history 'nil) 6 | -------------------------------------------------------------------------------- /.local/share/scripts/connecttablet: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if [ -z "$1" ]; 4 | then 5 | MONITOR="DP-0.2" 6 | else 7 | MONITOR="DP-0.3" 8 | fi 9 | id=$(xinput | grep -oP "S Pen Pen.*\s*id=\K\d+") 10 | 11 | xinput map-to-output $id $MONITOR 12 | -------------------------------------------------------------------------------- /.local/share/scripts/music-bar: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | playing=$(playerctl status) 4 | if [ $playing = "Playing" ] 5 | then 6 | icon="" 7 | else 8 | icon="" 9 | fi 10 | 11 | playerctl metadata -f "$icon {{xesam:title}} ({{xesam:artist}})" 2>&1 12 | -------------------------------------------------------------------------------- /.local/share/scripts/fehbg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #feh --no-fehbg --bg-scale "$HOME/.local/share/backgrounds/yuriTalesOfVesperia.png" 3 | #feh --no-fehbg --bg-scale "$HOME/.local/share/backgrounds/544f57.png" 4 | feh --no-fehbg --bg-scale "$HOME/.local/share/backgrounds/leaf.png" 5 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-snippy/init.lua: -------------------------------------------------------------------------------- 1 | local snippy = require("snippy") 2 | snippy.setup({ 3 | mappings = { 4 | is = { [""] = "expand_or_advance", [""] = "previous" }, 5 | nx = { ["x"] = "cut_text" }, 6 | }, 7 | }) 8 | 9 | -------------------------------------------------------------------------------- /.local/share/scripts/toggle_notifications: -------------------------------------------------------------------------------- 1 | #/bin/sh 2 | paused=$(dunstctl is-paused) 3 | echo $paused 4 | 5 | if [ $paused == "false" ]; then 6 | dunstctl set-paused true && polybar-msg hook dunst 2 7 | else 8 | dunstctl set-paused false && polybar-msg hook dunst 1 9 | fi 10 | -------------------------------------------------------------------------------- /.local/share/scripts/toggle-conky: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | 4 | pgrep conky 5 | if pgrep conky ; then 6 | pkill conky 7 | else 8 | if [[ $* == *--raise* ]] then 9 | conky -d 10 | xdo raise -N Conky 11 | else 12 | conky -d --xinerama-head=4 13 | fi 14 | fi 15 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/jproperties.snippets: -------------------------------------------------------------------------------- 1 | snippet jl 2 | org.gradle.java.home=/usr/lib/jvm/liberica-jdk-full/ 3 | endsnippet 4 | snippet j11 5 | org.gradle.java.home=/usr/lib/jvm/java-11-openjdk/ 6 | endsnippet 7 | snippet j16 8 | org.gradle.java.home=/usr/lib/jvm/java-16-openjdk/ 9 | endsnippet 10 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/scheme.lua: -------------------------------------------------------------------------------- 1 | local m = require('mystuff/mapping_utils') 2 | vim.cmd([[ 3 | vmap rs :w !racket 4 | nmap rf :!racket % 5 | nmap rl :exe "ReplSend" "(load \"" ..expand("%").."\")" 6 | :set filetype=racket 7 | ]]) 8 | 9 | 10 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/vim-rest-console/init.lua: -------------------------------------------------------------------------------- 1 | vim.cmd([[ 2 | let g:vrc_trigger= 'r' 3 | " let g:vrc_show_command_in_quickfix = 0 4 | " let g:vrc_show_command_in_result_buffer = 1 5 | " let g:vrc_debug = 1 6 | let g:vrc_auto_format_response_enabled = 1 7 | let b:vrc_response_default_content_type = 'application/json' 8 | ]]) 9 | -------------------------------------------------------------------------------- /.config/nvim/lua/my_px/helpers.lua: -------------------------------------------------------------------------------- 1 | local ts_utils = require("nvim-treesitter.ts_utils") 2 | 3 | local M = {} 4 | M.get_node_text = function(node) 5 | return vim.treesitter.get_node_text(node, vim.api.nvim_get_current_buf()) 6 | end 7 | 8 | M.get_winr = vim.api.nvim_get_current_win 9 | M.get_current_node = ts_utils.get_node_at_cursor 10 | 11 | return M 12 | -------------------------------------------------------------------------------- /.yabairc: -------------------------------------------------------------------------------- 1 | yabai -m config debug_output on 2 | 3 | yabai -m config top_padding 10 4 | yabai -m config bottom_padding 10 5 | yabai -m config left_padding 10 6 | yabai -m config right_padding 10 7 | yabai -m config window_gap 10 8 | 9 | yabai -m config mouse_modifier ctrl 10 | yabai -m config mouse_action1 move 11 | yabai -m config mouse_action2 resize 12 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/java.snippets: -------------------------------------------------------------------------------- 1 | snippet jfx 2 | package $1; 3 | 4 | import javafx.application.Application; 5 | import javafx.stage.Stage; 6 | 7 | public class Main extends Application { 8 | 9 | public static void main(String[] args) { 10 | launch(); 11 | } 12 | 13 | @Override 14 | public void start(Stage stage) { 15 | 16 | } 17 | } 18 | endsnippet 19 | -------------------------------------------------------------------------------- /.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- TODO create pcall wrapper to do error handling and let other things be 2 | -- sourced 3 | require("mystuff/utils") 4 | 5 | vim.opt.termguicolors = true 6 | Jcall(require, "mystuff/plugins") 7 | Jcall(require, "mystuff/settings") 8 | Jcall(require, "mystuff/mappings") 9 | 10 | if IsModuleAvailable('work') then 11 | Jcall(require, "work") 12 | end 13 | -------------------------------------------------------------------------------- /.local/share/scripts/battery-check: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | BATPATH=/sys/class/power_supply/BAT0 3 | BAT_FULL=$BATPATH/energy_full 4 | BAT_NOW=$BATPATH/energy_now 5 | bf=$(cat $BAT_FULL) 6 | bn=$(cat $BAT_NOW) 7 | perc=$(( 100 * $bn / $bf )) 8 | if [ $perc -lt 15 ] 9 | then 10 | conky -c ~/.config/conky/low-battery.conf -d 11 | xdo raise -N conky_battery 12 | sleep 5 13 | pkill conky 14 | fi 15 | -------------------------------------------------------------------------------- /.config/nvim/coc-settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "suggest.autoTrigger": "none", 3 | "java.home": "/usr/lib/jvm/liberica-jdk-full/", 4 | "python.pythonPath": "/bin/python", 5 | "flutter.trace.server": "verbose", 6 | "translator.toLang": "ht", 7 | "languageserver": { 8 | "racket": { 9 | "command": "racket", 10 | "args": ["--lib", "racket-langserver"], 11 | "filetypes": ["scheme"] 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-dap-ui/init.lua: -------------------------------------------------------------------------------- 1 | require("dapui").setup() 2 | 3 | require("cmp").setup({ 4 | enabled = function() 5 | return vim.api.nvim_buf_get_option(0, "buftype") ~= "prompt" or require("cmp_dap").is_dap_buffer() 6 | end, 7 | }) 8 | 9 | require("cmp").setup.filetype({ "dap-repl", "dapui_watches", "dapui_hover" }, { 10 | sources = { 11 | { name = "dap" }, 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /.config/rofi/things.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Bluetooth", 4 | "command": "rofi-bluetooth" 5 | }, 6 | { 7 | "name": "Sound Mxer", 8 | "command": "rofi-sound-mixer" 9 | }, 10 | { 11 | "name": "Copy Zoom Link", 12 | "command": "copytext 'https://duke.zoom.us/j/7576329220'" 13 | }, 14 | { 15 | "name": "Copy Zerotier IP", 16 | "command": "copytext '10.147.17.100'" 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /.config/polybar/material/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Add this script to your wm startup file. 4 | 5 | DIR="$HOME/.config/polybar/material" 6 | 7 | # Terminate already running bar instances 8 | killall -q polybar 9 | 10 | # Wait until the processes have been shut down 11 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 12 | 13 | # Launch the bar 14 | polybar --reload -q main -c "$DIR"/config.ini & 15 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/option_utils.lua: -------------------------------------------------------------------------------- 1 | M = {} 2 | 3 | M.set_option = function(option, value) 4 | vim.api.nvim_set_option(option, value) 5 | end 6 | 7 | M.set_buf_option = function(option, value) 8 | vim.api.nvim_buf_set_option(vim.api.nvim_get_current_buf(), option, value) 9 | end 10 | 11 | -- Add a g:var variable 12 | M.set_g = function(option, value) 13 | vim.api.nvim_set_var(option, value) 14 | end 15 | return M; 16 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/rmd.lua: -------------------------------------------------------------------------------- 1 | local o = require("mystuff/option_utils") 2 | 3 | vim.cmd([[ 4 | autocmd VimLeave * if exists("g:SendCmdToR") && string(g:SendCmdToR) != "function('SendCmdToR_fake')" | call RQuit("save") | endif 5 | let R_csv_delim = ',' 6 | ]]) 7 | 8 | vim.keymap.set("n", "gte", function() 9 | vim.cmd([[vim /^\#\+ / %]]) 10 | require("telescope.builtin").quickfix({}) 11 | end) 12 | 13 | o.set_buf_option("textwidth", 80) 14 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/dressing-nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("dressing").setup({ 2 | select = { 3 | --backend = {"builtin"} 4 | get_config = function(opts) 5 | if opts.backend ~= nil then 6 | return { 7 | backend = opts.backend, 8 | } 9 | end 10 | return nil 11 | end, 12 | }, 13 | input = { 14 | override = function(conf) 15 | conf.col = -1 16 | conf.row = 0 17 | return conf 18 | end, 19 | }, 20 | }) 21 | -------------------------------------------------------------------------------- /.config/yabai/yabairc: -------------------------------------------------------------------------------- 1 | yabai -m config layout bsp 2 | 3 | yabai -m config debug_output on 4 | 5 | yabai -m config top_padding 10 6 | yabai -m config bottom_padding 10 7 | yabai -m config left_padding 10 8 | yabai -m config right_padding 10 9 | yabai -m config window_gap 10 10 | 11 | yabai -m config mouse_modifier ctrl 12 | yabai -m config mouse_action1 move 13 | yabai -m config mouse_action2 resize 14 | yabai -m config mouse_follows_focus on 15 | -------------------------------------------------------------------------------- /.config/polybar/material/preview.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | DIR="$HOME/.config/polybar/material" 4 | 5 | # Terminate already running bar instances 6 | killall -q polybar 7 | 8 | # Wait until the processes have been shut down 9 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 10 | 11 | # Launch the preview bar 12 | polybar -q top -c "$DIR"/preview.ini & 13 | polybar -q mid -c "$DIR"/preview.ini & 14 | polybar -q bottom -c "$DIR"/preview.ini & 15 | -------------------------------------------------------------------------------- /.local/share/scripts/streampulse: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | case "$1" in 3 | start) 4 | $0 stop 5 | pactl load-module module-simple-protocol-tcp rate=48000 format=s16le channels=2 source="alsa_output.usb-Bose_Corporation_Bose_USB_Audio-00.analog-surround-41.monitor" record=true port=8000 6 | ;; 7 | stop) 8 | pactl unload-module `pactl list | grep tcp -B1 | grep M | sed 's/[^0-9]//g'` 9 | ;; 10 | *) 11 | echo "Usage: $0 start|stop" >&2 12 | ;; 13 | esac 14 | -------------------------------------------------------------------------------- /.local/share/scripts/mvln: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | while [ $# -gt 1 ]; do 3 | eval "target=\${$#}" 4 | original="$1" 5 | if [ -d "$target" ]; then 6 | target="$target/${original##*/}" 7 | fi 8 | mv -- "$original" "$target" 9 | case "$original" in 10 | */*) 11 | case "$target" in 12 | /*) :;; 13 | *) target="$(cd -- "$(dirname -- "$target")" && pwd)/${target##*/}" 14 | esac 15 | esac 16 | ln -s -- "$target" "$original" 17 | shift 18 | done 19 | -------------------------------------------------------------------------------- /.local/share/scripts/print-agenda: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | today=$(date +"%Y-%m-%d") 3 | if [[ $1 = "--new-instance" ]] 4 | then 5 | emacs -batch -l ~/.emacs.d/init.el -eval "(org-batch-store-agenda-views \ 6 | org-agenda-span (quote day) \ 7 | org-agenda-start-day \"$today\")" --kill > /dev/null 8 | 9 | else 10 | emacsclient -eval "(org-batch-store-agenda-views \ 11 | org-agenda-span (quote day) \ 12 | org-agenda-start-day \"$today\")" > /dev/null 13 | fi 14 | cat ~/agenda 15 | -------------------------------------------------------------------------------- /.local/share/scripts/rofi-sound-mixer: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # TODO, make custom shortcuts 1-9 and 0 increment the volume to that specific 3 | # number, make alt+m mute/unmute and then make sure + and - are still usable 4 | # Likely say something like "muted" at the end if muted 5 | rofi -theme-str 'window { width: 840; }' -kb-custom-17 "Alt+m" -kb-custom-18 "minus,underscore" -kb-custom-19 "plus,equal" -show rofi-sound-mixer -modi "rofi-sound-mixer:sound-mixer,rofi-sound-mixer-mic:sound-mixer-microphone" "$@" 6 | -------------------------------------------------------------------------------- /root/etc/acpi/low-battery.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # low battery warning 4 | # 5 | 6 | # BATTERY=/sys/class/power_supply/BAT0 7 | # 8 | # REM=`grep "POWER_SUPPLY_CHARGE_NOW" $BATTERY/uevent | awk -F= '{ print $2 }'` 9 | # FULL=`grep "POWER_SUPPLY_CHARGE_FULL_DESIGN" $BATTERY/uevent | awk -F= '{ print $2 }'` 10 | # PERCENT=`echo $(( $REM * 100 / $FULL ))` 11 | # 12 | # if [ $PERCENT -le "82" ]; then 13 | # logger "low battery" 14 | # /usr/bin/notify-send -m "Low battery" 15 | # else 16 | # logger "WE ALL GOOD!" 17 | # fi 18 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/typescript.lua: -------------------------------------------------------------------------------- 1 | local m = require("mystuff/mapping_utils") 2 | m.nmap("da", 'lua require("mystuff/debug").node()', { buffer = true }) 3 | 4 | vim.keymap.set("n", "rf", function() 5 | RunAndOutput("!tsx %") 6 | 7 | end) 8 | -- m.nmap('t', 'call GoToTestFile(expand(' % '))', {buffer = true}) 9 | 10 | -- fu! GoToTestFile(file) 11 | -- "test/{file_path_rel_lib_without_extension}_test.dart 12 | -- let s:file = 'test'.. a:file[3:-4] .. '.test.ts' 13 | -- exe ':split ' s:file 14 | -- endfunction 15 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/svelte.lua: -------------------------------------------------------------------------------- 1 | local actions = require("my_px.svelte") 2 | vim.b.match_words = 3 | [[,<:>,<\@<=[ou]l\>[^>]*\%(>\|$\):<\@<=li\>:<\@<=/[ou]l>,<\@<=dl\>[^>]*\%(>\|$\):<\@<=d[td]\>:<\@<=/dl>,<\@<=\([^/!][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\([^/!][^ \t>]*\)>,(:),{:},\[:\],<:>,\/\*:\*\/,#\s*if\%(n\=def\)\=:#\s*else\>:#\s*elif\>:#\s*endif\>]] 4 | 5 | vim.keymap.set("n", "%", function() 6 | local successful = pcall(actions.jump_to_other_tag) 7 | if not successful then 8 | print('you suck') 9 | vim.cmd("normal! %") 10 | end 11 | end) 12 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/confirm.rasi: -------------------------------------------------------------------------------- 1 | /* Confirm Dialog */ 2 | 3 | @import "colors.rasi" 4 | 5 | * { 6 | background-color: @bg; 7 | text-color: @fg; 8 | font: "Fantasque Sans Mono 10"; 9 | } 10 | 11 | window { 12 | width: 225px; 13 | padding: 25px; 14 | border: 1px; 15 | border-radius: 0px; 16 | border-color: @ac; 17 | location: center; 18 | y-offset: -2em; 19 | } 20 | 21 | entry { 22 | expand: true; 23 | text-color: @ac; 24 | } 25 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/message.rasi: -------------------------------------------------------------------------------- 1 | /* Confirm Dialog */ 2 | 3 | @import "colors.rasi" 4 | 5 | * { 6 | background-color: @bg; 7 | text-color: @fg; 8 | font: "Fantasque Sans Mono 10"; 9 | } 10 | 11 | window { 12 | width: 320px; 13 | padding: 25px; 14 | border: 1px; 15 | border-radius: 0px; 16 | border-color: @ac; 17 | location: center; 18 | y-offset: -2em; 19 | } 20 | 21 | entry { 22 | expand: true; 23 | text-color: @ac; 24 | } 25 | -------------------------------------------------------------------------------- /.emacs.d/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *~ 3 | *.*~ 4 | \#* 5 | .\#* 6 | .local/ 7 | .extension/ 8 | *.cache* 9 | *.log 10 | /modules/private 11 | test/.local*/ 12 | test/result 13 | 14 | # emacs tempfiles that shouldn't be there 15 | .dap-breakpoints 16 | .org-id-locations 17 | .tern-port 18 | .yas-compiled-snippets.el 19 | auto-save-list/ 20 | cask/ 21 | ede-projects.el 22 | elpa/ 23 | eln-cache/ 24 | network-security.data 25 | places 26 | semanticdb 27 | server/ 28 | smex-items 29 | tramp 30 | transient/ 31 | var/ 32 | 33 | # compiled files 34 | *.elc 35 | *.lib 36 | *.fas 37 | *.dat 38 | *.eld 39 | -------------------------------------------------------------------------------- /.local/share/scripts/togglebluetooth: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | PIXEL_ADD="60:B7:6E:30:72:42" 3 | 4 | HEADPHONES_ADD="74:45:CE:46:CD:31" 5 | 6 | BLUETOOTH_DEVICE="74:45:CE:46:CD:31" 7 | 8 | if [[ $1 ]]; then 9 | case $1 in 10 | pixel) BLUETOOTH_DEVICE=$PIXEL_ADD;; 11 | whc) BLUETOOTH_DEVICE=$HEADPHONES_ADD;; 12 | *) echo 'WHATTTT IS THAT???'; exit 1; 13 | esac 14 | fi 15 | 16 | STATUS=$(bluetoothctl info $BLUETOOTH_DEVICE | grep Connected | cut -d ' ' -f2) 17 | 18 | if [[ $STATUS == "yes" ]]; then 19 | bluetoothctl disconnect $BLUETOOTH_DEVICE 20 | else 21 | bluetoothctl connect $BLUETOOTH_DEVICE 22 | fi 23 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/typescriptreact.snippets: -------------------------------------------------------------------------------- 1 | extends typescript 2 | snippet nc 3 | const $1: NextPage = () => { 4 | return ( 5 |
6 |
7 | ); 8 | } 9 | 10 | export default $1; 11 | endsnippet 12 | 13 | snippet rcp 14 | interface $1Props { 15 | $0 16 | } 17 | 18 | const $1: React.FC<$1Props> = ({}) => ( 19 |
20 |
21 | ); 22 | export default $1; 23 | endsnippet 24 | 25 | snippet rc 26 | const $1: React.FC = () => ( 27 |
28 |
29 | ); 30 | endsnippet 31 | 32 | snippet tst 33 | test('Something', () => { 34 | expect().toBe(); 35 | }); 36 | endsnippet 37 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/flutter-tools-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local capabilities = require("cmp_nvim_lsp").default_capabilities() 2 | local on_attach = require("mystuff/on_attach_conf") 3 | 4 | require("flutter-tools").setup({ 5 | lsp = { 6 | on_attach = on_attach, 7 | capabilities = capabilities, 8 | --- OR you can specify a function to deactivate or change or control how the config is created 9 | settings = { showTodos = true, completeFunctionCalls = true }, 10 | }, 11 | debugger = { 12 | enabled = true, 13 | run_via_dap = true, 14 | register_configurations = function() end, 15 | }, 16 | }) 17 | -------------------------------------------------------------------------------- /.config/yarn/global/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "@geekjuice/verse": "^2.2.0", 4 | "create-next-app": "^13.4.4", 5 | "create-playwright": "^1.17.123", 6 | "create-react-app": "^5.0.1", 7 | "create-solid": "^0.2.5", 8 | "create-svelte": "^4.2.0", 9 | "esbuild": "^0.14.54", 10 | "esbuild-runner": "^2.2.1", 11 | "eslint": "^8.24.0", 12 | "faker-cli": "^2.0.0", 13 | "firebase-tools": "^13.5.2", 14 | "gatsby": "^5.8.1", 15 | "kill-port": "^2.0.1", 16 | "prettier-plugin-latex": "^1.2.4", 17 | "tsx": "^3.12.1", 18 | "vercel": "^34.2.0" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /.config/nvim/data/creole.txt: -------------------------------------------------------------------------------- 1 | machin 2 | ankò 3 | souvan 4 | tandiske 5 | semèn 6 | wikenn 7 | ane 8 | minit 9 | ayè 10 | ansent 11 | pèdi 12 | konesans 13 | pwofesè 14 | bliye 15 | youn 16 | de 17 | twa 18 | kat 19 | senk 20 | sis 21 | sèt 22 | sis 23 | uit 24 | nèf 25 | dis 26 | onz 27 | douz 28 | trèz 29 | katòz 30 | kenz 31 | sèz 32 | disèt 33 | dizuit 34 | diznèf 35 | ven 36 | trant 37 | karant 38 | senkant 39 | swasann 40 | swanndis 41 | katreven 42 | katrevndis 43 | san 44 | nouvèl 45 | sipoze 46 | janvye 47 | fevreye 48 | mas 49 | avril 50 | me 51 | jen 52 | jiyè 53 | out 54 | septanm 55 | oktòb 56 | novanm 57 | desanm 58 | -------------------------------------------------------------------------------- /.local/share/scripts/generate_proxy: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | if [[ ! -d ./Proxy ]]; then 4 | mkdir -p Proxy 5 | fi 6 | 7 | while [[ ${#@} -gt 0 ]]; do 8 | video="${1}" 9 | shift 10 | startTimecode="$(ffprobe -show_streams -of json "${video}" \ 11 | | jq -r '.streams[] | select(.tags.timecode).tags.timecode')" 12 | ffmpeg \ 13 | -loglevel fatal \ 14 | -i "${video}" \ 15 | -c:v cfhd \ 16 | -c:a copy \ 17 | -c:d copy \ 18 | -timecode ${startTimecode} \ 19 | -copy_unknown \ 20 | -s 1920x1080 \ 21 | "Proxy/${video}" 22 | done 23 | -------------------------------------------------------------------------------- /.local/share/scripts/org-clock-polybar: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | emacs_run () { 4 | echo $(emacsclient --eval "$1" 2> ~/.org-clock-polybar-err) 5 | } 6 | 7 | clocked_in=$(emacs_run '(org-clock-is-active)') 8 | icon="祥 " 9 | if [ "$clocked_in" = "nil" ] 10 | then 11 | icon=" " 12 | fi 13 | 14 | headline_time=$(emacs_run '(format "(%s) %s" (org-minutes-to-clocksum-string (org-clock-get-clocked-time)) org-clock-heading)') 15 | headline_time=$(echo ${headline_time:1:-1}) 16 | 17 | if [ "$headline_time" = "" ] 18 | then 19 | headline_time="Nothing Clocked In" 20 | icon="" 21 | fi 22 | 23 | echo "$icon$headline_time" 24 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/neotest/init.lua: -------------------------------------------------------------------------------- 1 | require('neotest').setup({ 2 | adapters = { 3 | require('neotest-jest')({ 4 | jestCommand = "yarn test --" 5 | }), 6 | require('neotest-dart') { 7 | command = 'flutter', -- Command being used to run tests. Defaults to `flutter` 8 | -- Change it to `fvm flutter` if using FVM 9 | -- change it to `dart` for Dart only tests 10 | use_lsp = true -- When set Flutter outline information is used when constructing test name. 11 | }, 12 | }, 13 | }) 14 | -------------------------------------------------------------------------------- /.local/share/scripts/org-timer-polybar: -------------------------------------------------------------------------------- 1 | #!/bin/env sh 2 | 3 | emacs_run () { 4 | echo $(emacsclient --eval "$1" 2> ~/.org-clock-polybar-err) 5 | } 6 | 7 | # This causes some error so... none for now. 8 | #timer_started=$(emacs_run 'org-timer-start-time') 9 | #paused_time=$(emacs_run 'org-timer-pause-time') 10 | icon="祥 " 11 | if [ "$timer_started" = "nil" ] || [ "$paused_time" != "nil" ] 12 | then 13 | icon=" " 14 | fi 15 | 16 | headline_time=$(emacs_run '(org-timer-value-string)' | sed 's/"//g') 17 | #ok=$(emacs_run '(format "%s" org-timer-countdown-timer-title)' | grep -o '".*"' | sed 's/"//g') 18 | #echo $ok 19 | 20 | echo "$icon$headline_time" 21 | -------------------------------------------------------------------------------- /.config/obs-studio/basic/profiles/Untitled/basic.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | Name=Untitled 3 | 4 | [Video] 5 | BaseCX=1920 6 | BaseCY=1080 7 | OutputCX=1920 8 | OutputCY=1080 9 | FPSType=0 10 | FPSCommon=60 11 | 12 | [Panels] 13 | CookieId=9DEB5C892ABE9D56 14 | 15 | [SimpleOutput] 16 | RecEncoder=nvenc 17 | RecQuality=Small 18 | FilePath=/home/joshu 19 | RecFormat=mp4 20 | RecFormat2=mp4 21 | 22 | [Output] 23 | Mode=Simple 24 | 25 | [AdvOut] 26 | TrackIndex=1 27 | RecType=Standard 28 | RecTracks=1 29 | FLVTrack=1 30 | FFOutputToFile=true 31 | FFFormat= 32 | FFFormatMimeType= 33 | FFVEncoderId=0 34 | FFVEncoder= 35 | FFAEncoderId=0 36 | FFAEncoder= 37 | FFAudioMixes=1 38 | VodTrackIndex=2 39 | RecSplitFileType=Time 40 | -------------------------------------------------------------------------------- /.config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | [colors.bright] 2 | black = "#555753" 3 | blue = "#27AE60" 4 | cyan = "#2ECC71" 5 | green = "#8ae234" 6 | magenta = "#ad7fa8" 7 | red = "#ef2929" 8 | white = "#eeeeec" 9 | yellow = "#fce94f" 10 | 11 | [colors.normal] 12 | black = "#2e3436" 13 | blue = "#27AE60" 14 | cyan = "#8FCC91" 15 | green = "#d0ddff" 16 | magenta = "#75507b" 17 | red = "#cc0000" 18 | white = "#d3d7cf" 19 | yellow = "#c4a000" 20 | 21 | [colors.primary] 22 | background = "#2C3E50" 23 | foreground = "#dedede" 24 | 25 | [font] 26 | size = 9 27 | 28 | [font.normal] 29 | # family = "InconsolataGo Nerd Font" 30 | 31 | [[keyboard.bindings]] 32 | action = "SpawnNewInstance" 33 | key = "Return" 34 | mods = "Control|Shift" 35 | -------------------------------------------------------------------------------- /.config/polybar/theos/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | # Add this script to your wm startup file. 4 | 5 | DIR="$HOME/.config/polybar/theos" 6 | 7 | # Terminate already running bar instances 8 | killall -q polybar 9 | 10 | # Wait until the processes have been shut down 11 | #while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 12 | 13 | # Launch the bar 14 | polybar --reload -q workspaces -c "$DIR"/config.ini & disown 15 | polybar --reload -q sysinfo -c "$DIR"/config.ini & disown 16 | polybar --reload -q org-timer-bar -c "$DIR"/config.ini & disown 17 | polybar --reload -q org-real-timer-bar -c "$DIR"/config.ini & disown 18 | polybar --reload -q music-bar -c "$DIR"/config.ini & disown 19 | xdo raise -N Polybar 20 | 21 | polybar-msg cmd hide 22 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/obsidian-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local settings = require("mystuff.settings") 2 | 3 | require("obsidian").setup({ 4 | workspaces = { 5 | { 6 | name = "wiki", 7 | path = "~/sync/wiki", 8 | }, 9 | { 10 | name = "Controversia Prophetica", 11 | path = "~/sync/obsidian/Controversia Prophetica/", 12 | }, 13 | }, 14 | follow_url_func = function(url) 15 | vim.ui.open(url) 16 | end, 17 | completion = { 18 | nvim_cmp = false, 19 | -- Trigger completion at 2 chars. 20 | min_chars = 2, 21 | }, 22 | daily_notes = { 23 | folder = "dailies", 24 | }, 25 | ui = { 26 | checkboxes = { 27 | [" "] = { char = "☐", hl_group = "ObsidianTodo" }, 28 | }, 29 | }, 30 | -- see below for full list of options 👇 31 | }) 32 | -------------------------------------------------------------------------------- /.config/nvim/thing.svelte: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | Home 9 | 10 | 11 | 12 |
13 |

14 | 15 | 16 | 17 | Welcome 18 | 19 | 20 | 21 | to your new
SvelteKit app 22 |

23 | 24 |

25 | try editing src/routes/+page.svelte 26 |

27 | 28 | 29 |
30 | 31 | 32 | -------------------------------------------------------------------------------- /root/etc/acpi/laptop-lid.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | source /home/joshu/.Xdbus 3 | current=$(su -c 'DISPLAY=:0.0 autorandr --current' joshu) 4 | grep -q closed /proc/acpi/button/lid/LID/state 5 | # It is closed 6 | if [ $? == 0 ] 7 | then 8 | # close action 9 | if [ "$current" == "laptop" ] 10 | then 11 | echo "CLOSED LAPTOP WITH NO MONITORS" 12 | systemctl suspend 13 | fi 14 | if [ "$current" == "default" ] 15 | then 16 | echo "OPEND LAPTOP WITH MONITORS" 17 | #su -c 'DISPLAY=:0.0 autorandr --load monitors-only' joshu 18 | fi 19 | else 20 | if [ "$current" == "monitors-only" ] 21 | then 22 | echo "OPENED LAPTOP WITH MONITORS" 23 | #su -c 'DISPLAY=:0.0 autorandr --load swift-normal' joshu 24 | fi 25 | fi 26 | -------------------------------------------------------------------------------- /.config/nvim/lua/my_px/markdown.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | local ts_utils = require("nvim-treesitter.ts_utils") 3 | 4 | local get_link_text = function() 5 | local node = ts_utils.get_node_at_cursor() 6 | local link_text_node = ts_utils.get_named_children(node, "link_text")[1] 7 | if link_text_node == nil then 8 | return nil 9 | end 10 | 11 | local bufnr = vim.api.nvim_get_current_buf() 12 | local method_node = ts_utils.get_node_at_cursor() 13 | for id, node in method_query:iter_captures(method_node, bufnr, 0, -1) do 14 | local name = method_query.captures[id] 15 | -- P(varText) 16 | if name == "name" then 17 | local varText = vim.treesitter.get_node_text(node, bufnr) 18 | return varText 19 | end 20 | end 21 | return "" 22 | end 23 | 24 | M.get_link_text = get_link_text 25 | -------------------------------------------------------------------------------- /.config/kdeconnect/a7181952782b807a/kdeconnect_runcommand/config: -------------------------------------------------------------------------------- 1 | [General] 2 | commands="@ByteArray({\"_1761ef30_b121_47cc_9c7b_ee38c077d632_\":{\"command\":\"pkill i3lock\",\"name\":\"unlock\"},\"_360c1269_0f34_4aaa_b6d3_d43c83df8a67_\":{\"command\":\"sudo reboot\",\"name\":\"restart\"},\"_63aa7888_438d_48b6_8c67_a6af7f9eaaa3_\":{\"command\":\"bluetoothctl disconnect\",\"name\":\"disconnect bluetooth\"},\"_65561e01_ec22_4b97_938b_b810c5f398fc_\":{\"command\":\"sudo shutdown\",\"name\":\"shutdown\"},\"_75ec57fa_a72c_4e24_aff6_73094560d5b4_\":{\"command\":\"sudo systemctl suspend\",\"name\":\"suspend\"},\"_9c364615_6641_4b71_b426_739bbcea675e_\":{\"command\":\"~/.local/share/scripts/lockscreen\",\"name\":\"lockscreen\"},\"_bc93201c_72e0_4d3a_a206_7f8a834f6d3e_\":{\"command\":\"autorandr --change && redshift -P -O 4000\\n\",\"name\":\"autorandr\"}})" 3 | -------------------------------------------------------------------------------- /.config/kdeconnect/ea80738bc1dbfb65/kdeconnect_runcommand/config: -------------------------------------------------------------------------------- 1 | [General] 2 | commands="@ByteArray({\"_1761ef30_b121_47cc_9c7b_ee38c077d632_\":{\"command\":\"pkill i3lock\",\"name\":\"unlock\"},\"_360c1269_0f34_4aaa_b6d3_d43c83df8a67_\":{\"command\":\"sudo reboot\",\"name\":\"restart\"},\"_63aa7888_438d_48b6_8c67_a6af7f9eaaa3_\":{\"command\":\"bluetoothctl disconnect\",\"name\":\"disconnect bluetooth\"},\"_65561e01_ec22_4b97_938b_b810c5f398fc_\":{\"command\":\"sudo shutdown\",\"name\":\"shutdown\"},\"_75ec57fa_a72c_4e24_aff6_73094560d5b4_\":{\"command\":\"sudo systemctl suspend\",\"name\":\"suspend\"},\"_9c364615_6641_4b71_b426_739bbcea675e_\":{\"command\":\"~/.local/share/scripts/lockscreen\",\"name\":\"lockscreen\"},\"_bc93201c_72e0_4d3a_a206_7f8a834f6d3e_\":{\"command\":\"autorandr --change && redshift -P -O 4000\\n\",\"name\":\"autorandr\"}})" 3 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/workspaces-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | local last_workspace = "" 3 | local current_workspace = "" 4 | 5 | require("workspaces").setup({ 6 | auto_open = true, 7 | notify_info = false, 8 | hooks = { 9 | open_pre = { 10 | -- If recording, save current session state and stop recording 11 | "SessionsStop", 12 | 13 | -- delete all buffers (does not save changes) 14 | -- "silent %bdelete!", 15 | function(name, path, state) 16 | last_workspace = current_workspace 17 | current_workspace = name 18 | end, 19 | }, 20 | open = function() 21 | require("sessions").load(nil, { silent = true }) 22 | end, 23 | }, 24 | }) 25 | 26 | M.open_last_workspace = function() 27 | print("Opening: " .. last_workspace) 28 | require("workspaces").open(last_workspace) 29 | end 30 | 31 | return M 32 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/zk-nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- local on_attach = require("mystuff/on_attach_conf") 2 | -- require("zk").setup({ 3 | -- -- can be "telescope", "fzf", "fzf_lua", "minipick", or "select" (`vim.ui.select`) 4 | -- -- it's recommended to use "telescope", "fzf", "fzf_lua", or "minipick" 5 | -- picker = "telescope", 6 | -- 7 | -- lsp = { 8 | -- -- `config` is passed to `vim.lsp.start_client(config)` 9 | -- config = { 10 | -- cmd = { "zk", "lsp" }, 11 | -- name = "zk", 12 | -- -- on_attach = on_attach 13 | -- -- etc, see `:h vim.lsp.start_client()` 14 | -- }, 15 | -- 16 | -- -- automatically attach buffers in a zk notebook that match the given filetypes 17 | -- auto_attach = { 18 | -- enabled = true, 19 | -- filetypes = { "markdown" }, 20 | -- }, 21 | -- }, 22 | -- }) 23 | -------------------------------------------------------------------------------- /.config/nvim/thing.dart: -------------------------------------------------------------------------------- 1 | class DataClass { 2 | final String first; 3 | final String second; 4 | final Other third; 5 | final List newList; 6 | 7 | DataClass({ 8 | required this.first, 9 | required this.second, 10 | required this.third, 11 | }); 12 | 13 | DataClass.fromJson(Map json) 14 | : this( 15 | first: json('first'), 16 | second: json('second'), 17 | third: json('third'), 18 | ); 19 | 20 | DataClass.fromJson(Map json) 21 | : this( 22 | first: json('first'), 23 | second: json('second'), 24 | third: json('third'), 25 | newList: json('newList'), 26 | ); 27 | 28 | Map toJson() => { 29 | 30 | }; 31 | 32 | 33 | void doThing() { 34 | print("WHAT"); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /.config/polybar/material/colors.ini: -------------------------------------------------------------------------------- 1 | ;; ┌────────────────────────────────────────────────────────────┐ 2 | ;; │░█▀█░█▀█░█░░░█░█░█▀▄░█▀█░█▀▄░░░░░░░░░█▀▀░█▀█░█░░░█▀█░█▀▄░█▀▀│ 3 | ;; │░█▀▀░█░█░█░░░░█░░█▀▄░█▀█░█▀▄░░░░▀░░░░█░░░█░█░█░░░█░█░█▀▄░▀▀█│ 4 | ;; │░▀░░░▀▀▀░▀▀▀░░▀░░▀▀░░▀░▀░▀░▀░░░░▀░░░░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░▀▀▀│ 5 | ;; │░Created░By░Aditya░Shakya░@adi1090x░░░░░░░░░░░░░░░░░░░░░░░░░│ 6 | ;; └────────────────────────────────────────────────────────────┘ 7 | 8 | ;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 9 | 10 | [color] 11 | 12 | ;; Use pywal.sh in scripts directory to use colors from an image/wallpaper. 13 | 14 | ;; main colors 15 | background = #1F1F1F 16 | foreground = #FFFFFF 17 | foreground-alt = #8F8F8F 18 | module-fg = #1F1F1F 19 | primary = #7f87bd 20 | secondary = #E53935 21 | alternate = #8F8F8F 22 | 23 | ;; _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 24 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-dap-vscode-js/init.lua: -------------------------------------------------------------------------------- 1 | require("dap-vscode-js").setup({ 2 | -- node_path = "node", -- Path of node executable. Defaults to $NODE_PATH, and then "node" 3 | -- debugger_path = "(runtimedir)/site/pack/packer/opt/vscode-js-debug", -- Path to vscode-js-debug installation. 4 | -- debugger_cmd = { "js-debug-adapter" }, -- Command to use to launch the debug server. Takes precedence over `node_path` and `debugger_path`. 5 | adapters = { "pwa-node", "pwa-chrome", "pwa-msedge", "node-terminal", "pwa-extensionHost" }, -- which adapters to register in nvim-dap 6 | -- log_file_path = "(stdpath cache)/dap_vscode_js.log" -- Path for file logging 7 | -- log_file_level = false -- Logging level for output to file. Set to false to disable file logging. 8 | -- log_console_level = vim.log.levels.ERROR -- Logging level for output to console. Set to false to disable console output. 9 | }) 10 | -------------------------------------------------------------------------------- /.skhdrc: -------------------------------------------------------------------------------- 1 | ctrl - e : yabai -m space --layout bsp 2 | #ctrl - s : yabai -m space --layout stack 3 | 4 | ctrl - down : yabai -m window --focus stack.next || yabai -m window --focus south 5 | ctrl - up : yabai -m window --focus stack.prev || yabai -m window --focus north 6 | ctrl + alt - left : yabai -m window --focus west 7 | ctrl + alt - right : yabai -m window --focus east 8 | 9 | ctrl - 1 : yabai -m space --focus 1 10 | ctrl - 2 : yabai -m space --focus 2 11 | ctrl - 3 : yabai -m space --focus 3 12 | ctrl - 4 : yabai -m space --focus 4 13 | ctrl - 5 : yabai -m space --focus 5 14 | ctrl - 6 : yabai -m space --focus 6 15 | 16 | ctrl + shift - 1 : yabai -m window --space 1 17 | ctrl + shift - 2 : yabai -m window --space 2 18 | ctrl + shift - 3 : yabai -m window --space 3 19 | ctrl + shift - 4 : yabai -m window --space 4 20 | ctrl + shift - 5 : yabai -m window --space 5 21 | ctrl + shift - 6 : yabai -m window --space 6 22 | 23 | #ctrl - f : yabai -m window --toggle float 24 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/mapping_utils.lua: -------------------------------------------------------------------------------- 1 | M = {} 2 | 3 | 4 | local setMap = function(letter, keys, command, extraopts) 5 | extraopts = extraopts or {buffer = false}; 6 | if (not extraopts.buffer) then 7 | vim.api.nvim_set_keymap(letter, keys, command, {noremap = true, silent = true}) 8 | else 9 | local buff = vim.api.nvim_get_current_buf(); 10 | vim.api.nvim_buf_set_keymap(buff, letter, keys, command, {noremap = true, silent= true}) 11 | end 12 | end 13 | 14 | 15 | M.nmap = function(keys, command, opts) 16 | setMap('n', keys, command, opts); 17 | end 18 | 19 | M.cmap = function(keys, command, opts) 20 | setMap('c', keys, command, opts); 21 | end 22 | 23 | M.imap = function(keys, command, opts) 24 | setMap('i', keys, command, opts); 25 | end 26 | 27 | M.vmap = function(keys, command, opts) 28 | setMap('v', keys, command, opts); 29 | end 30 | 31 | M.xmap = function(keys, command, opts) 32 | setMap('x', keys, command, opts); 33 | end 34 | 35 | return M 36 | -------------------------------------------------------------------------------- /.config/conky/conky.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | alignment = 'top_left', 3 | background = false, 4 | default_color = 'FFFFFF', 5 | double_buffer = true, 6 | extra_newline = false, 7 | font = 'Inconsolata Nerd Font:size=15', 8 | gap_x = 100, 9 | gap_y = 80, 10 | radius = 24, 11 | minimum_height = 5, 12 | minimum_width = 5, 13 | no_buffers = true, 14 | out_to_console = false, 15 | out_to_ncurses = false, 16 | out_to_stderr = false, 17 | out_to_x = true, 18 | own_window = true, 19 | color0 = "#2C3E50", 20 | own_window_transparent = false, 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 255, 23 | own_window_class = 'Conky', 24 | stippled_borders = 0, 25 | update_interval = 1.0, 26 | uppercase = false, 27 | use_spacer = 'none', 28 | use_xft = true, 29 | own_window_type = 'override', 30 | own_window_colour = '#2C3E50', 31 | border_inner_margin = 50 32 | } 33 | 34 | conky.text = [[ 35 | ${execi 60 print-agenda} 36 | ]] 37 | -------------------------------------------------------------------------------- /.local/share/scripts/choose-json: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | user_file="$(eval echo ${1})" 4 | 5 | if [[ "$user_file" = /* ]] 6 | then 7 | config_file="$user_file" 8 | else 9 | cwd=$(dirname $0) 10 | config_file="${cwd}/${user_file}" 11 | fi 12 | 13 | json=$(cat ${config_file}) 14 | 15 | if [ $# -eq 1 ]; then 16 | echo $json | jq -cr '.[] | "\(.name)|\(.command)|"' | 17 | while IFS="|" read -r name command 18 | do 19 | if [[ $name == "null" ]]; then 20 | continue 21 | fi 22 | if [[ $icon == "null" ]]; then 23 | icon="system-run" 24 | fi 25 | echo "${name}" 26 | done 27 | exit 1 28 | fi 29 | 30 | if [ $# -eq 2 ]; then 31 | 32 | selected=$2 33 | task=$(echo $json | jq ".[] | select(.name == \"$selected\")") 34 | 35 | if [[ $task == "" ]]; then 36 | exit 1 37 | fi 38 | 39 | command=$(echo $task | jq -j ".command") 40 | 41 | if [[ $command == "null" ]]; then 42 | command=$(echo $task | jq -j ".name") 43 | fi 44 | 45 | bash -c "$command" 46 | exit 47 | 48 | fi 49 | -------------------------------------------------------------------------------- /.config/conky/file.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | alignment = 'bottom_right', 3 | background = false, 4 | default_color = 'FFFFFF', 5 | double_buffer = true, 6 | extra_newline = false, 7 | font = 'Inconsolata Nerd Font:size=20', 8 | gap_x = 100, 9 | gap_y = 80, 10 | radius = 24, 11 | minimum_height = 5, 12 | minimum_width = 5, 13 | no_buffers = true, 14 | out_to_console = false, 15 | out_to_ncurses = false, 16 | out_to_stderr = false, 17 | out_to_x = true, 18 | own_window = true, 19 | color0 = "#2C3E50", 20 | own_window_transparent = false, 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 255, 23 | own_window_class = 'conky_env', 24 | stippled_borders = 0, 25 | update_interval = 1.0, 26 | uppercase = false, 27 | use_spacer = 'none', 28 | use_xft = true, 29 | own_window_type = 'override', 30 | own_window_colour = '#2C3E50', 31 | border_inner_margin = 50 32 | } 33 | 34 | conky.text = [[ 35 | ${execi 1 cat "$CONKY_FILE"} 36 | ]] 37 | -------------------------------------------------------------------------------- /.config/conky/print-env.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | alignment = 'bottom_right', 3 | background = false, 4 | default_color = 'FFFFFF', 5 | double_buffer = true, 6 | extra_newline = false, 7 | font = 'Inconsolata Nerd Font:size=20', 8 | gap_x = 100, 9 | gap_y = 80, 10 | radius = 24, 11 | minimum_height = 5, 12 | minimum_width = 5, 13 | no_buffers = true, 14 | out_to_console = false, 15 | out_to_ncurses = false, 16 | out_to_stderr = false, 17 | out_to_x = true, 18 | own_window = true, 19 | color0 = "#2C3E50", 20 | own_window_transparent = false, 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 255, 23 | own_window_class = 'conky_env', 24 | stippled_borders = 0, 25 | update_interval = 1.0, 26 | uppercase = false, 27 | use_spacer = 'none', 28 | use_xft = true, 29 | own_window_type = 'override', 30 | own_window_colour = '#2C3E50', 31 | border_inner_margin = 50 32 | } 33 | 34 | conky.text = [[ 35 | ${execi 0 echo "$CONKY_ENV"} 36 | ]] 37 | -------------------------------------------------------------------------------- /.config/rofi/rofi-json-core: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | user_file="$(eval echo ${1})" 4 | 5 | if [[ "$user_file" = /* ]] 6 | then 7 | config_file="$user_file" 8 | else 9 | cwd=$(dirname $0) 10 | config_file="${cwd}/${user_file}" 11 | fi 12 | 13 | json=$(cat ${config_file}) 14 | 15 | if [ $# -eq 1 ]; then 16 | echo $json | jq -cr '.[] | "\(.name)|\(.command)|\(.icon)"' | 17 | while IFS="|" read -r name command icon 18 | do 19 | if [[ $name == "null" ]]; then 20 | continue 21 | fi 22 | if [[ $icon == "null" ]]; then 23 | icon="system-run" 24 | fi 25 | echo -en "${name}\0icon\x1f${icon}\n" 26 | done 27 | exit 1 28 | fi 29 | 30 | if [ $# -eq 2 ]; then 31 | 32 | selected=$2 33 | task=$(echo $json | jq ".[] | select(.name == \"$selected\")") 34 | 35 | if [[ $task == "" ]]; then 36 | exit 1 37 | fi 38 | 39 | command=$(echo $task | jq -j ".command") 40 | 41 | if [[ $command == "null" ]]; then 42 | command=$(echo $task | jq -j ".name") 43 | fi 44 | 45 | coproc bash -c "$command" 46 | exit 47 | 48 | fi 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | dotfiles :) 3 | 4 | I manage all my dotfiles with: nothing. I spent 1 hour researching dotfile 5 | managers only to settle on creating a script to do it for me in 10 mins 🤷 6 | 7 | Pretty minimal rice: 8 | ![Basic](https://user-images.githubusercontent.com/59021155/189222138-eea24207-88b7-4bf4-bc5f-177e81009329.png) 9 | 10 | I have a conky script that displays my org agenda for the day. I also receive a notification 15,5,0 minutes before 11 | something on my agenda is scheduled to happen. 12 | ![AgendaView](https://user-images.githubusercontent.com/59021155/189223447-bb717fa6-32b4-4497-89bc-e04005c7cf23.png) 13 | 14 | I have an org timer polybar module that helps me keep track of how long it takes for me to complete certain tasks. 15 | When I'm clocked in for a task and have the polybar menus toggled on it will display. 16 | ![OrgTimer](https://user-images.githubusercontent.com/59021155/189222148-c84cee87-02f7-403a-ae16-f940c28f5b69.png) 17 | 18 | 19 | ![Windows](https://user-images.githubusercontent.com/59021155/189222152-2a0d7bbb-4601-4ddd-97bc-4e974ee58108.png) 20 | -------------------------------------------------------------------------------- /.config/conky/low-battery.conf: -------------------------------------------------------------------------------- 1 | conky.config = { 2 | alignment = 'bottom_right', 3 | background = false, 4 | default_color = 'FFFFFF', 5 | double_buffer = true, 6 | extra_newline = false, 7 | font = 'Inconsolata Nerd Font:size=20', 8 | gap_x = 100, 9 | gap_y = 80, 10 | radius = 24, 11 | minimum_height = 5, 12 | minimum_width = 5, 13 | no_buffers = true, 14 | out_to_console = false, 15 | out_to_ncurses = false, 16 | out_to_stderr = false, 17 | out_to_x = true, 18 | own_window = true, 19 | color0 = "#2C3E50", 20 | own_window_transparent = false, 21 | own_window_argb_visual = true, 22 | own_window_argb_value = 255, 23 | own_window_class = 'conky_battery', 24 | stippled_borders = 0, 25 | update_interval = 1.0, 26 | uppercase = false, 27 | use_spacer = 'none', 28 | use_xft = true, 29 | own_window_type = 'override', 30 | own_window_colour = '#2C3E50', 31 | border_inner_margin = 50 32 | } 33 | 34 | conky.text = [[ 35 | ${execi 60 echo " Battery at $(cat /sys/class/power_supply/BAT0/capacity)%"} 36 | ]] 37 | -------------------------------------------------------------------------------- /.config/nvim/lua/my_px/svelte.lua: -------------------------------------------------------------------------------- 1 | local h = require("my_px.helpers") 2 | local ts_utils = require("nvim-treesitter.ts_utils") 3 | 4 | local M = {} 5 | 6 | ---@param node TSNode 7 | local iterate_till_hit_tag = function(node) 8 | while node ~= nil and not (node:type() == "start_tag" or node:type() == "end_tag") do 9 | node = node:parent() 10 | end 11 | return node 12 | end 13 | 14 | ---@param current_tag TSNode 15 | local find_other_tag = function(current_tag) 16 | local parent = current_tag:parent() 17 | local current_tag_type = current_tag:type() 18 | vim.print(parent:child_count()) 19 | for node, _ in parent:iter_children() do 20 | local this_tag_type = node:type() 21 | if (this_tag_type == 'start_tag' or this_tag_type == 'end_tag') and this_tag_type ~= current_tag_type then 22 | return node 23 | end 24 | end 25 | end 26 | 27 | M.jump_to_other_tag = function() 28 | local current_node = h.get_current_node() 29 | local current_tag = iterate_till_hit_tag(current_node) 30 | local other_tag = find_other_tag(current_tag) 31 | ts_utils.goto_node(other_tag) 32 | end 33 | 34 | return M 35 | -------------------------------------------------------------------------------- /install: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | source $(dirname $0)/.zshenv 3 | if ! [ -d $ZPLUG_HOME ]; then 4 | echo "Installing zplug...." 5 | git clone https://github.com/zplug/zplug $ZPLUG_HOME 6 | fi 7 | 8 | function get_full_path { 9 | echo $(realpath $(dirname $0)/$1) 10 | } 11 | mkdir ~/.local/share/zsh/ 12 | touch ~/.local/share/zsh/histfile 13 | 14 | files=$(ls -ap $(get_full_path)| grep -v -E ".git*|/" | grep -E "^\.") 15 | for dotfile in $files; do 16 | path="$(get_full_path)/$dotfile" 17 | rm -rf $HOME/$dotfile 18 | link_args="$path $HOME" 19 | ln -s $link_args 20 | done 21 | 22 | xdg_configs=$(ls $(get_full_path)/.config) 23 | for dotfile in $xdg_configs; do 24 | path="$(get_full_path)/.config/$dotfile" 25 | rm -rf $HOME/.config/$dotfile 26 | link_args="$path $HOME/.config/" 27 | ln -s $link_args 28 | done 29 | 30 | xdg_data=$(ls $(get_full_path)/.local/share) 31 | for dotfile in $xdg_data; do 32 | path="$(get_full_path)/.local/share/$dotfile" 33 | rm -rf $HOME/.local/share/$dotfile 34 | link_args="$path $HOME/.local/share" 35 | ln -s $link_args 36 | done 37 | 38 | if type feh &>/dev/null; then 39 | fehbg 40 | fi 41 | 42 | if type feh &>/dev/null; then 43 | fehbg 44 | fi 45 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/org.lua: -------------------------------------------------------------------------------- 1 | -- local m = require('mystuff/mapping_utils') 2 | -- 3 | -- local o = require('mystuff/option_utils') 4 | -- vim.keymap.set("n", 'gtp', function() 5 | -- vim.fn.search([[^\* ]], 'bW') 6 | -- end) 7 | -- 8 | -- vim.bo.textwidth = 80 9 | vim.wo.conceallevel = 2 10 | -- vim.keymap.set("i", "", function() require('orgmode').org_insert_heading_respect_content() end) 11 | -- vim.keymap.set("i", "", function() print('hi') end) 12 | -- vim.keymap.set("i", "", function() require('orgmode.api').insert_link() end) 13 | 14 | -- 15 | -- m.nmap('gtz', [[lua require'mystuff/org'.goToZoom()]], 16 | -- {buffer = true}) 17 | -- 18 | -- m.nmap('gts', [[lua require'mystuff/org'.goToSite()]], 19 | -- {buffer = true}) 20 | -- 21 | -- m.nmap('gtn', [[lua require'mystuff/org'.goToNotes()]], 22 | -- {buffer = true}) 23 | -- m.nmap('gth', [[lua require'mystuff/org'.goToHeading()]], 24 | -- {buffer = true}) 25 | -- m.nmap('gtH', [[lua require'mystuff/org'.goToHomework()]], 26 | -- {buffer = true}) 27 | -- m.nmap('gtP', [[lua require'mystuff/org'.goToHomework()]], 28 | -- {buffer = true}) 29 | -------------------------------------------------------------------------------- /.config/obs-studio/global.ini: -------------------------------------------------------------------------------- 1 | [General] 2 | Pre19Defaults=false 3 | Pre21Defaults=false 4 | Pre23Defaults=false 5 | Pre24.1Defaults=false 6 | FirstRun=true 7 | LastVersion=486539266 8 | 9 | [Basic] 10 | Profile=Untitled 11 | ProfileDir=Untitled 12 | SceneCollection=Untitled 13 | SceneCollectionFile=Untitled 14 | 15 | [BasicWindow] 16 | gridMode=false 17 | geometry=AdnQywADAAAAAAAIAAAACAAAB3cAAAQvAAAACAAAAAgAAAd3AAAELwAAAAAAAAAAB4AAAAAIAAAACAAAB3cAAAQv 18 | DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAdwAAABAfwBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAV8AAACgAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAAFjAAABYQAAAKAA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAACyAAAAeYAAADeAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAQAABLIAAAFfAAAAoAD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAYVAAABWwAAAJ4A////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAAExAAAA3AAAAK8AAAAyAAAB3AAAALzAAAABAAAAAQAAAAIAAAACPwAAAAA 19 | PreviewEnabled=true 20 | AlwaysOnTop=false 21 | SceneDuplicationMode=true 22 | SwapScenesMode=true 23 | EditPropertiesMode=false 24 | PreviewProgramMode=false 25 | DocksLocked=false 26 | 27 | [PropertiesWindow] 28 | cx=598 29 | cy=464 30 | 31 | [ScriptLogWindow] 32 | geometry=AdnQywADAAAAAAUoAAAAFAAAB38AAAGjAAAFKAAAABQAAAd/AAABowAAAAAAAAAAB4AAAAUoAAAAFAAAB38AAAGj 33 | -------------------------------------------------------------------------------- /.local/share/scripts/org-check-time: -------------------------------------------------------------------------------- 1 | #!/bin/env python3 2 | 3 | from datetime import datetime, timedelta 4 | import os 5 | import time as ttime 6 | import re 7 | 8 | def add_minutes_to_time(time: datetime, minutes): 9 | return (time + timedelta(minutes=minutes)).strftime("%H:%M") 10 | 11 | now = datetime.now() 12 | 13 | possible_times={ add_minutes_to_time(now, 5), add_minutes_to_time(now, 15), add_minutes_to_time(now, 0)} 14 | stream = os.popen("/home/joshu/.local/share/scripts/print-agenda --new-instance") 15 | output = stream.read() 16 | for line in output.splitlines(): 17 | res = re.split(r".*\d\d?:\d\d-?\d?\d?:?\d?\d?\.*\s*-*", line); 18 | if len(res) > 1 and res[1] != "" and not res[1].startswith("now"): 19 | item_description = res[1] 20 | item_description = re.sub(" +", " ", item_description) 21 | time = re.search(r"\d\d:\d\d", line) 22 | event_time = "" 23 | if time: 24 | event_time = time.group() 25 | if event_time != "" and event_time in possible_times: 26 | os.system(f'CONKY_ENV="{event_time} {item_description}" conky -c ~/.config/conky/print-env.conf -d') 27 | os.system("xdo raise -N conky_env") 28 | ttime.sleep(5) 29 | os.system("pkill conky") 30 | -------------------------------------------------------------------------------- /.config/skhd/skhdrc: -------------------------------------------------------------------------------- 1 | #cmd + ctrl - c : copyq menu 2 | cmd + shift - r : skhd --reload && yabai --restart-service 3 | cmd + shift - f : open /Applications/Firefox.app 4 | cmd + shift - e : open /Applications/Emacs.app/ 5 | cmd + shift - d : open /Applications/iTerm.app/ 6 | cmd + shift - x : open /Applications/Xcode.app/ 7 | 8 | 9 | ctrl - e : yabai -m space --layout bsp 10 | ctrl + shift - s : yabai -m space --layout stack 11 | 12 | ctrl + alt - left : yabai -m window --focus west 13 | ctrl + alt - right : yabai -m window --focus east 14 | cmd - k : yabai -m window --focus north 15 | cmd - j : yabai -m window --focus south 16 | cmd - h : yabai -m window --focus west 17 | cmd - l : yabai -m window --focus east 18 | cmd + shift - k : yabai -m window --swap north 19 | cmd + shift - j : yabai -m window --swap south 20 | cmd + shift - h : yabai -m window --swap west 21 | cmd + shift - l : yabai -m window --swap east 22 | 23 | ctrl + shift - 1 : yabai -m window --space 1 24 | ctrl + shift - 2 : yabai -m window --space 2 25 | ctrl + shift - 3 : yabai -m window --space 3 26 | ctrl + shift - 4 : yabai -m window --space 4 27 | ctrl + shift - 5 : yabai -m window --space 5 28 | ctrl + shift - 6 : yabai -m window --space 6 29 | 30 | cmd + shift + ctrl - f : yabai -m window --toggle float 31 | # 32 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/creole.lua: -------------------------------------------------------------------------------- 1 | local map = require('mystuff/mapping_utils') 2 | vim.o.ignorecase = true; 3 | vim.o.infercase = true; 4 | vim.o.spellfile = '/home/joshu/.config/nvim/spell/creole.utf-8.add'; 5 | vim.o.dictionary = '/home/joshu/.config/nvim/spell/creole.utf-8.add'; 6 | vim.opt_local.complete:append('k'); 7 | vim.opt_local.iskeyword:append('-'); 8 | 9 | map.nmap('gta', 10 | '!zathura --fork "~/creole/APK.pdf"') 11 | map.nmap('gto', 12 | '!zathura --fork "~/creole/ODP.pdf"') 13 | map.nmap('gtt', 14 | '!xdg-open "https://translate.google.com/?sl=en&tl=ht&op=translate" & disown') 15 | map.nmap('gtS', 16 | '!xdg-open "https://sakai.duke.edu/portal/site/f13ba5c0-825f-40f4-9716-65cfd2b41634" & disown') 17 | map.nmap('gtZ', 18 | '!xdg-open "https://duke.zoom.us/j/93281526233" & disown') 19 | 20 | map.nmap('tc', 'Translate ht', {buffer = true}) 21 | map.vmap('tc', ':Translate htgv', {buffer = true}) 22 | map.nmap('te', 'Translate en', {buffer = true}) 23 | map.vmap('te', ':Translate engv', {buffer = true}) 24 | map.imap('', 'è', {buffer = true}) 25 | map.imap('', 'ò', {buffer = true}) 26 | -------------------------------------------------------------------------------- /.config/kdeconnect/certificate.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIIDVzCCAj+gAwIBAgIBCjANBgkqhkiG9w0BAQUFADBVMS8wLQYDVQQDDCZfYWYw 3 | MDk2N2FfZWQxYV80ZTIzXzg3MDFfZmQxMjc2Yjc2N2E4XzEMMAoGA1UECgwDS0RF 4 | MRQwEgYDVQQLDAtLZGUgY29ubmVjdDAeFw0yMTA2MDgwMjIxMThaFw0zMTA2MDgw 5 | MjIxMThaMFUxLzAtBgNVBAMMJl9hZjAwOTY3YV9lZDFhXzRlMjNfODcwMV9mZDEy 6 | NzZiNzY3YThfMQwwCgYDVQQKDANLREUxFDASBgNVBAsMC0tkZSBjb25uZWN0MIIB 7 | IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxXWhh4WA1Qwhd6LTYxUoKh+j 8 | RqrPlmbIUtm0vatlPtf5eZu5bEnmJmQ4HCzKD8ekydcCaSdXEMl9jwqOeSrva7bz 9 | fLuTZX4F9ET0BjkI2KT5zxUJp/OCCOcHHpbmFKnfd2XlXkcqdc+Bhmld6z7byqwZ 10 | cR0qbt422IooafWXNyF/PuzM5UxB35imrSzTdVT5Ca9rg/SLXOyGSNSD7/DnNa+F 11 | cYraeaemccNY/1Vi5gppBmHRQc7MPcm6QHEbzCT+7Bg2jtBy2E0DYNiNix820zbn 12 | jF9v90TWu0Bbh+RryJAKWkLADH82LlOxDgR5yJ1K7I3su00FuLRtgwAZSTjLtwID 13 | AQABozIwMDAdBgNVHQ4EFgQUiXSOxQEIb24I/rG7SmOueAudS/8wDwYDVR0TAQH/ 14 | BAUwAwIBADANBgkqhkiG9w0BAQUFAAOCAQEATLyrD9+VDugZ1w+mK5YVIwaiIfhI 15 | SM2fEDTKuZ6vchlgtVCM1vZ9NmDsf1D94zRDf0jG9xhkn4VEBFBkzj6opiVMxgYv 16 | ukB8oitX4Xzs/H2icf5JFnE8w783kfy78BD2CgS9xzLjBZX8uBk6jA3WPdJBeB1B 17 | Ykx3aDYLiQj4siNiTzkMOFffURRPOYkkOGvwcSLz6KpZzOtYHlKdk3DzqjQFV/T1 18 | xvz/KHXSRZduWOn/dJVEW0rmTmqNp8n6SZ+3kz323L7N+VKLCxyXB5EVVs4TYKdL 19 | gak5Har0SIBulVPoXJWiCcCm0R/qNH5xD/eDGLkR1x2ovPW+T3cbMXH41w== 20 | -----END CERTIFICATE----- 21 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/swift.lua: -------------------------------------------------------------------------------- 1 | local actions = require("my_px.swift") 2 | 3 | vim.keymap.set("n", "w", actions.wrap_in_vstack) 4 | 5 | vim.keymap.set("n", "apt", function() 6 | actions.add_modifier("padding", ".top", 4) 7 | end) 8 | 9 | vim.keymap.set("n", "apb", function() 10 | actions.add_modifier("padding", ".bottom", 4) 11 | end) 12 | 13 | vim.keymap.set("n", "aph", function() 14 | actions.add_modifier("padding", ".horizontal", 4) 15 | end) 16 | 17 | vim.keymap.set("n", "af", function() 18 | actions.add_modifier("font", ".") 19 | end) 20 | 21 | vim.keymap.set("n", "ec", function() 22 | actions.extract_component() 23 | end) 24 | 25 | -- Extract to field 26 | vim.keymap.set("n", "etf", function() 27 | actions.extract_variable_to_struct() 28 | end) 29 | 30 | 31 | -- if not null_ls.is_registered("swift-actions") then 32 | -- require("null-ls").register({ 33 | -- name = "swift-actions", 34 | -- method = { require("null-ls").methods.CODE_ACTION }, 35 | -- filetypes = { "swift" }, 36 | -- }) 37 | -- 38 | -- require("null-ls").register({ 39 | -- name = "swift-actions", 40 | -- method = { require("null-ls").methods.CODE_ACTION }, 41 | -- filetypes = { "swift" }, 42 | -- }) 43 | -- end 44 | 45 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/powermenu.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ## Author : Aditya Shakya 4 | ## Mail : adi1090x@gmail.com 5 | ## Github : @adi1090x 6 | ## Twitter : @adi1090x 7 | 8 | dir="~/.config/polybar/material/scripts/rofi" 9 | uptime=$(uptime -p | sed -e 's/up //g') 10 | 11 | rofi_command="rofi -theme $dir/powermenu.rasi" 12 | 13 | # Options 14 | shutdown=" Shutdown" 15 | reboot=" Restart" 16 | lock=" Lock" 17 | suspend=" Sleep" 18 | logout=" Logout" 19 | 20 | # Confirmation 21 | # Message 22 | msg() { 23 | rofi -theme "$dir/message.rasi" -e "Available Options - yes / y / no / n" 24 | } 25 | 26 | # Variable passed to rofi 27 | options="$lock\n$suspend\n$logout\n$reboot\n$shutdown" 28 | 29 | chosen="$(echo -e "$options"| $rofi_command -p "Uptime: $uptime" -dmenu -selected-row 0)" 30 | case $chosen in 31 | $shutdown) 32 | systemctl poweroff;; 33 | $reboot) 34 | systemctl reboot ;; 35 | $lock) 36 | if [[ -f /usr/bin/i3lock ]]; then 37 | i3lock 38 | elif [[ -f /usr/bin/betterlockscreen ]]; then 39 | betterlockscreen -l 40 | fi 41 | ;; 42 | $suspend) 43 | ans="yes" 44 | if [[ $ans == "yes" || $ans == "YES" || $ans == "y" || $ans == "Y" ]]; then 45 | mpc -q pause 46 | amixer set Master mute 47 | systemctl suspend 48 | elif [[ $ans == "no" || $ans == "NO" || $ans == "n" || $ans == "N" ]]; then 49 | exit 0 50 | else 51 | msg 52 | fi 53 | ;; 54 | $logout) 55 | i3-msg exit ;; 56 | esac 57 | -------------------------------------------------------------------------------- /.zshenv: -------------------------------------------------------------------------------- 1 | export PATH=$HOME/.local/bin/:$PATH 2 | export NVM_DIR="$HOME/.nvm" 3 | export NVM_INIT_FILE=/usr/share/nvm/init-nvm.sh 4 | export PATH=$HOME/.local/share/scripts/:$PATH 5 | export PATH=$HOME/.yarn/bin:$PATH 6 | export PATH=$HOME/.cargo/bin:$PATH 7 | export PATH=$HOME/go/bin:$PATH 8 | #export JAVA_HOME=/usr/lib/jvm/java-8-openjdk/jre 9 | # export JAVA_HOME=/usr/lib/jvm/java-11-openjdk 10 | export JAVA_HOME=/usr/lib/jvm/java-17-openjdk/ 11 | # export JAVA_HOME=/Users/joshiep/.sdkman/candidates/java/17.0.4.1-tem 12 | export ZPLUG_HOME=$HOME/.local/share/zplug/ 13 | export ZPLUG_FILE=$HOME/.local/share/zplug/init.zsh 14 | export CM_LAUNCHER=rofi 15 | 16 | export ANDROID_SDK_ROOT='/opt/android-sdk/' 17 | export FLUTTER_ROOT='/opt/flutter/' 18 | export PATH=$PATH:$JAVA_HOME/bin/ 19 | export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools/ 20 | export PATH=$PATH:$ANDROID_SDK_ROOT/tools/bin/ 21 | export PATH=$PATH:$ANDROID_ROOT/emulator 22 | export PATH=$PATH:$ANDROID_SDK_ROOT/tools/ 23 | export PATH=$PATH:/Users/joshiep/.toolbox/bin 24 | export CALIBRE_USE_DARK_PALETTE=1 25 | #export VIRSH_DEFAULT_CONNECT_URI=qemu:///system 26 | export PATH="$PATH":"$HOME/.pub-cache/bin" 27 | export PATH="$PATH":"$HOME/.iterm2/" 28 | export XDG_CONFIG_HOME=$HOME/.config/ 29 | 30 | export SDKMAN_DIR="$HOME/.sdkman" 31 | 32 | # Begin added by argcomplete 33 | fpath=( /usr/lib/python3.12/site-packages/argcomplete/bash_completion.d "${fpath[@]}" ) 34 | # End added by argcomplete 35 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/formatter-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local prettierFormatter = { 2 | -- prettier 3 | function() 4 | return { 5 | exe = "prettier", 6 | args = { 7 | "--stdin-filepath", 8 | vim.fn.fnameescape(vim.api.nvim_buf_get_name(0)), 9 | "--single-quote", 10 | }, 11 | stdin = true, 12 | } 13 | end, 14 | } 15 | 16 | require("formatter").setup({ 17 | filetype = { 18 | jsonc = prettierFormatter, 19 | markdown = prettierFormatter, 20 | ["creole.markdown"] = prettierFormatter, 21 | lua = { 22 | -- luafmt 23 | function() 24 | return { exe = "stylua", stdin = true, args = { "-" } } 25 | end, 26 | }, 27 | dart = { 28 | -- Shell Script Formatter 29 | function() 30 | return { exe = "dart", args = { "format" }, stdin = true } 31 | end, 32 | }, 33 | -- org = { 34 | -- -- Shell Script Formatter 35 | -- function() 36 | -- return {exe = "go-org", args = {"render org"}, stdin = true} 37 | -- end 38 | -- }, 39 | racket = { 40 | -- Shell Script Formatter 41 | function() 42 | return { exe = "raco ", args = { "fmt", "--width 80" }, stdin = true } 43 | end, 44 | }, 45 | }, 46 | }) 47 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/updates.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg 4 | 5 | get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); } 6 | 7 | while true; do 8 | get_total_updates 9 | 10 | # notify user of updates 11 | if hash notify-send &>/dev/null; then 12 | if (( UPDATES > 50 )); then 13 | notify-send -u critical -i $NOTIFY_ICON \ 14 | "You really need to update!!" "$UPDATES New packages" 15 | elif (( UPDATES > 25 )); then 16 | notify-send -u normal -i $NOTIFY_ICON \ 17 | "You should update soon" "$UPDATES New packages" 18 | elif (( UPDATES > 2 )); then 19 | notify-send -u low -i $NOTIFY_ICON \ 20 | "$UPDATES New packages" 21 | fi 22 | fi 23 | 24 | # when there are updates available 25 | # every 10 seconds another check for updates is done 26 | while (( UPDATES > 0 )); do 27 | if (( UPDATES == 1 )); then 28 | echo " $UPDATES" 29 | elif (( UPDATES > 1 )); then 30 | echo " $UPDATES" 31 | else 32 | echo " None" 33 | fi 34 | sleep 10 35 | get_total_updates 36 | done 37 | 38 | # when no updates are available, use a longer loop, this saves on CPU 39 | # and network uptime, only checking once every 30 min for new updates 40 | while (( UPDATES == 0 )); do 41 | echo " None" 42 | sleep 1800 43 | get_total_updates 44 | done 45 | done 46 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/settings.lua: -------------------------------------------------------------------------------- 1 | require("mystuff/utils") 2 | local M = {} 3 | 4 | vim.o.timeout = false 5 | vim.g.mapleader = " " 6 | vim.g.maplocalleader = "" 7 | vim.o.mouse = "a" 8 | vim.o.relativenumber = true 9 | vim.o.number = true 10 | -- vim.opt.statuscolumn = "%l %r" 11 | 12 | vim.o.scrolloff = 8 13 | vim.o.tabstop = 4 14 | vim.opt_local.cindent = true 15 | vim.o.shiftwidth = 4 16 | vim.o.expandtab = true 17 | vim.opt.termguicolors = true 18 | --vim.cmd('abbrev %% expand("%")') 19 | 20 | vim.cmd([[ 21 | let test#strategy = "dispatch" 22 | " let g:vim_markdown_folding_disabled = 1 23 | ]]) 24 | -- Formatters 25 | -- 26 | vim.cmd([[ 27 | let g:mkdp_filetypes = ['markdown', 'org'] 28 | ]]) 29 | 30 | vim.cmd([[ 31 | "aug CSV_Editing 32 | " au! 33 | " au FileType csv :%ArrangeColumn 34 | "aug end 35 | ]]) 36 | 37 | vim.cmd([[ 38 | function! g:LatexPasteImage(relpath) 39 | execute "normal! i\\includegraphics{" . a:relpath . "}\r\\caption{I" 40 | let ipos = getcurpos() 41 | execute "normal! a" . "mage}" 42 | call setpos('.', ipos) 43 | execute "normal! ve\" 44 | endfunction 45 | autocmd FileType tex let g:PasteImageFunction = 'g:LatexPasteImage' 46 | autocmd FileType markdown,tex nmap mp :call mdip#MarkdownClipboardImage() 47 | ]]) 48 | 49 | vim.cmd([[ 50 | au TextYankPost * silent! lua vim.highlight.on_yank {on_visual=false} 51 | ]]) 52 | 53 | vim.cmd([[ 54 | let g:vimtex_view_method = 'zathura' 55 | ]]) 56 | 57 | M.isLinux = vim.loop.os_uname().sysname == "Linux" 58 | 59 | -- vim.opt.laststatus = 3 60 | 61 | return M 62 | -------------------------------------------------------------------------------- /Material.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | background-color: @fg-alt; 3 | display-run: " "; 4 | display-drun: " "; 5 | display-window: " "; 6 | drun-display-format: "{icon} {name}"; 7 | font: "JetBrainsMono Nerd Font Medium 13"; 8 | modi: "window,run,drun"; 9 | show-icons: true; 10 | } 11 | 12 | * { 13 | bg: rgba(127, 135, 189, 0.2); 14 | bg-alt: #232323; 15 | 16 | fg: #FFFFFF; 17 | fg-alt: #8f8f8f; 18 | fg-alt-alt: rgba(127, 135, 189, 0.5); 19 | 20 | background-color: @bg; 21 | 22 | border: 0; 23 | margin: 0; 24 | padding: 0; 25 | spacing: 0; 26 | } 27 | 28 | element-icon { 29 | size: 3ch; 30 | align: center; 31 | vertical-align: 0; 32 | yoffset: 50; 33 | } 34 | 35 | element-text { 36 | vertical-align: 1; 37 | } 38 | 39 | element { 40 | padding: 20; 41 | orientation: horizontal; 42 | text-color: @fg-alt; 43 | position: east; 44 | vertical-align: 0; 45 | } 46 | 47 | element selected { 48 | text-color: @fg; 49 | background-color: @fg-alt-alt; 50 | } 51 | 52 | entry { 53 | background-color: @bg-alt; 54 | padding: 12; 55 | vertical-align: 0; 56 | text-color: @fg; 57 | } 58 | 59 | inputbar { 60 | children: [entry]; 61 | } 62 | 63 | listview { 64 | background-color: @bg; 65 | columns: 1; 66 | lines: 8; 67 | } 68 | 69 | mainbox { 70 | background-color: @bg; 71 | children: [inputbar, listview]; 72 | } 73 | 74 | prompt { 75 | background-color: @bg-alt; 76 | enabled: true; 77 | font: "FontAwesome 12"; 78 | padding: 12 0 0 12; 79 | text-color: @fg; 80 | } 81 | 82 | window { 83 | transparency: "real"; 84 | } 85 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-treesitter/init.lua: -------------------------------------------------------------------------------- 1 | require("nvim-treesitter.configs").setup({ 2 | sync_install = false, 3 | highlight = { 4 | enable = true, 5 | }, 6 | indent = { 7 | enable = true, 8 | }, 9 | incremental_selection = { 10 | enable = true, 11 | keymaps = { 12 | init_selection = "k", 13 | node_incremental = "k", 14 | scope_incremental = "K", 15 | node_decremental = "j", 16 | }, 17 | }, 18 | }) 19 | 20 | local parser_config = require("nvim-treesitter.parsers").get_parser_configs() 21 | 22 | parser_config.puml = { 23 | install_info = { 24 | url = "https://github.com/ahlinc/tree-sitter-plantuml", 25 | revision = "demo", 26 | files = { "src/scanner.cc" }, 27 | }, 28 | filetype = "puml", 29 | } 30 | 31 | parser_config.puml = { 32 | install_info = { 33 | url = "https://github.com/tree-sitter/swift-tree-sitter", 34 | revision = "main", 35 | files = { "src/scanner.c" }, 36 | }, 37 | filetype = "swift", 38 | } 39 | 40 | local treesitter_mode_on = function() 41 | vim.keymap.set("n", "sx", ":source ~/.config/nvim/thing.lua") 42 | vim.keymap.set("n", "ts", ":TSPlaygroundToggle") 43 | vim.notify("Treesitter mode on!") 44 | end 45 | 46 | -- vim.keymap.set("n", "1", treesitter_mode_on) 47 | -- 48 | 49 | parser_config["ion"] = { 50 | install_info = { 51 | url = "https://github.com/Ignis-lang/tree-sitter-ion.git", 52 | files = { "src/parser.c" }, 53 | branch = "main", 54 | generate_requires_npm = false, 55 | requires_generate_from_grammar = true, 56 | }, 57 | filetype = "ion", 58 | } 59 | -------------------------------------------------------------------------------- /.local/share/scripts/org-blog-export: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Only work with 1 file 3 | # If that file has a "directory" property it splits each topline headline into its own file in a directory. 4 | # Possible add an "export to pdf" directive so that a headline gets exported to a pdf file, this way I can export "Scriptures" headlines easily. 5 | 6 | file=$1 7 | emacs "$file" -batch -load ~/.emacs.d/init.el \ 8 | --eval "(progn (org-md-export-to-markdown)(org-latex-export-to-latex))" -nw --kill 9 | filename=$(basename -- "$file") 10 | filename="${filename%.*}" 11 | mdfile="$filename.md" 12 | mdxfile="$filename.mdx" 13 | #Generates table of contents. 14 | toc=$(cat "$mdfile" | grep -E "^#{1,5} " | sed -E 's/(#+) (.+)/\1~\2~\2/g' | awk -F "~" '{ gsub(/#/," ",$1); gsub(/[ ]/,"-",$3); print $1 "- [" $2 "](#" tolower($3) ")" }' | sed "s/(\(.*\):\(.*\))/(\1\2)/g" | sed "s/(\(.*\)'\(.*\))/(\1\2)/g") 15 | echo "---" > "$mdxfile" 16 | awk -v RS='(\r?\n){2,}' '{print; exit}' "$file" | sed 's/#+//g' >> "$mdxfile" 17 | echo "---" >> "$mdxfile" 18 | toc_clean="${toc//$'\n'/\\n}" 19 | cat "$filename.md" >> "$mdxfile" 20 | sed -i "s/.*Hope You are Blessed!/$toc_clean/" "$mdxfile" 21 | echo $mdxfile 22 | pandoc --template eisvogel.latex -i "$filename.tex" -o "assets/$filename.pdf" 23 | result=${PWD##*/} # to assign to a variable 24 | # This will be used when we have multip post files eventually 25 | #mkdir -p "/home/joshu/projects/joshministers-blog/data/blog/$currentdir" 26 | cp "$mdxfile" "output/" 27 | rm "$filename.md" "$filename.tex" 28 | 29 | # I got the TOC one liner from here: https://medium.com/@acrodriguez/one-liner-to-generate-a-markdown-toc-f5292112fd14 30 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/markdown.lua: -------------------------------------------------------------------------------- 1 | vim.bo[0].textwidth = 0 2 | vim.bo[0].formatexpr = "" 3 | vim.wo.conceallevel = 2 4 | 5 | local journal_path = "/home/joshu/sync/wiki/dailies/" -- Change this to your actual path 6 | 7 | local function get_journal_entries() 8 | local files = {} 9 | local p = io.popen('ls "' .. journal_path .. '" | grep -E "^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.md$"') 10 | if p then 11 | for file in p:lines() do 12 | table.insert(files, file) 13 | end 14 | p:close() 15 | end 16 | table.sort(files) -- Ensure chronological order 17 | return files 18 | end 19 | 20 | local function navigate_journal(direction) 21 | local entries = get_journal_entries() 22 | local current_file = vim.fn.expand("%:t") 23 | local index = nil 24 | 25 | for i, entry in ipairs(entries) do 26 | if entry == current_file then 27 | index = i 28 | break 29 | end 30 | end 31 | 32 | if index then 33 | local new_index = index + direction 34 | if new_index >= 1 and new_index <= #entries then 35 | vim.cmd("edit " .. journal_path .. entries[new_index]) 36 | else 37 | print("No " .. (direction == -1 and "previous" or "next") .. " entry available.") 38 | end 39 | else 40 | print("Current file is not recognized as a journal entry.") 41 | end 42 | end 43 | 44 | vim.api.nvim_create_user_command("JournalPrev", function() navigate_journal(-1) end, {}) 45 | vim.api.nvim_create_user_command("JournalNext", function() navigate_journal(1) end, {}) 46 | 47 | vim.keymap.set("n", "n.", "JournalNext") 48 | vim.keymap.set("n", "n,", "JournalPrev") 49 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/neorg/init.lua: -------------------------------------------------------------------------------- 1 | -- require("neorg").setup({ 2 | -- load = { 3 | -- ["core.defaults"] = {}, -- Loads default behaviour 4 | -- ["core.tempus"] = {}, 5 | -- ["core.concealer"] = {}, -- Adds pretty icons to your documents 6 | -- ["core.integrations.nvim-cmp"] = {}, 7 | -- ["core.completion"] = { 8 | -- config = { 9 | -- engine = "nvim-cmp", 10 | -- }, 11 | -- }, 12 | -- ["core.export"] = {}, 13 | -- ["core.tangle"] = {}, 14 | -- ["core.looking-glass"] = {}, 15 | -- ["core.dirman"] = { -- Manages Neorg workspaces 16 | -- config = { 17 | -- workspaces = { 18 | -- stuff = "~/sync/norg/stuff/", 19 | -- programming_notes = "~/sync/norg/programming/" 20 | -- }, 21 | -- default_workspace = "stuff", 22 | -- }, 23 | -- }, 24 | -- ["core.integrations.telescope"] = {}, 25 | -- }, 26 | -- }) 27 | -- 28 | -- vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter" }, { 29 | -- pattern = { "*.norg" }, 30 | -- command = "set conceallevel=3", 31 | -- }) 32 | -- 33 | -- local neorg_callbacks = require("neorg.callbacks") 34 | -- 35 | -- neorg_callbacks.on_event("core.keybinds.events.enable_keybinds", function(_, keybinds) 36 | -- -- Map all the below keybinds only when the "norg" mode is active 37 | -- keybinds.map_event_to_mode("norg", { 38 | -- n = { -- Bind keys in normal mode 39 | -- { "l", "core.integrations.telescope.find_linkable" }, 40 | -- { "", "core.integrations.telescope.search_headings" }, 41 | -- }, 42 | -- 43 | -- i = { -- Bind in insert mode 44 | -- { "l", "core.integrations.telescope.insert_link" }, 45 | -- }, 46 | -- }, { 47 | -- silent = true, 48 | -- noremap = true, 49 | -- }) 50 | -- end) 51 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/test_path.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | 4 | local function exists(file) 5 | local ok, err, code = os.rename(file, file) 6 | if not ok then 7 | if code == 13 then 8 | -- Permission denied, but it exists 9 | return true 10 | end 11 | end 12 | return ok, err 13 | end 14 | 15 | --- Check if a directory exists in this path 16 | local function isdir(path) 17 | -- "/" works on both Unix and Windows 18 | return exists(path.."/") 19 | end 20 | 21 | local function getFile() 22 | return vim.fn.expand("%") 23 | end 24 | 25 | M.dart = function() 26 | local file = vim.fn.expand("%") 27 | local testFile = file:gsub("lib/src", "test/src") 28 | testFile = testFile:gsub(".dart", "_test.dart") 29 | vim.cmd("split " .. testFile) 30 | end 31 | 32 | M.typescriptreact = function() 33 | local file = getFile() 34 | end 35 | 36 | M.java = function() 37 | local file = vim.fn.expand("%") 38 | local test_folder = "tst" 39 | local testFile = "" 40 | if not isdir(test_folder) then 41 | test_folder = "src/test" 42 | testFile = file:gsub("src/main", "src/test") 43 | else 44 | testFile = file:gsub("src", test_folder) 45 | end 46 | testFile = testFile:gsub("%.java", "Test.java") 47 | vim.cmd("split " .. testFile) 48 | end 49 | 50 | M.java_return = function() 51 | local file = vim.fn.expand("%") 52 | local test_folder = "tst" 53 | local testFile = file 54 | if not isdir(test_folder) then 55 | test_folder = "src/main" 56 | testFile = file:gsub("src/test", "src/main") 57 | else 58 | testFile = file:gsub(test_folder, "src/") 59 | end 60 | testFile = testFile:gsub("Test.java", ".java") 61 | vim.cmd("split " .. testFile) 62 | end 63 | return M 64 | -------------------------------------------------------------------------------- /.config/kdeconnect/privateKey.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN PRIVATE KEY----- 2 | MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDFdaGHhYDVDCF3 3 | otNjFSgqH6NGqs+WZshS2bS9q2U+1/l5m7lsSeYmZDgcLMoPx6TJ1wJpJ1cQyX2P 4 | Co55Ku9rtvN8u5NlfgX0RPQGOQjYpPnPFQmn84II5wceluYUqd93ZeVeRyp1z4GG 5 | aV3rPtvKrBlxHSpu3jbYiihp9Zc3IX8+7MzlTEHfmKatLNN1VPkJr2uD9Itc7IZI 6 | 1IPv8Oc1r4Vxitp5p6Zxw1j/VWLmCmkGYdFBzsw9ybpAcRvMJP7sGDaO0HLYTQNg 7 | 2I2LHzbTNueMX2/3RNa7QFuH5GvIkApaQsAMfzYuU7EOBHnInUrsjey7TQW4tG2D 8 | ABlJOMu3AgMBAAECggEAZJ4LQFZsDqPOzfqfgqa+P7C9b34Mp5QaUfVznw6eWcaN 9 | 7kTG2IJTj46T9O9xy1atBtjT9qdAO2Kg42m6rc2OELI6In4mnpn4CL+2JRGdC2AN 10 | l1MeB4IS6dxniVPVTAQ/xcSbe04COeQSGV7Jp9zw/LZzhGsbO0Fqay8DZvLpKgK3 11 | g6VRdgT47eP3xVtf6f83F3P3o85XOFjMG12oaMKG3PQka2968SquOyMbASwAHm2c 12 | Gkd2H17HI8sxulySzc/P5n7cJMDnNl79eXisNjHiSGh0hu96TaOvOy+cemWNsYpa 13 | pPukyRRtyHDsBDd/Pvva92gAUkbYKzzHsdJM3+cuCQKBgQDiWCyOVYrvUSxTVcMD 14 | FM+BZpJrKoeJOhKAwaUP7znlrgI146ahg2J84FiekeiH+Ab0T7l4/spsTgbLjx4a 15 | PICVdKlKIY/a6mEFq4dQr1HNLvMjJ5zNar+mNaEznTYAqleNg3k+L/U3F9hypYH/ 16 | 08hyLXYANQpvbT0+/g3P+YAA0wKBgQDfVKBchk679l9XndKgarVPHEtJb90i1U/P 17 | othut8R2XmOMIf7xUekGG3u+yYPAMhxtVQloAjf8G59po/XdeaL5F0hj5sks9V0h 18 | zZYQWhSntaUnep2RoyB6HWQKKmY8hE5VdQXS3kkDrEgMRdFigME85ft+VXdFVeBJ 19 | zB+jwkObDQKBgDu9C91xJF8vbGR+QR8CEhZUDRbtvaHxSsri0P7Yo85D09+HOwZr 20 | 18WfrKQFXHrucl9u30PY83IMUezN1CMWjtVjWf7vxrj/nSXS9L7N1ugxmQhRPyhU 21 | IUrr4qTtvEAGtV7rMUfBfpXQ3Fa96gasTb4c04UQerWX/k8u3FRkxGzzAoGAW7Do 22 | AfTWgI9fh55xapFFDUzlkCoQVYvUr8ABMjvaump4XoFapYNms642+RbNM+yfBThj 23 | m0NF7wj8Qygg+qRFCBXKD9IiCIZYjVdV5DLHxi9qtjG+XZvm6pwEhbPws6nya12X 24 | XYML4Skrj3ZeyB1quPEHd0/pnxrp8gKPfvF0RkUCgYEAuNXu3G6Cida4ebWQOagv 25 | 00uxyFfbGEvHIzqpi9sNnm3t8TRLOl3m87T3BNciDv2O+Xt9lHqTWQon+jRX1qmZ 26 | qtKDusPTk3J9y5j/SA+r1NidGeznhFwNeokg8GiXEC3v6FFBSI+0gjv0n/cOh8Qa 27 | /dbXjPm87QynOXO8AewyVnE= 28 | -----END PRIVATE KEY----- 29 | -------------------------------------------------------------------------------- /vimium_c.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Vimium C", 3 | "@time": "6/10/2022, 8:26:55 AM", 4 | "time": 1654874815932, 5 | "environment": { 6 | "extension": "1.98.2", 7 | "platform": "linux", 8 | "firefox": 101 9 | }, 10 | "ignoreCapsLock": 2, 11 | "keyMappings": [ 12 | "#!no-check", 13 | "map ac closeOtherTabs", 14 | "" 15 | ], 16 | "searchEngines": [ 17 | "g|go|gg|google|Google: https://www.google.com/search?q=%s \\", 18 | " www.google.com re=/^(?:\\.[a-z]{2,4})?\\/search\\b.*?[#&?]q=([^#&]*)/i\\", 19 | " blank=https://www.google.com/ Google", 20 | "d|dd|ddg|duckduckgo: https://duckduckgo.com/?q=%s DuckDuckGo", 21 | "ya|yd|yandex: https://yandex.com/search/?text=%s Yandex", 22 | "", 23 | "g.m|gm|g.map|gmap: https://www.google.com/maps?q=%s \\", 24 | " blank=https://www.google.com/maps Google Maps", 25 | "b.m|bm|map|b.map|bmap|百度地图: \\", 26 | " https://api.map.baidu.com/geocoder?output=html&address=%s&src=vimium-c", 27 | "y|yt: https://www.youtube.com/results?search_query=%s \\", 28 | " blank=https://www.youtube.com/ YouTube", 29 | "w|wiki: https://www.wikipedia.org/w/index.php?search=%s Wikipedia", 30 | "", 31 | "j|jd|jb|joy|joybuy: https://www.joybuy.com/search?keywords=%s \\", 32 | " blank=https://www.joybuy.com/ Joybuy", 33 | "az|amazon: https://www.amazon.com/s?k=%s \\", 34 | " blank=https://www.amazon.com/ Amazon", 35 | "", 36 | "\\:i: vimium://sed/s/^//,lower\\ $S re= Lower case", 37 | "v.m|math: vimium://math\\ $S re= Calculate", 38 | "v.p: vimium://parse\\ $S re= Redo Search", 39 | "gh|github: https://github.com/search?q=$s \\", 40 | " blank=https://github.com/ GitHub Repo", 41 | "ge|gitee: https://search.gitee.com/?type=repository&q=$s \\", 42 | " blank=https://gitee.com/ Gitee 仓库", 43 | "js\\:|Js: javascript:\\ $S; JavaScript", 44 | "" 45 | ], 46 | "vimSync": true 47 | } 48 | -------------------------------------------------------------------------------- /.config/polybar/launch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | dir="$HOME/.config/polybar" 4 | themes=(`ls --hide="launch.sh" $dir`) 5 | 6 | launch_bar() { 7 | # Terminate already running bar instances 8 | killall -q polybar 9 | 10 | # Wait until the processes have been shut down 11 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 12 | 13 | for m in $(polybar --list-monitors | cut -d":" -f1); do 14 | MONITOR=$m polybar --reload -q main -c "$dir/$style/config.ini" & 15 | done 16 | } 17 | 18 | if [[ "$1" == "--material" ]]; then 19 | style="material" 20 | launch_bar 21 | 22 | elif [[ "$1" == "--shades" ]]; then 23 | style="shades" 24 | launch_bar 25 | 26 | elif [[ "$1" == "--hack" ]]; then 27 | style="hack" 28 | launch_bar 29 | 30 | elif [[ "$1" == "--docky" ]]; then 31 | style="docky" 32 | launch_bar 33 | 34 | elif [[ "$1" == "--cuts" ]]; then 35 | style="cuts" 36 | launch_bar 37 | 38 | elif [[ "$1" == "--shapes" ]]; then 39 | style="shapes" 40 | launch_bar 41 | 42 | elif [[ "$1" == "--grayblocks" ]]; then 43 | style="grayblocks" 44 | launch_bar 45 | 46 | elif [[ "$1" == "--blocks" ]]; then 47 | style="blocks" 48 | launch_bar 49 | 50 | elif [[ "$1" == "--colorblocks" ]]; then 51 | style="colorblocks" 52 | launch_bar 53 | 54 | elif [[ "$1" == "--forest" ]]; then 55 | style="forest" 56 | launch_bar 57 | 58 | elif [[ "$1" == "--pwidgets" ]]; then 59 | style="pwidgets" 60 | launch_bar 61 | 62 | elif [[ "$1" == "--panels" ]]; then 63 | style="panels" 64 | launch_bar 65 | 66 | elif [[ "$1" == "--theos" ]]; then 67 | style="theos" 68 | launch_bar 69 | 70 | else 71 | cat <<- EOF 72 | Usage : launch.sh --theme 73 | 74 | Available Themes : 75 | --blocks --colorblocks --cuts --docky 76 | --forest --grayblocks --hack --material 77 | --panels --pwidgets --shades --shapes 78 | EOF 79 | fi 80 | -------------------------------------------------------------------------------- /.config/nvim/ftplugin/dart.lua: -------------------------------------------------------------------------------- 1 | local stuff = require("my_px.dart") 2 | 3 | local nmap = function(keys, command) 4 | vim.keymap.set("n", keys, command) 5 | end 6 | 7 | nmap("ra", "FlutterRun") 8 | nmap("rs", "FlutterRun --flavor staging --debug -t lib/main-staging.dart") 9 | nmap("rp", "FlutterRun --flavor prod --debug -t lib/main-prod.dart") 10 | nmap("fdt", "FlutterDevTools") 11 | nmap("fcp", "FlutterCopyProfilerUrl") 12 | nmap("fv", "FlutterVisualDebug") 13 | nmap("rf", "FlutterRun -t %") 14 | nmap("rr", "FlutterReload") 15 | nmap("R", "FlutterRestart") 16 | nmap("rq", "FlutterQuit") 17 | nmap("dV", "FlutterVisualDebug") 18 | nmap("dl", "b __FLUTTER_DEV_LOG__") 19 | 20 | vim.keymap.set("n", "rF", function() 21 | -- vim.cmd([[new|0read !dart #:r]]) 22 | vim.cmd([[!dart %]]) 23 | end) 24 | 25 | vim.keymap.set("n", "af", stuff.create_from_json) 26 | vim.keymap.set("n", "cl", ":FlutterLogClear") 27 | vim.keymap.set("n", "lc", ":FlutterLogClear") 28 | 29 | --vim.api.nvim_buf_create_user_command(0, 'SSY', 'FlutterRun --flavor staging --debug -t lib/main-staging.dart') 30 | 31 | -- local get_session = function() 32 | -- return require("dap").session() 33 | -- end 34 | -- 35 | -- local send_command = function(command) 36 | -- get_session():request(command) 37 | -- end 38 | -- 39 | -- nmap("rr", function() 40 | -- send_command("hotReload") 41 | -- end) 42 | -- nmap("rR", function() 43 | -- send_command("hotRestart") 44 | -- end) 45 | -- vim.api.nvim_create_autocmd("BufWritePost", { 46 | -- pattern = "dart", 47 | -- callback = function() 48 | -- vim.schedule(function() 49 | -- send_command("hotReload") 50 | -- end) 51 | -- end 52 | -- }) 53 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/null-ls-nvim/init.lua: -------------------------------------------------------------------------------- 1 | local null_ls = require("null-ls") 2 | 3 | null_ls.setup({ 4 | debug = true, 5 | default_timeout = 5000, 6 | sources = { 7 | null_ls.builtins.formatting.stylua, 8 | -- null_ls.builtins.formatting.prettier.with({ 9 | -- extra_filetypes = { "toml", "svelte" }, 10 | -- }), 11 | -- null_ls.builtins.formatting.google_java_format, 12 | -- null_ls.builtins.formatting.dart_format, 13 | null_ls.builtins.formatting.yamlfmt, 14 | null_ls.builtins.code_actions.eslint, 15 | null_ls.builtins.formatting.black, 16 | null_ls.builtins.formatting.gofmt, 17 | null_ls.builtins.code_actions.gitsigns, 18 | null_ls.builtins.formatting.latexindent, 19 | null_ls.builtins.code_actions.refactoring, 20 | null_ls.builtins.formatting.sqlformat, 21 | null_ls.builtins.formatting["swift_format"], 22 | require("typescript.extensions.null-ls.code-actions"), 23 | }, 24 | }) 25 | 26 | null_ls.deregister("swift-actions") 27 | null_ls.register({ 28 | name = "swift-actions", 29 | filetypes = { "swift" }, 30 | generator = { 31 | fn = function() 32 | local swift_actions = require("my_px.swift") 33 | return { 34 | { 35 | title = "Add padding", 36 | action = function() 37 | swift_actions.add_modifier("padding", ".top", 4) 38 | end, 39 | }, 40 | { 41 | title = "Add font", 42 | action = function() 43 | swift_actions.add_modifier("font", ".headline") 44 | end, 45 | }, 46 | } 47 | end, 48 | }, 49 | }) 50 | 51 | null_ls.deregister("dart-actions") 52 | null_ls.register({ 53 | name = "dart-actions", 54 | method = { require("null-ls").methods.CODE_ACTION }, 55 | filetypes = { "dart" }, 56 | generator = { 57 | fn = function() 58 | local dart_actions = require("my_px.dart") 59 | local capable_actions = {} 60 | for _, action_generator in pairs(dart_actions) do 61 | table.insert(capable_actions, action_generator()) 62 | end 63 | return capable_actions 64 | end, 65 | }, 66 | }) 67 | -------------------------------------------------------------------------------- /.config/nvim/thing.swift: -------------------------------------------------------------------------------- 1 | /* 2 | See LICENSE folder for this sample’s licensing information. 3 | 4 | Abstract: 5 | A view showing the details for a landmark. 6 | */ 7 | 8 | import SwiftUI 9 | 10 | struct LandmarkDetail: View { 11 | @EnvironmentObject var userData: UserData 12 | var landmark: Landmark 13 | 14 | var landmarkIndex: Int { 15 | userData.landmarks.firstIndex(where: { $0.id == landmark.id })! 16 | } 17 | //Stuff 18 | 19 | var body: some View { 20 | VStack { 21 | MapView(coordinate: landmark.locationCoordinate) 22 | .edgesIgnoringSafeArea(.top) 23 | .frame(height: 300) 24 | 25 | CircleImage(image: landmark.image) 26 | .offset(x: 0, y: -130) 27 | .padding(.bottom, -130) 28 | 29 | VStack(alignment: .leading) { 30 | VStack { 31 | HStack { 32 | Text(landmark.name) 33 | .font(.title) 34 | 35 | Button(action: { 36 | self.userData.landmarks[self.landmarkIndex] 37 | .isFavorite.toggle() 38 | }) { 39 | if self.userData.landmarks[self.landmarkIndex].isFavorite { 40 | Image(systemName: "star.fill") 41 | .foregroundColor(Color.yellow) 42 | } else { 43 | Image(systemName: "star") 44 | .foregroundColor(Color.gray) 45 | } 46 | } 47 | } 48 | } 49 | 50 | HStack(alignment: .top) { 51 | Text(landmark.park) 52 | .font(.subheadline) 53 | Spacer() 54 | Text(landmark.state) 55 | .font(.subheadline) 56 | .padding(.left, 12) 57 | } 58 | } 59 | .padding() 60 | 61 | Spacer() 62 | } 63 | } 64 | } 65 | 66 | struct LandmarkDetail_Previews: PreviewProvider { 67 | static var previews: some View { 68 | let userData = UserData() 69 | return LandmarkDetail(landmark: userData.landmarks[0]) 70 | .environmentObject(userData) 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /userChrome.css: -------------------------------------------------------------------------------- 1 | 2 | /* Import theme */ 3 | 4 | @import "Orchis/theme.css"; /**/ 5 | /*@import "Orchis/theme-light.css"; /**/ 6 | /*@import "Orchis/theme-dark.css"; /**/ 7 | 8 | /* 9 | * Here you can enable other theme features not included by default. 10 | * To enable a specific feature, uncomment its @import line by removing "/*" at 11 | * the beginning of the line. To disable it, put the "/*" back. 12 | */ 13 | 14 | /* Hide the tab bar when only one tab is open (GNOMISH) 15 | * You should move the new tab button somewhere else for this to work, because by 16 | * default it is on the tab bar too. */ 17 | /*@import "Orchis/hide-single-tab.css"; /**/ 18 | 19 | /* Limit the URL bar's autocompletion popup's width to the URL bar's width (GNOMISH) 20 | * This feature is included by default for Firefox 70+ */ 21 | /*@import "Orchis/matching-autocomplete-width.css"; /**/ 22 | 23 | /* Rounded title buttons (headerbar window controls) (GNOMISH) */ 24 | /*@import "Orchis/rounded-title-buttons.css"; /**/ 25 | 26 | /* Active tab high contrast */ 27 | @import "Orchis/active-tab-contrast.css"; /* 28 | 29 | /* Use system theme icons instead of Adwaita icons included by theme */ 30 | /*@import "Orchis/system-icons.css"; /**/ 31 | 32 | /* Allow drag window from headerbar buttons (GNOMISH) [BUGGED] 33 | * It can activate button action, with unpleasant behavior. */ 34 | /*@import "Orchis/drag-window-headerbar-buttons.css"; /**/ 35 | 36 | /* Make all tab icons look kinda like symbolic icons */ 37 | /*@import "Orchis/symbolic-tab-icons.css"; /**/ 38 | 39 | /* Hide window buttons (close/min/max) in maximized windows */ 40 | /*@import "Orchis/hide-window-buttons.css"; /**/ 41 | 42 | /* Import a custom stylesheet 43 | * Everything you add in your customChrome.css file (it doesn't exist by 44 | * default) will be included here and preserved between updates, so you can move 45 | * your configuration to that file if you don't like setting it up after every 46 | * update. You can also apply your own custom styles in that file. */ 47 | @import "customChrome.css"; /**/ 48 | -------------------------------------------------------------------------------- /.config/nvim/snippets/groovy.snippets: -------------------------------------------------------------------------------- 1 | snippet bad 2 | plugins { 3 | id 'java' 4 | id 'maven-publish' 5 | id "application" 6 | id 'org.openjfx.javafxplugin' version '0.0.11' 7 | } 8 | 9 | ext { 10 | javaMainClass = "$1.Main" 11 | } 12 | 13 | javafx { 14 | version= "17" 15 | modules= ['javafx.controls', 'javafx.media', 'javafx.web'] 16 | } 17 | 18 | repositories { 19 | mavenLocal() 20 | mavenCentral() 21 | maven { 22 | url = uri('https://repo.maven.apache.org/maven2') 23 | } 24 | maven{ 25 | url = uri('https://mvnrepository.com/') 26 | } 27 | } 28 | 29 | 30 | applicationDefaultJvmArgs += ["--enable-preview"] 31 | 32 | 33 | application { 34 | mainClassName = javaMainClass 35 | } 36 | dependencies { 37 | // implementation 'com.jfoenix:jfoenix:9.0.10' 38 | // testImplementation 'org.junit.jupiter:junit-jupiter:5.7.1' 39 | // testImplementation "org.testfx:testfx-core:4.0.16-alpha" 40 | // testImplementation "org.testfx:openjfx-monocle:jdk-12.0.1+2" // For Java 12 41 | // testImplementation "org.testfx:testfx-junit5:4.0.16-alpha" 42 | // implementation 'org.kordamp.ikonli:ikonli-javafx:12.2.0' 43 | // implementation("com.squareup.moshi:moshi:1.11.0") 44 | // implementation("com.squareup.moshi:moshi-adapters:1.11.0") 45 | // implementation 'org.kordamp.ikonli:ikonli-materialdesign2-pack:12.2.0' 46 | // implementation 'com.jfoenix:jfoenix:9.0.10' 47 | // implementation("com.google.guava:guava:30.1.1-jre") 48 | // implementation 'com.google.code.gson:gson:2.8.6' 49 | implementation group: 'org.reflections', name: 'reflections', version: '0.10.2' 50 | 51 | } 52 | 53 | 54 | tasks.withType(JavaCompile) { 55 | options.encoding = 'iso-8859-1' 56 | } 57 | 58 | test { 59 | useJUnitPlatform() 60 | testLogging { 61 | showStandardStreams = true 62 | events "passed", "skipped", "failed" 63 | exceptionFormat = 'full' 64 | } 65 | } 66 | tasks.withType(JavaCompile).each { 67 | it.options.compilerArgs.add('--enable-preview') 68 | } 69 | 70 | test { 71 | jvmArgs(['--enable-preview']) 72 | } 73 | 74 | -------------------------------------------------------------------------------- /.config/polybar/theos/toggle.sh: -------------------------------------------------------------------------------- 1 | #polybar-msg cmd toggle 2 | 3 | # Probably will be important 4 | #xprop _NET_WM_PID | sed 's/_NET_WM_PID(CARDINAL) = //' 5 | all_visible=$(xdotool search --onlyvisible --name polybar-sysinfo) 6 | 7 | org_bar=$(xdotool search --name polybar-org-timer getwindowpid) 8 | org_timer_bar=$(xdotool search --name polybar-org-real-timer getwindowpid) 9 | workspaces_bar=$(xdotool search --name polybar-workspaces getwindowpid) 10 | sysinfo_bar=$(xdotool search --name polybar-sysinfo getwindowpid) 11 | music_bar=$(xdotool search --name polybar-music-bar getwindowpid) 12 | 13 | 14 | org_active=$(emacsclient --eval "(org-clock-is-active)") 15 | active_clock_exit_code=$? 16 | toggle_to="hide" 17 | num_bottom_visible=0 18 | org_timer_active=$(emacsclient --eval "org-timer-start-time") 19 | active_timer_exit_code=$? 20 | 21 | if [ "$all_visible" = "" ] || [ $1 = "--show-all" ] 22 | then 23 | toggle_to="show" 24 | fi 25 | 26 | polybar-msg -p "$workspaces_bar" cmd $toggle_to 27 | polybar-msg -p "$sysinfo_bar" cmd $toggle_to 28 | 29 | if [ "$org_active" != "nil" ] && [ $active_clock_exit_code != 1 ] || [ $1 = "--show-all" ] 30 | then 31 | polybar-msg -p "$org_bar" cmd $toggle_to 32 | num_bottom_visible=$((num_bottom_visible+1)) 33 | else 34 | polybar-msg -p "$org_bar" cmd hide 35 | fi 36 | 37 | if [ "$org_timer_active" != "nil" ] && [ $active_timer_exit_code != 1 ] || [ $1 = "--show-all" ] 38 | then 39 | polybar-msg -p "$org_timer_bar" cmd $toggle_to 40 | xdotool search --name "polybar-org-real-timer" windowmove --relative 0 $((-75 * num_bottom_visible)) 41 | num_bottom_visible=$((num_bottom_visible+1)) 42 | else 43 | polybar-msg -p "$org_timer_bar" cmd hide 44 | fi 45 | 46 | 47 | music_playing=$(playerctl metadata 2>&1) 48 | if [[ "$music_playing" != "No player"* ]] || [ $1 = "--show-all" ] 49 | then 50 | polybar-msg -p "$music_bar" cmd $toggle_to 51 | xdotool search --name "polybar-music-bar" windowmove --relative 0 $((-75 * num_bottom_visible)) 52 | else 53 | polybar-msg -p "$music_bar" cmd hide 54 | fi 55 | 56 | 57 | xdo raise -N Polybar 58 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/pywal.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Color files 4 | PFILE="$HOME/.config/polybar/material/colors.ini" 5 | RFILE="$HOME/.config/polybar/material/scripts/rofi/colors.rasi" 6 | 7 | # Get colors 8 | pywal_get() { 9 | wal -i "$1" -q -t 10 | } 11 | 12 | # Change colors 13 | change_color() { 14 | # polybar 15 | sed -i -e "s/background = #.*/background = $BG/g" $PFILE 16 | sed -i -e "s/foreground = #.*/foreground = $FG/g" $PFILE 17 | sed -i -e "s/foreground-alt = #.*/foreground-alt = $FGA/g" $PFILE 18 | sed -i -e "s/module-fg = #.*/module-fg = $MF/g" $PFILE 19 | sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE 20 | sed -i -e "s/secondary = #.*/secondary = $SC/g" $PFILE 21 | sed -i -e "s/alternate = #.*/alternate = $AL/g" $PFILE 22 | 23 | # rofi 24 | cat > $RFILE <<- EOF 25 | /* colors */ 26 | 27 | * { 28 | al: #00000000; 29 | bg: ${BG}FF; 30 | bga: ${AC}33; 31 | bar: ${MF}FF; 32 | fg: ${FG}FF; 33 | ac: ${AC}FF; 34 | } 35 | EOF 36 | } 37 | 38 | hex_to_rgb() { 39 | # Convert a hex value WITHOUT the hashtag (#) 40 | R=$(printf "%d" 0x${1:0:2}) 41 | G=$(printf "%d" 0x${1:2:2}) 42 | B=$(printf "%d" 0x${1:4:2}) 43 | } 44 | 45 | get_fg_color(){ 46 | INTENSITY=$(calc "$R*0.299 + $G*0.587 + $B*0.114") 47 | 48 | if [ $(echo "$INTENSITY>186" | bc) -eq 1 ]; then 49 | MF="#202020" 50 | else 51 | MF="#F5F5F5" 52 | fi 53 | } 54 | 55 | # Main 56 | if [[ -f "/usr/bin/wal" ]]; then 57 | if [[ "$1" ]]; then 58 | pywal_get "$1" 59 | 60 | # Source the pywal color file 61 | . "$HOME/.cache/wal/colors.sh" 62 | 63 | BG=`printf "%s\n" "$background"` 64 | FG=`printf "%s\n" "$foreground"` 65 | FGA=`printf "%s\n" "$color8"` 66 | AC=`printf "%s\n" "$color1"` 67 | SC=`printf "%s\n" "$color2"` 68 | AL=`printf "%s\n" "$color3"` 69 | 70 | HEX=${AC:1} 71 | 72 | hex_to_rgb $HEX 73 | get_fg_color 74 | change_color 75 | else 76 | echo -e "[!] Please enter the path to wallpaper. \n" 77 | echo "Usage : ./pywal.sh path/to/image" 78 | fi 79 | else 80 | echo "[!] 'pywal' is not installed." 81 | fi 82 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/xbase/init.lua: -------------------------------------------------------------------------------- 1 | require("xbase").setup({ 2 | --- Log level. Set it to ERROR to ignore everything 3 | log_level = vim.log.levels.DEBUG, 4 | --- Options to be passed to lspconfig.nvim's sourcekit setup function. 5 | --- Usually empty map is sufficient, However, it is strongly recommended to use on_attach key to setup custom mapppings 6 | -- sourcekit = {}, --- Set it to nil to skip lspconfig's sourcekit setup 7 | sourcekit = { 8 | on_attach = require("mystuff.on_attach_conf"), 9 | capabilities = require("cmp_nvim_lsp").default_capabilities(), 10 | }, --- Set it to nil to skip lspconfig's sourcekit setup 11 | --- Statusline provider configurations 12 | --- Simulators to only include. 13 | --- run `xcrun simctl list` to get a full list of available simulator 14 | --- If the list is empty then all simulator available will be included 15 | simctl = { 16 | log_level = vim.log.levels.DEBUG, 17 | iOS = { 18 | "iPhone 14 Pro", --- only use this devices 19 | }, 20 | watchOS = {}, -- all available devices 21 | tvOS = {}, -- all available devices 22 | }, 23 | --- Log buffer configurations 24 | --- Mappings 25 | mappings = { 26 | --- Whether xbase mapping should be disabled. 27 | enable = true, 28 | --- Open build picker. showing targets and configuration. 29 | build_picker = "xb", --- set to 0 to disable 30 | --- Open run picker. showing targets, devices and configuration 31 | run_picker = "xr", --- set to 0 to disable 32 | --- Open watch picker. showing run or build, targets, devices and configuration 33 | watch_picker = "xs", --- set to 0 to disable 34 | --- A list of all the previous pickers 35 | all_picker = "xf", --- set to 0 to disable 36 | --- vertical toggle log buffer 37 | toggle_vsplit_log_buffer = "xl", 38 | }, 39 | -- code_actions = { 40 | -- enable = true, 41 | -- use_builtin_actions = true, 42 | -- custom_actions = { 43 | -- { 44 | -- title = "Cool Actions", 45 | -- action = function() 46 | -- print("WOWW") 47 | -- end, 48 | -- }, 49 | -- }, 50 | -- }, 51 | }) -- see default configuration bellow 52 | -------------------------------------------------------------------------------- /.config/nvim/snippets/typescript.snippets: -------------------------------------------------------------------------------- 1 | snippet cl 2 | console.log($1); 3 | 4 | snippet testchange 5 | test("$1", async () => { 6 | const wrapped = ft.wrap(functions.$2); 7 | 8 | const before: $4 = { 9 | $5 10 | } 11 | const beforeDoc = ft.firestore.makeDocumentSnapshot( 12 | before, 13 | $3 14 | ); 15 | 16 | const after: $4 = { 17 | $5 18 | }; 19 | const afterDoc = ft.firestore.makeDocumentSnapshot( 20 | after, 21 | $3 22 | ); 23 | 24 | const change = ft.makeChange(beforeDoc, afterDoc); 25 | await wrapped(change); 26 | }); 27 | 28 | snippet exp 29 | expect($1).$2 30 | 31 | snippet newtestfile 32 | import * as admin from "firebase-admin"; 33 | const PROJECT_ID = "milestone-five-dev-event"; 34 | admin.initializeApp({ projectId: PROJECT_ID }); 35 | import tester from "firebase-functions-test"; 36 | import * as userFunctions from "../../src/user/user"; 37 | import * as eventFunctions from "../../src/event/event"; 38 | import * as updateFunctions from "../../src/update/update"; 39 | 40 | import * as userConstants from "../../src/user/constants"; 41 | import * as eventConstants from "../../src/event/constants"; 42 | import * as updateConstants from "../../src/event/constants"; 43 | 44 | import * as userModels from "../../src/user/models"; 45 | import * as eventModels from "../../src/event/models"; 46 | import * as updateModels from "../../src/update/models"; 47 | 48 | import * as userMocks from "../user/mocks"; 49 | import * as eventMocks from "./mocks"; 50 | import { teardownTest } from "../util"; 51 | 52 | const ft = tester(); 53 | 54 | beforeEach(async () => { 55 | await ft.firestore.clearFirestoreData({ projectId: PROJECT_ID }); 56 | }); 57 | 58 | describe("", () => { 59 | beforeEach(async () => { 60 | // Here 61 | }); 62 | 63 | test("", async () => { 64 | // Here 65 | }); 66 | }); 67 | 68 | afterAll(async () => { 69 | teardownTest({ ft: ft, projectId: PROJECT_ID }); 70 | }); 71 | 72 | snippet tst 73 | test("$1", async () => { 74 | 75 | }); 76 | snippet cle 77 | console.log("Error $1", e); 78 | snippet ppr 79 | JSON.stringify($1, null, 2); 80 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/org.lua: -------------------------------------------------------------------------------- 1 | -- local actions = require "telescope.actions" 2 | -- local action_set = require "telescope.actions.set" 3 | -- local action_state = require "telescope.actions.state" 4 | -- local pickers = require "telescope.pickers" 5 | -- local finders = require "telescope.finders" 6 | -- local conf = require("telescope.config").values 7 | -- 8 | -- M = {} 9 | -- 10 | -- local save_position = function() 11 | -- local line = vim.fn.line('.'); 12 | -- local col = vim.fn.col('.'); 13 | -- return {line, col}; 14 | -- end 15 | -- 16 | -- local load_position = function(position) vim.fn.cursor(position); end 17 | -- 18 | -- local goToHeading = function() vim.fn.search([[^\* ]], 'bW') end 19 | -- 20 | -- local goToProperty = function(prop) vim.fn.search(':' .. prop .. ':', 'eW') end 21 | -- 22 | -- M.goToHeading = function() 23 | -- vim.cmd([[vim /^\*\+ / %]]) 24 | -- require('telescope.builtin').quickfix({}); 25 | -- end 26 | -- 27 | -- M.goToHomework = function() 28 | -- vim.cmd([[vim /:homework:.*\_.\{-}\*\*\* \zs.*\ze/ %]]) 29 | -- require('telescope.builtin').quickfix({}); 30 | -- end 31 | -- 32 | -- M.goToZoom = function() 33 | -- local pos = save_position(); 34 | -- goToHeading() 35 | -- goToProperty('zoom'); 36 | -- vim.cmd([[normal Wgx]]) 37 | -- load_position(pos); 38 | -- end 39 | -- 40 | -- M.goToSite = function() 41 | -- local pos = save_position(); 42 | -- goToHeading() 43 | -- goToProperty('site') 44 | -- vim.cmd([[normal Wgx]]) 45 | -- load_position(pos); 46 | -- end 47 | -- 48 | -- M.goToNotes = function() 49 | -- goToHeading() 50 | -- vim.fn.search([[\** Notes]], 'W') 51 | -- -- TODO: If no notes found create subheading 52 | -- end 53 | -- 54 | -- return M; 55 | -- 56 | -- -- Example of way to do picker 57 | -- -- pickers.new({}, { 58 | -- -- prompt_title = "Find Files", 59 | -- -- finder = require("telescope.finders").new_table({ 60 | -- -- results = {"sup", "my", "dude"} 61 | -- -- }), 62 | -- -- sorter = require("telescope.config").values.generic_sorter({}) 63 | -- -- }):find() 64 | -- -- 65 | -- -- Regex to find a property 66 | -- -- ^\* .*\_.\{-}:zoom:\s*\zs.* 67 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-lspconfig/init.lua: -------------------------------------------------------------------------------- 1 | local lspconfig = vim.lsp.config 2 | 3 | local capabilities = require("cmp_nvim_lsp").default_capabilities() 4 | 5 | local on_attach = require("mystuff/on_attach_conf") 6 | 7 | local servers = { 8 | "tailwindcss", 9 | "sourcekit", 10 | "svelte", 11 | "kotlin_language_server", 12 | -- "smithy_ls", 13 | --"jsonls", 14 | -- "jdtls", 15 | "svelte", 16 | "markdown_oxide", 17 | "vuels", 18 | "cssls", 19 | "gopls", 20 | "bashls", 21 | "html", 22 | "awk_ls", 23 | "perlnavigator", 24 | "pyright", 25 | } 26 | 27 | for _, lsp in ipairs(servers) do 28 | if lsp == "typos_lsp" then 29 | lspconfig(lsp, { 30 | capabilities = capabilities, 31 | on_attach = on_attach, 32 | flags = { debounce_text_changes = 150 }, 33 | filetypes = { "markdown" }, 34 | }) 35 | else 36 | lspconfig(lsp, { 37 | capabilities = capabilities, 38 | on_attach = on_attach, 39 | flags = { debounce_text_changes = 150 }, 40 | }) 41 | end 42 | end 43 | 44 | local luaLspConfig = { 45 | cmd = { "lua-language-server" }, 46 | capabilities = capabilities, 47 | on_attach = on_attach, 48 | settings = { 49 | Lua = { 50 | runtime = { 51 | -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) 52 | version = "LuaJIT", 53 | -- Setup your lua path 54 | path = vim.split(package.path, ";"), 55 | }, 56 | diagnostics = { 57 | -- Get the language server to recognize the `vim` global 58 | globals = { "vim" }, 59 | }, 60 | workspace = { 61 | checkThirdParty = false, 62 | library = vim.api.nvim_get_runtime_file("", true), 63 | }, 64 | telemetry = { 65 | enable = false, 66 | }, 67 | }, 68 | }, 69 | } 70 | 71 | -- local luadev = require("lua-dev").setup({lspconfig=luaLspConfig}) 72 | -- require("lazydev").setup({}) 73 | 74 | lspconfig('lua_ls',{ 75 | capabilities = capabilities, 76 | on_attach = on_attach, 77 | flags = { debounce_text_changes = 150 }, 78 | settings = { 79 | Lua = { 80 | completion = { 81 | callSnippet = "Replace", 82 | }, 83 | workspace = { 84 | checkThirdParty = false, 85 | library = vim.api.nvim_get_runtime_file("", true), 86 | }, 87 | }, 88 | }, 89 | }) 90 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/random.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Color files 4 | PFILE="$HOME/.config/polybar/material/colors.ini" 5 | RFILE="$HOME/.config/polybar/material/scripts/rofi/colors.rasi" 6 | 7 | # Change colors 8 | change_color() { 9 | # polybar 10 | sed -i -e "s/background = #.*/background = $BG/g" $PFILE 11 | sed -i -e "s/foreground = #.*/foreground = $FG/g" $PFILE 12 | sed -i -e "s/foreground-alt = #.*/foreground-alt = $FGA/g" $PFILE 13 | sed -i -e "s/module-fg = #.*/module-fg = $MF/g" $PFILE 14 | sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE 15 | sed -i -e "s/secondary = #.*/secondary = $SC/g" $PFILE 16 | sed -i -e "s/alternate = #.*/alternate = $AL/g" $PFILE 17 | 18 | # rofi 19 | cat > $RFILE <<- EOF 20 | /* colors */ 21 | 22 | * { 23 | al: #00000000; 24 | bg: ${BG}FF; 25 | bga: ${AC}33; 26 | bar: ${MF}FF; 27 | fg: ${FG}FF; 28 | ac: ${AC}FF; 29 | } 30 | EOF 31 | 32 | polybar-msg cmd restart 33 | } 34 | 35 | get_random_number() { 36 | RNUM=$(( ($RANDOM % $1) + 1 )) 37 | } 38 | 39 | get_random_color() { 40 | RCOLOR="#" 41 | for i in 1 2 3 4 5 6 42 | do 43 | get_random_number "16" 44 | case $RNUM in 45 | "1") NEXTDIGIT="1";; 46 | "2") NEXTDIGIT="2";; 47 | "3") NEXTDIGIT="3";; 48 | "4") NEXTDIGIT="4";; 49 | "5") NEXTDIGIT="5";; 50 | "6") NEXTDIGIT="6";; 51 | "7") NEXTDIGIT="7";; 52 | "8") NEXTDIGIT="8";; 53 | "9") NEXTDIGIT="9";; 54 | "10") NEXTDIGIT="A";; 55 | "11") NEXTDIGIT="B";; 56 | "12") NEXTDIGIT="C";; 57 | "13") NEXTDIGIT="D";; 58 | "14") NEXTDIGIT="E";; 59 | "15") NEXTDIGIT="F";; 60 | "16") NEXTDIGIT="0";; 61 | esac 62 | RCOLOR="$RCOLOR$NEXTDIGIT" 63 | done 64 | echo $RCOLOR 65 | } 66 | 67 | hex_to_rgb() { 68 | # Convert a hex value WITHOUT the hashtag (#) 69 | R=$(printf "%d" 0x${1:0:2}) 70 | G=$(printf "%d" 0x${1:2:2}) 71 | B=$(printf "%d" 0x${1:4:2}) 72 | } 73 | 74 | get_fg_color(){ 75 | INTENSITY=$(calc "$R*0.299 + $G*0.587 + $B*0.114") 76 | 77 | if [ $(echo "$INTENSITY>186" | bc) -eq 1 ]; then 78 | MF="#0a0a0a" 79 | else 80 | MF="#F5F5F5" 81 | fi 82 | } 83 | 84 | # Main 85 | BG='#1F1F1F' # change to light bg 86 | FG='#FFFFFF' # change to dark fg 87 | FGA=`get_random_color` 88 | AC=`get_random_color` 89 | SC=`get_random_color` 90 | AL=`get_random_color` 91 | 92 | HEX=${AC:1} 93 | 94 | hex_to_rgb $HEX 95 | get_fg_color 96 | change_color 97 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/plugin_conf/nvim-cmp/init.lua: -------------------------------------------------------------------------------- 1 | local cmp = require("cmp") 2 | 3 | cmp.setup({ 4 | enabled = function() 5 | return vim.api.nvim_get_option_value("buftype", { buf = 0 }) ~= "prompt" or require("cmp_dap").is_dap_buffer() 6 | end, 7 | snippet = { 8 | -- REQUIRED - you must specify a snippet engine 9 | expand = function(args) 10 | -- vim.fn["vsnip#anonymous"](args.body) -- For `vsnip` users. 11 | -- require("luasnip").lsp_expand(args.body) -- For `luasnip` users. 12 | -- vim.fn["UltiSnips#Anon"](args.body) -- For `ultisnips` users. 13 | require("snippy").expand_snippet(args.body) -- For `snippy` users. 14 | end, 15 | }, 16 | preselect = cmp.PreselectMode.None, 17 | mapping = { 18 | [""] = cmp.mapping(cmp.mapping.scroll_docs(-4), { "i", "c" }), 19 | [""] = cmp.mapping(cmp.mapping.scroll_docs(4), { "i", "c" }), 20 | [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), 21 | [""] = cmp.mapping(cmp.mapping.confirm({ select = true })), 22 | [""] = cmp.mapping(cmp.mapping.confirm({ select = false })), 23 | [""] = cmp.mapping(function() 24 | if cmp.visible() then 25 | cmp.select_next_item() 26 | end 27 | end, { "i", "s" }), 28 | [""] = cmp.mapping(function() 29 | if cmp.visible() then 30 | cmp.select_prev_item() 31 | end 32 | end, { "i", "s" }), 33 | [""] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `` mapping. 34 | [""] = cmp.mapping({ 35 | i = cmp.mapping.abort(), 36 | c = cmp.mapping.close(), 37 | }), 38 | }, 39 | -- completion = { autocomplete = false }, 40 | sources = cmp.config.sources({ 41 | { name = "nvim_lsp" }, -- { name = 'vsnip' }, -- For vsnip users. 42 | { name = "snippy" }, -- For snippy users. 43 | -- { name = 'luasnip' }, -- For luasnip users. 44 | { name = "neorg" }, 45 | }, { 46 | { name = "buffer" }, 47 | }), 48 | }) 49 | 50 | -- Use buffer source for `/` (if you enabled `native_menu`, this won't work anymore). 51 | cmp.setup.cmdline("/", { sources = { { name = "buffer" } } }) 52 | 53 | cmp.setup.filetype({ "dap-repl", "dapui_watches", "dapui_hover" }, { 54 | sources = { 55 | { name = "dap" }, 56 | }, 57 | }) 58 | 59 | cmp.setup.filetype({ 'markdown' }, { 60 | completion = { autocomplete = false } 61 | }) 62 | 63 | -- require("cmp").setup.buffer({ 64 | -- sources = { 65 | -- { name = "buffer" }, 66 | -- { name = "neorg" }, 67 | -- }, 68 | -- }) 69 | 70 | -- Look into adding https://github.com/rcarriga/cmp-dap 71 | -------------------------------------------------------------------------------- /packages.txt: -------------------------------------------------------------------------------- 1 | acpid 2 | adobe-source-han-sans-kr-fonts 3 | alacritty 4 | alsa-utils 5 | android-sdk 6 | android-sdk-build-tools-31.0.0 7 | arandr 8 | ardour 9 | audacity 10 | autorandr 11 | base 12 | battery_warning 13 | blender 14 | bluez 15 | breeze 16 | cava 17 | cmake 18 | conky 19 | copyq 20 | create-next-app 21 | cronie 22 | dhclient 23 | dmidecode 24 | dragon-drop 25 | dunst 26 | efibootmgr 27 | emacs 28 | equilux-theme 29 | ezra-bible-app 30 | feh 31 | ferdi-bin 32 | figma-linux-bin 33 | firebase-tools-bin 34 | firefox 35 | flameshot 36 | flutter 37 | font-manager 38 | fuse2 39 | fzf 40 | gimp 41 | gnome-keyring 42 | gnucash 43 | hdparm 44 | helvum 45 | htop-vim 46 | imagemagick 47 | inconsolata-psf-git 48 | intel-ucode 49 | jq 50 | kdeconnect 51 | kdenlive 52 | kitty 53 | lightdm-gtk-greeter 54 | linux-firmware 55 | lua-language-server 56 | lxappearance 57 | mpv 58 | ncmpcpp 59 | neofetch 60 | neovim-git 61 | nerd-fonts-complete 62 | network-manager-applet 63 | notion-app-enhanced 64 | noto-fonts-emoji 65 | npm 66 | nsxiv 67 | nvidia 68 | nvm 69 | obs-studio 70 | os-prober 71 | pamixer 72 | pandoc 73 | perl-font-freetype 74 | picom 75 | pipewire-alsa 76 | playerctl 77 | polybar 78 | polybar-scripts-git 79 | prettier 80 | publii 81 | pulsemixer 82 | python-pip 83 | qalculate-gtk-nognome 84 | qjackctl 85 | qpwgraph 86 | redshift 87 | ripgrep 88 | rofi-bluetooth-git 89 | rofimoji 90 | scrcpy 91 | signal-desktop 92 | stalonetray 93 | syncthing 94 | texlive-bibtexextra 95 | texlive-fontsextra 96 | texlive-formatsextra 97 | texlive-games 98 | texlive-humanities 99 | texlive-music 100 | texlive-pictures 101 | texlive-pstricks 102 | texlive-publishers 103 | texlive-science 104 | thunar-extended 105 | tmux 106 | tree 107 | ts-node 108 | ttf-all-the-icons 109 | ttf-material-design-iconic-font 110 | typescript-language-server 111 | update-grub 112 | usbutils 113 | vlc 114 | wget 115 | xbacklight-ctl-git 116 | xclip 117 | xdo 118 | xdotool 119 | xf86-video-vesa 120 | xorg-bdftopcf 121 | xorg-docs 122 | xorg-fonts-100dpi 123 | xorg-fonts-75dpi 124 | xorg-font-util 125 | xorg-iceauth 126 | xorg-mkfontscale 127 | xorg-server-devel 128 | xorg-server-xephyr 129 | xorg-server-xnest 130 | xorg-server-xvfb 131 | xorg-sessreg 132 | xorg-smproxy 133 | xorg-x11perf 134 | xorg-xcmsdb 135 | xorg-xcursorgen 136 | xorg-xdriinfo 137 | xorg-xev 138 | xorg-xgamma 139 | xorg-xhost 140 | xorg-xinit 141 | xorg-xinput 142 | xorg-xkbevd 143 | xorg-xkbutils 144 | xorg-xkill 145 | xorg-xlsatoms 146 | xorg-xlsclients 147 | xorg-xpr 148 | xorg-xrefresh 149 | xorg-xsetroot 150 | xorg-xvinfo 151 | xorg-xwayland 152 | xorg-xwd 153 | xorg-xwininfo 154 | xorg-xwud 155 | xournalpp 156 | xss-lock 157 | yarn 158 | yay 159 | youtube-music-bin 160 | yt-dlp 161 | zathura-pdf-poppler 162 | zerotier-one 163 | zoom 164 | zsh-completions 165 | -------------------------------------------------------------------------------- /.local/share/scripts/bible: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import sys 4 | from bs4 import BeautifulSoup 5 | import argparse 6 | import requests 7 | import urllib.parse 8 | 9 | 10 | def parse_args(): 11 | default_version = "NIV" 12 | parser = argparse.ArgumentParser( 13 | description="Fetch Bible references from biblegateway.com" 14 | ) 15 | parser.add_argument("reference", nargs="*", help="bible reference") 16 | parser.add_argument( 17 | "--version", 18 | nargs="?", 19 | help="translation (e.g. NIV, NLT)", 20 | default=default_version, 21 | ) 22 | parser.add_argument( 23 | "--verse-numbers", 24 | action="store_true", 25 | default=False, 26 | help="print verse numbers (hidden by default)", 27 | ) 28 | parser.add_argument( 29 | "--ascii", 30 | action="store_true", 31 | default=False, 32 | help="translate Unicode to ASCII (useful on Windows)", 33 | ) 34 | if len(sys.argv) == 1: 35 | parser.print_help() 36 | sys.exit(1) 37 | args = parser.parse_args() 38 | return ( 39 | " ".join(args.reference), 40 | args.version or default_version, 41 | args.verse_numbers, 42 | args.ascii, 43 | ) 44 | 45 | 46 | def get_soup(query, version): 47 | query = urllib.parse.quote_plus(query) 48 | r = requests.get( 49 | "https://www.biblegateway.com/passage/?search=" + query + "&version=" + version 50 | ) 51 | return BeautifulSoup(r.text, "html.parser") 52 | 53 | 54 | def clean(tag): 55 | for t in tag.find_all("sup"): 56 | if show_verse_numbers and "versenum" in t["class"]: 57 | continue 58 | t.decompose() 59 | if not show_verse_numbers: 60 | for t in tag.find_all(class_="chapternum"): 61 | t.decompose() 62 | for t in tag.find_all(class_="surface"): 63 | t.decompose() 64 | 65 | 66 | def render(tag): 67 | clean(tag) 68 | text = "" 69 | for t in tag.descendants: 70 | if isinstance(t, str): 71 | text += t 72 | elif t.name == "br": 73 | text += "\n" 74 | return text 75 | 76 | 77 | def get_passages(soup): 78 | passages = soup.find_all(class_="passage-table") 79 | if passages is None: 80 | return 81 | text = "" 82 | for p in passages: 83 | text += get_passage(p) + "\n\n" 84 | return text.replace(' ', ' ') 85 | 86 | 87 | def get_passage(soup): 88 | root = soup.find(class_="result-text-style-normal") 89 | if root is None: 90 | return 91 | return "\n\n".join(map(lambda t: render(t), root.select("p, div.poetry p"))) 92 | 93 | 94 | query, version, show_verse_numbers, use_ascii = parse_args() 95 | soup = get_soup(query, version) 96 | passage = get_passages(soup).strip() 97 | if passage is not None: 98 | print(passage) 99 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/color-switch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | SDIR="$HOME/.config/polybar/material/scripts" 4 | 5 | # Launch Rofi 6 | MENU="$(rofi -no-config -no-lazy-grab -sep "|" -dmenu -i -p '' \ 7 | -theme $SDIR/rofi/styles.rasi \ 8 | <<< "♥ amber|♥ blue|♥ blue-gray|♥ brown|♥ cyan|♥ deep-orange|\ 9 | ♥ deep-purple|♥ green|♥ gray|♥ indigo|♥ blue-light|♥ green-light|\ 10 | ♥ lime|♥ orange|♥ pink|♥ purple|♥ red|♥ teal|♥ yellow|♥ amber-dark|\ 11 | ♥ blue-dark|♥ blue-gray-dark|♥ brown-dark|♥ cyan-dark|♥ deep-orange-dark|\ 12 | ♥ deep-purple-dark|♥ green-dark|♥ gray-dark|♥ indigo-dark|♥ blue-light-dark|\ 13 | ♥ green-light-dark|♥ lime-dark|♥ orange-dark|♥ pink-dark|♥ purple-dark|♥ red-dark|♥ teal-dark|♥ yellow-dark|")" 14 | case "$MENU" in 15 | ## Light Colors 16 | *amber) "$SDIR"/colors-light.sh --amber ;; 17 | *blue) "$SDIR"/colors-light.sh --blue ;; 18 | *blue-gray) "$SDIR"/colors-light.sh --blue-gray ;; 19 | *brown) "$SDIR"/colors-light.sh --brown ;; 20 | *cyan) "$SDIR"/colors-light.sh --cyan ;; 21 | *deep-orange) "$SDIR"/colors-light.sh --deep-orange ;; 22 | *deep-purple) "$SDIR"/colors-light.sh --deep-purple ;; 23 | *green) "$SDIR"/colors-light.sh --green ;; 24 | *gray) "$SDIR"/colors-light.sh --gray ;; 25 | *indigo) "$SDIR"/colors-light.sh --indigo ;; 26 | *blue-light) "$SDIR"/colors-light.sh --light-blue ;; 27 | *green-light) "$SDIR"/colors-light.sh --light-green ;; 28 | *lime) "$SDIR"/colors-light.sh --lime ;; 29 | *orange) "$SDIR"/colors-light.sh --orange ;; 30 | *pink) "$SDIR"/colors-light.sh --pink ;; 31 | *purple) "$SDIR"/colors-light.sh --purple ;; 32 | *red) "$SDIR"/colors-light.sh --red ;; 33 | *teal) "$SDIR"/colors-light.sh --teal ;; 34 | *yellow) "$SDIR"/colors-light.sh --yellow ;; 35 | ## Dark Colors 36 | *amber-dark) "$SDIR"/colors-dark.sh --amber ;; 37 | *blue-dark) "$SDIR"/colors-dark.sh --blue ;; 38 | *blue-gray-dark) "$SDIR"/colors-dark.sh --blue-gray ;; 39 | *brown-dark) "$SDIR"/colors-dark.sh --brown ;; 40 | *cyan-dark) "$SDIR"/colors-dark.sh --cyan ;; 41 | *deep-orange-dark) "$SDIR"/colors-dark.sh --deep-orange ;; 42 | *deep-purple-dark) "$SDIR"/colors-dark.sh --deep-purple ;; 43 | *green-dark) "$SDIR"/colors-dark.sh --green ;; 44 | *gray-dark) "$SDIR"/colors-dark.sh --gray ;; 45 | *indigo-dark) "$SDIR"/colors-dark.sh --indigo ;; 46 | *blue-light-dark) "$SDIR"/colors-dark.sh --light-blue ;; 47 | *green-light-dark) "$SDIR"/colors-dark.sh --light-green ;; 48 | *lime-dark) "$SDIR"/colors-dark.sh --lime ;; 49 | *orange-dark) "$SDIR"/colors-dark.sh --orange ;; 50 | *pink-dark) "$SDIR"/colors-dark.sh --pink ;; 51 | *purple-dark) "$SDIR"/colors-dark.sh --purple ;; 52 | *red-dark) "$SDIR"/colors-dark.sh --red ;; 53 | *teal-dark) "$SDIR"/colors-dark.sh --teal ;; 54 | *yellow-dark) "$SDIR"/colors-dark.sh --yellow 55 | esac 56 | -------------------------------------------------------------------------------- /.Xresources: -------------------------------------------------------------------------------- 1 | ! URxvt 2 | 3 | ! General settings 4 | URxvt.saveLines: 2000 5 | URxvt.scrollBar: False 6 | URxvt.scrollstyle: rxvt 7 | URxvt.termName: xterm-256color 8 | URxvt.urgentOnBell: false 9 | URxvt.cursorBlink: False 10 | 11 | ! Extensions 12 | URxvt.perl-ext-common: default,clipboard,keyboard-select,url-select,resize-font,clipboard,url-select,keyboard-select,tabbedex,selection-to-clipboard,config-reload,font-size 13 | URxvt.url-select.launcher: firefox 14 | URxvt.url-select.underline: true 15 | URxvt.keysym.M-u: perl:url-select:select_next 16 | URxvt.keysym.M-Escape: perl:keyboard-select:activate 17 | URxvt.keysym.M-s: perl:keyboard-select:search 18 | URxvt.keysym.M-c: perl:clipboard:copy 19 | URxvt.keysym.M-v: eval:paste_clipboard 20 | URxvt.keyboard-select.clipboard: true 21 | URxvt.urlLauncher: xdg-open 22 | URxvt.urlButton: 1 23 | URxvt.underlineURLs: true 24 | 25 | !URxvt.copyCommand: xclip -i -selection clipboard 26 | !URxvt.pasteCommand: xclip -o -selection clipboard 27 | 28 | URxvt.tabbed.tabbar-fg: 2 29 | URxvt.tabbed.tabbar-bg: 0 30 | URxvt.tabbed.tab-fg: 3 31 | URxvt.tabbed.tab-bg: 0 32 | 33 | ! Fonts 34 | URxvt.keysym.C-minus: resize-font:smaller 35 | URxvt.keysym.C-plus: resize-font:bigger 36 | URxvt.resize-font.step: 1 37 | 38 | !Courier 39 | !URxvt.font: xft:Courier-10 40 | 41 | !!Inconsolata 42 | URxvt.font: xft:InconsolataLGC Nerd Font:style=Medium:size=12 43 | URxvt.boldFont xft:Inconsolata Nerd Font Mono:style=Regular:size=14 44 | URxvt.italicFont: xft:Inconsolata Nerd Font Mono:style=Italic:size=14 45 | !URxvt.letterSpace: -1 46 | 47 | !Inconsolata-g 48 | !URxvt.font: xft:InconsolataG-10 49 | !URxvt.letterSpace: -1 50 | 51 | !Anonymous Pro 52 | !URxvt.font: xft:Anonymous\ Pro-12 53 | !URxvt.letterSpace: -1 54 | 55 | !Monaco 56 | !URxvt.font: xft:Monaco-10 57 | !URxvt.letterSpace: -1 58 | 59 | !Droid Sans Mono 60 | !URxvt.font: xft:Droid Sans Mono-10 61 | !URxvt.letterSpace: -1 62 | 63 | !DejaVu Sans 64 | !URxvt.font: xft:DejaVu Sans Mono-10 65 | !URxvt.letterSpace: -1 66 | 67 | !Manospace 68 | !URxvt.font: xft:Monospace-10 69 | !URxvt.letterSpace: -1 70 | 71 | !Terminus 72 | !URxvt.font: xft:Terminus-10 73 | 74 | ! Tango theme 75 | 76 | URxvt.background: #1C1C1C 77 | URxvt.foreground: #DEDEDE 78 | 79 | ! black 80 | URxvt.color0 : #2E3436 81 | URxvt.color8 : #555753 82 | ! red 83 | URxvt.color1 : #CC0000 84 | URxvt.color9 : #EF2929 85 | ! green 86 | URxvt.color2 : #4E9A06 87 | URxvt.color10 : #8AE234 88 | ! yellow 89 | URxvt.color3 : #C4A000 90 | URxvt.color11 : #FCE94F 91 | ! blue 92 | URxvt.color4 : #3465A4 93 | URxvt.color12 : #7f87bd 94 | ! magenta 95 | URxvt.color5 : #75507B 96 | URxvt.color13 : #AD7FA8 97 | ! cyan 98 | URxvt.color6 : #06989A 99 | URxvt.color14 : #d0ddff 100 | ! white 101 | URxvt.color7 : #D3D7CF 102 | URxvt.color15 : #EEEEEC 103 | 104 | ! Weird ISO thing when i hold ctrl + shift, disabled 105 | URxvt.iso14755: false 106 | URxvt.iso14755_52: false 107 | 108 | 109 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/colors-dark.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Color files 4 | PFILE="$HOME/.config/polybar/material/colors.ini" 5 | RFILE="$HOME/.config/polybar/material/scripts/rofi/colors.rasi" 6 | 7 | # Change colors 8 | change_color() { 9 | # polybar 10 | sed -i -e 's/background = #.*/background = #1F1F1F/g' $PFILE 11 | sed -i -e 's/foreground = #.*/foreground = #FFFFFF/g' $PFILE 12 | sed -i -e 's/foreground-alt = #.*/foreground-alt = #8F8F8F/g' $PFILE 13 | sed -i -e "s/module-fg = #.*/module-fg = $MF/g" $PFILE 14 | sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE 15 | sed -i -e 's/secondary = #.*/secondary = #E53935/g' $PFILE 16 | sed -i -e 's/alternate = #.*/alternate = #7cb342/g' $PFILE 17 | 18 | # rofi 19 | cat > $RFILE <<- EOF 20 | /* colors */ 21 | 22 | * { 23 | al: #00000000; 24 | bg: #1F1F1FFF; 25 | bga: ${AC}33; 26 | bar: ${MF}FF; 27 | fg: #FFFFFFFF; 28 | ac: ${AC}FF; 29 | } 30 | EOF 31 | 32 | polybar-msg cmd restart 33 | } 34 | 35 | if [[ $1 = "--amber" ]]; then 36 | MF="#1F1F1F" 37 | AC="#ffb300" 38 | change_color 39 | elif [[ $1 = "--blue" ]]; then 40 | MF="#FFFFFF" 41 | AC="#1e88e5" 42 | change_color 43 | elif [[ $1 = "--blue-gray" ]]; then 44 | MF="#FFFFFF" 45 | AC="#546e7a" 46 | change_color 47 | elif [[ $1 = "--brown" ]]; then 48 | MF="#FFFFFF" 49 | AC="#6d4c41" 50 | change_color 51 | elif [[ $1 = "--cyan" ]]; then 52 | MF="#1F1F1F" 53 | AC="#00acc1" 54 | change_color 55 | elif [[ $1 = "--deep-orange" ]]; then 56 | MF="#FFFFFF" 57 | AC="#f4511e" 58 | change_color 59 | elif [[ $1 = "--deep-purple" ]]; then 60 | MF="#FFFFFF" 61 | AC="#5e35b1" 62 | change_color 63 | elif [[ $1 = "--green" ]]; then 64 | MF="#FFFFFF" 65 | AC="#43a047" 66 | change_color 67 | elif [[ $1 = "--gray" ]]; then 68 | MF="#FFFFFF" 69 | AC="#757575" 70 | change_color 71 | elif [[ $1 = "--indigo" ]]; then 72 | MF="#FFFFFF" 73 | AC="#3949ab" 74 | change_color 75 | elif [[ $1 = "--light-blue" ]]; then 76 | MF="#1F1F1F" 77 | AC="#039be5" 78 | change_color 79 | elif [[ $1 = "--light-green" ]]; then 80 | MF="#1F1F1F" 81 | AC="#7cb342" 82 | change_color 83 | elif [[ $1 = "--lime" ]]; then 84 | MF="#1F1F1F" 85 | AC="#c0ca33" 86 | change_color 87 | elif [[ $1 = "--orange" ]]; then 88 | MF="#1F1F1F" 89 | AC="#fb8c00" 90 | change_color 91 | elif [[ $1 = "--pink" ]]; then 92 | MF="#FFFFFF" 93 | AC="#d81b60" 94 | change_color 95 | elif [[ $1 = "--purple" ]]; then 96 | MF="#FFFFFF" 97 | AC="#8e24aa" 98 | change_color 99 | elif [[ $1 = "--red" ]]; then 100 | MF="#FFFFFF" 101 | AC="#e53935" 102 | change_color 103 | elif [[ $1 = "--teal" ]]; then 104 | MF="#FFFFFF" 105 | AC="#00897b" 106 | change_color 107 | elif [[ $1 = "--yellow" ]]; then 108 | MF="#1F1F1F" 109 | AC="#fdd835" 110 | change_color 111 | else 112 | cat <<- _EOF_ 113 | No option specified, Available options: 114 | --amber --blue --blue-gray --brown 115 | --cyan --deep-orange --deep-purple --green 116 | --gray --indigo --light-blue --light-green 117 | --lime --orange --pink --purple 118 | --red --teal --yellow 119 | _EOF_ 120 | fi 121 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/colors-light.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Color files 4 | PFILE="$HOME/.config/polybar/material/colors.ini" 5 | RFILE="$HOME/.config/polybar/material/scripts/rofi/colors.rasi" 6 | 7 | # Change colors 8 | change_color() { 9 | # polybar 10 | sed -i -e 's/background = #.*/background = #FFFFFF/g' $PFILE 11 | sed -i -e 's/foreground = #.*/foreground = #2E2E2E/g' $PFILE 12 | sed -i -e 's/foreground-alt = #.*/foreground-alt = #656565/g' $PFILE 13 | sed -i -e "s/module-fg = #.*/module-fg = $MF/g" $PFILE 14 | sed -i -e "s/primary = #.*/primary = $AC/g" $PFILE 15 | sed -i -e 's/secondary = #.*/secondary = #E53935/g' $PFILE 16 | sed -i -e 's/alternate = #.*/alternate = #7cb342/g' $PFILE 17 | 18 | # rofi 19 | cat > $RFILE <<- EOF 20 | /* colors */ 21 | 22 | * { 23 | al: #00000000; 24 | bg: #FFFFFFFF; 25 | bga: ${AC}33; 26 | bar: ${MF}FF; 27 | fg: #2E2E2EFF; 28 | ac: ${AC}FF; 29 | } 30 | EOF 31 | 32 | polybar-msg cmd restart 33 | } 34 | 35 | if [[ $1 = "--amber" ]]; then 36 | MF="#2E2E2E" 37 | AC="#ffb300" 38 | change_color 39 | elif [[ $1 = "--blue" ]]; then 40 | MF="#2E2E2E" 41 | AC="#1e88e5" 42 | change_color 43 | elif [[ $1 = "--blue-gray" ]]; then 44 | MF="#FFFFFF" 45 | AC="#546e7a" 46 | change_color 47 | elif [[ $1 = "--brown" ]]; then 48 | MF="#FFFFFF" 49 | AC="#6d4c41" 50 | change_color 51 | elif [[ $1 = "--cyan" ]]; then 52 | MF="#2E2E2E" 53 | AC="#00acc1" 54 | change_color 55 | elif [[ $1 = "--deep-orange" ]]; then 56 | MF="#FFFFFF" 57 | AC="#f4511e" 58 | change_color 59 | elif [[ $1 = "--deep-purple" ]]; then 60 | MF="#FFFFFF" 61 | AC="#5e35b1" 62 | change_color 63 | elif [[ $1 = "--green" ]]; then 64 | MF="#FFFFFF" 65 | AC="#43a047" 66 | change_color 67 | elif [[ $1 = "--gray" ]]; then 68 | MF="#FFFFFF" 69 | AC="#757575" 70 | change_color 71 | elif [[ $1 = "--indigo" ]]; then 72 | MF="#FFFFFF" 73 | AC="#3949ab" 74 | change_color 75 | elif [[ $1 = "--light-blue" ]]; then 76 | MF="#2E2E2E" 77 | AC="#039be5" 78 | change_color 79 | elif [[ $1 = "--light-green" ]]; then 80 | MF="#2E2E2E" 81 | AC="#7cb342" 82 | change_color 83 | elif [[ $1 = "--lime" ]]; then 84 | MF="#2E2E2E" 85 | AC="#c0ca33" 86 | change_color 87 | elif [[ $1 = "--orange" ]]; then 88 | MF="#2E2E2E" 89 | AC="#fb8c00" 90 | change_color 91 | elif [[ $1 = "--pink" ]]; then 92 | MF="#FFFFFF" 93 | AC="#d81b60" 94 | change_color 95 | elif [[ $1 = "--purple" ]]; then 96 | MF="#FFFFFF" 97 | AC="#8e24aa" 98 | change_color 99 | elif [[ $1 = "--red" ]]; then 100 | MF="#FFFFFF" 101 | AC="#e53935" 102 | change_color 103 | elif [[ $1 = "--teal" ]]; then 104 | MF="#FFFFFF" 105 | AC="#00897b" 106 | change_color 107 | elif [[ $1 = "--yellow" ]]; then 108 | MF="#2E2E2E" 109 | AC="#fdd835" 110 | change_color 111 | else 112 | cat <<- _EOF_ 113 | No option specified, Available options: 114 | --amber --blue --blue-gray --brown 115 | --cyan --deep-orange --deep-purple --green 116 | --gray --indigo --light-blue --light-green 117 | --lime --orange --pink --purple 118 | --red --teal --yellow 119 | _EOF_ 120 | fi 121 | -------------------------------------------------------------------------------- /.tmux.conf: -------------------------------------------------------------------------------- 1 | # switch windows alt+number 2 | bind-key -n M-1 select-window -t 1 3 | bind-key -n M-2 select-window -t 2 4 | bind-key -n M-3 select-window -t 3 5 | bind-key -n M-4 select-window -t 4 6 | bind-key -n M-5 select-window -t 5 7 | bind-key -n M-6 select-window -t 6 8 | bind-key -n M-7 select-window -t 7 9 | bind-key -n M-8 select-window -t 8 10 | bind-key -n M-9 select-window -t 9 11 | bind-key -n M-f resize-pane -Z 12 | 13 | 14 | set-option -g default-shell /bin/zsh 15 | set-option -g allow-passthrough on 16 | set -g default-terminal "screen-256color" 17 | # M-s instead of C-b for command stuff 18 | unbind C-b 19 | 20 | if-shell '[[ $TP = nested ]]' { 21 | set -g prefix M-d 22 | } { 23 | set -g prefix M-s 24 | } 25 | 26 | #set -g prefix M-s 27 | bind C-s send-prefix 28 | set -s escape-time 0 29 | 30 | #bind-key -n M-Tab set -g prefix M-d 31 | bind-key s split-window -v 32 | bind-key N new-session 33 | bind-key v split-window -h 34 | bind-key q choose-tree -Zs 35 | bind-key -n M-K switch-client -n 36 | bind-key -n M-J switch-client -p 37 | bind-key -n M-q choose-tree -Zs 38 | bind-key -n M-c attach-session -c "#{pane_current_path}" 39 | 40 | if-shell '[[ $(uname -s) = Linux ]]' { 41 | bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -i -p && xsel -o -p | xsel -i -b" 42 | } { 43 | bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy' 44 | bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel 'reattach-to-user-namespace pbcopy' 45 | } 46 | 47 | 48 | #bind-key p run "xsel -o | tmux load-buffer - ; tmux paste-buffer" 49 | 50 | set-window-option -g mode-keys vi 51 | bind-key -T copy-mode-vi 'v' send -X begin-selection 52 | bind-key -T copy-mode-vi 'y' send -X copy-selection 53 | bind-key -T copy-mode-vi 'Space' send -X halfpage-down 54 | bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up 55 | bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection -x 56 | bind-key ^ switch-client -l 57 | 58 | set -g mouse on 59 | 60 | bind r source-file ~/.tmux.conf 61 | 62 | bind-key -n M-h select-pane -L 63 | bind-key -n M-j select-pane -D 64 | bind-key -n M-k select-pane -U 65 | bind-key -n M-l select-pane -R 66 | 67 | bind -r C-h select-window -t :- 68 | bind -r C-l select-window -t :+ 69 | 70 | 71 | bind b set-option status 72 | set -g status-bg lightsteelblue1 73 | set -g base-index 1 74 | setw -g pane-base-index 1 75 | 76 | set -g status-position bottom 77 | set -g status-bg colour234 78 | set -g status-fg colour137 79 | set -g status-left '' 80 | set -g status-right '#[fg=colour233,bg=colour245,bold] #S #[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' 81 | set -g status-right-length 50 82 | set -g status-left-length 20 83 | 84 | set -g pane-border-style fg=lightsteelblue2 85 | set -g pane-active-border-style "bg=default fg=lightsteelblue1" 86 | 87 | # List of plugins 88 | set -g @plugin 'tmux-plugins/tpm' 89 | set -g @plugin 'tmux-plugins/tmux-logging' 90 | #set -g @plugin 'tmux-plugins/tmux-sensible' 91 | 92 | #set -g @plugin 'tmux-plugins/tmux-resurrect' 93 | 94 | # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) 95 | #run '~/.config/tmux/plugins/tpm/tpm' 96 | 97 | set -g set-clipboard on 98 | -------------------------------------------------------------------------------- /my_special_filter.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | Remove all subtrees whose headlines contain class `noexport`. 3 | Just put {.noexport} at the end of the headline 4 | License: MIT 5 | Copyright: © Albert Krewinkel 6 | ]] 7 | 8 | -- pandoc.utils.make_sections exists since pandoc 2.8 9 | PANDOC_VERSION:must_be_at_least({ 2, 8 }) 10 | 11 | local utils = require("pandoc.utils") 12 | 13 | -- Returns true iff a div is a section div. 14 | local function is_section_div(div) 15 | return div.t == "Div" and div.classes[1] == "section" and div.attributes.number 16 | end 17 | 18 | -- Returns the header element of a section, or nil if the argument is not a 19 | -- section. 20 | local function section_header(div) 21 | if not div.t == "Div" then 22 | return nil 23 | end 24 | local header = div.content and div.content[1] 25 | local is_header = is_section_div(div) and header and header.t == "Header" 26 | return is_header and header or nil 27 | end 28 | 29 | --- Remove remaining section divs 30 | local function flatten_sections(div) 31 | local header = section_header(div) 32 | if not header then 33 | return nil 34 | else 35 | header.identifier = div.identifier 36 | div.content[1] = header 37 | return div.content 38 | end 39 | end 40 | 41 | function drop_noexport_sections(div) 42 | if div.classes:includes("noexport") then 43 | return {} 44 | end 45 | end 46 | 47 | --- Setup the document for further processing by wrapping all 48 | --- sections in Div elements. 49 | function setup_document(doc) 50 | local sections = utils.make_sections(false, nil, doc.blocks) 51 | return pandoc.Pandoc(sections, doc.meta) 52 | end 53 | 54 | -- [bible:John 3:15 NKJV](John) 55 | function do_it(link) 56 | if link.content[1] == nil then 57 | return link 58 | end 59 | local first_string = link.content[1].text 60 | 61 | if first_string == nil then 62 | return link 63 | end 64 | if first_string:match("bible:") == nil then 65 | return link 66 | end 67 | local passage_ref = first_string:match(":%w+"):gsub(":", "") 68 | for i = 2, #link.content do 69 | if link.content[i].text ~= nil then 70 | passage_ref = passage_ref .. " " .. link.content[i].text 71 | end 72 | end 73 | local version = "NASB" 74 | 75 | local book = passage_ref:match("%d*[%a%s]+%a") 76 | local numbers = passage_ref:gsub(book, "") 77 | local chapter = numbers:match("%d+") 78 | local verses = numbers:match(":%d+") 79 | local start_verse 80 | local end_verse 81 | 82 | if verses ~= nil then 83 | start_verse = verses:match("%d+") 84 | local end_verse_part = numbers:match("-%d+") 85 | if end_verse_part ~= nil then 86 | end_verse = end_verse_part:match("%d+") 87 | end 88 | end 89 | 90 | local parsed_version = passage_ref:gsub(book, ""):match("%a+") 91 | if parsed_version ~= nil then 92 | version = parsed_version 93 | passage_ref = passage_ref:gsub(parsed_version, "") 94 | end 95 | link.content = { pandoc.Strong(passage_ref .. " (" .. version .. ")") } 96 | link.target = "https://www.biblegateway.com/passage/?search=" .. passage_ref .. "&version=" .. version 97 | 98 | return pandoc.Strong(link) 99 | end 100 | 101 | return { 102 | { Pandoc = setup_document }, 103 | { Div = drop_noexport_sections }, 104 | { Div = flatten_sections }, 105 | { Link = do_it }, 106 | } 107 | -------------------------------------------------------------------------------- /root/etc/pacman.conf: -------------------------------------------------------------------------------- 1 | # 2 | # /etc/pacman.conf 3 | # 4 | # See the pacman.conf(5) manpage for option and repository directives 5 | 6 | # 7 | # GENERAL OPTIONS 8 | # 9 | [options] 10 | # The following paths are commented out with their default values listed. 11 | # If you wish to use different paths, uncomment and update the paths. 12 | #RootDir = / 13 | #DBPath = /var/lib/pacman/ 14 | #CacheDir = /var/cache/pacman/pkg/ 15 | #LogFile = /var/log/pacman.log 16 | #GPGDir = /etc/pacman.d/gnupg/ 17 | #HookDir = /etc/pacman.d/hooks/ 18 | HoldPkg = pacman glibc 19 | #XferCommand = /usr/bin/curl -L -C - -f -o %o %u 20 | #XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u 21 | #CleanMethod = KeepInstalled 22 | Architecture = auto 23 | 24 | # Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup 25 | IgnorePkg = flutter 26 | #IgnoreGroup = 27 | 28 | #NoUpgrade = 29 | #NoExtract = 30 | 31 | # Misc options 32 | #UseSyslog 33 | #Color 34 | #NoProgressBar 35 | CheckSpace 36 | #VerbosePkgLists 37 | #ParallelDownloads = 5 38 | 39 | # By default, pacman accepts packages signed by keys that its local keyring 40 | # trusts (see pacman-key and its man page), as well as unsigned packages. 41 | SigLevel = Required DatabaseOptional 42 | LocalFileSigLevel = Optional 43 | #RemoteFileSigLevel = Required 44 | 45 | # NOTE: You must run `pacman-key --init` before first using pacman; the local 46 | # keyring can then be populated with the keys of all official Arch Linux 47 | # packagers with `pacman-key --populate archlinux`. 48 | 49 | # 50 | # REPOSITORIES 51 | # - can be defined here or included from another file 52 | # - pacman will search repositories in the order defined here 53 | # - local/custom mirrors can be added here or in separate files 54 | # - repositories listed first will take precedence when packages 55 | # have identical names, regardless of version number 56 | # - URLs will have $repo replaced by the name of the current repo 57 | # - URLs will have $arch replaced by the name of the architecture 58 | # 59 | # Repository entries are of the format: 60 | # [repo-name] 61 | # Server = ServerName 62 | # Include = IncludePath 63 | # 64 | # The header [repo-name] is crucial - it must be present and 65 | # uncommented to enable the repo. 66 | # 67 | 68 | # The testing repositories are disabled by default. To enable, uncomment the 69 | # repo name header and Include lines. You can add preferred servers immediately 70 | # after the header, and they will be used before the default mirrors. 71 | 72 | #[testing] 73 | #Include = /etc/pacman.d/mirrorlist 74 | 75 | [core] 76 | Include = /etc/pacman.d/mirrorlist 77 | 78 | [extra] 79 | Include = /etc/pacman.d/mirrorlist 80 | 81 | #[community-testing] 82 | #Include = /etc/pacman.d/mirrorlist 83 | 84 | #[community] 85 | #Include = /etc/pacman.d/mirrorlist 86 | 87 | # If you want to run 32 bit applications on your x86_64 system, 88 | # enable the multilib repositories as required here. 89 | 90 | #[multilib-testing] 91 | #Include = /etc/pacman.d/mirrorlist 92 | 93 | [multilib] 94 | Include = /etc/pacman.d/mirrorlist 95 | 96 | # An example of a custom package repository. See the pacman manpage for 97 | # tips on creating your own repositories. 98 | #[custom] 99 | #SigLevel = Optional TrustAll 100 | #Server = file:///home/custompkgs 101 | -------------------------------------------------------------------------------- /.config/nvim/snippets/dart.snippets: -------------------------------------------------------------------------------- 1 | snippet tec 2 | TextEditingController $1 = TextEditingController(); 3 | snippet fst 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter_test/flutter_test.dart'; 6 | 7 | Widget renderWith({ 8 | 9 | }) { 10 | return MaterialApp( 11 | home: Scaffold( 12 | body: $1( 13 | ), 14 | ), 15 | ); 16 | } 17 | 18 | void main() { 19 | testWidgets('Text Renders', (WidgetTester tester) async { 20 | await tester.pumpWidget( 21 | renderWith(), 22 | ); 23 | expect(find.text(''), findsOneWidget); 24 | }); 25 | } 26 | 27 | snippet fft 28 | testWidgets('${1}', (WidgetTester tester) async { 29 | await tester.pumpWidget( 30 | renderWith(), 31 | ); 32 | expect(find.text('Test'), findsOneWidget); 33 | }, skip: false); 34 | 35 | snippet stless 36 | import 'package:flutter/material.dart'; 37 | 38 | class ${1:widget} extends StatelessWidget { 39 | const ${1}({ 40 | super.key, 41 | }); 42 | 43 | @override 44 | Widget build(BuildContext context) { 45 | return Scaffold( 46 | body: ${2} 47 | ); 48 | } 49 | } 50 | snippet stful 51 | import 'package:flutter/material.dart'; 52 | 53 | class ${1:widget} extends StatefulWidget { 54 | const ${1}({ 55 | super.key, 56 | }); 57 | 58 | @override 59 | State<${1}> createState() => _${1}State(); 60 | } 61 | 62 | class _${1}State extends State<${1}> { 63 | @override 64 | Widget build(BuildContext context) { 65 | return $0Container( 66 | ${2} 67 | ); 68 | } 69 | } 70 | 71 | snippet ft "Find text test" 72 | expect(find.text(${1}), findsOneWidget); 73 | 74 | snippet fbk "Find by key" i 75 | find.byKey(const Key('${1}')); 76 | 77 | snippet fbt "Find by text" i 78 | find.text('$1') 79 | snippet fd "Find descendant test" 80 | Finder item = find.descendant( 81 | of: find.byKey(const Key('${1}')), 82 | matching: find.byKey(const Key('${2}')), 83 | ); 84 | 85 | snippet fet "Enter text in flutter test" i 86 | await tester.enterText( 87 | find.byKey(const Key('$1')), '$2'); 88 | await tester.pumpAndSettle(); 89 | 90 | snippet ftp "Tap thing in flutter" i 91 | await tester.tap(find.byKey(const Key('$1'))); 92 | await tester.pumpAndSettle(); 93 | 94 | snippet route "Material page route" i 95 | () => Navigator.of(context).push( 96 | MaterialPageRoute( 97 | builder: (_) => $1(), 98 | ), 99 | ), 100 | 101 | snippet cbt "Callback test" 102 | testWidgets('Clicking on $1 calls $2', 103 | (WidgetTester tester) async { 104 | bool $2 = false; 105 | await tester.pumpWidget( 106 | renderWith( 107 | $2: () => $2 = true, 108 | ), 109 | ); 110 | await tester.tap(find.text('')); 111 | await tester.pumpAndSettle(); 112 | 113 | expect($2, isTrue); 114 | }, skip: false); 115 | # snippet ran "Just testing stuff" 116 | # Current Time is `lua print(os.time())` 117 | snippet fbd "Find by descendant" i 118 | find.descendant( 119 | of: find.byKey(const Key('')), 120 | matching: find.byKey(const Key('')), 121 | ); 122 | snippet test 123 | test('$1', () { 124 | expect($2, $3); 125 | }); 126 | snippet msd 127 | Map json 128 | snippet ss 129 | setState(() { 130 | $1 131 | }); 132 | snippet pfc 133 | WidgetsBinding.instance.addPostFrameCallback((_) async { 134 | $1 135 | }); 136 | snippet sb 137 | SizedBox($1), 138 | -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/json.snippets: -------------------------------------------------------------------------------- 1 | snippet javad 2 | { 3 | "adapters": { 4 | "java-debug-server": { 5 | "name": "vscode-java", 6 | "port": "${AdapterPort}" 7 | } 8 | }, 9 | "configurations": { 10 | "Java Attach": { 11 | "default": true, 12 | "adapter": "java-debug-server", 13 | "configuration": { 14 | "request": "attach", 15 | "host": "127.0.0.1", 16 | "port": "5005" 17 | }, 18 | "breakpoints": { 19 | "exception": { 20 | "caught": "N", 21 | "uncaught": "N" 22 | } 23 | } 24 | } 25 | } 26 | } 27 | endsnippet 28 | 29 | snippet flutterd 30 | { 31 | "configurations": { 32 | "launch": { 33 | "adapter": "dart-code-flutter", 34 | "configuration": { 35 | "request": "launch", 36 | "type": "flutter", 37 | "flutterSdkPath": "/opt/flutter/", 38 | "dartSdkPath": "/opt/flutter/bin/cache/dart-sdk", 39 | "program": "${workspaceRoot}/lib/main.dart", 40 | "cwd": "${workspaceRoot}" 41 | } 42 | } 43 | } 44 | } 45 | endsnippet 46 | 47 | snippet dartd 48 | { 49 | "configurations": { 50 | "launch": { 51 | "adapter": "dart-code-dart", 52 | "configuration": { 53 | "request": "launch", 54 | "type": "dart", 55 | "flutterSdkPath": "/opt/flutter/", 56 | "dartSdkPath": "/opt/flutter/bin/cache/dart-sdk", 57 | "program": "${workspaceRoot}/$1", 58 | "cwd": "${workspaceRoot}" 59 | } 60 | } 61 | } 62 | } 63 | endsnippet 64 | 65 | snippet noded 66 | { 67 | "configurations": { 68 | "run": { 69 | "adapter": "vscode-node", 70 | "configuration": { 71 | "request": "launch", 72 | "protocol": "auto", 73 | "stopOnEntry": true, 74 | "console": "integratedTerminal", 75 | "program": "${workspaceRoot}/src/index.js", 76 | "cwd": "${workspaceRoot}", 77 | "runtimeExecutable": "node", 78 | "envFile": "${workspaceRoot}/config/dev.env" 79 | } 80 | } 81 | } 82 | } 83 | endsnippet 84 | 85 | snippet chromed 86 | { 87 | "configurations": { 88 | "launch": { 89 | "adapter": "chrome", 90 | "configuration": { 91 | "request": "launch", 92 | "url": "localhost:3000", 93 | "webRoot": "${workspaceRoot}/src", 94 | "runtimeExecutable": "/bin/google-chrome-stable" 95 | } 96 | } 97 | } 98 | } 99 | endsnippet 100 | 101 | snippet nodeportd 102 | { 103 | "configurations": { 104 | "run": { 105 | "adapter": "vscode-node", 106 | "configuration": { 107 | "request": "attach", 108 | "protocol": "auto", 109 | "stopOnEntry": true, 110 | "console": "integratedTerminal", 111 | "cwd": "${workspaceRoot}", 112 | "runtimeExecutable": "node", 113 | "port": 9229 114 | } 115 | } 116 | } 117 | } 118 | endsnippet 119 | 120 | snippet fluttertestd 121 | { 122 | "configurations": { 123 | "launch": { 124 | "adapter": "dart-code-flutter-test", 125 | "configuration": { 126 | "request": "launch", 127 | "type": "flutter_test", 128 | "flutterSdkPath": "/opt/flutter/", 129 | "dartSdkPath": "/opt/flutter/bin/cache/dart-sdk", 130 | "program": "test/test.dart", 131 | "cwd": "${workspaceRoot}" 132 | } 133 | } 134 | } 135 | } 136 | endsnippet 137 | -------------------------------------------------------------------------------- /.emacs.d/README.org: -------------------------------------------------------------------------------- 1 | * Refile 2 | Random Things I'm adding that don't have a place yet 3 | * Initialization 4 | Make sure stuff is where it needs to be 5 | #+begin_src elisp 6 | (require 'package) 7 | (add-to-list 'package-archives 8 | '("melpa" . "https://melpa.org/packages/")) 9 | (package-initialize) 10 | 11 | (unless (package-installed-p 'use-package) 12 | (package-install 'use-package)) 13 | (require 'use-package) 14 | 15 | (set-face-attribute 'default nil :font "InconsolataGo Nerd Font" :height 115) 16 | 17 | (setq use-package-always-ensure t) 18 | #+end_src 19 | * Random Settings 20 | #+begin_src elisp 21 | (setq-default fill-column 80) 22 | (setq select-enable-clipboard nil) 23 | (setq confirm-kill-emacs nil) 24 | (setq inhibit-splash-screen t) 25 | 26 | ;; Enable transient mark mode 27 | (transient-mark-mode 1) 28 | #+end_src 29 | * Themeing 30 | #+begin_src elisp 31 | (use-package zenburn-theme) 32 | (set-face-attribute 'default nil :font "InconsolataGo Nerd Font" :height 115) 33 | (use-package darkroom) 34 | 35 | ; font sizes 36 | (defadvice text-scale-increase (around all-buffers (arg) activate) 37 | (dolist (buffer (buffer-list)) 38 | (with-current-buffer buffer 39 | ad-do-it))) 40 | #+end_src 41 | * Ivy 42 | I use ivy to find junk 43 | #+begin_src elisp 44 | (use-package prescient) 45 | (use-package ivy-prescient 46 | 47 | :config 48 | (ivy-prescient-mode 1) 49 | ) 50 | (use-package general) 51 | 52 | (use-package ivy-omni-org 53 | :config 54 | (setq ivy-omni-org-file-sources '(org-agenda-files)) 55 | ) 56 | 57 | (use-package ivy 58 | :diminish 59 | :bind (("C-s" . swiper) 60 | :map ivy-minibuffer-map 61 | ("TAB" . ivy-alt-done) 62 | ("RET" . ivy-alt-done) 63 | ("C-l" . ivy-alt-done) 64 | ("C-j" . ivy-next-line) 65 | ("C-k" . ivy-previous-line) 66 | ("C-w" . ivy-backward-kill-word) 67 | :map ivy-switch-buffer-map 68 | ("C-k" . ivy-previous-line) 69 | ("C-l" . ivy-one) 70 | ("C-d" . ivy-switch-buffer-kill) 71 | :map ivy-reverse-i-search-map 72 | ("C-k" . ivy-previous-line) 73 | ("C-d" . ivy-reverse-i-search-kill)) 74 | 75 | :config 76 | (setq ivy-initial-inputs-alist nil) 77 | (setq case-fold-search t) 78 | (ivy-mode) 79 | ) 80 | 81 | (use-package counsel 82 | :bind (("M-x" . counsel-M-x) 83 | ("of" . (lambda () (interactive) (counsel-find-file "~/sync/org"))) 84 | ("oH" . counsel-org-agenda-headlines) 85 | ("oh" . counsel-outline) 86 | ) 87 | ) 88 | #+end_src 89 | * Org 90 | ** Link Handlers 91 | #+begin_src elisp 92 | #+end_src 93 | ** Agenda Commands 94 | #+begin_src elisp 95 | (setq org-agenda-custom-commands 96 | '(("X" agenda "" 97 | ((ps-number-of-columns 2) 98 | (ps-landscape-mode t) 99 | (org-agenda-span (quote day)) 100 | (org-agenda-with-colors nil) 101 | (org-agenda-remove-tags t)) 102 | ("agenda")))) 103 | #+end_src 104 | 105 | Require that join' 106 | #+begin_src elisp 107 | (require 'org) 108 | #+end_src 109 | * Key maps 110 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | kb-row-up: "Up,Control+k,Shift+Tab,Shift+ISO_Left_Tab"; 3 | kb-row-down: "Down,Control+j"; 4 | kb-accept-entry: "Control+m,Return,KP_Enter"; 5 | terminal: "alacritty"; 6 | kb-remove-to-eol: "Control+Shift+e"; 7 | kb-mode-next: "Shift+Right,Control+Tab,Control+l"; 8 | kb-mode-complete: ""; 9 | kb-mode-previous: "Shift+Left,Control+Shift+Tab,Control+h"; 10 | kb-remove-char-back: "BackSpace"; 11 | kb-clear-line: ""; 12 | kb-remove-word-back: "Control+w"; 13 | 14 | background-color: @base; 15 | display-run: " "; 16 | display-drun: " "; 17 | display-window: " "; 18 | drun-display-format: "{icon} {name}"; 19 | font: "InconsolataGo Nerd Font Bold 17"; 20 | modi: "window,run,drun"; 21 | show-icons: true; 22 | } 23 | 24 | * { 25 | base: #2C3E50; 26 | base-alt: #5A6978; 27 | fg: #ffffff; 28 | fg-alt: #8f8f8f; 29 | tertiary: #34495E; 30 | background-color: @base; 31 | } 32 | mainbox { 33 | background-color: @base; 34 | padding: 0; 35 | } 36 | 37 | element-icon { 38 | size: 3ch; 39 | align: center; 40 | vertical-align: 0; 41 | yoffset: 50; 42 | } 43 | 44 | element-text { 45 | vertical-align: 0.5; 46 | } 47 | 48 | element { 49 | padding: 23; 50 | orientation: horizontal; 51 | text-color: @fg; 52 | position: east; 53 | vertical-align: 0; 54 | horizontal-align: 0; 55 | background-color: @base; 56 | } 57 | 58 | #element normal.normal { 59 | text-color: @fg; 60 | background-color: @base; 61 | } 62 | #element normal.urgent { 63 | background-color: @base; 64 | } 65 | #element normal.active { 66 | background-color: @base; 67 | } 68 | #element selected.normal { 69 | text-color: @fg; 70 | background-color: @tertiary; 71 | } 72 | #element selected.urgent { 73 | background-color: @base; 74 | } 75 | #element selected.active { 76 | background-color: @base; 77 | } 78 | #element alternate.normal { 79 | text-color: @fg; 80 | background-color: @base; 81 | } 82 | #element alternate.urgent { 83 | background-color: @base; 84 | } 85 | #element alternate.active { 86 | background-color: @base; 87 | } 88 | 89 | entry { 90 | font: "InconsolataGo Nerd Font Bold 28"; 91 | text-style: bold; 92 | background-color: @base-alt; 93 | padding: 16 0 16 0; 94 | fint-size: 100; 95 | text-color: @fg; 96 | border-radius: 24 24 0 0; 97 | horizontal-align: 0.50; 98 | vertical-align: 0.50; 99 | placeholder-color: @fg; 100 | blink: false; 101 | placeholder: ""; 102 | } 103 | 104 | inputbar { 105 | background-color: transparent; 106 | children: [entry]; 107 | } 108 | 109 | listview { 110 | background-color: @base; 111 | columns: 1; 112 | scrollbar: false; 113 | lines: 8; 114 | /*border-radius: 0 0 24 24;*/ 115 | border-color: transparent; 116 | 117 | } 118 | 119 | prompt { 120 | enabled: true; 121 | padding: 12 0 0 12; 122 | text-color: @fg; 123 | background-color: @base-alt; 124 | horizontal-align: 0.50; 125 | vertical-align: 0.50; 126 | } 127 | 128 | window { 129 | transparency: "real"; 130 | width: env(ROFIWIDTH, 700); 131 | height: 816; 132 | border-radius: 24; 133 | padding: 0; 134 | background-color: @base; 135 | children: [mainbox]; 136 | border-color: transparent; 137 | } 138 | 139 | textbox { 140 | background-color: @tertiary; 141 | text-color: @fg; 142 | font: "InconsolataGo Nerd Font Bold 11"; 143 | horizontal-align: 0.50; 144 | } 145 | 146 | message { 147 | background-color: @tertiary; 148 | text-color: @fg; 149 | } 150 | 151 | -------------------------------------------------------------------------------- /.local/share/scripts/sound-mixer: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Outputs have spaces in them, so let's make \n the IFS 3 | IFS=$'\n' 4 | 5 | VOLUME_DELTA=5 6 | 7 | if [ "$1" = "quit" ] 8 | then 9 | exit 0 10 | fi 11 | 12 | use_hot_keys="\x0use-hot-keys\x1ftrue\n" 13 | prompt="\x00prompt\x1fSelect Output\n" 14 | echo -en "$use_hot_keys$prompt" 15 | 16 | #echo $ROFI_RETV 17 | 18 | get_device_from_desc () { 19 | echo $(pactl list sinks| grep -C2 "Description: $1"|grep Name|cut -d: -f2|xargs) 20 | } 21 | 22 | get_desc_from_device () { 23 | echo $(pactl list sinks| grep -C2 $1 | grep -e "Description" | cut -d: -f2) 24 | } 25 | 26 | if [ "$ROFI_RETV" = 1 ] 27 | then 28 | desc=$(echo "$1" | cut -d: -f1 | xargs) 29 | device=$(get_device_from_desc $desc) 30 | if pactl set-default-sink "$device" 31 | then 32 | # if it worked, alert the user 33 | dunstify -t 2000 -r 2 -u low "Activated: $desc" 34 | else 35 | # didn't work, critically alert the user 36 | dunstify -t 2000 -r 2 -u critical "Error activating $desc" 37 | fi 38 | fi 39 | #echo $1 40 | 41 | if [ "$ROFI_RETV" = 28 ] 42 | then 43 | desc=$(echo "$1" | cut -d: -f1 | xargs) 44 | device=$(get_device_from_desc $desc) 45 | pactl set-sink-volume "$device" +$VOLUME_DELTA% 46 | fi 47 | 48 | if [ "$ROFI_RETV" = 27 ] 49 | then 50 | desc=$(echo "$1" | cut -d: -f1 | xargs) 51 | device=$(get_device_from_desc $desc) 52 | pactl set-sink-volume "$device" -$VOLUME_DELTA% 53 | fi 54 | 55 | if [ "$ROFI_RETV" = 26 ] 56 | then 57 | desc=$(echo "$1" | cut -d: -f1 | xargs) 58 | device=$(get_device_from_desc $desc) 59 | pactl set-sink-mute "$device" toggle 60 | fi 61 | 62 | 63 | 64 | 65 | 66 | options="$(pactl list sinks | awk ' 67 | BEGIN { 68 | last_match = ""; 69 | FS=":" 70 | muted = 0; 71 | } 72 | 73 | /Description:/{ 74 | #res = match($0, /".*"/) 75 | last_match=$2; 76 | } 77 | 78 | /^[^\s]*Mute:/ { 79 | if ($2 ~ "yes") { 80 | muted = 1; 81 | } else { 82 | muted = 0; 83 | } 84 | } 85 | 86 | /^[^\s]*Volume:/ { 87 | split($0,vols, /\/\s*/); 88 | thing = last_match ": " "Left: " vols[2] "Right: " vols[4] 89 | if (muted) { 90 | thing = thing " (MUTED)" 91 | } 92 | print thing 93 | } 94 | ')" 95 | 96 | #echo $1 97 | default_sink=$(pactl get-default-sink) 98 | res="" 99 | for orig in $options 100 | do 101 | orig=$(echo $orig |xargs) 102 | desc=$(echo $orig | cut -d: -f1 | xargs) 103 | passed_in_desc=$(echo $1 | sed 's/^* //' | cut -d: -f1 | xargs) 104 | def_sink=$(pactl get-default-sink |xargs) 105 | value_sink=$(get_device_from_desc $desc) 106 | if [[ $orig =~ .*MUTED ]] 107 | then 108 | orig="$orig\0icon\x1f" 109 | fi 110 | # If this is the default sink then... 111 | if [ "$value_sink" = "$def_sink" ] 112 | then 113 | # If this is the most recent selected sink (or no sink has been selected yet) put it first in the list 114 | if [ "$desc" = "$passed_in_desc" ] || [ "$passed_in_desc" = "" ] 115 | then 116 | res="* $orig\n$res" 117 | else 118 | # Or else just list it next 119 | res="$res* $orig\n" 120 | fi 121 | # Or if it is the most recent passed in sink 122 | elif [ "$desc" = "$passed_in_desc" ] 123 | then 124 | res="$orig\n$res" 125 | else 126 | # or else just place it next :) 127 | res="$res$orig\n" 128 | fi 129 | done 130 | 131 | echo -e "$res\nquit" 132 | -------------------------------------------------------------------------------- /.local/share/scripts/sound-mixer-microphone: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Outputs have spaces in them, so let's make \n the IFS 3 | IFS=$'\n' 4 | 5 | VOLUME_DELTA=5 6 | 7 | if [ "$1" = "quit" ] 8 | then 9 | exit 0 10 | fi 11 | 12 | use_hot_keys="\x0use-hot-keys\x1ftrue\n" 13 | prompt="\x00prompt\x1fSelect Output\n" 14 | echo -en "$use_hot_keys$prompt" 15 | 16 | #echo $ROFI_RETV 17 | 18 | get_device_from_desc () { 19 | echo $(pactl list sources| grep -C2 "Description: $1"|grep Name|cut -d: -f2|xargs) 20 | } 21 | 22 | get_desc_from_device () { 23 | echo $(pactl list sources| grep -C2 $1 | grep -e "Description" | cut -d: -f2) 24 | } 25 | 26 | if [ "$ROFI_RETV" = 1 ] 27 | then 28 | desc=$(echo "$1" | cut -d: -f1 | xargs) 29 | device=$(get_device_from_desc $desc) 30 | if pactl set-default-source "$device" 31 | then 32 | # if it worked, alert the user 33 | dunstify -t 2000 -r 2 -u low "Activated: $desc" 34 | else 35 | # didn't work, critically alert the user 36 | dunstify -t 2000 -r 2 -u critical "Error activating $desc" 37 | fi 38 | fi 39 | #echo $1 40 | 41 | if [ "$ROFI_RETV" = 28 ] 42 | then 43 | desc=$(echo "$1" | cut -d: -f1 | xargs) 44 | device=$(get_device_from_desc $desc) 45 | pactl set-source-volume "$device" +$VOLUME_DELTA% 46 | fi 47 | 48 | if [ "$ROFI_RETV" = 27 ] 49 | then 50 | desc=$(echo "$1" | cut -d: -f1 | xargs) 51 | device=$(get_device_from_desc $desc) 52 | pactl set-source-volume "$device" -$VOLUME_DELTA% 53 | fi 54 | 55 | if [ "$ROFI_RETV" = 26 ] 56 | then 57 | desc=$(echo "$1" | cut -d: -f1 | xargs) 58 | device=$(get_device_from_desc $desc) 59 | pactl set-source-mute "$device" toggle 60 | fi 61 | 62 | 63 | 64 | 65 | 66 | options="$(pactl list sources | awk ' 67 | BEGIN { 68 | last_match = ""; 69 | FS=":" 70 | muted = 0; 71 | } 72 | 73 | /Description:/{ 74 | #res = match($0, /".*"/) 75 | last_match=$2; 76 | } 77 | 78 | /^[^\s]*Mute:/ { 79 | if ($2 ~ "yes") { 80 | muted = 1; 81 | } else { 82 | muted = 0; 83 | } 84 | } 85 | 86 | /^[^\s]*Volume:/ { 87 | split($0,vols, /\/\s*/); 88 | thing = last_match ": " "Left: " vols[2] "Right: " vols[4] 89 | if (muted) { 90 | thing = thing " (MUTED)" 91 | } 92 | print thing 93 | } 94 | ')" 95 | 96 | #echo $1 97 | default_source=$(pactl get-default-source) 98 | res="" 99 | for orig in $options 100 | do 101 | orig=$(echo $orig |xargs) 102 | desc=$(echo $orig | cut -d: -f1 | xargs) 103 | passed_in_desc=$(echo $1 | sed 's/^* //' | cut -d: -f1 | xargs) 104 | def_source=$(pactl get-default-source |xargs) 105 | value_source=$(get_device_from_desc $desc) 106 | if [[ $orig =~ .*MUTED ]] 107 | then 108 | orig="$orig\0icon\x1f" 109 | fi 110 | # If this is the default source then... 111 | if [ "$value_source" = "$def_source" ] 112 | then 113 | # If this is the most recent selected source (or no source has been selected yet) put it first in the list 114 | if [ "$desc" = "$passed_in_desc" ] || [ "$passed_in_desc" = "" ] 115 | then 116 | res="* $orig\n$res" 117 | else 118 | # Or else just list it next 119 | res="$res* $orig\n" 120 | fi 121 | # Or if it is the most recent passed in source 122 | elif [ "$desc" = "$passed_in_desc" ] 123 | then 124 | res="$orig\n$res" 125 | else 126 | # or else just place it next :) 127 | res="$res$orig\n" 128 | fi 129 | done 130 | 131 | echo -e "$res\nquit" 132 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/checkupdates: -------------------------------------------------------------------------------- 1 | #!/usr/bin/bash 2 | # 3 | # checkupdates: Safely print a list of pending updates. 4 | # 5 | # Copyright (c) 2013 Kyle Keen 6 | # 7 | # This program is free software; you can redistribute it and/or modify 8 | # it under the terms of the GNU General Public License as published by 9 | # the Free Software Foundation; either version 2 of the License, or 10 | # (at your option) any later version. 11 | # 12 | # This program is distributed in the hope that it will be useful, 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | # GNU General Public License for more details. 16 | # 17 | # You should have received a copy of the GNU General Public License 18 | # along with this program. If not, see . 19 | # 20 | 21 | declare -r myname='checkupdates' 22 | declare -r myver='1.0.0' 23 | 24 | plain() { 25 | (( QUIET )) && return 26 | local mesg=$1; shift 27 | printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 28 | } 29 | 30 | msg() { 31 | (( QUIET )) && return 32 | local mesg=$1; shift 33 | printf "${GREEN}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 34 | } 35 | 36 | msg2() { 37 | (( QUIET )) && return 38 | local mesg=$1; shift 39 | printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&1 40 | } 41 | 42 | ask() { 43 | local mesg=$1; shift 44 | printf "${BLUE}::${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}" "$@" >&1 45 | } 46 | 47 | warning() { 48 | local mesg=$1; shift 49 | printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 50 | } 51 | 52 | error() { 53 | local mesg=$1; shift 54 | printf "${RED}==> $(gettext "ERROR:")${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2 55 | } 56 | 57 | # check if messages are to be printed using color 58 | unset ALL_OFF BOLD BLUE GREEN RED YELLOW 59 | if [[ -t 2 && ! $USE_COLOR = "n" ]]; then 60 | # prefer terminal safe colored and bold text when tput is supported 61 | if tput setaf 0 &>/dev/null; then 62 | ALL_OFF="$(tput sgr0)" 63 | BOLD="$(tput bold)" 64 | BLUE="${BOLD}$(tput setaf 4)" 65 | GREEN="${BOLD}$(tput setaf 2)" 66 | RED="${BOLD}$(tput setaf 1)" 67 | YELLOW="${BOLD}$(tput setaf 3)" 68 | else 69 | ALL_OFF="\e[1;0m" 70 | BOLD="\e[1;1m" 71 | BLUE="${BOLD}\e[1;34m" 72 | GREEN="${BOLD}\e[1;32m" 73 | RED="${BOLD}\e[1;31m" 74 | YELLOW="${BOLD}\e[1;33m" 75 | fi 76 | fi 77 | readonly ALL_OFF BOLD BLUE GREEN RED YELLOW 78 | 79 | 80 | if (( $# > 0 )); then 81 | echo "${myname} v${myver}" 82 | echo 83 | echo "Safely print a list of pending updates" 84 | echo 85 | echo "Usage: ${myname}" 86 | echo 87 | echo 'Note: Export the "CHECKUPDATES_DB" variable to change the path of the temporary database.' 88 | exit 0 89 | fi 90 | 91 | if ! type -P fakeroot >/dev/null; then 92 | error 'Cannot find the fakeroot binary.' 93 | exit 1 94 | fi 95 | 96 | if [[ -z $CHECKUPDATES_DB ]]; then 97 | CHECKUPDATES_DB="${TMPDIR:-/tmp}/checkup-db-${USER}/" 98 | fi 99 | 100 | trap 'rm -f $CHECKUPDATES_DB/db.lck' INT TERM EXIT 101 | 102 | DBPath="$(pacman-conf DBPath)" 103 | if [[ -z "$DBPath" ]] || [[ ! -d "$DBPath" ]]; then 104 | DBPath="/var/lib/pacman/" 105 | fi 106 | 107 | mkdir -p "$CHECKUPDATES_DB" 108 | ln -s "${DBPath}/local" "$CHECKUPDATES_DB" &> /dev/null 109 | if ! fakeroot -- pacman -Sy --dbpath "$CHECKUPDATES_DB" --logfile /dev/null &> /dev/null; then 110 | error 'Cannot fetch updates' 111 | exit 1 112 | fi 113 | pacman -Qu --dbpath "$CHECKUPDATES_DB" 2> /dev/null | grep -v '\[.*\]' 114 | 115 | exit 0 116 | 117 | # vim: set noet: 118 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/launcher.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author : Aditya Shakya 4 | * Mail : adi1090x@gmail.com 5 | * Github : @adi1090x 6 | * Twitter : @adi1090x 7 | * 8 | */ 9 | 10 | configuration { 11 | font: "Fantasque Sans Mono 10"; 12 | show-icons: true; 13 | icon-theme: "Papirus"; 14 | display-drun: ""; 15 | drun-display-format: "{name}"; 16 | disable-history: false; 17 | fullscreen: false; 18 | hide-scrollbar: true; 19 | sidebar-mode: false; 20 | } 21 | 22 | @import "colors.rasi" 23 | 24 | window { 25 | transparency: "real"; 26 | background-color: @bg; 27 | text-color: @fg; 28 | border: 0px; 29 | border-color: @ac; 30 | border-radius: 0px; 31 | width: 550px; 32 | location: center; 33 | x-offset: 0; 34 | y-offset: 0; 35 | } 36 | 37 | prompt { 38 | enabled: true; 39 | padding: 0px 5px 0px -10px; 40 | background-color: @al; 41 | text-color: @bar; 42 | font: "Material\-Design\-Iconic\-Font 12"; 43 | } 44 | 45 | entry { 46 | background-color: @al; 47 | text-color: @bar; 48 | placeholder-color: @bar; 49 | expand: true; 50 | horizontal-align: 0; 51 | placeholder: "Search..."; 52 | padding: 1px; 53 | blink: true; 54 | } 55 | 56 | inputbar { 57 | children: [ prompt, entry ]; 58 | background-color: @ac; 59 | text-color: @bar; 60 | expand: false; 61 | border: 0px; 62 | border-radius: 0px; 63 | border-color: @ac; 64 | margin: 0px; 65 | padding: 15px 0px 12px 25px; 66 | } 67 | 68 | listview { 69 | background-color: @al; 70 | padding: 10px 10px 10px 10px; 71 | columns: 2; 72 | lines: 7; 73 | spacing: 5px; 74 | cycle: true; 75 | dynamic: true; 76 | layout: vertical; 77 | } 78 | 79 | mainbox { 80 | background-color: @al; 81 | border: 0px; 82 | border-radius: 0px; 83 | border-color: @ac; 84 | children: [ inputbar, listview ]; 85 | spacing: 0px; 86 | padding: 0px; 87 | } 88 | 89 | element { 90 | background-color: @al; 91 | text-color: @fg; 92 | orientation: horizontal; 93 | border-radius: 0px; 94 | padding: 10px; 95 | } 96 | 97 | element-icon { 98 | size: 24px; 99 | border: 0px; 100 | } 101 | 102 | element-text { 103 | expand: true; 104 | horizontal-align: 0; 105 | vertical-align: 0.5; 106 | margin: 0px 2.5px 0px 2.5px; 107 | } 108 | 109 | element selected { 110 | background-color: @bga; 111 | text-color: @fg; 112 | border: 0px; 113 | border-radius: 0px; 114 | border-color: @bg; 115 | } 116 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/bible_utils.lua: -------------------------------------------------------------------------------- 1 | local M = {} 2 | 3 | M.parse_reference = function(passage_ref) 4 | local version = "NASB" 5 | local book = passage_ref:match("%d*[%a%s]+%a") 6 | local numbers = passage_ref:gsub(book, "") 7 | local chapter = numbers:match("%d+") 8 | local verses = numbers:match(":%d+") 9 | local start_verse 10 | local end_verse 11 | 12 | if verses ~= nil then 13 | start_verse = verses:match("%d+") 14 | local end_verse_part = numbers:match("-%d+") 15 | if end_verse_part ~= nil then 16 | end_verse = end_verse_part:match("%d+") 17 | end 18 | end 19 | 20 | local parsed_version = passage_ref:gsub(book, ""):match("%a+") 21 | if parsed_version ~= nil then 22 | version = parsed_version 23 | passage_ref = vim.trim(passage_ref:gsub(parsed_version, "")) 24 | end 25 | return { 26 | passage_ref = passage_ref, 27 | book = book, 28 | chapter = chapter, 29 | start_verse = start_verse, 30 | end_verse = end_verse, 31 | version = version, 32 | } 33 | end 34 | 35 | -- Thank you AI! 36 | M.create_passage_reference = function(first_reference, last_reference) 37 | local passage_reference = "" 38 | if first_reference.book == last_reference.book then 39 | passage_reference = first_reference.book 40 | if first_reference.chapter == last_reference.chapter then 41 | passage_reference = passage_reference .. " " .. first_reference.chapter 42 | if first_reference.start_verse == last_reference.start_verse then 43 | passage_reference = passage_reference .. ":" .. first_reference.start_verse 44 | if first_reference.end_verse ~= nil then 45 | passage_reference = passage_reference .. "-" .. last_reference.end_verse 46 | end 47 | else 48 | passage_reference = passage_reference .. ":" .. first_reference.start_verse 49 | if first_reference.end_verse ~= nil then 50 | passage_reference = passage_reference .. "-" .. first_reference.end_verse 51 | end 52 | passage_reference = passage_reference .. "-" .. last_reference.start_verse 53 | if last_reference.end_verse ~= nil then 54 | passage_reference = passage_reference .. "-" .. last_reference.end_verse 55 | end 56 | end 57 | else 58 | passage_reference = passage_reference 59 | .. " " 60 | .. first_reference.chapter 61 | .. ":" 62 | .. first_reference.start_verse 63 | if first_reference.end_verse ~= nil then 64 | passage_reference = passage_reference .. "-" .. first_reference.end_verse 65 | end 66 | passage_reference = passage_reference .. "-" .. last_reference.chapter .. ":" .. last_reference.start_verse 67 | if last_reference.end_verse ~= nil then 68 | passage_reference = passage_reference .. "-" .. last_reference.end_verse 69 | end 70 | end 71 | else 72 | passage_reference = first_reference.book .. " " .. first_reference.chapter .. ":" .. first_reference.start_verse 73 | if first_reference.end_verse ~= nil then 74 | passage_reference = passage_reference .. "-" .. first_reference.end_verse 75 | end 76 | passage_reference = passage_reference 77 | .. "-" 78 | .. last_reference.book 79 | .. " " 80 | .. last_reference.chapter 81 | .. ":" 82 | .. last_reference.start_verse 83 | if last_reference.end_verse ~= nil then 84 | passage_reference = passage_reference .. "-" .. last_reference.end_verse 85 | end 86 | end 87 | return passage_reference 88 | end 89 | 90 | M.create_markdown_link_string = function(passage_reference, book) 91 | local link_book = book 92 | if book:find(" ") then 93 | link_book = "<" .. book .. ">" 94 | end 95 | local markdown_link = "[bible:" .. passage_reference .. "](" .. link_book .. ")" 96 | return markdown_link 97 | end 98 | 99 | return M 100 | -------------------------------------------------------------------------------- /.config/nvim/lua/mystuff/on_attach_conf.lua: -------------------------------------------------------------------------------- 1 | local navic = require("nvim-navic") 2 | 3 | local lsp_formatting = function(bufnr) 4 | vim.lsp.buf.format({ 5 | filter = function(client) 6 | -- apply whatever logic you want (in this example, we'll only use null-ls) 7 | return client.name == "null-ls" 8 | end, 9 | bufnr = bufnr, 10 | }) 11 | end 12 | 13 | 14 | function bemol() 15 | local bemol_dir = vim.fs.find({ '.bemol' }, { upward = true, type = 'directory'})[1] 16 | local ws_folders_lsp = {} 17 | if bemol_dir then 18 | local file = io.open(bemol_dir .. '/ws_root_folders', 'r') 19 | if file then 20 | 21 | for line in file:lines() do 22 | table.insert(ws_folders_lsp, line) 23 | end 24 | file:close() 25 | end 26 | end 27 | 28 | for _, line in ipairs(ws_folders_lsp) do 29 | vim.lsp.buf.add_workspace_folder(line) 30 | end 31 | 32 | end 33 | 34 | return function(client, bufnr) 35 | -- if client.supports_method("textDocument/formatting") then 36 | -- vim.api.nvim_clear_autocmds({ buffer = bufnr }) 37 | -- vim.api.nvim_create_autocmd("BufWritePre", { 38 | -- buffer = bufnr, 39 | -- callback = function() 40 | -- lsp_formatting(bufnr) 41 | -- end, 42 | -- }) 43 | -- end 44 | 45 | -- if client.server_capabilities.documentSymbolProvider then 46 | -- vim.o.statusline = "%{%v:lua.require'nvim-navic'.get_location()%}" 47 | -- navic.attach(client, bufnr) 48 | -- end 49 | 50 | client.server_capabilities.documentFormattingProvider = false 51 | local function buf_set_keymap(...) 52 | vim.api.nvim_buf_set_keymap(bufnr, ...) 53 | end 54 | 55 | local function buf_set_option(...) 56 | vim.api.nvim_buf_set_option(bufnr, ...) 57 | end 58 | 59 | require("lsp_signature").on_attach() 60 | 61 | -- Enable completion triggered by 62 | buf_set_option("omnifunc", "v:lua.vim.lsp.omnifunc") 63 | 64 | local opts = { noremap = true, silent = true } 65 | 66 | buf_set_keymap("n", "cgD", "lua vim.lsp.buf.declaration()", opts) 67 | buf_set_keymap("n", "cgd", "lua vim.lsp.buf.definition()", opts) 68 | buf_set_keymap("n", "K", "lua vim.lsp.buf.hover()", opts) 69 | buf_set_keymap("n", "cgi", "lua vim.lsp.buf.implementation()", opts) 70 | buf_set_keymap("n", "cst", "lua vim.lsp.buf.signature_help()", opts) 71 | buf_set_keymap("n", "cgt", "lua vim.lsp.buf.type_definition()", opts) 72 | buf_set_keymap("n", "crn", "lua vim.lsp.buf.rename()", opts) 73 | -- vim.keymap.set("n", "crn", ":IncRename " .. vim.fn.expand(""), { expr = true }) 74 | -- vim.keymap.set("n", "crN", ":IncRename ") 75 | buf_set_keymap("n", "ca", "lua vim.lsp.buf.code_action()", opts) 76 | --buf_set_keymap("n", "ca", 'lua require("telescope.builtin").lsp_code_actions()', opts) 77 | buf_set_keymap("n", "csr", "lua vim.lsp.buf.references()", opts) 78 | vim.keymap.set("n", "clS", [[:Telescope lsp_dynamic_workspace_symbols]]) 79 | -- vim.keymap.set("n", "cls", [[:Telescope lsp_document_symbols]]) 80 | buf_set_keymap("n", "csd", "lua vim.lsp.diagnostic.show_line_diagnostics()", opts) 81 | buf_set_keymap("n", "c,", "lua vim.diagnostic.goto_prev()", opts) 82 | buf_set_keymap("n", "c.", "lua vim.diagnostic.goto_next()", opts) 83 | buf_set_keymap("n", "cld", "Telescope diagnostics", opts) 84 | -- LSP formatting unreliable 85 | -- buf_set_keymap('n', 'ff', 'lua vim.lsp.buf.formatting()', opts) 86 | buf_set_keymap("v", "ca", "lua vim.lsp.buf.code_action()", opts) 87 | 88 | -- if it's markdown, set formatexpr to empty string 89 | if vim.bo.filetype == "markdown" then 90 | vim.bo.formatexpr = "" 91 | end 92 | 93 | -- bemol() 94 | end 95 | 96 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/styles.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author : Aditya Shakya 4 | * Mail : adi1090x@gmail.com 5 | * Github : @adi1090x 6 | * Twitter : @adi1090x 7 | * 8 | */ 9 | 10 | configuration { 11 | font: "Fantasque Sans Mono 10"; 12 | show-icons: true; 13 | icon-theme: "Papirus"; 14 | drun-display-format: "{name}"; 15 | disable-history: false; 16 | fullscreen: false; 17 | hide-scrollbar: true; 18 | sidebar-mode: false; 19 | } 20 | 21 | @import "colors.rasi" 22 | 23 | window { 24 | transparency: "real"; 25 | background-color: @bg; 26 | text-color: @fg; 27 | border: 0px; 28 | border-color: @ac; 29 | border-radius: 0px; 30 | width: 300px; 31 | location: center; 32 | x-offset: 0; 33 | y-offset: 0; 34 | } 35 | 36 | prompt { 37 | enabled: true; 38 | padding: 0px 5px 5px 0px; 39 | background-color: @al; 40 | text-color: @bar; 41 | } 42 | 43 | textbox-prompt-colon { 44 | padding: 0.5px 5px 5px -10px; 45 | font: "Material\-Design\-Iconic\-Font 12"; 46 | background-color: @al; 47 | text-color: @bar; 48 | expand: false; 49 | str: ""; 50 | } 51 | 52 | entry { 53 | background-color: @al; 54 | text-color: @bar; 55 | placeholder-color: @bar; 56 | expand: true; 57 | horizontal-align: 0; 58 | placeholder: "Search"; 59 | padding: 2px; 60 | blink: true; 61 | } 62 | 63 | inputbar { 64 | children: [ textbox-prompt-colon, entry ]; 65 | background-color: @ac; 66 | text-color: @bar; 67 | expand: false; 68 | border: 0px; 69 | border-radius: 0px; 70 | border-color: @ac; 71 | margin: 0px; 72 | padding: 15px 0px 8px 25px; 73 | } 74 | 75 | listview { 76 | background-color: @al; 77 | padding: 0px; 78 | columns: 1; 79 | lines: 5; 80 | spacing: 5px; 81 | cycle: true; 82 | dynamic: true; 83 | layout: vertical; 84 | } 85 | 86 | mainbox { 87 | background-color: @al; 88 | border: 0px; 89 | border-radius: 0px; 90 | border-color: @ac; 91 | children: [ inputbar, listview ]; 92 | spacing: 0px; 93 | padding: 0px; 94 | } 95 | 96 | element { 97 | background-color: @al; 98 | text-color: @fg; 99 | orientation: horizontal; 100 | border-radius: 0px; 101 | padding: 15px; 102 | } 103 | 104 | element-icon { 105 | size: 0px; 106 | border: 0px; 107 | } 108 | 109 | element-text { 110 | expand: true; 111 | horizontal-align: 0; 112 | vertical-align: 0.5; 113 | margin: 0px 0px 0px -5px; 114 | } 115 | 116 | element selected { 117 | background-color: @bga; 118 | text-color: @fg; 119 | border: 0px; 120 | border-radius: 0px; 121 | border-color: @bg; 122 | } 123 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/networkmenu.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author : Aditya Shakya 4 | * Mail : adi1090x@gmail.com 5 | * Github : @adi1090x 6 | * Twitter : @adi1090x 7 | * 8 | */ 9 | 10 | configuration { 11 | font: "Fantasque Sans Mono 10"; 12 | show-icons: true; 13 | icon-theme: "Papirus"; 14 | drun-display-format: "{name}"; 15 | disable-history: false; 16 | fullscreen: false; 17 | hide-scrollbar: true; 18 | sidebar-mode: false; 19 | } 20 | 21 | @import "colors.rasi" 22 | 23 | window { 24 | transparency: "real"; 25 | background-color: @bg; 26 | text-color: @fg; 27 | border: 0px; 28 | border-color: @ac; 29 | border-radius: 0px; 30 | width: 400px; 31 | location: center; 32 | x-offset: 0; 33 | y-offset: 0; 34 | } 35 | 36 | prompt { 37 | enabled: true; 38 | padding: 0px 5px 5px 0px; 39 | background-color: @al; 40 | text-color: @bar; 41 | } 42 | 43 | textbox-prompt-colon { 44 | padding: -2px 5px 5px -10px; 45 | font: "Material\-Design\-Iconic\-Font 12"; 46 | background-color: @al; 47 | text-color: @bar; 48 | expand: false; 49 | str: ""; 50 | } 51 | 52 | entry { 53 | background-color: @al; 54 | text-color: @bar; 55 | placeholder-color: @bar; 56 | expand: true; 57 | horizontal-align: 0; 58 | placeholder: "Search..."; 59 | padding: 1px; 60 | blink: true; 61 | } 62 | 63 | inputbar { 64 | children: [ textbox-prompt-colon, prompt ]; 65 | background-color: @ac; 66 | text-color: @bar; 67 | expand: false; 68 | border: 0px; 69 | border-radius: 0px; 70 | border-color: @ac; 71 | margin: 0px; 72 | padding: 15px 0px 8px 25px; 73 | } 74 | 75 | listview { 76 | background-color: @al; 77 | padding: 0px; 78 | columns: 1; 79 | lines: 8; 80 | spacing: 5px; 81 | cycle: true; 82 | dynamic: true; 83 | layout: vertical; 84 | } 85 | 86 | mainbox { 87 | background-color: @al; 88 | border: 0px; 89 | border-radius: 0px; 90 | border-color: @ac; 91 | children: [ inputbar, listview ]; 92 | spacing: 0px; 93 | padding: 0px; 94 | } 95 | 96 | element { 97 | background-color: @al; 98 | text-color: @fg; 99 | orientation: horizontal; 100 | border-radius: 0px; 101 | padding: 15px; 102 | } 103 | 104 | element-icon { 105 | size: 0px; 106 | border: 0px; 107 | } 108 | 109 | element-text { 110 | expand: true; 111 | horizontal-align: 0; 112 | vertical-align: 0.5; 113 | margin: 0px 0px 0px -3px; 114 | } 115 | 116 | element selected { 117 | background-color: @bga; 118 | text-color: @fg; 119 | border: 0px; 120 | border-radius: 0px; 121 | border-color: @bg; 122 | } 123 | -------------------------------------------------------------------------------- /.config/polybar/material/scripts/rofi/powermenu.rasi: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Author : Aditya Shakya 4 | * Mail : adi1090x@gmail.com 5 | * Github : @adi1090x 6 | * Twitter : @adi1090x 7 | * 8 | */ 9 | 10 | configuration { 11 | font: "Fantasque Sans Mono 10"; 12 | show-icons: true; 13 | icon-theme: "Papirus"; 14 | drun-display-format: "{name}"; 15 | disable-history: false; 16 | fullscreen: false; 17 | hide-scrollbar: true; 18 | sidebar-mode: false; 19 | } 20 | 21 | @import "colors.rasi" 22 | 23 | window { 24 | transparency: "real"; 25 | background-color: @bg; 26 | text-color: @fg; 27 | border: 0px; 28 | border-color: @ac; 29 | border-radius: 0px; 30 | width: 300px; 31 | location: center; 32 | x-offset: 0; 33 | y-offset: 0; 34 | } 35 | 36 | prompt { 37 | enabled: true; 38 | padding: 0px 5px 5px 0px; 39 | background-color: @al; 40 | text-color: @bar; 41 | } 42 | 43 | textbox-prompt-colon { 44 | padding: -2px 5px 5px -10px; 45 | font: "Material\-Design\-Iconic\-Font 12"; 46 | background-color: @al; 47 | text-color: @bar; 48 | expand: false; 49 | str: ""; 50 | } 51 | 52 | entry { 53 | background-color: @al; 54 | text-color: @bar; 55 | placeholder-color: @bar; 56 | expand: true; 57 | horizontal-align: 0; 58 | placeholder: "Search..."; 59 | padding: 1px; 60 | blink: true; 61 | } 62 | 63 | inputbar { 64 | children: [ textbox-prompt-colon, prompt ]; 65 | background-color: @ac; 66 | text-color: @bar; 67 | expand: false; 68 | border: 0px; 69 | border-radius: 0px; 70 | border-color: @ac; 71 | margin: 0px; 72 | padding: 15px 0px 8px 25px; 73 | } 74 | 75 | listview { 76 | background-color: @al; 77 | padding: 0px; 78 | columns: 1; 79 | lines: 5; 80 | spacing: 5px; 81 | cycle: true; 82 | dynamic: true; 83 | layout: vertical; 84 | } 85 | 86 | mainbox { 87 | background-color: @al; 88 | border: 0px; 89 | border-radius: 0px; 90 | border-color: @ac; 91 | children: [ inputbar, listview ]; 92 | spacing: 0px; 93 | padding: 0px; 94 | } 95 | 96 | element { 97 | background-color: @al; 98 | text-color: @fg; 99 | orientation: horizontal; 100 | border-radius: 0px; 101 | padding: 15px; 102 | } 103 | 104 | element-icon { 105 | size: 0px; 106 | border: 0px; 107 | } 108 | 109 | element-text { 110 | expand: true; 111 | horizontal-align: 0; 112 | vertical-align: 0.5; 113 | margin: 0px 0px 0px -5px; 114 | } 115 | 116 | element selected { 117 | background-color: @bga; 118 | text-color: @fg; 119 | border: 0px; 120 | border-radius: 0px; 121 | border-color: @bg; 122 | } 123 | -------------------------------------------------------------------------------- /.local/share/scripts/strrt: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | main() { 4 | space="$1" 5 | quit_$space "$@" > /dev/null 6 | if [[ $2 == '-q' ]] 7 | then 8 | exit 9 | fi 10 | create_$space "$@" 11 | echo ok 12 | } 13 | 14 | function create_ec() { 15 | cd "/home/joshu/dotfiles/arch/.config/nvim/" 16 | session="conf" 17 | tmux new-session -d -s $session -n nvim 18 | tmux send-keys -t $session:code "nvim" ENTER 19 | } 20 | 21 | function quit_woto() { 22 | tmux kill-session -t woto/be > /dev/null 23 | tmux kill-session -t woto/fe > /dev/null 24 | } 25 | 26 | function create_woto() { 27 | cd "/home/joshu/projects/daml/woto/be/" 28 | tmux new-session -d -s woto/be -n code 29 | tmux new-window -t woto/be -n output 30 | tmux send-keys -t woto/be:code "nvim -S Session.vim" ENTER 31 | tmux send-keys -t woto/be:output "npm run dev" ENTER 32 | 33 | cd "/home/joshu/projects/daml/woto/fe/" 34 | tmux new-session -d -s woto/fe -n code 35 | tmux new-window -t woto/fe -n output 36 | tmux send-keys -t woto/fe:code "nvim -S Session.vim" ENTER 37 | tmux send-keys -t woto/fe:output "npm start" ENTER 38 | 39 | tmux attach -t woto/fe 40 | } 41 | 42 | function create_ms5() { 43 | cd "/home/joshu/projects/ms5/app/" 44 | 45 | session_name="ms5/app" 46 | tmux new-session -d -s $session_name -n code 47 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 48 | 49 | cd "/home/joshu/projects/ms5/firebase/" 50 | session_name="ms5/firebase/rules" 51 | tmux new-session -d -s $session_name -n code 52 | tmux send-keys -t $session_name:code "nvim firestore.rules" ENTER 53 | 54 | cd "/home/joshu/projects/ms5/firebase/functions/" 55 | session_name="ms5/firebase/functions" 56 | tmux new-session -d -s $session_name -n code 57 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 58 | 59 | tmux new-window -t $session_name -n output 60 | tmux send-keys -t $session_name:output "cd .." ENTER 61 | tmux send-keys -t $session_name:output "yarn start" ENTER 62 | 63 | tmux attach -t "ms5/app"; tmux select-window -t code 64 | kill-port 8080 65 | } 66 | 67 | function quit_ms5() { 68 | tmux kill-session -t "ms5/app" > /dev/null 69 | tmux kill-session -t "ms5/firebase/rules" > /dev/null 70 | tmux kill-session -t "ms5/firebase/functions" > /dev/null 71 | } 72 | 73 | function quit_lc() { 74 | tmux kill-session -t lc/admin > /dev/null 75 | tmux kill-session -t lc/web > /dev/null 76 | tmux kill-session -t lc/ion > /dev/null 77 | tmux kill-session -t lc/mono > /dev/null 78 | } 79 | 80 | function create_lc() { 81 | session_name="lc/admin" 82 | cd "/home/joshu/projects/life.church/admin-client/" 83 | tmux new-session -d -s $session_name -n code 84 | tmux new-window -t $session_name -n output 85 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 86 | tmux send-keys -t $session_name:output "yarn run dev" ENTER 87 | 88 | cd "/home/joshu/projects/life.church/web-client/" 89 | session_name="lc/web" 90 | tmux new-session -d -s $session_name -n code 91 | tmux new-window -t $session_name -n output 92 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 93 | tmux send-keys -t $session_name:output "yarn start" ENTER 94 | 95 | cd "/home/joshu/projects/life.church/react-ion/" 96 | session_name="lc/ion" 97 | tmux new-session -d -s $session_name -n code 98 | tmux new-window -t $session_name -n output 99 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 100 | tmux send-keys -t $session_name:output "yarn run storybook" ENTER 101 | 102 | cd "/home/joshu/projects/life.church/churchonline/" 103 | session_name="lc/mono" 104 | tmux new-session -d -s $session_name -n code 105 | tmux new-window -t $session_name -n output 106 | tmux send-keys -t $session_name:code "nvim -S Session.vim" ENTER 107 | tmux send-keys -t $session_name:output "yarn run storybook" ENTER 108 | tmux attach -t "lc/web" 109 | } 110 | 111 | function create_config() { 112 | cd "/home/joshu/dotfiles/arch" 113 | tmux new-session -d -s config -n code 114 | # other stuff but im lazy 115 | } 116 | 117 | function create_hylio() { 118 | cd "/home/joshu/projects/daml/hylio" 119 | tmux new-session -d -s hylio -n code 120 | } 121 | 122 | main "$@"; exit 123 | -------------------------------------------------------------------------------- /.config/kdeconnect/trusted_devices: -------------------------------------------------------------------------------- 1 | [8133a654_e4c1_49bf_affd_8a2d8085e9c3] 2 | certificate="-----BEGIN CERTIFICATE-----\nMIIBkjCCATmgAwIBAgIBATAKBggqhkjOPQQDBDBTMS0wKwYDVQQDDCQ4MTMzYTY1\nNF9lNGMxXzQ5YmZfYWZmZF84YTJkODA4NWU5YzMxFDASBgNVBAsMC0tERSBDb25u\nZWN0MQwwCgYDVQQKDANLREUwHhcNMjMxMjEyMDgwMDAwWhcNMzQxMjEyMDgwMDAw\nWjBTMS0wKwYDVQQDDCQ4MTMzYTY1NF9lNGMxXzQ5YmZfYWZmZF84YTJkODA4NWU5\nYzMxFDASBgNVBAsMC0tERSBDb25uZWN0MQwwCgYDVQQKDANLREUwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT7bSWulGD249yl4NTVpanuo9klcIWngJTvrdij8cEA\nPfTQ8Rk0HkrffE0izH4kmrYNJ1CXVXiUY36czagp9ERFMAoGCCqGSM49BAMEA0cA\nMEQCIG6WCpMW/jSWdjKMy4RLq1cgUc2Uu92F7Ftycjqh7w+hAiAOeY4WLjCAxsqS\ncNhiU0craviCwCkItHy4W5KAd+wHyw==\n-----END CERTIFICATE-----\n" 3 | name=Pixel 9 Pro 4 | type=phone 5 | 6 | [a7181952782b807a] 7 | certificate="-----BEGIN CERTIFICATE-----\nMIIC9zCCAd+gAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRkwFwYDVQQDDBBhNzE4\nMTk1Mjc4MmI4MDdhMRQwEgYDVQQLDAtLREUgQ29ubmVjdDEMMAoGA1UECgwDS0RF\nMB4XDTE5MDkyMjIxMzMyNVoXDTI5MDkyMjIxMzMyNVowPzEZMBcGA1UEAwwQYTcx\nODE5NTI3ODJiODA3YTEUMBIGA1UECwwLS0RFIENvbm5lY3QxDDAKBgNVBAoMA0tE\nRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALV4+FbXvMcmknuUkwPg\nE0BlEl8YhO1mm3534Sfl7dZPTAFvCBtUOc79RArtbz/ZH4YM8sd4nZQcUwYTnXvp\nZTq07LaJF0sj3asMbiOWwaYtPYv6a8jB4ZGtxeNW+6OgITl4HxmF6UNlyLRsyoCd\ncwRqayv8sS/Ptp/FtTtcYZWWYk57AeoVGpF5p3/q1S3jC2tN6PA/LJVGLE+p/LD8\nZ3bFW3R65M/ll7jhMhg0dNDmFl4gh0dgXx/3lAKEci6kX5ZP5VHIqOd3vkHQqPr+\nXjOi3MYKiGFuUD/neP29wsV8+wWAkLTSvjL/xjJbkoInt/D4mUkc5FbuarhTXjt8\nCOMCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEArJQ/skWMv/KKrR1WizUaZu59qYsA\nY5A4EV/8u0YX20s+zNpj5AxVWV7/0VrRAYDhWgMEhDo7kK9k/mWYnu8haj83es1v\n6xcfqTG1a6/Ez+Yoys+LWdVPxqoRrT/SoN4crxfP2sRsaxhSixh+z2HEmXI73y2d\nqdFrzIXmGIoh8U6+kIo9iEkUefJcmfw+95B9TC6UY6NVXjGC9zsqw4iD3jLyN01M\nls7EIMTuHKO8MZ/hwFKcC0SthL9CK8k5i3e8oSW+tGSXtXPBaGvqJX0au/q9EeVA\nZzYSyj7I2NEynasTOToGX2N/kGW9qs6M17dHF63bkMXNR0EVJRMqAY85Nw==\n-----END CERTIFICATE-----\n" 8 | name=Pixel 4A 9 | type=smartphone 10 | 11 | [b6e05291_23d2_4af3_af60_af9e9e037986] 12 | certificate="-----BEGIN CERTIFICATE-----\nMIIDHzCCAgegAwIBAgIBATANBgkqhkiG9w0BAQsFADBTMS0wKwYDVQQDDCRiNmUw\nNTI5MV8yM2QyXzRhZjNfYWY2MF9hZjllOWUwMzc5ODYxFDASBgNVBAsMC0tERSBD\nb25uZWN0MQwwCgYDVQQKDANLREUwHhcNMjIwODExMDQwMDAwWhcNMzIwODExMDQw\nMDAwWjBTMS0wKwYDVQQDDCRiNmUwNTI5MV8yM2QyXzRhZjNfYWY2MF9hZjllOWUw\nMzc5ODYxFDASBgNVBAsMC0tERSBDb25uZWN0MQwwCgYDVQQKDANLREUwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDb4iV4IdFLJwbu6IY31Sp6opoNVlP7\n0AeG41k5F2RFdDS2qCMgvaszhaG3FBUkfl018RMBwxMb80Z0L9DlmD7r5/U8+sSL\nFyorZxhc3x766j8HF4Hi9yt043WMuR4NIYwI1ToNTO2OzxI3Qu17uEl5+P67R7iq\nZXKyDCTOOrDk/RtYMqKA2NIrbfDikcDxUdYCeNTbPHZV8LkAsB3vB/mgtSQ/Kgc5\nCXcSALY0f/yA3EqgqTBpJ7mDEau0CBvm9FWYvgNmhi0wAM/62cRnZX8Ndr1nUfa+\nFUR7ZVO32WTfgCeqvkyOoqyF6qgiUqRE0ZwRI9j3o4bNykOgy4cJaOv3AgMBAAEw\nDQYJKoZIhvcNAQELBQADggEBANFgZnOrl8GvNF92NXq9XwRkY8My7BVr9XF/4YUa\n374kbGGxG2wqc3TeDeJbR4kIZ6T/ojBMtsZIWma3zbjgaCgZsBbGUMemwKUV1+0x\nP+rhNx8NErlHsVWCgUEe5hoFOlyz+bnkXEtjh+6u+2atRfpuyd5fdsQr3wxkiGGf\nhxPRqpFW7Ksh31HLGyKZfGu0KsAY1wy5RUEMnDezWvuXRDn2kU8fLwdluvRKGvbG\n0aFH9FNl1YjieUN+j+uLpOCHT7VTRn7VFqBWFNWyyrUuuXszTsnNenJf0pQrI10o\ngPilXo15PTtJoeUaAugn5W/WTrpkwmHViM/OZTOMPZpntY0=\n-----END CERTIFICATE-----\n" 13 | name=Pixel 4a 14 | type=smartphone 15 | 16 | [ea80738bc1dbfb65] 17 | certificate="-----BEGIN CERTIFICATE-----\nMIIC9zCCAd+gAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MRkwFwYDVQQDDBBlYTgw\nNzM4YmMxZGJmYjY1MRQwEgYDVQQLDAtLREUgQ29ubmVjdDEMMAoGA1UECgwDS0RF\nMB4XDTIxMTIwNjA1MDAwMFoXDTMxMTIwNjA1MDAwMFowPzEZMBcGA1UEAwwQZWE4\nMDczOGJjMWRiZmI2NTEUMBIGA1UECwwLS0RFIENvbm5lY3QxDDAKBgNVBAoMA0tE\nRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALLyeeR1xZlYktiHnoTT\nn7E1hcRm2es2S9fKrXV/ggY55/Uu2COnPnbmC1QNy2w1ZHqt68t4X4uzxcrjbj/e\nXC+/hlT9MGXieZhmvh93S9CL62zib1NYgVTxzyMFO3+hGLkqk6ojxlZIwjHivuY3\ndV8nkyxeJ7YOeQJ6QG5vK7CbDeVnXus89bFyF9ovfKZ6ECwd3NVAOhTG7mfocE52\nZlZ89VDrReXZcatc5wGtSkDSEHmw1dW5/CwPvNB1Qy3/avNL8fKrP0Ix58KHiqdF\n6uVxdxoQT7huf91yiABLvtSg04jEzcvXtmAtSrmFlIvbnrLNKSEg1ShfxlIJD5ZI\nFfsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAQ9Ymnkht/KBRNvnzuD1RSakuvKFv\n3fF2bXQ/4j7/qnqn91MdhhZHtLwjUCmvrzqUdrcUp1W/qayWALF4MLMGScBgXQiM\ngDJNLKLPKlkM/V7o5DaHRVqwrOg9ZsTt2yq1Bbui0MP0+j0cKbL30eAdxTebrnx1\nXRrjOxxOduM7x9HvSJSYefufl0eW7ATdzsF3irI92HI52Aw6RTUeXryascESfPAN\nhKCdemU5FXLQ5VZ+WLyU20nEOAnCWhPfBKy2kQDR3UJm/cLc5CYqLYit/7oTHm/g\n+A9cu6JpMwNjUeyk268q1Y5+YQO9qOg1bGC30QiPUlovLHdmuTv+V5X9qw==\n-----END CERTIFICATE-----\n" 18 | name=Pixel 5 19 | type=smartphone 20 | -------------------------------------------------------------------------------- /.config/obs-studio/basic/scenes/Untitled.json.bak: -------------------------------------------------------------------------------- 1 | {"AuxAudioDevice1":{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"pulse_input_capture","mixers":255,"monitoring_type":0,"muted":false,"name":"Mic/Aux","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"default"},"sync":0,"versioned_id":"pulse_input_capture","volume":1.0},"DesktopAudioDevice1":{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"libobs.mute":[],"libobs.push-to-mute":[],"libobs.push-to-talk":[],"libobs.unmute":[]},"id":"pulse_output_capture","mixers":255,"monitoring_type":0,"muted":false,"name":"Desktop Audio","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"default"},"sync":0,"versioned_id":"pulse_output_capture","volume":1.0},"current_program_scene":"Center Desktop","current_scene":"Center Desktop","current_transition":"Fade","groups":[],"modules":{"auto-scene-switcher":{"active":false,"interval":300,"non_matching_scene":"","switch_if_not_matching":false,"switches":[]},"decklink_captions":{"source":""},"output-timer":{"autoStartRecordTimer":false,"autoStartStreamTimer":false,"pauseRecordTimer":true,"recordTimerHours":0,"recordTimerMinutes":0,"recordTimerSeconds":30,"streamTimerHours":0,"streamTimerMinutes":0,"streamTimerSeconds":30},"scripts-tool":[]},"name":"Untitled","preview_locked":false,"quick_transitions":[{"duration":300,"fade_to_black":false,"hotkeys":[],"id":1,"name":"Cut"},{"duration":300,"fade_to_black":false,"hotkeys":[],"id":2,"name":"Fade"},{"duration":300,"fade_to_black":true,"hotkeys":[],"id":3,"name":"Fade"}],"saved_projectors":[],"scaling_enabled":false,"scaling_level":0,"scaling_off_x":0.0,"scaling_off_y":0.0,"scene_order":[{"name":"Center Desktop"}],"sources":[{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"v4l2_input","mixers":0,"monitoring_type":0,"muted":false,"name":"Web Cma","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"device_id":"/dev/video0","input":0,"pixelformat":861030210},"sync":0,"versioned_id":"v4l2_input","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{},"id":"xshm_input","mixers":0,"monitoring_type":0,"muted":false,"name":"Center Desktop Capture","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{},"sync":0,"versioned_id":"xshm_input","volume":1.0},{"balance":0.5,"deinterlace_field_order":0,"deinterlace_mode":0,"enabled":true,"flags":0,"hotkeys":{"OBSBasic.SelectScene":[],"libobs.hide_scene_item.Center Desktop Capture":[],"libobs.hide_scene_item.Web Cma":[],"libobs.show_scene_item.Center Desktop Capture":[],"libobs.show_scene_item.Web Cma":[]},"id":"scene","mixers":0,"monitoring_type":0,"muted":false,"name":"Center Desktop","prev_ver":453115908,"private_settings":{},"push-to-mute":false,"push-to-mute-delay":0,"push-to-talk":false,"push-to-talk-delay":0,"settings":{"custom_size":false,"id_counter":2,"items":[{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":1,"locked":false,"name":"Center Desktop Capture","pos":{"x":0.0,"y":0.0},"private_settings":{},"rot":0.0,"scale":{"x":1.0,"y":1.0},"scale_filter":"disable","show_transition":{"duration":0},"visible":true},{"align":5,"blend_type":"normal","bounds":{"x":0.0,"y":0.0},"bounds_align":0,"bounds_type":0,"crop_bottom":0,"crop_left":0,"crop_right":0,"crop_top":0,"group_item_backup":false,"hide_transition":{"duration":0},"id":2,"locked":false,"name":"Web Cma","pos":{"x":1531.0,"y":788.0},"private_settings":{},"rot":0.0,"scale":{"x":0.60781252384185791,"y":0.60833334922790527},"scale_filter":"disable","show_transition":{"duration":0},"visible":true}]},"sync":0,"versioned_id":"scene","volume":1.0}],"transition_duration":300,"transitions":[]} -------------------------------------------------------------------------------- /.config/nvim/UltiSnips/dart.snippets: -------------------------------------------------------------------------------- 1 | # Snippets for dart in flutter project, to use add the following to your .vimrc 2 | # `autocmd BufRead,BufNewFile,BufEnter *.dart UltiSnipsAddFiletypes dart-flutter` 3 | snippet txt "Stateless widget" b 4 | const Text('$1'), 5 | endsnippet 6 | 7 | snippet stless "Stateless widget" b 8 | import 'package:flutter/material.dart'; 9 | 10 | class ${1:widget} extends StatelessWidget { 11 | const ${1}({ 12 | Key? key, 13 | }) : super(key: key); 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return Scaffold( 18 | body: ${2} 19 | ); 20 | } 21 | } 22 | endsnippet 23 | 24 | snippet stful "Stateful widget" b 25 | import 'package:flutter/material.dart'; 26 | 27 | class ${1:widget} extends StatefulWidget { 28 | const ${1}({ 29 | Key? key, 30 | }) : super(key: key); 31 | 32 | @override 33 | _${1}State createState() => _${1}State(); 34 | } 35 | 36 | class _${1}State extends State<${1}> { 37 | @override 38 | Widget build(BuildContext context) { 39 | return $0Container( 40 | ${2} 41 | ); 42 | } 43 | } 44 | endsnippet 45 | 46 | # Flutter widget with AnimationController 47 | snippet stanim 48 | class ${1:widget} extends StatefulWidget { 49 | const ${1}({ 50 | key? key, 51 | }) : super(key: key); 52 | 53 | @override 54 | _${1}State createState() => _${1}State(); 55 | } 56 | 57 | class _${1}State extends State<${1}> 58 | with SingleTickerProviderStateMixin { 59 | AnimationController _controller; 60 | 61 | @override 62 | void initState() { 63 | super.initState(); 64 | _controller = AnimationController(vsync: this); 65 | } 66 | 67 | @override 68 | void dispose() { 69 | super.dispose(); 70 | _controller.dispose(); 71 | } 72 | 73 | @override 74 | Widget build(BuildContext context) { 75 | return Container( 76 | ${2} 77 | ); 78 | } 79 | } 80 | endsnippet 81 | 82 | snippet fluttest "Flutter pump test" 83 | import 'package:flutter/material.dart'; 84 | import 'package:flutter_test/flutter_test.dart'; 85 | 86 | Widget renderWith() { 87 | return MaterialApp( 88 | home: Scaffold( 89 | body: widget(), 90 | ), 91 | ); 92 | } 93 | 94 | void main() { 95 | testWidgets('Test Name', (WidgetTester tester) async { 96 | await tester.pumpWidget( 97 | renderWith(), 98 | ); 99 | expect(find.text('Test'), findsOneWidget); 100 | }, skip: false); 101 | } 102 | endsnippet 103 | 104 | snippet ft "Find text test" 105 | expect(find.text(${1}), findsOneWidget); 106 | endsnippet 107 | 108 | snippet fbk "Find by key" i 109 | find.byKey(const Key('${1}')); 110 | endsnippet 111 | 112 | snippet fbt "Find by text" i 113 | find.text('$1') 114 | endsnippet 115 | 116 | snippet fd "Find descendant test" 117 | Finder item = find.descendant( 118 | of: find.byKey(const Key('${1}')), 119 | matching: find.byKey(const Key('${2}')), 120 | ); 121 | endsnippet 122 | 123 | snippet fet "Enter text in flutter test" i 124 | await tester.enterText( 125 | find.byKey(const Key('$1')), '$2'); 126 | await tester.pumpAndSettle(); 127 | endsnippet 128 | 129 | snippet ftp "Tap thing in flutter" i 130 | await tester.tap(find.byKey(const Key('$1'))); 131 | await tester.pumpAndSettle(); 132 | endsnippet 133 | 134 | snippet fft "Flutter full test" 135 | testWidgets('${1}', (WidgetTester tester) async { 136 | await tester.pumpWidget( 137 | renderWith(), 138 | ); 139 | expect(find.text('Test'), findsOneWidget); 140 | }, skip: false); 141 | endsnippet 142 | 143 | snippet fst "Flutter setup test" 144 | import 'package:flutter/material.dart'; 145 | import 'package:flutter_test/flutter_test.dart'; 146 | 147 | Widget renderWith({ 148 | 149 | }) { 150 | return MaterialApp( 151 | home: Scaffold( 152 | body: $1( 153 | ), 154 | ), 155 | ); 156 | } 157 | 158 | void main() { 159 | testWidgets('Text Renders', (WidgetTester tester) async { 160 | await tester.pumpWidget( 161 | renderWith(), 162 | ); 163 | expect(find.text(''), findsOneWidget); 164 | }); 165 | } 166 | endsnippet 167 | 168 | snippet fbd "Find by descendant" i 169 | find.descendant( 170 | of: find.byKey(const Key('')), 171 | matching: find.byKey(const Key('')), 172 | ); 173 | endsnippet 174 | snippet route "Material page route" i 175 | () => Navigator.of(context).push( 176 | MaterialPageRoute( 177 | builder: (_) => $1(), 178 | ), 179 | ), 180 | endsnippet 181 | 182 | snippet cbt "Callback test" 183 | testWidgets('Clicking on $2 calls $1', 184 | (WidgetTester tester) async { 185 | bool $1 = false; 186 | await tester.pumpWidget( 187 | renderWith( 188 | $1: () => $1 = true, 189 | ), 190 | ); 191 | await tester.tap(find.text('')); 192 | await tester.pumpAndSettle(); 193 | 194 | expect($1, isTrue); 195 | }, skip: false); 196 | endsnippet 197 | --------------------------------------------------------------------------------