Skip to content

Instantly share code, notes, and snippets.

my @symbols_to_remove = Q:w「- _ ! , : / ( ) [ ] . ' + ? = * \ " # $ % & { } | ; ~ \ < > @ ` ^」;
my @terms_to_ignore = <for and the with from that your git bin this not svn who can you like into all more one any
over non them are very when about yet many its also most lets just>;
my &sanitize = *.trans(@symbols_to_remove => ' ').lc.words.grep(
{ .chars ≥ 3 and not /^ <[0..9]>+ $/ and /^ <[a..z] + [0..9]>+ $/ }
).grep(none @terms_to_ignore).unique;
say sanitize "The.quick 'brown' 🦊 jumps-OvER th 1337 QUICK <dog>!";
@CIAvash
CIAvash / awesome-tray-flymake-info.el
Last active May 16, 2022 06:10
Flymake module for awesome-tray package
(defface my/awesome-tray-flymake-error
'((t (:foreground "#FF564A")))
"Flymake error face."
:group 'awesome-tray)
(defface my/awesome-tray-flymake-warning
'((t (:foreground "#FF9800")))
"Flymake warning face."
:group 'awesome-tray)
(defface my/awesome-tray-flymake-note
'((t (:foreground "#2196F3")))
@CIAvash
CIAvash / wordle_solver.raku
Created April 12, 2022 05:29
Manual wordle solver!
#!/usr/bin/env raku
#| Manual wordle solver!
unit sub MAIN (Str :c(:$contains), Str :e(:$exclude), Str :a(:$at), Str :n(:$not-at));
USAGE() and exit unless @*ARGS;
.put for '/usr/share/dict/words'.IO.lines.grep: {
.chars == 5
and /^<:Ll>/
@CIAvash
CIAvash / switch_connection.sh
Created November 27, 2021 18:45
Switch internet connection using `rofi` and network manager's `nmcli`. Dependencies: `ripgrep`, `hck`, `nmcli`, `rofi`
#!/usr/bin/env bash
connections=$(nmcli connection show | rg -v NAME)
selected_connection_line=$(echo "$connections" | rofi -dmenu -i -p 'Select connection: ')
rofi_exit_code=$?
selected_connection=$(echo "$selected_connection_line" | hck -d ' {2,}' -f 1)
# Disconnect on Alt-1
@CIAvash
CIAvash / caller_of_functions.raku
Created September 17, 2021 13:03
Raku - Call returned functions from a function on arguments
#!/usr/bin/env raku
sub infix:<.%>(&func, +@args) {
my $r = &func;
my $capture;
my $start = 0;
loop {
my $end = +@args;
@CIAvash
CIAvash / Rakudo-Grammar.nqp.svg
Created August 30, 2021 15:32
Source code of Rakudo's Grammar.nqp file, highlighted by Chroma
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@CIAvash
CIAvash / find_files.sh
Last active June 16, 2021 10:11
A solution for opening a file and the other files residing in the same directory, while maintaining position. For VLC playlist(video, audio) and imv(image)
#!/usr/bin/env bash
# Gets a filename and a file type, returns the files with the same type in the same directory
function find_files_by_type {
directory=$(dirname -- "$1")
items=$(fd . "$directory" --exact-depth 1 -t f -x file --mime-type '{}' | rg "$2" | perl -ne 's/:\s+.*$//; print' | sort -V)
echo "$items"
}
@CIAvash
CIAvash / switch_sink.sh
Created June 11, 2021 12:17
Select/Switch Pulse/Pipewire audio sink/device/node with `rofi` and `pactl`
#!/usr/bin/env bash
all_sinks=$(pactl list short sinks | cut -f 2)
default_sink=$(pactl info | grep 'Default Sink' | cut -d : -f 2)
active_sink=$(echo "$all_sinks" | grep -n $default_sink | cut -d : -f 1)
selected_sink=$(echo "$all_sinks" | rofi -dmenu -i -a $(($active_sink - 1)) -p 'Select a device: ')
@CIAvash
CIAvash / sway_select_window.sh
Last active June 2, 2021 20:48
Switch windows in sway with rofi(dmenu)
#!/usr/bin/env bash
windows=$(swaymsg -t get_tree | jq -r '.. | select(.type? and .type=="workspace") | {workspace: .name, node: recurse(.nodes[], .floating_nodes[])} | "[\(.workspace)]:" + if .node.focused then "*" else "" end + " \(.node.id): " + if .node.app_id then "\(.node.app_id)" elif .node.window then "\(.node.window_properties.class)" else empty end + ": \(.node.name)"')
active_window=$(echo "$windows" | grep -nE '^\[[[:alnum:]]+\]:\*' | cut -d : -f 1)
echo "$windows" | rofi -dmenu -a $(($active_window - 1)) -i -p 'Select window: ' | cut -d : -f 2 | xargs -I{} swaymsg '[con_id={}] focus'
@CIAvash
CIAvash / number_guessing_game.raku
Last active August 6, 2020 07:44
Number guessing game in Raku
put 'Guess the number!';
my Int:D $secret_number := (1..100).pick;
loop {
with +prompt "Please input your guess.\n" {
when UInt:D {
put "You guessed: $_";
given $_ <=> $secret_number {