Skip to content

Instantly share code, notes, and snippets.

View edrex's full-sized avatar

Eric Drechsel edrex

  • Portland, OR
View GitHub Profile
@edrex
edrex / README.md
Last active April 23, 2024 18:23
Streaming screen capture under Wayland

Recipes

kmsgrab capture with ffmpeg

sudo LIBVA_DRIVER_NAME=iHD ffmpeg -crtc_id 69  -framerate 60 -f kmsgrab -i - -vaapi_device /dev/dri/renderD128 -filter:v hwmap,scale_vaapi=w=1920:h=1200:format=nv12 -c:v h264_vaapi -profile:v constrained_baseline -level:v 3.1 -b:v 20000k test.mp4

LIBVA_DRIVER_NAME=iHD ffmpeg -device /dev/dri/card0 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi -vstats output.mp4

How do I...

Visualize my flake input tree (to identify duplication)

nix flake metadata

Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@edrex
edrex / ssh-auto
Last active May 8, 2020 05:47
SSH Auto
#!/bin/sh
# Auto-reconnect ssh screen session after sleep + wifi network change
# usage: ssh-auto user@server
# With these setting SSH will detect a dropped connection after 30 seconds.
# Script will attempt to reconnect every 5 seconds whenever connection is dropped.
# Use Ctrl-C to exit the reconnect loop.
# choose your remote session manager
# ON_CONNECT_CMD='screen -DR'
ON_CONNECT_CMD='tmux -2 attach || tmux -2 new'
eric@spacelab ~/Downloads $ sudo curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm -o /usr/local/bin/docker-machine-driver-kvm
eric@spacelab ~/Downloads $ sudo chmod a+x /usr/local/bin/docker-machine-driver-kvm
eric@spacelab ~/Downloads $ sudo curl -L https://github.com/kubernetes/minikube/releases/download/v0.17.1/minikube-linux-amd64 -o /usr/local/bin/minikube
eric@spacelab ~/Downloads $ sudo chmod a+x /usr/local/bin/minikube
eric@spacelab ~/Downloads $ groups
eric adm cdrom sudo dip plugdev lpadmin sambashare docker libvirtd
eric@spacelab ~/Downloads $ curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.5.3/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
eric@spacelab ~/Downloads $ minikube start --vm-driver=kvm
Starting local Kubernetes cluster...
Starting VM...
// RingBuffer reads messages from in and writes them to out.
// Whenever out is full, it will remove the oldest message to make room.
// Adapted from https://blog.pivotal.io/labs/labs/a-concurrent-ring-buffer-for-go.
func RingBuffer(in <-chan Message, size int) <-chan Message {
out := make(chan Message, size)
go func() {
defer close(out)
for m := range in {
select {
case out <- m:
from hashlib import *
sha1("hithere").hexdigest()
# '8c2dfa8f32fb0ee305ae7c0ee34cee1f64808417'
@edrex
edrex / Automatically start Camlistore at login on OSX.md
Last active January 6, 2017 14:35
Automatically start Camlistore at login on OSX

I store my documents in a Camlistore, with a local instance running on my workstation and sync to an s3 bucket and a fixed server. Since I set this up 2 years ago, I've been manually starting camlistored and cammount inside a tmux session each time I log in to OSX.

Today I finally got around to setting up these processes to to start using the native OSX facility, launchd plists.

Steps:

  • camlistored and cammount should be in /usr/local/bin. I have them symlinked via

cd /usr/local/bin && ln -s ~/go/camlistore.org/bin/cam* . &&

@edrex
edrex / docker-compose.yml
Last active January 5, 2017 23:50
Private godoc.org docker container
version: '2'
services:
godoc:
image: clever/godoc-docker:b5f1b24
ports:
- "8080:8080"
depends_on:
- redis_up
environment:
REDIS_URL: redis://redis:6379
@edrex
edrex / foo.elm
Last active December 7, 2016 19:16
import Json.Decode as Json exposing (..)
j = "{\"value\":\"{\\\"foo\\\":\\\"bar\\\"}\"}"
decodeString (object1 (decodeString (at ["foo"] string)) (at ["value"] string)) j
-- Ok (Ok "bar") : Result.Result String (Result.Result String String)