Skip to content

Instantly share code, notes, and snippets.

View oprypin's full-sized avatar

Oleh Prypin oprypin

View GitHub Profile
@oprypin
oprypin / rounded_polygon_shape.cr
Last active September 19, 2016 14:34
CrSFML: Rounded polygon shape
class RoundedPolygon < SF::Shape
def initialize
super()
@result = [] of SF::Vector2f
end
def assign(points, radius : Number)
@result.clear
[General]
Description=Applications
Opacity=1
Wallpaper=
[Background]
Color=255,255,255
[BackgroundIntense]
Color=220,255,220
@oprypin
oprypin / unity_versions.sh
Created July 18, 2017 22:05
Find out engine versions of all your Unity games on Linux
cd ~/.steam/steam/steamapps/common
for d in *; do
for f in "$d"/*; do
file "$f" | grep -q 'ELF ' &&
strings "$f" | grep -q 'UnityPlayer/' &&
echo "$(strings "$f" | grep -P -m1 -o '(?<=UnityPlayer/)[^ ]+') $d" &&
break
done
done | sort -V
def key
STDIN.raw do |io|
loop do
buffer = Bytes.new(3)
bytes_read = io.read(buffer)
if bytes_read > 0
return String.new(buffer[0, bytes_read])
end
end
end
@oprypin
oprypin / check_passwords.cr
Last active January 17, 2019 20:56
Check your passwords against https://haveibeenpwned.com/Passwords
# Check your passwords against https://haveibeenpwned.com/Passwords
# Usage:
# crystal check_passwords.cr -- pwned-passwords-sha1-ordered-by-hash*.txt
# Enter your passwords one per line, then press Return twice. Or pipe them in.
require "digest/sha1"
passwords = Array(String).new
until (line = gets(chomp: true) || "").empty?
passwords << line
diff --unified --recursive konversation-1.7.2/src/viewer/chatwindow.cpp konversation-1.7.2.new/src/viewer/chatwindow.cpp
--- konversation-1.7.2/src/viewer/chatwindow.cpp 2017-05-09 17:29:00.000000000 +0200
+++ konversation-1.7.2.new/src/viewer/chatwindow.cpp 2017-11-07 00:03:57.217338235 +0100
@@ -278,7 +278,15 @@
void ChatWindow::append(const QString& nickname, const QString& message, const QHash<QString, QString> &messageTags, const QString& label)
{
if(!textView) return;
- textView->append(nickname, message, messageTags, label);
+ QString nickname_ = nickname;
+ QString message_ = message;
@oprypin
oprypin / instructions.md
Last active May 8, 2025 01:05
systemd user unit + timer example

Save these files as ~/.config/systemd/user/some-service-name.*

Run this now and after any modifications: systemctl --user daemon-reload

Try out the service (oneshot): systemctl --user start some-service-name

Check logs if something is wrong: journalctl -u --user-unit some-service-name

Start the timer after this user logs in: systemctl --user enable --now some-service-name.timer

#!/usr/bin/env python
import re
last_lines = lines = None
with open('/var/log/pacman.log') as log_file:
for line in log_file:
if re.search(r'\btransaction started\b', line):
lines = []