commit 8f7afc28a2bc59f301ee75c94d95aa3927377077 Author: Victor Fors Date: Wed Mar 30 23:20:58 2022 +0200 initial commit diff --git a/N33R_status.sh b/N33R_status.sh new file mode 100755 index 0000000..984c775 --- /dev/null +++ b/N33R_status.sh @@ -0,0 +1,2 @@ +#!/bin/bash +sudo nmap minecraft.youdieifyou.work -PN -n -sV -p minecraft diff --git a/battery.scm b/battery.scm new file mode 100644 index 0000000..5ef8684 --- /dev/null +++ b/battery.scm @@ -0,0 +1,53 @@ +;;; Battery monitoring daemon script. + +(import shell) + +(import srfi-1) + +;; Constant values. + +;; Battery level control interval, in seconds. + +(define check-interval 5) + +;; Path to the virtual file containing the battery percentage number. + +(define capacity-path "/sys/class/power_supply/BAT1/capacity") + +;; Association list of threshold levels and formatting functions. + +(define thresholds + `((20 . ,(lambda (battery-level) + (string-append "Battery level low: " (number->string battery-level) "%."))) + (5 . ,(lambda (battery-level) + (string-append "Battery level critical: " (number->string battery-level) "%."))))) + +;; Utility functions. + +;; Get the battery level, return it as a number. + +(define (get-battery-level) + (with-input-from-file capacity-path read)) + +;; Method to display a notification dialog. + +(define (user-notify message) + (run ("notify-send '" ,message "'"))) + +;; Core daemon loop. + +(define (monitor-battery previous-level) + (let ((current-level (get-battery-level))) + (let ((crossed-thresholds + (filter (lambda (n) + (and (>= n current-level) + (< n previous-level))) + (map car thresholds)))) + (if (not (null? crossed-thresholds)) + (user-notify ((cdr (assoc (last crossed-thresholds) thresholds)) current-level)))) + (sleep check-interval) + (monitor-battery current-level))) + +;; Entry point of the program. + +(monitor-battery 100) diff --git a/battery_monitor.sh b/battery_monitor.sh new file mode 100755 index 0000000..5a9a122 --- /dev/null +++ b/battery_monitor.sh @@ -0,0 +1,3 @@ +#!/bin/sh +BATTERY_PATH="/sys/class/power_supply/BAT1" +watch -tn 1 "cat $BATTERY_PATH/status && cat $BATTERY_PATH/capacity" diff --git a/browse_source.sh b/browse_source.sh new file mode 100755 index 0000000..94f16ac --- /dev/null +++ b/browse_source.sh @@ -0,0 +1,2 @@ +#!/bin/sh +highlight -O ansi $1 | less -R diff --git a/coding-terminal b/coding-terminal new file mode 100755 index 0000000..6c9ecb4 --- /dev/null +++ b/coding-terminal @@ -0,0 +1,4 @@ +#!/bin/sh +xrdb -merge ~/.Xresources.green +urxvt -fn xft:inconsolata-22 -letsp -1 -im none & +xrdb -merge ~/.Xresources diff --git a/define.lisp b/define.lisp new file mode 100644 index 0000000..6025f44 --- /dev/null +++ b/define.lisp @@ -0,0 +1,20 @@ +(asdf:load-system :drakma) +(asdf:load-system :yason) + +(defun wiktionary-query (search-string) + (let ((query-string (format nil "https://en.wikipedia.org/w/rest.php/v1/search/page?q=~A&limit=1" search-string))) + (let ((http-result (handler-case (drakma:http-request query-string) + (usocket:ns-host-not-found-error (c) + (princ "Host not found.") + nil)))) + (let ((json (yason:parse (coerce (map 'list #'code-char http-result) 'string)))) + (let ((results (gethash "pages" json))) + (if (null results) + (princ "No results found.") + (let ((page-query-string (format nil "https://en.wikipedia.org/api/rest_v1/page/summary/~A" (gethash "title" (car results))))) + (let ((page-result (handler-case (drakma:http-request page-query-string) + (usocket:ns-host-not-found-error (c) + (princ "Host not found when retreiving data.") + nil)))) + (let ((json (yason:parse (map 'string #'code-char page-result)))) + (princ (gethash "extract" json))))))))))) diff --git a/disable_internet.sh b/disable_internet.sh new file mode 100755 index 0000000..7f94e06 --- /dev/null +++ b/disable_internet.sh @@ -0,0 +1,2 @@ +#!/bin/sh +newgrp no-internet diff --git a/float_xinput_device.sh b/float_xinput_device.sh new file mode 100755 index 0000000..faae5c4 --- /dev/null +++ b/float_xinput_device.sh @@ -0,0 +1,2 @@ +#!/bin/sh +xinput --float `xinput | grep "$1" | grep -o 'id=[[:digit:]]\+' | cut -d'=' -f2` diff --git a/spotify-open b/spotify-open new file mode 100755 index 0000000..3ee5016 --- /dev/null +++ b/spotify-open @@ -0,0 +1,2 @@ +#!/bin/sh +qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri $1 diff --git a/wikifortune b/wikifortune new file mode 100755 index 0000000..a97eba5 --- /dev/null +++ b/wikifortune @@ -0,0 +1,37 @@ +#!/usr/bin/python3 +import requests +import sys +import textwrap + +def connection_error(): + print("Could not contact wikipedia servers.") + sys.exit(1) + +def get_random_page(): + params = { + 'action' : 'query', + 'format' : 'json', + 'list' : 'random', + 'rnlimit' : 1, + 'rnnamespace' : 0 + } + try: + return requests.get('https://en.wikipedia.org/w/api.php', params).json()['query']['random'][0] + except ConnectionError: + connection_error() + +def get_page_with_summary(title): + try: + return requests.get('https://en.wikipedia.org/api/rest_v1/page/summary/' + title).json() + except ConnectionError: + connection_error() + +def main(): + while True: + page = get_page_with_summary(get_random_page()['title']) + if page['type'] == 'standard': + break + print(page['title'] + ':\n\n' + textwrap.fill(page['extract'], width=80)) + +if __name__ == '__main__': + main() diff --git a/wikipedia b/wikipedia new file mode 100755 index 0000000..2a4b030 --- /dev/null +++ b/wikipedia @@ -0,0 +1,55 @@ +#!/usr/bin/python3 +import requests +import sys +import textwrap + +def connection_error(): + print("Could not contact wikipedia servers.") + sys.exit(1) + +def page_search(string): + params = { + 'q' : string, + 'limit' : 1 + } + try: + return requests.get('https://en.wikipedia.org/w/rest.php/v1/search/page', params).json()['pages'] + except ConnectionError: + connection_error() + +def get_page_with_summary(title): + try: + return requests.get('https://en.wikipedia.org/api/rest_v1/page/summary/' + title).json() + except ConnectionError: + connection_error() + +def get_page_links(title): + params = { + 'action' : 'query', + 'titles' : title, + 'prop' : 'links', + 'format' : 'json' + } + try: + return list(requests.get('https://en.wikipedia.org/w/api.php', params).json()['query']['pages'].values())[0]['links'] + except ConnectionError: + connection_error() + +def main(): + if not sys.argv[1:]: + print("Usage: wikipedia ") + sys.exit(1) + else: + result = page_search(' '.join(sys.argv[1:])) + if result: + page = get_page_with_summary(result[0]['title']) + if page['type'] == 'disambiguation': + print('Ambiguous result, please clarify:\n ' + '\n '.join([link['title'] for link in get_page_links(page['title'])])) + else: + print(page['title'] + ':\n\n' + textwrap.fill(page['extract'], width=80)) + else: + print('No result found.') + sys.exit(1) + +if __name__ == '__main__': + main()