Skip to content

Instantly share code, notes, and snippets.

View vegardsjo's full-sized avatar
😼

Vegard Sjonfjell vegardsjo

😼
View GitHub Profile
@vegardsjo
vegardsjo / 80-logitech-keyboard.rules
Created November 13, 2023 19:01
udev rules for Logitech Pebble Keys 2 K380s
# Logitech Pebble Keys 2 K380s
ACTION=="add", SUBSYSTEM=="input", KERNEL=="event[0-9]*", SUBSYSTEMS=="input", ATTRS{id/vendor}=="046d", ATTRS{id/product}=="b377", SYMLINK+="input/logi-k380s", RUN+="/usr/bin/systemctl start vkey-logi-k380s"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="event[0-9]*", SUBSYSTEMS=="input", ATTRS{id/vendor}=="046d", ATTRS{id/product}=="b377", RUN+="/usr/bin/systemctl stop vkey-logi-k380s"
iterator groups[T](coll: openarray[T], n: static[int], fill: T): auto =
static: assert n > 0
var result: array[n, T]
var i = coll.low
var high = coll.high
while i <= high:
for j in 0..<n:
if i + j <= high:
@vegardsjo
vegardsjo / git-switch-to-last-branch-by-number.rb
Created August 22, 2018 09:18
Git switch to last branch fancy
#!/usr/bin/env ruby
require 'io/console'
def clear
print "\e[u" # restore cursor
print "\e[J" # clear to bottom of screen
end
print "\e[s" # save cursor
@vegardsjo
vegardsjo / font-zoom.el
Created March 11, 2017 15:13
Set font height and zoom functionality for Emacs
(defun good-font-height ()
(- (/ (display-pixel-height) 5) 50))
(defun set-font-height (height)
(interactive (list (read-number "Font height: " (good-font-height))))
(set-face-attribute 'default nil :height height))
(defun zoom (inc)
(interactive "nIncrement: ")
(let ((new-font-height (+ (* 10 inc) (face-attribute 'default :height))))
@vegardsjo
vegardsjo / keymap.c
Created June 21, 2016 11:03
Ergodox EZ Layout
#include "ergodox_ez.h"
#include "debug.h"
#include "action_layer.h"
#define BASE 0 // default layer
#define SYM1 1 // symbols
#define SYM2 2 // symbols 2
#define MDIA 3 // media
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@vegardsjo
vegardsjo / Color prog
Created September 21, 2014 14:17
C64 stuff
a 7000 lda #$00
ldx #$00
ldy #$00
sta $d020
sta $d021
adc #$01
inx
cpx #$ff
beq $7013
iny
@vegardsjo
vegardsjo / png.d
Created December 30, 2013 00:09
D readpng wrapper
import std.stdio;
import std.stdint;
import std.string;
import std.conv;
import core.memory;
extern (C) Png.png_image_t read_png(ubyte* in_data, size_t in_size, void* function(uint32_t) alloc);
class Png
{
@vegardsjo
vegardsjo / cat.d
Created November 7, 2012 15:24
cat
import std.stdio;
import std.exception;
const size_t BUFFER_LENGTH = 4096;
int main(string argv[])
{
byte buffer[BUFFER_LENGTH];
void outputFile(File fp)
@vegardsjo
vegardsjo / ld.d
Created October 17, 2012 16:15
Wrapper for ld to make dmd accept -L"-framework=name"
import std.process;
import std.regex;
import std.array;
const string executable = "ld.orig";
void main(string argv[])
{
auto reg = regex(r"-framework=([^ ]+)", "g");
auto cmdline = replace(argv[1..$].join(" "), reg, r"-framework $1");