├── aerc ├── .gitignore ├── binds.conf └── aerc.conf ├── fish ├── fishfile ├── completions │ └── fisher.fish ├── .gitignore ├── functions │ ├── s.fish │ └── fish_prompt.fish ├── conf.d │ ├── fzf.fish │ └── fzf_key_bindings.fish └── fish_variables ├── nvim ├── .gitignore └── init.vim ├── scripts ├── .gitignore ├── requirements.txt ├── audio.sh ├── system-sleep-led-strip.sh ├── screenshot.sh ├── focus_window.py ├── layout.py ├── template.tex └── invoice.py ├── Lightcord_BD ├── .gitignore └── themes │ └── DiscordNord.theme.css ├── weechat ├── .gitignore ├── fifo.conf ├── guile.conf ├── lua.conf ├── perl.conf ├── ruby.conf ├── tcl.conf ├── python.conf ├── charset.conf ├── exec.conf ├── logger.conf ├── spell.conf ├── alias.conf ├── xfer.conf ├── buflist.conf ├── relay.conf ├── script.conf ├── matrix.conf ├── trigger.conf ├── fset.conf ├── irc.conf ├── plugins.conf └── weechat.conf ├── systemd └── user │ └── default.target.wants │ └── mpd.service ├── img ├── banner.png └── comms.png ├── sway ├── borders │ ├── focused.png │ ├── urgent.png │ ├── unfocused.png │ └── focused_inactive.png ├── wallpapers │ ├── crystal.kra │ └── crystal.png └── config ├── wofi ├── config └── style.css ├── dijo └── config.toml ├── ncmpcpp └── config ├── .gitignore ├── cava └── config ├── neofetch └── config.conf ├── wal └── colorschemes │ └── dark │ └── nord.json ├── mako └── config ├── mpd └── mpd.conf ├── calcurse ├── conf └── keys ├── waybar ├── style.css └── config ├── alacritty └── alacritty.yml ├── LICENSE ├── dircolors ├── README.md └── amfora └── config.toml /aerc/.gitignore: -------------------------------------------------------------------------------- 1 | accounts.conf 2 | -------------------------------------------------------------------------------- /fish/fishfile: -------------------------------------------------------------------------------- 1 | jethrokuan/fzf 2 | -------------------------------------------------------------------------------- /nvim/.gitignore: -------------------------------------------------------------------------------- 1 | .netrwhist 2 | -------------------------------------------------------------------------------- /scripts/.gitignore: -------------------------------------------------------------------------------- 1 | startup.sh 2 | env/ 3 | -------------------------------------------------------------------------------- /fish/completions/fisher.fish: -------------------------------------------------------------------------------- 1 | fisher complete 2 | -------------------------------------------------------------------------------- /Lightcord_BD/.gitignore: -------------------------------------------------------------------------------- 1 | bdstorage.json 2 | plugins/ 3 | -------------------------------------------------------------------------------- /fish/.gitignore: -------------------------------------------------------------------------------- 1 | functions/fisher.fish 2 | functions/__* 3 | -------------------------------------------------------------------------------- /weechat/.gitignore: -------------------------------------------------------------------------------- 1 | weechat.log 2 | sec.conf 3 | weemoji.json 4 | */ 5 | -------------------------------------------------------------------------------- /systemd/user/default.target.wants/mpd.service: -------------------------------------------------------------------------------- 1 | /usr/lib/systemd/user/mpd.service -------------------------------------------------------------------------------- /fish/functions/s.fish: -------------------------------------------------------------------------------- 1 | function s 2 | source env/bin/activate.fish 3 | end 4 | -------------------------------------------------------------------------------- /img/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/img/banner.png -------------------------------------------------------------------------------- /img/comms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/img/comms.png -------------------------------------------------------------------------------- /scripts/requirements.txt: -------------------------------------------------------------------------------- 1 | i3ipc==2.2.1 2 | python-xlib==0.27 3 | six==1.15.0 4 | -------------------------------------------------------------------------------- /sway/borders/focused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/borders/focused.png -------------------------------------------------------------------------------- /sway/borders/urgent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/borders/urgent.png -------------------------------------------------------------------------------- /sway/borders/unfocused.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/borders/unfocused.png -------------------------------------------------------------------------------- /sway/wallpapers/crystal.kra: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/wallpapers/crystal.kra -------------------------------------------------------------------------------- /sway/wallpapers/crystal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/wallpapers/crystal.png -------------------------------------------------------------------------------- /sway/borders/focused_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fluix-dev/dotfiles/HEAD/sway/borders/focused_inactive.png -------------------------------------------------------------------------------- /wofi/config: -------------------------------------------------------------------------------- 1 | mode=run 2 | insensitive=true 3 | prompt= 4 | width=300 5 | height=180 6 | term=alacritty 7 | hide_scroll=true 8 | location=2 9 | yoffset=50 10 | -------------------------------------------------------------------------------- /dijo/config.toml: -------------------------------------------------------------------------------- 1 | [look] 2 | true_chr = "·" 3 | false_chr = "·" 4 | future_chr = "·" 5 | 6 | [colors] 7 | reached = "cyan" 8 | todo = "magenta" 9 | inactive = "light black" 10 | -------------------------------------------------------------------------------- /ncmpcpp/config: -------------------------------------------------------------------------------- 1 | visualizer_fifo_path = "/tmp/mpd.fifo" 2 | visualizer_output_name = "my_fifo" 3 | visualizer_sync_interval = "30" 4 | visualizer_in_stereo = "yes" 5 | visualizer_type = "spectrum" 6 | visualizer_look = "●●" 7 | visualizer_color = 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 8 | -------------------------------------------------------------------------------- /scripts/audio.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Script to change the volume and play an audible tone. 5 | # 6 | VOL=$1 7 | 8 | amixer -q sset Master $VOL 9 | if [ ${VOL: -1} == "+" ]; then 10 | play -nq -t pulseaudio synth 0.05 sin 440 gain -20 11 | else 12 | play -nq -t pulseaudio synth 0.05 sin 380 gain -20 13 | fi 14 | -------------------------------------------------------------------------------- /scripts/system-sleep-led-strip.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Script that runs on suspend and resume which changes the colour of LED strip. 5 | # The colours are set with [r, b, g] 6 | # 7 | if [ "${1}" == "pre" ]; then 8 | echo -n "[0, 0, 0]" > /dev/ttyACM0 9 | elif [ "${1}" == "post" ]; then 10 | echo -n "[255, 0, 64]" > /dev/ttyACM0 11 | fi 12 | -------------------------------------------------------------------------------- /weechat/fifo.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- fifo.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [file] 13 | enabled = on 14 | path = "%h/weechat_fifo" 15 | -------------------------------------------------------------------------------- /weechat/guile.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- guile.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/lua.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- lua.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/perl.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- perl.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/ruby.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- ruby.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/tcl.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- tcl.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/python.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- python.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | check_license = off 14 | eval_keep_context = on 15 | -------------------------------------------------------------------------------- /weechat/charset.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- charset.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [default] 13 | decode = "iso-8859-1" 14 | encode = "" 15 | 16 | [decode] 17 | 18 | [encode] 19 | -------------------------------------------------------------------------------- /weechat/exec.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- exec.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [command] 13 | default_options = "" 14 | purge_delay = 0 15 | shell = "${env:SHELL}" 16 | 17 | [color] 18 | flag_finished = lightred 19 | flag_running = lightgreen 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cef_user_data/ 2 | chromium/ 3 | configstore/ 4 | Electron/ 5 | GIMP/ 6 | htop/htoprc 7 | Hacknet/ 8 | inkscape/ 9 | keybase/ 10 | Keybase/ 11 | libreoffice/ 12 | lightcord/ 13 | Lightcord/ 14 | mapeditor.org/ 15 | Microsoft/ 16 | pulse/ 17 | RadareOrg/ 18 | Riot/ 19 | teams/ 20 | unity3d/ 21 | vlc/ 22 | wireshark/ 23 | 24 | jd-gui.cfg 25 | kritadisplayrc 26 | kritarc 27 | mimeapps.list 28 | monitors.xml 29 | pavucontrol.ini 30 | QtProject.conf 31 | Trolltech.conf 32 | user-dirs.* 33 | -------------------------------------------------------------------------------- /cava/config: -------------------------------------------------------------------------------- 1 | [general] 2 | mode = normal 3 | sensitivity = 450 4 | framerate = 60 5 | autosens = 1 6 | lower_cutoff_freq = 50 7 | higher_cutoff_freq = 10000 8 | 9 | [output] 10 | method = ncurses 11 | channels = stereo 12 | 13 | [color] 14 | gradient = 1 15 | gradient_count = 4 16 | gradient_color_1 = '#8fbcbb' 17 | gradient_color_2 = '#88c0d0' 18 | gradient_color_3 = '#81a1c1' 19 | gradient_color_4 = '#5e81ac' 20 | 21 | [smoothing] 22 | integral = 90 23 | monstercat = 1 24 | waves = 0 25 | gravity = 150 26 | -------------------------------------------------------------------------------- /neofetch/config.conf: -------------------------------------------------------------------------------- 1 | # See this wiki page for more info: 2 | # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info 3 | print_info() { 4 | info title 5 | info underline 6 | 7 | info "OS" distro 8 | info "Host" model 9 | info "Kernel" kernel 10 | info "Uptime" uptime 11 | info "Packages" packages 12 | info "Shell" shell 13 | info "Resolution" resolution 14 | info "DE" de 15 | info "WM" wm 16 | info "WM Theme" wm_theme 17 | info "Theme" theme 18 | info "Icons" icons 19 | info "Terminal" term 20 | info "Terminal Font" term_font 21 | info "CPU" cpu 22 | info "GPU" gpu 23 | info "Memory" memory 24 | 25 | info cols 26 | } 27 | -------------------------------------------------------------------------------- /wal/colorschemes/dark/nord.json: -------------------------------------------------------------------------------- 1 | { 2 | "special":{ 3 | "foreground": "#eceff4", 4 | "foreground_bold": "#eceff4", 5 | "cursor": "#e5e9f0", 6 | "background": "#2e3440" 7 | }, 8 | "colors": { 9 | "color0": "#4c566a", 10 | "color1": "#bf616a", 11 | "color2": "#a3be8c", 12 | "color3": "#ebcb8b", 13 | "color4": "#d08770", 14 | "color5": "#b48ead", 15 | "color6": "#88c0d0", 16 | "color7": "#e5e9f0", 17 | "color8": "#4c566a", 18 | "color9": "#bf616a", 19 | "color10": "#a3be8c", 20 | "color11": "#ebcb8b", 21 | "color12": "#d08770", 22 | "color13": "#b48ead", 23 | "color14": "#88c0d0", 24 | "color15": "#e5e9f0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /scripts/screenshot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # 4 | # Script that takes a screenshot of: 5 | # "window" - The active window, including borders 6 | # "select" - A selection the user makes 7 | # Placing it into the ~/Screenshots/ directory and into the clipboard 8 | 9 | TYPE=$1 10 | 11 | mkdir -p ~/Screenshots 12 | if [ $1 == "window" ]; then 13 | SNIP_DIMENSIONS=$(swaymsg -t get_tree | jq -r '.. | select(.focused?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"') 14 | elif [ $1 == "select" ]; then 15 | SNIP_DIMENSIONS=$(slurp) 16 | fi 17 | 18 | if [ "$SNIP_DIMENSIONS" != "selection cancelled" ]; then 19 | grim -g "$SNIP_DIMENSIONS" - | wl-copy -t image/png 20 | wl-paste > ~/Screenshots/screenshot_$(date +'%Y%m%d_%H%M%S.png') 21 | fi 22 | -------------------------------------------------------------------------------- /fish/conf.d/fzf.fish: -------------------------------------------------------------------------------- 1 | set -q FZF_TMUX_HEIGHT; or set -U FZF_TMUX_HEIGHT "40%" 2 | set -q FZF_DEFAULT_OPTS; or set -U FZF_DEFAULT_OPTS "--height $FZF_TMUX_HEIGHT" 3 | set -q FZF_LEGACY_KEYBINDINGS; or set -U FZF_LEGACY_KEYBINDINGS 1 4 | set -q FZF_DISABLE_KEYBINDINGS; or set -U FZF_DISABLE_KEYBINDINGS 0 5 | set -q FZF_PREVIEW_FILE_CMD; or set -U FZF_PREVIEW_FILE_CMD "head -n 10" 6 | set -q FZF_PREVIEW_DIR_CMD; or set -U FZF_PREVIEW_DIR_CMD "ls" 7 | 8 | function fzf_uninstall -e fzf_uninstall 9 | # disabled until we figure out a sensible way to ensure user overrides 10 | # are not erased 11 | # set -l _vars (set | command grep -E "^FZF.*\$" | command awk '{print $1;}') 12 | # for var in $_vars 13 | # eval (set -e $var) 14 | # end 15 | end 16 | -------------------------------------------------------------------------------- /weechat/logger.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- logger.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | backlog = 20 14 | backlog_conditions = "" 15 | 16 | [color] 17 | backlog_end = default 18 | backlog_line = default 19 | 20 | [file] 21 | auto_log = on 22 | color_lines = off 23 | flush_delay = 120 24 | fsync = off 25 | info_lines = off 26 | mask = "$plugin.$name.weechatlog" 27 | name_lower_case = on 28 | nick_prefix = "" 29 | nick_suffix = "" 30 | path = "%h/logs/" 31 | replacement_char = "_" 32 | time_format = "%Y-%m-%d %H:%M:%S" 33 | 34 | [level] 35 | 36 | [mask] 37 | -------------------------------------------------------------------------------- /weechat/spell.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- spell.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [color] 13 | misspelled = lightred 14 | suggestion = default 15 | suggestion_delimiter_dict = cyan 16 | suggestion_delimiter_word = cyan 17 | 18 | [check] 19 | commands = "away,command,cycle,kick,kickban,me,msg,notice,part,query,quit,topic" 20 | default_dict = "" 21 | during_search = off 22 | enabled = off 23 | real_time = off 24 | suggestions = -1 25 | word_min_length = 2 26 | 27 | [dict] 28 | 29 | [look] 30 | suggestion_delimiter_dict = " / " 31 | suggestion_delimiter_word = "," 32 | 33 | [option] 34 | -------------------------------------------------------------------------------- /mako/config: -------------------------------------------------------------------------------- 1 | # Take a look at the mako manpage with the command: 2 | # man 5 mako 3 | # To view all configuration options. 4 | 5 | font=Cozette 11 6 | format=%a ⏵ %s\n%b 7 | sort=-time 8 | output=DP-2 9 | layer=overlay 10 | anchor=bottom-center 11 | background-color=#2e3440 12 | width=300 13 | height=110 14 | margin=5 15 | padding=0,5,10 16 | border-size=2 17 | border-color=#88c0d0 18 | border-radius=15 19 | icons=0 20 | max-icon-size=64 21 | default-timeout=5000 22 | ignore-timeout=1 23 | 24 | [urgency=normal] 25 | border-color=#d08770 26 | 27 | [urgency=high] 28 | border-color=#bf616a 29 | default-timeout=0 30 | 31 | [app-name=lightcord] 32 | border-color=#88c0d0 33 | 34 | [summary~="log-.*"] 35 | border-color=#a3be8c 36 | 37 | [app-name=lightcord summary~="(.*(^| )orz|ORZ|sto|STO|otl|OTL( |$).*)"] 38 | invisible=1 39 | -------------------------------------------------------------------------------- /wofi/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: Cozette; 3 | color: #e5e9f0; 4 | } 5 | 6 | window { 7 | background-color: #2e3440; 8 | border: 2px solid #88c0d0; 9 | border-radius: 15px; 10 | } 11 | 12 | #outer-box { 13 | margin-bottom: 12px; 14 | } 15 | 16 | #input { 17 | border: none; 18 | background-color: #2e3440; 19 | margin: 7px; 20 | box-shadow: none; /* Remove blue "border" */ 21 | } 22 | 23 | #inner-box { 24 | background-color: #2e3440; 25 | margin: 7px; 26 | margin-top: 0; 27 | } 28 | 29 | #entry { 30 | padding-left: 5px; 31 | border: none; 32 | margin-left: -5px; 33 | margin-right: -5px; 34 | outline: none; 35 | } 36 | 37 | #entry:selected { 38 | background-color: #44475a; 39 | } 40 | 41 | #text { 42 | margin: 2px; 43 | } 44 | 45 | /* Hide backspace icon */ 46 | .right { 47 | color: transparent; 48 | } 49 | -------------------------------------------------------------------------------- /mpd/mpd.conf: -------------------------------------------------------------------------------- 1 | # An example configuration file for MPD 2 | # See the mpd.conf man page for a more detailed description of each parameter. 3 | 4 | ######################## REQUIRED PATHS ######################## 5 | # You can put symlinks in here, if you like. Make sure that 6 | # the user that mpd runs as (see the 'user' config parameter) 7 | # can read the files in this directory. 8 | user "main" 9 | music_directory "~/Music" 10 | playlist_directory "~/.mpd/playlists" 11 | db_file "~/.mpd/mpd.db" 12 | log_file "~/.mpd/mpd.log" 13 | pid_file "~/.mpd/mpd.pid" 14 | ################################################################ 15 | 16 | audio_output { 17 | type "alsa" 18 | name "Alsa for audio sound card" 19 | mixer_type "software" 20 | } 21 | 22 | audio_output { 23 | type "fifo" 24 | name "my_fifo" 25 | path "/tmp/mpd.fifo" 26 | format "44100:16:2" 27 | } 28 | -------------------------------------------------------------------------------- /calcurse/conf: -------------------------------------------------------------------------------- 1 | appearance.calendarview=monthly 2 | appearance.compactpanels=no 3 | appearance.defaultpanel=calendar 4 | appearance.layout=1 5 | appearance.headerline=yes 6 | appearance.eventseparator=yes 7 | appearance.dayseparator=yes 8 | appearance.emptyline=yes 9 | appearance.emptyday=-- 10 | appearance.notifybar=yes 11 | appearance.sidebarwidth=0 12 | appearance.theme=blue on default 13 | appearance.todoview=hide-completed 14 | appearance.headingpos=right-justified 15 | daemon.enable=no 16 | daemon.log=no 17 | format.inputdate=1 18 | format.notifydate=%a %F 19 | format.notifytime=%T 20 | format.outputdate=%D 21 | format.dayheading=%B %e, %Y 22 | general.autogc=no 23 | general.autosave=yes 24 | general.confirmdelete=yes 25 | general.confirmquit=yes 26 | general.firstdayofweek=monday 27 | general.multipledays=yes 28 | general.periodicsave=0 29 | general.systemevents=yes 30 | general.systemdialogs=yes 31 | notification.command=printf '\a' 32 | notification.notifyall=flagged-only 33 | notification.warning=300 34 | -------------------------------------------------------------------------------- /scripts/focus_window.py: -------------------------------------------------------------------------------- 1 | #!/bin/env python3 2 | import i3ipc 3 | import subprocess 4 | 5 | ipc = i3ipc.Connection() 6 | 7 | TRUNCATE = 38 8 | DMENU = "wofi --dmenu" 9 | 10 | windows = [] 11 | for window in ipc.get_tree(): 12 | if not window.app_id: 13 | continue 14 | if window.app_id == "floating": 15 | name = "[%s] * (%s)" % (window.workspace().name, window.name) 16 | elif window.app_id: 17 | name = "[%s] %s (%s)" % (window.workspace().name, window.app_id, window.name) 18 | else: 19 | name = "[%s] %s" % (window.workspace().name, window.name) 20 | windows.append((window, name[:TRUNCATE])) 21 | 22 | options = '\n'.join([w[1] for w in windows]) 23 | proc = subprocess.run('echo "%s" | %s' % (options, DMENU), shell=True, stdout=subprocess.PIPE) 24 | 25 | # Get dmenu output 26 | selection = proc.stdout.decode().strip() 27 | if selection == "\n": 28 | exit() 29 | 30 | for window in windows: 31 | if window[1] == selection: 32 | window[0].command("focus") 33 | exit() 34 | -------------------------------------------------------------------------------- /waybar/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | border: 0; 3 | font-family: Cozette; 4 | font-size: 12px; 5 | min-height: 0; 6 | } 7 | 8 | window#waybar { 9 | background: transparent; 10 | color: #eceff4; 11 | } 12 | 13 | window#waybar:first-child > box { 14 | margin-top: 11px; 15 | padding: 8px 4px 4px 4px; 16 | border-radius: 20px 20px 0px 0px; 17 | background-color: #2e3440; 18 | border: 2px solid #88c0d0; 19 | border-bottom: 0; 20 | } 21 | 22 | #workspaces button { 23 | padding: 0 5px; 24 | background: transparent; 25 | color: #4c566a; 26 | } 27 | 28 | #workspaces button:hover { 29 | box-shadow: inherit; 30 | text-shadow: inherit; 31 | color: #d8dee9; 32 | } 33 | 34 | #workspaces button.focused { 35 | color: #88c0d0; 36 | } 37 | 38 | #custom-d, #clock, #pulseaudio { 39 | padding: 0 7px; 40 | margin: 2px 0px; 41 | } 42 | 43 | #mpd { 44 | margin: 0; 45 | } 46 | 47 | #pulseaudio { 48 | margin-right: -7px; 49 | } 50 | 51 | #custom-d { 52 | color: #4c566a; 53 | } 54 | -------------------------------------------------------------------------------- /fish/functions/fish_prompt.fish: -------------------------------------------------------------------------------- 1 | function username 2 | printf "%s%s" (set_color -o blue) $USER 3 | end 4 | 5 | 6 | function hostname 7 | printf "%sat%s %s" (set_color white) (set_color red) (prompt_hostname) 8 | end 9 | 10 | function path 11 | printf "%sin%s %s" (set_color white) (set_color yellow) (pwd | string replace "$HOME" '~') 12 | end 13 | 14 | function venv 15 | if set -q VIRTUAL_ENV 16 | printf "%svia%s %s" (set_color white) (set_color magenta) (basename "$VIRTUAL_ENV") 17 | else 18 | printf "" 19 | end 20 | end 21 | 22 | function _branch 23 | command git branch --show-current 2> /dev/null 24 | end 25 | 26 | function branch 27 | if test (_branch) 28 | printf "%son%s %s" (set_color white) (set_color green) (_branch) 29 | else 30 | echo -n "" 31 | end 32 | end 33 | 34 | function prompt 35 | printf "%sλ %s" (set_color -o white) (set_color normal) 36 | end 37 | 38 | function fish_prompt 39 | echo (username) (hostname) (path) (venv) (branch) 40 | echo (prompt) 41 | end 42 | -------------------------------------------------------------------------------- /weechat/alias.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- alias.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [cmd] 13 | AAWAY = "allserv /away" 14 | ANICK = "allserv /nick" 15 | BEEP = "print -beep" 16 | BYE = "quit" 17 | C = "buffer clear" 18 | CHAT = "dcc chat" 19 | CL = "buffer clear" 20 | CLOSE = "buffer close" 21 | EXIT = "quit" 22 | IG = "ignore" 23 | J = "join" 24 | K = "kick" 25 | KB = "kickban" 26 | LEAVE = "part" 27 | M = "msg" 28 | MSGBUF = "command -buffer $1 * /input send $2-" 29 | MUB = "unban *" 30 | N = "names" 31 | Q = "query" 32 | REDRAW = "window refresh" 33 | SAY = "msg *" 34 | SIGNOFF = "quit" 35 | T = "topic" 36 | UB = "unban" 37 | UMODE = "mode $nick" 38 | V = "command core version" 39 | W = "who" 40 | WC = "window close" 41 | WI = "whois" 42 | WII = "whois $1 $1" 43 | WM = "window merge" 44 | WW = "whowas" 45 | 46 | [completion] 47 | MSGBUF = "%(buffers_plugins_names)" 48 | -------------------------------------------------------------------------------- /nvim/init.vim: -------------------------------------------------------------------------------- 1 | " Base settings 2 | set encoding=utf-8 3 | set ruler 4 | set showmatch 5 | set showmode 6 | set confirm 7 | set number relativenumber 8 | set guifont=Cozette\ 9 9 | set signcolumn=yes 10 | 11 | " Plugins 12 | call plug#begin('~/.vim/plugged') 13 | Plug 'SirVer/ultisnips' 14 | Plug 'honza/vim-snippets' 15 | Plug 'arcticicestudio/nord-vim' 16 | Plug 'Valloric/YouCompleteMe' 17 | Plug 'sheerun/vim-polyglot' 18 | Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']} 19 | call plug#end() 20 | 21 | " Syntax highlighting 22 | syntax on 23 | filetype on 24 | set termguicolors 25 | colorscheme nord 26 | 27 | " Line length 28 | set colorcolumn=80,100,120 29 | 30 | " Indentation 31 | set tabstop=2 32 | set shiftwidth=0 33 | set expandtab 34 | 35 | autocmd FileType c setlocal noexpandtab tabstop=4 36 | autocmd FileType go setlocal noexpandtab tabstop=4 37 | 38 | " UltiSnips settings 39 | let g:UltiSnipsExpandTrigger = '' 40 | let g:UltiSnipsJumpForwardTrigger = '' 41 | let g:UltiSnipsJumpBackwardTrigger = '' 42 | 43 | let g:python3_host_prog = '/sbin/python' 44 | -------------------------------------------------------------------------------- /weechat/xfer.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- xfer.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | auto_open_buffer = on 14 | progress_bar_size = 20 15 | pv_tags = "notify_private" 16 | 17 | [color] 18 | status_aborted = lightred 19 | status_active = lightblue 20 | status_connecting = yellow 21 | status_done = lightgreen 22 | status_failed = lightred 23 | status_waiting = lightcyan 24 | text = default 25 | text_bg = default 26 | text_selected = white 27 | 28 | [network] 29 | blocksize = 65536 30 | fast_send = on 31 | own_ip = "" 32 | port_range = "" 33 | send_ack = on 34 | speed_limit_recv = 0 35 | speed_limit_send = 0 36 | timeout = 300 37 | 38 | [file] 39 | auto_accept_chats = off 40 | auto_accept_files = off 41 | auto_accept_nicks = "" 42 | auto_check_crc32 = off 43 | auto_rename = on 44 | auto_resume = on 45 | convert_spaces = on 46 | download_path = "%h/xfer" 47 | download_temporary_suffix = ".part" 48 | upload_path = "~" 49 | use_nick_in_filename = on 50 | -------------------------------------------------------------------------------- /weechat/buflist.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- buflist.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | add_newline = on 14 | auto_scroll = 50 15 | display_conditions = "${buffer.hidden}==0" 16 | enabled = on 17 | mouse_jump_visited_buffer = off 18 | mouse_move_buffer = on 19 | mouse_wheel = on 20 | nick_prefix = off 21 | nick_prefix_empty = on 22 | signals_refresh = "" 23 | sort = "number,-active" 24 | 25 | [format] 26 | buffer = "${format_number}${indent}${format_nick_prefix}${color_hotlist}${format_name}" 27 | buffer_current = "${color:,blue}${format_buffer}" 28 | hotlist = " ${color:green}(${hotlist}${color:green})" 29 | hotlist_highlight = "${color:magenta}" 30 | hotlist_low = "${color:white}" 31 | hotlist_message = "${color:brown}" 32 | hotlist_none = "${color:default}" 33 | hotlist_private = "${color:green}" 34 | hotlist_separator = "${color:default}," 35 | indent = " " 36 | lag = " ${color:green}[${color:brown}${lag}${color:green}]" 37 | name = "${name}" 38 | nick_prefix = "${color_nick_prefix}${nick_prefix}" 39 | number = "${color:green}${number}${if:${number_displayed}?.: }" 40 | -------------------------------------------------------------------------------- /weechat/relay.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- relay.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | auto_open_buffer = on 14 | raw_messages = 256 15 | 16 | [color] 17 | client = cyan 18 | status_active = lightblue 19 | status_auth_failed = lightred 20 | status_connecting = yellow 21 | status_disconnected = lightred 22 | status_waiting_auth = brown 23 | text = default 24 | text_bg = default 25 | text_selected = white 26 | 27 | [network] 28 | allow_empty_password = off 29 | allowed_ips = "" 30 | auth_timeout = 60 31 | bind_address = "" 32 | clients_purge_delay = 0 33 | compression_level = 6 34 | ipv6 = on 35 | max_clients = 5 36 | nonce_size = 16 37 | password = "" 38 | password_hash_algo = "*" 39 | password_hash_iterations = 100000 40 | ssl_cert_key = "%h/ssl/relay.pem" 41 | ssl_priorities = "NORMAL:-VERS-SSL3.0" 42 | totp_secret = "" 43 | totp_window = 0 44 | websocket_allowed_origins = "" 45 | 46 | [irc] 47 | backlog_max_minutes = 1440 48 | backlog_max_number = 256 49 | backlog_since_last_disconnect = on 50 | backlog_since_last_message = off 51 | backlog_tags = "irc_privmsg" 52 | backlog_time_format = "[%H:%M] " 53 | 54 | [weechat] 55 | commands = "" 56 | 57 | [port] 58 | 59 | [path] 60 | -------------------------------------------------------------------------------- /calcurse/keys: -------------------------------------------------------------------------------- 1 | # 2 | # Calcurse keys configuration file 3 | # 4 | # In this file the keybindings used by Calcurse are defined. 5 | # It is generated automatically by Calcurse and is maintained 6 | # via the key configuration menu of the interactive user 7 | # interface. It should not be edited directly. 8 | 9 | generic-cancel ESC 10 | generic-select SPC 11 | generic-credits @ 12 | generic-help ? 13 | generic-quit q Q 14 | generic-save s S ^S 15 | generic-reload R 16 | generic-copy c 17 | generic-paste p ^V 18 | generic-change-view TAB 19 | generic-import i I 20 | generic-export x X 21 | generic-goto g G 22 | generic-other-cmd o O 23 | generic-config-menu C 24 | generic-redraw ^R 25 | generic-add-appt ^A 26 | generic-add-todo ^T 27 | generic-prev-day T ^H 28 | generic-next-day t ^L 29 | generic-prev-week W ^K 30 | generic-next-week w 31 | generic-prev-month M 32 | generic-next-month m 33 | generic-prev-year Y 34 | generic-next-year y 35 | generic-scroll-down ^N 36 | generic-scroll-up ^P 37 | generic-goto-today ^G 38 | generic-command : 39 | move-right l L RGT 40 | move-left h H LFT 41 | move-down j J DWN 42 | move-up k K UP 43 | start-of-week 0 44 | end-of-week $ 45 | add-item a A 46 | del-item d D 47 | edit-item e E 48 | view-item v V RET 49 | pipe-item | 50 | flag-item ! 51 | repeat r 52 | edit-note n N 53 | view-note > 54 | raise-priority + 55 | lower-priority - 56 | -------------------------------------------------------------------------------- /weechat/script.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- script.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | columns = "%s %n %V %v %u | %d | %t" 14 | diff_color = on 15 | diff_command = "auto" 16 | display_source = on 17 | quiet_actions = on 18 | sort = "i,p,n" 19 | translate_description = on 20 | use_keys = on 21 | 22 | [color] 23 | status_autoloaded = cyan 24 | status_held = white 25 | status_installed = lightcyan 26 | status_obsolete = lightmagenta 27 | status_popular = yellow 28 | status_running = lightgreen 29 | status_unknown = lightred 30 | text = default 31 | text_bg = default 32 | text_bg_selected = red 33 | text_date = default 34 | text_date_selected = white 35 | text_delimiters = default 36 | text_description = default 37 | text_description_selected = white 38 | text_extension = default 39 | text_extension_selected = white 40 | text_name = cyan 41 | text_name_selected = lightcyan 42 | text_selected = white 43 | text_tags = brown 44 | text_tags_selected = yellow 45 | text_version = magenta 46 | text_version_loaded = default 47 | text_version_loaded_selected = white 48 | text_version_selected = lightmagenta 49 | 50 | [scripts] 51 | autoload = on 52 | cache_expire = 1440 53 | download_timeout = 30 54 | hold = "" 55 | path = "%h/script" 56 | url = "https://weechat.org/files/plugins.xml.gz" 57 | -------------------------------------------------------------------------------- /scripts/layout.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | import os 3 | from subprocess import run, Popen, PIPE 4 | from time import sleep 5 | 6 | # Your preferred terminal emulator 7 | TERM = "alacritty" 8 | DMENU = "wofi --dmenu" 9 | 10 | # A script that's in your .zshrc or equivalent that the terminal will run 11 | SCRIPT_FILE = os.path.expanduser("~/.config/scripts/startup.sh") 12 | 13 | def term(command): 14 | with open(SCRIPT_FILE, "w") as f: 15 | f.write(command) 16 | Popen(TERM) 17 | sleep(0.3) 18 | open(SCRIPT_FILE, "w").close() 19 | 20 | def select(options, back=exit): 21 | choice = run("echo -e '%s' | %s" % ('\n'.join(options), DMENU), shell=True, stdout=PIPE).stdout.decode().strip() 22 | if back and not choice: 23 | back() 24 | return choice 25 | 26 | """ 27 | Starts a Django web server and opens two terminals. 28 | """ 29 | def webdev(): 30 | # The location that will be searched for project folders 31 | PROJECT_DIR = os.path.expanduser("~/Projects") 32 | 33 | PROJECTS = [entry for entry in os.listdir(PROJECT_DIR) if os.path.isdir(os.path.join(PROJECT_DIR, entry))] 34 | 35 | SELECT = select(PROJECTS) 36 | 37 | run(["swaymsg", "workspace", "4a"]) 38 | sleep(0.3) 39 | term("cd ~/Projects/%s && source env/bin/activate && python manage.py runserver" % SELECT) 40 | run(["swaymsg", "layout", "stacking"]) 41 | sleep(0.3) 42 | term("cd ~/Projects/%s && s" % SELECT) 43 | run(["swaymsg", "splith"]) 44 | sleep(0.3) 45 | term("cd ~/Projects/%s && s" % SELECT) 46 | 47 | LAYOUTS = { 48 | "webdev": webdev, 49 | } 50 | 51 | if __name__ == "__main__": 52 | LAYOUTS[select(LAYOUTS.keys())]() 53 | -------------------------------------------------------------------------------- /alacritty/alacritty.yml: -------------------------------------------------------------------------------- 1 | env: 2 | TERM: xterm-256color 3 | 4 | font: 5 | normal: 6 | family: Cozette 7 | bold: 8 | family: Cozette 9 | italic: 10 | family: Cozette 11 | size: 9.0 12 | 13 | 14 | # Copyright (c) 2017-present Arctic Ice Studio 15 | # Copyright (c) 2017-present Sven Greb 16 | 17 | # Project: Nord Alacritty 18 | # Version: 0.1.0 19 | # Repository: https://github.com/arcticicestudio/nord-alacritty 20 | # License: MIT 21 | # References: 22 | # https://github.com/alacritty/alacritty 23 | colors: 24 | primary: 25 | background: '#2e3440' 26 | foreground: '#d8dee9' 27 | dim_foreground: '#a5abb6' 28 | cursor: 29 | text: '#2e3440' 30 | cursor: '#d8dee9' 31 | vi_mode_cursor: 32 | text: '#2e3440' 33 | cursor: '#d8dee9' 34 | selection: 35 | text: CellForeground 36 | background: '#4c566a' 37 | search: 38 | matches: 39 | foreground: CellBackground 40 | background: '#88c0d0' 41 | bar: 42 | background: '#434c5e' 43 | foreground: '#d8dee9' 44 | normal: 45 | black: '#3b4252' 46 | red: '#bf616a' 47 | green: '#a3be8c' 48 | yellow: '#ebcb8b' 49 | blue: '#81a1c1' 50 | magenta: '#b48ead' 51 | cyan: '#88c0d0' 52 | white: '#e5e9f0' 53 | bright: 54 | black: '#4c566a' 55 | red: '#bf616a' 56 | green: '#a3be8c' 57 | yellow: '#ebcb8b' 58 | blue: '#81a1c1' 59 | magenta: '#b48ead' 60 | cyan: '#8fbcbb' 61 | white: '#eceff4' 62 | dim: 63 | black: '#373e4d' 64 | red: '#94545d' 65 | green: '#809575' 66 | yellow: '#b29e75' 67 | blue: '#68809a' 68 | magenta: '#8c738c' 69 | cyan: '#6d96a5' 70 | white: '#aeb3bb' 71 | -------------------------------------------------------------------------------- /fish/fish_variables: -------------------------------------------------------------------------------- 1 | # This file contains fish universal variable definitions. 2 | # VERSION: 3.0 3 | SETUVAR --export EDITOR:nvim 4 | SETUVAR FZF_DEFAULT_OPTS:\x2d\x2dheight\x2040\x25 5 | SETUVAR FZF_DISABLE_KEYBINDINGS:0 6 | SETUVAR FZF_LEGACY_KEYBINDINGS:1 7 | SETUVAR FZF_PREVIEW_DIR_CMD:ls 8 | SETUVAR FZF_PREVIEW_FILE_CMD:head\x20\x2dn\x2010 9 | SETUVAR FZF_TMUX_HEIGHT:40\x25 10 | SETUVAR __fish_initialized:3100 11 | SETUVAR fish_color_autosuggestion:4c566a 12 | SETUVAR fish_color_cancel:\x2dr 13 | SETUVAR fish_color_command:81a1c1 14 | SETUVAR fish_color_comment:434c5e 15 | SETUVAR fish_color_cwd:green 16 | SETUVAR fish_color_cwd_root:red 17 | SETUVAR fish_color_end:88c0d0 18 | SETUVAR fish_color_error:ebcb8b 19 | SETUVAR fish_color_escape:00a6b2 20 | SETUVAR fish_color_history_current:\x2d\x2dbold 21 | SETUVAR fish_color_host:normal 22 | SETUVAR fish_color_host_remote:yellow 23 | SETUVAR fish_color_match:\x2d\x2dbackground\x3dbrblue 24 | SETUVAR fish_color_normal:normal 25 | SETUVAR fish_color_operator:00a6b2 26 | SETUVAR fish_color_param:eceff4 27 | SETUVAR fish_color_quote:a3be8c 28 | SETUVAR fish_color_redirection:b48ead 29 | SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack 30 | SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack 31 | SETUVAR fish_color_status:red 32 | SETUVAR fish_color_user:brgreen 33 | SETUVAR fish_color_valid_path:\x2d\x2dunderline 34 | SETUVAR fish_greeting:\x1d 35 | SETUVAR fish_key_bindings:fish_default_key_bindings 36 | SETUVAR fish_pager_color_completion:normal 37 | SETUVAR fish_pager_color_description:B3A06D\x1eyellow 38 | SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dbold\x1e\x2d\x2dunderline 39 | SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan 40 | -------------------------------------------------------------------------------- /scripts/template.tex: -------------------------------------------------------------------------------- 1 | \documentclass[letterpaper]{{dapper-invoice}} 2 | 3 | \newcommand{{\invoiceNo}}{{{num}}} 4 | \newcommand{{\balance}}{{{total}}} 5 | 6 | \newcommand{{\me}}{{{me}}} 7 | \newcommand{{\clientName}}{{{client}}} 8 | 9 | \setmetadata{{\me}}{{{business}}}{{\invoiceNo}}{{\clientName}} 10 | 11 | \defaultfontfeatures{{ Path = ./Fonts/ }} 12 | \usepackage{{fontawesome}} 13 | 14 | \begin{{document}} 15 | 16 | \newfontface\mainLightItalic{{OpenSans-LightItalic}} 17 | \makeheader{{{business}}}{{\invoiceNo}} 18 | 19 | \twocolumnlayout{{ 20 | \begin{{infoSection}} 21 | \infoBox{{Client}}{{\clientName \\ 22 | {client_address}}} 23 | \infoBox{{Project}}{{{project}}} 24 | \infoBox{{Contact}}{{{client_name}}} 25 | \infoSub{{\faMobilePhone}}{{\small\slshape {client_phone}}} 26 | \infoSub{{\tiny\faEnvelope}}{{\small\slshape \emaillink{{{client_email}}}}} 27 | \noalign{{\addvspace{{8ex}}}} 28 | \infoBox{{}}{{ 29 | {{\large\raisebox{{.55\height}}\currencysym\huge\formatcurrency{{\balance}} \arrowbase}} \\ 30 | {{\small\color{{subduedColor}} due upon receipt}} 31 | }} 32 | \end{{infoSection}} 33 | }}{{ 34 | \begin{{infoSection}} 35 | \infoBox{{\arrowtarget Payable To}}{{ 36 | \me \\ 37 | {address} 38 | }} 39 | \infoSub{{\faMobilePhone}}{{\small\slshape {phone}}} 40 | \infoSub{{\tiny\faEnvelope}}{{\small\slshape \emaillink{{{email}}}}} 41 | \end{{infoSection}} 42 | }} 43 | 44 | \drawarrow 45 | 46 | \addvspace{{4ex}} 47 | 48 | \begin{{basicItemization}} 49 | {items} 50 | \beginsummary 51 | \summaryline{{Total}}{{{total}}} 52 | \end{{basicItemization}} 53 | 54 | \end{{document}} 55 | -------------------------------------------------------------------------------- /weechat/matrix.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- matrix.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [network] 13 | autoreconnect_delay_growing = 2 14 | autoreconnect_delay_max = 600 15 | debug_buffer = off 16 | debug_category = all 17 | debug_level = error 18 | fetch_backlog_on_pgup = on 19 | lag_min_show = 500 20 | lag_reconnect = 90 21 | lazy_load_room_users = off 22 | max_backlog_sync_events = 10 23 | max_initial_sync_events = 30 24 | max_nicklist_users = 5000 25 | print_unconfirmed_messages = on 26 | read_markers_conditions = "${markers_enabled}" 27 | resending_ignores_devices = on 28 | typing_notice_conditions = "${typing_enabled}" 29 | 30 | [look] 31 | bar_item_typing_notice_prefix = "Typing: " 32 | busy_sign = "⏳" 33 | code_block_margin = 2 34 | code_blocks = on 35 | disconnect_sign = "❌" 36 | encrypted_room_sign = "🔐" 37 | encryption_warning_sign = "⚠️ " 38 | human_buffer_names = off 39 | max_typing_notice_item_length = 50 40 | new_channel_position = none 41 | pygments_style = "native" 42 | redactions = strikethrough 43 | server_buffer = merge_with_core 44 | 45 | [color] 46 | error_message_bg = default 47 | error_message_fg = darkgray 48 | quote_bg = default 49 | quote_fg = lightgreen 50 | unconfirmed_message_bg = default 51 | unconfirmed_message_fg = darkgray 52 | untagged_code_bg = default 53 | untagged_code_fg = blue 54 | 55 | [server] 56 | matrix_org.autoconnect = off 57 | matrix_org.address = "matrix.org" 58 | matrix_org.port = 443 59 | matrix_org.proxy = "" 60 | matrix_org.ssl_verify = on 61 | matrix_org.username = "" 62 | matrix_org.password = "" 63 | matrix_org.device_name = "Weechat Matrix" 64 | matrix_org.autoreconnect_delay = 10 65 | matrix_org.sso_helper_listening_port = 0 66 | -------------------------------------------------------------------------------- /fish/conf.d/fzf_key_bindings.fish: -------------------------------------------------------------------------------- 1 | if test "$FZF_DISABLE_KEYBINDINGS" -ne 1 2 | if test "$FZF_LEGACY_KEYBINDINGS" -eq 1 3 | bind \ct '__fzf_find_file' 4 | bind \cr '__fzf_reverse_isearch' 5 | bind \ec '__fzf_cd' 6 | bind \eC '__fzf_cd --hidden' 7 | bind \cg '__fzf_open' 8 | bind \co '__fzf_open --editor' 9 | 10 | if bind -M insert >/dev/null 2>/dev/null 11 | bind -M insert \ct '__fzf_find_file' 12 | bind -M insert \cr '__fzf_reverse_isearch' 13 | bind -M insert \ec '__fzf_cd' 14 | bind -M insert \eC '__fzf_cd --hidden' 15 | bind -M insert \cg '__fzf_open' 16 | bind -M insert \co '__fzf_open --editor' 17 | end 18 | else 19 | bind \co '__fzf_find_file' 20 | bind \cr '__fzf_reverse_isearch' 21 | bind \ec '__fzf_cd' 22 | bind \eC '__fzf_cd --hidden' 23 | bind \eO '__fzf_open' 24 | bind \eo '__fzf_open --editor' 25 | 26 | if bind -M insert >/dev/null 2>/dev/null 27 | bind -M insert \co '__fzf_find_file' 28 | bind -M insert \cr '__fzf_reverse_isearch' 29 | bind -M insert \ec '__fzf_cd' 30 | bind -M insert \eC '__fzf_cd --hidden' 31 | bind -M insert \eO '__fzf_open' 32 | bind -M insert \eo '__fzf_open --editor' 33 | end 34 | end 35 | 36 | if set -q FZF_COMPLETE 37 | bind \t '__fzf_complete' 38 | if bind -M insert >/dev/null 2>/dev/null 39 | bind -M insert \t '__fzf_complete' 40 | end 41 | end 42 | end 43 | 44 | function fzf_key_bindings_uninstall -e fzf_key_bindings_uninstall 45 | # disabled until we figure out a sensible way to ensure user overrides 46 | # are not erased 47 | # set -l _bindings (bind -a | sed -En "s/(')?__fzf.*\$//p" | sed 's/bind/bind -e/') 48 | # for binding in $_bindings 49 | # eval $binding 50 | # end 51 | end 52 | -------------------------------------------------------------------------------- /aerc/binds.conf: -------------------------------------------------------------------------------- 1 | # Binds are of the form = 2 | # To use '=' in a key sequence, substitute it with "Eq": "" 3 | # If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit 4 | = :prev-tab 5 | = :next-tab 6 | = :term 7 | 8 | [messages] 9 | q = :quit 10 | 11 | j = :next 12 | = :next 13 | = :next 50% 14 | = :next 100% 15 | = :next -s 100% 16 | 17 | k = :prev 18 | = :prev 19 | = :prev 50% 20 | = :prev 100% 21 | = :prev -s 100% 22 | g = :select 0 23 | G = :select -1 24 | 25 | J = :next-folder 26 | K = :prev-folder 27 | 28 | = :view 29 | d = :confirm 'Really delete this message?' ':delete-message' 30 | D = :delete 31 | A = :archive flat 32 | 33 | C = :compose 34 | 35 | rr = :reply -a 36 | rq = :reply -aq 37 | Rr = :reply 38 | Rq = :reply -q 39 | 40 | c = :cf 41 | $ = :term 42 | ! = :term 43 | | = :pipe 44 | 45 | / = :search 46 | \ = :filter 47 | n = :next-result 48 | N = :prev-result 49 | 50 | [view] 51 | q = :close 52 | | = :pipe 53 | D = :delete 54 | S = :save 55 | A = :archive flat 56 | 57 | f = :forward 58 | rr = :reply -a 59 | rq = :reply -aq 60 | Rr = :reply 61 | Rq = :reply -q 62 | 63 | H = :toggle-headers 64 | = :prev-part 65 | = :next-part 66 | J = :next 67 | K = :prev 68 | 69 | [compose] 70 | # Keybindings used when the embedded terminal is not selected in the compose 71 | # view 72 | $ex = 73 | = :prev-field 74 | = :next-field 75 | = :next-field 76 | 77 | [compose::editor] 78 | # Keybindings used when the embedded terminal is selected in the compose view 79 | $noinherit = true 80 | $ex = 81 | = :prev-field 82 | = :next-field 83 | = :prev-tab 84 | = :next-tab 85 | 86 | [compose::review] 87 | # Keybindings used when reviewing a message to be sent 88 | y = :send 89 | n = :abort 90 | q = :abort 91 | e = :edit 92 | a = :attach 93 | 94 | [terminal] 95 | $noinherit = true 96 | $ex = 97 | 98 | = :prev-tab 99 | = :next-tab 100 | -------------------------------------------------------------------------------- /waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | // Basic config 3 | "layer": "bottom", 4 | "position": "bottom", 5 | "height": 30, 6 | "output": "DP-2", 7 | "margin-top": -10, 8 | "margin-bottom": 0, 9 | "margin-right": 100, 10 | "margin-left": 100, 11 | 12 | // Modules 13 | "modules-left": ["clock"], 14 | "modules-center": ["sway/workspaces"], 15 | "modules-right": ["pulseaudio", "custom/d", "mpd"], 16 | 17 | // Modules configuration 18 | "custom/d": { 19 | "format": "|", 20 | "tooltip": false 21 | }, 22 | "sway/workspaces": { 23 | "disable-scroll": true, 24 | "all-outputs": true, 25 | "format": "{icon}", 26 | "format-icons": { 27 | "1a": "", 28 | "2a": "", 29 | "2b": "", 30 | "3a": "", 31 | "4a": "", 32 | "5a": "", 33 | "0b": "", 34 | "1b": "", 35 | "2b": "", 36 | "3b": "", 37 | "4b": "", 38 | "5b": "", 39 | "6b": "", 40 | "7b": "", 41 | "8b": "", 42 | "9b": "", 43 | "urgent": "", 44 | "default": "" 45 | } 46 | }, 47 | "mpd": { 48 | "format": "{stateIcon} ", 49 | "format-disconnected": " ", 50 | "format-stopped": " ", 51 | "tooltip": false, 52 | "interval": 1, 53 | "state-icons": { 54 | "paused": "", 55 | "playing": "", 56 | } 57 | }, 58 | "clock": { 59 | "interval": 1, 60 | "tooltip-format": "{:%Y %B}\n{calendar}", 61 | "format": " {:%Y-%m-%d, %H:%M:%S}", 62 | }, 63 | "pulseaudio": { 64 | "format": "{volume}% {icon} {format_source}", 65 | "format-muted": "{format_source}", 66 | "format-source": "", 67 | "format-source-muted": "", 68 | "format-icons": { 69 | "headset": "", 70 | "default": ["", ""] 71 | }, 72 | "on-click": "amixer set Master toggle && amixer set Capture toggle", 73 | "on-click-right": "amixer set Capture toggle", 74 | "on-click-middle": "alacritty --class floating -e pulsemixer", 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /weechat/trigger.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- trigger.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | enabled = on 14 | monitor_strip_colors = off 15 | 16 | [color] 17 | flag_command = lightgreen 18 | flag_conditions = yellow 19 | flag_post_action = lightblue 20 | flag_regex = lightcyan 21 | flag_return_code = lightmagenta 22 | regex = white 23 | replace = cyan 24 | trigger = green 25 | trigger_disabled = red 26 | 27 | [trigger] 28 | beep.arguments = "" 29 | beep.command = "/print -beep" 30 | beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" 31 | beep.enabled = on 32 | beep.hook = print 33 | beep.post_action = none 34 | beep.regex = "" 35 | beep.return_code = ok 36 | cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" 37 | cmd_pass.command = "" 38 | cmd_pass.conditions = "" 39 | cmd_pass.enabled = on 40 | cmd_pass.hook = modifier 41 | cmd_pass.post_action = none 42 | cmd_pass.regex = "==^((/(msg|m|quote) +(-server +[^ ]+ +)?nickserv +(id|identify|set +password|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" 43 | cmd_pass.return_code = ok 44 | cmd_pass_register.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" 45 | cmd_pass_register.command = "" 46 | cmd_pass_register.conditions = "" 47 | cmd_pass_register.enabled = on 48 | cmd_pass_register.hook = modifier 49 | cmd_pass_register.post_action = none 50 | cmd_pass_register.regex = "==^(/(msg|m|quote) +nickserv +register +)([^ ]+)(.*)==${re:1}${hide:*,${re:3}}${re:4}" 51 | cmd_pass_register.return_code = ok 52 | msg_auth.arguments = "5000|irc_message_auth" 53 | msg_auth.command = "" 54 | msg_auth.conditions = "" 55 | msg_auth.enabled = on 56 | msg_auth.hook = modifier 57 | msg_auth.post_action = none 58 | msg_auth.regex = "==^(.*(id|identify|set +password|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+|recover +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" 59 | msg_auth.return_code = ok 60 | server_pass.arguments = "5000|input_text_display;5000|history_add" 61 | server_pass.command = "" 62 | server_pass.conditions = "" 63 | server_pass.enabled = on 64 | server_pass.hook = modifier 65 | server_pass.post_action = none 66 | server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" 67 | server_pass.return_code = ok 68 | -------------------------------------------------------------------------------- /weechat/fset.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- fset.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | auto_unmark = off 14 | condition_catch_set = "${count} >= 1" 15 | export_help_default = on 16 | format_number = 1 17 | marked_string = "*" 18 | scroll_horizontal = 10 19 | show_plugins_desc = off 20 | sort = "~name" 21 | unmarked_string = " " 22 | use_color_value = off 23 | use_keys = on 24 | use_mute = off 25 | 26 | [format] 27 | export_help = "# ${description2}" 28 | export_option = "/set ${name} ${quoted_value}" 29 | export_option_null = "/unset ${name}" 30 | option1 = "" 31 | option2 = "${marked} ${name} ${type} ${value2}${newline} ${empty_name} ${_default_value}${color:darkgray} -- ${min}..${max}${newline} ${empty_name} ${description}" 32 | 33 | [color] 34 | default_value = default 35 | default_value_selected = white 36 | description = default 37 | description_selected = white 38 | file = default 39 | file_changed = brown 40 | file_changed_selected = yellow 41 | file_selected = white 42 | help_default_value = white 43 | help_description = default 44 | help_name = white 45 | help_quotes = darkgray 46 | help_values = default 47 | index = cyan 48 | index_selected = lightcyan 49 | line_marked_bg1 = default 50 | line_marked_bg2 = default 51 | line_selected_bg1 = blue 52 | line_selected_bg2 = red 53 | marked = brown 54 | marked_selected = yellow 55 | max = default 56 | max_selected = white 57 | min = default 58 | min_selected = white 59 | name = default 60 | name_changed = brown 61 | name_changed_selected = yellow 62 | name_selected = white 63 | option = default 64 | option_changed = brown 65 | option_changed_selected = yellow 66 | option_selected = white 67 | parent_name = default 68 | parent_name_selected = white 69 | parent_value = cyan 70 | parent_value_selected = lightcyan 71 | quotes = darkgray 72 | quotes_changed = default 73 | quotes_changed_selected = white 74 | quotes_selected = default 75 | section = default 76 | section_changed = brown 77 | section_changed_selected = yellow 78 | section_selected = white 79 | string_values = default 80 | string_values_selected = white 81 | title_count_options = cyan 82 | title_current_option = lightcyan 83 | title_filter = yellow 84 | title_marked_options = lightgreen 85 | title_sort = white 86 | type = green 87 | type_selected = lightgreen 88 | unmarked = default 89 | unmarked_selected = white 90 | value = cyan 91 | value_changed = brown 92 | value_changed_selected = yellow 93 | value_selected = lightcyan 94 | value_undef = magenta 95 | value_undef_selected = lightmagenta 96 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | ### 2 | ### The portions of this project written be me are released under the following 3 | ### license (Unlicense). 4 | ### 5 | 6 | This is free and unencumbered software released into the public domain. 7 | 8 | Anyone is free to copy, modify, publish, use, compile, sell, or 9 | distribute this software, either in source code form or as a compiled 10 | binary, for any purpose, commercial or non-commercial, and by any 11 | means. 12 | 13 | In jurisdictions that recognize copyright laws, the author or authors 14 | of this software dedicate any and all copyright interest in the 15 | software to the public domain. We make this dedication for the benefit 16 | of the public at large and to the detriment of our heirs and 17 | successors. We intend this dedication to be an overt act of 18 | relinquishment in perpetuity of all present and future rights to this 19 | software under copyright law. 20 | 21 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 24 | IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR 25 | OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 26 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27 | OTHER DEALINGS IN THE SOFTWARE. 28 | 29 | For more information, please refer to 30 | 31 | ### 32 | ### The Nord colorscheme which is used in many parts of this project is licensed 33 | ### under the following license. A shorter version of this license text is also 34 | ### included where substantial portions of their work is used. 35 | ### 36 | 37 | MIT License (MIT) 38 | 39 | Copyright (c) 2016-present Arctic Ice Studio (https://www.arcticicestudio.com) 40 | Copyright (c) 2016-present Sven Greb (https://www.svengreb.de) 41 | 42 | Permission is hereby granted, free of charge, to any person obtaining a copy 43 | of this software and associated documentation files (the "Software"), to deal 44 | in the Software without restriction, including without limitation the rights 45 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 46 | copies of the Software, and to permit persons to whom the Software is 47 | furnished to do so, subject to the following conditions: 48 | 49 | The above copyright notice and this permission notice shall be included in all 50 | copies or substantial portions of the Software. 51 | 52 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 53 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 54 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 55 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 56 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 57 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 58 | SOFTWARE. 59 | 60 | -------------------------------------------------------------------------------- /scripts/invoice.py: -------------------------------------------------------------------------------- 1 | import glob 2 | import json 3 | import os 4 | import subprocess 5 | import sys 6 | import time 7 | from datetime import datetime 8 | 9 | # Directory of https://github.com/mkropat/dapper-invoice clone 10 | MAKE_DIR = os.path.expanduser("~/Projects/dapper-invoice/") 11 | 12 | # Directory to output invoices 13 | INVOICE_DIR = os.path.expanduser("~/Documents/finances/%d/invoices/" % datetime.now().year) 14 | 15 | # Create directories upon a new year 16 | if not os.path.exists(INVOICE_DIR): 17 | os.makedirs(INVOICE_DIR) 18 | 19 | # Template file acceptable for python's format() method 20 | TEMPLATE_FILE = os.path.expanduser("~/.config/scripts/template.tex") 21 | 22 | # Contains a list of JSON files that overwrite VARS 23 | PROJECTS = glob.glob(os.path.expanduser("~/Documents/finances/") + "*.json") 24 | 25 | # Variables required for the template 26 | VARS = { 27 | "num": int(time.time() / 100), 28 | "me": "", 29 | "business": "", 30 | "address": "", 31 | "phone": "", 32 | "email": "", 33 | "project": "", 34 | "client": "", 35 | "client_address": "", 36 | "client_name": "", 37 | "client_phone": "", 38 | "client_email": "", 39 | "items": "", 40 | } 41 | 42 | # Gets the list of project names from the JSON files 43 | print("-=[ List of Projects ]=-") 44 | for i, project in enumerate(PROJECTS): 45 | data = {} 46 | with open(project, "r") as f: 47 | data = json.loads(f.read()) 48 | print(" %d: %s" % (i, data["project"])) 49 | 50 | # Load in project data 51 | with open(PROJECTS[int(input("Select project: "))]) as f: 52 | VARS = {**VARS, **json.loads(f.read())} 53 | 54 | # Get invoice entries 55 | print("-=[ Enter Items ]=-") 56 | print("Enter nothing for the description to quit.") 57 | items = [] 58 | total = 0 59 | while True: 60 | description = input("Description: ") 61 | if not description: 62 | break 63 | amount = float(input("Amount: ")) 64 | items += [{"description": description, "amount": amount,}] 65 | total += amount 66 | VARS["total"] = total 67 | 68 | # Save invoice as JSON 69 | json_invoice = {**VARS, "items": items} 70 | FILENAME = datetime.now().strftime("%Y-%m-%d-num-{num}".format(**VARS)) 71 | FILEPATH = os.path.join(INVOICE_DIR, FILENAME) 72 | with open(FILEPATH + ".json", "w") as f: 73 | f.write(json.dumps(json_invoice, indent=2)) 74 | 75 | # Convert items into LaTeX 76 | items_tex = "" 77 | for item in items: 78 | items_tex += "\\lineitem{%s}{%.2f}\n" % (item["description"], item["amount"]) 79 | VARS["items"] = items_tex 80 | 81 | # Convert total to LaTeX format 82 | VARS["total"] = "%.2f" % total 83 | 84 | # Write LaTeX file from template 85 | template = "" 86 | with open(TEMPLATE_FILE, "r") as f: 87 | template = f.read() 88 | with open(FILEPATH + ".tex", "w") as f: 89 | f.write(template.format(**VARS)) 90 | 91 | # Generate pdf 92 | subprocess.run( 93 | "cd %s && make %s.pdf && mv %s.pdf %s.pdf && rm %s.*" 94 | % ( 95 | MAKE_DIR, 96 | FILEPATH, 97 | FILENAME, 98 | FILEPATH, 99 | os.path.join(MAKE_DIR, FILENAME), 100 | ), 101 | shell=True, 102 | ) 103 | -------------------------------------------------------------------------------- /Lightcord_BD/themes/DiscordNord.theme.css: -------------------------------------------------------------------------------- 1 | /** 2 | * @name Minimal Nord Discord 3 | * @description A Dicord theme based on the Nord colorscheme 4 | * @author TheAvidDev 5 | * @version 1.0 6 | * 7 | * @source https://raw.githubusercontent.com/TheAvidDev/dotfiles/master/Lightcord_BD/themes/DiscordNord.theme.css 8 | * @website https://theavid.dev/ 9 | **/ 10 | 11 | :root { 12 | --background-primary: #2e3440; 13 | --channeltextarea-background: #3b4252; 14 | --background-secondary: #3b4252; 15 | --background-secondary-alt: #2e3440; 16 | --background-tertiary: #2e3440; 17 | 18 | --border-radius: 15px; 19 | } 20 | 21 | .da-video, .da-peopleColumn, .da-tabBody { 22 | background-color: var(--background-primary); 23 | } 24 | 25 | .da-wrapper.da-video, .da-sidebar, .da-members, .da-nowPlayingColumn { 26 | border-radius: var(--border-radius); 27 | } 28 | 29 | .da-panels { 30 | background-color: var(--background-secondary); 31 | } 32 | 33 | /* 34 | * Change selected channel name and icons 35 | */ 36 | .da-selected > .da-wrapper > .da-content > .da-mainContent > .da-name, 37 | .da-selected > .da-wrapper > .da-content > .da-children > .da-iconItem > .da-actionIcon { 38 | color: var(--background-primary); 39 | } 40 | 41 | .da-selected > .da-wrapper > .da-content { 42 | background-color: #88c0d0; 43 | } 44 | 45 | /* Remove margin for typing indicator */ 46 | .da-channelTextArea { 47 | margin-bottom: 0; 48 | } 49 | 50 | /* Channel name */ 51 | .da-name { 52 | color: #d8dee9; 53 | } 54 | 55 | /* Add a small line at the top of chat */ 56 | .da-chatContent { 57 | border-top: 1px solid var(--background-secondary); 58 | } 59 | 60 | #bd-pub-li, /* BetterDiscord public vutton */ 61 | #private-channels-1, /* Nitro button */ 62 | .da-toolbar > .da-anchor, /* Help button */ 63 | .da-typing, /* Removing typing indicator */ 64 | .da-content:before { /* Tiny black line in header */ 65 | display: none; 66 | } 67 | 68 | 69 | /* Change divider and pill */ 70 | .da-divider { 71 | border-color: #bf616a; 72 | } 73 | 74 | .da-divider > span.da-content { 75 | color: #bf616a; 76 | } 77 | 78 | .da-unreadPill { 79 | background-color: #bf616a; 80 | } 81 | 82 | .da-unreadPillCapStroke { 83 | color: #bf616a; 84 | fill: #bf616a; 85 | } 86 | 87 | /** 88 | * Change server folder icon colors 89 | */ 90 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(1) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 91 | color: #bf616a!important; 92 | } 93 | 94 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(2) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 95 | color: #d08770!important; 96 | } 97 | 98 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(3) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 99 | color: #ebcb8b!important; 100 | } 101 | 102 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(4) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 103 | color: #a3be8c!important; 104 | } 105 | 106 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(5) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 107 | color: #b48ead!important; 108 | } 109 | 110 | #app-mount > .da-app > div > .da-layers > div > div > nav > .da-scroller > div:nth-child(3) > div:nth-child(6) > .da-listItem > div:nth-child(2) > div > svg > foreignObject > div > div > div > svg { 111 | color: #88c0d0!important; 112 | } 113 | -------------------------------------------------------------------------------- /dircolors: -------------------------------------------------------------------------------- 1 | # Copyright (C) 2017-present Arctic Ice Studio 2 | # Copyright (C) 2017-present Sven Greb 3 | 4 | # Project: Nord dircolors 5 | # Version: 0.2.0 6 | # Repository: https://github.com/arcticicestudio/nord-dircolors 7 | # License: MIT 8 | 9 | COLOR tty 10 | 11 | TERM alacritty 12 | TERM alacritty-direct 13 | TERM ansi 14 | TERM *color* 15 | TERM con[0-9]*x[0-9]* 16 | TERM cons25 17 | TERM console 18 | TERM cygwin 19 | TERM dtterm 20 | TERM dvtm 21 | TERM dvtm-256color 22 | TERM Eterm 23 | TERM eterm-color 24 | TERM fbterm 25 | TERM gnome 26 | TERM gnome-256color 27 | TERM hurd 28 | TERM jfbterm 29 | TERM konsole 30 | TERM konsole-256color 31 | TERM kterm 32 | TERM linux 33 | TERM linux-c 34 | TERM mlterm 35 | TERM putty 36 | TERM putty-256color 37 | TERM rxvt* 38 | TERM rxvt-unicode 39 | TERM rxvt-256color 40 | TERM rxvt-unicode256 41 | TERM screen* 42 | TERM screen-256color 43 | TERM st 44 | TERM st-256color 45 | TERM terminator 46 | TERM tmux* 47 | TERM tmux-256color 48 | TERM vt100 49 | TERM xterm* 50 | TERM xterm-color 51 | TERM xterm-88color 52 | TERM xterm-256color 53 | TERM xterm-kitty 54 | 55 | #+-----------------+ 56 | #+ Global Defaults + 57 | #+-----------------+ 58 | NORMAL 00 59 | RESET 0 60 | 61 | FILE 00 62 | DIR 01;34 63 | LINK 36 64 | MULTIHARDLINK 04;36 65 | 66 | FIFO 04;01;36 67 | SOCK 04;33 68 | DOOR 04;01;36 69 | BLK 01;33 70 | CHR 33 71 | 72 | ORPHAN 31 73 | MISSING 01;37;41 74 | 75 | EXEC 01;36 76 | 77 | SETUID 01;04;37 78 | SETGID 01;04;37 79 | CAPABILITY 01;37 80 | 81 | STICKY_OTHER_WRITABLE 01;37;44 82 | OTHER_WRITABLE 01;04;34 83 | STICKY 04;37;44 84 | 85 | #+-------------------+ 86 | #+ Extension Pattern + 87 | #+-------------------+ 88 | #+--- Archives ---+ 89 | .7z 01;32 90 | .ace 01;32 91 | .alz 01;32 92 | .arc 01;32 93 | .arj 01;32 94 | .bz 01;32 95 | .bz2 01;32 96 | .cab 01;32 97 | .cpio 01;32 98 | .deb 01;32 99 | .dz 01;32 100 | .ear 01;32 101 | .gz 01;32 102 | .jar 01;32 103 | .lha 01;32 104 | .lrz 01;32 105 | .lz 01;32 106 | .lz4 01;32 107 | .lzh 01;32 108 | .lzma 01;32 109 | .lzo 01;32 110 | .rar 01;32 111 | .rpm 01;32 112 | .rz 01;32 113 | .sar 01;32 114 | .t7z 01;32 115 | .tar 01;32 116 | .taz 01;32 117 | .tbz 01;32 118 | .tbz2 01;32 119 | .tgz 01;32 120 | .tlz 01;32 121 | .txz 01;32 122 | .tz 01;32 123 | .tzo 01;32 124 | .tzst 01;32 125 | .war 01;32 126 | .xz 01;32 127 | .z 01;32 128 | .Z 01;32 129 | .zip 01;32 130 | .zoo 01;32 131 | .zst 01;32 132 | 133 | #+--- Audio ---+ 134 | .aac 32 135 | .au 32 136 | .flac 32 137 | .m4a 32 138 | .mid 32 139 | .midi 32 140 | .mka 32 141 | .mp3 32 142 | .mpa 32 143 | .mpeg 32 144 | .mpg 32 145 | .ogg 32 146 | .opus 32 147 | .ra 32 148 | .wav 32 149 | 150 | #+--- Customs ---+ 151 | .3des 01;35 152 | .aes 01;35 153 | .gpg 01;35 154 | .pgp 01;35 155 | 156 | #+--- Documents ---+ 157 | .doc 32 158 | .docx 32 159 | .dot 32 160 | .odg 32 161 | .odp 32 162 | .ods 32 163 | .odt 32 164 | .otg 32 165 | .otp 32 166 | .ots 32 167 | .ott 32 168 | .pdf 32 169 | .ppt 32 170 | .pptx 32 171 | .xls 32 172 | .xlsx 32 173 | 174 | #+--- Executables ---+ 175 | .app 01;36 176 | .bat 01;36 177 | .btm 01;36 178 | .cmd 01;36 179 | .com 01;36 180 | .exe 01;36 181 | .reg 01;36 182 | 183 | #+--- Ignores ---+ 184 | *~ 02;37 185 | .bak 02;37 186 | .BAK 02;37 187 | .log 02;37 188 | .log 02;37 189 | .old 02;37 190 | .OLD 02;37 191 | .orig 02;37 192 | .ORIG 02;37 193 | .swo 02;37 194 | .swp 02;37 195 | 196 | #+--- Images ---+ 197 | .bmp 32 198 | .cgm 32 199 | .dl 32 200 | .dvi 32 201 | .emf 32 202 | .eps 32 203 | .gif 32 204 | .jpeg 32 205 | .jpg 32 206 | .JPG 32 207 | .mng 32 208 | .pbm 32 209 | .pcx 32 210 | .pgm 32 211 | .png 32 212 | .PNG 32 213 | .ppm 32 214 | .pps 32 215 | .ppsx 32 216 | .ps 32 217 | .svg 32 218 | .svgz 32 219 | .tga 32 220 | .tif 32 221 | .tiff 32 222 | .xbm 32 223 | .xcf 32 224 | .xpm 32 225 | .xwd 32 226 | .xwd 32 227 | .yuv 32 228 | 229 | #+--- Video ---+ 230 | .anx 32 231 | .asf 32 232 | .avi 32 233 | .axv 32 234 | .flc 32 235 | .fli 32 236 | .flv 32 237 | .gl 32 238 | .m2v 32 239 | .m4v 32 240 | .mkv 32 241 | .mov 32 242 | .MOV 32 243 | .mp4 32 244 | .mpeg 32 245 | .mpg 32 246 | .nuv 32 247 | .ogm 32 248 | .ogv 32 249 | .ogx 32 250 | .qt 32 251 | .rm 32 252 | .rmvb 32 253 | .swf 32 254 | .vob 32 255 | .webm 32 256 | .wmv 32 257 | 258 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Screenshot of various applications 3 |

Configurations and colorschemes for Sway, et al.

4 |

5 |

6 | Programs | Installation | Screenshots 7 |

8 | 9 | # Programs 10 | This repository contains configuration files for many programs that I regularly use on a day to day basis. I've also given brief descriptions of what each program does so you don't have to wonder what something is -- and because you might like something and want try it out. If you'd like me to style an application that isn't listed here, submit an issue and I'll try my best. 11 | - [`aerc`](https://aerc-mail.org/) is a simple terminal mail client with a variety of useful features for development. 12 | - [`alacritty`](https://github.com/alacritty/alacritty) is a cross-platform terminal emulator. 13 | - [`cava`](https://github.com/karlstav/cava) is a console-based audio visualizer for ALSA. 14 | - [`Lightcord`](https://github.com/Lightcord/Lightcord) is a customizable Discord client which comes with BetterDiscord. 15 | - [`mako`](https://github.com/emersion/mako) is a lightweight notification daemon for Wayland. 16 | - [`mpd`](https://www.musicpd.org/) is a flexible, powerful, server-side application for playing music. 17 | - [`neofetch`](https://github.com/dylanaraps/neofetch) is a very popular command line information tool. 18 | - [`nvim`](https://neovim.io/) is a fork of vim that has been rewritten for usability and extensibility. 19 | - [`sway`](https://swaywm.org) is a tiling Wayland compositor which serves as a drop-in replacement of i3. Use with [#5639](https://github.com/swaywm/sway/pull/5639). 20 | - [`wal`](https://github.com/dylanaraps/pywal) is a color scheme generator and manager. 21 | - [`waybar`](https://github.com/Alexays/Waybar) is a highly customizable Wayland bar for Sway and Wlroots based compositors. 22 | - [`wofi`](https://hg.sr.ht/~scoopta/wofi) a Wayland version of the popular Rofi launcher/menu. 23 | - [`zsh`](https://www.zsh.org/) is an interactive shell with a powerful scripting language. 24 | 25 | # Installation 26 | The simplest method is to clone the repo and pick and choose what you want, moving it to `~/.config`. If you want to receive updates, you can either clone the repo directly to `~/.config` or symlink the repo or internal folders to `~/.config`. There are some files that are expected to be outside of `~/.config` so symlink them as follows: 27 | - `.zsrc` --> `~/.zshrc` 28 | - `scripts/system-sleep-led-strip.sh` --> `/usr/lib/systemd/system-sleep/system-sleep-led-strip.sh` 29 | 30 | Then, you will have to modify the [Sway](https://github.com/TheAvidDev/dotfiles/blob/master/sway/config) and [Waybar](https://github.com/TheAvidDev/dotfiles/blob/master/waybar/config) output config files to use the appropriate outputs. 31 | 32 | Finally, run [pywal](https://github.com/dylanaraps/pywal) to change your colorscheme for terminal applications: 33 | ```sh 34 | wal --theme nord 35 | ``` 36 | 37 | ### Distro 38 | I personally use Arch Linux, but there's nothing specific to these config files that shouldn't work on other distributions. Be aware, however, that installation procedures for the individual packages will certainly be different and that the _locations_ of config files _may_ be different. If you would like to install Arch Linux follow the directions on the [Arch Wiki](https://wiki.archlinux.org/index.php/Installation_guide). I personally used [Anarchy Installer](https://anarchyinstaller.org/) to install Arch and some important packages, but it is neither necessary, nor entirely recommended. 39 | 40 | ### Fonts 41 | All the applications have been setup to use the [Cozette](https://github.com/slavfox/Cozette) font, so follow the instructions on its Github for installation. 42 | 43 | ### Applications 44 | The official [Arch repos](https://www.archlinux.org/packages/) or the [Arch User Repository (AUR)](https://aur.archlinux.org/) contain all of the applications I use, sometimes under a different name than the folder. 45 | 46 | For [Sway](https://swaywm.org), make sure to use [#5639](https://github.com/swaywm/sway/pull/5639) by applying it as a [patch](https://patch-diff.githubusercontent.com/raw/swaywm/sway/pull/5639.patch) and [compiling from source](https://github.com/swaywm/sway#compiling-from-source) for the curved borders with drop shadows. Keep in mind that the config syntax may change and that not all functions work. Refer to the inline `TODO` comments and discussion threads to watch the progress. 47 | 48 | ### Scripts 49 | I have some scripts in `scripts/` that I use which may contain some documentation within them. You may not have a use for them, or you may have to edit them to work on your install. 50 | 51 | # Screenshots 52 | |![Htop, neovim, bonsai.sh, pipes.sh, cava, neofetch, waybar][banner]|![Weechat and Discord][comms]| 53 | |---|---| 54 | |From top-left to bottom-right: `htop`, `nvim`, `bonsai.sh`, `pipes.sh`, `cava`, `neofetch`, `waybar`|Weechat and Discord (Lightcord)| 55 | 56 | 57 | [banner]: https://raw.githubusercontent.com/TheAvidDev/dotfiles/master/img/banner.png 58 | [comms]: https://raw.githubusercontent.com/TheAvidDev/dotfiles/master/img/comms.png 59 | -------------------------------------------------------------------------------- /aerc/aerc.conf: -------------------------------------------------------------------------------- 1 | # 2 | # aerc main configuration 3 | 4 | [ui] 5 | # 6 | # Describes the format for each row in a mailbox view. This field is compatible 7 | # with mutt's printf-like syntax. 8 | # 9 | # Default: %D %-17.17n %Z %s 10 | index-format=%D %-17.17n %Z %s 11 | 12 | # 13 | # See time.Time#Format at https://godoc.org/time#Time.Format 14 | # 15 | # Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time) 16 | timestamp-format=2006-01-02 15:04 17 | 18 | # 19 | # Width of the sidebar, including the border. 20 | # 21 | # Default: 20 22 | sidebar-width=20 23 | 24 | # 25 | # Message to display when viewing an empty folder. 26 | # 27 | # Default: (no messages) 28 | empty-message=(no messages) 29 | 30 | # Message to display when no folders exists or are all filtered 31 | # 32 | # Default: (no folders) 33 | empty-dirlist=(no folders) 34 | 35 | # Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel 36 | # 37 | # Default: false 38 | mouse-enabled=false 39 | 40 | # 41 | # Ring the bell when new messages are received 42 | # 43 | # Default: true 44 | new-message-bell=false 45 | 46 | # Marker to show before a pinned tab's name. 47 | # 48 | # Default: ` 49 | pinned-tab-marker='`' 50 | 51 | # Describes the format string to use for the directory list 52 | # 53 | # Default: %n %>r 54 | dirlist-format=%n %>r 55 | 56 | # List of space-separated criteria to sort the messages by, see *sort* 57 | # command in *aerc*(1) for reference. Prefixing a criterion with "-r " 58 | # reverses that criterion. 59 | # 60 | # Example: "from -r date" 61 | # 62 | # Default: "" 63 | sort= 64 | 65 | # Moves to next message when the current message is deleted 66 | # 67 | # Default: true 68 | next-message-on-delete=true 69 | 70 | [viewer] 71 | # 72 | # Specifies the pager to use when displaying emails. Note that some filters 73 | # may add ANSI codes to add color to rendered emails, so you may want to use a 74 | # pager which supports ANSI codes. 75 | # 76 | # Default: less -R 77 | pager=less -R 78 | 79 | # 80 | # If an email offers several versions (multipart), you can configure which 81 | # mimetype to prefer. For example, this can be used to prefer plaintext over 82 | # html emails. 83 | # 84 | # Default: text/plain,text/html 85 | alternatives=text/plain,text/html 86 | 87 | # 88 | # Default setting to determine whether to show full headers or only parsed 89 | # ones in message viewer. 90 | # 91 | # Default: false 92 | show-headers=false 93 | 94 | # 95 | # Layout of headers when viewing a message. To display multiple headers in the 96 | # same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if 97 | # none of their specified headers are present in the message. 98 | # 99 | # Default: From|To,Cc|Bcc,Date,Subject 100 | header-layout=From|To,Cc|Bcc,Date,Subject 101 | 102 | # Whether to always show the mimetype of an email, even when it is just a single part 103 | # 104 | # Default: false 105 | always-show-mime=false 106 | 107 | # How long to wait after the last input before auto-completion is triggered. 108 | # 109 | # Default: 250ms 110 | completion-delay=250ms 111 | 112 | # 113 | # Global switch for completion popovers 114 | # 115 | # Default: true 116 | completion-popovers=true 117 | 118 | [compose] 119 | # 120 | # Specifies the command to run the editor with. It will be shown in an embedded 121 | # terminal, though it may also launch a graphical window if the environment 122 | # supports it. Defaults to $EDITOR, or vi. 123 | editor= 124 | 125 | # 126 | # Default header fields to display when composing a message. To display 127 | # multiple headers in the same row, separate them with a pipe, e.g. "To|From". 128 | # 129 | # Default: To|From,Subject 130 | header-layout=To|From,Subject 131 | 132 | # 133 | # Specifies the command to be used to tab-complete email addresses. Any 134 | # occurrence of "%s" in the address-book-cmd will be replaced with what the 135 | # user has typed so far. 136 | # 137 | # The command must output the completions to standard output, one completion 138 | # per line. Each line must be tab-delimited, with an email address occurring as 139 | # the first field. Only the email address field is required. The second field, 140 | # if present, will be treated as the contact name. Additional fields are 141 | # ignored. 142 | address-book-cmd= 143 | 144 | [filters] 145 | # 146 | # Filters allow you to pipe an email body through a shell command to render 147 | # certain emails differently, e.g. highlighting them with ANSI escape codes. 148 | # 149 | # The first filter which matches the email's mimetype will be used, so order 150 | # them from most to least specific. 151 | # 152 | # You can also match on non-mimetypes, by prefixing with the header to match 153 | # against (non-case-sensitive) and a comma, e.g. subject,text will match a 154 | # subject which contains "text". Use header,~regex to match against a regex. 155 | subject,~^\[PATCH=awk -f /usr/share/aerc/filters/hldiff 156 | text/html=/usr/share/aerc/filters/html 157 | text/*=awk -f /usr/share/aerc/filters/plaintext 158 | #image/*=catimg -w $(tput cols) - 159 | 160 | [triggers] 161 | # 162 | # Triggers specify commands to execute when certain events occur. 163 | # 164 | # Example: 165 | # new-email=exec notify-send "New email from %n" "%s" 166 | 167 | # 168 | # Executed when a new email arrives in the selected folder 169 | new-email=exec notify-send -a " %T" "%n" "%s" 170 | 171 | [templates] 172 | # Templates are used to populate email bodies automatically. 173 | # 174 | 175 | # The directories where the templates are stored. It takes a colon-separated 176 | # list of directories. 177 | # 178 | # default: /usr/share/aerc/templates/ 179 | template-dirs=/usr/share/aerc/templates/ 180 | 181 | # The template to be used for quoted replies. 182 | # 183 | # default: quoted_reply 184 | quoted-reply=quoted_reply 185 | 186 | # The template to be used for forward as body. 187 | # 188 | # default: forward_as_body 189 | forwards=forward_as_body 190 | -------------------------------------------------------------------------------- /amfora/config.toml: -------------------------------------------------------------------------------- 1 | # This is the default config file. 2 | # It also shows all the default values, if you don't create the file. 3 | 4 | # All URL values may omit the scheme and/or port, as well as the beginning double slash 5 | # Valid URL examples: 6 | # gemini://example.com 7 | # //example.com 8 | # example.com 9 | # example.com:123 10 | 11 | 12 | [a-general] 13 | # Press Ctrl-H to access it 14 | home = "gemini://gemini.circumlunar.space" 15 | 16 | # Follow up to 5 Gemini redirects without prompting. 17 | # A prompt is always shown after the 5th redirect and for redirects to protocols other than Gemini. 18 | # If set to false, a prompt will be shown before following redirects. 19 | auto_redirect = false 20 | 21 | # What command to run to open a HTTP(S) URL. 22 | # Set to "default" to try to guess the browser, or set to "off" to not open HTTP(S) URLs. 23 | # If a command is set, than the URL will be added (in quotes) to the end of the command. 24 | # A space will be prepended to the URL. 25 | # 26 | # The best to define a command is using a string array. 27 | # Examples: 28 | # http = ["firefox"] 29 | # http = ["custom-browser", "--flag", "--option=2"] 30 | # http = ["/path/with spaces/in it/firefox"] 31 | # 32 | # Using just a string will also work, but it is deprecated, 33 | # and will degrade if you use paths with spaces. 34 | 35 | http = "default" 36 | 37 | # Any URL that will accept a query string can be put here 38 | search = "gemini://gus.guru/search" 39 | 40 | # Whether colors will be used in the terminal 41 | color = true 42 | 43 | # Whether ANSI color codes from the page content should be rendered 44 | ansi = true 45 | 46 | # Whether to replace list asterisks with unicode bullets 47 | bullets = true 48 | 49 | # A number from 0 to 1, indicating what percentage of the terminal width the left margin should take up. 50 | left_margin = 0.15 51 | 52 | # The max number of columns to wrap a page's text to. Preformatted blocks are not wrapped. 53 | max_width = 100 54 | 55 | # 'downloads' is the path to a downloads folder. 56 | # An empty value means the code will find the default downloads folder for your system. 57 | # If the path does not exist it will be created. 58 | downloads = "" 59 | 60 | # Max size for displayable content in bytes - after that size a download window pops up 61 | page_max_size = 2097152 # 2 MiB 62 | # Max time it takes to load a page in seconds - after that a download window pops up 63 | page_max_time = 10 64 | 65 | # Whether to replace tab numbers with emoji favicons, which are cached. 66 | emoji_favicons = false 67 | 68 | 69 | [auth] 70 | # Authentication settings 71 | 72 | [auth.certs] 73 | # Client certificates 74 | # Set domain name equal to path to client cert 75 | # "example.com" = "mycert.crt" 76 | 77 | [auth.keys] 78 | # Client certificate keys 79 | # Set domain name equal to path to key for the client cert above 80 | # "example.com" = "mycert.key" 81 | 82 | 83 | [keybindings] 84 | # In the future there will be more settings here. 85 | 86 | # Hold down shift and press the numbers on your keyboard (1,2,3,4,5,6,7,8,9,0) to set this up. 87 | # It is default set to be accurate for US keyboards. 88 | shift_numbers = "!@#$%^&*()" 89 | 90 | 91 | [url-handlers] 92 | # Allows setting the commands to run for various URL schemes. 93 | # E.g. to open FTP URLs with FileZilla set the following key: 94 | # ftp = "filezilla" 95 | # You can set any scheme to "off" or "" to disable handling it, or 96 | # just leave the key unset. 97 | # 98 | # DO NOT use this for setting the HTTP command. 99 | # Use the http setting in the "a-general" section above. 100 | # 101 | # NOTE: These settings are override by the ones in the proxies section. 102 | 103 | # This is a special key that defines the handler for all URL schemes for which 104 | # no handler is defined. 105 | other = "off" 106 | 107 | 108 | [cache] 109 | # Options for page cache - which is only for text/gemini pages 110 | # Increase the cache size to speed up browsing at the expense of memory 111 | 112 | # Zero values mean there is no limit 113 | max_size = 0 # Size in bytes 114 | max_pages = 30 # The maximum number of pages the cache will store 115 | 116 | 117 | [proxies] 118 | # Allows setting a Gemini proxy for different schemes. 119 | # The settings are similar to the url-handlers section above. 120 | # E.g. to open a gopher page by connecting to a Gemini proxy server: 121 | # gopher = "example.com:123" 122 | # 123 | # Port 1965 is assumed if no port is specified. 124 | # 125 | # NOTE: These settings override any external handlers specified in 126 | # the url-handlers section. 127 | # 128 | # Note that HTTP and HTTPS are treated as separate protocols here. 129 | 130 | [theme] 131 | bg = "#2e3440" 132 | fg = "#eceff4" 133 | tab_num = "#88c0d0" 134 | tab_divider = "#eceff4" 135 | bottombar_bg = "#3b4252" 136 | bottombar_text = "#eceff4" 137 | bottombar_label = "#88c0d0" 138 | 139 | hdg_1 = "#5e81ac" 140 | hdg_2 = "#81a1c1" 141 | hdg_3 = "#8fbcbb" 142 | amfora_link = "#88c0d0" 143 | foreign_link = "#b48ead" 144 | link_number = "#a3be8c" 145 | regular_text = "#eceff4" 146 | quote_text = "#8fbcbb" 147 | preformatted_text = "#eceff4" 148 | list_text = "#eceff4" 149 | 150 | btn_bg = "#4c566a" 151 | btn_text = "#eceff4" 152 | 153 | dl_choice_modal_bg = "#3b4252" 154 | dl_choice_modal_text = "#eceff4" 155 | dl_modal_bg = "#3b4252" 156 | dl_modal_text = "#eceff4" 157 | info_modal_bg = "#3b4252" 158 | info_modal_text = "#eceff4" 159 | error_modal_bg = "#bf616a" 160 | error_modal_text = "#2e3440" 161 | yesno_modal_bg = "#3b4252" 162 | yesno_modal_text = "#eceff4" 163 | tofu_modal_bg = "#3b4252" 164 | tofu_modal_text = "#eceff4" 165 | 166 | input_modal_bg = "#3b4252" 167 | input_modal_text = "#eceff4" 168 | input_modal_field_bg = "#4c566a" 169 | input_modal_field_text = "#eceff4" 170 | 171 | bkmk_modal_bg = "#3b4252" 172 | bkmk_modal_text = "#eceff4" 173 | bkmk_modal_label = "#88c0d0" 174 | bkmk_modal_field_bg = "#4c566a" 175 | bkmk_modal_field_text = "#eceff4" 176 | -------------------------------------------------------------------------------- /weechat/irc.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- irc.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [look] 13 | buffer_open_before_autojoin = on 14 | buffer_open_before_join = off 15 | buffer_switch_autojoin = on 16 | buffer_switch_join = on 17 | color_nicks_in_names = off 18 | color_nicks_in_nicklist = off 19 | color_nicks_in_server_messages = on 20 | color_pv_nick_like_channel = on 21 | ctcp_time_format = "%a, %d %b %Y %T %z" 22 | display_away = local 23 | display_ctcp_blocked = on 24 | display_ctcp_reply = on 25 | display_ctcp_unknown = on 26 | display_host_join = on 27 | display_host_join_local = on 28 | display_host_quit = on 29 | display_join_message = "329,332,333,366" 30 | display_old_topic = on 31 | display_pv_away_once = on 32 | display_pv_back = on 33 | display_pv_warning_address = off 34 | highlight_channel = "$nick" 35 | highlight_pv = "$nick" 36 | highlight_server = "$nick" 37 | highlight_tags_restrict = "irc_privmsg,irc_notice" 38 | item_channel_modes_hide_args = "k" 39 | item_display_server = buffer_plugin 40 | item_nick_modes = on 41 | item_nick_prefix = on 42 | join_auto_add_chantype = off 43 | msgbuffer_fallback = current 44 | new_channel_position = none 45 | new_pv_position = none 46 | nick_completion_smart = speakers 47 | nick_mode = prefix 48 | nick_mode_empty = off 49 | nicks_hide_password = "nickserv" 50 | notice_as_pv = auto 51 | notice_welcome_redirect = on 52 | notice_welcome_tags = "" 53 | notify_tags_ison = "notify_message" 54 | notify_tags_whois = "notify_message" 55 | part_closes_buffer = off 56 | pv_buffer = independent 57 | pv_tags = "notify_private" 58 | raw_messages = 256 59 | server_buffer = merge_with_core 60 | smart_filter = on 61 | smart_filter_account = on 62 | smart_filter_chghost = on 63 | smart_filter_delay = 5 64 | smart_filter_join = on 65 | smart_filter_join_unmask = 30 66 | smart_filter_mode = "+" 67 | smart_filter_nick = on 68 | smart_filter_quit = on 69 | temporary_servers = off 70 | topic_strip_colors = off 71 | 72 | [color] 73 | input_nick = lightcyan 74 | item_channel_modes = default 75 | item_lag_counting = default 76 | item_lag_finished = yellow 77 | item_nick_modes = default 78 | message_account = cyan 79 | message_chghost = brown 80 | message_join = green 81 | message_kick = red 82 | message_quit = red 83 | mirc_remap = "1,-1:darkgray" 84 | nick_prefixes = "y:lightred;q:lightred;a:lightcyan;o:lightgreen;h:lightmagenta;v:yellow;*:lightblue" 85 | notice = green 86 | reason_kick = default 87 | reason_quit = default 88 | topic_current = default 89 | topic_new = white 90 | topic_old = default 91 | 92 | [network] 93 | autoreconnect_delay_growing = 2 94 | autoreconnect_delay_max = 600 95 | ban_mask_default = "*!$ident@$host" 96 | colors_receive = on 97 | colors_send = on 98 | lag_check = 60 99 | lag_max = 1800 100 | lag_min_show = 500 101 | lag_reconnect = 300 102 | lag_refresh_interval = 1 103 | notify_check_ison = 1 104 | notify_check_whois = 5 105 | sasl_fail_unavailable = on 106 | send_unknown_commands = off 107 | whois_double_nick = off 108 | 109 | [msgbuffer] 110 | 111 | [ctcp] 112 | 113 | [ignore] 114 | 115 | [server_default] 116 | addresses = "" 117 | anti_flood_prio_high = 2 118 | anti_flood_prio_low = 2 119 | autoconnect = off 120 | autojoin = "" 121 | autoreconnect = on 122 | autoreconnect_delay = 10 123 | autorejoin = off 124 | autorejoin_delay = 30 125 | away_check = 0 126 | away_check_max_nicks = 25 127 | capabilities = "" 128 | charset_message = message 129 | command = "" 130 | command_delay = 0 131 | connection_timeout = 60 132 | ipv6 = on 133 | local_hostname = "" 134 | msg_kick = "" 135 | msg_part = "WeeChat ${info:version}" 136 | msg_quit = "WeeChat ${info:version}" 137 | nicks = "main,main1,main2,main3,main4" 138 | nicks_alternate = on 139 | notify = "" 140 | password = "" 141 | proxy = "" 142 | realname = "" 143 | sasl_fail = continue 144 | sasl_key = "" 145 | sasl_mechanism = plain 146 | sasl_password = "" 147 | sasl_timeout = 15 148 | sasl_username = "" 149 | split_msg_max_length = 512 150 | ssl = off 151 | ssl_cert = "" 152 | ssl_dhkey_size = 2048 153 | ssl_fingerprint = "" 154 | ssl_password = "" 155 | ssl_priorities = "NORMAL:-VERS-SSL3.0" 156 | ssl_verify = on 157 | usermode = "" 158 | username = "main" 159 | 160 | [server] 161 | freenode.addresses = "chat.freenode.net/6697" 162 | freenode.proxy 163 | freenode.ipv6 164 | freenode.ssl = on 165 | freenode.ssl_cert 166 | freenode.ssl_password 167 | freenode.ssl_priorities 168 | freenode.ssl_dhkey_size 169 | freenode.ssl_fingerprint 170 | freenode.ssl_verify 171 | freenode.password 172 | freenode.capabilities 173 | freenode.sasl_mechanism 174 | freenode.sasl_username 175 | freenode.sasl_password 176 | freenode.sasl_key 177 | freenode.sasl_timeout 178 | freenode.sasl_fail 179 | freenode.autoconnect 180 | freenode.autoreconnect 181 | freenode.autoreconnect_delay 182 | freenode.nicks 183 | freenode.nicks_alternate 184 | freenode.username 185 | freenode.realname 186 | freenode.local_hostname 187 | freenode.usermode 188 | freenode.command 189 | freenode.command_delay 190 | freenode.autojoin 191 | freenode.autorejoin 192 | freenode.autorejoin_delay 193 | freenode.connection_timeout 194 | freenode.anti_flood_prio_high 195 | freenode.anti_flood_prio_low 196 | freenode.away_check 197 | freenode.away_check_max_nicks 198 | freenode.msg_kick 199 | freenode.msg_part 200 | freenode.msg_quit 201 | freenode.notify 202 | freenode.split_msg_max_length 203 | freenode.charset_message 204 | test.addresses = "192.168.0.107/6668" 205 | test.proxy 206 | test.ipv6 207 | test.ssl 208 | test.ssl_cert 209 | test.ssl_password 210 | test.ssl_priorities 211 | test.ssl_dhkey_size 212 | test.ssl_fingerprint 213 | test.ssl_verify 214 | test.password 215 | test.capabilities 216 | test.sasl_mechanism 217 | test.sasl_username 218 | test.sasl_password 219 | test.sasl_key 220 | test.sasl_timeout 221 | test.sasl_fail 222 | test.autoconnect 223 | test.autoreconnect 224 | test.autoreconnect_delay 225 | test.nicks 226 | test.nicks_alternate 227 | test.username 228 | test.realname 229 | test.local_hostname 230 | test.usermode 231 | test.command 232 | test.command_delay 233 | test.autojoin 234 | test.autorejoin 235 | test.autorejoin_delay 236 | test.connection_timeout 237 | test.anti_flood_prio_high 238 | test.anti_flood_prio_low 239 | test.away_check 240 | test.away_check_max_nicks 241 | test.msg_kick 242 | test.msg_part 243 | test.msg_quit 244 | test.notify 245 | test.split_msg_max_length 246 | test.charset_message 247 | -------------------------------------------------------------------------------- /sway/config: -------------------------------------------------------------------------------- 1 | ### Variables 2 | # Alt 3 | set $mod Mod1 4 | set $left h 5 | set $down j 6 | set $up k 7 | set $right l 8 | set $term alacritty 9 | set $menu wofi 10 | # Monitors 11 | set $mon1 DP-2 12 | set $mon2 HDMI-A-3 13 | 14 | ### Output configuration 15 | output * { 16 | bg ~/.config/sway/wallpapers/crystal.png fill 17 | } 18 | output $mon1 { 19 | resolution 1920x1080 position 1080,420 20 | } 21 | output $mon2 { 22 | resolution 1920x1080 position 0,0 transform 90 23 | } 24 | 25 | ### Input configuration 26 | input "type:pointer" { 27 | accel_profile flat 28 | pointer_accel -0.1 29 | scroll_factor 2 30 | } 31 | 32 | input "type:tablet_tool" { 33 | map_to_output $mon1 34 | } 35 | 36 | ### Key bindings 37 | # 38 | # Basics: 39 | # 40 | # Start a terminal 41 | bindsym $mod+Return exec $term 42 | bindsym $mod+Shift+Return exec $term --class=floating 43 | 44 | # Kill focused window 45 | bindsym $mod+Shift+q kill 46 | 47 | # Start your launcher 48 | bindsym $mod+d exec $menu 49 | 50 | # Drag floating windows by holding down $mod and left mouse button. 51 | # Resize them with right mouse button + $mod. 52 | # Despite the name, also works for non-floating windows. 53 | # Change normal to inverse to use left mouse button for resizing and right 54 | # mouse button for dragging. 55 | floating_modifier $mod normal 56 | 57 | # Reload the configuration file 58 | bindsym $mod+Shift+r reload 59 | 60 | # Exit sway (logs you out of your Wayland session) 61 | bindsym $mod+Shift+e exec \ 62 | swaynag -t warning -m 'Exit Sway?' -b 'Yes' 'swaymsg exit' 63 | 64 | # 65 | # Moving around: 66 | # 67 | # Move your focus around 68 | bindsym $mod+$left focus left 69 | bindsym $mod+$down focus down 70 | bindsym $mod+$up focus up 71 | bindsym $mod+$right focus right 72 | # Or use $mod+[up|down|left|right] 73 | #bindsym $mod+Left focus left 74 | #bindsym $mod+Down focus down 75 | #bindsym $mod+Up focus up 76 | #bindsym $mod+Right focus right 77 | 78 | # Move the focused window with the same, but add Shift 79 | bindsym $mod+Shift+$left move left 80 | bindsym $mod+Shift+$down move down 81 | bindsym $mod+Shift+$up move up 82 | bindsym $mod+Shift+$right move right 83 | # Ditto, with arrow keys 84 | #bindsym $mod+Shift+Left move left 85 | #bindsym $mod+Shift+Down move down 86 | #bindsym $mod+Shift+Up move up 87 | #bindsym $mod+Shift+Right move right 88 | 89 | # 90 | # Workspaces: 91 | # 92 | # Workspace definitions 93 | workspace 1a output $mon1 94 | workspace 2a output $mon1 95 | workspace 3a output $mon1 96 | workspace 4a output $mon1 97 | workspace 5a output $mon1 98 | workspace 6a output $mon1 99 | workspace 7a output $mon1 100 | workspace 8a output $mon1 101 | workspace 9a output $mon1 102 | workspace 0a output $mon1 103 | 104 | workspace 1b output $mon2 105 | workspace 2b output $mon2 106 | workspace 3b output $mon2 107 | workspace 4b output $mon2 108 | workspace 5b output $mon2 109 | workspace 6b output $mon2 110 | workspace 7b output $mon2 111 | workspace 8b output $mon2 112 | workspace 9b output $mon2 113 | workspace 0b output $mon2 114 | 115 | # Changing workspaces 116 | bindsym $mod+1 workspace 1a 117 | bindsym $mod+2 workspace 2a 118 | bindsym $mod+3 workspace 3a 119 | bindsym $mod+4 workspace 4a 120 | bindsym $mod+5 workspace 5a 121 | bindsym $mod+6 workspace 6a 122 | bindsym $mod+7 workspace 7a 123 | bindsym $mod+8 workspace 8a 124 | bindsym $mod+9 workspace 9a 125 | bindsym $mod+0 workspace 0a 126 | 127 | bindsym $mod+Ctrl+1 workspace 1b 128 | bindsym $mod+Ctrl+2 workspace 2b 129 | bindsym $mod+Ctrl+3 workspace 3b 130 | bindsym $mod+Ctrl+4 workspace 4b 131 | bindsym $mod+Ctrl+5 workspace 5b 132 | bindsym $mod+Ctrl+6 workspace 6b 133 | bindsym $mod+Ctrl+7 workspace 7b 134 | bindsym $mod+Ctrl+8 workspace 8b 135 | bindsym $mod+Ctrl+9 workspace 9b 136 | bindsym $mod+Ctrl+0 workspace 0b 137 | 138 | # Moving containers to workspaces 139 | bindsym $mod+Shift+1 move container to workspace 1a 140 | bindsym $mod+Shift+2 move container to workspace 2a 141 | bindsym $mod+Shift+3 move container to workspace 3a 142 | bindsym $mod+Shift+4 move container to workspace 4a 143 | bindsym $mod+Shift+5 move container to workspace 5a 144 | bindsym $mod+Shift+6 move container to workspace 6a 145 | bindsym $mod+Shift+7 move container to workspace 7a 146 | bindsym $mod+Shift+8 move container to workspace 8a 147 | bindsym $mod+Shift+9 move container to workspace 9a 148 | bindsym $mod+Shift+0 move container to workspace 0a 149 | 150 | bindsym $mod+Shift+Ctrl+1 move container to workspace 1b 151 | bindsym $mod+Shift+Ctrl+2 move container to workspace 2b 152 | bindsym $mod+Shift+Ctrl+3 move container to workspace 3b 153 | bindsym $mod+Shift+Ctrl+4 move container to workspace 4b 154 | bindsym $mod+Shift+Ctrl+5 move container to workspace 5b 155 | bindsym $mod+Shift+Ctrl+6 move container to workspace 6b 156 | bindsym $mod+Shift+Ctrl+7 move container to workspace 7b 157 | bindsym $mod+Shift+Ctrl+8 move container to workspace 8b 158 | bindsym $mod+Shift+Ctrl+9 move container to workspace 9b 159 | bindsym $mod+Shift+Ctrl+0 move container to workspace 0b 160 | 161 | # 162 | # Layout stuff: 163 | # 164 | # You can "split" the current object of your focus with 165 | # $mod+b or $mod+v, for horizontal and vertical splits 166 | # respectively. 167 | bindsym $mod+b splith 168 | bindsym $mod+v splitv 169 | 170 | # Switch the current container between different layout styles 171 | bindsym $mod+s layout stacking 172 | bindsym $mod+w layout tabbed 173 | bindsym $mod+e layout toggle split 174 | 175 | # Make the current focus fullscreen 176 | bindsym $mod+f fullscreen 177 | 178 | # Toggle the current focus between tiling and floating mode 179 | bindsym $mod+Shift+space floating toggle 180 | 181 | # Swap focus between the tiling area and the floating area 182 | bindsym $mod+space focus mode_toggle 183 | 184 | # Move focus to the parent container 185 | bindsym $mod+a focus parent 186 | 187 | # 188 | # Scratchpad: 189 | # 190 | # Sway has a "scratchpad", which is a bag of holding for windows. 191 | # You can send windows there and get them back later. 192 | 193 | # Move the currently focused window to the scratchpad 194 | bindsym $mod+Shift+minus move scratchpad 195 | 196 | # Show the next scratchpad window or hide the focused scratchpad window. 197 | # If there are multiple scratchpad windows, this command cycles through them. 198 | bindsym $mod+minus scratchpad show 199 | 200 | # 201 | # Resizing containers: 202 | # 203 | mode "resize" { 204 | # left will shrink the containers width 205 | # right will grow the containers width 206 | # up will shrink the containers height 207 | # down will grow the containers height 208 | bindsym $left resize shrink width 10px 209 | bindsym $down resize grow height 10px 210 | bindsym $up resize shrink height 10px 211 | bindsym $right resize grow width 10px 212 | 213 | # Return to default mode 214 | bindsym Return mode "default" 215 | bindsym Escape mode "default" 216 | } 217 | bindsym $mod+r mode "resize" 218 | 219 | # 220 | # Scripts 221 | # 222 | bindsym --release Print exec "~/.config/scripts/screenshot.sh select" 223 | bindsym --release Shift+Print exec "~/.config/scripts/screenshot.sh window" 224 | 225 | bindsym XF86AudioRaiseVolume exec "~/.config/scripts/audio.sh 3%+" 226 | bindsym XF86AudioLowerVolume exec "~/.config/scripts/audio.sh 3%-" 227 | bindsym $mod+m exec "amixer set Master toggle && amixer set Capture toggle" 228 | bindsym $mod+Shift+m exec "amixer set Capture toggle" 229 | 230 | bindsym $mod+Shift+d exec "~/.config/scripts/env/bin/python3 ~/.config/scripts/focus_window.py" 231 | bindsym $mod+o exec "~/.config/scripts/layout.py" 232 | 233 | # 234 | # Notifications 235 | # 236 | bindsym $mod+n exec "makoctl dismiss" 237 | bindsym $mod+Shift+n exec "makoctl dismiss -a" 238 | 239 | # 240 | # Font, borders, and gaps 241 | # 242 | font Cozette 9 243 | gaps inner 28 244 | gaps outer -8 245 | default_border none 246 | 247 | border_images.focused ~/.config/sway/borders/focused.png 248 | border_images.focused_inactive ~/.config/sway/borders/focused_inactive.png 249 | border_images.unfocused ~/.config/sway/borders/unfocused.png 250 | border_images.urgent ~/.config/sway/borders/urgent.png 251 | 252 | # 253 | # Colours 254 | # 255 | client.background n/a #434c5e n/a 256 | client.focused #434c5e #434c5e #eceff4 #434c5e #434c5e 257 | client.focused_inactive #3b4252 #3b4252 #eceff4 #3b4252 #3b4252 258 | client.unfocused #3b4252 #3b4252 #eceff4 #3b4252 #3b4252 259 | client.urgent #434c5e #434c5e #eceff4 #434c5e #434c5e 260 | 261 | # 262 | # Auto start 263 | # 264 | exec waybar 265 | exec mako 266 | include /etc/sway/config.d/* 267 | 268 | # 269 | # Auto floating for windows like Terminals started with Mod+Shift+Return 270 | # 271 | for_window [app_id="floating"] floating enable 272 | 273 | # 274 | # Fix Firefox braindamage 275 | # 276 | bindsym Ctrl+Q exec "" 277 | -------------------------------------------------------------------------------- /weechat/plugins.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- plugins.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [var] 13 | python.slack.auto_open_threads = "false" 14 | python.slack.background_load_all_history = "false" 15 | python.slack.channel_name_typing_indicator = "true" 16 | python.slack.color_buflist_muted_channels = "darkgray" 17 | python.slack.color_deleted = "red" 18 | python.slack.color_edited_suffix = "095" 19 | python.slack.color_reaction_suffix = "darkgray" 20 | python.slack.color_reaction_suffix_added_by_you = "blue" 21 | python.slack.color_thread_suffix = "lightcyan" 22 | python.slack.color_typing_notice = "yellow" 23 | python.slack.colorize_private_chats = "false" 24 | python.slack.debug_level = "3" 25 | python.slack.debug_mode = "false" 26 | python.slack.distracting_channels = "" 27 | python.slack.external_user_suffix = "*" 28 | python.slack.files_download_location = "" 29 | python.slack.group_name_prefix = "&" 30 | python.slack.map_underline_to = "_" 31 | python.slack.migrated = "true" 32 | python.slack.muted_channels_activity = "personal_highlights" 33 | python.slack.never_away = "false" 34 | python.slack.notify_subscribed_threads = "auto" 35 | python.slack.notify_usergroup_handle_updated = "false" 36 | python.slack.record_events = "false" 37 | python.slack.render_bold_as = "bold" 38 | python.slack.render_emoji_as_string = "false" 39 | python.slack.render_italic_as = "italic" 40 | python.slack.send_typing_notice = "true" 41 | python.slack.server_aliases = "" 42 | python.slack.shared_name_prefix = "%" 43 | python.slack.short_buffer_names = "false" 44 | python.slack.show_buflist_presence = "true" 45 | python.slack.show_reaction_nicks = "false" 46 | python.slack.slack_api_token = "${sec.data.slack_token}" 47 | python.slack.slack_timeout = "20000" 48 | python.slack.switch_buffer_on_join = "true" 49 | python.slack.thread_messages_in_channel = "false" 50 | python.slack.unfurl_auto_link_display = "both" 51 | python.slack.unfurl_ignore_alt_text = "false" 52 | python.slack.unhide_buffers_with_activity = "false" 53 | python.slack.use_full_names = "false" 54 | python.vimode.copy_clipboard_cmd = "xclip -selection c" 55 | python.vimode.imap_esc = "" 56 | python.vimode.imap_esc_timeout = "1000" 57 | python.vimode.is_keyword = "a-zA-Z0-9_À-ÿ" 58 | python.vimode.line_number_prefix = "" 59 | python.vimode.line_number_suffix = " " 60 | python.vimode.mode_indicator_cmd_color = "white" 61 | python.vimode.mode_indicator_cmd_color_bg = "cyan" 62 | python.vimode.mode_indicator_insert_color = "white" 63 | python.vimode.mode_indicator_insert_color_bg = "blue" 64 | python.vimode.mode_indicator_normal_color = "white" 65 | python.vimode.mode_indicator_normal_color_bg = "gray" 66 | python.vimode.mode_indicator_prefix = "" 67 | python.vimode.mode_indicator_replace_color = "white" 68 | python.vimode.mode_indicator_replace_color_bg = "red" 69 | python.vimode.mode_indicator_search_color = "white" 70 | python.vimode.mode_indicator_search_color_bg = "magenta" 71 | python.vimode.mode_indicator_suffix = "" 72 | python.vimode.no_warn = "off" 73 | python.vimode.paste_clipboard_cmd = "xclip -selection c -o" 74 | python.vimode.search_vim = "off" 75 | python.vimode.user_command_mapping = ":" 76 | python.vimode.user_mappings = "" 77 | python.vimode.user_mappings_noremap = "" 78 | 79 | [desc] 80 | python.slack.auto_open_threads = "Automatically open threads when mentioned or inresponse to own messages." 81 | python.slack.background_load_all_history = "Load history for each channel in the background as soon as it opens, rather than waiting for the user to look at it." 82 | python.slack.channel_name_typing_indicator = "Change the prefix of a channel from # to > when someone is typing in it. Note that this will (temporarily) affect the sort order if you sort buffers by name rather than by number." 83 | python.slack.color_buflist_muted_channels = "Color to use for muted channels in the buflist" 84 | python.slack.color_deleted = "Color to use for deleted messages and files." 85 | python.slack.color_edited_suffix = "Color to use for (edited) suffix on messages that have been edited." 86 | python.slack.color_reaction_suffix = "Color to use for the [:wave:(@user)] suffix on messages that have reactions attached to them." 87 | python.slack.color_reaction_suffix_added_by_you = "Color to use for reactions that you have added." 88 | python.slack.color_thread_suffix = "Color to use for the [thread: XXX] suffix on messages that have threads attached to them. The special value "multiple" can be used to use a different color for each thread." 89 | python.slack.color_typing_notice = "Color to use for the typing notice." 90 | python.slack.colorize_private_chats = "Whether to use nick-colors in DM windows." 91 | python.slack.debug_level = "Show only this level of debug info (or higher) when debug_mode is on. Lower levels -> more messages." 92 | python.slack.debug_mode = "Open a dedicated buffer for debug messages and start logging to it. How verbose the logging is depends on log_level." 93 | python.slack.distracting_channels = "List of channels to hide." 94 | python.slack.external_user_suffix = "The suffix appended to nicks to indicate external users." 95 | python.slack.files_download_location = "If set, file attachments will be automatically downloaded to this location. "%h" will be replaced by WeeChat home, "~/.weechat" by default. Requires WeeChat 2.2 or newer." 96 | python.slack.group_name_prefix = "The prefix of buffer names for groups (private channels)." 97 | python.slack.map_underline_to = "When sending underlined text to slack, use this formatting character for it. The default ("_") sends it as italics. Use "*" to send bold instead." 98 | python.slack.muted_channels_activity = "Control which activity you see from muted channels, either none, personal_highlights, all_highlights or all. none: Don't show any activity. personal_highlights: Only show personal highlights, i.e. not @channel and @here. all_highlights: Show all highlights, but not other messages. all: Show all activity, like other channels." 99 | python.slack.never_away = "Poke Slack every five minutes so that it never marks you "away"." 100 | python.slack.notify_subscribed_threads = "Control if you want to see a notification in the team buffer when a thread you're subscribed to receives a new message, either auto, true or false. auto means that you only get a notification if auto_open_threads and thread_messages_in_channel both are false. Defaults to auto." 101 | python.slack.notify_usergroup_handle_updated = "Control if you want to see a notification in the team buffer when ausergroup's handle has changed, either true or false." 102 | python.slack.record_events = "Log all traffic from Slack to disk as JSON." 103 | python.slack.render_bold_as = "When receiving bold text from Slack, render it as this in weechat." 104 | python.slack.render_emoji_as_string = "Render emojis as :emoji_name: instead of emoji characters. Enable this if your terminal doesn't support emojis, or set to 'both' if you want to see both renderings. Note that even though this is disabled by default, you need to place https://github.com/wee-slack/wee-slack/blob/master/weemoji.json in your weechat directory to enable rendering emojis as emoji characters." 105 | python.slack.render_italic_as = "When receiving bold text from Slack, render it as this in weechat. If your terminal lacks italic support, consider using "underline" instead." 106 | python.slack.send_typing_notice = "Alert Slack users when you are typing a message in the input bar (Requires reload)" 107 | python.slack.server_aliases = "A comma separated list of `subdomain:alias` pairs. The alias will be used instead of the actual name of the slack (in buffer names, logging, etc). E.g `work:no_fun_allowed` would make your work slack show up as `no_fun_allowed` rather than `work.slack.com`." 108 | python.slack.shared_name_prefix = "The prefix of buffer names for shared channels." 109 | python.slack.short_buffer_names = "Use `foo.#channel` rather than `foo.slack.com.#channel` as the internal name for Slack buffers." 110 | python.slack.show_buflist_presence = "Display a `+` character in the buffer list for present users." 111 | python.slack.show_reaction_nicks = "Display the name of the reacting user(s) alongside each reactji." 112 | python.slack.slack_api_token = "List of Slack API tokens, one per Slack instance you want to connect to. See the README for details on how to get these." 113 | python.slack.slack_timeout = "How long (ms) to wait when communicating with Slack." 114 | python.slack.switch_buffer_on_join = "When /joining a channel, automatically switch to it as well." 115 | python.slack.thread_messages_in_channel = "When enabled shows thread messages in the parent channel." 116 | python.slack.unfurl_auto_link_display = "When displaying ("unfurling") links to channels/users/etc, determine what is displayed when the text matches the url without the protocol. This happens when Slack automatically creates links, e.g. from words separated by dots or email addresses. Set it to "text" to only display the text written by the user, "url" to only display the url or "both" (the default) to display both." 117 | python.slack.unfurl_ignore_alt_text = "When displaying ("unfurling") links to channels/users/etc, ignore the "alt text" present in the message and instead use the canonical name of the thing being linked to." 118 | python.slack.unhide_buffers_with_activity = "When activity occurs on a buffer, unhide it even if it was previously hidden (whether by the user or by the distracting_channels setting)." 119 | python.slack.use_full_names = "Use full names as the nicks for all users. When this is false (the default), display names will be used if set, with a fallback to the full name if display name is not set." 120 | python.vimode.copy_clipboard_cmd = "command used to copy to clipboard; must read input from stdin (default: "xclip -selection c")" 121 | python.vimode.imap_esc = "use alternate mapping to enter Normal mode while in Insert mode; having it set to 'jk' is similar to `:imap jk ` in vim (default: "")" 122 | python.vimode.imap_esc_timeout = "time in ms to wait for the imap_esc sequence to complete (default: "1000")" 123 | python.vimode.is_keyword = "characters recognized as part of a word (default: "a-zA-Z0-9_À-ÿ")" 124 | python.vimode.line_number_prefix = "prefix for line numbers (default: "")" 125 | python.vimode.line_number_suffix = "suffix for line numbers (default: " ")" 126 | python.vimode.mode_indicator_cmd_color = "color for mode indicator in Command mode (default: "white")" 127 | python.vimode.mode_indicator_cmd_color_bg = "background color for mode indicator in Command mode (default: "cyan")" 128 | python.vimode.mode_indicator_insert_color = "color for mode indicator in Insert mode (default: "white")" 129 | python.vimode.mode_indicator_insert_color_bg = "background color for mode indicator in Insert mode (default: "blue")" 130 | python.vimode.mode_indicator_normal_color = "color for mode indicator in Normal mode (default: "white")" 131 | python.vimode.mode_indicator_normal_color_bg = "background color for mode indicator in Normal mode (default: "gray")" 132 | python.vimode.mode_indicator_prefix = "prefix for the bar item mode_indicator (default: "")" 133 | python.vimode.mode_indicator_replace_color = "color for mode indicator in Replace mode (default: "white")" 134 | python.vimode.mode_indicator_replace_color_bg = "background color for mode indicator in Replace mode (default: "red")" 135 | python.vimode.mode_indicator_search_color = "color for mode indicator in Search mode (default: "white")" 136 | python.vimode.mode_indicator_search_color_bg = "background color for mode indicator in Search mode (default: "magenta")" 137 | python.vimode.mode_indicator_suffix = "suffix for the bar item mode_indicator (default: "")" 138 | python.vimode.no_warn = "don't warn about problematic keybindings and tmux/screen (default: "off")" 139 | python.vimode.paste_clipboard_cmd = "command used to paste clipboard; must output content to stdout (default: "xclip -selection c -o")" 140 | python.vimode.search_vim = "allow n/N usage after searching (requires an extra to return to normal mode) (default: "off")" 141 | python.vimode.user_command_mapping = "user alternate mapping to enter Command mode while in Normal mode (default: ":")" 142 | python.vimode.user_mappings = "see the `:nmap` command in the README for more info; please do not modify this field manually unless you know what you're doing (default: "")" 143 | python.vimode.user_mappings_noremap = "see the `:nnoremap` command in the README for more info; please do not modify this field manually unless you know what you're doing (default: "")" 144 | -------------------------------------------------------------------------------- /weechat/weechat.conf: -------------------------------------------------------------------------------- 1 | # 2 | # weechat -- weechat.conf 3 | # 4 | # WARNING: It is NOT recommended to edit this file by hand, 5 | # especially if WeeChat is running. 6 | # 7 | # Use /set or similar command to change settings in WeeChat. 8 | # 9 | # For more info, see: https://weechat.org/doc/quickstart 10 | # 11 | 12 | [debug] 13 | 14 | [startup] 15 | command_after_plugins = "" 16 | command_before_plugins = "" 17 | display_logo = on 18 | display_version = on 19 | sys_rlimit = "" 20 | 21 | [look] 22 | align_end_of_lines = message 23 | align_multiline_words = on 24 | bar_more_down = "++" 25 | bar_more_left = "<<" 26 | bar_more_right = ">>" 27 | bar_more_up = "--" 28 | bare_display_exit_on_input = on 29 | bare_display_time_format = "%H:%M" 30 | buffer_auto_renumber = on 31 | buffer_notify_default = all 32 | buffer_position = end 33 | buffer_search_case_sensitive = off 34 | buffer_search_force_default = off 35 | buffer_search_regex = off 36 | buffer_search_where = prefix_message 37 | buffer_time_format = "%H:%M:%S" 38 | buffer_time_same = "" 39 | color_basic_force_bold = off 40 | color_inactive_buffer = on 41 | color_inactive_message = on 42 | color_inactive_prefix = on 43 | color_inactive_prefix_buffer = on 44 | color_inactive_time = off 45 | color_inactive_window = on 46 | color_nick_offline = off 47 | color_pairs_auto_reset = 5 48 | color_real_white = off 49 | command_chars = "" 50 | command_incomplete = off 51 | confirm_quit = off 52 | confirm_upgrade = off 53 | day_change = on 54 | day_change_message_1date = "-- %a, %d %b %Y --" 55 | day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" 56 | eat_newline_glitch = off 57 | emphasized_attributes = "" 58 | highlight = "" 59 | highlight_regex = "" 60 | highlight_tags = "" 61 | hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0 || ${info:relay_client_count,weechat,connected} > 0" 62 | hotlist_buffer_separator = ", " 63 | hotlist_count_max = 2 64 | hotlist_count_min_msg = 2 65 | hotlist_names_count = 3 66 | hotlist_names_length = 0 67 | hotlist_names_level = 12 68 | hotlist_names_merged_buffers = off 69 | hotlist_prefix = "H: " 70 | hotlist_remove = merged 71 | hotlist_short_names = on 72 | hotlist_sort = group_time_asc 73 | hotlist_suffix = "" 74 | hotlist_unique_numbers = on 75 | input_cursor_scroll = 20 76 | input_share = none 77 | input_share_overwrite = off 78 | input_undo_max = 32 79 | item_away_message = on 80 | item_buffer_filter = "*" 81 | item_buffer_zoom = "!" 82 | item_mouse_status = "M" 83 | item_time_format = "%H:%M" 84 | jump_current_to_previous_buffer = on 85 | jump_previous_buffer_when_closing = on 86 | jump_smart_back_to_buffer = on 87 | key_bind_safe = on 88 | key_grab_delay = 800 89 | mouse = on 90 | mouse_timer_delay = 100 91 | nick_color_force = "" 92 | nick_color_hash = djb2 93 | nick_color_hash_salt = "" 94 | nick_color_stop_chars = "_|[" 95 | nick_prefix = "" 96 | nick_suffix = "" 97 | paste_auto_add_newline = on 98 | paste_bracketed = on 99 | paste_bracketed_timer_delay = 10 100 | paste_max_lines = 1 101 | prefix_action = " *" 102 | prefix_align = right 103 | prefix_align_max = 0 104 | prefix_align_min = 0 105 | prefix_align_more = "+" 106 | prefix_align_more_after = on 107 | prefix_buffer_align = right 108 | prefix_buffer_align_max = 0 109 | prefix_buffer_align_more = "+" 110 | prefix_buffer_align_more_after = on 111 | prefix_error = "=!=" 112 | prefix_join = "-->" 113 | prefix_network = "--" 114 | prefix_quit = "<--" 115 | prefix_same_nick = "" 116 | prefix_same_nick_middle = "" 117 | prefix_suffix = "|" 118 | quote_nick_prefix = "<" 119 | quote_nick_suffix = ">" 120 | quote_time_format = "%H:%M:%S" 121 | read_marker = line 122 | read_marker_always_show = off 123 | read_marker_string = "- " 124 | save_config_on_exit = on 125 | save_config_with_fsync = off 126 | save_layout_on_exit = none 127 | scroll_amount = 3 128 | scroll_bottom_after_switch = off 129 | scroll_page_percent = 100 130 | search_text_not_found_alert = on 131 | separator_horizontal = "-" 132 | separator_vertical = "" 133 | tab_width = 1 134 | time_format = "%a, %d %b %Y %T" 135 | window_auto_zoom = off 136 | window_separator_horizontal = on 137 | window_separator_vertical = on 138 | window_title = "" 139 | word_chars_highlight = "!\u00A0,-,_,|,alnum" 140 | word_chars_input = "!\u00A0,-,_,|,alnum" 141 | 142 | [palette] 143 | 144 | [color] 145 | bar_more = lightmagenta 146 | chat = default 147 | chat_bg = default 148 | chat_buffer = white 149 | chat_channel = white 150 | chat_day_change = cyan 151 | chat_delimiters = green 152 | chat_highlight = yellow 153 | chat_highlight_bg = magenta 154 | chat_host = cyan 155 | chat_inactive_buffer = default 156 | chat_inactive_window = default 157 | chat_nick = lightcyan 158 | chat_nick_colors = "1,2,3,4,5,6,7" 159 | chat_nick_offline = default 160 | chat_nick_offline_highlight = default 161 | chat_nick_offline_highlight_bg = blue 162 | chat_nick_other = cyan 163 | chat_nick_prefix = green 164 | chat_nick_self = white 165 | chat_nick_suffix = green 166 | chat_prefix_action = white 167 | chat_prefix_buffer = brown 168 | chat_prefix_buffer_inactive_buffer = default 169 | chat_prefix_error = yellow 170 | chat_prefix_join = lightgreen 171 | chat_prefix_more = lightmagenta 172 | chat_prefix_network = magenta 173 | chat_prefix_quit = lightred 174 | chat_prefix_suffix = green 175 | chat_read_marker = magenta 176 | chat_read_marker_bg = default 177 | chat_server = brown 178 | chat_tags = red 179 | chat_text_found = yellow 180 | chat_text_found_bg = lightmagenta 181 | chat_time = default 182 | chat_time_delimiters = brown 183 | chat_value = cyan 184 | chat_value_null = blue 185 | emphasized = yellow 186 | emphasized_bg = magenta 187 | input_actions = lightgreen 188 | input_text_not_found = red 189 | item_away = yellow 190 | nicklist_away = cyan 191 | nicklist_group = green 192 | separator = blue 193 | status_count_highlight = magenta 194 | status_count_msg = brown 195 | status_count_other = default 196 | status_count_private = green 197 | status_data_highlight = lightmagenta 198 | status_data_msg = yellow 199 | status_data_other = default 200 | status_data_private = lightgreen 201 | status_filter = green 202 | status_more = yellow 203 | status_mouse = green 204 | status_name = white 205 | status_name_ssl = lightgreen 206 | status_nicklist_count = default 207 | status_number = yellow 208 | status_time = default 209 | 210 | [completion] 211 | base_word_until_cursor = on 212 | command_inline = on 213 | default_template = "%(nicks)|%(irc_channels)" 214 | nick_add_space = on 215 | nick_case_sensitive = off 216 | nick_completer = ": " 217 | nick_first_only = off 218 | nick_ignore_chars = "[]`_-^" 219 | partial_completion_alert = on 220 | partial_completion_command = off 221 | partial_completion_command_arg = off 222 | partial_completion_count = on 223 | partial_completion_other = off 224 | partial_completion_templates = "config_options" 225 | 226 | [history] 227 | display_default = 5 228 | max_buffer_lines_minutes = 0 229 | max_buffer_lines_number = 4096 230 | max_commands = 100 231 | max_visited_buffers = 50 232 | 233 | [proxy] 234 | 235 | [network] 236 | connection_timeout = 60 237 | gnutls_ca_file = "/etc/ssl/certs/ca-certificates.crt" 238 | gnutls_handshake_timeout = 30 239 | proxy_curl = "" 240 | 241 | [plugin] 242 | autoload = "*" 243 | debug = off 244 | extension = ".so,.dll" 245 | path = "%h/plugins" 246 | save_config_on_unload = on 247 | 248 | [bar] 249 | buflist.color_bg = default 250 | buflist.color_bg_inactive = default 251 | buflist.color_delim = default 252 | buflist.color_fg = default 253 | buflist.conditions = "" 254 | buflist.filling_left_right = vertical 255 | buflist.filling_top_bottom = columns_vertical 256 | buflist.hidden = off 257 | buflist.items = "buflist" 258 | buflist.position = left 259 | buflist.priority = 0 260 | buflist.separator = on 261 | buflist.size = 0 262 | buflist.size_max = 0 263 | buflist.type = root 264 | fset.color_bg = default 265 | fset.color_bg_inactive = default 266 | fset.color_delim = cyan 267 | fset.color_fg = default 268 | fset.conditions = "${buffer.full_name} == fset.fset" 269 | fset.filling_left_right = vertical 270 | fset.filling_top_bottom = horizontal 271 | fset.hidden = off 272 | fset.items = "fset" 273 | fset.position = top 274 | fset.priority = 0 275 | fset.separator = on 276 | fset.size = 3 277 | fset.size_max = 3 278 | fset.type = window 279 | input.color_bg = default 280 | input.color_bg_inactive = default 281 | input.color_delim = cyan 282 | input.color_fg = default 283 | input.conditions = "" 284 | input.filling_left_right = vertical 285 | input.filling_top_bottom = horizontal 286 | input.hidden = off 287 | input.items = "mode_indicator+[input_prompt]+(away),[input_search],[input_paste],input_text,[vi_buffer]" 288 | input.position = bottom 289 | input.priority = 1000 290 | input.separator = off 291 | input.size = 1 292 | input.size_max = 0 293 | input.type = window 294 | nicklist.color_bg = default 295 | nicklist.color_bg_inactive = default 296 | nicklist.color_delim = cyan 297 | nicklist.color_fg = default 298 | nicklist.conditions = "${nicklist}" 299 | nicklist.filling_left_right = vertical 300 | nicklist.filling_top_bottom = columns_vertical 301 | nicklist.hidden = on 302 | nicklist.items = "buffer_nicklist" 303 | nicklist.position = right 304 | nicklist.priority = 200 305 | nicklist.separator = on 306 | nicklist.size = 0 307 | nicklist.size_max = 0 308 | nicklist.type = window 309 | status.color_bg = blue 310 | status.color_bg_inactive = default 311 | status.color_delim = cyan 312 | status.color_fg = default 313 | status.conditions = "" 314 | status.filling_left_right = vertical 315 | status.filling_top_bottom = horizontal 316 | status.hidden = off 317 | status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion" 318 | status.position = bottom 319 | status.priority = 500 320 | status.separator = off 321 | status.size = 1 322 | status.size_max = 0 323 | status.type = window 324 | title.color_bg = blue 325 | title.color_bg_inactive = default 326 | title.color_delim = cyan 327 | title.color_fg = default 328 | title.conditions = "" 329 | title.filling_left_right = vertical 330 | title.filling_top_bottom = horizontal 331 | title.hidden = off 332 | title.items = "buffer_title" 333 | title.position = top 334 | title.priority = 500 335 | title.separator = off 336 | title.size = 1 337 | title.size_max = 0 338 | title.type = window 339 | vi_line_numbers.color_bg = default 340 | vi_line_numbers.color_bg_inactive = default 341 | vi_line_numbers.color_delim = default 342 | vi_line_numbers.color_fg = default 343 | vi_line_numbers.conditions = "" 344 | vi_line_numbers.filling_left_right = vertical 345 | vi_line_numbers.filling_top_bottom = vertical 346 | vi_line_numbers.hidden = on 347 | vi_line_numbers.items = "line_numbers" 348 | vi_line_numbers.position = left 349 | vi_line_numbers.priority = 0 350 | vi_line_numbers.separator = off 351 | vi_line_numbers.size = 0 352 | vi_line_numbers.size_max = 0 353 | vi_line_numbers.type = window 354 | 355 | [layout] 356 | _zoom.window = "1;0;0;0;python;dmoj.slack.com.#random" 357 | 358 | [notify] 359 | 360 | [filter] 361 | 362 | [key] 363 | ctrl-? = "/input delete_previous_char" 364 | ctrl-A = "/input move_beginning_of_line" 365 | ctrl-B = "/input move_previous_char" 366 | ctrl-C_ = "/input insert \x1F" 367 | ctrl-Cb = "/input insert \x02" 368 | ctrl-Cc = "/input insert \x03" 369 | ctrl-Ci = "/input insert \x1D" 370 | ctrl-Co = "/input insert \x0F" 371 | ctrl-Cv = "/input insert \x16" 372 | ctrl-D = "/input delete_next_char" 373 | ctrl-E = "/input move_end_of_line" 374 | ctrl-F = "/input move_next_char" 375 | ctrl-H = "/input delete_previous_char" 376 | ctrl-I = "/input complete_next" 377 | ctrl-J = "/input return" 378 | ctrl-K = "/input delete_end_of_line" 379 | ctrl-L = "/window refresh" 380 | ctrl-M = "/input return" 381 | ctrl-N = "/buffer +1" 382 | ctrl-P = "/buffer -1" 383 | ctrl-R = "/input search_text_here" 384 | ctrl-Sctrl-U = "/input set_unread" 385 | ctrl-T = "/input transpose_chars" 386 | ctrl-U = "/input delete_beginning_of_line" 387 | ctrl-W = "/input delete_previous_word" 388 | ctrl-X = "/input switch_active_buffer" 389 | ctrl-Y = "/input clipboard_paste" 390 | meta-meta-OP = "/bar scroll buflist * b" 391 | meta-meta-OQ = "/bar scroll buflist * e" 392 | meta-meta2-11~ = "/bar scroll buflist * b" 393 | meta-meta2-12~ = "/bar scroll buflist * e" 394 | meta-meta2-1~ = "/window scroll_top" 395 | meta-meta2-23~ = "/bar scroll nicklist * b" 396 | meta-meta2-24~ = "/bar scroll nicklist * e" 397 | meta-meta2-4~ = "/window scroll_bottom" 398 | meta-meta2-5~ = "/window scroll_up" 399 | meta-meta2-6~ = "/window scroll_down" 400 | meta-meta2-7~ = "/window scroll_top" 401 | meta-meta2-8~ = "/window scroll_bottom" 402 | meta-meta2-A = "/buffer -1" 403 | meta-meta2-B = "/buffer +1" 404 | meta-meta2-C = "/buffer +1" 405 | meta-meta2-D = "/buffer -1" 406 | meta-- = "/filter toggle @" 407 | meta-/ = "/input jump_last_buffer_displayed" 408 | meta-0 = "/buffer *10" 409 | meta-1 = "/buffer *1" 410 | meta-2 = "/buffer *2" 411 | meta-3 = "/buffer *3" 412 | meta-4 = "/buffer *4" 413 | meta-5 = "/buffer *5" 414 | meta-6 = "/buffer *6" 415 | meta-7 = "/buffer *7" 416 | meta-8 = "/buffer *8" 417 | meta-9 = "/buffer *9" 418 | meta-< = "/input jump_previously_visited_buffer" 419 | meta-= = "/filter toggle" 420 | meta-> = "/input jump_next_visited_buffer" 421 | meta-B = "/buflist toggle" 422 | meta-OA = "/input history_global_previous" 423 | meta-OB = "/input history_global_next" 424 | meta-OC = "/input move_next_word" 425 | meta-OD = "/input move_previous_word" 426 | meta-OF = "/input move_end_of_line" 427 | meta-OH = "/input move_beginning_of_line" 428 | meta-OP = "/bar scroll buflist * -100%" 429 | meta-OQ = "/bar scroll buflist * +100%" 430 | meta-Oa = "/input history_global_previous" 431 | meta-Ob = "/input history_global_next" 432 | meta-Oc = "/input move_next_word" 433 | meta-Od = "/input move_previous_word" 434 | meta2-11^ = "/bar scroll buflist * -100%" 435 | meta2-11~ = "/bar scroll buflist * -100%" 436 | meta2-12^ = "/bar scroll buflist * +100%" 437 | meta2-12~ = "/bar scroll buflist * +100%" 438 | meta2-15~ = "/buffer -1" 439 | meta2-17~ = "/buffer +1" 440 | meta2-18~ = "/window -1" 441 | meta2-19~ = "/window +1" 442 | meta2-1;3A = "/buffer -1" 443 | meta2-1;3B = "/buffer +1" 444 | meta2-1;3C = "/buffer +1" 445 | meta2-1;3D = "/buffer -1" 446 | meta2-1;3F = "/window scroll_bottom" 447 | meta2-1;3H = "/window scroll_top" 448 | meta2-1;3P = "/bar scroll buflist * b" 449 | meta2-1;3Q = "/bar scroll buflist * e" 450 | meta2-1;5A = "/input history_global_previous" 451 | meta2-1;5B = "/input history_global_next" 452 | meta2-1;5C = "/input move_next_word" 453 | meta2-1;5D = "/input move_previous_word" 454 | meta2-1;5P = "/bar scroll buflist * -100%" 455 | meta2-1;5Q = "/bar scroll buflist * +100%" 456 | meta2-1~ = "/input move_beginning_of_line" 457 | meta2-200~ = "/input paste_start" 458 | meta2-201~ = "/input paste_stop" 459 | meta2-20~ = "/bar scroll title * -30%" 460 | meta2-21~ = "/bar scroll title * +30%" 461 | meta2-23;3~ = "/bar scroll nicklist * b" 462 | meta2-23;5~ = "/bar scroll nicklist * -100%" 463 | meta2-23^ = "/bar scroll nicklist * -100%" 464 | meta2-23~ = "/bar scroll nicklist * -100%" 465 | meta2-24;3~ = "/bar scroll nicklist * e" 466 | meta2-24;5~ = "/bar scroll nicklist * +100%" 467 | meta2-24^ = "/bar scroll nicklist * +100%" 468 | meta2-24~ = "/bar scroll nicklist * +100%" 469 | meta2-3~ = "/input delete_next_char" 470 | meta2-4~ = "/input move_end_of_line" 471 | meta2-5;3~ = "/window scroll_up" 472 | meta2-5~ = "/window page_up" 473 | meta2-6;3~ = "/window scroll_down" 474 | meta2-6~ = "/window page_down" 475 | meta2-7~ = "/input move_beginning_of_line" 476 | meta2-8~ = "/input move_end_of_line" 477 | meta2-A = "/input history_previous" 478 | meta2-B = "/input history_next" 479 | meta2-C = "/input move_next_char" 480 | meta2-D = "/input move_previous_char" 481 | meta2-F = "/input move_end_of_line" 482 | meta2-G = "/window page_down" 483 | meta2-H = "/input move_beginning_of_line" 484 | meta2-I = "/window page_up" 485 | meta2-Z = "/input complete_previous" 486 | meta2-[E = "/buffer -1" 487 | meta-_ = "/input redo" 488 | meta-a = "/input jump_smart" 489 | meta-b = "/input move_previous_word" 490 | meta-d = "/input delete_next_word" 491 | meta-f = "/input move_next_word" 492 | meta-h = "/input hotlist_clear" 493 | meta-jmeta-f = "/buffer -" 494 | meta-jmeta-l = "/buffer +" 495 | meta-jmeta-r = "/server raw" 496 | meta-jmeta-s = "/server jump" 497 | meta-j01 = "/buffer *1" 498 | meta-j02 = "/buffer *2" 499 | meta-j03 = "/buffer *3" 500 | meta-j04 = "/buffer *4" 501 | meta-j05 = "/buffer *5" 502 | meta-j06 = "/buffer *6" 503 | meta-j07 = "/buffer *7" 504 | meta-j08 = "/buffer *8" 505 | meta-j09 = "/buffer *9" 506 | meta-j10 = "/buffer *10" 507 | meta-j11 = "/buffer *11" 508 | meta-j12 = "/buffer *12" 509 | meta-j13 = "/buffer *13" 510 | meta-j14 = "/buffer *14" 511 | meta-j15 = "/buffer *15" 512 | meta-j16 = "/buffer *16" 513 | meta-j17 = "/buffer *17" 514 | meta-j18 = "/buffer *18" 515 | meta-j19 = "/buffer *19" 516 | meta-j20 = "/buffer *20" 517 | meta-j21 = "/buffer *21" 518 | meta-j22 = "/buffer *22" 519 | meta-j23 = "/buffer *23" 520 | meta-j24 = "/buffer *24" 521 | meta-j25 = "/buffer *25" 522 | meta-j26 = "/buffer *26" 523 | meta-j27 = "/buffer *27" 524 | meta-j28 = "/buffer *28" 525 | meta-j29 = "/buffer *29" 526 | meta-j30 = "/buffer *30" 527 | meta-j31 = "/buffer *31" 528 | meta-j32 = "/buffer *32" 529 | meta-j33 = "/buffer *33" 530 | meta-j34 = "/buffer *34" 531 | meta-j35 = "/buffer *35" 532 | meta-j36 = "/buffer *36" 533 | meta-j37 = "/buffer *37" 534 | meta-j38 = "/buffer *38" 535 | meta-j39 = "/buffer *39" 536 | meta-j40 = "/buffer *40" 537 | meta-j41 = "/buffer *41" 538 | meta-j42 = "/buffer *42" 539 | meta-j43 = "/buffer *43" 540 | meta-j44 = "/buffer *44" 541 | meta-j45 = "/buffer *45" 542 | meta-j46 = "/buffer *46" 543 | meta-j47 = "/buffer *47" 544 | meta-j48 = "/buffer *48" 545 | meta-j49 = "/buffer *49" 546 | meta-j50 = "/buffer *50" 547 | meta-j51 = "/buffer *51" 548 | meta-j52 = "/buffer *52" 549 | meta-j53 = "/buffer *53" 550 | meta-j54 = "/buffer *54" 551 | meta-j55 = "/buffer *55" 552 | meta-j56 = "/buffer *56" 553 | meta-j57 = "/buffer *57" 554 | meta-j58 = "/buffer *58" 555 | meta-j59 = "/buffer *59" 556 | meta-j60 = "/buffer *60" 557 | meta-j61 = "/buffer *61" 558 | meta-j62 = "/buffer *62" 559 | meta-j63 = "/buffer *63" 560 | meta-j64 = "/buffer *64" 561 | meta-j65 = "/buffer *65" 562 | meta-j66 = "/buffer *66" 563 | meta-j67 = "/buffer *67" 564 | meta-j68 = "/buffer *68" 565 | meta-j69 = "/buffer *69" 566 | meta-j70 = "/buffer *70" 567 | meta-j71 = "/buffer *71" 568 | meta-j72 = "/buffer *72" 569 | meta-j73 = "/buffer *73" 570 | meta-j74 = "/buffer *74" 571 | meta-j75 = "/buffer *75" 572 | meta-j76 = "/buffer *76" 573 | meta-j77 = "/buffer *77" 574 | meta-j78 = "/buffer *78" 575 | meta-j79 = "/buffer *79" 576 | meta-j80 = "/buffer *80" 577 | meta-j81 = "/buffer *81" 578 | meta-j82 = "/buffer *82" 579 | meta-j83 = "/buffer *83" 580 | meta-j84 = "/buffer *84" 581 | meta-j85 = "/buffer *85" 582 | meta-j86 = "/buffer *86" 583 | meta-j87 = "/buffer *87" 584 | meta-j88 = "/buffer *88" 585 | meta-j89 = "/buffer *89" 586 | meta-j90 = "/buffer *90" 587 | meta-j91 = "/buffer *91" 588 | meta-j92 = "/buffer *92" 589 | meta-j93 = "/buffer *93" 590 | meta-j94 = "/buffer *94" 591 | meta-j95 = "/buffer *95" 592 | meta-j96 = "/buffer *96" 593 | meta-j97 = "/buffer *97" 594 | meta-j98 = "/buffer *98" 595 | meta-j99 = "/buffer *99" 596 | meta-k = "/input grab_key_command" 597 | meta-l = "/window bare" 598 | meta-m = "/mute mouse toggle" 599 | meta-n = "/window scroll_next_highlight" 600 | meta-p = "/window scroll_previous_highlight" 601 | meta-r = "/input delete_line" 602 | meta-s = "/mute spell toggle" 603 | meta-u = "/window scroll_unread" 604 | meta-wmeta-meta2-A = "/window up" 605 | meta-wmeta-meta2-B = "/window down" 606 | meta-wmeta-meta2-C = "/window right" 607 | meta-wmeta-meta2-D = "/window left" 608 | meta-wmeta2-1;3A = "/window up" 609 | meta-wmeta2-1;3B = "/window down" 610 | meta-wmeta2-1;3C = "/window right" 611 | meta-wmeta2-1;3D = "/window left" 612 | meta-wmeta-b = "/window balance" 613 | meta-wmeta-s = "/window swap" 614 | meta-x = "/input zoom_merged_buffer" 615 | meta-z = "/window zoom" 616 | ctrl-_ = "/input undo" 617 | 618 | [key_search] 619 | ctrl-I = "/input search_switch_where" 620 | ctrl-J = "/input search_stop_here" 621 | ctrl-M = "/input search_stop_here" 622 | ctrl-Q = "/input search_stop" 623 | ctrl-R = "/input search_switch_regex" 624 | meta2-A = "/input search_previous" 625 | meta2-B = "/input search_next" 626 | meta-c = "/input search_switch_case" 627 | 628 | [key_cursor] 629 | ctrl-J = "/cursor stop" 630 | ctrl-M = "/cursor stop" 631 | meta-meta2-A = "/cursor move area_up" 632 | meta-meta2-B = "/cursor move area_down" 633 | meta-meta2-C = "/cursor move area_right" 634 | meta-meta2-D = "/cursor move area_left" 635 | meta2-1;3A = "/cursor move area_up" 636 | meta2-1;3B = "/cursor move area_down" 637 | meta2-1;3C = "/cursor move area_right" 638 | meta2-1;3D = "/cursor move area_left" 639 | meta2-A = "/cursor move up" 640 | meta2-B = "/cursor move down" 641 | meta2-C = "/cursor move right" 642 | meta2-D = "/cursor move left" 643 | @chat(python.*):D = "hsignal:slack_cursor_delete" 644 | @chat(python.*):L = "hsignal:slack_cursor_linkarchive" 645 | @chat(python.*):M = "hsignal:slack_cursor_message" 646 | @chat(python.*):R = "hsignal:slack_cursor_reply" 647 | @chat(python.*):T = "hsignal:slack_cursor_thread" 648 | @item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}" 649 | @item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}" 650 | @item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}" 651 | @item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop" 652 | @item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}" 653 | @chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" 654 | @chat:m = "hsignal:chat_quote_message;/cursor stop" 655 | @chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" 656 | 657 | [key_mouse] 658 | @bar(buflist):ctrl-wheeldown = "hsignal:buflist_mouse" 659 | @bar(buflist):ctrl-wheelup = "hsignal:buflist_mouse" 660 | @bar(input):button2 = "/input grab_mouse_area" 661 | @bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%" 662 | @bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" 663 | @bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%" 664 | @bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b" 665 | @chat(fset.fset):button1 = "/window ${_window_number};/fset -go ${_chat_line_y}" 666 | @chat(fset.fset):button2* = "hsignal:fset_mouse" 667 | @chat(fset.fset):wheeldown = "/fset -down 5" 668 | @chat(fset.fset):wheelup = "/fset -up 5" 669 | @chat(python.*):button2 = "hsignal:slack_mouse" 670 | @chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}" 671 | @chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}" 672 | @chat(script.scripts):wheeldown = "/script down 5" 673 | @chat(script.scripts):wheelup = "/script up 5" 674 | @item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}" 675 | @item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}" 676 | @item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}" 677 | @item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}" 678 | @item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}" 679 | @item(buflist):button1* = "hsignal:buflist_mouse" 680 | @item(buflist):button2* = "hsignal:buflist_mouse" 681 | @item(buflist2):button1* = "hsignal:buflist_mouse" 682 | @item(buflist2):button2* = "hsignal:buflist_mouse" 683 | @item(buflist3):button1* = "hsignal:buflist_mouse" 684 | @item(buflist3):button2* = "hsignal:buflist_mouse" 685 | @bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" 686 | @bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" 687 | @chat:button1 = "/window ${_window_number}" 688 | @chat:button1-gesture-left = "/window ${_window_number};/buffer -1" 689 | @chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" 690 | @chat:button1-gesture-right = "/window ${_window_number};/buffer +1" 691 | @chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer" 692 | @chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" 693 | @chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" 694 | @chat:wheeldown = "/window scroll_down -window ${_window_number}" 695 | @chat:wheelup = "/window scroll_up -window ${_window_number}" 696 | @*:button3 = "/cursor go ${_x},${_y}" 697 | --------------------------------------------------------------------------------