Compare commits
20 Commits
master
..
e496038938
| Author | SHA1 | Date | |
|---|---|---|---|
|
e496038938
|
|||
| 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
|
Sup. This repository is representative of my personal configuration files
|
||||||
shell, and more. There are various prerequsites required for this but those
|
(available [here at https://github.com/antonw51/dotfiles](https://github.com/antonw51/dotfiles)).
|
||||||
won't be listed.
|
|
||||||
|
|
||||||
## 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
|
See what I consider my dotfiles to be at [the Preferences section](#Preferences)
|
||||||
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`):
|
## 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
|
```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
|
```bash
|
||||||
$ git clone --depth=1 https://github.com/antonw51/dotfiles ~/.dotfiles
|
# Remove existing configuration
|
||||||
$ cd ~/.dotfiles
|
$ [ -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]
|
You will also need to make a `.env.nix` file for device specific configuration.
|
||||||
> Before stowing, it is recommended to run the `prestow.fish` script so that
|
`nixos-rebuild build` will tell you which keys need to be filled out, but the
|
||||||
> `stow` doesn't link directories such as your entire `.config` folder to
|
current minimal config looks like (`/etc/nixos/.env.nix`):
|
||||||
> this directory, instead only files.
|
|
||||||
|
```nix
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
hostname = "pinklilac"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
> [!INFO]
|
||||||
>
|
>
|
||||||
> This simple script will create empty (unlinked) directories where stow
|
> This `.env.nix` file configures some keys shared across the configuration.
|
||||||
> expects to force it into linking files only. Remember that any changes made
|
> Namely this `hostname` property which declares `system.networking.hostname`
|
||||||
> even to your home configratuion will be reflected in this repo after linking:
|
> _and_ adds a nix file at `/etc/nixos/{hostname}.nix` (where `{hostname}` is
|
||||||
|
> your hostname) to `configuration.nix` module `imports`.
|
||||||
>
|
>
|
||||||
> ```bash
|
> With this you can configure per-device specifics, such as displays, or
|
||||||
> $ ./prestow.fish
|
> additional configuration. See `blueplum.nix` for an example.
|
||||||
> ```
|
|
||||||
|
Thereafter you can run `sudo nixos-rebuild boot` to build the configuration and
|
||||||
Then finally to link all of the necessary configs, run `stow` as such:
|
`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
|
```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]
|
Then use the `git` executable (with `fish`) in the new directory to interact with the repository held in `/etc/nixos`:
|
||||||
> 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
|
```bash
|
||||||
> pre-existing files. Alternatively you can use the `--adopt` option with stow,
|
$ cd ~/dev/nixos
|
||||||
> and then reset this repository to its previous state using `git`.
|
$ ./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