Compare commits
20 Commits
master
..
f5b6f8287c
| Author | SHA1 | Date | |
|---|---|---|---|
|
f5b6f8287c
|
|||
| 92b8bbe248 | |||
| d41abb956a | |||
|
2c8cf957ee
|
|||
|
1f342308de
|
|||
|
b6386b6094
|
|||
|
134fe16393
|
|||
|
af86c0c1e5
|
|||
|
15662647d7
|
|||
|
9f8ed18d72
|
|||
|
7acae9b431
|
|||
|
049c916f46
|
|||
|
7ca50dd7fe
|
|||
|
1eb41ac84e
|
|||
|
0009b7c33c
|
|||
|
056888e635
|
|||
|
f1b828c7fe
|
|||
|
5439235834
|
|||
| 747db1cc8c | |||
| 8d0bddf680 |
@@ -1 +0,0 @@
|
||||
Xcursor.theme: posy-black
|
||||
@@ -1,27 +0,0 @@
|
||||
# Utilities
|
||||
alias cls 'clear; echo "( .-.)"'
|
||||
|
||||
alias vencord 'sh -c "$(curl -sS https://raw.githubusercontent.com/Vendicated/VencordInstaller/main/install.sh)"'
|
||||
|
||||
# Places
|
||||
alias applications 'cd ~/.local/share/applications/'
|
||||
alias dot 'cd ~/dotfiles'
|
||||
|
||||
# Layout
|
||||
alias smap layout # Switch map
|
||||
alias us 'layout -t us'
|
||||
alias sv 'layout -t se'
|
||||
|
||||
# SSH
|
||||
alias louis 'vpn --enable && ssh anton@192.168.178.48'
|
||||
|
||||
alias wgon 'echo "$(set_color red)You changed this dimwit, use \'vpn\' instead"'
|
||||
alias wgoff 'echo "$(set_color red)You changed this dimwit, use \'vpn\' instead"'
|
||||
|
||||
# Git
|
||||
#alias glog 'git log --graph --abbrev-commit --decorate --format=format:\'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)\''
|
||||
#alias gref 'git show -s --pretty=reference '
|
||||
alias glog 'git lg'
|
||||
alias gref 'git ref'
|
||||
|
||||
alias disable_webkit 'set -gx WEBKIT_DISABLE_DMABUF_RENDERER 1; set -gx WEBKIT_DISABLE_COMPOSITING_MODE 1'
|
||||
@@ -1,19 +0,0 @@
|
||||
set fish_greeting '( .-.)'
|
||||
|
||||
set PI 3.141592653589
|
||||
set E 2.718281828459
|
||||
|
||||
fish_vi_key_bindings
|
||||
|
||||
set _TEMP /tmp/anton/
|
||||
|
||||
if not test -d $_TEMP
|
||||
mkdir -p $_TEMP
|
||||
end
|
||||
|
||||
set -x GPG_TTY $(tty)
|
||||
|
||||
source ~/.config/fish/alias.fish
|
||||
source ~/.config/fish/prompt.fish
|
||||
|
||||
plug --init --silent
|
||||
@@ -1,31 +0,0 @@
|
||||
# This file contains fish universal variable definitions.
|
||||
# VERSION: 3.0
|
||||
SETUVAR __fish_initialized:3800
|
||||
SETUVAR fish_color_autosuggestion:brblack
|
||||
SETUVAR fish_color_cancel:\x2dr
|
||||
SETUVAR fish_color_command:normal
|
||||
SETUVAR fish_color_comment:red
|
||||
SETUVAR fish_color_cwd:green
|
||||
SETUVAR fish_color_cwd_root:red
|
||||
SETUVAR fish_color_end:green
|
||||
SETUVAR fish_color_error:brred
|
||||
SETUVAR fish_color_escape:brcyan
|
||||
SETUVAR fish_color_history_current:\x2d\x2dbold
|
||||
SETUVAR fish_color_host:normal
|
||||
SETUVAR fish_color_host_remote:yellow
|
||||
SETUVAR fish_color_normal:normal
|
||||
SETUVAR fish_color_operator:brcyan
|
||||
SETUVAR fish_color_param:cyan
|
||||
SETUVAR fish_color_quote:yellow
|
||||
SETUVAR fish_color_redirection:cyan\x1e\x2d\x2dbold
|
||||
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||
SETUVAR fish_color_status:red
|
||||
SETUVAR fish_color_user:brgreen
|
||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||
SETUVAR fish_key_bindings:fish_vi_key_bindings
|
||||
SETUVAR fish_pager_color_completion:normal
|
||||
SETUVAR fish_pager_color_description:yellow\x1e\x2di
|
||||
SETUVAR fish_pager_color_prefix:normal\x1e\x2d\x2dbold\x1e\x2d\x2dunderline
|
||||
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
|
||||
SETUVAR fish_pager_color_selected_background:\x2dr
|
||||
@@ -1,20 +0,0 @@
|
||||
function clip
|
||||
set -g stdin
|
||||
if not tty -s >/dev/null
|
||||
read stdin
|
||||
end
|
||||
set stdin $(string trim -- $stdin)
|
||||
|
||||
set -l argv $(string trim -- $argv)
|
||||
if test -n "$argv"
|
||||
echo "$argv" | xclip -selection clipboard
|
||||
return 0
|
||||
end
|
||||
|
||||
if test -n "$stdin"
|
||||
echo "$stdin" | xclip -selection clipboard
|
||||
return 0
|
||||
end
|
||||
|
||||
xclip -selection clipboard -o
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
function into
|
||||
mkdir -p "$argv" && cd "$argv"
|
||||
end
|
||||
@@ -1,61 +0,0 @@
|
||||
function layout
|
||||
argparse -n "layout" "v/verbose" "t/target=" -- $argv
|
||||
or return 1
|
||||
|
||||
set _target
|
||||
|
||||
if set -q _flag_target
|
||||
set _target "$_flag_target"
|
||||
end
|
||||
|
||||
if test -f "$_TEMP/curr-layout"
|
||||
if not set -q _flag_target
|
||||
switch (cat "$_TEMP/curr-layout")
|
||||
case us
|
||||
set _target "sv"
|
||||
case se
|
||||
set _target "us"
|
||||
case sv
|
||||
set _target "us"
|
||||
case '*'
|
||||
if set -q _flag_verbose
|
||||
echo "Unregognized layout set in /curr-layout file; stopping..."
|
||||
end
|
||||
return 1
|
||||
end
|
||||
end
|
||||
else
|
||||
if set -q _flag_verbose; and not set -q _flag_target
|
||||
echo "Could not determine current layout; defaulting to US"
|
||||
end
|
||||
echo "us" > "$_TEMP/curr-layout"
|
||||
if not set -q _flag_target
|
||||
set _target "sv"
|
||||
end
|
||||
end
|
||||
|
||||
if not set -q _target
|
||||
return 2
|
||||
end
|
||||
|
||||
if set -q _flag_verbose
|
||||
switch (echo $_target)
|
||||
case sv
|
||||
echo "Switching to Swedish layout..."
|
||||
case us
|
||||
echo "Switching to U.S. layout..."
|
||||
end
|
||||
end
|
||||
|
||||
switch (echo $_target)
|
||||
case sv
|
||||
set _target se
|
||||
case '*'
|
||||
end
|
||||
|
||||
if setxkbmap -layout $_target
|
||||
echo $_target > "$_TEMP/curr-layout"
|
||||
end
|
||||
|
||||
return $status
|
||||
end
|
||||
@@ -1,333 +0,0 @@
|
||||
# Simple custom made manager, because clearly we can't have nice things.
|
||||
# (fisher uses config folder, and plug.fish has went through a rework)
|
||||
|
||||
function plug
|
||||
set -lx plug_path "$__fish_user_data_dir/plug"
|
||||
|
||||
set -lx plug_completions "$plug_path/completions"
|
||||
set -lx plug_functions "$plug_path/functions"
|
||||
set -lx plug_meta "$plug_path/meta"
|
||||
set -lx plug_confd "$plug_path/conf.d" # startup
|
||||
set -lx plug_temp "$plug_path/tmp"
|
||||
|
||||
function _plug_ensure_dir
|
||||
if not test -e $argv
|
||||
mkdir -p $argv
|
||||
end
|
||||
end
|
||||
|
||||
_plug_ensure_dir $plug_path
|
||||
|
||||
_plug_ensure_dir $plug_completions
|
||||
_plug_ensure_dir $plug_functions
|
||||
_plug_ensure_dir $plug_meta
|
||||
_plug_ensure_dir $plug_confd
|
||||
|
||||
argparse -n plug -x i,r,u,I,l,q -x l,s 'i/install=' 'r/remove=' 'q/query=' 'u/update=' l/list I/init s/silent -- $argv
|
||||
or return 1
|
||||
|
||||
set -lx verbose true
|
||||
if set -q _flag_silent
|
||||
set verbose false
|
||||
end
|
||||
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color --bold white) "Plug v0.0.1" (set_color normal))
|
||||
end
|
||||
|
||||
if not set -q _plug_initalized
|
||||
set -g _plug_initalized
|
||||
|
||||
set fish_complete_path $fish_complete_path[1] \
|
||||
$plug_completions \
|
||||
$fish_complete_path[2..]
|
||||
|
||||
set fish_function_path $fish_function_path[1] \
|
||||
$plug_functions \
|
||||
$fish_function_path[2..]
|
||||
|
||||
for script in $plug_confd/*
|
||||
source $script
|
||||
end
|
||||
end
|
||||
|
||||
if set -q _flag_init
|
||||
return 0
|
||||
end
|
||||
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color green) " Plug ready")
|
||||
end
|
||||
|
||||
set -l cmd
|
||||
set -l target
|
||||
|
||||
if set -q _flag_install
|
||||
set target $_flag_install
|
||||
set cmd install
|
||||
else if set -q _flag_remove
|
||||
set target $_flag_remove
|
||||
set cmd remove
|
||||
else if set -q _flag_update
|
||||
set target $_flag_update
|
||||
set cmd update
|
||||
else if set -q _flag_query
|
||||
set target $_flag_query
|
||||
set cmd query
|
||||
end
|
||||
|
||||
if set -q _flag_list
|
||||
set cmd list
|
||||
end
|
||||
|
||||
if test -z $cmd
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color --bold red) " No command provided")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
function _plug_parse_url
|
||||
set -l url $argv
|
||||
|
||||
# long url
|
||||
if string match -q -r 'http(s)?:\/\/.*\..*\/.*\/.*' -- $url
|
||||
echo $url
|
||||
return 0
|
||||
end
|
||||
|
||||
# short url
|
||||
if string match -q -r '.*\/.*' -- $url
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color yellow) " Using GitHub as git provider") 1>&2
|
||||
end
|
||||
set url "https://github.com/$url"
|
||||
echo $url
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color --bold red) " Not yet implemented")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
function _plug_get_pack_name
|
||||
set -l url $argv
|
||||
|
||||
set -l matches $(string match -r '(^.*\/|^)(.+?\/.*?)(.git)?$' -- $url)
|
||||
|
||||
echo $matches[3]
|
||||
|
||||
return 0
|
||||
end
|
||||
|
||||
function _plug_install
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color yellow) " Installing $display")
|
||||
end
|
||||
|
||||
|
||||
set -l url $(_plug_parse_url $argv)
|
||||
|
||||
if test -e $out
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color red) " Temporary directory for $name already exists ($out)")
|
||||
echo $(string join '' -- (set_color --bold red) " Failed to prepare installation, is there another plug process open?")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
mkdir -p $out
|
||||
|
||||
if test -e $journal
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color red) " Journal file $journal already exists")
|
||||
echo $(string join '' -- (set_color --bold red) " $name seems to already be installed, '--remove' it first, or use '--update' to reinstall it")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
touch $journal
|
||||
|
||||
if not set -l hash $(git ls-remote $url HEAD)
|
||||
echo $(string join '' -- (set_color --bold red) " Could not retrieve latest hash from $url, did you make a typo?")
|
||||
return 0
|
||||
end
|
||||
|
||||
echo $(string match -r '(.*?)\s.*' -- $hash) >$journal
|
||||
|
||||
set_color normal
|
||||
if not git clone $url $out
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color --bold red) " Failed to clone into $url")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
echo $(string join '' -- (set_color green) " Cloned $url")
|
||||
|
||||
set -l deps "$out/deps.plug"
|
||||
|
||||
if test -e $deps
|
||||
echo $(string join '' -- (set_color --bold red) " Dependency resolution is not yet implemented")
|
||||
return 1
|
||||
else
|
||||
echo $(string join '' -- (set_color green) " No dependencies found")
|
||||
end
|
||||
|
||||
function _plug_clone
|
||||
set -l from $argv[1]
|
||||
set -l to $argv[2]
|
||||
set -l label $argv[3]
|
||||
|
||||
if not test -e $from
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color yellow) " No $label scripts found") 1>&2
|
||||
end
|
||||
echo 0
|
||||
return 0
|
||||
end
|
||||
|
||||
set -l counter 0
|
||||
|
||||
for script in $from/*.fish
|
||||
set counter $(math $counter + 1)
|
||||
set -l basename $(basename $script)
|
||||
if not cp $script $to
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color --bold red) " Failed to copy $script")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
echo "$to/$basename" >>$journal
|
||||
end
|
||||
|
||||
if $verbose
|
||||
echo $(string join '' -- (set_color green) " Copied $counter $label script(s)") 1>&2
|
||||
end
|
||||
|
||||
echo $counter
|
||||
return 0
|
||||
end
|
||||
|
||||
set -l functions $(_plug_clone "$out/functions" "$plug_functions" "function"; or return 1)
|
||||
set -l completions $(_plug_clone "$out/completions" "$plug_completions" "completion"; or return 1)
|
||||
set -l confd $(_plug_clone "$out/conf.d" "$plug_confd" "conf.d"; or return 1)
|
||||
|
||||
if not set -q _plug_trust_all
|
||||
echo $(string join '' -- (set_color yellow) " Prompting for permission")
|
||||
|
||||
echo ""
|
||||
set_color --bold red
|
||||
echo "-- Disclaimer --"
|
||||
set_color normal
|
||||
echo "Plugins are external scripts at the end of the day. It's a good"
|
||||
echo "practice to always ensure that you get your plugins from reputable"
|
||||
echo "sources; remember that not all scripts are always safe."
|
||||
echo ""
|
||||
echo "If you're confident you've understood the security"
|
||||
echo "implications of external plugins you can disable this prompt"
|
||||
echo "and trust all future plugins, knowing that this serves as a"
|
||||
echo "warning against malicious code. \"conf.d\" scripts run every"
|
||||
echo "time your shell starts"
|
||||
echo ""
|
||||
|
||||
set_color --bold white
|
||||
echo "Setup and allow $display to run?"
|
||||
set_color normal
|
||||
echo "(Y)es, [N]o, (T)rust all; don't ask again."
|
||||
|
||||
if not read -l -P "> " answer
|
||||
echo $(string join '' -- (set_color yellow) " Cleaning up")
|
||||
|
||||
for file in $(cat $journal)[2..]
|
||||
rm $file
|
||||
end
|
||||
|
||||
return 1
|
||||
end
|
||||
|
||||
switch $answer
|
||||
case t T trust Trust TRUST
|
||||
set -U _plug_trust_all true
|
||||
case y Y yes Yes YES
|
||||
case '*'
|
||||
echo $(string join '' -- (set_color red) " Did not acquire permission")
|
||||
echo $(string join '' -- (set_color yellow) " Cleaning up")
|
||||
|
||||
for file in $(cat $journal)[2..]
|
||||
rm $file
|
||||
end
|
||||
|
||||
echo $(string join '' -- (set_color --bold red) " Installation canceled")
|
||||
return 1
|
||||
end
|
||||
end
|
||||
|
||||
if test $confd -ne 0
|
||||
set -l scripts $(cat $journal)[2..]
|
||||
|
||||
set scripts $(string match -r '.*/conf.d/.*\.fish$' -- $scripts)
|
||||
|
||||
for script in $scripts
|
||||
source $script
|
||||
end
|
||||
|
||||
echo $(string join '' -- (set_color green) " Ran conf.d scripts")
|
||||
end
|
||||
|
||||
rm -rf $out
|
||||
echo $(string join '' -- (set_color green) " Successfully installed $display")
|
||||
end
|
||||
|
||||
function _plug_is_up_to_date # Takes in a journal file as argument
|
||||
set -l hash $(cat "$plug_meta/$argv")[1]
|
||||
set -l name $(string replace '.' '/' -- $(basename $argv))
|
||||
|
||||
set -l latest
|
||||
if not set latest $(git ls-remote $(_plug_parse_url $name))
|
||||
return false
|
||||
end
|
||||
|
||||
if test $hash = $latest
|
||||
return true
|
||||
else
|
||||
return false
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
switch $cmd
|
||||
case install
|
||||
set -lx display $(_plug_get_pack_name $target)
|
||||
set -lx name $(string replace -a '/' '.' -- $display)
|
||||
set -lx out "$plug_temp/$name"
|
||||
set -lx journal "$plug_meta/$name"
|
||||
|
||||
if not _plug_install $target
|
||||
rm -rf $out >/dev/null 2>/dev/null
|
||||
rm $journal >/dev/null 2>/dev/null
|
||||
return 1
|
||||
end
|
||||
|
||||
return 0
|
||||
case list
|
||||
set -l files $(ls "$plug_meta")
|
||||
echo $(string join '' -- (set_color green) " Found " (count $files) " journal(s)")
|
||||
|
||||
for meta in $files
|
||||
set -l hash $(cat "$plug_meta/$meta")[1]
|
||||
echo $(string join '' -- \
|
||||
(set_color normal) " - " \
|
||||
(set_color --bold white) (string replace '.' '/' -- $(basename $meta)) (set_color normal) \
|
||||
(set_color --dim white) " (" \
|
||||
(string shorten -c '' -m 6 -- $hash) ")")
|
||||
end
|
||||
case '*'
|
||||
if not set -q _flag_silent
|
||||
echo $(string join '' -- (set_color --bold red) " Not yet implemented")
|
||||
end
|
||||
return 1
|
||||
end
|
||||
|
||||
return 2
|
||||
end
|
||||
@@ -1,22 +0,0 @@
|
||||
function round
|
||||
argparse -n "round" -i "p/precision=!_validate_int" -- $argv
|
||||
or return 1
|
||||
|
||||
set -l value $argv
|
||||
|
||||
set -l precision 0
|
||||
if set -q _flag_precision
|
||||
set precision $_flag_precision
|
||||
end
|
||||
|
||||
set precision $(math 10 ^ $precision)
|
||||
|
||||
set value $(math $value x $precision)
|
||||
|
||||
set -l right $(math $value % 1)
|
||||
|
||||
set value $(math $value - $right)
|
||||
set value $(math $value / $precision)
|
||||
|
||||
echo $value
|
||||
end
|
||||
@@ -1,84 +0,0 @@
|
||||
function vpn
|
||||
argparse -n "vpn" -x e,d -x q,s 'e/enable' 'd/disable' 's/status' 'q/quiet' 'f/force' -- $argv
|
||||
or return 1
|
||||
|
||||
set _silent false
|
||||
if set -q _flag_quiet
|
||||
set _silent true
|
||||
end
|
||||
|
||||
set _path ~/wg0.conf
|
||||
set _status false
|
||||
|
||||
if test -f "$_TEMP/vpn-status"
|
||||
switch (cat "$_TEMP/vpn-status")
|
||||
case true
|
||||
set _status true
|
||||
case false
|
||||
set _status false
|
||||
case '*'
|
||||
if not $_quiet
|
||||
echo "Unregognized /vpn-status contents, exiting!"
|
||||
end
|
||||
return 1
|
||||
end
|
||||
else
|
||||
if not $_silent
|
||||
echo "Did not find status file; creating..."
|
||||
echo "false" >> "$_TEMP/vpn-status"
|
||||
end
|
||||
end
|
||||
|
||||
if set -q _flag_status
|
||||
if $_status
|
||||
echo "VPN is active."
|
||||
else
|
||||
echo "VPN is inactive."
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
if not set -q _flag_enable; and not set -q _flag_disable
|
||||
if $_status
|
||||
set _flag_disable
|
||||
else
|
||||
set _flag_enable
|
||||
end
|
||||
end
|
||||
|
||||
if set -q _flag_enable
|
||||
if $_status; and not set -q _flag_force
|
||||
if not $_silent
|
||||
echo "Already enabled."
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
if sudo wg-quick up $_path
|
||||
echo "true" > "$_TEMP/vpn-status"
|
||||
if not $_silent
|
||||
echo "Successfully enabled."
|
||||
end
|
||||
end
|
||||
return $status
|
||||
end
|
||||
|
||||
if set -q _flag_disable
|
||||
if not $_status; and not set -q _flag_force
|
||||
if not $_silent
|
||||
echo "Already disabled."
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
if sudo wg-quick down $_path
|
||||
echo "false" > "$_TEMP/vpn-status"
|
||||
if not $_silent
|
||||
echo "Successfully disabled."
|
||||
end
|
||||
end
|
||||
return $status
|
||||
end
|
||||
|
||||
return 2
|
||||
end
|
||||
@@ -1,54 +0,0 @@
|
||||
function fish_mode_prompt
|
||||
end
|
||||
|
||||
function fish_prompt
|
||||
set -l last_status $status
|
||||
|
||||
set -l duration $CMD_DURATION
|
||||
|
||||
if test $CMD_DURATION -gt 700
|
||||
set -l seconds $(round -p 2 $(math $duration / 1000 % 60))
|
||||
set seconds $seconds s
|
||||
set -l minutes
|
||||
if test $duration -gt 60000
|
||||
set minutes $(round (math $duration / 60000))
|
||||
set minutes $minutes "m "
|
||||
end
|
||||
|
||||
|
||||
string join '' -- (set_color white) "took " (set_color yellow) $minutes $seconds
|
||||
end
|
||||
|
||||
set -l mode
|
||||
switch (echo $fish_bind_mode)
|
||||
case default
|
||||
set mode $(string join '' -- (set_color --bold red) '[N] ' (set_color normal))
|
||||
case insert
|
||||
set mode $(string join '' -- (set_color --bold cyan) '[I] ' (set_color normal))
|
||||
case replace_one
|
||||
set mode $(string join '' -- (set_color --bold green) '[R] ' (set_color normal))
|
||||
case visual
|
||||
set mode $(string join '' -- (set_color --bold brmagenta) '[V] ' (set_color normal))
|
||||
case '*'
|
||||
set mode $(string join '' -- (set_color --bold red) '[?] ' (set_color normal))
|
||||
end
|
||||
|
||||
|
||||
set -l cursor_color $(set_color green)
|
||||
|
||||
if test $last_status -ne 0
|
||||
set last_status $(string join '' -- (set_color red) " [$last_status]")
|
||||
set cursor_color $(set_color red)
|
||||
else
|
||||
set last_status ""
|
||||
end
|
||||
|
||||
set -l git $(string trim -- (fish_vcs_prompt))
|
||||
if test -n "$git"
|
||||
set git $(string join '' -- (set_color yellow) " " (string sub -s 2 $git -e -1) " ")
|
||||
end
|
||||
|
||||
set -l pwd $(string join '' -- (set_color green) (prompt_pwd -D 2 -d 1) (set_color normal))
|
||||
|
||||
string join '' -- $mode $pwd $last_status $git $cursor_color '|> '
|
||||
end
|
||||
@@ -1,3 +0,0 @@
|
||||
[Settings]
|
||||
gtk-cursor-theme-name=posy-black
|
||||
gtk-theme-name=Adwaita-dark
|
||||
@@ -1,230 +0,0 @@
|
||||
# i3 config file (v4)
|
||||
#
|
||||
# Please see https://i3wm.org/docs/userguide.html for a complete reference!
|
||||
#
|
||||
# This config file uses keycodes (bindsym) and was written for the QWERTY
|
||||
# layout.
|
||||
#
|
||||
# To get a config file with the same key positions, but for your current
|
||||
# layout, use the i3-config-wizard
|
||||
#
|
||||
|
||||
# Font for window titles. Will also be used by the bar unless a different font
|
||||
# is used in the bar {} block below.
|
||||
font pango:Monaco 8
|
||||
|
||||
# This font is widely installed, provides lots of unicode glyphs, right-to-left
|
||||
# text rendering and scalability on retina/hidpi displays (thanks to pango).
|
||||
#font pango:DejaVu Sans Mono 8
|
||||
|
||||
# Start XDG autostart .desktop files using dex. See also
|
||||
# https://wiki.archlinux.org/index.php/XDG_Autostart
|
||||
exec --no-startup-id dex --autostart --environment i3
|
||||
|
||||
# The combination of xss-lock, nm-applet and pactl is a popular choice, so
|
||||
# they are included here as an example. Modify as you see fit.
|
||||
|
||||
# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
|
||||
# screen before suspend. Use loginctl lock-session to lock your screen.
|
||||
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
|
||||
|
||||
# NetworkManager is the most popular way to manage wireless networks on Linux,
|
||||
# and nm-applet is a desktop environment-independent system tray GUI for it.
|
||||
exec --no-startup-id nm-applet
|
||||
|
||||
# Use pactl to adjust volume in PulseAudio.
|
||||
# set $refresh_i3status killall -SIGUSR1 i3status
|
||||
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
|
||||
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
|
||||
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
|
||||
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
|
||||
|
||||
# use these keys for focus, movement, and resize directions when reaching for
|
||||
# the arrows is not convenient
|
||||
set $up Up
|
||||
set $down Down
|
||||
set $left Left
|
||||
set $right Right
|
||||
|
||||
# Use caps
|
||||
exec setxkbmap -option caps:super
|
||||
set $mod Mod4
|
||||
|
||||
# use Mouse+Mod1 to drag floating windows to their wanted position
|
||||
floating_modifier $mod
|
||||
|
||||
# move tiling windows via drag & drop by left-clicking into the title bar,
|
||||
# or left-clicking anywhere into the window while holding the floating modifier.
|
||||
tiling_drag modifier titlebar
|
||||
|
||||
# start a terminal
|
||||
bindsym $mod+Return exec i3-sensible-terminal
|
||||
|
||||
# start an app
|
||||
bindsym $mod+n exec "rofi -show combi -modes combi -combi-modes drun,run -combi-display-format {text}"
|
||||
|
||||
# kill focused window
|
||||
bindsym $mod+q kill
|
||||
|
||||
# Enable compose key with caps lock
|
||||
# exec setxkbmap -option compose:caps
|
||||
|
||||
# start dmenu (a program launcher)
|
||||
# bindsym $mod+d exec --no-startup-id dmenu_run
|
||||
# A more modern dmenu replacement is rofi:
|
||||
# bindsym $mod+d exec "rofi -modi drun,run -show drun"
|
||||
# There also is i3-dmenu-desktop which only displays applications shipping a
|
||||
# .desktop file. It is a wrapper around dmenu, so you need that installed.
|
||||
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
|
||||
|
||||
# change focus
|
||||
bindsym $mod+$left focus left
|
||||
bindsym $mod+$down focus down
|
||||
bindsym $mod+$up focus up
|
||||
bindsym $mod+$right focus right
|
||||
|
||||
# move focused window
|
||||
bindsym $mod+Shift+$left move left
|
||||
bindsym $mod+Shift+$down move down
|
||||
bindsym $mod+Shift+$up move up
|
||||
bindsym $mod+Shift+$right move right
|
||||
|
||||
# move workspace
|
||||
bindsym $mod+Ctrl+$right move workspace to output right
|
||||
bindsym $mod+Ctrl+$left move workspace to output left
|
||||
|
||||
# split in horizontal orientation
|
||||
bindsym $mod+h split h
|
||||
|
||||
# split in vertical orientation
|
||||
bindsym $mod+v split v
|
||||
|
||||
# enter fullscreen mode for the focused container
|
||||
bindsym $mod+f fullscreen toggle
|
||||
|
||||
# change container layout (stacked, tabbed, toggle split)
|
||||
bindsym $mod+s layout stacking
|
||||
bindsym $mod+w layout tabbed
|
||||
bindsym $mod+e layout toggle split
|
||||
|
||||
# toggle tiling / floating
|
||||
bindsym $mod+Shift+space floating toggle
|
||||
|
||||
# change focus between tiling / floating windows
|
||||
bindsym $mod+space focus mode_toggle
|
||||
|
||||
# focus the parent container
|
||||
bindsym $mod+a focus parent
|
||||
|
||||
# focus the child container
|
||||
#bindsym $mod+d focus child
|
||||
|
||||
# move the currently focused window to the scratchpad
|
||||
bindsym $mod+Shift+minus move scratchpad
|
||||
|
||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
||||
# If there are multiple scratchpad windows, this command cycles through them.
|
||||
bindsym $mod+minus scratchpad show
|
||||
|
||||
#Screenshot
|
||||
bindsym Print exec flameshot gui
|
||||
|
||||
# Define names for default workspaces for which we configure key bindings later on.
|
||||
# We use variables to avoid repeating the names in multiple places.
|
||||
set $ws1 "1"
|
||||
set $ws2 "2"
|
||||
set $ws3 "3"
|
||||
set $ws4 "4"
|
||||
set $ws5 "5"
|
||||
set $ws6 "6"
|
||||
set $ws7 "7"
|
||||
set $ws8 "8"
|
||||
set $ws9 "9"
|
||||
set $ws10 "10"
|
||||
|
||||
# switch to workspace
|
||||
bindsym $mod+1 workspace number $ws1
|
||||
bindsym $mod+2 workspace number $ws2
|
||||
bindsym $mod+3 workspace number $ws3
|
||||
bindsym $mod+4 workspace number $ws4
|
||||
bindsym $mod+5 workspace number $ws5
|
||||
bindsym $mod+6 workspace number $ws6
|
||||
bindsym $mod+7 workspace number $ws7
|
||||
bindsym $mod+8 workspace number $ws8
|
||||
bindsym $mod+9 workspace number $ws9
|
||||
bindsym $mod+0 workspace number $ws10
|
||||
|
||||
# move focused container to workspace
|
||||
bindsym $mod+Shift+1 move container to workspace number $ws1
|
||||
bindsym $mod+Shift+2 move container to workspace number $ws2
|
||||
bindsym $mod+Shift+3 move container to workspace number $ws3
|
||||
bindsym $mod+Shift+4 move container to workspace number $ws4
|
||||
bindsym $mod+Shift+5 move container to workspace number $ws5
|
||||
bindsym $mod+Shift+6 move container to workspace number $ws6
|
||||
bindsym $mod+Shift+7 move container to workspace number $ws7
|
||||
bindsym $mod+Shift+8 move container to workspace number $ws8
|
||||
bindsym $mod+Shift+9 move container to workspace number $ws9
|
||||
bindsym $mod+Shift+0 move container to workspace number $ws10
|
||||
|
||||
# reload the configuration file
|
||||
bindsym $mod+Shift+c reload
|
||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
||||
bindsym $mod+Shift+r restart
|
||||
# exit i3 (logs you out of your X session)
|
||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"
|
||||
|
||||
# resize window (you can also use the mouse for that)
|
||||
mode "resize" {
|
||||
# These bindings trigger as soon as you enter the resize mode
|
||||
|
||||
# Pressing left will shrink the window’s width.
|
||||
# Pressing right will grow the window’s width.
|
||||
# Pressing up will shrink the window’s height.
|
||||
# Pressing down will grow the window’s height.
|
||||
bindsym $left resize shrink width 10 px or 10 ppt
|
||||
bindsym $down resize grow height 10 px or 10 ppt
|
||||
bindsym $up resize shrink height 10 px or 10 ppt
|
||||
bindsym $right resize grow width 10 px or 10 ppt
|
||||
|
||||
# same bindings, but for the arrow keys
|
||||
bindsym Left resize shrink width 10 px or 10 ppt
|
||||
bindsym Down resize grow height 10 px or 10 ppt
|
||||
bindsym Up resize shrink height 10 px or 10 ppt
|
||||
bindsym Right resize grow width 10 px or 10 ppt
|
||||
|
||||
# back to normal: Enter or Escape or $mod+r
|
||||
bindsym Return mode "default"
|
||||
bindsym Escape mode "default"
|
||||
bindsym $mod+r mode "default"
|
||||
}
|
||||
|
||||
bindsym $mod+r mode "resize"
|
||||
|
||||
# Start i3bar to display a workspace bar (plus the system information i3status
|
||||
# finds out, if available)
|
||||
bar {
|
||||
status_command i3status
|
||||
}
|
||||
|
||||
# Wallpaper
|
||||
# exec --no-startup-id feh --bg-scale /home/anton/bg.png
|
||||
# exec --no-startup-id mpv wallpaper.mp4 --loop --no-audio --no-media-controls
|
||||
# exec --no-startup-id xinwrap -g 1920x1080 -ni -s -nf -b -fs -- mpv -wid WID wallpaper.mp4 --loop --no-audio --no-media-controls
|
||||
# exec --no-startup-id xwinwrap -g 1920x1080 -s -b -fdt -ni -sp -ov -- mpv wallpaper.mp4 -wid WID --loop --no-audio --gpu-api=vulkan
|
||||
# exec --no-startup-id xwinwrap -g 1920x1080+1920 -s -b -fdt -ni -sp -ov -- mpv wallpaper.mp4 -wid WID --loop --no-audio --gpu-api=vulkan
|
||||
exec --no-startup-id xwinwrap -g 1920x1080 -s -b -fdt -ni -sp -ov -nf -un -- mpv ~/wallpaper.mp4 -wid WID --loop --no-audio --gpu-api=vulkan --vo=gpu-next --framedrop=vo --profile=low-latency --hwdec=auto --no-osc --no-input-default-bindings --no-input-cursor
|
||||
exec --no-startup-id xwinwrap -g 1920x1080+1920 -s -b -fdt -ni -sp -ov -nf -un -- mpv ~/wallpaper.mp4 -wid WID --loop --no-audio --gpu-api=vulkan --vo=gpu-next --framedrop=vo --profile=low-latency --hwdec=auto --no-osc --no-input-default-bindings --no-input-cursor
|
||||
|
||||
exec --no-startup-id ~/.config/i3/startup.sh
|
||||
|
||||
#######################################################################
|
||||
# automatically start i3-config-wizard to offer the user to create a
|
||||
# keysym-based config which used their favorite modifier (alt or windows)
|
||||
#
|
||||
# i3-config-wizard will not launch if there already is a config file
|
||||
# in ~/.config/i3/config (or $XDG_CONFIG_HOME/i3/config if set) or
|
||||
# ~/.i3/config.
|
||||
#
|
||||
# Please remove the following exec line:
|
||||
#######################################################################
|
||||
# exec i3-config-wizard
|
||||
@@ -1,25 +0,0 @@
|
||||
|
||||
background #161718
|
||||
foreground #b7bcb9
|
||||
|
||||
cursor #b7bcb9
|
||||
selection_background #1e1f22
|
||||
color0 #2a2e33
|
||||
color8 #1d1e21
|
||||
color1 #b74d50
|
||||
color9 #8c2d32
|
||||
color2 #b3be5a
|
||||
color10 #788331
|
||||
color3 #e3b55e
|
||||
color11 #e5894f
|
||||
color4 #6d90b0
|
||||
color12 #4b6b88
|
||||
color5 #a07eab
|
||||
color13 #6e4f79
|
||||
color6 #7fbeb3
|
||||
color14 #4d7b73
|
||||
color7 #b5b8b6
|
||||
color15 #5a6169
|
||||
|
||||
selection_foreground #b7bcb9
|
||||
selection_background #2a2e33
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"runtime.version": "LuaJIT",
|
||||
"runtime.path": ["lua/?.lua", "lua/?/init.lua"],
|
||||
"diagnostics.globals": ["vim"],
|
||||
"workspace.checkThirdParty": false,
|
||||
"workspace.library": ["$VIMRUNTIME"]
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
configuration {
|
||||
font: "JetBrains Mono 12";
|
||||
entry {
|
||||
max-history: 30;
|
||||
}
|
||||
}
|
||||
|
||||
@theme "/usr/share/rofi/themes/gruvbox-dark-hard.rasi"
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
[safe]
|
||||
directory = /yay
|
||||
[credential]
|
||||
credentialStore = gpg
|
||||
guiPrompt = false
|
||||
[color]
|
||||
status = always
|
||||
branch = always
|
||||
diff = always
|
||||
interactive = always
|
||||
[user]
|
||||
email = aligator.h0spital.e@gmail.com
|
||||
name = Anton
|
||||
signingkey = 0AD27113ADEB3016
|
||||
[core]
|
||||
editor = nvim
|
||||
[push]
|
||||
autoSetupRemote = true
|
||||
[init]
|
||||
defaultBranch = main
|
||||
[commit]
|
||||
gpgsign = true
|
||||
[filter "lfs"]
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
[url "https://github.com/"]
|
||||
insteadOf = gh:
|
||||
[url "https://github.com/antonw51/"]
|
||||
insteadOf = my:
|
||||
[url "https://github.com/zync-chat/"]
|
||||
insteadOf = zync:
|
||||
[url "ssh://git@ip.louiscreates.com:2222/"]
|
||||
insteadOf = l:
|
||||
[credential "https://github.com"]
|
||||
helper =
|
||||
helper = !/usr/bin/gh auth git-credential
|
||||
[credential "https://gist.github.com"]
|
||||
helper =
|
||||
helper = !/usr/bin/gh auth git-credential
|
||||
[alias]
|
||||
ref = show -s --pretty=reference
|
||||
lg = !max_length_dr=$(git log --format='%ar ' | wc -L) \
|
||||
&& max_length=$(git log --format='%s ' | wc -L) \
|
||||
&& git log --graph --abbrev-commit --decorate \
|
||||
--format='%C(bold blue)%h%C(reset) - %C(bold green)%-%<('\"$max_length_dr\"')%ar:%C(reset)'\" \
|
||||
\"'%C(white)%<('\"$max_length\"')%s%C(reset) %C(dim white)- %an%C(reset)%C(auto)%d%C(reset)'
|
||||
@@ -0,0 +1 @@
|
||||
.env.nix
|
||||
@@ -1 +0,0 @@
|
||||
pinentry-program /usr/bin/pinentry-curses
|
||||
@@ -1,2 +0,0 @@
|
||||
gtk-cursor-theme-name="posy-black"
|
||||
gtk-theme-name = "Adwaita-dark"
|
||||
@@ -1,3 +0,0 @@
|
||||
README.md
|
||||
.git
|
||||
~+.*
|
||||
@@ -1,47 +1,126 @@
|
||||
# antonw51's dotfiles
|
||||
# BluePlum's dotfiles
|
||||
|
||||
These are my personal configuration files as I use for Arch, i3, Neovim, Fish
|
||||
shell, and more. There are various prerequsites required for this but those
|
||||
won't be listed.
|
||||
Sup. This repository is representative of my personal configuration files
|
||||
(available [here at https://github.com/antonw51/dotfiles](https://github.com/antonw51/dotfiles)).
|
||||
|
||||
## Stow
|
||||
Feel free to look at, pick and choose, fork, or do whatever you want with
|
||||
these. That's kind of the point.
|
||||
|
||||
To make it as easy as possible to install these configuration files, it is
|
||||
recommended that you use GNU Stow, which is a simple utility that links your files
|
||||
upwards. To use it, install `stow` from your package manager (like `pacman`):
|
||||
See what I consider my dotfiles to be at [the Preferences section](#Preferences)
|
||||
|
||||
## Installation
|
||||
|
||||
### NixOS
|
||||
|
||||
This entire repository is representative of a `/etc/nixos` directory for use
|
||||
with NixOS. Installing these dotfiles is hence easiest on NixOS.
|
||||
|
||||
To do so, you'll need `git`, your favorite editor and the root priviliges for
|
||||
your system. (For a bare NixOS system `nix-shell` suffices:)
|
||||
|
||||
```bash
|
||||
$ sudo pacman -S stow
|
||||
$ nix-shell -p git
|
||||
```
|
||||
|
||||
Clone this repository to a convenient spot:
|
||||
Clone this repository into a folder that's ideally owned by your user account
|
||||
rather than root (or just use `sudo` for the following steps). Then copy its
|
||||
contents into the `/etc/nixos` directory.
|
||||
|
||||
```bash
|
||||
$ git clone --depth=1 https://github.com/antonw51/dotfiles ~/.dotfiles
|
||||
$ cd ~/.dotfiles
|
||||
# Remove existing configuration
|
||||
$ [ -f /etc/nixos/configuration.nix ]
|
||||
&& sudo rm /etc/nixos/configuration.nix
|
||||
|
||||
$ git clone https://github.com/antonw51/dotfiles ~/dotfiles
|
||||
$ sudo cp -r ~/dotfiles/* /etc/nixos
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Before stowing, it is recommended to run the `prestow.fish` script so that
|
||||
> `stow` doesn't link directories such as your entire `.config` folder to
|
||||
> this directory, instead only files.
|
||||
You will also need to make a `.env.nix` file for device specific configuration.
|
||||
`nixos-rebuild build` will tell you which keys need to be filled out, but the
|
||||
current minimal config looks like (`/etc/nixos/.env.nix`):
|
||||
|
||||
```nix
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
hostname = "pinklilac"
|
||||
}
|
||||
```
|
||||
|
||||
> [!INFO]
|
||||
>
|
||||
> This simple script will create empty (unlinked) directories where stow
|
||||
> expects to force it into linking files only. Remember that any changes made
|
||||
> even to your home configratuion will be reflected in this repo after linking:
|
||||
> This `.env.nix` file configures some keys shared across the configuration.
|
||||
> Namely this `hostname` property which declares `system.networking.hostname`
|
||||
> _and_ adds a nix file at `/etc/nixos/{hostname}.nix` (where `{hostname}` is
|
||||
> your hostname) to `configuration.nix` module `imports`.
|
||||
>
|
||||
> ```bash
|
||||
> $ ./prestow.fish
|
||||
> ```
|
||||
|
||||
Then finally to link all of the necessary configs, run `stow` as such:
|
||||
> With this you can configure per-device specifics, such as displays, or
|
||||
> additional configuration. See `blueplum.nix` for an example.
|
||||
|
||||
Thereafter you can run `sudo nixos-rebuild boot` to build the configuration and
|
||||
`reboot` to apply it appropriately.
|
||||
|
||||
If you forked or own the repository and want to cleanly keep the git repository
|
||||
seperated from write-protected `/etc/` files to commit to the repository, you
|
||||
can move the `git` file and `.git` directories contents to another more
|
||||
permanent directory:
|
||||
|
||||
```bash
|
||||
$ stow .
|
||||
# In this example, the persistent directory will be ~/dev/nixos
|
||||
|
||||
$ mkdir -p ~/dev/nixos
|
||||
$ mv -r ~/dotfiles/.git/* ~/dev/nixos
|
||||
$ mv ~/dotfiles/git ~/dev/nixos && chmod +x ~/dev/nixos/git
|
||||
|
||||
# Optionally remove the originally cloned directory:
|
||||
$ rm -r ~/dotfiles # git metadata is preserved.
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> Stow will have problems if you already have any conflicting configuration
|
||||
> files as found here. Currently the easiest solution to this is to remove your
|
||||
> pre-existing files. Alternatively you can use the `--adopt` option with stow,
|
||||
> and then reset this repository to its previous state using `git`.
|
||||
Then use the `git` executable (with `fish`) in the new directory to interact with the repository held in `/etc/nixos`:
|
||||
|
||||
```bash
|
||||
$ cd ~/dev/nixos
|
||||
$ ./git add .
|
||||
$ ./git commit
|
||||
$ ./git push
|
||||
# ...
|
||||
```
|
||||
|
||||
### Other
|
||||
|
||||
NixOS allows for reproducible and easily configurable configuration files both
|
||||
system- and user-wide. It makes the installation process a lot easier.
|
||||
|
||||
Without NixOS to manage your system, you'll have to configure and "generate"
|
||||
configs yourself. For most things, `git`, `i3`, and packages alike this
|
||||
consists of essentially translating the contents of files such as `home.nix` or
|
||||
`home/i3.nix` into equivilant configuration.
|
||||
|
||||
However, program configurations within the `pkgs` directory don't have this
|
||||
constraint, as they're defined as traditional configs and then simply copied.
|
||||
These you can copy or symlink to quickly set up the appropriate software. (For
|
||||
instance, to set up Fish, you can link `pkgs/fish` to your local
|
||||
`$__fish_config_dir`.)
|
||||
|
||||
If you choose this approach, set up symlinks, and want to commit/contribute to
|
||||
the git repository contained within the dotfiles, you may do so within the
|
||||
cloned repository; no need to move anything or use any special git scripts.
|
||||
|
||||
## Preferences
|
||||
|
||||
While I don't _necessarily_ follow any specific ideologies when
|
||||
making/modifying my dotfiles, I do typically:
|
||||
|
||||
- Try and keep things to essentials (not minimalistic, but nothing overkill)
|
||||
- Personally familiar (keyboard shortcuts might not be to your liking)
|
||||
- With _some_ expansion in mind (`.env.nix` for example)
|
||||
- Somewhat consistent (The IBM Carbon colors are currently a personal favorite
|
||||
of mine)
|
||||
- Formatted and linted consistently (Lua, Nix, and Fish files are all
|
||||
formatted, and I try to keep them up to high, consistent standard)
|
||||
- Ephermeral (I won't live forever, duh, and this ain't a group project)
|
||||
- Somewhat informational? (You're reading this `README`, afterall)
|
||||
- Redacted (You won't find sensitive things here, perhaps outside of my name,
|
||||
which is rather obvious already)
|
||||
- Fine-tuned (Irks, even minor I do my best to iron out while trying to keep
|
||||
away from hacky patches)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user