updated dotfiles

This commit is contained in:
Wyatt J. Miller 2021-07-07 22:59:54 -04:00
parent 65385ededd
commit 85f961dd26
127 changed files with 563687 additions and 49 deletions

70
.vimrc
View File

@ -1,46 +1,50 @@
" must have posix shell
set shell=/bin/bash
" Plugins will be downloaded under the specified directory.
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' :'~/.vim/plugged')
"
" " Declare the list of plugins.
Plug 'tpope/vim-sensible'
Plug 'ajmwagar/vim-deus'
Plug 'raimondi/delimitmate'
Plug 'junegunn/fzf'
Plug 'shougo/neocomplete.vim'
Plug 'scrooloose/nerdtree'
Plug 'netrw.vim'
Plug 'scrooloose/syntastic'
Plug 'rust-lang/rust.vim'
Plug 'godlygeek/tabular'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'fsharp/vim-fsharp'
Plug 'fatih/vim-go'
Plug 'sheerun/vim-polyglot'
Plug 'anyakichi/vim-surround'
Plug 'valloric/youcompleteme'
Plug 'rhysd/vim-crystal'
Plug 'vim-ruby/vim-ruby'
Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'ayu-theme/ayu-vim'
" these are required some odd reason
set nocompatible
filetype off
" " List ends here. Plugins become visible to Vim after this call.
call plug#end()
" required because Vundle
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" sensible defaults from syntastic
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
" PLUGINS YO
Plugin 'raimondi/delimitmate'
Plugin 'junegunn/fzf'
Plugin 'morhetz/gruvbox'
Plugin 'shougo/neocomplete.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'netrw.vim'
Plugin 'scrooloose/syntastic'
Plugin 'rust-lang/rust.vim'
Plugin 'godlygeek/tabular'
Plugin 'vim-airline/vim-airline'
Plugin 'vim-airline/vim-airline-themes'
Plugin 'fsharp/vim-fsharp'
Plugin 'fatih/vim-go'
Plugin 'sheerun/vim-polyglot'
Plugin 'anyakichi/vim-surround'
Plugin 'valloric/youcompleteme'
Plugin 'rhysd/vim-crystal'
Plugin 'vim-ruby/vim-ruby'
" required because Vundle
call vundle#end()
filetype plugin indent on
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" things that don't make my life a living hell lolz
autocmd StdinReadPre * let s:std_in=1
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | endif
set background=dark
" set termguicolors
set laststatus=2
set mouse=a
set number
map <C-d> :NERDTreeFocus<CR>
syntax on
colorscheme gruvbox
colorscheme deus

View File

@ -1,16 +0,0 @@
cat /etc/motd | lolcat
tmux new-session -s wyatt_m
# Install pywal from pip, and then use the -i flag to set your own path to your picture
wal -i $HOME/Pictures/rocket.jpg
alias ls="ls -lahi --color=auto --group-directories-first"
alias l="ls -lahi --color=auto --group-directories-first"
alias ifconfig="ip -c addr show"
alias cat="lolcat"
alias rvm="bash -c 'rvm'"
alias ps="ps aux"
alias shit="source /home/wyatt/.config/fish/config.fish"
export GOPATH=/home/wyatt/Source/go
export PATH="$HOME:$HOME/.luarocks/:$HOME/.cargo/bin:$HOME/Source/scripts:$GOPATH/bin:$PATH"

36
config/aerc/accounts.conf Normal file
View File

@ -0,0 +1,36 @@
[Personal]
source = imaps://wyatt%40wyattjmiller.com:7%5Devg2AtWY@mail.wyattjmiller.com
outgoing = smtps+plain://wyatt%40wyattjmiller.com:7%5Devg2AtWY@mail.wyattjmiller.com
default = INBOX
from = Wyatt J. Miller <wyatt@wyattjmiller.com>
copy-to = Sent
[Work]
source = imaps://wyatt%40acsapp.com:w%21ldLiquid86@outlook.office365.com
outgoing = smtps+plain://wyatt%40acsapp.com:w%21ldLiquid86@outlook.office365.com
default = INBOX
from = Wyatt Miller <wyatt@acsapp.com>
copy-to = Sent
[School - FSU]
source = imaps://millew14%40ferris.edu:IhaveanInteli36100%21@outlook.office365.com
outgoing = smtps+plain://millew14%40ferris.edu:IhaveanInteli36100%21@outlook.office365.com
default = INBOX
from = Wyatt J. Miller <millew14@ferris.edu>
copy-to = Sent
[School - NMC]
source = imaps://mill1159%40mail.nmc.edu:35C%23%2ApgMgaWdRF%25@imap.gmail.com
outgoing = smtps+plain://mill1159%40mail.nmc.edu:35C%23%2ApgMgaWdRF%25@smtp.gmail.com
default = INBOX
from = Wyatt J. Miller <mill1159@mail.nmc.edu>
copy-to = Sent
[Gmail]
source = imaps://wjmiller2016%40gmail.com:192837465wjmwjmwjm@imap.gmail.com:993
outgoing = smtp+plain://wjmiller2016%40gmail.com:192837465wjmwjmwjm@smtp.gmail.com:587
default = INBOX
smtp-starttls = yes
from = Wyatt J. Miller <wjmiller2016@gmail.com>
copy-to = Sent

200
config/aerc/aerc.conf Normal file
View File

@ -0,0 +1,200 @@
#
# aerc main configuration
[ui]
#
# Describes the format for each row in a mailbox view. This field is compatible
# with mutt's printf-like syntax.
#
# Default: %D %-17.17n %Z %s
index-format=%D %-17.17n %Z %s
#
# See time.Time#Format at https://godoc.org/time#Time.Format
#
# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
timestamp-format=2006-01-02 03:04 PM
#
# Width of the sidebar, including the border.
#
# Default: 20
sidebar-width=20
#
# Message to display when viewing an empty folder.
#
# Default: (no messages)
empty-message=(no messages)
# Message to display when no folders exists or are all filtered
#
# Default: (no folders)
empty-dirlist=(no folders)
# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
#
# Default: false
mouse-enabled=false
#
# Ring the bell when new messages are received
#
# Default: true
new-message-bell=true
# Marker to show before a pinned tab's name.
#
# Default: `
pinned-tab-marker='`'
# Describes the format string to use for the directory list
#
# Default: %n %>r
dirlist-format=%n %>r
# List of space-separated criteria to sort the messages by, see *sort*
# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
# reverses that criterion.
#
# Example: "from -r date"
#
# Default: ""
sort=
# Moves to next message when the current message is deleted
#
# Default: true
next-message-on-delete=true
# The directories where the stylesets are stored. It takes a colon-separated
# list of directories.
#
# default: /usr/local/share/aerc/stylesets/
stylesets-dirs=/usr/local/share/aerc/stylesets/
# Sets the styleset to use for the aerc ui elements.
#
# Default: default
styleset-name=default
[viewer]
#
# Specifies the pager to use when displaying emails. Note that some filters
# may add ANSI codes to add color to rendered emails, so you may want to use a
# pager which supports ANSI codes.
#
# Default: less -R
pager=less -R
#
# If an email offers several versions (multipart), you can configure which
# mimetype to prefer. For example, this can be used to prefer plaintext over
# html emails.
#
# Default: text/plain,text/html
alternatives=text/plain,text/html
#
# Default setting to determine whether to show full headers or only parsed
# ones in message viewer.
#
# Default: false
show-headers=false
#
# Layout of headers when viewing a message. To display multiple headers in the
# same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
# none of their specified headers are present in the message.
#
# Default: From|To,Cc|Bcc,Date,Subject
header-layout=From|To,Cc|Bcc,Date,Subject
# Whether to always show the mimetype of an email, even when it is just a single part
#
# Default: false
always-show-mime=false
# How long to wait after the last input before auto-completion is triggered.
#
# Default: 250ms
completion-delay=250ms
#
# Global switch for completion popovers
#
# Default: true
completion-popovers=true
[compose]
#
# Specifies the command to run the editor with. It will be shown in an embedded
# terminal, though it may also launch a graphical window if the environment
# supports it. Defaults to $EDITOR, or vi.
editor=
#
# Default header fields to display when composing a message. To display
# multiple headers in the same row, separate them with a pipe, e.g. "To|From".
#
# Default: To|From,Subject
header-layout=To|From,Subject
#
# Specifies the command to be used to tab-complete email addresses. Any
# occurrence of "%s" in the address-book-cmd will be replaced with what the
# user has typed so far.
#
# The command must output the completions to standard output, one completion
# per line. Each line must be tab-delimited, with an email address occurring as
# the first field. Only the email address field is required. The second field,
# if present, will be treated as the contact name. Additional fields are
# ignored.
address-book-cmd=
[filters]
#
# Filters allow you to pipe an email body through a shell command to render
# certain emails differently, e.g. highlighting them with ANSI escape codes.
#
# The first filter which matches the email's mimetype will be used, so order
# them from most to least specific.
#
# You can also match on non-mimetypes, by prefixing with the header to match
# against (non-case-sensitive) and a comma, e.g. subject,text will match a
# subject which contains "text". Use header,~regex to match against a regex.
subject,~^\[PATCH=awk -f /usr/local/share/aerc/filters/hldiff
#text/html=/usr/local/share/aerc/filters/html
text/*=awk -f /usr/local/share/aerc/filters/plaintext
#image/*=catimg -w $(tput cols) -
[triggers]
#
# Triggers specify commands to execute when certain events occur.
#
# Example:
# new-email=exec notify-send "New email from %n" "%s"
#
# Executed when a new email arrives in the selected folder
new-email=
[templates]
# Templates are used to populate email bodies automatically.
#
# The directories where the templates are stored. It takes a colon-separated
# list of directories.
#
# default: /usr/local/share/aerc/templates/
template-dirs=/usr/local/share/aerc/templates/
# The template to be used for quoted replies.
#
# default: quoted_reply
quoted-reply=quoted_reply
# The template to be used for forward as body.
#
# default: forward_as_body
forwards=forward_as_body

103
config/aerc/binds.conf Normal file
View File

@ -0,0 +1,103 @@
# Binds are of the form <key sequence> = <command to run>
# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
<C-t> = :term<Enter>
[messages]
q = :quit<Enter>
j = :next<Enter>
<Down> = :next<Enter>
<C-d> = :next 50%<Enter>
<C-f> = :next 100%<Enter>
<PgDn> = :next -s 100%<Enter>
k = :prev<Enter>
<Up> = :prev<Enter>
<C-u> = :prev 50%<Enter>
<C-b> = :prev 100%<Enter>
<PgUp> = :prev -s 100%<Enter>
g = :select 0<Enter>
G = :select -1<Enter>
J = :next-folder<Enter>
K = :prev-folder<Enter>
v = :mark -t<Enter>
V = :mark -v<Enter>
<Enter> = :view<Enter>
d = :prompt 'Really delete this message?' 'delete-message'<Enter>
D = :delete<Enter>
A = :archive flat<Enter>
C = :compose<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
c = :cf<space>
$ = :term<space>
! = :term<space>
| = :pipe<space>
/ = :search<space>
\ = :filter<space>
n = :next-result<Enter>
N = :prev-result<Enter>
[view]
q = :close<Enter>
| = :pipe<space>
D = :delete<Enter>
S = :save<space>
A = :archive flat<Enter>
f = :forward<Enter>
rr = :reply -a<Enter>
rq = :reply -aq<Enter>
Rr = :reply<Enter>
Rq = :reply -q<Enter>
H = :toggle-headers<Enter>
<C-k> = :prev-part<Enter>
<C-j> = :next-part<Enter>
J = :next<Enter>
K = :prev<Enter>
[compose]
# Keybindings used when the embedded terminal is not selected in the compose
# view
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<tab> = :next-field<Enter>
[compose::editor]
# Keybindings used when the embedded terminal is selected in the compose view
$noinherit = true
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>
[compose::review]
# Keybindings used when reviewing a message to be sent
y = :send<Enter>
n = :abort<Enter>
p = :postpone<Enter>
q = :abort<Enter>
e = :edit<Enter>
a = :attach<space>
[terminal]
$noinherit = true
$ex = <C-x>
<C-p> = :prev-tab<Enter>
<C-n> = :next-tab<Enter>

View File

@ -0,0 +1,50 @@
# Font
font:
norrmal:
family: Fira Code
style: Regular
bold:
family: Fira Code
style: Bold
italic:
family: Fira Code
style: Italic
bold_italic:
family: Fira Code
style: Bold Italic
size: 11
# Opacity
background_opacity: 0.90
# Gruvbox
colors:
primary:
background: '#2c323b'
foreground: '#eaeaea'
# Normal colors
normal:
black: '#242a32'
red: '#d54e53'
green: '#98c379'
yellow: '#e5c07b'
blue: '#83a598'
magenta: '#c678dd'
cyan: '#70c0ba'
white: '#eaeaea'
bright:
black: '#666666'
red: '#ec3e45'
green: '#90c966'
yellow: '#edbf69'
blue: '#73ba9f'
magenta: '#c858e9'
cyan: '#2bcec2'
white: '#ffffff'
# Bright colors

0
config/calcurse/conf Normal file
View File

55
config/calcurse/keys Normal file
View File

@ -0,0 +1,55 @@
#
# Calcurse keys configuration file
#
# In this file the keybindings used by Calcurse are defined.
# It is generated automatically by Calcurse and is maintained
# via the key configuration menu of the interactive user
# interface. It should not be edited directly.
generic-cancel ESC
generic-select SPC
generic-credits @
generic-help ?
generic-quit q Q
generic-save s S ^S
generic-reload R
generic-copy c
generic-paste p ^V
generic-change-view TAB
generic-import i I
generic-export x X
generic-goto g G
generic-other-cmd o O
generic-config-menu C
generic-redraw ^R
generic-add-appt ^A
generic-add-todo ^T
generic-prev-day T ^H
generic-next-day t ^L
generic-prev-week W ^K
generic-next-week w
generic-prev-month M
generic-next-month m
generic-prev-year Y
generic-next-year y
generic-scroll-down ^N
generic-scroll-up ^P
generic-goto-today ^G
generic-command :
move-right l L RGT
move-left h H LFT
move-down j J DWN
move-up k K UP
start-of-week 0
end-of-week $
add-item a A
del-item d D
edit-item e E
view-item v V RET
pipe-item |
flag-item !
repeat r
edit-note n N
view-note >
raise-priority +
lower-priority -

31
config/fish/config.fish Normal file
View File

@ -0,0 +1,31 @@
# env variables
set -x MOZ_ENABLE_WAYLAND 1
set -x EDITOR "vim"
set RUST "$HOME/.cargo/bin"
set GOPATH "$HOME/source/go"
set PYTHON_PATH "$HOME/.local/bin"
# aliases
function ls
command exa --color always $argv
end
function ll
command exa --long --header --color always $argv
end
function lg
command exa --long --header --color always --git $argv
end
function cat
command bat $argv
end
function less
command bat $argv
end
# path
set PATH "$RUST:$GOPATH:$PYTHON_PATH:$PATH"

View File

@ -0,0 +1,31 @@
# This file contains fish universal variable definitions.
# VERSION: 3.0
SETUVAR __fish_initialized:3100
SETUVAR fish_color_autosuggestion:969896
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:b294bb
SETUVAR fish_color_comment:f0c674
SETUVAR fish_color_cwd:green
SETUVAR fish_color_cwd_root:red
SETUVAR fish_color_end:b294bb
SETUVAR fish_color_error:cc6666
SETUVAR fish_color_escape:00a6b2
SETUVAR fish_color_history_current:\x2d\x2dbold
SETUVAR fish_color_host:normal
SETUVAR fish_color_host_remote:yellow
SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue
SETUVAR fish_color_normal:normal
SETUVAR fish_color_operator:00a6b2
SETUVAR fish_color_param:81a2be
SETUVAR fish_color_quote:b5bd68
SETUVAR fish_color_redirection:8abeb7
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_key_bindings:fish_default_key_bindings
SETUVAR fish_pager_color_completion:normal
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan

View File

@ -0,0 +1 @@
{"access_token":"BQAYcwa40pDpoBXVqt8Jwyy7n3vs2vPIMb6KEfkXnFiMEQzEQ95srJx01BQI2BCq-vPX1l-FORLDTg6MuOTzIKJ6ODLa_Z24l-kfdPjnyhwgGbSuhmQhtMTNOuflufWHoL7bBaoJeIh5Fx0HYsle7O80T-kFklTbXAr15GeK2oSQZeeXoxOuQHM7HFYugnjdDFW4NS4oiN6Lj5RcuwH-CEc0vopJwgMyBN1UHglTFdK8nIax4cLNMNUL4ALD3pzCVWJh6fMy1vpcN1sg","token_type":"Bearer","expires_in":3600,"expires_at":1625714630,"refresh_token":"AQA2sdsPgYiGRt4vRmpq3nbv8jCORhz2_mY0ja3oJenfrD40tQR_4-_9AaRanmV7nKfUKwcAvWrtxz4HiQp2WcNTDG3_lm_3051XGst7_xxMNhGlbYQMNxmt0BucDzYEkyM","scope":"playlist-read-private playlist-read-collaborative user-follow-read playlist-modify-private user-read-private user-follow-modify user-modify-playback-state user-library-read user-library-modify playlist-modify-public user-read-playback-state user-read-currently-playing user-read-recently-played user-read-playback-position"}

View File

@ -0,0 +1,5 @@
---
client_id: 9f1bb9b7f9894eefbd857a89f1e64eaa
client_secret: b255d40cf3b94cf9ae8a54a67a223648
device_id: 000e793db70c59309fa6f0f36d0046d110f3be3c
port: 8888

View File

@ -0,0 +1,13 @@
[global]
# creds
username = "1271525979"
password = "192837465"
# use player
use_mpris = true
# my computa, duh
device_name = "cloud"
device_type = "computer"
# more stuff to come, maybe

208
config/sway/config Normal file
View File

@ -0,0 +1,208 @@
### Variables
# Logo key
set $mod Mod4
# Direction keys
set $left h
set $down j
set $up k
set $right l
# Alacritty
set $term alacritty
# Wofi
set $menu wofi --show run
### Output configuration
output HDMI-A-1 pos 0 0 res 1920x1080
output DVI-D-1 pos 1920 0 res 1920x1080
# Wallpaper
output HDMI-A-1 bg ~/.wallpaper.jpeg fill
output DVI-D-1 bg ~/.wallpaper.jpeg fill
### Colour options
set $bg #40291a
set $bg-inactive #323232
set $bg-urgent #000000
set $text #eeeeec
set $text-inactive #babdb6
set $bar #323232
set $statusline #e0e0e0
client.focused $bg $bg $text $bg $bg
client.unfocused $bg-inactive $bg-inactive $text-inactive $bar $bar
client.focused_inactive $bg-inactive $bg-inactive $text-inactive $bar $bar
client.urgent $bg-urgent $bg-urgent $text $bar $bar
### Idle configuration
exec swayidle -w \
timeout 300 'swaylock -f -i /home/wyatt/.wallpaper_lock.jpeg' \
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
before-sleep 'swaylock -f -c 000000'
# Workspaces
set $workspace_www 1
set $workspace_editor 2
set $workspace_terminals 3
set $workspace_documents 4
set $workspace_multimedia 5
# Gaps
gaps inner 4
gaps outer 16
floating_modifier $mod normal
### Key bindings
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+d exec $menu
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -b 'Yes, exit sway' 'swaymsg exit'
### Navigation
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
### Workspaces
# Switch to workspace
bindsym $mod+1 workspace $workspace_www
bindsym $mod+2 workspace $workspace_editor
bindsym $mod+3 workspace $workspace_terminals
bindsym $mod+4 workspace $workspace_documents
bindsym $mod+5 workspace $workspace_multimedia
bindsym $mod+6 workspace number 6
bindsym $mod+7 workspace number 7
bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10
# Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace $workspace_www
bindsym $mod+Shift+2 move container to workspace $workspace_editor
bindsym $mod+Shift+3 move container to workspace $workspace_terminals
bindsym $mod+Shift+4 move container to workspace $workspace_documents
bindsym $mod+Shift+5 move container to workspace $workspace_multimedia
bindsym $mod+Shift+6 move container to workspace number 6
bindsym $mod+Shift+7 move container to workspace number 7
bindsym $mod+Shift+8 move container to workspace number 8
bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
### Layout
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
### Resizing containers
mode "resize" {
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
### Audio and brightness keybinds
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous
### Lock the screen so my brother
### won't dick with my computer
bindsym ctrl+alt+l 'swaylock -f -i /home/wyatt/.wallpaper_lock.jpeg'
### Status Bar:
bar {
swaybar_command waybar
}
### Font settings:
font pango:FiraCode: 14px
### Window formatting
default_border none
default_border pixel 2
gaps inner 10px
# Applications
exec spotifyd
exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
set $opacity 1.00
for_window [class=".*"] opacity $opacity
for_window [app_id=".*"] opacity $opacity
# Disable locking when conditions are met
for_window [class="streaming_client"] inhibit_idle fullscreen
for_window [app_id="firefox"] inhibit_idle fullscreen
include /etc/sway/config.d/*

57
config/waybar/config Normal file
View File

@ -0,0 +1,57 @@
{
"layer": "top",
"modules-left": ["sway/workspaces"],
"modules-center": ["clock"],
"modules-right": ["custom/playerctl","pulseaudio", "network", "battery", "tray"],
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": true,
"format": "{name}: {icon}",
"format-icons": {
"1":"",
"2":"",
"3":"",
"4":"",
"5":"",
"6":"",
"urgent": "",
"focused": "",
"default": ""
}
},
"sway/window": {
"max-length": 50,
"tooltip": false
},
"clock": {
"format-alt": "{:%d-%m-%Y}",
"tooltip": false
},
"network": {
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": " {ipaddr}",
"format-disconnected": "⚠ Disconnected",
"interval": 5,
"tooltip": false
},
"pulseaudio": {
"format": "{icon} {volume}%",
"format-bluetooth": "{icon} {volume}%",
"format-muted": "",
"format-icons": {
"headphones": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", ""]
},
"tooltip": false
},
"custom/playerctl": {
"format": " {}",
"max-length": 40,
"interval": 5,
"exec": "playerctl metadata --format '{{ artist }} - {{ title }}'",
"tooltip": false
}
}

74
config/waybar/style.css Normal file
View File

@ -0,0 +1,74 @@
* {
border: none;
border-radius: 0;
font-family: "Fira Code";
font-size: 13px;
min-height: 0;
}
window#waybar {
background: #282828;
border-bottom: 1px solid #504945;
color: #ebdbb2;
opacity: 0.8080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080808080;
}
#workspaces button {
padding: 5px;
padding-left: 12px;
padding-right: 12px;
background: transparent;
color: #ebdbb2;
border-bottom: 1px solid transparent;
}
#workspaces button.focused {
background: #ebdbb2;
color: #1d2021;
border-bottom: 1px solid #ebdbb2;
}
#cpu,
#memory,
#pulseaudio,
#network,
#battery,
#clock,
#custom-playerctl {
padding: 0 10px;
margin: 0 5px;
}
#battery.charging {
color: #689d6a;
}
#battery.warning:not(.charging) {
color: #d79921;
}
@keyframes blink {
to {
background-color: #1d2021;
color: #ebdbb2;
}
}
#battery.critical:not(.charging) {
background: #cc241d;
color: #ebdbb2;
border-bottom: 1px solid #ebdbb2;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
}
#network.disconnected {
color: #cc241d;
}
#pulseaudio.muted {
color: #cc241d;
}

11
config/wofi/config Normal file
View File

@ -0,0 +1,11 @@
allow_images=true
allow_markup=true
insensitive=true
hide_scroll=true
key_down=Control_L-n
key_exit=Control_L-g
key_up=Control_L-p
lines=5
no_actions=true
term=alacritty
width=600

40
config/wofi/style.css Normal file
View File

@ -0,0 +1,40 @@
*{
font-family: fira code;
}
window {
background-color: #282828;
opacity: 0.95;
}
#input {
margin: 5px;
border-radius: 0px;
border: none;
border-bottom: 3px solid black;
background-color: #282828;
color: white;
}
#inner-box {
background-color: #282828;
}
#outer-box {
margin: 5px;
padding: 10px;
background-color: #282828;
}
#text {
padding: 5px;
color: white;
}
#entry:nth-child(even){
background-color: #3c3836;
}
#entry:selected {
background-color: #98971a;
}

47
weechat/alias.conf Normal file
View File

@ -0,0 +1,47 @@
#
# weechat -- alias.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[cmd]
AAWAY = "allserv /away"
ANICK = "allserv /nick"
BEEP = "print -beep"
BYE = "quit"
C = "buffer clear"
CHAT = "dcc chat"
CL = "buffer clear"
CLOSE = "buffer close"
EXIT = "quit"
IG = "ignore"
J = "join"
K = "kick"
KB = "kickban"
LEAVE = "part"
M = "msg"
MSGBUF = "command -buffer $1 * /input send $2-"
MUB = "unban *"
N = "names"
Q = "query"
REDRAW = "window refresh"
SAY = "msg *"
SIGNOFF = "quit"
T = "topic"
UB = "unban"
UMODE = "mode $nick"
V = "command core version"
W = "who"
WC = "window close"
WI = "whois"
WII = "whois $1 $1"
WM = "window merge"
WW = "whowas"
[completion]
MSGBUF = "%(buffers_plugins_names)"

39
weechat/buflist.conf Normal file
View File

@ -0,0 +1,39 @@
#
# weechat -- buflist.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
add_newline = on
auto_scroll = 50
display_conditions = "${buffer.hidden}==0"
enabled = on
mouse_jump_visited_buffer = off
mouse_move_buffer = on
mouse_wheel = on
nick_prefix = off
nick_prefix_empty = on
signals_refresh = ""
sort = "number,-active"
[format]
buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}"
buffer_current = "${color:,blue}${format_buffer}"
hotlist = " ${color:green}(${hotlist}${color:green})"
hotlist_highlight = "${color:magenta}"
hotlist_low = "${color:white}"
hotlist_message = "${color:brown}"
hotlist_none = "${color:default}"
hotlist_private = "${color:green}"
hotlist_separator = "${color:default},"
indent = " "
lag = " ${color:green}[${color:brown}${lag}${color:green}]"
name = "${name}"
nick_prefix = "${color_nick_prefix}${nick_prefix}"
number = "${color:green}${number}${if:${number_displayed}?.: }"

18
weechat/charset.conf Normal file
View File

@ -0,0 +1,18 @@
#
# weechat -- charset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[default]
decode = "iso-8859-1"
encode = ""
[decode]
[encode]

19
weechat/exec.conf Normal file
View File

@ -0,0 +1,19 @@
#
# weechat -- exec.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[command]
default_options = ""
purge_delay = 0
shell = "${env:SHELL}"
[color]
flag_finished = lightred
flag_running = lightgreen

14
weechat/fifo.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- fifo.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[file]
enabled = on
path = "%h/weechat_fifo"

96
weechat/fset.conf Normal file
View File

@ -0,0 +1,96 @@
#
# weechat -- fset.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
auto_refresh = "*"
auto_unmark = off
condition_catch_set = "${count} >= 1"
export_help_default = on
format_number = 1
marked_string = "*"
scroll_horizontal = 10
show_plugins_desc = off
sort = "~name"
unmarked_string = " "
use_color_value = off
use_keys = on
use_mute = off
[format]
export_help = "# ${description2}"
export_option = "/set ${name} ${quoted_value}"
export_option_null = "/unset ${name}"
option1 = ""
option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}"
[color]
default_value = default
default_value_selected = white
description = default
description_selected = white
file = default
file_changed = brown
file_changed_selected = yellow
file_selected = white
help_default_value = white
help_description = default
help_name = white
help_quotes = darkgray
help_values = default
index = cyan
index_selected = lightcyan
line_marked_bg1 = default
line_marked_bg2 = default
line_selected_bg1 = blue
line_selected_bg2 = red
marked = brown
marked_selected = yellow
max = default
max_selected = white
min = default
min_selected = white
name = default
name_changed = brown
name_changed_selected = yellow
name_selected = white
option = default
option_changed = brown
option_changed_selected = yellow
option_selected = white
parent_name = default
parent_name_selected = white
parent_value = cyan
parent_value_selected = lightcyan
quotes = darkgray
quotes_changed = default
quotes_changed_selected = white
quotes_selected = default
section = default
section_changed = brown
section_changed_selected = yellow
section_selected = white
string_values = default
string_values_selected = white
title_count_options = cyan
title_current_option = lightcyan
title_filter = yellow
title_marked_options = lightgreen
title_sort = white
type = green
type_selected = lightgreen
unmarked = default
unmarked_selected = white
value = cyan
value_changed = brown
value_changed_selected = yellow
value_selected = lightcyan
value_undef = magenta
value_undef_selected = lightmagenta

14
weechat/guile.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- guile.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

289
weechat/irc.conf Normal file
View File

@ -0,0 +1,289 @@
#
# weechat -- irc.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
buffer_open_before_autojoin = on
buffer_open_before_join = off
buffer_switch_autojoin = on
buffer_switch_join = on
color_nicks_in_names = off
color_nicks_in_nicklist = off
color_nicks_in_server_messages = on
color_pv_nick_like_channel = on
ctcp_time_format = "%a, %d %b %Y %T %z"
display_away = local
display_ctcp_blocked = on
display_ctcp_reply = on
display_ctcp_unknown = on
display_host_join = on
display_host_join_local = on
display_host_quit = on
display_join_message = "329,332,333,366"
display_old_topic = on
display_pv_away_once = on
display_pv_back = on
display_pv_warning_address = off
highlight_channel = "$nick"
highlight_pv = "$nick"
highlight_server = "$nick"
highlight_tags_restrict = "irc_privmsg,irc_notice"
item_channel_modes_hide_args = "k"
item_display_server = buffer_plugin
item_nick_modes = on
item_nick_prefix = on
join_auto_add_chantype = off
msgbuffer_fallback = current
new_channel_position = none
new_pv_position = none
nick_completion_smart = speakers
nick_mode = prefix
nick_mode_empty = off
nicks_hide_password = "nickserv"
notice_as_pv = auto
notice_welcome_redirect = on
notice_welcome_tags = ""
notify_tags_ison = "notify_message"
notify_tags_whois = "notify_message"
part_closes_buffer = off
pv_buffer = independent
pv_tags = "notify_private"
raw_messages = 256
server_buffer = merge_with_core
smart_filter = on
smart_filter_account = on
smart_filter_chghost = on
smart_filter_delay = 5
smart_filter_join = on
smart_filter_join_unmask = 30
smart_filter_mode = "+"
smart_filter_nick = on
smart_filter_quit = on
temporary_servers = off
topic_strip_colors = off
[color]
input_nick = lightcyan
item_channel_modes = default
item_lag_counting = default
item_lag_finished = yellow
item_nick_modes = default
message_account = cyan
message_chghost = brown
message_join = green
message_kick = red
message_quit = red
mirc_remap = "1,-1:darkgray"
nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue"
notice = green
reason_kick = default
reason_quit = default
topic_current = default
topic_new = white
topic_old = default
[network]
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 600
ban_mask_default = "*!$ident@$host"
colors_receive = on
colors_send = on
lag_check = 60
lag_max = 1800
lag_min_show = 500
lag_reconnect = 300
lag_refresh_interval = 1
notify_check_ison = 1
notify_check_whois = 5
sasl_fail_unavailable = on
send_unknown_commands = off
whois_double_nick = off
[msgbuffer]
[ctcp]
[ignore]
[server_default]
addresses = ""
anti_flood_prio_high = 2
anti_flood_prio_low = 2
autoconnect = off
autojoin = ""
autoreconnect = on
autoreconnect_delay = 10
autorejoin = off
autorejoin_delay = 30
away_check = 0
away_check_max_nicks = 25
capabilities = ""
charset_message = message
command = ""
command_delay = 0
connection_timeout = 60
ipv6 = on
local_hostname = ""
msg_kick = ""
msg_part = "WeeChat ${info:version}"
msg_quit = "WeeChat ${info:version}"
nicks = "wyatt,wyatt1,wyatt2,wyatt3,wyatt4"
nicks_alternate = on
notify = ""
password = ""
proxy = ""
realname = ""
sasl_fail = continue
sasl_key = ""
sasl_mechanism = plain
sasl_password = ""
sasl_timeout = 15
sasl_username = ""
split_msg_max_length = 512
ssl = off
ssl_cert = ""
ssl_dhkey_size = 2048
ssl_fingerprint = ""
ssl_password = ""
ssl_priorities = "NORMAL:-VERS-SSL3.0"
ssl_verify = on
usermode = ""
username = "wyatt"
[server]
freenode.addresses = "chat.freenode.net"
freenode.proxy
freenode.ipv6
freenode.ssl
freenode.ssl_cert
freenode.ssl_password
freenode.ssl_priorities
freenode.ssl_dhkey_size
freenode.ssl_fingerprint
freenode.ssl_verify
freenode.password
freenode.capabilities
freenode.sasl_mechanism = plain
freenode.sasl_username = "wymillerlinux"
freenode.sasl_password = "192837465"
freenode.sasl_key
freenode.sasl_timeout
freenode.sasl_fail
freenode.autoconnect = on
freenode.autoreconnect
freenode.autoreconnect_delay
freenode.nicks = "wymillerlinux"
freenode.nicks_alternate
freenode.username
freenode.realname
freenode.local_hostname
freenode.usermode
freenode.command
freenode.command_delay
freenode.autojoin = "off"
freenode.autorejoin
freenode.autorejoin_delay
freenode.connection_timeout
freenode.anti_flood_prio_high
freenode.anti_flood_prio_low
freenode.away_check
freenode.away_check_max_nicks
freenode.msg_kick
freenode.msg_part
freenode.msg_quit
freenode.notify
freenode.split_msg_max_length
freenode.charset_message
geekshed.addresses = "irc.geekshed.net"
geekshed.proxy
geekshed.ipv6
geekshed.ssl
geekshed.ssl_cert
geekshed.ssl_password
geekshed.ssl_priorities
geekshed.ssl_dhkey_size
geekshed.ssl_fingerprint
geekshed.ssl_verify
geekshed.password
geekshed.capabilities
geekshed.sasl_mechanism
geekshed.sasl_username
geekshed.sasl_password
geekshed.sasl_key
geekshed.sasl_timeout
geekshed.sasl_fail
geekshed.autoconnect = on
geekshed.autoreconnect
geekshed.autoreconnect_delay
geekshed.nicks = "wymiller"
geekshed.nicks_alternate
geekshed.username
geekshed.realname
geekshed.local_hostname
geekshed.usermode
geekshed.command
geekshed.command_delay
geekshed.autojoin = "off"
geekshed.autorejoin
geekshed.autorejoin_delay
geekshed.connection_timeout
geekshed.anti_flood_prio_high
geekshed.anti_flood_prio_low
geekshed.away_check
geekshed.away_check_max_nicks
geekshed.msg_kick
geekshed.msg_part
geekshed.msg_quit
geekshed.notify
geekshed.split_msg_max_length
geekshed.charset_message
librea.addresses = "irc.us.librea.chat/6697"
librea.proxy
librea.ipv6
librea.ssl = on
librea.ssl_cert
librea.ssl_password
librea.ssl_priorities
librea.ssl_dhkey_size
librea.ssl_fingerprint
librea.ssl_verify
librea.password
librea.capabilities
librea.sasl_mechanism
librea.sasl_username
librea.sasl_password
librea.sasl_key
librea.sasl_timeout
librea.sasl_fail
librea.autoconnect
librea.autoreconnect
librea.autoreconnect_delay
librea.nicks
librea.nicks_alternate
librea.username
librea.realname
librea.local_hostname
librea.usermode
librea.command
librea.command_delay
librea.autojoin = "on"
librea.autorejoin
librea.autorejoin_delay
librea.connection_timeout
librea.anti_flood_prio_high
librea.anti_flood_prio_low
librea.away_check
librea.away_check_max_nicks
librea.msg_kick
librea.msg_part
librea.msg_quit
librea.notify
librea.split_msg_max_length
librea.charset_message

36
weechat/logger.conf Normal file
View File

@ -0,0 +1,36 @@
#
# weechat -- logger.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
backlog = 20
backlog_conditions = ""
[color]
backlog_end = default
backlog_line = default
[file]
auto_log = on
color_lines = off
flush_delay = 120
fsync = off
info_lines = off
mask = "$plugin.$name.weechatlog"
name_lower_case = on
nick_prefix = ""
nick_suffix = ""
path = "%h/logs/"
replacement_char = "_"
time_format = "%Y-%m-%d %H:%M:%S"
[level]
[mask]

View File

@ -0,0 +1,424 @@
2021-05-12 22:04:34 New key binding (context "default"): meta2-1;5P => /bar scroll buflist * -100%
2021-05-12 22:04:34 New key binding (context "default"): meta2-1;5Q => /bar scroll buflist * +100%
2021-05-12 22:04:34 New key binding (context "default"): meta-meta-OQ => /bar scroll buflist * e
2021-05-12 22:04:34 New key binding (context "default"): meta2-1;3Q => /bar scroll buflist * e
2021-05-12 22:04:34 New key binding (context "default"): meta2-1;3P => /bar scroll buflist * b
2021-05-12 22:04:34 New key binding (context "default"): meta-meta-OP => /bar scroll buflist * b
2021-05-12 22:04:34 New key binding (context "default"): meta-B => /buflist toggle
2021-05-12 22:04:34 New key binding (context "default"): meta-OQ => /bar scroll buflist * +100%
2021-05-12 22:04:34 New key binding (context "default"): meta-OP => /bar scroll buflist * -100%
2021-05-12 22:04:34 New key binding (context "default"): meta-meta2-12~ => /bar scroll buflist * e
2021-05-12 22:04:34 New key binding (context "default"): meta-meta2-11~ => /bar scroll buflist * b
2021-05-12 22:04:34 New key binding (context "default"): meta2-12^ => /bar scroll buflist * +100%
2021-05-12 22:04:34 New key binding (context "default"): meta2-12~ => /bar scroll buflist * +100%
2021-05-12 22:04:34 New key binding (context "default"): meta2-11^ => /bar scroll buflist * -100%
2021-05-12 22:04:34 New key binding (context "default"): meta2-11~ => /bar scroll buflist * -100%
2021-05-12 22:04:34 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-12 22:04:47 =!= Error: option "irc.server.freenode.autoconnect" not found
2021-05-12 22:05:12 irc: server added: freenode
2021-05-12 22:05:19 All servers:
2021-05-12 22:05:19 freenode
2021-05-12 22:06:04 irc: server added: geekshed
2021-05-12 22:06:05 All servers:
2021-05-12 22:06:05 freenode
2021-05-12 22:06:05 geekshed
2021-05-12 22:06:23 Option changed: irc.server.freenode.autoconnect = on (default if null: off)
2021-05-12 22:06:32 Option changed: irc.server.geekshed.autoconnect = on (default if null: off)
2021-05-12 22:06:51 Passphrase added
2021-05-12 22:07:39 Secured data "freenode_password" set
2021-05-12 22:07:39 Options saved to sec.conf
2021-05-12 22:08:09 =!= Error: option "irc.server.netowrkname.sasl_username" not found
2021-05-12 22:08:16 =!= Error: option "irc.server.networkname.sasl_username" not found
2021-05-12 22:09:17 Option changed: irc.server.freenode.sasl_username = "wymillerlinux" (default if null: "")
2021-05-12 22:09:36 Option changed: irc.server.freenode.sasl_password = "freenode_password" (default if null: "")
2021-05-12 22:09:59 Option changed: irc.server.freenode.nicks = "wymillerlinux" (default if null: "wyatt,wyatt1,wyatt2,wyatt3,wyatt4")
2021-05-12 22:10:27 Option changed: irc.server.geekshed.nicks = "wymiller" (default if null: "wyatt,wyatt1,wyatt2,wyatt3,wyatt4")
2021-05-12 22:15:43 Option changed: irc.server.freenode.autojoin = "##linux,##rust,#python,#golang,#fedora,#git,#ansible,#freebsd,#raspberrypi,#bitcoin" (default if null: "")
2021-05-12 22:15:53 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-12 22:19:21 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-12 22:20:12 =!= Error: option "irc.server.freenode.sasl_machanism" not found
2021-05-12 22:20:17 Option changed: irc.server.freenode.sasl_mechanism = plain (default if null: plain)
2021-05-12 22:20:29 Option changed: irc.server.freenode.sasl_username = "wymillerlinux" (default if null: "")
2021-05-12 22:20:41 Option changed: irc.server.freenode.sasl_password = "192837465" (default if null: "")
2021-05-12 22:20:43 Options saved to sec.conf
2021-05-12 22:20:43 Options saved to weechat.conf
2021-05-12 22:20:43 Options saved to plugins.conf
2021-05-12 22:20:43 Options saved to charset.conf
2021-05-12 22:20:43 Options saved to logger.conf
2021-05-12 22:20:43 Options saved to exec.conf
2021-05-12 22:20:43 Options saved to trigger.conf
2021-05-12 22:20:43 Options saved to spell.conf
2021-05-12 22:20:43 Options saved to alias.conf
2021-05-12 22:20:43 Options saved to buflist.conf
2021-05-12 22:20:43 Options saved to fifo.conf
2021-05-12 22:20:43 Options saved to xfer.conf
2021-05-12 22:20:43 Options saved to irc.conf
2021-05-12 22:20:43 Options saved to relay.conf
2021-05-12 22:20:43 Options saved to guile.conf
2021-05-12 22:20:43 Options saved to lua.conf
2021-05-12 22:20:43 Options saved to perl.conf
2021-05-12 22:20:43 Options saved to python.conf
2021-05-12 22:20:43 Options saved to ruby.conf
2021-05-12 22:20:43 Options saved to tcl.conf
2021-05-12 22:20:43 Options saved to script.conf
2021-05-12 22:20:43 Options saved to fset.conf
2021-05-12 22:20:55 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-13 20:18:35 =!= irc: unable to add temporary server "#jupiterbroadcasting" because the addition of temporary servers with command /connect is currently disabled
2021-05-13 20:18:35 =!= irc: if you want to add a standard server, use the command "/server add" (see /help server); if you really want to add a temporary server (NOT SAVED), turn on the option irc.look.temporary_servers
2021-05-13 20:18:48 =!= irc: unable to add temporary server "jupiterbroadcasting" because the addition of temporary servers with command /connect is currently disabled
2021-05-13 20:18:48 =!= irc: if you want to add a standard server, use the command "/server add" (see /help server); if you really want to add a temporary server (NOT SAVED), turn on the option irc.look.temporary_servers
2021-05-13 20:26:55 Options reloaded from sec.conf
2021-05-13 20:26:55 Options reloaded from weechat.conf
2021-05-13 20:26:55 Options reloaded from plugins.conf
2021-05-13 20:26:55 Options reloaded from charset.conf
2021-05-13 20:26:55 Options reloaded from logger.conf
2021-05-13 20:26:55 Options reloaded from exec.conf
2021-05-13 20:26:55 Options reloaded from trigger.conf
2021-05-13 20:26:55 Options reloaded from spell.conf
2021-05-13 20:26:55 Options reloaded from alias.conf
2021-05-13 20:26:55 Options reloaded from buflist.conf
2021-05-13 20:26:55 Options reloaded from fifo.conf
2021-05-13 20:26:55 Options reloaded from xfer.conf
2021-05-13 20:26:55 Options reloaded from irc.conf
2021-05-13 20:26:55 Options reloaded from relay.conf
2021-05-13 20:26:55 Options reloaded from guile.conf
2021-05-13 20:26:55 Options reloaded from lua.conf
2021-05-13 20:26:55 Options reloaded from perl.conf
2021-05-13 20:26:55 Options reloaded from python.conf
2021-05-13 20:26:55 Options reloaded from ruby.conf
2021-05-13 20:26:55 Options reloaded from tcl.conf
2021-05-13 20:26:55 Options reloaded from script.conf
2021-05-13 20:26:55 Options reloaded from fset.conf
2021-05-15 11:03:31 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-16 14:12:42 Options reloaded from sec.conf
2021-05-16 14:12:42 Options reloaded from weechat.conf
2021-05-16 14:12:42 Options reloaded from plugins.conf
2021-05-16 14:12:42 Options reloaded from charset.conf
2021-05-16 14:12:42 Options reloaded from logger.conf
2021-05-16 14:12:42 Options reloaded from exec.conf
2021-05-16 14:12:42 Options reloaded from trigger.conf
2021-05-16 14:12:42 Options reloaded from spell.conf
2021-05-16 14:12:42 Options reloaded from alias.conf
2021-05-16 14:12:42 Options reloaded from buflist.conf
2021-05-16 14:12:42 Options reloaded from fifo.conf
2021-05-16 14:12:42 Options reloaded from xfer.conf
2021-05-16 14:12:42 Options reloaded from irc.conf
2021-05-16 14:12:42 Options reloaded from relay.conf
2021-05-16 14:12:42 Options reloaded from guile.conf
2021-05-16 14:12:42 Options reloaded from lua.conf
2021-05-16 14:12:42 Options reloaded from perl.conf
2021-05-16 14:12:42 Options reloaded from python.conf
2021-05-16 14:12:42 Options reloaded from ruby.conf
2021-05-16 14:12:42 Options reloaded from tcl.conf
2021-05-16 14:12:42 Options reloaded from script.conf
2021-05-16 14:12:42 Options reloaded from fset.conf
2021-05-16 14:15:23 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, xfer
2021-05-16 15:39:11 Plugins loaded:
2021-05-16 15:39:11 alias: Alias commands
2021-05-16 15:39:11 buflist: Buffers list
2021-05-16 15:39:11 charset: Charset conversions
2021-05-16 15:39:11 exec: Execution of external commands in WeeChat
2021-05-16 15:39:11 fifo: FIFO pipe for remote control
2021-05-16 15:39:11 fset: Fast set of WeeChat and plugins options
2021-05-16 15:39:11 guile: Support of scheme scripts (with Guile)
2021-05-16 15:39:11 irc: IRC (Internet Relay Chat) protocol
2021-05-16 15:39:11 logger: Log buffers to files
2021-05-16 15:39:11 lua: Support of lua scripts
2021-05-16 15:39:11 perl: Support of perl scripts
2021-05-16 15:39:11 python: Support of python scripts
2021-05-16 15:39:11 relay: Relay WeeChat data to remote application (irc/weechat protocols)
2021-05-16 15:39:11 ruby: Support of ruby scripts
2021-05-16 15:39:11 script: Script manager
2021-05-16 15:39:11 spell: Spell checker for input
2021-05-16 15:39:11 tcl: Support of tcl scripts
2021-05-16 15:39:11 trigger: Text replacement and command execution on events triggered by WeeChat/plugins
2021-05-16 15:39:11 xfer: DCC file transfer and direct chat
2021-05-16 15:39:31 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-05-16 15:39:51 Plugins loaded:
2021-05-16 15:39:51 weecord: Discord integration for weechat
2021-05-16 15:39:51 alias: Alias commands
2021-05-16 15:39:51 buflist: Buffers list
2021-05-16 15:39:51 charset: Charset conversions
2021-05-16 15:39:51 exec: Execution of external commands in WeeChat
2021-05-16 15:39:51 fifo: FIFO pipe for remote control
2021-05-16 15:39:51 fset: Fast set of WeeChat and plugins options
2021-05-16 15:39:51 guile: Support of scheme scripts (with Guile)
2021-05-16 15:39:51 irc: IRC (Internet Relay Chat) protocol
2021-05-16 15:39:51 logger: Log buffers to files
2021-05-16 15:39:51 lua: Support of lua scripts
2021-05-16 15:39:51 perl: Support of perl scripts
2021-05-16 15:39:51 python: Support of python scripts
2021-05-16 15:39:51 relay: Relay WeeChat data to remote application (irc/weechat protocols)
2021-05-16 15:39:51 ruby: Support of ruby scripts
2021-05-16 15:39:51 script: Script manager
2021-05-16 15:39:51 spell: Spell checker for input
2021-05-16 15:39:51 tcl: Support of tcl scripts
2021-05-16 15:39:51 trigger: Text replacement and command execution on events triggered by WeeChat/plugins
2021-05-16 15:39:51 xfer: DCC file transfer and direct chat
2021-05-16 15:40:33 discord: Set Discord token
2021-05-16 15:40:52 discord: Discord connected
2021-05-16 15:41:25 [core] /key list|listdefault|listdiff [<context>]
2021-05-16 15:41:25 bind <key> [<command> [<args>]]
2021-05-16 15:41:25 bindctxt <context> <key> [<command> [<args>]]
2021-05-16 15:41:25 unbind <key>
2021-05-16 15:41:25 unbindctxt <context> <key>
2021-05-16 15:41:25 reset <key>
2021-05-16 15:41:25 resetctxt <context> <key>
2021-05-16 15:41:25 resetall -yes [<context>]
2021-05-16 15:41:25 missing [<context>]
2021-05-16 15:41:25 bind/unbind keys
2021-05-16 15:41:25 list: list all current keys (without argument, this list is displayed)
2021-05-16 15:41:25 listdefault: list default keys
2021-05-16 15:41:25 listdiff: list differences between current and default keys (keys added, redefined or deleted)
2021-05-16 15:41:25 context: name of context ("default" or "search")
2021-05-16 15:41:25 bind: bind a command to a key or display command bound to key (for context "default")
2021-05-16 15:41:25 bindctxt: bind a command to a key or display command bound to key, for given context
2021-05-16 15:41:25 command: command (many commands can be separated by semicolons)
2021-05-16 15:41:25 unbind: remove a key binding (for context "default")
2021-05-16 15:41:25 unbindctxt: remove a key binding for given context
2021-05-16 15:41:25 reset: reset a key to default binding (for context "default")
2021-05-16 15:41:25 resetctxt: reset a key to default binding, for given context
2021-05-16 15:41:25 resetall: restore bindings to the default values and delete ALL personal bindings (use carefully!)
2021-05-16 15:41:25 missing: add missing keys (using default bindings), useful after installing new WeeChat version
2021-05-16 15:41:25 When binding a command to a key, it is recommended to use key alt+k (or Esc then k), and then press the key to bind: this will insert key code in command line.
2021-05-16 15:41:25 For context "mouse" (possible in context "cursor" too), key has format: "@area:key" or "@area1>area2:key" where area can be:
2021-05-16 15:41:25 *: any area on screen
2021-05-16 15:41:25 chat: chat area (any buffer)
2021-05-16 15:41:25 chat(xxx): chat area for buffer with name "xxx" (full name including plugin)
2021-05-16 15:41:25 bar(*): any bar
2021-05-16 15:41:25 bar(xxx): bar "xxx"
2021-05-16 15:41:25 item(*): any bar item
2021-05-16 15:41:25 item(xxx): bar item "xxx"
2021-05-16 15:41:25 Wildcard "*" is allowed in key to match many mouse events.
2021-05-16 15:41:25 A special value for command with format "hsignal:name" can be used for context mouse, this will send the hsignal "name" with the focus hashtable as argument.
2021-05-16 15:41:25 Another special value "-" can be used to disable key (it will be ignored when looking for keys).
2021-05-16 15:41:25 Examples:
2021-05-16 15:41:25 key alt-t to toggle nicklist bar:
2021-05-16 15:41:25 /key bind meta-t /bar toggle nicklist
2021-05-16 15:41:25 key alt-r to jump to #weechat IRC channel:
2021-05-16 15:41:25 /key bind meta-r /buffer #weechat
2021-05-16 15:41:25 restore default binding for key alt-r:
2021-05-16 15:41:25 /key reset meta-r
2021-05-16 15:41:25 key "tab" to stop search in buffer:
2021-05-16 15:41:25 /key bindctxt search ctrl-I /input search_stop
2021-05-16 15:41:25 middle button of mouse on a nick to retrieve info on nick:
2021-05-16 15:41:25 /key bindctxt mouse @item(buffer_nicklist):button3 /msg nickserv info ${nick}
2021-05-16 15:42:31 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-05-16 15:43:13 python: loading script "/home/wyatt/.weechat/python/matrix.py"
2021-05-16 15:43:14 python: registered script "matrix", version 0.2.0 (matrix chat plugin)
2021-05-16 15:43:14 New key binding (context "cursor"): @chat(python.matrix.*):r => hsignal:matrix_cursor_reply
2021-05-23 21:34:51 Options reloaded from sec.conf
2021-05-23 21:34:51 Options reloaded from weechat.conf
2021-05-23 21:34:51 Options reloaded from plugins.conf
2021-05-23 21:34:51 Options reloaded from charset.conf
2021-05-23 21:34:51 Options reloaded from logger.conf
2021-05-23 21:34:51 Options reloaded from exec.conf
2021-05-23 21:34:51 Options reloaded from trigger.conf
2021-05-23 21:34:51 Options reloaded from spell.conf
2021-05-23 21:34:51 Options reloaded from alias.conf
2021-05-23 21:34:51 Options reloaded from buflist.conf
2021-05-23 21:34:51 Options reloaded from fifo.conf
2021-05-23 21:34:51 Options reloaded from xfer.conf
2021-05-23 21:34:51 Options reloaded from irc.conf
2021-05-23 21:34:51 Options reloaded from relay.conf
2021-05-23 21:34:51 Options reloaded from guile.conf
2021-05-23 21:34:51 Options reloaded from lua.conf
2021-05-23 21:34:51 Options reloaded from perl.conf
2021-05-23 21:34:51 Options reloaded from python.conf
2021-05-23 21:34:51 Options reloaded from ruby.conf
2021-05-23 21:34:51 Options reloaded from tcl.conf
2021-05-23 21:34:51 Options reloaded from script.conf
2021-05-23 21:34:51 Options reloaded from fset.conf
2021-05-23 21:34:51 Options reloaded from weecord.conf
2021-05-23 21:34:51 Options reloaded from matrix.conf
2021-05-23 21:34:51 python: scripts unloaded
2021-05-24 18:38:09 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-05-24 18:38:20 python: loading script "/home/wyatt/.weechat/python/matrix.py"
2021-05-24 18:38:20 python: registered script "matrix", version 0.2.0 (matrix chat plugin)
2021-05-24 18:38:20 New key binding (context "cursor"): @chat(python.matrix.*):r => hsignal:matrix_cursor_reply
2021-05-24 18:39:01 =!= Error: option "matrix.server.matrix_wyattjmiller_com.username" not found
2021-05-24 18:39:39 matrix: server wyattjmiller has been added
2021-05-24 18:39:58 Option changed: matrix.server.wyattjmiller.username = "wymiller" (default: "")
2021-05-24 18:40:23 Option changed: matrix.server.wyattjmiller.password = "24pU*gmFpJcqGMF4DHGy" (default: "")
2021-05-24 18:41:16 Options saved to sec.conf
2021-05-24 18:41:16 Options saved to weechat.conf
2021-05-24 18:41:16 Options saved to plugins.conf
2021-05-24 18:41:16 Options saved to charset.conf
2021-05-24 18:41:16 Options saved to logger.conf
2021-05-24 18:41:16 Options saved to exec.conf
2021-05-24 18:41:16 Options saved to trigger.conf
2021-05-24 18:41:16 Options saved to spell.conf
2021-05-24 18:41:16 Options saved to alias.conf
2021-05-24 18:41:16 Options saved to buflist.conf
2021-05-24 18:41:16 Options saved to fifo.conf
2021-05-24 18:41:16 Options saved to xfer.conf
2021-05-24 18:41:16 Options saved to irc.conf
2021-05-24 18:41:16 Options saved to relay.conf
2021-05-24 18:41:16 Options saved to guile.conf
2021-05-24 18:41:16 Options saved to lua.conf
2021-05-24 18:41:16 Options saved to perl.conf
2021-05-24 18:41:16 Options saved to python.conf
2021-05-24 18:41:16 Options saved to ruby.conf
2021-05-24 18:41:16 Options saved to tcl.conf
2021-05-24 18:41:16 Options saved to script.conf
2021-05-24 18:41:16 Options saved to fset.conf
2021-05-24 18:41:16 Options saved to weecord.conf
2021-05-24 18:41:16 Options saved to matrix.conf
2021-05-24 18:41:35 python: loading script "/home/wyatt/.weechat/python/matrix.py"
2021-05-24 18:41:35 =!= python: unable to register script "matrix" (another script already exists with this name)
2021-05-24 18:41:35 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/matrix.py"
2021-05-24 18:41:58 python: scripts unloaded
2021-05-24 18:42:01 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-05-24 18:42:20 python: loading script "/home/wyatt/.weechat/python/matrix.py"
2021-05-24 18:42:20 python: registered script "matrix", version 0.2.0 (matrix chat plugin)
2021-05-24 18:43:00 Unhandled event of type RoomCreateEvent.
2021-05-24 18:43:00 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 18:43:00 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 18:43:00 Unhandled event of type RoomCreateEvent.
2021-05-24 18:43:00 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 18:43:00 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 18:43:00 Unhandled event of type RoomGuestAccessEvent.
2021-05-24 18:43:00 Unhandled event of type RoomAvatarEvent.
2021-05-24 18:43:00 Unhandled event of type RoomAvatarEvent.
2021-05-24 18:43:00 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 21:46:41 Unhandled event of type RoomCreateEvent.
2021-05-24 21:46:41 Unhandled event of type RoomCreateEvent.
2021-05-24 21:46:42 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 21:46:42 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 21:46:42 Unhandled event of type RoomGuestAccessEvent.
2021-05-24 21:49:34 =!= matrix: command "olm" must be executed on a matrix buffer (server or channel)
2021-05-24 21:49:51 =!= Error: the following arguments are required: user_id, device_id for command olm verification (see /help olm verification)
2021-05-24 21:50:19 =!= matrix: command "olm" must be executed on a matrix buffer (server or channel)
2021-05-24 22:01:51 Unhandled event of type RoomAvatarEvent.
2021-05-24 22:04:28 Unhandled event of type RoomCreateEvent.
2021-05-24 22:04:28 Unhandled event of type RoomCreateEvent.
2021-05-24 22:04:29 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 22:04:29 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 22:04:29 Unhandled event of type RoomGuestAccessEvent.
2021-05-24 22:04:51 Unhandled event of type RoomAvatarEvent.
2021-05-24 22:07:07 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 22:09:18 Unhandled event of type RoomCreateEvent.
2021-05-24 22:09:18 Unhandled event of type RoomCreateEvent.
2021-05-24 22:09:19 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 22:09:19 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 22:09:20 Unhandled event of type RoomGuestAccessEvent.
2021-05-24 22:10:50 Unhandled event of type RoomAvatarEvent.
2021-05-24 22:13:08 Unhandled event of type RoomCreateEvent.
2021-05-24 22:13:08 Unhandled event of type RoomCreateEvent.
2021-05-24 22:13:09 Unhandled event of type RoomJoinRulesEvent.
2021-05-24 22:13:09 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-24 22:13:09 Unhandled event of type RoomGuestAccessEvent.
2021-05-24 22:13:10 Unhandled event of type RoomAvatarEvent.
2021-05-25 20:00:18 Option changed: matrix.server.wyattjmiller.autoconnect = on (default: off)
2021-05-25 20:00:23 Options saved to sec.conf
2021-05-25 20:00:23 Options saved to weechat.conf
2021-05-25 20:00:23 Options saved to plugins.conf
2021-05-25 20:00:23 Options saved to charset.conf
2021-05-25 20:00:23 Options saved to logger.conf
2021-05-25 20:00:23 Options saved to exec.conf
2021-05-25 20:00:23 Options saved to trigger.conf
2021-05-25 20:00:23 Options saved to spell.conf
2021-05-25 20:00:23 Options saved to alias.conf
2021-05-25 20:00:23 Options saved to buflist.conf
2021-05-25 20:00:23 Options saved to fifo.conf
2021-05-25 20:00:23 Options saved to xfer.conf
2021-05-25 20:00:23 Options saved to irc.conf
2021-05-25 20:00:23 Options saved to relay.conf
2021-05-25 20:00:23 Options saved to guile.conf
2021-05-25 20:00:23 Options saved to lua.conf
2021-05-25 20:00:23 Options saved to perl.conf
2021-05-25 20:00:23 Options saved to python.conf
2021-05-25 20:00:23 Options saved to ruby.conf
2021-05-25 20:00:23 Options saved to tcl.conf
2021-05-25 20:00:23 Options saved to script.conf
2021-05-25 20:00:23 Options saved to fset.conf
2021-05-25 20:00:23 Options saved to weecord.conf
2021-05-25 20:00:23 Options saved to matrix.conf
2021-05-25 20:00:30 python: scripts unloaded
2021-05-25 20:00:35 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-05-25 20:00:35 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-05-25 20:02:02 =!= Error: unknown command "/matrix" (type /help for help)
2021-05-25 20:02:13 python: loading script "/home/wyatt/.weechat/python/matrix.py"
2021-05-25 20:02:13 python: registered script "matrix", version 0.2.0 (matrix chat plugin)
2021-05-29 12:31:48 Unhandled event of type RoomCreateEvent.
2021-05-29 12:31:48 Unhandled event of type RoomCreateEvent.
2021-05-29 12:31:49 Unhandled event of type RoomJoinRulesEvent.
2021-05-29 12:31:49 Unhandled event of type RoomHistoryVisibilityEvent.
2021-05-29 12:31:49 Unhandled event of type RoomGuestAccessEvent.
2021-05-29 12:31:49 Unhandled event of type RoomAvatarEvent.
2021-05-31 18:41:05 Unhandled event of type RoomAvatarEvent.
2021-06-06 22:01:15 Options reloaded from sec.conf
2021-06-06 22:01:15 Options reloaded from weechat.conf
2021-06-06 22:01:15 Options reloaded from plugins.conf
2021-06-06 22:01:15 Options reloaded from charset.conf
2021-06-06 22:01:15 Options reloaded from logger.conf
2021-06-06 22:01:15 Options reloaded from exec.conf
2021-06-06 22:01:15 Options reloaded from trigger.conf
2021-06-06 22:01:15 Options reloaded from spell.conf
2021-06-06 22:01:15 Options reloaded from alias.conf
2021-06-06 22:01:15 Options reloaded from buflist.conf
2021-06-06 22:01:15 Options reloaded from fifo.conf
2021-06-06 22:01:15 Options reloaded from xfer.conf
2021-06-06 22:01:15 Options reloaded from irc.conf
2021-06-06 22:01:15 Options reloaded from relay.conf
2021-06-06 22:01:15 Options reloaded from guile.conf
2021-06-06 22:01:15 Options reloaded from lua.conf
2021-06-06 22:01:15 Options reloaded from perl.conf
2021-06-06 22:01:15 Options reloaded from python.conf
2021-06-06 22:01:15 Options reloaded from ruby.conf
2021-06-06 22:01:15 Options reloaded from tcl.conf
2021-06-06 22:01:15 Options reloaded from script.conf
2021-06-06 22:01:15 Options reloaded from fset.conf
2021-06-06 22:01:15 Options reloaded from weecord.conf
2021-06-06 22:01:15 Options reloaded from matrix.conf
2021-06-06 22:01:15 python: scripts unloaded
2021-06-07 18:09:05 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-07 18:09:05 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-13 13:21:19 Options reloaded from sec.conf
2021-06-13 13:21:19 Options reloaded from weechat.conf
2021-06-13 13:21:19 Options reloaded from plugins.conf
2021-06-13 13:21:19 Options reloaded from charset.conf
2021-06-13 13:21:19 Options reloaded from logger.conf
2021-06-13 13:21:19 Options reloaded from exec.conf
2021-06-13 13:21:19 Options reloaded from trigger.conf
2021-06-13 13:21:19 Options reloaded from spell.conf
2021-06-13 13:21:19 Options reloaded from alias.conf
2021-06-13 13:21:19 Options reloaded from buflist.conf
2021-06-13 13:21:19 Options reloaded from fifo.conf
2021-06-13 13:21:19 Options reloaded from xfer.conf
2021-06-13 13:21:19 Options reloaded from irc.conf
2021-06-13 13:21:19 Options reloaded from relay.conf
2021-06-13 13:21:19 Options reloaded from guile.conf
2021-06-13 13:21:19 Options reloaded from lua.conf
2021-06-13 13:21:19 Options reloaded from perl.conf
2021-06-13 13:21:19 Options reloaded from python.conf
2021-06-13 13:21:19 Options reloaded from ruby.conf
2021-06-13 13:21:19 Options reloaded from tcl.conf
2021-06-13 13:21:19 Options reloaded from script.conf
2021-06-13 13:21:19 Options reloaded from fset.conf
2021-06-13 13:21:19 Options reloaded from weecord.conf
2021-06-13 15:43:47 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-13 15:43:47 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:12:39 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-19 11:12:39 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:13:23 =!= irc: command "remove" must be executed on irc buffer (server, channel or private)
2021-06-19 11:15:16 Option changed: irc.server.freenode.autojoin = "off" (default if null: "")
2021-06-19 11:15:40 Option changed: irc.server.geekshed.autojoin = "off" (default if null: "")
2021-06-19 11:16:54 irc: server added: librea
2021-06-19 11:17:35 Option changed: irc.server.librea.autojoin = "on" (default if null: "")
2021-06-19 11:17:43 =!= Error: unknown command "/quit'" (type /help for help)
2021-06-19 11:17:45 =!= Error: unknown command "/quitr" (type /help for help)
2021-06-19 11:17:53 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-19 11:17:53 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:18:01 =!= Too few arguments for command "/query" (help on command: /help query)
2021-06-19 11:18:06 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-19 11:18:06 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:18:38 =!= irc: unable to add temporary server "irc.us.librea.chat" because the addition of temporary servers with command /connect is currently disabled
2021-06-19 11:18:38 =!= irc: if you want to add a standard server, use the command "/server add" (see /help server); if you really want to add a temporary server (NOT SAVED), turn on the option irc.look.temporary_servers
2021-06-19 11:18:56 =!= Error: unknown command "/fest" (type /help for help)
2021-06-19 11:18:58 =!= Error: unknown command "/gset" (type /help for help)
2021-06-19 11:23:44 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-19 11:23:44 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:24:00 =!= python: function "register" not found (or failed) in file "/home/wyatt/.weechat/python/autoload/_weechat.py"
2021-06-19 11:24:00 Plugins loaded: alias, buflist, charset, exec, fifo, fset, guile, irc, logger, lua, perl, python, relay, ruby, script, spell, tcl, trigger, weecord, xfer
2021-06-19 11:24:31 irc: server added: libera

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
2021-05-12 22:16:08 --> wymillerlinux (~wyatt@096-042-164-072.res.spectrum.com) has joined #freebsd-irc
2021-05-12 22:16:08 -- Topic for #freebsd-irc is "Unregistered users are forwarded from #freebsd to here. To register your nickname: https://freenode.net/kb/answer/registration :: Management of #freebsd* channels :: https://wiki.freebsd.org/IRC"
2021-05-12 22:16:08 -- Topic set by koobs on Mon, 01 Jul 2019 01:29:49
2021-05-12 22:16:08 -- Channel #freebsd-irc: 369 nicks (0 ops, 0 voices, 369 normals)
2021-05-12 22:16:12 -- Channel created on Wed, 27 Aug 2014 05:12:58
2021-05-12 22:19:35 --> wymillerlinux (~wyatt@096-042-164-072.res.spectrum.com) has joined #freebsd-irc
2021-05-12 22:19:35 -- Topic for #freebsd-irc is "Unregistered users are forwarded from #freebsd to here. To register your nickname: https://freenode.net/kb/answer/registration :: Management of #freebsd* channels :: https://wiki.freebsd.org/IRC"
2021-05-12 22:19:35 -- Topic set by koobs on Mon, 01 Jul 2019 01:29:49
2021-05-12 22:19:35 -- Channel #freebsd-irc: 369 nicks (0 ops, 0 voices, 369 normals)
2021-05-12 22:19:39 -- Channel created on Wed, 27 Aug 2014 05:12:58

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
2021-06-19 11:12:44 --> wymillerlinux (~wyatt@freenode-0ct.3jb.lo0a31.IP) has joined #golang
2021-06-19 11:12:44 -- Channel #golang: 1 nick (1 op, 0 halfops, 0 voices, 0 normals)
2021-06-19 11:12:52 -- Channel created on Sat, 19 Jun 2021 11:12:44

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
2021-05-12 22:16:08 gribble #bitcoin: Beware of scams! Scammers are sending users private messages with bitcoin-stealing malware and offers to trade. We are unable to stop them, so you must protect yourself. NEVER download or run programs from strangers! When in doubt, ask the ops.
2021-05-12 22:19:36 gribble #bitcoin: Beware of scams! Scammers are sending users private messages with bitcoin-stealing malware and offers to trade. We are unable to stop them, so you must protect yourself. NEVER download or run programs from strangers! When in doubt, ask the ops.
2021-05-15 11:03:48 gribble #bitcoin: Beware of scams! Scammers are sending users private messages with bitcoin-stealing malware and offers to trade. We are unable to stop them, so you must protect yourself. NEVER download or run programs from strangers! When in doubt, ask the ops.
2021-05-16 14:15:40 gribble #bitcoin: Beware of scams! Scammers are sending users private messages with bitcoin-stealing malware and offers to trade. We are unable to stop them, so you must protect yourself. NEVER download or run programs from strangers! When in doubt, ask the ops.
2021-05-16 15:39:45 gribble #bitcoin: Beware of scams! Scammers are sending users private messages with bitcoin-stealing malware and offers to trade. We are unable to stop them, so you must protect yourself. NEVER download or run programs from strangers! When in doubt, ask the ops.

View File

@ -0,0 +1 @@
2021-06-17 23:38:04 huskernotice NOTICE! You are receiving this message because you are in #git on leenode. Due to malicious actions taken by new freenode ownership, we are no longer on this network. This is a one-time courteousy notice that #git (and most other channels) are now on Libera (irc.libera.chat). We strongly recommend disconnecting from this network. See also: https://www.devever.net/~hl/freenode_suicide

View File

@ -0,0 +1,34 @@
2021-05-13 20:19:07 --> wymiller (~wyatt@protectedhost-FB7A3BB8.res.spectrum.com) has joined #jupiterbroadcasting
2021-05-13 20:19:07 -- Topic for #jupiterbroadcasting is "Live JB Shows: http://bit.ly/jbcalendar | JB Live Stream http://jblive.tv | Twitter: https://twitter.com/jupitersignal | Facebook: http://bit.ly/PN652 | Telegram: https://www.jupiterbroadcasting.com/telegram"
2021-05-13 20:19:07 -- Topic set by Tyler on Sun, 30 Jun 2019 20:19:26
2021-05-13 20:19:07 -- Channel #jupiterbroadcasting: 209 nicks (7 ops, 0 halfops, 0 voices, 202 normals)
2021-05-13 20:19:09 -- Channel created on Tue, 27 Apr 2010 07:41:01
2021-05-13 20:19:25 fatcatpat i could buy a mac if i cared about privacy lol
2021-05-13 20:19:37 <-- dominickm (~Adium@protectedhost-341F48C9.tamp.fl.frontiernet.net) has quit (Quit: Leaving.)
2021-05-13 20:19:55 reesericci mac dont give you freedom - look at the right to repair!!!
2021-05-13 20:20:06 fatcatpat i said privacy not freedom
2021-05-13 20:20:33 noblepayne poddy?
2021-05-13 20:20:38 ~ChrisLAS LOL
2021-05-13 20:20:40 <-- fatcatpat (fatcatpat@protectedhost-2B3A85D1.hsd1.ct.comcast.net) has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
2021-05-13 20:20:42 ~ChrisLAS !end_show
2021-05-13 20:20:42 JBot Show's over, folks. Thanks for coming to Coder Radio!
2021-05-13 20:20:46 reesericci i dont think they give you privacy from apple
2021-05-13 20:20:49 ~ChrisLAS Thanks for making it!
2021-05-13 20:21:13 <-- sageofredondo (~sageofred@F98E4A55.60F156C0.D588D67F.IP) has quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
2021-05-13 20:22:34 nevoyu np
2021-05-13 20:22:34 <-- koldor (~Mibbit@29973D36.93FE94BF.F36CB8BB.IP) has quit (Quit: http://www.mibbit.com ajax IRC Client)
2021-05-13 20:24:59 <-- noblepayne (~noblepayn@protectedhost-A1F768FD.hsd1.wa.comcast.net) has quit (Quit: Connection closed)
2021-05-16 11:24:00 --> wymiller (~wyatt@protectedhost-FB7A3BB8.res.spectrum.com) has joined #jupiterbroadcasting
2021-05-16 11:24:00 -- Topic for #jupiterbroadcasting is "Live JB Shows: http://bit.ly/jbcalendar | JB Live Stream http://jblive.tv | Twitter: https://twitter.com/jupitersignal | Facebook: http://bit.ly/PN652 | Telegram: https://www.jupiterbroadcasting.com/telegram"
2021-05-16 11:24:00 -- Topic set by Tyler on Sun, 30 Jun 2019 20:19:26
2021-05-16 11:24:00 -- Channel #jupiterbroadcasting: 197 nicks (7 ops, 0 halfops, 0 voices, 190 normals)
2021-05-16 11:24:02 -- Channel created on Tue, 27 Apr 2010 07:41:01
2021-05-16 12:21:36 <-- Cnuut (~nix.eldia@protectedhost-D15655B2.a328.priv.bahnhof.se) has quit (Quit: )
2021-05-16 12:29:14 --> death_ (~Username@protectedhost-91BACEAA.hsd1.ca.comcast.net) has joined #jupiterbroadcasting
2021-05-16 12:44:23 --> Cnuut (~nix.eldia@protectedhost-D15655B2.a328.priv.bahnhof.se) has joined #jupiterbroadcasting
2021-05-16 13:00:09 <-- death_ (~Username@protectedhost-91BACEAA.hsd1.ca.comcast.net) has quit (Broken pipe)
2021-05-16 13:20:38 --> axiomjoyride (~manjaro-u@AE880B4A.9A7AF8BE.C0AFBDEC.IP) has joined #jupiterbroadcasting
2021-05-16 13:56:20 --> death_ (~Username@protectedhost-91BACEAA.hsd1.ca.comcast.net) has joined #jupiterbroadcasting
2021-05-16 13:56:21 <-- davemq (~davemq@protectedhost-A7D75584.lightspeed.austtx.sbcglobal.net) has quit (Connection reset by peer)
2021-05-16 13:56:57 --> davemq (~davemq@protectedhost-A7D75584.lightspeed.austtx.sbcglobal.net) has joined #jupiterbroadcasting
2021-05-16 14:12:09 <-- dabbill_ (~dabbill@ED044DEE.B90EFD35.77D945.IP) has quit (Quit: ZNC - https://znc.in)

View File

@ -0,0 +1 @@
2021-06-19 11:18:00 =!= irc: this buffer is not a channel!

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,57 @@
2021-06-19 11:24:42 -- irc: connecting to server irc.libera.chat/6697 (SSL)...
2021-06-19 11:24:43 -- gnutls: connected using 2048-bit Diffie-Hellman shared secret exchange
2021-06-19 11:24:43 -- gnutls: receiving 3 certificates
2021-06-19 11:24:43 -- - certificate[1] info:
2021-06-19 11:24:43 -- - subject `CN=copper.libera.chat', issuer `CN=R3,O=Let's Encrypt,C=US', serial 0x043bb98618236ad550834b8f2507a2eab094, EC/ECDSA key 384 bits, signed using RSA-SHA256, activated `2021-05-27 21:20:15 UTC', expires `2021-08-25 21:20:15 UTC', pin-sha256="cv0ltiCs10HTzVfQHP1Q+epOs2pxCyhg3vW4b1kLU8E="
2021-06-19 11:24:43 -- - certificate[2] info:
2021-06-19 11:24:43 -- - subject `CN=R3,O=Let's Encrypt,C=US', issuer `CN=ISRG Root X1,O=Internet Security Research Group,C=US', serial 0x00912b084acf0c18a753f6d62e25a75f5a, RSA key 2048 bits, signed using RSA-SHA256, activated `2020-09-04 00:00:00 UTC', expires `2025-09-15 16:00:00 UTC', pin-sha256="jQJTbIh0grw0/1TkHSumWb+Fs0Ggogr621gT3PvPKG0="
2021-06-19 11:24:43 -- - certificate[3] info:
2021-06-19 11:24:43 -- - subject `CN=ISRG Root X1,O=Internet Security Research Group,C=US', issuer `CN=DST Root CA X3,O=Digital Signature Trust Co.', serial 0x4001772137d4e942b8ee76aa3c640ab7, RSA key 4096 bits, signed using RSA-SHA256, activated `2021-01-20 19:14:03 UTC', expires `2024-09-30 18:14:03 UTC', pin-sha256="C5+lpZ7tcVwmwQIMcRtPbsQtWLABXhQzejna0wHFr8M="
2021-06-19 11:24:43 -- gnutls: peer's certificate is trusted
2021-06-19 11:24:43 -- irc: connected to irc.libera.chat/6697 (130.185.232.126)
2021-06-19 11:24:43 -- copper.libera.chat: *** Checking Ident
2021-06-19 11:24:43 -- copper.libera.chat: *** Looking up your hostname...
2021-06-19 11:24:43 -- copper.libera.chat: *** Found your hostname: 096-042-164-072.res.spectrum.com
2021-06-19 11:24:49 -- copper.libera.chat: *** No Ident response
2021-06-19 11:24:49 -- Welcome to the Libera.Chat Internet Relay Chat Network wyatt
2021-06-19 11:24:49 -- Your host is copper.libera.chat[130.185.232.126/6697], running version solanum-1.0-dev
2021-06-19 11:24:49 -- This server was created Mon Jun 14 2021 at 17:46:09 UTC
2021-06-19 11:24:49 -- copper.libera.chat solanum-1.0-dev DGQRSZaghilopsuwz CFILMPQSbcefgijklmnopqrstuvz bkloveqjfI
2021-06-19 11:24:49 -- CALLERID=g SAFELIST ELIST=CTU ETRACE KNOCK MONITOR=100 WHOX FNC CHANTYPES=# EXCEPTS INVEX CHANMODES=eIbq,k,flj,CFLMPQScgimnprstuz :are supported by this server
2021-06-19 11:24:49 -- CHANLIMIT=#:250 PREFIX=(ov)@+ MAXLIST=bqeI:100 MODES=4 NETWORK=Libera.Chat STATUSMSG=@+ CASEMAPPING=rfc1459 NICKLEN=16 MAXNICKLEN=16 CHANNELLEN=50 TOPICLEN=390 DEAF=D :are supported by this server
2021-06-19 11:24:49 -- TARGMAX=NAMES:1,LIST:1,KICK:1,WHOIS:1,PRIVMSG:4,NOTICE:4,ACCEPT:,MONITOR: EXTBAN=$,ajrxz :are supported by this server
2021-06-19 11:24:49 -- There are 68 users and 39252 invisible on 27 servers
2021-06-19 11:24:49 -- 35 :IRC Operators online
2021-06-19 11:24:49 -- 5 :unknown connection(s)
2021-06-19 11:24:49 -- 19624 :channels formed
2021-06-19 11:24:49 -- I have 343 clients and 1 servers
2021-06-19 11:24:49 -- 343 343 :Current local users 343, max 343
2021-06-19 11:24:49 -- 39320 40048 :Current global users 39320, max 40048
2021-06-19 11:24:49 -- Highest connection count: 344 (343 clients) (892 connections received)
2021-06-19 11:24:49 -- - copper.libera.chat Message of the Day -
2021-06-19 11:24:49 -- - Welcome to Libera Chat, the IRC network for
2021-06-19 11:24:49 -- - free & open-source software and peer directed projects.
2021-06-19 11:24:49 -- -
2021-06-19 11:24:49 -- - Use of Libera Chat is governed by our network policies.
2021-06-19 11:24:49 -- -
2021-06-19 11:24:49 -- - Please visit us in #libera for questions and support.
2021-06-19 11:24:49 -- -
2021-06-19 11:24:49 -- - Website and documentation: https://libera.chat
2021-06-19 11:24:49 -- - Webchat: https://web.libera.chat
2021-06-19 11:24:49 -- - Network policies: https://libera.chat/policies
2021-06-19 11:24:49 -- - Email: support@libera.chat
2021-06-19 11:24:49 -- End of /MOTD command.
2021-06-19 11:24:49 -- User mode [+Zi] by wyatt
2021-06-19 11:25:12 -- You are now known as wymiller
2021-06-19 11:25:35 -- MSG(NickServ): REGISTER ********************************
2021-06-19 11:25:36 -- NickServ (NickServ@services.libera.chat): An email containing nickname activation instructions has been sent to wyatt@wyattjmiller.com.
2021-06-19 11:25:36 -- NickServ (NickServ@services.libera.chat): Please check the address if you don't receive it. If it is incorrect, DROP then REGISTER again.
2021-06-19 11:25:36 -- NickServ (NickServ@services.libera.chat): If you do not complete registration within one day, your nickname will expire.
2021-06-19 11:25:36 -- NickServ (NickServ@services.libera.chat): wymiller is now registered to wyatt@wyattjmiller.com.
2021-06-19 11:26:51 -- MSG(NickServ): VERIFY REGISTER *************************
2021-06-19 11:26:51 -- NickServ (NickServ@services.libera.chat): wymiller has now been verified.
2021-06-19 11:26:51 -- NickServ (NickServ@services.libera.chat): Thank you for verifying your e-mail address! You have taken steps in ensuring that your registrations are not exploited.
2021-06-19 11:27:20 -- ##linux: #linux :Forwarding to another channel
2021-06-21 00:00:09 -- glguy (x@libera/staff/glguy): [global notice] Services will be restarted for maintenance in 60 minutes. Please get channel ops ahead of time, if needed.
2021-06-21 01:00:01 -- glguy (x@libera/staff/glguy): [global notice] Services are being restarted now for maintenance. Additional updates will be provided as WALLOPS (/mode YourNick +w)
2021-06-22 12:04:04 -- niko (~niko@libera/staff/niko): We're introducing a nickname expiration policy change to help free up some disused nicks a bit faster than usual. It's called the "two week two hour" rule and it will start being enforced at 12 noon UTC this Friday (25th); see more here https://git.io/JnDzg

View File

@ -0,0 +1,24 @@
2021-06-19 11:18:16 -- irc: connecting to server irc.us.librea.chat/6697 (SSL)...
2021-06-19 11:18:16 =!= irc: address "irc.us.librea.chat" not found
2021-06-19 11:18:16 =!= irc: error: Name or service not known
2021-06-19 11:18:16 -- irc: reconnecting to server in 10 seconds
2021-06-19 11:18:26 -- irc: reconnecting to server...
2021-06-19 11:18:26 -- irc: connecting to server irc.us.librea.chat/6697 (SSL)...
2021-06-19 11:18:26 =!= irc: address "irc.us.librea.chat" not found
2021-06-19 11:18:26 =!= irc: error: Name or service not known
2021-06-19 11:18:26 -- irc: reconnecting to server in 20 seconds
2021-06-19 11:18:46 -- irc: reconnecting to server...
2021-06-19 11:18:46 -- irc: connecting to server irc.us.librea.chat/6697 (SSL)...
2021-06-19 11:18:46 =!= irc: address "irc.us.librea.chat" not found
2021-06-19 11:18:46 =!= irc: error: Name or service not known
2021-06-19 11:18:46 -- irc: reconnecting to server in 40 seconds
2021-06-19 11:19:26 -- irc: reconnecting to server...
2021-06-19 11:19:26 -- irc: connecting to server irc.us.librea.chat/6697 (SSL)...
2021-06-19 11:19:26 =!= irc: address "irc.us.librea.chat" not found
2021-06-19 11:19:26 =!= irc: error: Name or service not known
2021-06-19 11:19:26 -- irc: reconnecting to server in 1 minute, 20 seconds
2021-06-19 11:20:46 -- irc: reconnecting to server...
2021-06-19 11:20:46 -- irc: connecting to server irc.us.librea.chat/6697 (SSL)...
2021-06-19 11:20:46 =!= irc: address "irc.us.librea.chat" not found
2021-06-19 11:20:46 =!= irc: error: Name or service not known
2021-06-19 11:20:46 -- irc: reconnecting to server in 2 minutes, 40 seconds

View File

@ -0,0 +1,3 @@
2021-05-24 15:20:31 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!EDuEGWoVslpjxWbMXf:matrix.wyattjmiller.com
2021-05-24 15:20:32 -- wymiller has changed the topic for #News to "There isn't a day without it ending with a "y”"
2021-05-24 21:55:52 -- matrix: wymiller has enabled encryption in this room

View File

@ -0,0 +1,4 @@
2021-05-24 22:13:06 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!emsXxPcwxLDpURmKVU:matrix.wyattjmiller.com
2021-05-24 22:13:09 -- matrix: wymiller has enabled encryption in this room
2021-05-24 22:13:07 -- wymiller has changed the topic for #My Server to "My rooms, my stuff"
2021-05-24 22:14:30 <-- @wymiller:matrix.wyattjmiller.com (None) has left #My Server

View File

@ -0,0 +1,5 @@
2021-05-24 22:09:16 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!kqjbzVNrgYkFAICjPZ:matrix.wyattjmiller.com
2021-05-24 22:09:20 -- matrix: wymiller has enabled encryption in this room
2021-05-24 22:09:17 -- wymiller has changed the topic for #Test to "For testing"
2021-05-24 22:11:14 -- wymiller has changed the topic for #External Rooms to "For servers across the Fediverse... "
2021-05-24 22:14:34 <-- @wymiller:matrix.wyattjmiller.com (None) has left #External Rooms

View File

@ -0,0 +1,166 @@
2021-06-01 22:30:43 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined #radicle:general
2021-06-02 02:56:53 &fintohaps My thinking is that all these questions have the same answer: it's all in the size of the network. The more your project is replicated, the higher the probability that a consistent version of the project lives out there. In the worst case scenario your data is always fucked, because it's the worst case. If I only kept my project on my laptop and then my laptop's disk got corrupted then I'd lose my project. But if I join multiple seeds and they replicate my project then I have a higher chance of recovering a version of the project.
2021-06-02 03:02:47 ubi#3948 Right
2021-06-02 03:03:28 ubi#3948 Which reason why we probably push to some remote server, beside the collaborative part of it
2021-06-02 03:06:52 ubi#3948 So, having some details about SLA (just using the terms to referrer about the topic) would be important, as of today, GitLab seems to have 1 master/2 replicas (so 3 seeds), otherwise, it is all good and dandy trusting the seeds until it isn't, and you realized you have lost your data.
2021-06-02 03:08:23 ubi#3948 Personally I ask because I have sitting projects in GitHub and GitLab that I dont have in my local computer, and probably I dont care to have them for the most part, but I dont want to lose them either. So if I would move them to the seed, then I am under the mercy of them
2021-06-02 03:11:42 &fintohaps You're also under the mercy of GitHub and GitLab 🤷‍♂️
2021-06-02 03:13:38 ubi#3948 Sure, but that is why some people pay for signing a legal agreement 😉
2021-06-02 03:14:30 xla Have you read the EULA and TOS of these services?
2021-06-02 03:14:32 ubi#3948 I am with you 100%, but that is not the point, and beside Radicle being decentralized or whatever ... I dont think that avoiding the topic in some some way is a good idea either
2021-06-02 03:14:42 ubi#3948 xla read what I said, I was typing
2021-06-02 03:14:53 xla To clarify looking at the seed as stateless frontends to some HA store is not the right angle.
2021-06-02 03:15:02 ubi#3948 Yes I have read the ToS for our enterprise version of Gitlab
2021-06-02 03:15:13 xla They operate with distinct device keys which is important to maintain the local monorepo.
2021-06-02 03:15:15 ubi#3948 But beside that, that is not the point
2021-06-02 03:16:40 ubi#3948 Which I kind of understand that Redicle doesnt do much related to durability, whatever your disk configuration is, what I am suggesting is to take ownership the topic and answer the concern people have
2021-06-02 03:17:14 ubi#3948 Especially from the seed mode perspective, since data corruption in replication could be the problem ... I am not sure
2021-06-02 03:17:21 ubi#3948 asking for direction, and answers
2021-06-02 03:18:32 xla There have been multiple times now where me and others gave answers to your questions. If you have concerns that should be discussed with a larger audience feel free to start a topic on radicle.community around this.
2021-06-02 03:18:49 ubi#3948 What is the answer?
2021-06-02 03:19:01 ubi#3948 Also, are you getting frustrated by any chance?
2021-06-02 03:20:10 xla Somewhat, because this is going in circles. The answer is that the seed is as durable as the storage that is used, if you find/choose some block storage which has higher guarantees than a single disk that is your durability imrpovement.
2021-06-02 03:20:13 ubi#3948 Just want to make sure I am not burning you out, because from my perspective I feel I havent get a solid answer (probably I miss it) but I rather stop here, and come back to this later
2021-06-02 03:21:05 ubi#3948 That is one part, as I said before, I get it, and I understood already. We are going in loop because that is only one part of the equation
2021-06-02 03:21:35 ubi#3948 Replication is the second part, and making sure that the replication is not corrupt due to some outrage and what not
2021-06-02 03:21:52 ubi#3948 And then, clustering of seeds so you an achieve HA as much as you can
2021-06-02 03:22:32 ubi#3948 So I understand, and I totally get what you mean about the durability, and I said before, I got it, but I am trying to understand the second part of the history, where is where I wish I dont get pull back to the durability topic
2021-06-02 03:22:33 &fintohaps The protocol team's current focus is on getting a solid foundation around the protocol itself. The thought of durability isn't currently a concern as we'll currently rely on the network community for such things.
2021-06-02 03:23:21 &fintohaps > In reply to @_discord_105414642838298624:t2bot.io
2021-06-02 03:23:21 > Replication is the second part, and making sure that the
2021-06-02 03:23:21 > replication is not corrupt due to some outrage and what
2021-06-02 03:23:21 > not
2021-06-02 03:23:21 If you can point to how replication may get corrupted (via git) then maybe the conversation could be more fruitful :)
2021-06-02 03:23:56 ubi#3948 That works for me, as long as you keep it in mind in the roadmap, as I said before as well, I am not looking for things to be done, but at least understand where people are with the topic
2021-06-02 03:24:18 &fintohaps Understandable :)
2021-06-02 03:24:38 &fintohaps We encourage you to think about it too, and as xla pointed out, start a topic in radicle.community
2021-06-02 03:25:29 ubi#3948 I posted some link related to GitLab at scale, and they did have issues with replication (and they do use Git) 😉 so I dont know
2021-06-02 03:26:01 ubi#3948 this is where projects trying to be decentralized with HA endup doing repair phases to figure out such problematic topic
2021-06-02 03:26:03 ubi#3948 Which
2021-06-02 03:26:04 ubi#3948 V2
2021-06-02 03:27:00 xla Can you give an example of a decentralised system which does repair phases?
2021-06-02 03:27:27 &fintohaps > In reply to @_discord_105414642838298624:t2bot.io
2021-06-02 03:27:27 > I posted some link related to GitLab at scale, and they
2021-06-02 03:27:27 > did have issues with replication (and they do use Git) 😉
2021-06-02 03:27:27 > so I dont know
2021-06-02 03:27:27 Can you point out the paragraph that refers to it?
2021-06-02 03:28:53 ubi#3948 %
2021-06-02 03:28:58 ubi#3948 * ^
2021-06-02 03:29:10 ubi#3948 ^
2021-06-02 03:29:49 ubi#3948 Storj, from the top of my head ... or any other storage mechanism that most figure out how to replicate the data with strong guarantee of the durability of the file and what not
2021-06-02 03:30:22 ubi#3948 Going back to what I said multiple, again, I get that it could be part of the storage layer rather than this ...
2021-06-02 03:31:04 xla I pointed that out before, distributed storage systems are not a good mental model to apply here. And a comparative analysis about their properites is moot. Radicle does not implement or rely on a distributed datastore.
2021-06-02 03:31:15 xla As there is no globale coherent dataset.
2021-06-02 03:31:28 ubi#3948 As I said before, please dont pull me into the conversation about it if you feel burn out
2021-06-02 03:31:34 ubi#3948 I got it, and if that is the answer, so be it
2021-06-02 03:38:06 ubi#3948 Something like this, https://docs.gitlab.com/ee/administration/gitaly/praefect.html#replication-factor
2021-06-02 03:38:06 Do Radicle has some threadhold/replication factor or whatever that I could for example trust on it
2021-06-02 03:39:18 ubi#3948 Where they stuff make no sense is that, since it is a p2p there is no single point of failure so the concept of master/replicate is non-existent
2021-06-02 03:40:10 ubi#3948 * Something like this, https://docs.gitlab.com/ee/administration/gitaly/praefect.html#replication-factor
2021-06-02 03:40:10 Do Radicle has some threadhold/replication factor or whatever that I could for example trust on when pushing to the seeds or whatever?
2021-06-02 03:40:59 ubi#3948 The whoe page is an interesting reading btw
2021-06-02 03:43:09 ubi#3948 * The whole page is an interesting reading btw
2021-06-02 03:43:44 &fintohaps > Replication factor is the number of copies Praefect
2021-06-02 03:43:44 > maintains of a given repository. A higher replication
2021-06-02 03:43:44 > factor offers better redundancy and distribution of read
2021-06-02 03:43:44 > workload, but also results in a higher storage cost. By
2021-06-02 03:43:44 > default, Praefect replicates repositories to every storage
2021-06-02 03:43:44 > in a virtual storage.
2021-06-02 03:44:25 &fintohaps This sounds like what I said earlier. The replication factor in Radicle is how many peers you're connected to and how many of those are interested in your project
2021-06-02 03:45:00 &fintohaps I don't see anything about replication corruption there. But I'm only glancing through
2021-06-02 03:49:42 ubi#3948 Right right, I understood that part, and that is where I am focusing on the seed particularly because they must be interested in everything since most likely many peers will be connected to it.
2021-06-02 03:49:42 But what was the guarantee that it did happen, if you read the full article, they still have to check that it did happen and the "replicas" are up-to-date and what not ... which I am not sure what that means in the context of Radicle seeds
2021-06-02 03:50:49 ubi#3948 Which is the part I am trying to figure out at the moment (It seems that GitLab does rely on the storage layer for the guarantee, as Radicle decided to btw )
2021-06-02 03:52:11 &fintohaps Right, at the moment there are no "guarantee" mechanisms
2021-06-02 03:52:20 ubi#3948 So imagine a cluster of 3 seeds and me, that are all the peers, how will Radicle guarantee that everything among us is in a healthy state
2021-06-02 03:52:24 ubi#3948 Which v2
2021-06-02 03:52:50 &fintohaps Gossip is sent and any node which cares about that gossip is expected to replicate it if it's interesting
2021-06-02 03:53:19 &fintohaps "Interesting" meaning that the node tracks that Urn and PeerId
2021-06-02 03:54:00 ubi#3948 Recap
2021-06-02 03:54:00 - Durability Guarantee: Underline storage concern, outside of Radicle scope
2021-06-02 03:54:00 - Replication Factor Guarantee: Future
2021-06-02 03:54:00 Does that make sense?
2021-06-02 03:54:15 ubi#3948 * Recap
2021-06-02 03:54:15 - Durability Guarantee: Underline storage concern, outside of Radicle scope
2021-06-02 03:54:15 - Replication Factor Guarantee: Future, unknown what that means for Radicle
2021-06-02 03:54:15 Does that make sense?
2021-06-02 03:57:32 &fintohaps Ya, I think so. I might phrase it as:
2021-06-02 03:57:32 Replication Factor Guarantee: currently based on the gossip protocol (and its correctness), as well as the connectivity of the node. Room for something like, "nodes ack that they received gossip"
2021-06-02 04:05:50 ubi#3948 Yep, something like that
2021-06-02 04:06:19 ubi#3948 Which honestly, I think this makes sense only in the context of the seed nodes, because those are the one people lean on for replicate their stuff
2021-06-02 04:08:59 &fintohaps Sure ya. Maybe something like, "what SHA do you have for rad:git:hnrkhello?" could help there
2021-06-02 04:10:20 ubi#3948 Now we are talking!
2021-06-02 04:16:10 ubi#3948 Maybe, the links I shared from gitlab give some insights in terms of how they are doing things (open source at the end as well), so I am not sure. I understand their architecture is different, but still, good content.
2021-06-02 10:04:43 --> cloudhead#2904 (@_discord_553305334345629728:t2bot.io) has joined #radicle:general
2021-06-02 10:04:43 cloudhead#2904 If you want an SLA, you can pay someone to run a seed node with an SLA, I don't think that's out of question
2021-06-02 10:05:17 cloudhead#2904 but if you're getting a service for free, you can't expect much of a guarantee, only some probability that your data is safe
2021-06-02 10:06:02 cloudhead#2904 eg. as was said above with replication factor, we can theoretically wait for N announcements back of a ref you pushed, to consider the code probably replicated
2021-06-02 10:06:32 cloudhead#2904 the larger N is, the more likely your data is safe
2021-06-02 10:07:21 cloudhead#2904 but I think eventually it will make sense to run a seed node service with data redundancy and an SLA, and have users who want that pay for it
2021-06-02 10:41:10 ubi#3948 cloudhead did you read this comment? I am not suggesting that people must do anything when I use the term SLA
2021-06-02 10:43:51 ubi#3948 So this is true, but I wasnt expecting anything. I am just trying to figure out where Radicle is and hope that because a real sustitution for most solutions out there
2021-06-02 10:44:35 ubi#3948 * So this is true, but I wasnt expecting anything. I am just trying to figure out where Radicle is and hope that become a real sustitution for most solutions out there
2021-06-04 03:58:21 <-- @jhbruhn:jhbruhn.de (None) has left #radicle:general
2021-06-04 18:05:43 @viraptor1 Something Radicle won't have to worry too much about - fires in datacentres: https://pijul.org/posts/2021-06-03-on-fires/
2021-06-05 00:57:25 l0k18 hey, any go programmers here? I'm just wondering how I tell go about fetching radicle repos?
2021-06-05 01:00:53 @viraptor1 l0k18: do you mean an API for Go to do it programmatically?
2021-06-05 01:01:14 l0k18 I mean, how do I specify the URL in an import statement?
2021-06-05 01:02:42 l0k18 I run goland also, if there is any tips related to that
2021-06-05 01:03:02 @viraptor1 Ah, I see. That's interesting. Do you know if Go uses the git command internally or its own implementation?
2021-06-05 01:03:02 If it goes through the git command, then rad:... identifier could maybe work?
2021-06-05 01:03:36 l0k18 ok, so maybe like: rad://hnrkpmhnpcbw4i1i5qfqy8ioicsdgokmmipko.
2021-06-05 01:03:46 @viraptor1 Exactly
2021-06-05 01:04:42 @viraptor1 I don't think that's been a documented use case yet - may be worth raising an issue to track it since it will affect a few languages. Even if it works and just needs documenting.
2021-06-05 01:05:26 l0k18 > _< ah well, yes, I like this a lot, and I guess there will
2021-06-05 01:05:26 > be ENS and other alt-DNS system support too
2021-06-05 01:05:34 l0k18 * > _< ah well, yes, I like this a lot, and I guess there will
2021-06-05 01:05:34 > be ENS and other alt-DNS system support too
2021-06-05 01:05:50 l0k18 * oh >_< ah well, yes, I like this a lot, and I guess there will be ENS and other alt-DNS system support too
2021-06-05 01:06:30 l0k18 I'll raise the issue... I can't develop on this platform without that working
2021-06-05 01:07:21 l0k18 obviously not necessarily able to do much as far as actual radicle repo project contribution goes... rust! crucifix gesture ;)
2021-06-05 01:07:42 l0k18 well maybe I can help with this integration anyway
2021-06-05 01:09:31 @viraptor1 If any changes need to be made, they would be likely on the dependency downloader side. Git with the rad helper script knows how to deal with those repos already. Unless the downloader uses some independent implementation, it shouldn't be hard to get things to "just work".
2021-06-05 01:09:29 l0k18 awww... damn https://github.com/radicle-dev/radicle-upstream/issues/1469 I didn't know there was any connection between rust crates and npm at all. :(
2021-06-05 01:10:03 l0k18 There was a distributed Git system I encountered previously
2021-06-05 01:10:22 l0k18 just have to remember what the name was, probably the go integration is relevant
2021-06-05 01:10:42 l0k18 ah yes, something connected to ipfs
2021-06-05 01:11:18 l0k18 if nobody's done a Go repo on radicle yet there almost certainly won't be integration yet
2021-06-05 01:11:48 @viraptor1 l0k18: not sure what you mean by connection with creates and npm is this context.
2021-06-05 01:11:48 They don't depend on each other, but upstream is built from electron which needs JS libraries and and from Rust backend which uses creates.
2021-06-05 01:12:04 l0k18 which repo in radicle-dev specifically covers the helper that would understand go's requests?
2021-06-05 01:13:59 l0k18 https://github.com/cryptix/git-remote-ipfs this is a helper for ipfs
2021-06-05 01:17:55 l0k18 I've forked that one there, I guess the theory is that I adapt it to talk to radicle network
2021-06-05 01:18:47 l0k18 i noticed that the GUI uses svelte, which is nice, it makes such fast UIs
2021-06-05 01:19:08 @viraptor1 I would expect it's either in -link or -upstream. Let me see if I can find it
2021-06-05 01:28:40 l0k18 import "hyntfjmdoqzgwdupr9wxybnros4uq8gmmqb1usg74kja6jrqd4pcq1/pokaz/cmd/demo">
2021-06-05 01:29:09 l0k18 *
2021-06-05 01:29:39 l0k18 *
2021-06-05 01:29:39 import "hyntfjmdoqzgwdupr9wxybnros4uq8gmmqb1usg74kja6jrqd4pcq1/pokaz/cmd/demo"
2021-06-05 01:29:39
2021-06-05 01:29:39
2021-06-05 01:29:39
2021-06-05 01:29:57 l0k18 simple, peer id and then monorepo path
2021-06-05 01:30:09 l0k18 @vir
2021-06-05 01:30:30 l0k18 * viraptor: no need to look any further it just works
2021-06-05 01:30:46 l0k18 thanks :)
2021-06-05 01:31:24 l0k18 just an aside, is there a more lightweight client for matrix networks, I have stayed away from matrix mostly because the web client is so heavy
2021-06-05 01:32:08 l0k18 it's gonna be a week before I have a workstation with more than 4gb and the swap party that just went on in my laptop just now was infuriating
2021-06-05 01:39:12 l0k18 fractal looks good
2021-06-05 02:00:11 @viraptor1 For the helper start here https://github.com/radicle-dev/radicle-upstream/blob/master/proxy/api/src/bin/git-remote-rad.rs
2021-06-05 02:03:11 l0k18 it's automatically put in place by radicle-upstream :) works ootb
2021-06-05 02:03:34 @viraptor1 Have you tried the Element client yet? (Not sure how the desktop one behaves, but mobile is good)
2021-06-05 04:40:34 l0k18 as in, system resolver will hear 'some.radicle.url' and go will see this but after the request is made the connection will loop back
2021-06-05 04:40:48 l0k18 kludgy, but it might work
2021-06-05 04:55:57 &xla:radicle.community Even with that you need something that terminates on your custom url.
2021-06-05 04:56:13 &xla:radicle.community Like the gateway for IPFS.
2021-06-05 05:06:57 l0k18 hm well, I'm gonna give up on this for the time being since I can't use it, but if anyone happens to have any ideas I'll lurk here, having functional host-proxying at localhost that doesn't confuse go modules probably is a generalised solution that would equally help with ipfs
2021-06-05 05:40:58 l0k18 ok, https://github.com/radicle-dev/radicle-upstream/blob/master/DEVELOPMENT.md#proxy this seems to indicate to me there is a web server/proxy running somewhere, I just can't spot it using ss -atn
2021-06-05 05:47:46 l0k18
2021-06-05 05:47:46 loki@yoga13:~$ curl 127.0.0.1:17246
2021-06-05 05:47:46 {"message":"Resource not found","variant":"NOT_FOUND"}loki@yoga13:~$
2021-06-05 05:47:46
2021-06-05 05:47:46
2021-06-05 05:47:46 Is this the expected response from radicle's web server?
2021-06-05 05:48:16 l0k18 is there a url that gives some more information than this?
2021-06-05 06:15:28 l0k18 meh, nvm, i thought I may be able to play with this but without support for module imports there is no differentiation aside from the nice GUI between this and IPFS as the back end
2021-06-06 03:22:29 ankushrajput Hi Guys can someone share what price did private investors get their placement in radicle?

View File

@ -0,0 +1,23 @@
2021-05-24 22:04:26 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!mkXzRrOLaBeKMpbEUL:matrix.wyattjmiller.com
2021-05-24 22:04:29 -- matrix: wymiller has enabled encryption in this room
2021-05-24 22:04:27 -- wymiller has changed the topic for #Memes to "I'll think I'll steal that one... "
2021-05-24 22:05:11 ⚠️ &wymiller <dankmemes-njhih9.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/LFzVaiMlQtZCztKhobrruqZf?key=ZOmRWbO1JSQhMMXth0ZHgvBqQtwnBFRigWQOBa63Fm8&hash=%2Bu5RBoJYJQ6eQehUefch%2F7a67xOhL6w3QmAFKjTQIPI&iv=DpnWR0bwTfEAAAAAAAAAAA]
2021-05-24 22:05:52 ⚠️ &wymiller <aXYL2d2_460s.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/QXwkEitwlhyMfhSeuKrXRvpE?key=D7ulImPfBmxbgIefFNzY8mnCJaZKRPJno1fghFadLgY&hash=Ai1UI35sNfWLVFycqhtdpDRPkw%2B4pokLnr4kSyywYUY&iv=lpVX0EPQ%2BEwAAAAAAAAAAA]
2021-05-24 22:05:55 ⚠️ &wymiller <70a57609694bbad2bd4bb1bb5b90a2e5abb619de.mp4> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/nBANhNhteFtvLOrOimnaYDbs?key=QFbS35P9k2Y8Xizdp16n01e_wBdJ7DOe6OGHXZb4ygs&hash=VYKeSMoQGjiNr8xhByjL05vyLNbYCEPn8NtD8bDekrw&iv=eO6yvbz73eAAAAAAAAAAAA]
2021-05-24 22:05:55 ⚠️ &wymiller <download_20200106_220526.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/oPQEsKjruWyCVMPXbKVXcjYC?key=tkCblX1w0boRZxp_FIDpRXojiik1k472xX9KDmwDGvk&hash=ontQpu%2BKrjbZej1NLvm%2FWPY%2Fpnn36KRjKe1Ugr0oSRE&iv=OSJ1TSCmaKoAAAAAAAAAAA]
2021-05-24 22:05:56 ⚠️ &wymiller <tumblr_p8sx0vMG5f1r51v3fo1_500.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/DvkrHQOhhKsfeSnFfxImtsbR?key=5sPp7CHD4wPvaUFie0Hh64xozwlVYYV7iO2IMvUlq3A&hash=fX3YLNIsijnDnpJO7Y8l2W0XH6GzGyHdDbK1EEXegvg&iv=e3ErsJSwMMoAAAAAAAAAAA]
2021-05-24 22:05:56 ⚠️ &wymiller <SmartSelect_20200214-231437.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/TqgOzdsTmBiRvUdGUMXlGjiB?key=XwP-V5tKtdlDrX9m5tvtmpNCssfR8PtkQ-HfORN3IEI&hash=ngTqAOKa3Lv8sAHmmMIWxjMBLo2bMkW6m7Nd%2FqnEXIE&iv=l9gy21X7bekAAAAAAAAAAA]
2021-05-24 22:36:23 ⚠️ &wymiller <20210511_223259.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/DZVfTeJURZhxQrZaPpSbBffD?key=Vjf7JMRsLqolqztVwvF5ilzSGNv2xUdSm-QLakRUTEQ&hash=MaenPeWxBU1eXTuvrZilhtpjgPl%2F7cNdDXlUof%2Fj%2B8Y&iv=unsCPyXeUjEAAAAAAAAAAA]
2021-05-24 22:36:23 ⚠️ &wymiller <20210511_223259.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/DZVfTeJURZhxQrZaPpSbBffD?key=Vjf7JMRsLqolqztVwvF5ilzSGNv2xUdSm-QLakRUTEQ&hash=MaenPeWxBU1eXTuvrZilhtpjgPl%2F7cNdDXlUof%2Fj%2B8Y&iv=unsCPyXeUjEAAAAAAAAAAA]
2021-05-24 22:05:56 ⚠️ &wymiller <SmartSelect_20200214-231437.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/TqgOzdsTmBiRvUdGUMXlGjiB?key=XwP-V5tKtdlDrX9m5tvtmpNCssfR8PtkQ-HfORN3IEI&hash=ngTqAOKa3Lv8sAHmmMIWxjMBLo2bMkW6m7Nd%2FqnEXIE&iv=l9gy21X7bekAAAAAAAAAAA]
2021-05-24 22:05:56 &wymiller <Message redacted by: wymiller>
2021-05-24 22:05:55 ⚠️ &wymiller <download_20200106_220526.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/oPQEsKjruWyCVMPXbKVXcjYC?key=tkCblX1w0boRZxp_FIDpRXojiik1k472xX9KDmwDGvk&hash=ontQpu%2BKrjbZej1NLvm%2FWPY%2Fpnn36KRjKe1Ugr0oSRE&iv=OSJ1TSCmaKoAAAAAAAAAAA]
2021-05-24 22:05:55 ⚠️ &wymiller <70a57609694bbad2bd4bb1bb5b90a2e5abb619de.mp4> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/nBANhNhteFtvLOrOimnaYDbs?key=QFbS35P9k2Y8Xizdp16n01e_wBdJ7DOe6OGHXZb4ygs&hash=VYKeSMoQGjiNr8xhByjL05vyLNbYCEPn8NtD8bDekrw&iv=eO6yvbz73eAAAAAAAAAAAA]
2021-05-24 22:05:52 ⚠️ &wymiller <aXYL2d2_460s.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/QXwkEitwlhyMfhSeuKrXRvpE?key=D7ulImPfBmxbgIefFNzY8mnCJaZKRPJno1fghFadLgY&hash=Ai1UI35sNfWLVFycqhtdpDRPkw%2B4pokLnr4kSyywYUY&iv=lpVX0EPQ%2BEwAAAAAAAAAAA]
2021-05-24 22:05:11 ⚠️ &wymiller <dankmemes-njhih9.jpg> [emxc://matrix.wyattjmiller.com:443/_matrix/media/r0/download/matrix.wyattjmiller.com/LFzVaiMlQtZCztKhobrruqZf?key=ZOmRWbO1JSQhMMXth0ZHgvBqQtwnBFRigWQOBa63Fm8&hash=%2Bu5RBoJYJQ6eQehUefch%2F7a67xOhL6w3QmAFKjTQIPI&iv=DpnWR0bwTfEAAAAAAAAAAA]
2021-05-25 20:04:43 =!= matrix: Untrusted devices found in room: Device LHZTGXIINQ for user @wymiller:matrix.wyattjmiller.com is not verified or blacklisted.
2021-05-25 20:06:09 =!= matrix: Ignoring unverified devices.
2021-05-25 20:06:09 &wymiller test
2021-05-25 20:06:44 &wymiller test
2021-05-25 20:06:46 &wymiller test
2021-05-29 12:32:28 -- wymiller has changed the topic for #Memes to "I'll think I'll steal that one... | NSFW"

View File

@ -0,0 +1,3 @@
2021-05-24 21:46:39 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!nhTWzGQrSrzuQwzHBY:matrix.wyattjmiller.com
2021-05-24 21:47:12 -- matrix: wymiller has enabled encryption in this room
2021-05-24 22:02:04 <-- @wymiller:matrix.wyattjmiller.com (None) has left #test

View File

@ -0,0 +1,2 @@
2021-05-29 12:31:43 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!RMpbVwBSPTiSdOCDKY:matrix.wyattjmiller.com
2021-05-29 12:31:44 -- wymiller has changed the topic for #The Lab to "Nothing to see here... "

View File

@ -0,0 +1,8 @@
2021-05-24 13:24:06 --> wymiller (@wymiller:matrix.wyattjmiller.com) has joined matrix.wyattjmiller.!WCnSXGONlIgALndQfP:matrix.wyattjmiller.com
2021-05-24 13:24:06 -- wymiller has changed the topic for #Home to "A place for everyone!"
2021-05-24 21:55:31 -- matrix: wymiller has enabled encryption in this room
2021-05-24 21:56:06 ⚠️ &wymiller hello, this is a test
2021-05-24 21:57:02 ⚠️ &wymiller 😃
2021-05-24 21:57:02 &wymiller <Message redacted by: wymiller>
2021-05-24 21:56:06 &wymiller <Message redacted by: wymiller>
2021-06-02 20:53:52 ⚠️ &wymiller Hello, world! 🌎

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
2021-05-16 15:41:20 Just_Matt Just have a big crowdfunding thing with all the players who'd like evotar research to continue
2021-05-16 15:41:24 Tcorn <a:spinwell:834679365912231987>
2021-05-16 15:41:33 EL2020 <a:spinwell:826266818444394527>
2021-05-16 15:41:41 Creepy Broadly speaking, you can't go bankrupt with immortality tech, can you?
2021-05-16 15:41:43 EL2020 my proudest emote
2021-05-16 15:42:00 Just_Matt Creepy:
2021-05-16 15:42:00 ▎Broadly speaking, you can't go bankrupt with immortality tech, can you?
2021-05-16 15:42:00 Yeah it's sad
2021-05-16 15:42:06 Tcorn Spinwell is objectively the greatest emote ever made
2021-05-16 15:42:11 EL2020 agreed
2021-05-16 15:42:17 Tcorn He's just... so powerful...
2021-05-16 15:42:19 Just_Matt Right, i have to do the last Sidwell fight

View File

@ -0,0 +1 @@
2021-05-16 15:41:30 Insire that link shows you how to wrap the whole thing in a task and get stdout and stderr into strings for further processing

View File

@ -0,0 +1,7 @@
2021-05-16 15:42:07 dpeter99 dpeter99:
2021-05-16 15:42:07 ▎<nested reply>
2021-05-16 15:42:07 ▎did you find out anything in the end?
2021-05-16 15:42:07 Okay i know what caused the problem
2021-05-16 15:42:13 dpeter99 Finnnnaly
2021-05-16 15:42:19 dpeter99 not sure how to fix it yet
2021-05-16 15:42:24 dpeter99 but know the problem

View File

@ -0,0 +1,6 @@
2021-05-16 15:41:13 Sergio lol not a chance in the world 😆
2021-05-16 15:41:20 webczat meh
2021-05-16 15:41:45 Sergio And at this point, really, if you actually need those you're probably doing something wrong
2021-05-16 15:41:55 Sergio Like, in the case of <@721292611004006401>, he's just testing stuff
2021-05-16 15:42:06 webczat unless I am experimenting like above. unless they add ilprojs.
2021-05-16 15:42:23 SingleAccretion Well, we already have those.

View File

@ -0,0 +1,2 @@
2021-05-16 15:40:56 Kára <tg-fedjoin> <andifedge> On irc or matrix I havent any issues to join.
2021-05-16 15:40:56 Kára <tg-fedjoin> <andifedge> Its only @fedora like @Unjuhkijh struggled

View File

@ -0,0 +1 @@
2021-05-16 15:41:20 Vollex So i have successfully installed opencore but I shutdown does not work, it just turns off my keyboard and screens. How can I fix this?

View File

@ -0,0 +1 @@
2021-05-16 15:41:17 metamemelord Thank you so much!

View File

@ -0,0 +1,2 @@
2021-05-16 15:40:57 ieltan :whitefucky:
2021-05-16 15:41:12 ieltan he sounds like a bot

View File

@ -0,0 +1,35 @@
2021-05-16 15:41:10 devins Analice:
2021-05-16 15:41:10 ▎<nested reply>
2021-05-16 15:41:10 ▎??
2021-05-16 15:41:10 what?
2021-05-16 15:41:17 Analice im confused bro
2021-05-16 15:41:22 Analice ok so
2021-05-16 15:41:25 Analice on the 3rd
2021-05-16 15:41:27 Never | Known devins:
2021-05-16 15:41:27 ▎```nix
2021-05-16 15:41:27 ▎# networking.hostName = "nixos"; # Define your hostname.
2021-05-16 15:41:27 ▎ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
2021-05-16 15:41:27 ▎
2021-05-16 15:41:27 ▎ # Set your time zone.
2021-05-16 15:41:27 ▎ # time.timeZone = "Europe/Amsterdam";
2021-05-16 15:41:27 ▎# List packages installed in system profile. To search, run:
2021-05-16 15:41:27 ▎ # $ nix search wget
2021-05-16 15:41:27 ▎ # environment.systemPackages = with pkgs; [
2021-05-16 15:41:27 ▎ # wget vim
2021-05-16 15:41:27 ▎ # firefox
2021-05-16 15:41:27 ▎ # ];
2021-05-16 15:41:27 ▎```
2021-05-16 15:41:27 well i don't use that
2021-05-16 15:41:32 Analice i cloned the repo since i needed the files, right
2021-05-16 15:41:43 Analice ive done edits to said files
2021-05-16 15:41:53 devins <https://github.com/Analice-sudo/Dotfiles> this one?
2021-05-16 15:41:56 Analice how do i update the files on the repo to the on system ones
2021-05-16 15:41:56 Analice yes
2021-05-16 15:42:03 sammyette commit them
2021-05-16 15:42:04 devins git commit; git push
2021-05-16 15:42:06 sammyette and push
2021-05-16 15:42:22 devins Never | Known:
2021-05-16 15:42:22 ▎<nested reply>
2021-05-16 15:42:22 ▎well i don't use that
2021-05-16 15:42:22 wireless isnt enabled?
2021-05-16 15:42:27 sammyette :pepega:

View File

@ -0,0 +1 @@
2021-05-16 15:41:34 caronc Just released a new version of Apprise (https://github.com/caronc/apprise). It now supports 70 notification services! 🎉 🚀 . Just a cool personal milestone (and thought I'd share!) 🙂

View File

@ -0,0 +1,4 @@
2021-05-16 15:41:21 Minn >The following data may be collected but it is not linked to your identity
2021-05-16 15:41:21 >Identifiers
2021-05-16 15:41:22 Minn what
2021-05-16 15:42:17 Magicks yes

14
weechat/lua.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- lua.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

78
weechat/matrix.conf Normal file
View File

@ -0,0 +1,78 @@
#
# weechat -- matrix.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[network]
autoreconnect_delay_growing = 2
autoreconnect_delay_max = 600
debug_buffer = off
debug_category = all
debug_level = error
fetch_backlog_on_pgup = on
lag_min_show = 500
lag_reconnect = 90
lazy_load_room_users = off
max_backlog_sync_events = 10
max_initial_sync_events = 30
max_nicklist_users = 5000
print_unconfirmed_messages = on
read_markers_conditions = "${markers_enabled}"
resending_ignores_devices = on
typing_notice_conditions = "${typing_enabled}"
[look]
bar_item_typing_notice_prefix = "Typing: "
busy_sign = "⏳"
code_block_margin = 2
code_blocks = on
disconnect_sign = "❌"
encrypted_room_sign = "🔐"
encryption_warning_sign = "⚠️ "
human_buffer_names = off
markdown_input = on
max_typing_notice_item_length = 50
new_channel_position = none
pygments_style = "native"
quote_wrap = 67
redactions = strikethrough
server_buffer = merge_with_core
[color]
error_message_bg = default
error_message_fg = darkgray
nick_prefixes = "admin=lightgreen;mod=lightgreen;power=yellow"
quote_bg = default
quote_fg = lightgreen
unconfirmed_message_bg = default
unconfirmed_message_fg = darkgray
untagged_code_bg = default
untagged_code_fg = blue
[server]
matrix_org.autoconnect = off
matrix_org.address = "matrix.org"
matrix_org.port = 443
matrix_org.proxy = ""
matrix_org.ssl_verify = on
matrix_org.username = ""
matrix_org.password = ""
matrix_org.device_name = "Weechat Matrix"
matrix_org.autoreconnect_delay = 10
matrix_org.sso_helper_listening_port = 0
wyattjmiller.autoconnect = on
wyattjmiller.address = "matrix.wyattjmiller.com"
wyattjmiller.port = 443
wyattjmiller.proxy = ""
wyattjmiller.ssl_verify = on
wyattjmiller.username = "wymiller"
wyattjmiller.password = "24pU*gmFpJcqGMF4DHGy"
wyattjmiller.device_name = "Weechat Matrix"
wyattjmiller.autoreconnect_delay = 10
wyattjmiller.sso_helper_listening_port = 0

View File

@ -0,0 +1,2 @@
@wymiller:matrix.wyattjmiller.com TXKANGNDNI matrix-ed25519 KGLDDeAaSEFFC4Q9Zuu2hnJIq1r2GwJNY90y4QCANkk
@wymiller:matrix.wyattjmiller.com JPNMWZPYIT matrix-ed25519 c11Z1Db3MD5KfmDAIjOYwL+vi6ORIH/iIxf+TBi6HUA

View File

@ -0,0 +1 @@
OPEWNFFIWC

14
weechat/perl.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- perl.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

14
weechat/plugins.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- plugins.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[var]
[desc]

View File

@ -0,0 +1 @@
/home/wyatt/source/weechat-discord/target/release/libweecord.so: /home/wyatt/source/weechat-discord/parsing/src/lib.rs /home/wyatt/source/weechat-discord/src/bar_items.rs /home/wyatt/source/weechat-discord/src/buffers.rs /home/wyatt/source/weechat-discord/src/command.rs /home/wyatt/source/weechat-discord/src/config.rs /home/wyatt/source/weechat-discord/src/discord/client.rs /home/wyatt/source/weechat-discord/src/discord/event_handler.rs /home/wyatt/source/weechat-discord/src/discord/formatting.rs /home/wyatt/source/weechat-discord/src/discord/mod.rs /home/wyatt/source/weechat-discord/src/hook.rs /home/wyatt/source/weechat-discord/src/lib.rs /home/wyatt/source/weechat-discord/src/sync.rs /home/wyatt/source/weechat-discord/src/utils.rs /home/wyatt/source/weechat-discord/src/weechat_utils/buffer_manager.rs /home/wyatt/source/weechat-discord/src/weechat_utils/message_manager.rs /home/wyatt/source/weechat-discord/src/weechat_utils/mod.rs /home/wyatt/source/weechat-discord/target/release/build/weechat-sys-6c59183632c3db04/out/bindings.rs build.rs

BIN
weechat/plugins/libweecord.so Executable file

Binary file not shown.

14
weechat/python.conf Normal file
View File

@ -0,0 +1,14 @@
#
# weechat -- python.conf
#
# WARNING: It is NOT recommended to edit this file by hand,
# especially if WeeChat is running.
#
# Use /set or similar command to change settings in WeeChat.
#
# For more info, see: https://weechat.org/doc/quickstart
#
[look]
check_license = off
eval_keep_context = on

View File

@ -0,0 +1 @@
/home/wyatt/.weechat/python/matrix/_weechat.py

710
weechat/python/matrix.py Normal file
View File

@ -0,0 +1,710 @@
# -*- coding: utf-8 -*-
# Weechat Matrix Protocol Script
# Copyright © 2018 Damir Jelić <poljar@termina.org.uk>
#
# 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.
from __future__ import unicode_literals
import os
# See if there is a `venv` directory next to our script, and use that if
# present. This first resolves symlinks, so this also works when we are
# loaded through a symlink (e.g. from autoload).
# See https://virtualenv.pypa.io/en/latest/userguide/#using-virtualenv-without-bin-python
# This does not support pyvenv or the python3 venv module, which do not
# create an activate_this.py: https://stackoverflow.com/questions/27462582
activate_this = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'venv', 'bin', 'activate_this.py')
if os.path.exists(activate_this):
exec(open(activate_this).read(), {'__file__': activate_this})
import socket
import ssl
import textwrap
# pylint: disable=redefined-builtin
from builtins import str
from itertools import chain
# pylint: disable=unused-import
from typing import Any, AnyStr, Deque, Dict, List, Optional, Set, Text, Tuple
import logbook
import json
import OpenSSL.crypto as crypto
from future.utils import bytes_to_native_str as n
from logbook import Logger, StreamHandler
try:
from json.decoder import JSONDecodeError
except ImportError:
JSONDecodeError = ValueError # type: ignore
from nio import RemoteProtocolError, RemoteTransportError, TransportType
from matrix import globals as G
from matrix.bar_items import (
init_bar_items,
matrix_bar_item_buffer_modes,
matrix_bar_item_lag,
matrix_bar_item_name,
matrix_bar_item_plugin,
matrix_bar_nicklist_count,
matrix_bar_typing_notices_cb
)
from matrix.buffer import room_buffer_close_cb, room_buffer_input_cb
# Weechat searches for the registered callbacks in the scope of the main script
# file, import the callbacks here so weechat can find them.
from matrix.commands import (hook_commands, hook_key_bindings, hook_page_up,
matrix_command_buf_clear_cb, matrix_command_cb,
matrix_command_pgup_cb, matrix_invite_command_cb,
matrix_join_command_cb, matrix_kick_command_cb,
matrix_me_command_cb, matrix_part_command_cb,
matrix_redact_command_cb, matrix_topic_command_cb,
matrix_olm_command_cb, matrix_devices_command_cb,
matrix_room_command_cb, matrix_uploads_command_cb,
matrix_upload_command_cb, matrix_send_anyways_cb,
matrix_reply_command_cb,
matrix_cursor_reply_signal_cb)
from matrix.completion import (init_completion, matrix_command_completion_cb,
matrix_debug_completion_cb,
matrix_message_completion_cb,
matrix_olm_device_completion_cb,
matrix_olm_user_completion_cb,
matrix_server_command_completion_cb,
matrix_server_completion_cb,
matrix_user_completion_cb,
matrix_own_devices_completion_cb,
matrix_room_completion_cb)
from matrix.config import (MatrixConfig, config_log_category_cb,
config_log_level_cb, config_server_buffer_cb,
matrix_config_reload_cb, config_pgup_cb)
from matrix.globals import SCRIPT_NAME, SERVERS, W
from matrix.server import (MatrixServer, create_default_server,
matrix_config_server_change_cb,
matrix_config_server_read_cb,
matrix_config_server_write_cb, matrix_timer_cb,
send_cb, matrix_load_users_cb)
from matrix.utf import utf8_decode
from matrix.utils import server_buffer_prnt, server_buffer_set_title
from matrix.uploads import UploadsBuffer, upload_cb
try:
from urllib.parse import urlunparse
except ImportError:
from urlparse import urlunparse
# yapf: disable
WEECHAT_SCRIPT_NAME = SCRIPT_NAME
WEECHAT_SCRIPT_DESCRIPTION = "matrix chat plugin" # type: str
WEECHAT_SCRIPT_AUTHOR = "Damir Jelić <poljar@termina.org.uk>" # type: str
WEECHAT_SCRIPT_VERSION = "0.2.0" # type: str
WEECHAT_SCRIPT_LICENSE = "ISC" # type: str
# yapf: enable
logger = Logger("matrix-cli")
def print_certificate_info(buff, sock, cert):
cert_pem = ssl.DER_cert_to_PEM_cert(sock.getpeercert(True))
x509 = crypto.load_certificate(crypto.FILETYPE_PEM, cert_pem)
public_key = x509.get_pubkey()
key_type = ("RSA" if public_key.type() == crypto.TYPE_RSA else "DSA")
key_size = str(public_key.bits())
sha256_fingerprint = x509.digest(n(b"SHA256"))
sha1_fingerprint = x509.digest(n(b"SHA1"))
signature_algorithm = x509.get_signature_algorithm()
key_info = ("key info: {key_type} key {bits} bits, signed using "
"{algo}").format(
key_type=key_type, bits=key_size,
algo=n(signature_algorithm))
validity_info = (" Begins on: {before}\n"
" Expires on: {after}").format(
before=cert["notBefore"], after=cert["notAfter"])
rdns = chain(*cert["subject"])
subject = ", ".join(["{}={}".format(name, value) for name, value in rdns])
rdns = chain(*cert["issuer"])
issuer = ", ".join(["{}={}".format(name, value) for name, value in rdns])
subject = "subject: {sub}, serial number {serial}".format(
sub=subject, serial=cert["serialNumber"])
issuer = "issuer: {issuer}".format(issuer=issuer)
fingerprints = (" SHA1: {}\n"
" SHA256: {}").format(n(sha1_fingerprint),
n(sha256_fingerprint))
wrapper = textwrap.TextWrapper(
initial_indent=" - ", subsequent_indent=" ")
message = ("{prefix}matrix: received certificate\n"
" - certificate info:\n"
"{subject}\n"
"{issuer}\n"
"{key_info}\n"
" - period of validity:\n{validity_info}\n"
" - fingerprints:\n{fingerprints}").format(
prefix=W.prefix("network"),
subject=wrapper.fill(subject),
issuer=wrapper.fill(issuer),
key_info=wrapper.fill(key_info),
validity_info=validity_info,
fingerprints=fingerprints)
W.prnt(buff, message)
def wrap_socket(server, file_descriptor):
# type: (MatrixServer, int) -> None
sock = None # type: socket.socket
temp_socket = socket.fromfd(file_descriptor, socket.AF_INET,
socket.SOCK_STREAM)
# fromfd() duplicates the file descriptor, we can close the one we got from
# weechat now since we use the one from our socket when calling hook_fd()
os.close(file_descriptor)
# For python 2.7 wrap_socket() doesn't work with sockets created from an
# file descriptor because fromfd() doesn't return a wrapped socket, the bug
# was fixed for python 3, more info: https://bugs.python.org/issue13942
# pylint: disable=protected-access,unidiomatic-typecheck
if type(temp_socket) == socket._socket.socket:
# pylint: disable=no-member
sock = socket._socketobject(_sock=temp_socket)
else:
sock = temp_socket
# fromfd() duplicates the file descriptor but doesn't retain it's blocking
# non-blocking attribute, so mark the socket as non-blocking even though
# weechat already did that for us
sock.setblocking(False)
message = "{prefix}matrix: Doing SSL handshake...".format(
prefix=W.prefix("network"))
W.prnt(server.server_buffer, message)
ssl_socket = server.ssl_context.wrap_socket(
sock, do_handshake_on_connect=False,
server_hostname=server.address) # type: ssl.SSLSocket
server.socket = ssl_socket
try_ssl_handshake(server)
@utf8_decode
def ssl_fd_cb(server_name, file_descriptor):
server = SERVERS[server_name]
if server.ssl_hook:
W.unhook(server.ssl_hook)
server.ssl_hook = None
try_ssl_handshake(server)
return W.WEECHAT_RC_OK
def try_ssl_handshake(server):
sock = server.socket
while True:
try:
sock.do_handshake()
cipher = sock.cipher()
cipher_message = ("{prefix}matrix: Connected using {tls}, and "
"{bit} bit {cipher} cipher suite.").format(
prefix=W.prefix("network"),
tls=cipher[1],
bit=cipher[2],
cipher=cipher[0])
W.prnt(server.server_buffer, cipher_message)
cert = sock.getpeercert()
if cert:
print_certificate_info(server.server_buffer, sock, cert)
finalize_connection(server)
return True
except ssl.SSLWantReadError:
hook = W.hook_fd(server.socket.fileno(), 1, 0, 0, "ssl_fd_cb",
server.name)
server.ssl_hook = hook
return False
except ssl.SSLWantWriteError:
hook = W.hook_fd(server.socket.fileno(), 0, 1, 0, "ssl_fd_cb",
server.name)
server.ssl_hook = hook
return False
except (ssl.SSLError, ssl.CertificateError, socket.error) as error:
try:
str_error = error.reason if error.reason else "Unknown error"
except AttributeError:
str_error = str(error)
message = ("{prefix}Error while doing SSL handshake"
": {error}").format(
prefix=W.prefix("network"), error=str_error)
server_buffer_prnt(server, message)
server_buffer_prnt(
server, ("{prefix}matrix: disconnecting from server..."
).format(prefix=W.prefix("network")))
server.disconnect()
return False
@utf8_decode
def receive_cb(server_name, file_descriptor):
server = SERVERS[server_name]
while True:
try:
data = server.socket.recv(4096)
except ssl.SSLWantReadError:
break
except socket.error as error:
errno = "error" + str(error.errno) + " " if error.errno else ""
str_error = error.strerror if error.strerror else "Unknown error"
str_error = errno + str_error
message = ("{prefix}Error while reading from "
"socket: {error}").format(
prefix=W.prefix("network"), error=str_error)
server_buffer_prnt(server, message)
server_buffer_prnt(
server, ("{prefix}matrix: disconnecting from server..."
).format(prefix=W.prefix("network")))
server.disconnect()
return W.WEECHAT_RC_OK
if not data:
server_buffer_prnt(
server,
"{prefix}matrix: Error while reading from socket".format(
prefix=W.prefix("network")))
server_buffer_prnt(
server, ("{prefix}matrix: disconnecting from server..."
).format(prefix=W.prefix("network")))
server.disconnect()
break
try:
server.client.receive(data)
except (RemoteTransportError, RemoteProtocolError) as e:
server.error(str(e))
server.disconnect()
break
response = server.client.next_response()
# Check if we need to send some data back
data_to_send = server.client.data_to_send()
if data_to_send:
server.send(data_to_send)
if response:
server.handle_response(response)
break
return W.WEECHAT_RC_OK
def finalize_connection(server):
hook = W.hook_fd(
server.socket.fileno(),
1,
0,
0,
"receive_cb",
server.name
)
server.fd_hook = hook
server.connected = True
server.connecting = False
server.reconnect_delay = 0
negotiated_protocol = (server.socket.selected_alpn_protocol() or
server.socket.selected_npn_protocol())
if negotiated_protocol == "h2":
server.transport_type = TransportType.HTTP2
else:
server.transport_type = TransportType.HTTP
data = server.client.connect(server.transport_type)
server.send(data)
server.login_info()
@utf8_decode
def sso_login_cb(server_name, command, return_code, out, err):
try:
server = SERVERS[server_name]
except KeyError:
message = (
"{}{}: SSO callback ran, but no server for it was found.").format(
W.prefix("error"), SCRIPT_NAME)
W.prnt("", message)
if return_code == W.WEECHAT_HOOK_PROCESS_ERROR:
server.error("Error while running the matrix_sso_helper. Please "
"make sure that the helper script is executable and can "
"be found in your PATH.")
server.sso_hook = None
server.disconnect()
return W.WEECHAT_RC_OK
# The child process exited mark the hook as done.
if return_code == 0:
server.sso_hook = None
if err != "":
W.prnt("", "stderr: %s" % err)
if out == "":
return W.WEECHAT_RC_OK
try:
ret = json.loads(out)
msgtype = ret.get("type")
if msgtype == "redirectUrl":
redirect_url = "http://{}:{}".format(ret["host"], ret["port"])
login_url = (
"{}/_matrix/client/r0/login/sso/redirect?redirectUrl={}"
).format(server.homeserver.geturl(), redirect_url)
server.info_highlight(
"The server requested a single sign-on, please open "
"this URL in your browser. Note that the "
"browser needs to run on the same host as Weechat.")
server.info_highlight(login_url)
message = {
"server": server.name,
"url": login_url
}
W.hook_hsignal_send("matrix_sso_login", message)
elif msgtype == "token":
token = ret["loginToken"]
server.login(token=token)
elif msgtype == "error":
server.error("Error in the SSO helper {}".format(ret["message"]))
else:
server.error("Unknown SSO login message received from child "
"process.")
except JSONDecodeError:
server.error(
"Error decoding SSO login message from child process: {}".format(
out
))
return W.WEECHAT_RC_OK
@utf8_decode
def connect_cb(data, status, gnutls_rc, sock, error, ip_address):
# pylint: disable=too-many-arguments,too-many-branches
status_value = int(status) # type: int
server = SERVERS[data]
if status_value == W.WEECHAT_HOOK_CONNECT_OK:
file_descriptor = int(sock) # type: int
server.numeric_address = ip_address
server_buffer_set_title(server)
wrap_socket(server, file_descriptor)
return W.WEECHAT_RC_OK
elif status_value == W.WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND:
server.error('{address} not found'.format(address=ip_address))
elif status_value == W.WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND:
server.error('IP address not found')
elif status_value == W.WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED:
server.error('Connection refused')
elif status_value == W.WEECHAT_HOOK_CONNECT_PROXY_ERROR:
server.error('Proxy fails to establish connection to server')
elif status_value == W.WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR:
server.error('Unable to set local hostname')
elif status_value == W.WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR:
server.error('TLS init error')
elif status_value == W.WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR:
server.error('TLS Handshake failed')
elif status_value == W.WEECHAT_HOOK_CONNECT_MEMORY_ERROR:
server.error('Not enough memory')
elif status_value == W.WEECHAT_HOOK_CONNECT_TIMEOUT:
server.error('Timeout')
elif status_value == W.WEECHAT_HOOK_CONNECT_SOCKET_ERROR:
server.error('Unable to create socket')
else:
server.error('Unexpected error: {status}'.format(status=status_value))
server.disconnect(reconnect=True)
return W.WEECHAT_RC_OK
@utf8_decode
def room_close_cb(data, buffer):
W.prnt("",
"Buffer '%s' will be closed!" % W.buffer_get_string(buffer, "name"))
return W.WEECHAT_RC_OK
@utf8_decode
def matrix_unload_cb():
for server in SERVERS.values():
server.config.free()
G.CONFIG.free()
return W.WEECHAT_RC_OK
def autoconnect(servers):
for server in servers.values():
if server.config.autoconnect:
server.connect()
def debug_buffer_close_cb(data, buffer):
G.CONFIG.debug_buffer = ""
return W.WEECHAT_RC_OK
def server_buffer_cb(server_name, buffer, input_data):
message = ("{}{}: this buffer is not a room buffer!").format(
W.prefix("error"), SCRIPT_NAME)
W.prnt(buffer, message)
return W.WEECHAT_RC_OK
class WeechatHandler(StreamHandler):
def __init__(self, level=logbook.NOTSET, format_string=None, filter=None,
bubble=False):
StreamHandler.__init__(
self,
object(),
level,
format_string,
None,
filter,
bubble
)
def write(self, item):
buf = ""
if G.CONFIG.network.debug_buffer:
if not G.CONFIG.debug_buffer:
G.CONFIG.debug_buffer = W.buffer_new(
"Matrix Debug", "", "", "debug_buffer_close_cb", "")
buf = G.CONFIG.debug_buffer
W.prnt(buf, item)
def buffer_switch_cb(_, _signal, buffer_ptr):
"""Do some buffer operations when we switch buffers.
This function is called every time we switch a buffer. The pointer of
the new buffer is given to us by weechat.
If it is one of our room buffers we check if the members for the room
aren't fetched and fetch them now if they aren't.
Read receipts are send out from here as well.
"""
for server in SERVERS.values():
if buffer_ptr == server.server_buffer:
return W.WEECHAT_RC_OK
if buffer_ptr not in server.buffers.values():
continue
room_buffer = server.find_room_from_ptr(buffer_ptr)
if not room_buffer:
continue
last_event_id = room_buffer.last_event_id
if room_buffer.should_send_read_marker:
# A buffer may not have any events, in that case no event id is
# here returned
if last_event_id:
server.room_send_read_marker(
room_buffer.room.room_id, last_event_id)
room_buffer.last_read_event = last_event_id
if not room_buffer.members_fetched:
room_id = room_buffer.room.room_id
server.get_joined_members(room_id)
# The buffer is empty and we are seeing it for the first time.
# Let us fetch some messages from the room history so it doesn't feel so
# empty.
if room_buffer.first_view and room_buffer.weechat_buffer.num_lines < 10:
# TODO we may want to fetch 10 - num_lines messages here for
# consistency reasons.
server.room_get_messages(room_buffer.room.room_id)
break
return W.WEECHAT_RC_OK
def typing_notification_cb(data, signal, buffer_ptr):
"""Send out typing notifications if the user is typing.
This function is called every time the input text is changed.
It checks if we are on a buffer we own, and if we are sends out a typing
notification if the room is configured to send them out.
"""
for server in SERVERS.values():
room_buffer = server.find_room_from_ptr(buffer_ptr)
if room_buffer:
server.room_send_typing_notice(room_buffer)
return W.WEECHAT_RC_OK
if buffer_ptr == server.server_buffer:
return W.WEECHAT_RC_OK
return W.WEECHAT_RC_OK
def buffer_command_cb(data, _, command):
"""Override the buffer command to allow switching buffers by short name."""
command = command[7:].strip()
buffer_subcommands = ["list", "add", "clear", "move", "swap", "cycle",
"merge", "unmerge", "hide", "unhide", "renumber",
"close", "notify", "localvar", "set", "get"]
if not command:
return W.WEECHAT_RC_OK
command_words = command.split()
if len(command_words) >= 1:
if command_words[0] in buffer_subcommands:
return W.WEECHAT_RC_OK
elif command_words[0].startswith("*"):
return W.WEECHAT_RC_OK
try:
int(command_words[0])
return W.WEECHAT_RC_OK
except ValueError:
pass
room_buffers = []
for server in SERVERS.values():
room_buffers.extend(server.room_buffers.values())
sorted_buffers = sorted(
room_buffers,
key=lambda b: b.weechat_buffer.number
)
for room_buffer in sorted_buffers:
buffer = room_buffer.weechat_buffer
if command in buffer.short_name:
displayed = W.current_buffer() == buffer._ptr
if displayed:
continue
W.buffer_set(buffer._ptr, 'display', '1')
return W.WEECHAT_RC_OK_EAT
return W.WEECHAT_RC_OK
if __name__ == "__main__":
if W.register(WEECHAT_SCRIPT_NAME, WEECHAT_SCRIPT_AUTHOR,
WEECHAT_SCRIPT_VERSION, WEECHAT_SCRIPT_LICENSE,
WEECHAT_SCRIPT_DESCRIPTION, 'matrix_unload_cb', ''):
if not W.mkdir_home("matrix", 0o700):
message = ("{prefix}matrix: Error creating session "
"directory").format(prefix=W.prefix("error"))
W.prnt("", message)
handler = WeechatHandler()
handler.format_string = "{record.channel}: {record.message}"
handler.push_application()
# TODO if this fails we should abort and unload the script.
G.CONFIG = MatrixConfig()
G.CONFIG.read()
hook_commands()
hook_key_bindings()
init_bar_items()
init_completion()
W.hook_command_run("/buffer", "buffer_command_cb", "")
W.hook_signal("buffer_switch", "buffer_switch_cb", "")
W.hook_signal("input_text_changed", "typing_notification_cb", "")
if not SERVERS:
create_default_server(G.CONFIG)
autoconnect(SERVERS)

View File

Some files were not shown because too many files have changed in this diff Show More