Skip to content

Instantly share code, notes, and snippets.

@makeevrserg
makeevrserg / MutableLazy.kt
Created October 22, 2025 06:47
MutableLazy
package ru.astrainteractive.klibs.kstorage.threading
import kotlinx.atomicfu.atomic
import kotlin.reflect.KProperty
/**
* A thread-safe, mutable variant of [Lazy] for Kotlin Multiplatform.
*
* The value is initialized on first access using [initializer] and can be reassigned later.
* Safe for concurrent access across platforms (JVM, JS, Native).
@makeevrserg
makeevrserg / ExtendedClickableBox.kt
Created August 25, 2025 07:00
Compose Box, which extends hitbox of Composable child content
@Composable
fun ExtendedClickableBox(
fakeBoxModifier: Modifier = Modifier,
extraHitSize: Dp,
content: @Composable () -> Unit
) {
val extraHitSizePx = with(
receiver = LocalDensity.current,
block = {
extraHitSize
@makeevrserg
makeevrserg / instal.sh
Created August 23, 2025 07:05
Install discord on Arch KDE
#!/bin/bash
set -e
# Temp download location
cd /tmp
# Download latest Discord tar.gz
wget -O discord.tar.gz "https://discord.com/api/download?platform=linux&format=tar.gz"
# Extract
@makeevrserg
makeevrserg / init.sh
Last active August 14, 2025 09:59
EndeavourOS init script
is_installed() {
local package="$1"
if pacman -Qs "$package" > /dev/null; then
echo "Package $package is installed"
return 0
else
echo "Package $package is not installed"
return 1
fi
}
@makeevrserg
makeevrserg / pattern_generator.py
Created June 4, 2025 08:36
Telegram bacgkround channel Pattern Generator
from PIL import Image, ImageDraw
import os
import random
import math
import numpy as np
# === НАСТРОЙКИ ===
ICONS_FOLDER = "icons"
OUTPUT_IMAGE = "final_pattern.png"
WIDTH, HEIGHT = 2000, 4000
@makeevrserg
makeevrserg / docker-compose.yml
Last active June 2, 2025 13:56
Self-hosted docker registry
version: '3'
# docker login -u <USERNAME> -p <PASSWORD> <URL>
# docker buildx build -t <URL>/<IMAGE>:<VERSION> -f .Dockerfile .
# docker tag <IMAGE>:<VERSION> <URL>/<IMAGE>:<VERSION>
# docker push <VERSION>/<IMAGE>:<VERSION>
# curl -u <USERNAME>:<PASSWORD> <URL>/v2/discordbot/tags/list
# curl -u <USERNAME>:<PASSWORD> <URL>/v2/_catalog
services:
@makeevrserg
makeevrserg / init.lua
Created May 27, 2025 06:17
Hammerspoon shift+command language change
-- Track if Command+Shift are both down
local wasCmdShiftDown = false
-- Function to switch language
local function switchLanguage()
local lay = hs.keycodes.currentLayout()
print("Current layout:", lay)
if lay == "ABC" then
hs.keycodes.setLayout("Russian")
else
@makeevrserg
makeevrserg / FlowOnLatest.kt
Created May 11, 2025 18:24
Flow<T>.onLatest as collectLatest
public fun <T> Flow<T>.onLatest(action: suspend (T) -> Unit): Flow<T> = transformLatest { value ->
action(value)
return@transformLatest emit(value)
}
@makeevrserg
makeevrserg / README.md
Created April 30, 2025 17:02
TMUX session
# Start a new session
tmux new -s <session>

# Run script inside session
bash ./script.sh

# Press CTRL+B then CTRL+D to detach from session
# Type exit to close session
@makeevrserg
makeevrserg / docker-compose.yml
Created April 6, 2025 09:46
Minecraft server docker-compose
services:
# For command call use `docker exec mc_docker rcon-cli <your_command>`
mc_docker:
restart: no
container_name: mc_docker
image: itzg/minecraft-server # https://github.com/itzg/docker-minecraft-server
tty: true
stdin_open: true
ports:
- "25565:25565"