From f21ea73d795814ad4adf20a9547a30e9d8fdde9d Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Sun, 4 Feb 2018 11:58:40 -0500 Subject: stuff --- old-zshrc/zshrc | 85 +++++++++++++++++++++++++ urxvt/ext/resize-font | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++ zshrc | 85 ------------------------- 3 files changed, 254 insertions(+), 85 deletions(-) create mode 100755 old-zshrc/zshrc create mode 100755 urxvt/ext/resize-font delete mode 100755 zshrc diff --git a/old-zshrc/zshrc b/old-zshrc/zshrc new file mode 100755 index 0000000..6eef91c --- /dev/null +++ b/old-zshrc/zshrc @@ -0,0 +1,85 @@ +# :) +# ulimit -v 4194304 # 4G +# ulimit -u 1024 + +if [[ -f $HOME/.zshrc.local ]]; then + source $HOME/.zshrc.local +fi + +# Don't upgrade oh-my-zsh automatically. +DISABLE_AUTO_UPDATE="true" + +source $HOME/dotfiles/zgen/zgen.zsh +# check if there's no init script +if ! zgen saved; then + echo "Creating a zgen save" + zgen oh-my-zsh + # plugins + # zgen oh-my-zsh plugins/git + zgen oh-my-zsh plugins/ssh-agent + zgen oh-my-zsh plugins/gpg-agent + zgen oh-my-zsh plugins/colored-man-pages + zgen oh-my-zsh plugins/sudo + zgen oh-my-zsh plugins/history + zgen oh-my-zsh plugins/jump + zgen oh-my-zsh plugins/command-not-found + zgen oh-my-zsh plugins/taskwarrior + zgen load zsh-users/zsh-syntax-highlighting + # completions + zgen load zsh-users/zsh-completions src + # theme + # zgen oh-my-zsh themes/frisk + zgen load ehamberg/pure + # save all to init script + zgen save +fi + +setopt extendedglob +LANG=en_US.UTF-8 +HISTSIZE=1000000 +SAVEHIST=1000000 + +if (( $+commands[ack-grep] )) ; then + alias ack=ack-grep +fi + +# Emacs-like editor +bindkey -e +export WORDCHARS='' + +# Dvorak +setopt DVORAK + +alias e="emacsclient -n" +alias vi=/usr/games/sl + +alias ff="fileutil --gfs_user=gfp-reporting" +alias diff=colordiff +alias j=jump + +export EDITOR=vim +export PAGER=less +export TZ='America/New_York' +export PATH=$HOME/bin:$PATH + +# allow editing of command line +autoload -U edit-command-line +zle -N edit-command-line +bindkey "^V" edit-command-line + +function get-parent-dir() { + words=(${(z)LBUFFER}) + if [[ "${words[${#words}]}" = /* ]]; then + # There is already a path thing here. + words[${#words}]="${words[${#words}]:h}/" # Parent directory. + else + words=($words $PWD) + fi + LBUFFER="${words[@]}" +} +zle -N get-parent-dir +bindkey "^[u" get-parent-dir + +fpath=($HOME/.zsh-functions $fpath) +autoload -Uz compinit +compinit diff --git a/urxvt/ext/resize-font b/urxvt/ext/resize-font new file mode 100755 index 0000000..cc89a96 --- /dev/null +++ b/urxvt/ext/resize-font @@ -0,0 +1,169 @@ +# vim:ft=perl:fenc=utf-8 +# Copyright (c) 2009-, Simon Lundström +# Copyright (c) 2014 Maarten de Vries +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +# Usage: +# Set your font in ~/.Xresources: +# urxvt.font: xft:Inconsolata:pixelsize=12 +# to set it with pixels or +# urxvt.font: xft:Inconsolata:size=12 +# to set it with points. + +# And re-bind some keymappings (if you want, below are the defaults): +# URxvt.keysym.C-minus: resize-font:smaller +# URxvt.keysym.C-plus: resize-font:bigger +# URxvt.keysym.C-equal: resize-font:reset +# URxvt.keysym.C-question: resize-font:show +# + +my @fonts = ( + {'name' => 'font', 'code' => 710}, + {'name' => 'boldFont', 'code' => 711}, + {'name' => 'italicFont', 'code' => 712}, + {'name' => 'boldItalicFont', 'code' => 713}, +); + +my @fixed = qw(4x6 5x7 5x8 6x9 6x10 6x12 6x13 7x13 7x14 8x13 8x16 9x15 9x18 10x20 12x24); + +sub on_start { + my ($self) = @_; + + foreach (@fonts) { + $_->{'default'} = $self->resource($_->{'name'}); + } +} + +sub on_init { + my ($self) = @_; + my $commands = { + "smaller" => "C-minus", + "bigger" => "C-plus", + "reset" => "C-equal", + "show" => "C-question", + }; + bind_hotkeys($self, $commands); + + () +} + +sub bind_hotkeys { + my ($self, $commands) = @_; + + for (keys %$commands) { + my $hotkey = $$commands{$_}; + my $hotkey_bound = $self->{'term'}->x_resource("keysym.$hotkey"); + if (!defined($hotkey_bound) ) { + # Support old-style key bindings + if ($self->x_resource("%.$_")) { + $hotkey = $self->x_resource("%.$_"); + } + + # FIXME If we're bound to a keysym, don't bind the default. + $self->bind_action($hotkey, "%:$_") or + warn "unable to register '$hotkey' as hotkey for $_"; + } + else { + if ($hotkey_bound !~ /^resize-font:/) { + warn "Hotkey $$commands{$_} already bound to $hotkey_bound, not binding to resize-font:$_ by default."; + } + } + } +} + +sub on_action { + my ($self, $string) = @_; + my $regex = qr"(?!pixelsize=)(\d+)"; + + if ($string eq "bigger") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, +2); + } + } + elsif ($string eq "smaller") { + foreach (@fonts) { + next if not defined($_->{'default'}); + update_font_size($self, $_, -2); + } + } + elsif ($string eq "reset") { + foreach (@fonts) { + next if not defined($_->{'default'}); + set_font($self, $_, $_->{'default'}); + } + } + elsif ($string eq "show") { + + my $term = $self->{'term'}; + $term->{'resize-font'}{'overlay'} = { + ov => $term->overlay_simple(0, -1, format_font_info($self)), + to => urxvt::timer + ->new + ->start(urxvt::NOW + 1) + ->cb(sub { + delete $term->{'resize-font'}{'overlay'}; + }), + }; + } + + () +} + +sub get_font { + my ($self, $name) = @_; + return $self->resource($name); +} + +sub set_font { + my ($self, $font, $new) = @_; + $self->cmd_parse(sprintf("\33]%d;%s\007", $font->{'code'}, $new)); +} + +sub update_font_size { + my ($self, $font, $delta) = @_; + my $regex = qr"(?<=size=)(\d+)"; + my $current = get_font($self, $font->{'name'}); + + my ($index) = grep { $fixed[$_] eq $current } 0..$#fixed; + if ($index or $index eq 0) { + my $inc = $delta / abs($delta); + $index += $inc; + if ($index < 0) { $index = 0; } + if ($index > $#fixed) { $index = $#fixed; } + $current = $fixed[$index]; + } + else { + $current =~ s/$regex/$1+$delta/ge; + } + set_font($self, $font, $current); +} + +sub format_font_info { + my ($self) = @_; + + my $width = 0; + foreach (@fonts) { + my $length = length($_->{'name'}); + $width = $length > $width ? $length : $width; + } + ++$width; + + my $info = ''; + foreach (@fonts) { + $info .= sprintf("%-${width}s %s\n", $_->{'name'} . ':', get_font($self, $_->{'name'})); + } + + return $info; +} diff --git a/zshrc b/zshrc deleted file mode 100755 index 6eef91c..0000000 --- a/zshrc +++ /dev/null @@ -1,85 +0,0 @@ -# :) -# ulimit -v 4194304 # 4G -# ulimit -u 1024 - -if [[ -f $HOME/.zshrc.local ]]; then - source $HOME/.zshrc.local -fi - -# Don't upgrade oh-my-zsh automatically. -DISABLE_AUTO_UPDATE="true" - -source $HOME/dotfiles/zgen/zgen.zsh -# check if there's no init script -if ! zgen saved; then - echo "Creating a zgen save" - zgen oh-my-zsh - # plugins - # zgen oh-my-zsh plugins/git - zgen oh-my-zsh plugins/ssh-agent - zgen oh-my-zsh plugins/gpg-agent - zgen oh-my-zsh plugins/colored-man-pages - zgen oh-my-zsh plugins/sudo - zgen oh-my-zsh plugins/history - zgen oh-my-zsh plugins/jump - zgen oh-my-zsh plugins/command-not-found - zgen oh-my-zsh plugins/taskwarrior - zgen load zsh-users/zsh-syntax-highlighting - # completions - zgen load zsh-users/zsh-completions src - # theme - # zgen oh-my-zsh themes/frisk - zgen load ehamberg/pure - # save all to init script - zgen save -fi - -setopt extendedglob -LANG=en_US.UTF-8 -HISTSIZE=1000000 -SAVEHIST=1000000 - -if (( $+commands[ack-grep] )) ; then - alias ack=ack-grep -fi - -# Emacs-like editor -bindkey -e -export WORDCHARS='' - -# Dvorak -setopt DVORAK - -alias e="emacsclient -n" -alias vi=/usr/games/sl - -alias ff="fileutil --gfs_user=gfp-reporting" -alias diff=colordiff -alias j=jump - -export EDITOR=vim -export PAGER=less -export TZ='America/New_York' -export PATH=$HOME/bin:$PATH - -# allow editing of command line -autoload -U edit-command-line -zle -N edit-command-line -bindkey "^V" edit-command-line - -function get-parent-dir() { - words=(${(z)LBUFFER}) - if [[ "${words[${#words}]}" = /* ]]; then - # There is already a path thing here. - words[${#words}]="${words[${#words}]:h}/" # Parent directory. - else - words=($words $PWD) - fi - LBUFFER="${words[@]}" -} -zle -N get-parent-dir -bindkey "^[u" get-parent-dir - -fpath=($HOME/.zsh-functions $fpath) -autoload -Uz compinit -compinit -- cgit v1.2.3