Add dotfiles from home directory

Tracks shell configs (zsh/bash), vim, tmux, irssi, fonts, themes,
and ~/.local/bin scripts. Sensitive files (.ssh, .gnupg, history,
credentials) and large app data are excluded via .gitignore.
This commit is contained in:
2026-03-21 00:52:50 -07:00
parent bf3c24aa85
commit bc9f9d8094
71 changed files with 2742 additions and 0 deletions

1
.aprc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/irb/aprc

7
.bash_logout Normal file
View File

@@ -0,0 +1,7 @@
# ~/.bash_logout: executed by bash(1) when login shell exits.
# when leaving the console clear the screen to increase privacy
if [ "$SHLVL" = 1 ]; then
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
fi

110
.bashrc Normal file
View File

@@ -0,0 +1,110 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
#alias grep='grep --color=auto'
#alias fgrep='fgrep --color=auto'
#alias egrep='egrep --color=auto'
fi
# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi

1
.ctags Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/ctags/ctags

1
.editrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/vimify/editrc

1
.escaped_colors.rb Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/irb/escaped_colors.rb

2
.fehbg Executable file
View File

@@ -0,0 +1,2 @@
#!/bin/sh
feh --bg-scale '/home/dissimulo/Pictures/Backgrounds/meteor-shower.jpg'

Binary file not shown.

BIN
.fonts/Inconsolata XL.otf Normal file

Binary file not shown.

Binary file not shown.

BIN
.fonts/Menlo-Powerline.otf Normal file

Binary file not shown.

BIN
.fonts/mensch-Powerline.otf Normal file

Binary file not shown.

BIN
.fonts/monof55.ttf Normal file

Binary file not shown.

BIN
.fonts/monof56.ttf Normal file

Binary file not shown.

1
.gemrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/ruby/gemrc

1
.gitconfig Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/git/gitconfig

204
.gitignore vendored
View File

@@ -1,3 +1,4 @@
<<<<<<< HEAD
custom/zsh
vim/backups
@@ -14,3 +15,206 @@ vim/sessions
.netrwhist
bin/subl
tags
=======
# === SENSITIVE - NEVER COMMIT ===
.ssh/
.gnupg/
.lastpass/
.rainbow_oauth
.rnd
.prv/
.john/
.hashcat/
.pyrit/
.stash/
.stash
.cryptgo-data.json
.claude.json
# === AUTH & SESSION ===
.ICEauthority
.Xauthority*
.dbus/
.pki/
.fprint/
.gksu.lock
.sudo_as_admin_successful
# === SHELL HISTORY ===
.bash_history
.zhistory
.lesshst
.fasd
.fasd-init-bash
# === CACHE & RUNTIME ===
.cache/
.thumbnails/
.zcompcache/
.zcompdump
.zcompdump.zwc
.xsession-errors*
.xsession-x2go*
.emails.t.swp
.recently-used
.termtrack_map_cache.db
.image.so
.gr_fftw_wisdom
.gr_fftw_wisdom.lock
.wget-hsts
# === BROWSER & EMAIL (large/sensitive) ===
.mozilla/
.thunderbird/
# === CHAT / MESSAGING ===
.TelegramDesktop
.TelegramDesktop/
.purple
.purple/
# === LARGE APP DATA ===
.steam
.steam/
.steampath
.steampid
.wine
.wine/
.dropbox
.dropbox/
.var
.var/
.ollama
.ollama/
.processing
.processing/
.electrum
.electrum/
.cpan
.cpan/
.npm
.npm/
.m2
.m2/
.dvdcss
.dvdcss/
.gvfs
.gvfs/
.openshot_qt
.openshot_qt/
.mednafen
.mednafen/
.pcsxr
.pcsxr/
.vba
.vba/
.gvba
.gvba/
.emacs.d
.emacs.d/
.atom
.atom/
# === NESTED GIT REPOS (tracked separately) ===
.yadr
.yadr/
.zprezto
.zprezto/
# === MISC JUNK ===
.dmrc
.gtk-recordmydesktop
.hardinfo/
.macromedia/
.cat_installer/
.BOINC/
.BOINC Manager
.android/
.arduino/
.arduino15/
.jssc/
.x2go/
.x2godesktopsharing/
.cmake/
.gnome/
.gnome2/
.gnome2_private/
.gconf/
.gstreamer-0.10/
.nv/
.tvtime/
.xournal/
.bibletime/
.sword/
.xiphos/
.remmina/
.subversion/
.bundle/
.java/
.dewdrop/
.gphoto/
.nvidia-settings-rc
.mapscii/
.nbems/
.gnuradio/
.fldigi/
.fltk/
.quicksynergy/
.deepin-calculator/
.byobu/
.w3m/
.weatherspect/
.wicd/
.linphonerc
.linphone-zidcache
.putty/
.jigdo-lite/
# OSX taken from: https://github.com/github/gitignore/blob/master/Global/OSX.gitignore
# ----------------------------------------------------------------------------------------------
.DS_Store
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes
# Windows taken from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
# ----------------------------------------------------------------------------------------------
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini
# Tags taken from: https://github.com/github/gitignore/blob/master/Global/Tags.gitignore
# ----------------------------------------------------------------------------------------------
# Ignore tags created by etags, ctags, gtags (GNU global) and cscope
TAGS
!TAGS/
tags
!tags/
.tags
.tags1
gtags.files
GTAGS
GRTAGS
GPATH
cscope.files
cscope.out
cscope.in.out
cscope.po.out
# Vim taken from: https://github.com/github/gitignore/blob/master/Global/vim.gitignore
# ----------------------------------------------------------------------------------------------
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist
*~
# SASS
# ----------------------------------------------------------------------------------------------
.sass-cache
>>>>>>> 476dc11 (Add dotfiles from home directory)

0
.gopherrc Normal file
View File

1
.gtk-bookmarks Normal file
View File

@@ -0,0 +1 @@
file:///home/dissimulo/Downloads

1
.inputrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/vimify/inputrc

392
.irssi/config Normal file
View File

@@ -0,0 +1,392 @@
servers = (
{ address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
{ address = "irc.efnet.org"; chatnet = "EFNet"; port = "6667"; },
{ address = "irc.esper.net"; chatnet = "EsperNet"; port = "6667"; },
{
address = "chat.freenode.net";
chatnet = "Freenode";
port = "6667";
},
{
address = "irc.gamesurge.net";
chatnet = "GameSurge";
port = "6667";
},
{ address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; },
{ address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; },
{
address = "irc.ircsource.net";
chatnet = "IRCSource";
port = "6667";
},
{ address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; },
{ address = "irc.oftc.net"; chatnet = "OFTC"; port = "6667"; },
{
address = "irc.quakenet.org";
chatnet = "QuakeNet";
port = "6667";
},
{ address = "irc.rizon.net"; chatnet = "Rizon"; port = "6667"; },
{ address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
{
address = "irc.undernet.org";
chatnet = "Undernet";
port = "6667";
}
);
chatnets = {
DALnet = {
type = "IRC";
max_kicks = "4";
max_msgs = "20";
max_whois = "30";
};
EFNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
EsperNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
Freenode = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
GameSurge = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
IRCnet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
IRCSource = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
NetFuze = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; };
QuakeNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
Rizon = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
SILC = { type = "SILC"; };
Undernet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
};
channels = (
{ name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; },
{ name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; },
{ name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
{ name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; },
{ name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
{ name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; },
{ name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; },
{ name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; },
{ name = "silc"; chatnet = "SILC"; autojoin = "No"; }
);
aliases = {
ATAG = "WINDOW SERVER";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
B = "BAN";
BACK = "AWAY";
BANS = "BAN";
BYE = "QUIT";
C = "CLEAR";
CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
CHAT = "DCC CHAT";
CUBES = "SCRIPT EXEC Irssi::active_win->print(\"%_bases\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x0\\${_}0\\$_\" } '0'..'9','A'..'F' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_cubes\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { my \\$y = \\$_*6 \\; join '', map { my \\$x = \\$_ \\; map { \"%x\\$x\\$_\\$x\\$_\" } @{['0'..'9','A'..'Z']}[\\$y .. \\$y+5] } 1..6 }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) for 0..5 \\; Irssi::active_win->print(\"%_grays\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x7\\${_}7\\$_\" } 'A'..'X' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_mIRC extended colours\", MSGLEVEL_CLIENTCRAP) \\; my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 0..15 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; for my \\$z (0..6) { my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 16+(\\$z*12)..16+(\\$z*12)+11 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) }";
DATE = "TIME";
DEHIGHLIGHT = "DEHILIGHT";
DESCRIBE = "ACTION";
DHL = "DEHILIGHT";
EXEMPTLIST = "MODE $C +e";
EXIT = "QUIT";
GOTO = "SCROLLBACK GOTO";
HIGHLIGHT = "HILIGHT";
HL = "HILIGHT";
HOST = "USERHOST";
INVITELIST = "MODE $C +I";
J = "JOIN";
K = "KICK";
KB = "KICKBAN";
KN = "KNOCKOUT";
LAST = "LASTLOG";
LEAVE = "PART";
M = "MSG";
MUB = "UNBAN *";
N = "NAMES";
NMSG = "^MSG";
P = "PART";
Q = "QUERY";
RESET = "SET -default";
RUN = "SCRIPT LOAD";
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - http://www.irssi.org";
T = "TOPIC";
UB = "UNBAN";
UMODE = "MODE $N";
UNSET = "SET -clear";
W = "WHO";
WC = "WINDOW CLOSE";
WG = "WINDOW GOTO";
WJOIN = "JOIN -window";
WI = "WHOIS";
WII = "WHOIS $0 $0";
WL = "WINDOW LIST";
WN = "WINDOW NEW HIDDEN";
WQUERY = "QUERY -window";
WW = "WHOWAS";
1 = "WINDOW GOTO 1";
2 = "WINDOW GOTO 2";
3 = "WINDOW GOTO 3";
4 = "WINDOW GOTO 4";
5 = "WINDOW GOTO 5";
6 = "WINDOW GOTO 6";
7 = "WINDOW GOTO 7";
8 = "WINDOW GOTO 8";
9 = "WINDOW GOTO 9";
10 = "WINDOW GOTO 10";
11 = "WINDOW GOTO 11";
12 = "WINDOW GOTO 12";
13 = "WINDOW GOTO 13";
14 = "WINDOW GOTO 14";
15 = "WINDOW GOTO 15";
16 = "WINDOW GOTO 16";
17 = "WINDOW GOTO 17";
18 = "WINDOW GOTO 18";
19 = "WINDOW GOTO 19";
20 = "WINDOW GOTO 20";
21 = "WINDOW GOTO 21";
22 = "WINDOW GOTO 22";
23 = "WINDOW GOTO 23";
24 = "WINDOW GOTO 24";
25 = "WINDOW GOTO 25";
26 = "WINDOW GOTO 26";
27 = "WINDOW GOTO 27";
28 = "WINDOW GOTO 28";
29 = "WINDOW GOTO 29";
30 = "WINDOW GOTO 30";
31 = "WINDOW GOTO 31";
32 = "WINDOW GOTO 32";
33 = "WINDOW GOTO 33";
34 = "WINDOW GOTO 34";
35 = "WINDOW GOTO 35";
36 = "WINDOW GOTO 36";
37 = "WINDOW GOTO 37";
38 = "WINDOW GOTO 38";
39 = "WINDOW GOTO 39";
40 = "WINDOW GOTO 40";
41 = "WINDOW GOTO 41";
42 = "WINDOW GOTO 42";
43 = "WINDOW GOTO 43";
44 = "WINDOW GOTO 44";
45 = "WINDOW GOTO 45";
46 = "WINDOW GOTO 46";
47 = "WINDOW GOTO 47";
48 = "WINDOW GOTO 48";
49 = "WINDOW GOTO 49";
50 = "WINDOW GOTO 50";
51 = "WINDOW GOTO 51";
52 = "WINDOW GOTO 52";
53 = "WINDOW GOTO 53";
54 = "WINDOW GOTO 54";
55 = "WINDOW GOTO 55";
56 = "WINDOW GOTO 56";
57 = "WINDOW GOTO 57";
58 = "WINDOW GOTO 58";
59 = "WINDOW GOTO 59";
60 = "WINDOW GOTO 60";
61 = "WINDOW GOTO 61";
62 = "WINDOW GOTO 62";
63 = "WINDOW GOTO 63";
64 = "WINDOW GOTO 64";
65 = "WINDOW GOTO 65";
66 = "WINDOW GOTO 66";
67 = "WINDOW GOTO 67";
68 = "WINDOW GOTO 68";
69 = "WINDOW GOTO 69";
70 = "WINDOW GOTO 70";
71 = "WINDOW GOTO 71";
72 = "WINDOW GOTO 72";
73 = "WINDOW GOTO 73";
74 = "WINDOW GOTO 74";
75 = "WINDOW GOTO 75";
76 = "WINDOW GOTO 76";
77 = "WINDOW GOTO 77";
78 = "WINDOW GOTO 78";
79 = "WINDOW GOTO 79";
80 = "WINDOW GOTO 80";
81 = "WINDOW GOTO 81";
82 = "WINDOW GOTO 82";
83 = "WINDOW GOTO 83";
84 = "WINDOW GOTO 84";
85 = "WINDOW GOTO 85";
86 = "WINDOW GOTO 86";
87 = "WINDOW GOTO 87";
88 = "WINDOW GOTO 88";
89 = "WINDOW GOTO 89";
90 = "WINDOW GOTO 90";
91 = "WINDOW GOTO 91";
92 = "WINDOW GOTO 92";
93 = "WINDOW GOTO 93";
94 = "WINDOW GOTO 94";
95 = "WINDOW GOTO 95";
96 = "WINDOW GOTO 96";
97 = "WINDOW GOTO 97";
98 = "WINDOW GOTO 98";
99 = "WINDOW GOTO 99";
};
statusbar = {
items = {
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
time = "{sb $Z}";
user = "{sb {sbnickmode $cumode}$N{sbmode $usermode}{sbaway $A}}";
window = "{sb $winref:$tag/$itemname{sbmode $M}}";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "{prompt $[.15]itemname}";
prompt_empty = "{prompt $winname}";
topic = " $topic";
topic_empty = " Irssi v$J - http://www.irssi.org";
lag = "{sb Lag: $0-}";
act = "{sb Act: $0-}";
more = "-- more --";
};
default = {
window = {
disabled = "no";
type = "window";
placement = "bottom";
position = "1";
visible = "active";
items = {
barstart = { priority = "100"; };
time = { };
user = { };
window = { };
window_empty = { };
lag = { priority = "-1"; };
act = { priority = "10"; };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
window_inact = {
type = "window";
placement = "bottom";
position = "1";
visible = "inactive";
items = {
barstart = { priority = "100"; };
window = { };
window_empty = { };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
};
prompt = {
type = "root";
placement = "bottom";
position = "100";
visible = "always";
items = {
prompt = { priority = "-1"; };
prompt_empty = { priority = "-1"; };
input = { priority = "10"; };
};
};
topic = {
type = "root";
placement = "top";
position = "1";
visible = "always";
items = {
topicbarstart = { priority = "100"; };
topic = { };
topic_empty = { };
topicbarend = { priority = "100"; alignment = "right"; };
};
};
dccstat = { items = { dccstat = { }; }; disabled = "yes"; };
};
};
settings = {
core = { real_name = "g"; user_name = "g"; nick = "grave"; };
"fe-text" = { actlist_sort = "refnum"; };
"irc/core" = { cmds_max_at_once = "999999"; cmd_queue_speed = "0ms"; };
"irc/dcc" = {
dcc_download_path = "/media/dissimulo/PhantomPhreak/Anime";
};
"perl/core/scripts" = {
dccstat_short_mode = "no";
dccstat_EXPERIMENTAL_fast_refresh = "no";
dccstat_cycle_through_transfers = "yes";
dccstat_hide_sbar_when_inactive = "yes";
dccstat_progbar_width = "5";
dccstat_refresh = "1";
dccstat_auto_short_limit = "2";
dccstat_cycle_through_transfers_refresh = "3";
};
};

297
.irssi/default.theme Normal file
View File

@@ -0,0 +1,297 @@
# When testing changes, the easiest way to reload the theme is with /RELOAD.
# This reloads the configuration file too, so if you did any changes remember
# to /SAVE it first. Remember also that /SAVE overwrites the theme file with
# old data so keep backups :)
# TEMPLATES:
# The real text formats that irssi uses are the ones you can find with
# /FORMAT command. Back in the old days all the colors and texts were mixed
# up in those formats, and it was really hard to change the colors since you
# might have had to change them in tens of different places. So, then came
# this templating system.
# Now the /FORMATs don't have any colors in them, and they also have very
# little other styling. Most of the stuff you need to change is in this
# theme file. If you can't change something here, you can always go back
# to change the /FORMATs directly, they're also saved in these .theme files.
# So .. the templates. They're those {blahblah} parts you see all over the
# /FORMATs and here. Their usage is simply {name parameter1 parameter2}.
# When irssi sees this kind of text, it goes to find "name" from abstracts
# block below and sets "parameter1" into $0 and "parameter2" into $1 (you
# can have more parameters of course). Templates can have subtemplates.
# Here's a small example:
# /FORMAT format hello {colorify {underline world}}
# abstracts = { colorify = "%G$0-%n"; underline = "%U$0-%U"; }
# When irssi expands the templates in "format", the final string would be:
# hello %G%Uworld%U%n
# ie. underlined bright green "world" text.
# and why "$0-", why not "$0"? $0 would only mean the first parameter,
# $0- means all the parameters. With {underline hello world} you'd really
# want to underline both of the words, not just the hello (and world would
# actually be removed entirely).
# COLORS:
# You can find definitions for the color format codes in docs/formats.txt.
# There's one difference here though. %n format. Normally it means the
# default color of the terminal (white mostly), but here it means the
# "reset color back to the one it was in higher template". For example
# if there was /FORMAT test %g{foo}bar, and foo = "%Y$0%n", irssi would
# print yellow "foo" (as set with %Y) but "bar" would be green, which was
# set at the beginning before the {foo} template. If there wasn't the %g
# at start, the normal behaviour of %n would occur. If you _really_ want
# to use the terminal's default color, use %N.
#############################################################################
# default foreground color (%N) - -1 is the "default terminal color"
default_color = "-1";
# print timestamp/servertag at the end of line, not at beginning
info_eol = "false";
# these characters are automatically replaced with specified color
# (dark grey by default)
replaces = { "[]=" = "%K$*%n"; };
abstracts = {
##
## generic
##
# text to insert at the beginning of each non-message line
line_start = "%B-%n!%B-%n ";
# timestamp styling, nothing by default
timestamp = "$*";
# any kind of text that needs hilighting, default is to bold
hilight = "%_$*%_";
# any kind of error message, default is bright red
error = "%R$*%n";
# channel name is printed
channel = "%_$*%_";
# nick is printed
nick = "%_$*%_";
# nick host is printed
nickhost = "[$*]";
# server name is printed
server = "%_$*%_";
# some kind of comment is printed
comment = "[$*]";
# reason for something is printed (part, quit, kick, ..)
reason = "{comment $*}";
# mode change is printed ([+o nick])
mode = "{comment $*}";
##
## channel specific messages
##
# highlighted nick/host is printed (joins)
channick_hilight = "%C$*%n";
chanhost_hilight = "{nickhost %c$*%n}";
# nick/host is printed (parts, quits, etc.)
channick = "%c$*%n";
chanhost = "{nickhost $*}";
# highlighted channel name is printed
channelhilight = "%c$*%n";
# ban/ban exception/invite list mask is printed
ban = "%c$*%n";
##
## messages
##
# the basic styling of how to print message, $0 = nick mode, $1 = nick
msgnick = "%K<%n$0$1-%K>%n %|";
# message from you is printed. "ownnick" specifies the styling of the
# nick ($0 part in msgnick) and "ownmsgnick" specifies the styling of the
# whole line.
# Example1: You want the message text to be green:
# ownmsgnick = "{msgnick $0 $1-}%g";
# Example2.1: You want < and > chars to be yellow:
# ownmsgnick = "%Y{msgnick $0 $1-%Y}%n";
# (you'll also have to remove <> from replaces list above)
# Example2.2: But you still want to keep <> grey for other messages:
# pubmsgnick = "%K{msgnick $0 $1-%K}%n";
# pubmsgmenick = "%K{msgnick $0 $1-%K}%n";
# pubmsghinick = "%K{msgnick $1 $0$2-%n%K}%n";
# ownprivmsgnick = "%K{msgnick $*%K}%n";
# privmsgnick = "%K{msgnick %R$*%K}%n";
# $0 = nick mode, $1 = nick
ownmsgnick = "{msgnick $0 $1-}";
ownnick = "%_$*%n";
# public message in channel, $0 = nick mode, $1 = nick
pubmsgnick = "{msgnick $0 $1-}";
pubnick = "%N$*%n";
# public message in channel meant for me, $0 = nick mode, $1 = nick
pubmsgmenick = "{msgnick $0 $1-}";
menick = "%Y$*%n";
# public highlighted message in channel
# $0 = highlight color, $1 = nick mode, $2 = nick
pubmsghinick = "{msgnick $1 $0$2-%n}";
# channel name is printed with message
msgchannel = "%K:%c$*%n";
# private message, $0 = nick, $1 = host
privmsg = "[%R$0%K(%r$1-%K)%n] ";
# private message from you, $0 = "msg", $1 = target nick
ownprivmsg = "[%r$0%K(%R$1-%K)%n] ";
# own private message in query
ownprivmsgnick = "{msgnick $*}";
ownprivnick = "%_$*%n";
# private message in query
privmsgnick = "{msgnick %R$*%n}";
##
## Actions (/ME stuff)
##
# used internally by this theme
action_core = "%_ * $*%n";
# generic one that's used by most actions
action = "{action_core $*} ";
# own action, both private/public
ownaction = "{action $*}";
# own action with target, both private/public
ownaction_target = "{action_core $0}%K:%c$1%n ";
# private action sent by others
pvtaction = "%_ (*) $*%n ";
pvtaction_query = "{action $*}";
# public action sent by others
pubaction = "{action $*}";
##
## other IRC events
##
# whois
whois = "%# $[8]0 : $1-";
# notices
ownnotice = "[%r$0%K(%R$1-%K)]%n ";
notice = "%K-%M$*%K-%n ";
pubnotice_channel = "%K:%m$*";
pvtnotice_host = "%K(%m$*%K)";
servernotice = "%g!$*%n ";
# CTCPs
ownctcp = "[%r$0%K(%R$1-%K)] ";
ctcp = "%g$*%n";
# wallops
wallop = "%_$*%n: ";
wallop_nick = "%n$*";
wallop_action = "%_ * $*%n ";
# netsplits
netsplit = "%R$*%n";
netjoin = "%C$*%n";
# /names list
names_prefix = "";
names_nick = "[%_$0%_$1-] ";
names_nick_op = "{names_nick $*}";
names_nick_halfop = "{names_nick $*}";
names_nick_voice = "{names_nick $*}";
names_users = "[%g$*%n]";
names_channel = "%G$*%n";
# DCC
dcc = "%g$*%n";
dccfile = "%_$*%_";
# DCC chat, own msg/action
dccownmsg = "[%r$0%K($1-%K)%n] ";
dccownnick = "%R$*%n";
dccownquerynick = "%_$*%n";
dccownaction = "{action $*}";
dccownaction_target = "{action_core $0}%K:%c$1%n ";
# DCC chat, others
dccmsg = "[%G$1-%K(%g$0%K)%n] ";
dccquerynick = "%G$*%n";
dccaction = "%_ (*dcc*) $*%n %|";
##
## statusbar
##
# default background for all statusbars. You can also give
# the default foreground color for statusbar items.
sb_background = "%4%w";
# default backround for "default" statusbar group
#sb_default_bg = "%4";
# background for prompt / input line
sb_prompt_bg = "%n";
# background for info statusbar
sb_info_bg = "%8";
# background for topicbar (same default)
#sb_topic_bg = "%4";
# text at the beginning of statusbars. sb-item already puts
# space there,so we don't use anything by default.
sbstart = "";
# text at the end of statusbars. Use space so that it's never
# used for anything.
sbend = " ";
topicsbstart = "{sbstart $*}";
topicsbend = "{sbend $*}";
prompt = "[$*] ";
sb = " %c[%n$*%c]%n";
sbmode = "(%c+%n$*)";
sbaway = " (%GzZzZ%n)";
sbservertag = ":$0 (change with ^X)";
sbnickmode = "$0";
# activity in statusbar
# ',' separator
sb_act_sep = "%c$*";
# normal text
sb_act_text = "%c$*";
# public message
sb_act_msg = "%W$*";
# hilight
sb_act_hilight = "%M$*";
# hilight with specified color, $0 = color, $1 = text
sb_act_hilight_color = "$0$1-%n";
};
formats = {
"fe-common/core" = { pubmsg = "{pubmsgnick $2 {pubnick \00305$0}}$1"; };
};

View File

@@ -0,0 +1,500 @@
use Irssi::Irc;
use Irssi 20020217; # Irssi 0.8.0
use vars qw($VERSION %IRSSI);
$VERSION = "1.52";
%IRSSI = (
authors => "Matti 'qvr' Hiljanen",
contact => 'matti\@hiljanen.com',
contributors => 'stefan@pico.ruhr.de, dieck@gmx.de, peder@ifi.uio.no',
name => "dccstat",
description => "Shows verbose or short information of dcc send/gets on statusbar (speed, size, eta etc.)",
license => "GPL, Version 2",
url => "http://matin.maapallo.org/softa/irssi",
sbitems => "dccstat"
);
# Theme settings:
# sb_dccstat = "{sb $0-}";
# $0 = sb_ds_short(_waiting)/sb_ds_normal(_waiting)
# sb_ds_short = "$0%G:%n$1%Y@%n$2kB/s%G:%n$4%G:%n$3";
# $0 = G/S
# $1 = filename
# $2 = transfer speed
# $3 = percent
# $4 = progressbar
# sb_ds_short_waiting = "$0%G:%n$1 $2 $3 waiting";
# $0 = G/S
# $1 = filename
# $2 = to/from
# $3 = nick
# sb_ds_normal = "$0 $1: '$2' $3 of $4 [$8] $9 ($5) $6kB/s ETA: $7";
# $0 = GET/SEND
# $1 = nick
# $2 = filename
# $3 = transferred amount
# $4 = full filesize
# $5 = percent
# $6 = speed
# $7 = ETA
# $8 = progressbar
# $9 = rotator thingy :)
# sb_ds_normal_waiting = "$0 $1: '$2' $3 $4 $5 waiting";
# $0 = GET/SEND
# $1 = nick
# $2 = filename
# $3 = full filesize
# $4 = to/from
# $5 = nick
# sb_ds_separator = ", ";
#
# TODO:
# new ideas more than welcome :)
#
# FAQ:
# Q: my input line gets cleared every time dcc send/get starts or ends,
# why's that?!
# A: it's a bug in irssi which is already fixed in cvs (2002-03-24 Sunday 20:06)
# so the solution: upgrade to cvs or live with it and wait until the next stable release
#
use Irssi::TextUI;
use strict;
my $dccstat_refresh=5;
my ($refresh_tag, $old_refresh, $new_refresh, $displayed_since);
my $visible = -1;
my $displaying = 0;
my @rot_bar = ('|', '/', '-', '\\\\\\\\');
my $rot_bar_n = 0;
my %dccstat;
sub cmd_print_help {
Irssi::print(
"%_Dccstat.pl Help:%_\n\n".
"Statusbar called dccstat should have appeared when you loaded this script,\n".
"now you need to add the dccstat item into that statusbar:\n".
" /statusbar dccstat add dccstat\n".
" /save\n\n".
" The default verbose mode will produce output like this: \n".
" [GET nick: 'foobar.avi' 5500kB of 11MB (50%) 99kB/s ETA: 00:03:00]\n".
" and the short mode looks like this:\n".
" [G:foobar.avi\@99kB/s:(50%)]\n\n".
" %_/SETs:%_\n".
" /set dccstat_refresh <secs> (default: 5)\n".
" /set dccstat_short_mode <ON/OFF> (default: OFF)\n".
" shorter output and doesn't show DCCs: None when there are no GET/SENDs\n".
" /set dccstat_hide_sbar_when_inactive <ON/OFF> (default: OFF)\n".
" hides the statusbar called dccstat when there are no GET/SENDs\n".
" /set dccstat_auto_short_limit (default: 2)\n".
" amount of dcc sends/gets we can have before we automagically switch to short mode\n".
" (when all the info wouldn't fit to statusbar). setting it to 0 will disable it.\n".
" /set dccstat_progbar_width (default: 10)\n".
" progressbar width in chars\n".
" /set dccstat_progbar_transferred (default: '%%g=%%n')\n".
" /set dccstat_progbar_position (default: '%%y>%%n')\n".
" /set dccstat_progbar_remaining (default: '%%r-%%n')\n".
" /set dccstat_cycle_through_transfers (default: OFF)\n".
" cycle trough the transfers (ON) or show all transfers at the same time (OFF, default)\n".
" /set dccstat_cycle_through_transfers_refresh <secs> (default: 5)\n".
" how long to show one transfer at a time\n".
" /set dccstat_filename_max_length (default: 17)\n".
" /set dccstat_filename_max_length_shortmode (default: 10)\n".
" how much to show of a filename in normal and short modes\n\n".
" /set dccstat_EXPERIMENTAL_fast_refresh (default: OFF)\n".
" use very experimental and super fast refreshing, will probably consume all cpu power,\n".
" depending on your connection speed. but hey, it's fun :)\n".
" /set dccstat_debug (default: OFF)\n".
" show debug messages\n".
" \n".
"\nSee also: STATUSBAR, DCC and theme help in the actual script"
,MSGLEVEL_CRAP);
}
sub debug {
my ($text) = @_;
return unless Irssi::settings_get_bool('dccstat_debug');
my($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
$sec = sprintf("%02d", $sec);
$min = sprintf("%02d", $min);
$hour = sprintf("%02d", $hour);
Irssi::print("DEBUG(%_Dccstat.pl%_): ".$text." [$hour:$min:$sec]");
}
sub startup_check {
debug("START-UP - DEBUG IS ON");
my @dccs = Irssi::Irc::dccs();
my $act;
foreach my $dcc (@dccs) { $act=$dcc if $dcc->{type} eq "SEND" || $dcc->{type} eq "GET"; };
dcc_connected($act);
}
sub dcc_connected {
debug("entering dcc_connected");
my ($dcc) = @_;
return unless $dcc->{type} eq "SEND" || $dcc->{type} eq "GET";
debug("removing dcc connected -signal");
Irssi::signal_remove('dcc connected', 'dcc_connected');
my $refresh_msecs = (Irssi::settings_get_int('dccstat_refresh')*1000);
$refresh_msecs = ($dccstat_refresh*1000) if $refresh_msecs < 1000;
debug("adding normal timeout..");
$refresh_tag=Irssi::timeout_add($refresh_msecs, 'refresh_dccstat', undef);
$old_refresh=Irssi::settings_get_int('dccstat_refresh');
Irssi::signal_add_last('dcc destroyed', 'dcc_checklast');
refresh_dccstat();
}
sub dcc_setupcheck {
$new_refresh = Irssi::settings_get_int('dccstat_refresh');
if ($new_refresh != $old_refresh) {
debug("setting a new refresh timeout");
$new_refresh = ($new_refresh*1000);
Irssi::timeout_remove($refresh_tag);
$new_refresh = ($dccstat_refresh*1000) if $new_refresh < 1000;
$refresh_tag=Irssi::timeout_add($new_refresh, 'refresh_dccstat', undef);
$old_refresh=Irssi::settings_get_int('dccstat_refresh');
}
refresh_dccstat();
}
sub dcc_checklast {
my @dccs = Irssi::Irc::dccs();
my $count = dcc_getcount();
debug("check for last, count is '$count'");
return unless $count == 0;
debug("was last, removing timeout '$refresh_tag'");
Irssi::timeout_remove($refresh_tag);
Irssi::signal_remove('dcc destroyed', 'dcc_checklast');
Irssi::signal_add('dcc connected', 'dcc_connected');
refresh_dccstat();
}
# this function calculates the average speed of the last 10 seconds.
# i think that's better than irssis default way of calculating the
# average speed from the whole transfer
sub dcc_calcSpeed {
my @dccs = Irssi::Irc::dccs();
foreach my $dcc (@dccs) {
next unless $dcc->{type} eq "SEND" || $dcc->{type} eq "GET";
my $id = "$dcc->{created}" . "$dcc->{addr}" . "$dcc->{port}";
if (defined($dccstat{$id}{'speed'})) {
my $old = $dccstat{$id}{'position'};
my $current = $dcc->{transfd};
my $speed = (($current-$old)/10);
unless ($dccstat{$id}{'speed'} == "-1" && ($current-$old) == 0) {
$dccstat{$id}{'speed'} = $speed;
}
$dccstat{$id}{'position'} = $current;
} else {
# new dcc
my $id = "$dcc->{created}" . "$dcc->{addr}" . "$dcc->{port}";
debug("creating dcc hash '$id'");
$dccstat{$id}{'speed'} = "-1";
$dccstat{$id}{'position'} = "0";
}
}
# let's remove old hashes
foreach my $hash (keys %dccstat) {
my $keep = 0;
foreach my $dcc (@dccs) {
my $id = "$dcc->{created}" . "$dcc->{addr}" . "$dcc->{port}";
$keep = 1 if ($hash == $id);
}
if ($keep) {
debug("dcc '$hash' is still active, it's speed is '" . $dccstat{$hash}{'speed'} . "'");
} else {
debug("deleting dcc '$hash'");
delete $dccstat{$hash};
}
}
}
### this function originally implemented by dieck@gmx.de
sub dcc_calculateETA {
my $dcc = $_[0];
my ($dccspeed, $dccleft, $going, $dccsecs, $dcctime);
# calculate current speed
$going=(time-$dcc->{starttime});
$going=1 if $going==0;
my $id = "$dcc->{created}" . "$dcc->{addr}" . "$dcc->{port}";
if (defined($dccstat{$id})) {
$dccspeed=$dccstat{$id}{'speed'};
} else {
$dccspeed = -1;
}
## speed in bytes/sec
if ($dccspeed > 0) {
# calculate left transfer size
$dccleft = ($dcc->{size}-$dcc->{transfd});
## size left in byte
$dccspeed=1 if $dccspeed==0;
$dccsecs = $dccleft / $dccspeed;
$dcctime = sprintf("%02d:%02d:%02d", int($dccsecs/60/60), int($dccsecs/60%60), int($dccsecs%60));
} elsif ($dccspeed == "0") {
$dcctime = "stalled";
} elsif ($dccspeed == "-1") {
$dcctime = "???";
} else {
# panic!
$dcctime = "error!";
}
return $dcctime;
}
### this function originally implemented by stefan_tomanek@web.de
sub dcc_progbar {
my ($dcc) = @_;
my ($filebar, $nobar);
my $barwidth = Irssi::settings_get_int('dccstat_progbar_width');
my $char1 = Irssi::settings_get_str('dccstat_progbar_transferred');
my $char2 = Irssi::settings_get_str('dccstat_progbar_position');
my $char3 = Irssi::settings_get_str('dccstat_progbar_remaining');
if ($dcc->{size} > 0) {
my $width_per_size = ($barwidth) / $dcc->{size};
my $transf_chars = sprintf("%.0f",($width_per_size * $dcc->{transfd}));
$filebar = $char1 x $transf_chars;
$nobar = $char3 x ($barwidth - $transf_chars - 1);
return "${filebar}${char2}${nobar}";
} else {
return $barwidth x $char3;
}
}
sub dcc_calculateSIZE {
my $fsize = $_[0];
my ($size, $unit, $div);
if ($fsize >= 1024*1024*1024) { $size = $fsize/1024/1024/1024; $unit = "GB"; $div = 2; }
elsif ($fsize >= 1024*1024) { $size = $fsize/1024/1024; $unit = "MB"; $div = 2; }
elsif ($fsize >= 1024) { $size = $fsize/1024; $unit = "kB"; $div = 0; }
else { $size = $fsize; $unit = "B"; $div = 0; }
$size = sprintf("%.${div}f", $size);
return "${size}${unit}";
}
sub dcc_getcount {
my @dccs = Irssi::Irc::dccs();
my $count = 0;
foreach my $dcc (@dccs) { $count++ if $dcc->{type} eq "GET" || $dcc->{type} eq "SEND"; }
return $count;
}
sub dccstat {
#debug("going into main function");
my ($item, $get_size_only) = @_;
my @dccs=Irssi::Irc::dccs();
my (@results, $results);
my $mode = Irssi::settings_get_bool('dccstat_short_mode');
my $exp_flags = Irssi::EXPAND_FLAG_IGNORE_EMPTY | Irssi::EXPAND_FLAG_IGNORE_REPLACES;
my $theme = Irssi::current_theme();
my $format = $theme->format_expand("{sb_dccstat}");
my $count = dcc_getcount();
if ($count>0) {
my $sendcount=0;
my $getcount=0;
my (
$dccpercent, $dccspeed, $dcctype, $going,
$dccnick, $dccfile, $FooOfBar, $str,
$fsize, $transize, $dcceta, $from,
$to, $direction, $prep, $autolimit,
$separator, $dccprogbar, $dccrotbar
);
foreach my $dcc (@dccs) {
next unless $dcc->{type} eq "SEND" || $dcc->{type} eq "GET";
# if count is above the autolimit, we'll force the mode to short
# but not if we're cycling through transfers.
if (not Irssi::settings_get_bool('dccstat_cycle_through_transfers')) {
$autolimit=Irssi::settings_get_int('dccstat_auto_short_limit');
$mode=1 if $count > $autolimit && $autolimit > 0;
}
$sendcount++ if $dcc->{type} eq "SEND";
$getcount++ if $dcc->{type} eq "GET";
$dccpercent = ($dcc->{size} == 0) ? "(0%)" : sprintf("%.1f", $dcc->{transfd}/$dcc->{size}*100)."%%";
$going = (time-$dcc->{starttime});
$going = 1 if $going==0;
my $id = "$dcc->{created}" . "$dcc->{addr}" . "$dcc->{port}";
if (defined($dccstat{$id})) {
$dccspeed = $dccstat{$id}{'speed'};
} else {
$dccspeed = -1;
}
if ($dccspeed >= 0) {
$dccspeed = sprintf("%.2f", ($dccspeed/1024));
} else {
$dccspeed = sprintf("%.2f", ($dcc->{transfd}-$dcc->{skipped})/$going/1024);
}
$dcctype = $dcc->{type};
$dccnick = $dcc->{nick};
$dccnick =~ s/\\/\\\\/g;
$dccfile = $dcc->{arg};
$dccfile =~ s/ /\240/g;
$dccfile =~ s/\\/\\\\/g;
# if filename is longer than 17 chars, we'll show only the first 15 chars
# and in short mode we'll show only 8 chars
# (lengths are now configurable, but the idea is the same)
my $max_normal = Irssi::settings_get_int('dccstat_filename_max_length');
my $max_short = Irssi::settings_get_int('dccstat_filename_max_length_shortmode');
if (!$mode) {
$dccfile=substr($dccfile, 0, $max_normal-2).".." if (length($dccfile) > $max_normal);
} else {
$dccfile=substr($dccfile, 0, $max_short-2).".." if (length($dccfile) > $max_short);
}
$fsize = dcc_calculateSIZE($dcc->{size});
$transize = dcc_calculateSIZE($dcc->{transfd});
$dccprogbar = dcc_progbar($dcc);
$dccprogbar =~ s/ /\240/g;
$dcceta = dcc_calculateETA($dcc);
if ($dcctype eq "GET") { $direction = "G"; $prep = "from"; }
if ($dcctype eq "SEND") { $direction = "S"; $prep = "to"; }
$dccrotbar = $rot_bar[$rot_bar_n];
# short mode?
if ($mode) {
# theme?
if ($format) {
if ($dcc->{starttime} > 0) {
$str = $theme->format_expand("{sb_ds_short $direction $dccfile $dccspeed $dccpercent $dccprogbar $dccrotbar}", $exp_flags);
} else {
$str = $theme->format_expand("{sb_ds_short_waiting $direction $dccfile $prep $dccnick}", $exp_flags);
}
} else {
$str = "$direction%G:%n$dccfile";
$str .= ($dcc->{starttime} > 0) ? "%G@%n${dccspeed}kB/s%G:%n$dccprogbar%G:%n$dccrotbar%G:%n$dccpercent" : " $prep $dccnick waiting";
}
} else {
if ($format) {
if ($dcc->{starttime} > 0) {
$str = $theme->format_expand("{sb_ds_normal $dcctype $dccnick $dccfile $transize $fsize $dccpercent $dccspeed $dcceta $dccprogbar $dccrotbar}", $exp_flags);
} else {
$str = $theme->format_expand("{sb_ds_normal_waiting $dcctype $dccnick $dccfile $fsize $prep $dccnick}", $exp_flags);
}
} else {
$str = "$dcctype $dccnick: '$dccfile'";
$str .= ($dcc->{starttime} > 0) ? " $transize of $fsize [$dccprogbar] $dccrotbar ($dccpercent) ${dccspeed}kB/s ETA: $dcceta" : " $fsize $prep $dccnick waiting";
}
}
push @results,$str;
}
if (not Irssi::settings_get_bool('dccstat_cycle_through_transfers')) {
$separator = ($theme->format_expand("{sb_ds_separator}")) ? $theme->format_expand("{sb_ds_separator}") : ", ";
$results = join("$separator", @results);
} else {
if (scalar(@results)-1 < $displaying) { $displaying = 0 };
$results = @results[$displaying];
if (not $get_size_only) {
if ((time-$displayed_since) >= (Irssi::settings_get_int('dccstat_cycle_through_transfers_refresh'))) {
debug("refreshing cycle display");
$displaying++;
$displayed_since = time;
}
}
}
} else {
$results="%_DCCs:%_ None" if !$mode;
}
if ($format) {
if ($count > 0) {
$results = "{sb_dccstat $results}"
} else {
$results = "{sb_dccstat $results}" unless $mode;
}
} else {
if ($count > 0) {
$results = "{sb $results}";
} else {
$results = "{sb $results}" unless $mode;
}
}
$item->default_handler($get_size_only, "$results", undef, 1);
}
sub refresh_dccstat {
#debug("refreshing item");
my $hide = Irssi::settings_get_bool('dccstat_hide_sbar_when_inactive');
my $count = dcc_getcount();
if ($hide && $count == 0) {
if ($visible == -1 || $visible == 1) {
Irssi::command("statusbar dccstat disable");
debug("disabling statusbar");
$visible = 0;
}
return;
}
if ($visible == 0 || $visible == -1) {
Irssi::command("statusbar dccstat enable");
debug("enabling statusbar");
$visible = 1;
}
Irssi::statusbar_items_redraw('dccstat');
$rot_bar_n++;
$rot_bar_n %= @rot_bar;
}
my $fref = 0;
sub dcc_fast_refresh {
if (Irssi::settings_get_bool('dccstat_EXPERIMENTAL_fast_refresh'))
{
refresh_dccstat();
$fref++;
debug("transfer updated! ($fref)");
}
}
Irssi::settings_add_int($IRSSI{'name'}, "dccstat_refresh", $dccstat_refresh);
Irssi::settings_add_bool($IRSSI{'name'}, 'dccstat_short_mode', 0);
Irssi::settings_add_bool($IRSSI{'name'}, 'dccstat_hide_sbar_when_inactive', 0);
Irssi::settings_add_int($IRSSI{'name'}, 'dccstat_auto_short_limit', 2);
Irssi::settings_add_int($IRSSI{'name'}, 'dccstat_progbar_width', 10);
Irssi::settings_add_str($IRSSI{'name'}, 'dccstat_progbar_transferred', '%g=%n');
Irssi::settings_add_str($IRSSI{'name'}, 'dccstat_progbar_position', '%y>%n');
Irssi::settings_add_str($IRSSI{'name'}, 'dccstat_progbar_remaining', '%r-%n');
Irssi::settings_add_bool($IRSSI{'name'}, 'dccstat_cycle_through_transfers', 0);
Irssi::settings_add_int($IRSSI{'name'}, 'dccstat_cycle_through_transfers_refresh', 10);
Irssi::settings_add_bool($IRSSI{'name'}, 'dccstat_EXPERIMENTAL_fast_refresh', 0);
Irssi::settings_add_bool($IRSSI{'name'}, 'dccstat_debug', 0);
Irssi::settings_add_int($IRSSI{'name'}, 'dccstat_filename_max_length', 17);
Irssi::settings_add_int($IRSSI{'name'}, 'dccstat_filename_max_length_shortmode', 10);
Irssi::command_bind('dccstat', 'cmd_print_help');
Irssi::statusbar_item_register('dccstat', undef, 'dccstat');
Irssi::timeout_add('10000', 'dcc_calcSpeed', undef);
Irssi::signal_add('dcc connected', 'dcc_connected');
Irssi::signal_add(
{
'setup changed' => \&dcc_setupcheck,
'dcc request' => \&refresh_dccstat,
'dcc created' => \&refresh_dccstat,
'dcc destroyed' => \&refresh_dccstat,
'dcc transfer update' => \&dcc_fast_refresh,
}
);
# Startup
startup_check();
refresh_dccstat();
# lets save some global variables
$old_refresh = Irssi::settings_get_int('dccstat_refresh');
Irssi::print("Dccstat.pl loaded - /dccstat for help");
# EOF

View File

@@ -0,0 +1,53 @@
# /script load hilight-better.pl
use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = '1.02';
%IRSSI = (
authors => '',
contact => '',
name => 'hilight-better',
description => 'Highlight your nick mid-sentence without resorting
to /hilight',
license => 'GPLv3',
url => '',
changed => 'Thu Dec 6 03:15 EST 2012',
);
sub hilight_nick {
my ($dest, $text, $stripped) = @_;
my $server = $dest->{server};
my $nick = $server->{nick};
my $color = Irssi::settings_get_str("hilight_color");
# default attempts to use format message though this is broken
# by nickcolors if you use nick colours I recommend switching
# method to msg and doing /set hilight_nick_matches OFF
my $method = "msg";
if ($dest->{server} && $dest->{level} &
(MSGLEVEL_PUBLIC|MSGLEVEL_MSGS|MSGLEVEL_ACTIONS)) {
# return if you are the source of a msg/public or action
return if ($stripped =~ /<.$nick>/ || $stripped =~ /\* $nick/);
if ($text =~ /$nick/i) {
if ($method eq "default") {
$server->command('/^format pubmsg '.
'{pubmsgnick $2 {pubnick '.chr(3).$color.'$0}}$1');
$dest->{window}->print($text,
MSGLEVEL_PUBLIC+MSGLEVEL_HILIGHT) if($dest->{window});
$server->command('/^format -reset pubmsg');
}
else {
$text =~ s/($nick)/$color$1%n%N/gi;
$dest->{window}->print($text,
MSGLEVEL_PUBLIC+MSGLEVEL_HILIGHT) if($dest->{window});
}
Irssi::signal_stop();
}
}
}
# Signals
#printtext.c:
#"print text", TEXT_DEST_REC *dest, char *text, char *stripped
Irssi::signal_add('print text', 'hilight_nick');

View File

@@ -0,0 +1,156 @@
use strict;
use Irssi 20020101.0250 ();
use vars qw($VERSION %IRSSI);
$VERSION = "1";
%IRSSI = (
authors => "Timo Sirainen, Ian Peters",
contact => "tss\@iki.fi",
name => "Nick Color",
description => "assign a different color for each nick",
license => "Public Domain",
url => "http://irssi.org/",
changed => "2002-03-04T22:47+0100"
);
# hm.. i should make it possible to use the existing one..
Irssi::theme_register([
'pubmsg_hilight', '{pubmsghinick $0 $3 $1}$2'
]);
my %saved_colors;
my %session_colors = {};
my @colors = qw/2 3 4 5 6 7 9 10 11 12 13/;
sub load_colors {
open COLORS, "$ENV{HOME}/.irssi/saved_colors";
while (<COLORS>) {
# I don't know why this is necessary only inside of irssi
my @lines = split "\n";
foreach my $line (@lines) {
my($nick, $color) = split ":", $line;
$saved_colors{$nick} = $color;
}
}
close COLORS;
}
sub save_colors {
open COLORS, ">$ENV{HOME}/.irssi/saved_colors";
foreach my $nick (keys %saved_colors) {
print COLORS "$nick:$saved_colors{$nick}\n";
}
close COLORS;
}
# If someone we've colored (either through the saved colors, or the hash
# function) changes their nick, we'd like to keep the same color associated
# with them (but only in the session_colors, ie a temporary mapping).
sub sig_nick {
my ($server, $newnick, $nick, $address) = @_;
my $color;
$newnick = substr ($newnick, 1) if ($newnick =~ /^:/);
if ($color = $saved_colors{$nick}) {
$session_colors{$newnick} = $color;
} elsif ($color = $session_colors{$nick}) {
$session_colors{$newnick} = $color;
}
}
# This gave reasonable distribution values when run across
# /usr/share/dict/words
sub simple_hash {
my ($string) = @_;
chomp $string;
my @chars = split //, $string;
my $counter;
foreach my $char (@chars) {
$counter += ord $char;
}
$counter = $colors[$counter % 11];
return $counter;
}
# FIXME: breaks /HILIGHT etc.
sub sig_public {
my ($server, $msg, $nick, $address, $target) = @_;
my $chanrec = $server->channel_find($target);
return if not $chanrec;
my $nickrec = $chanrec->nick_find($nick);
return if not $nickrec;
my $nickmode = $nickrec->{op} ? "@" : $nickrec->{voice} ? "+" : "";
# Has the user assigned this nick a color?
my $color = $saved_colors{$nick};
# Have -we- already assigned this nick a color?
if (!$color) {
$color = $session_colors{$nick};
}
# Let's assign this nick a color
if (!$color) {
$color = simple_hash $nick;
$session_colors{$nick} = $color;
}
$color = "0".$color if ($color < 10);
$server->command('/^format pubmsg {pubmsgnick $2 {pubnick '.chr(3).$color.'$0}}$1');
}
sub cmd_color {
my ($data, $server, $witem) = @_;
my ($op, $nick, $color) = split " ", $data;
$op = lc $op;
if (!$op) {
Irssi::print ("No operation given");
} elsif ($op eq "save") {
save_colors;
} elsif ($op eq "set") {
if (!$nick) {
Irssi::print ("Nick not given");
} elsif (!$color) {
Irssi::print ("Color not given");
} elsif ($color < 2 || $color > 14) {
Irssi::print ("Color must be between 2 and 14 inclusive");
} else {
$saved_colors{$nick} = $color;
}
} elsif ($op eq "clear") {
if (!$nick) {
Irssi::print ("Nick not given");
} else {
delete ($saved_colors{$nick});
}
} elsif ($op eq "list") {
Irssi::print ("\nSaved Colors:");
foreach my $nick (keys %saved_colors) {
Irssi::print (chr (3) . "$saved_colors{$nick}$nick" .
chr (3) . "1 ($saved_colors{$nick})");
}
} elsif ($op eq "preview") {
Irssi::print ("\nAvailable colors:");
foreach my $i (2..14) {
Irssi::print (chr (3) . "$i" . "Color #$i");
}
}
}
load_colors;
Irssi::command_bind('color', 'cmd_color');
Irssi::signal_add('message public', 'sig_public');
Irssi::signal_add('event nick', 'sig_nick');

View File

@@ -0,0 +1,177 @@
#!/usr/bin/perl -w
# USAGE:
#
# /RSAY <text>
# - same as /say, but outputs a coloured text
#
# /RME <text>
# - same as /me, but outputs a coloured text
#
# /RTOPIC <text>
# - same as /topic, but outputs a coloured text :)
#
# /RKICK <nick> [reason]
# - kicks nick from the current channel with coloured reason
# Written by Jakub Jankowski <shasta@atn.pl>
# for Irssi 0.7.98.4 and newer
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.4";
%IRSSI = (
authors => 'Jakub Jankowski',
contact => 'shasta@atn.pl',
name => 'rainbow',
description => 'Prints colored text. Rather simple than sophisticated.',
license => 'GNU GPLv2 or later',
url => 'http://irssi.atn.pl/',
);
use Irssi;
use Irssi::Irc;
# colors list
# 0 == white
# 4 == light red
# 8 == yellow
# 9 == light green
# 11 == light cyan
# 12 == light blue
# 13 == light magenta
# my @colors = ('0', '4', '8', '9', '11', '12', '13');
# my @colors = ('2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13');
my @colors = ('4', '8', '9', '11', '12', '13');
# str make_colors($string)
# returns random-coloured string
sub make_colors_rand {
my ($string) = @_;
my $newstr = "";
my $last = 255;
my $color = 0;
for (my $c = 0; $c < length($string); $c++) {
my $char = substr($string, $c, 1);
if ($char eq ' ') {
$newstr .= $char;
next;
}
while (($color = int(rand(scalar(@colors)))) == $last) {};
$last = $color;
$newstr .= "\003";
$newstr .= sprintf("%02d", $colors[$color]);
$newstr .= (($char eq ",") ? ",," : $char);
}
return $newstr;
}
# str make_colors($string)
# returns random-coloured string
my $last_color = 0;
sub make_colors {
my ($string) = @_;
my $newstr = "";
my $last = $last_color;
my $color = 0;
my $colorrep = 2;
for (my $c = 0; $c < length($string); $c++) {
my $char = substr($string, $c, 1);
#if ($char eq ' ') {
# $newstr .= $char;
# next;
#}
$last++;
$color = ($last / $colorrep) % scalar(@colors);
$newstr .= "\003";
$newstr .= sprintf("%02d", $colors[$color]);
$newstr .= (($char eq ",") ? "\," : $char);
}
$last_color += 2;#rotate $last;
return $newstr;
}
# void rsay($text, $server, $destination)
# handles /rsay
sub rsay {
my ($text, $server, $dest) = @_;
if (!$server || !$server->{connected}) {
Irssi::print("Not connected to server");
return;
}
return unless $dest;
if ($dest->{type} eq "CHANNEL" || $dest->{type} eq "QUERY") {
$dest->command("/msg " . $dest->{name} . " " . make_colors($text));
}
}
# void rme($text, $server, $destination)
# handles /rme
sub rme {
my ($text, $server, $dest) = @_;
if (!$server || !$server->{connected}) {
Irssi::print("Not connected to server");
return;
}
if ($dest && ($dest->{type} eq "CHANNEL" || $dest->{type} eq "QUERY")) {
$dest->command("/me " . make_colors($text));
}
}
# void rtopic($text, $server, $destination)
# handles /rtopic
sub rtopic {
my ($text, $server, $dest) = @_;
if (!$server || !$server->{connected}) {
Irssi::print("Not connected to server");
return;
}
if ($dest && $dest->{type} eq "CHANNEL") {
$dest->command("/topic " . make_colors($text));
}
}
# void rkick($text, $server, $destination)
# handles /rkick
sub rkick {
my ($text, $server, $dest) = @_;
if (!$server || !$server->{connected}) {
Irssi::print("Not connected to server");
return;
}
if ($dest && $dest->{type} eq "CHANNEL") {
my ($nick, $reason) = split(/ +/, $text, 2);
return unless $nick;
$reason = "Irssi power!" if ($reason =~ /^[\ ]*$/);
$dest->command("/kick " . $nick . " " . make_colors($reason));
}
}
Irssi::command_bind("rsay", "rsay");
Irssi::command_bind("rtopic", "rtopic");
Irssi::command_bind("rme", "rme");
Irssi::command_bind("rkick", "rkick");
# changes:
#
# 25.01.2002: Initial release (v1.0)
# 26.01.2002: /rtopic added (v1.1)
# 29.01.2002: /rsay works with dcc chats now (v1.2)
# 02.02.2002: make_colors() doesn't assign any color to spaces (v1.3)
# 23.02.2002: /rkick added

7
.jigdo-lite Normal file
View File

@@ -0,0 +1,7 @@
jigdo=''
debianMirror='http://mirrors.ocf.berkeley.edu/debian/'
nonusMirror=''
tmpDir='.'
jigdoOpts='--cache jigdo-file-cache.db'
wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30'
scanMenu=''

1
.local/bin/claude Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.local/share/claude/versions/2.1.81

11
.local/bin/pyfiglet Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from pyfiglet import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

10
.local/bin/rainbowstream Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from rainbowstream.rainbow import fly
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(fly())

10
.local/bin/termdown Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from termdown import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

10
.local/bin/termtrack Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from termtrack.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

3
.local/bin/tmux-window-icon Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
symbols=(❶ ❷ ❸ ❹ ❺ ❻ ❼ ❽ ❾ ❿)
echo ${symbols[$1-1]}

11
.local/bin/twitter Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.cmdline import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
.local/bin/twitter-archiver Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.archiver import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
.local/bin/twitter-follow Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.follow import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
.local/bin/twitter-log Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.logger import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.stream_example import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

11
.local/bin/twitterbot Executable file
View File

@@ -0,0 +1,11 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from twitter.ircbot import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())

3
.mplayer/config Normal file
View File

@@ -0,0 +1,3 @@
# Write your default config options here!

66
.nano/search_history Normal file
View File

@@ -0,0 +1,66 @@
sdb
root
deafgeeksirc
subtitle
transcoding
srt
import
ls
video0
chip
core:
Downloads
6900
AVFMT
AV_CODEC_FLAG
: 1530588222:0;
nvidia
shield
action.MAIN
action
intent
launcher
LAUNCHER
call CET
not fully
device
0x7f11009e
device_not
0x7
vidia
authenti
dpkg
init
RECEIVER_BASH
3.7.1
chowdown
paint-on
alpha
no-dock-shadow
vsync
glx-swap-method
clear-shadow
x_fence
g
nick
osd
DCS-21
DCS
DockState
PATH
$PATH
autosleep
autostop
passwordauthentication
32X32
32x32
Plasma Stick Simple Web Control
Web
footer
Plasma Stick
Simple
REDACTED
status-right

1
.nanorc Normal file
View File

@@ -0,0 +1 @@
set linenumbers

24
.profile Normal file
View File

@@ -0,0 +1,24 @@
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
export QT_QPA_PLATFORMTHEME=gtk2

1
.pryrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/irb/pryrc

41
.rainbow_config.json Executable file
View File

@@ -0,0 +1,41 @@
{
"IMAGE_ON_TERM": false,
"IMAGE_RESIZE_TO_FIT": true,
"THEME": "larapaste",
"ASCII_ART": true,
"HIDE_PROMPT": true,
"PREFIX": "#owner#place#me#keyword",
"SEARCH_TYPE": "mixed",
"SEARCH_MAX_RECORD": 5,
"HOME_TWEET_NUM": 5,
"RETWEETS_SHOW_NUM": 5,
"CONVERSATION_MAX": 30,
"QUOTE_FORMAT": "#comment https://twitter.com/#owner/status/#tid",
"THREAD_META_LEFT": "(#id) #clock",
"THREAD_META_RIGHT": "#clock (#id)",
"THREAD_MIN_WIDTH": 20,
"NOTIFY_FORMAT": " #source_user #notify #clock",
"MESSAGES_DISPLAY": 5,
"TREND_MAX": 10,
"LIST_MAX": 8,
"ONLY_LIST": [],
"IGNORE_LIST": [],
"HISTORY_FILENAME": "completer.hist",
"IMAGE_SHIFT": 2,
"IMAGE_MAX_HEIGHT": 90,
"STREAM_DELAY": 0,
"USER_DOMAIN": "userstream.twitter.com",
"PUBLIC_DOMAIN": "stream.twitter.com",
"SITE_DOMAIN": "sitestream.twitter.com",
"FORMAT": {
"TWEET": {
"CLOCK_FORMAT": "%Y/%m/%d %H:%M:%S",
"DISPLAY": "\n #name #nick #clock \n \u267a:#rt_count \u2665:#fa_count id:#id via #client #fav\n #tweet"
},
"MESSAGE": {
"CLOCK_FORMAT": "%Y/%m/%d %H:%M:%S",
"DISPLAY": "\n #sender_name #sender_nick #to #recipient_name #recipient_nick :\n #clock message_id:#id\n #message"
}
},
"POCKET_SUPPORT": false
}

1
.rdebugrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/ruby/rdebugrc

2
.selected_editor Normal file
View File

@@ -0,0 +1,2 @@
# Generated by /usr/bin/select-editor
SELECTED_EDITOR="/bin/nano"

View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Name=BlackMATE v2.2
Type=X-GNOME-Metatheme
Comment=
[X-GNOME-Metatheme]
GtkTheme=BlackMATE
MetacityTheme=BlackMATE
IconTheme=Papirus-Dark
GtkColorScheme=
CursorTheme=mate-black
CursorSize=32
NotificationTheme=coco
BackgroundImage=/home/dissimulo/Pictures/Backgrounds/460354008_18463706572018956_6930884854914187530_n.jpg

View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Name=BlackMATE v2
Type=X-GNOME-Metatheme
Comment=
[X-GNOME-Metatheme]
GtkTheme=BlackMATE
MetacityTheme=BlackMATE
IconTheme=Sea
GtkColorScheme=
CursorTheme=mate-black
CursorSize=32
NotificationTheme=coco
BackgroundImage=/home/dissimulo/Downloads/The Journey by Pasoputi..jpg

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Name=Dark Faenza
Type=X-GNOME-Metatheme
Comment=
[X-GNOME-Metatheme]
GtkTheme=BlackMATE
MetacityTheme=BlackMATE
IconTheme=Papirus-Dark
GtkColorScheme=
CursorTheme=bloom-dark
CursorSize=36

View File

@@ -0,0 +1,14 @@
[Desktop Entry]
Name=The Blues
Type=X-GNOME-Metatheme
Comment=
[X-GNOME-Metatheme]
GtkTheme=BlackMATE
MetacityTheme=Bluebird
IconTheme=matefaenzadark
GtkColorScheme=
CursorTheme=DMZ-Black
CursorSize=24
NotificationTheme=Coco
BackgroundImage=/home/dissimulo/Downloads/Wallpapers/meteor-shower.jpg

1
.tmux.conf Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/tmux/tmux.conf

1
.unescaped_colors.rb Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/irb/unescaped_colors.rb

1
.vim Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/vim

1
.vimrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/vimrc

30
.weatherspect Normal file
View File

@@ -0,0 +1,30 @@
# use ansi color (0 = no, 1 = yes)
color: 1
# run in debug mode (0 = no, 1 = yes)
debug: 0
# how many random things to animate at once
entities: 2
# how long (in seconds) to sleep between frames
frame_delay: 0.2
# City / City, State / City, Country / Country
location: Redlands, CA
# how often (in seconds) to attempt to retrieve weather data
retr_interval: 600
# how to display temperatures ( metric, standard or both )
temp_display: standard
# how long (in seconds) trees should live
tree_lifespan: 3600
# the version of weatherspect this config was generated with
version: 1.11
# how to display wind speeds ( metric, standard or both )
wind_display: standard

30
.xmodmap Normal file
View File

@@ -0,0 +1,30 @@
!
! based on: http://www.emacswiki.org/emacs/SwapControlAltAndCapsLock#toc8
! also based on: http://askubuntu.com/questions/93624/how-do-i-swap-left-ctrl-with-left-alt-on-my-keyboard
!
! Swap Control and Alt keys, both sides:
! First clear all modifiers & control
clear control
clear mod1
clear mod4
! Swap Control_L and Alt_L
keycode 64 = Control_L
keycode 37 = Alt_L Meta_L
! Menu becomes Alt_R Meta_R (AltGr)
! keycode 135 = Alt_R Meta_R
! Define Control_R and Alt_R similar to Control_L and Alt_L
keycode 108 = Control_L
keycode 105 = Alt_L Meta_L
! We need to set keycodes first, as some programs (emacs!) read
! the key names and seem to ignore what's below.
add mod1 = Alt_L Alt_R Meta_L Meta_R
add mod4 = Super_L Super_R
add control = Control_L Control_R

272
.xscreensaver Normal file
View File

@@ -0,0 +1,272 @@
# XScreenSaver Preferences File
# Written by xscreensaver-demo 5.34 for dissimulo on Thu Dec 17 02:40:05 2015.
# http://www.jwz.org/xscreensaver/
timeout: 12:00:00
cycle: 12:00:00
lock: True
lockTimeout: 0:03:00
passwdTimeout: 0:00:30
visualID: default
installColormap: True
verbose: False
timestamp: True
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-demo
prefsCommand: xscreensaver-demo -prefs
nice: 10
memoryLimit: 0
fade: True
unfade: False
fadeSeconds: 0:00:03
fadeTicks: 20
captureStderr: True
ignoreUninstalledPrograms:False
font: *-medium-r-*-140-*-m-*
dpmsEnabled: False
dpmsQuickOff: False
dpmsStandby: 2:00:00
dpmsSuspend: 2:00:00
dpmsOff: 4:00:00
grabDesktopImages: False
grabVideoFrames: False
chooseRandomImages: False
imageDirectory:
mode: one
selected: 182
textMode: date
textLiteral: XScreenSaver
textFile:
textProgram: fortune
textURL: http://planet.debian.org/rss20.xml
programs: \
maze -root \n\
GL: superquadrics -root \n\
attraction -root \n\
blitspin -root \n\
greynetic -root \n\
helix -root \n\
hopalong -root \n\
imsmap -root \n\
- noseguy -root \n\
- pyro -root \n\
qix -root \n\
- rocks -root \n\
rorschach -root \n\
decayscreen -root \n\
flame -root \n\
halo -root \n\
slidescreen -root \n\
pedal -root \n\
bouboule -root \n\
- braid -root \n\
coral -root \n\
deco -root \n\
drift -root \n\
- fadeplot -root \n\
galaxy -root \n\
goop -root \n\
grav -root \n\
ifs -root \n\
GL: jigsaw -root \n\
julia -root \n\
- kaleidescope -root \n\
GL: moebius -root \n\
moire -root \n\
GL: morph3d -root \n\
mountain -root \n\
munch -root \n\
penrose -root \n\
GL: pipes -root \n\
rd-bomb -root \n\
GL: rubik -root \n\
- sierpinski -root \n\
slip -root \n\
GL: sproingies -root \n\
starfish -root \n\
strange -root \n\
swirl -root \n\
triangle -root \n\
xjack -root \n\
xlyap -root \n\
GL: atlantis -root \n\
bsod -root \n\
GL: bubble3d -root \n\
GL: cage -root \n\
- crystal -root \n\
cynosure -root \n\
discrete -root \n\
distort -root \n\
epicycle -root \n\
flow -root \n\
- GL: glplanet -root \n\
interference -root \n\
kumppa -root \n\
GL: lament -root \n\
moire2 -root \n\
GL: sonar -root \n\
GL: stairs -root \n\
truchet -root \n\
- vidwhacker -root \n\
blaster -root \n\
bumps -root \n\
ccurve -root \n\
compass -root \n\
deluxe -root \n\
- demon -root \n\
GL: extrusion -root \n\
- loop -root \n\
penetrate -root \n\
petri -root \n\
phosphor -root \n\
GL: pulsar -root \n\
ripples -root \n\
shadebobs -root \n\
GL: sierpinski3d -root \n\
spotlight -root \n\
squiral -root \n\
wander -root \n\
- webcollage -root \n\
xflame -root \n\
xmatrix -root \n\
GL: gflux -root \n\
- nerverot -root \n\
xrayswarm -root \n\
xspirograph -root \n\
GL: circuit -root \n\
GL: dangerball -root \n\
GL: engine -root \n\
GL: flipscreen3d -root \n\
GL: gltext -root \n\
GL: menger -root \n\
GL: molecule -root \n\
rotzoomer -root \n\
speedmine -root \n\
GL: starwars -root \n\
GL: stonerview -root \n\
vermiculate -root \n\
whirlwindwarp -root \n\
zoom -root \n\
anemone -root \n\
apollonian -root \n\
GL: boxed -root \n\
GL: cubenetic -root \n\
GL: endgame -root \n\
euler2d -root \n\
fluidballs -root \n\
GL: flurry -root \n\
- GL: glblur -root \n\
GL: glsnake -root \n\
halftone -root \n\
GL: juggler3d -root \n\
GL: lavalite -root \n\
- polyominoes -root \n\
GL: queens -root \n\
- GL: sballs -root \n\
GL: spheremonics -root \n\
- thornbird -root \n\
twang -root \n\
- GL: antspotlight -root \n\
apple2 -root \n\
GL: atunnel -root \n\
barcode -root \n\
GL: blinkbox -root \n\
GL: blocktube -root \n\
GL: bouncingcow -root \n\
cloudlife -root \n\
GL: cubestorm -root \n\
eruption -root \n\
GL: flipflop -root \n\
GL: flyingtoasters -root \n\
fontglide -root \n\
GL: gleidescope -root \n\
GL: glknots -root \n\
GL: glmatrix -root \n\
- GL: glslideshow -root \n\
GL: hypertorus -root \n\
- GL: jigglypuff -root \n\
metaballs -root \n\
GL: mirrorblob -root \n\
piecewise -root \n\
GL: polytopes -root \n\
pong -root \n\
popsquares -root \n\
GL: surfaces -root \n\
xanalogtv -root \n\
- abstractile -root \n\
anemotaxis -root \n\
- GL: antinspect -root \n\
fireworkx -root \n\
fuzzyflakes -root \n\
interaggregate -root \n\
intermomentary -root \n\
memscroller -root \n\
GL: noof -root \n\
pacman -root \n\
GL: pinion -root \n\
GL: polyhedra -root \n\
- GL: providence -root \n\
substrate -root \n\
wormhole -root \n\
- GL: antmaze -root \n\
GL: boing -root \n\
boxfit -root \n\
GL: carousel -root \n\
celtic -root \n\
GL: crackberg -root \n\
GL: cube21 -root \n\
fiberlamp -root \n\
GL: fliptext -root \n\
GL: glhanoi -root \n\
GL: tangram -root \n\
GL: timetunnel -root \n\
GL: glschool -root \n\
GL: topblock -root \n\
GL: cubicgrid -root -speed 0.5322 -fps \n\
cwaves -root \n\
GL: gears -root \n\
GL: glcells -root \n\
GL: lockward -root \n\
m6502 -root \n\
GL: moebiusgears -root \n\
GL: voronoi -root \n\
GL: hypnowheel -root \n\
GL: klein -root \n\
- lcdscrub -root \n\
GL: photopile -root \n\
GL: skytentacles -root \n\
GL: rubikblocks -root \n\
GL: companioncube -root \n\
GL: hilbert -root \n\
GL: tronbit -root \n\
GL: geodesic -root \n\
hexadrop -root \n\
GL: kaleidocycle -root \n\
GL: quasicrystal -root \n\
GL: unknownpleasures -root \n\
unicode -root \n\
GL: projectiveplane -root \n\
tessellimage -root \n\
GL: winduprobot -root \n\
binaryring -root \n\
GL: cityflow -root \n\
GL: geodesicgears -root \n\
GL: romanboy -root \n\
GL: splitflap -root \n\
testx11 -root \n\
pointerPollTime: 0:00:05
pointerHysteresis: 10
windowCreationTimeout:0:00:30
initialDelay: 0:00:00
GetViewPortIsFullOfLies:False
procInterrupts: True
xinputExtensionDev: False
overlayStderr: True
authWarningSlack: 20

62
.xsnowrc Normal file
View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<xsnow_flags>
<AllWorkspaces>1</AllWorkspaces>
<BlowOffFactor>40</BlowOffFactor>
<CpuLoad>100</CpuLoad>
<Transparency>0</Transparency>
<DesiredNumberOfTrees>10</DesiredNumberOfTrees>
<Exposures>-42</Exposures>
<FlakeCountMax>300</FlakeCountMax>
<FullScreen>0</FullScreen>
<MaxOnTrees>200</MaxOnTrees>
<MaxScrSnowDepth>50</MaxScrSnowDepth>
<MaxWinSnowDepth>30</MaxWinSnowDepth>
<NoBlowSnow>1</NoBlowSnow>
<NoFluffy>0</NoFluffy>
<NoKeepSBot>0</NoKeepSBot>
<NoKeepSnow>0</NoKeepSnow>
<NoKeepSnowOnTrees>1</NoKeepSnowOnTrees>
<NoKeepSWin>0</NoKeepSWin>
<NoMeteorites>1</NoMeteorites>
<NoRudolf>0</NoRudolf>
<NoSanta>0</NoSanta>
<NoSnowFlakes>0</NoSnowFlakes>
<NoTrees>0</NoTrees>
<NoWind>0</NoWind>
<NStars>20</NStars>
<OffsetS>0</OffsetS>
<OffsetW>-8</OffsetW>
<OffsetX>4</OffsetX>
<OffsetY>0</OffsetY>
<SantaSize>2</SantaSize>
<SantaSpeedFactor>100</SantaSpeedFactor>
<SnowFlakesFactor>100</SnowFlakesFactor>
<SnowSize>8</SnowSize>
<SnowSpeedFactor>100</SnowSpeedFactor>
<TreeFill>30</TreeFill>
<UseBG>0</UseBG>
<WantWindow>0</WantWindow>
<WhirlFactor>100</WhirlFactor>
<WindTimer>30</WindTimer>
<BGColor>#000000</BGColor>
<DisplayName/>
<SnowColor>snow</SnowColor>
<TreeColor>chartreuse</TreeColor>
<TreeType>0,</TreeType>
<Anarchy>50</Anarchy>
<AttrFactor>100</AttrFactor>
<BirdsOnly>0</BirdsOnly>
<BirdsRestart>0</BirdsRestart>
<BirdsScale>100</BirdsScale>
<BirdsSpeed>100</BirdsSpeed>
<DisWeight>20</DisWeight>
<FollowWeight>30</FollowWeight>
<FollowSanta>1</FollowSanta>
<Nbirds>70</Nbirds>
<Neighbours>7</Neighbours>
<PrefDistance>20</PrefDistance>
<ShowAttrPoint>0</ShowAttrPoint>
<ShowBirds>1</ShowBirds>
<ViewingDistance>40</ViewingDistance>
<BirdsColor>#361A07</BirdsColor>
</xsnow_flags>

1
.zlogin Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto/runcoms/zlogin

22
.zlogin.backup Normal file
View File

@@ -0,0 +1,22 @@
#
# Executes commands at login post-zshrc.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Execute code that does not affect the current session in the background.
{
# Compile the completion dump to increase startup speed.
zcompdump="${ZDOTDIR:-$HOME}/.zcompdump"
if [[ -s "$zcompdump" && (! -s "${zcompdump}.zwc" || "$zcompdump" -nt "${zcompdump}.zwc") ]]; then
zcompile "$zcompdump"
fi
} &!
# Print a random, hopefully interesting, adage.
if (( $+commands[fortune] )); then
fortune -a
print
fi

1
.zlogout Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto/runcoms/zlogout

14
.zlogout.backup Normal file
View File

@@ -0,0 +1,14 @@
#
# Executes commands at logout.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Print the message.
cat <<-EOF
Thank you. Come again!
-- Dr. Apu Nahasapeemapetilon
EOF

1
.zpreztorc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto-override/zpreztorc

1
.zpreztorc.backup Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto-override/zpreztorc

1
.zprofile Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto/runcoms/zprofile

7
.zprofile.backup Normal file
View File

@@ -0,0 +1,7 @@
#
# Executes commands at login pre-zshrc.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#

1
.zshenv Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto/runcoms/zshenv

76
.zshenv.backup Normal file
View File

@@ -0,0 +1,76 @@
#
# Defines environment variables.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
#
# Browser
#
if [[ "$OSTYPE" == darwin* ]]; then
export BROWSER='open'
fi
#
# Editors
#
export EDITOR='nano'
export VISUAL='nano'
export PAGER='less'
#
# Language
#
if [[ -z "$LANG" ]]; then
export LANG='en_US.UTF-8'
fi
#
# Paths
#
typeset -gU cdpath fpath mailpath path
# Set the the list of directories that cd searches.
# cdpath=(
# $cdpath
# )
# Set the list of directories that Zsh searches for programs.
path=(
/usr/local/{bin,sbin}
$path
)
#
# Less
#
# Set the default Less options.
# Mouse-wheel scrolling has been disabled by -X (disable screen clearing).
# Remove -X and -F (exit if the content fits on one screen) to enable it.
export LESS='-F -g -i -M -R -S -w -X -z-4'
# Set the Less input preprocessor.
if (( $+commands[lesspipe.sh] )); then
export LESSOPEN='| /usr/bin/env lesspipe.sh %s 2>&-'
fi
#
# Temporary Files
#
if [[ ! -d "$TMPDIR" ]]; then
export TMPDIR="/tmp/$USER"
mkdir -p -m 700 "$TMPDIR"
fi
TMPPREFIX="${TMPDIR%/}/zsh"
if [[ ! -d "$TMPPREFIX" ]]; then
mkdir -p "$TMPPREFIX"
fi

1
.zshrc Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto-override/zshrc

1
.zshrc.backup Symbolic link
View File

@@ -0,0 +1 @@
/home/dissimulo/.yadr/zsh/prezto/runcoms/zshrc