Compare commits

..

119 Commits

Author SHA1 Message Date
634014851c Merge branch 'master' into debian 2025-04-21 19:55:48 +02:00
4e9a8f94be make executable 2025-04-21 19:55:29 +02:00
89b17fbc07 Merge branch 'master' into debian 2025-04-17 11:39:46 +02:00
8828111fba Merge branch 'master' of https://git.szimnau.de/fabian/sync 2025-04-17 11:39:00 +02:00
8771d1eb3b simple scripts to more easily deploy the newest files 2025-04-17 11:38:04 +02:00
6162c2016a Merge branch 'master' into debian 2025-04-16 21:41:30 +02:00
df65f35f0b enable rsync with autocomplete 2025-04-16 21:40:58 +02:00
6b07a1175f escape file/ folder names 2025-04-16 21:39:25 +02:00
82861e7685 Merge branch 'master' into debian 2025-04-15 16:56:47 +02:00
620857fc8a moved fonts to different repo 2025-04-15 16:51:30 +02:00
77d6ef3708 Merge branch 'master' into debian 2025-04-15 10:15:02 +02:00
7270a2c858 skripte vereinfacht mit etwas weniger fp verbrauch 2025-04-14 16:53:23 +02:00
d3d0a4cc5d updated command to docker compose 2.0 2024-09-01 14:47:17 +02:00
ae2779f48e fix npe-like-error 2024-09-01 14:46:44 +02:00
0d7c1902c1 fkin just work now... please 2024-04-01 00:17:07 +02:00
d8e73040bc Merge branch 'debian' of ssh://git.szimnau.de:222/fabian/sync into debian 2024-04-01 00:14:47 +02:00
bb09061c3b improved automatic updates via executeAndNotify to enable fire-and-forget 2024-03-31 23:59:16 +02:00
08fbd0beb9 new function to update debian based systems
improved automatic updates via executeAndNotify to enable fire-and-forget
2024-03-31 23:58:19 +02:00
e99b430ce8 new function to update debian based systems
improved automatic updates via executeAndNotify to enable fire-and-forget
2024-03-31 23:54:05 +02:00
1952ece138 - commented out options not working in ancient debian version 2024-03-31 23:47:34 +02:00
a50baf801c Revert "Revert "old raspi version of nanorc cannot handle certain settings""
This reverts commit 844fe85d6d.
2024-03-31 23:46:47 +02:00
0306ebc04c enable mounting media 2024-03-31 23:33:35 +02:00
1ea29d78d7 since the directory is not used only for movies anymore, rename 2024-03-31 23:33:01 +02:00
553d15e38b updated/ generalised backup scripts 2024-03-17 17:58:00 +01:00
46e9aea2dd fix: make functions known before usage 2024-03-17 14:14:34 +01:00
7b1d0ef251 made script more robust 2024-03-17 14:08:34 +01:00
36e122b62c improved/ modernised "ex"-function 2024-03-17 14:01:36 +01:00
707b581b88 updated config 2024-01-18 16:15:59 +01:00
91d3d1d98d new script for easy archiving and compression and reversal of both 2024-01-18 15:51:40 +01:00
d79688f50f new script for easier transcoding 2024-01-18 15:51:11 +01:00
34baf7e029 simplified finding the home dir 2024-01-18 15:50:34 +01:00
3820ea0297 updated more or less common characters that could need escaping 2024-01-18 15:50:08 +01:00
43a70bb9de updated settings 2024-01-18 15:49:21 +01:00
c926e32cda accomodate for filenames with e.g.spaces 2024-01-18 15:43:43 +01:00
0848db107c updated edi backup script 2024-01-18 15:40:05 +01:00
e2f4267b7a fixed output 2023-09-24 15:11:14 +02:00
784818b510 mount unabhängig der clientmaschine 2023-09-17 14:43:44 +02:00
afbfeef4d2 Revert "mount unabhängig von der clientmaschine"
This reverts commit 937fe0142d.
2023-09-17 14:43:11 +02:00
937fe0142d mount unabhängig von der clientmaschine 2023-09-17 14:33:20 +02:00
3837b797d0 fixed alias 2023-08-20 17:31:59 +02:00
32c066fe4d alias for quick start of x11vnc server 2023-08-20 14:49:07 +02:00
8ebda1aa12 new font: STIX 2 2023-08-20 14:48:02 +02:00
e08fa4f6a6 updated ignores 2023-07-30 09:55:42 +02:00
fc13f9b73e project not needed
workspace too unsteady to commit
2023-07-30 09:53:27 +02:00
1ab292fe6f added linking via cp and rsync
added usage comments for sed
2023-07-30 09:52:07 +02:00
bb48fa187f activate dotglob permanently 2023-07-06 15:39:11 +02:00
ba623040b9 - minor semantic changes (semicolons at the end of the line)
- added convenient updateSystem command
2023-07-06 12:51:55 +02:00
8358af1077 - added useful shell features
- cosmetics: whitespace
2023-06-02 15:54:37 +02:00
4cab17e726 - added shebang line, so nano etc. get the syntax highlighting right
- added function to automatically update flatpaks
2023-06-02 15:52:22 +02:00
0aeb3b770f use alternative aac encoder 2023-05-31 10:39:33 +02:00
aaf96cd5c7 file only for import -> does not need to be executable 2023-05-31 10:38:17 +02:00
976100ec25 no distinction any more between internal and external 2023-05-31 10:37:32 +02:00
571e03680f using opus/ogg now mainly and alternative aac_at encoder when needed 2023-05-31 10:35:47 +02:00
ec5815b10b new sublime project folder for repository 2023-05-27 18:14:23 +02:00
daf4250a7e file not needed in vcs 2023-05-27 18:13:33 +02:00
13446c6d89 use opus since it yields better audio quality 2023-05-27 18:12:52 +02:00
f501c081df better output dir naming 2023-05-27 18:12:05 +02:00
7accc4c185 escape additional characters 2023-05-27 18:11:37 +02:00
ad1cfc5344 fixed alias 2023-05-27 18:11:04 +02:00
c4e3c60eec added new alias with more detailed time info 2023-05-19 18:33:49 +02:00
a73cf71925 new alias for better diff 2023-05-19 15:13:26 +02:00
43607cba6e - fixed argument evaluation 2023-05-14 12:50:14 +02:00
0b57ddfaaf - modernised rsync verbosity
- fixed alias by setting correct quotes
2023-05-14 12:16:44 +02:00
c8d95342e2 fixed: correct quote signs for alias 2023-05-06 15:18:39 +02:00
e7464580c2 fixed script 2023-05-06 06:09:42 +02:00
1acf2a2305 updated other sync files 2023-05-06 05:44:49 +02:00
16de7c94da cleanup/ whitespace 2023-05-06 05:44:19 +02:00
3337e168c7 whitespace 2023-05-06 04:54:15 +02:00
e43b887413 updated to working, mostly automated script 2023-05-06 04:52:14 +02:00
844fe85d6d Revert "old raspi version of nanorc cannot handle certain settings"
This reverts commit cf3d18414a.
2023-05-06 03:51:53 +02:00
586f3ea533 removed deprecated ignores 2023-05-06 03:46:17 +02:00
6d16a23c24 ignore local aliases file 2023-05-06 03:43:50 +02:00
400f1051ff stub of a script for backing up data from garrus (boot drive) to citadel 2023-05-05 18:21:28 +02:00
fdac96925a first version (template) for backing up edi
- to garrus
- from locally to the backup dir
2023-05-04 19:47:41 +02:00
cf3d18414a old raspi version of nanorc cannot handle certain settings 2023-05-04 19:12:17 +02:00
4c6a94a0b3 uuh idk 2023-05-01 23:01:30 +02:00
2ec6883629 - made script actually executable 2023-05-01 22:59:33 +02:00
f6c161cc83 fixed paths 2023-05-01 17:34:42 +02:00
b114c139b1 - added new docker command for all containers
- corrected param parsing
2023-05-01 17:28:10 +02:00
b5f66ebcb8 file to quickly bulk rename filenames and escape/ replace sequences 2023-04-28 21:32:21 +02:00
bf419bfd98 ignore debug output files 2023-03-05 17:26:26 +01:00
7f1b122a53 new files to more easily sync from and to git 2023-03-05 17:23:33 +01:00
fd8f96a54d updated color scheme 2023-03-05 17:22:36 +01:00
b8611eb590 fixed logical operator 2023-03-05 17:22:21 +01:00
8dd5e34e4d cosmetics: whitespace 2023-03-05 15:13:08 +01:00
a44879dfb9 added information/ commented options from template file 2023-03-05 15:12:54 +01:00
e6c05c9739 disallow short-circuit code evaluation 2023-03-05 15:11:52 +01:00
23949e1098 removed obsolete aliases + functions 2023-02-26 20:52:58 +01:00
57e382cff8 removed files that are no longer needed in git 2023-02-26 20:49:43 +01:00
64f10c1350 unified and reworked docker container actions 2023-02-26 20:45:39 +01:00
99d177099a unset IFS variable - weird behaviour otherwise
trim unnecessary newlines
2023-02-26 20:42:38 +01:00
e9d35afb8b default theme and color scheme 2023-02-24 17:44:42 +01:00
f73cd39593 - merged with oashi time settings
- sorted lines
2023-02-24 17:21:13 +01:00
b720ba07ec added config file 2023-02-24 17:20:20 +01:00
08483c6330 reworked parameter handling 2023-02-24 16:10:42 +01:00
1d97ba199e removed obsolete save file 2023-02-24 16:10:12 +01:00
3d60a7cca4 file not meant to be executable - only a template for imports 2023-02-24 16:09:42 +01:00
deac51c69e renamed container starting script
added container stopping script
2023-02-24 16:05:47 +01:00
46eaa985c7 Merge branch 'master' of ssh://git.szimnau.de:222/fabian/sync 2023-02-24 16:04:50 +01:00
53e973b12a Merge branch 'master' of ssh://git.szimnau.de:222/fabian/sync 2023-02-20 19:14:53 +01:00
b5d9c6263c parameter- und zielordnerhandling verbessert 2023-02-20 19:13:25 +01:00
e163a0a50f replaced/ updated scripts 2023-01-18 22:35:06 +01:00
7dac64b788 ms fonts 2023-01-18 22:34:31 +01:00
418ecb2f3f new (stubs of) scripts/ updated scripts 2023-01-18 22:34:00 +01:00
3ed529867c improved starting git containers
added script for stopping git containers
2022-12-13 15:09:31 +01:00
07e0ac53a2 generally allow different/ custom bash aliases files 2022-09-24 14:52:22 +02:00
4ac6ee989c change: deacticated autocomplete since it is more trouble than it's worth
change: do not call aliases from aliases
new: added alias for a scp replacement
2022-08-20 18:54:44 +02:00
2a03193ad6 new: added additional config files 2022-08-18 22:32:58 +02:00
e50238789a change: added scripts directory to PATH 2022-08-18 22:32:31 +02:00
9761635055 Merge branch 'master' of ssh://git.szimnau.de:222/fabian/sync 2022-08-18 22:24:46 +02:00
7a8e1ac41b new: files for re-encoding audio (removing covers, optimising for streaming (AAC))
change: made script less error-prone
2022-08-18 22:22:48 +02:00
435035e2b3 new: script for starting all present docker containers 2022-08-17 21:09:24 +02:00
cddd6ca76f new: finally successful rsync autocomplete for aliases 2022-07-23 16:27:11 +02:00
0df0fa16ce new: script for transcoding audio files to m4a(AAC) 2022-07-23 16:21:39 +02:00
054b034d82 - use unified alias syntax
- added filesystem sizes sorted
- added directoriy sizes sorted
2022-06-21 23:08:47 +02:00
07c7389c7b easily mount/ unmount external drives 2022-06-18 19:00:22 +02:00
b087e95999 complete command does not work this way... 2022-06-18 13:05:24 +02:00
6a19ade2d2 Merge branch 'master' of ssh://git.szimnau.de:222/fabian/sync 2022-06-18 13:01:47 +02:00
e6768f016f added alias which makes sudo use aliases 2022-06-18 12:59:17 +02:00
216 changed files with 850 additions and 8067 deletions

4
.gitignore vendored
View File

@ -1,3 +1,3 @@
/backup
/home_internal
/root_internal
output.txt
/.sublime

4
distributeHome.sh Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
shopt -s dotglob
cp -lrf ./home_external/* $HOME/

4
distributeRoot.sh Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
shopt -s dotglob
sudo cp -lrf ./root_external/* /

View File

@ -1,34 +1,90 @@
#!/usr/bin/env bash
if [ "$TERM" == 'xterm-kitty' ]; then
alias ssh='kitty +kitten ssh'
alias diff='kitty +kitten diff'
fi
DEFAULT_RSYNC='--verbose --recursive --progress --delay-updates --human-readable --links --hard-links --perms'
COMMON_RSYNC='--info=ALL --recursive --delay-updates --human-readable --links --hard-links --perms'
export RSDEF="$COMMON_RSYNC --checksum"
export RSBKP="$RSDEF --times --group --owner --delete"
export RSMOV="$RSDEF --remove-source-files"
export RSUPD="$COMMON_RSYNC --update --times"
export RSCPY="$COMMON_RSYNC --ignore-times"
alias l='ls -l -v --all --human-readable --classify --group-directories-first' # -lvahF --group-directories-first
alias lt=='l --time-style=long-iso'
alias r='reset'
alias ..='cd ..'
alias refresh_bashrc='. ~/.bashrc' # alternatively: 'source ~/.bashrc'
alias rsync_default="rsync $DEFAULT_RSYNC --checksum"
# complete -F _rsync rsync_default # FIXME!!! works on oashi workstation (ubuntu) but not on manjaro ?!?
alias rsync_backup="rsync $DEFAULT_RSYNC --checksum --times --group --owner --delete"
alias rsync_move='rsync_default --remove-source-files'
alias rsync_update="rsync $DEFAULT_RSYNC --update --times"
alias rsync_default="rsync $RSDEF"
# source /usr/share/bash-completion/completions/rsync
# complete -F _rsync rsync_default
alias rsync_backup="rsync $RSBKP"
alias rsync_move="rsync $RSMOV"
alias rsync_update="rsync $RSUPD"
alias rsync_copy="rsync $RSCPY"
alias copy_link='cp --no-dereference --recursive --preserve=all --link' # not --force to make it optional
alias off='systemctl poweroff'
alias nnn='nnn -dHrR'
alias nn='n -dHrR'
alias finds='find $* 2>/dev/null'
alias c='clear'
alias sort_dirs_by_size='du --block-size=1K --human-readable --max-depth=1 | sort --human-numeric-sort --reverse' # 'du -kh --max-depth=1 | sort -hr'
alias sd='sudo ' # alias, so sudo can use aliases: "If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion."
alias mountdrive='udisksctl mount -b'
alias unmountdrive='udisksctl unmount -b'
alias fssizes='df -kh --output=size,used,avail,pcent,target | sort -hr'
alias dirsizes='du -kh --apparent-size --max-depth=1 | sort -hr'
# sed -ie 's/Beispiel/Ersetzung/' *.xml
# sed -Eie 's/(Beispiel)/\1Anhang/' *.xml
alias start_x11_vnc="x11vnc -many -display :0 -no6 -rfbport 5900 -auth /var/run/lightdm/root/:0 -rfbauth $HOME/.vnc/passwd"
rsyncLink() {
source=$1;
linkSource="$(realpath $source)";
linkSource=${linkSource%/}; # cut off trailing "/"
shift;
dest=$1;
shift;
rsync $DEFAULT_RSYNC --one-file-system --link-dest=$linkSource $source $dest $*;
}
updateSystem() {
executeAndNotify "doUpdateSystem $1" "system updated" "system update failed"
}
doUpdateSystem() {
updatePackages $1;
updateFlatpak $1;
}
updateFlatpak() {
noconfirm=
if [[ $1 == "-y" ]]; then
noconfirm="--assumeyes";
fi
executeAndNotify "doUpdateFlatpak $noconfirm" "flatpaks updated" "flatpak update failed";
}
doUpdateFlatpak() {
flatpak update $1;
flatpak remove --unused $1;
}
# executes command and notifies upon failure
execute() {
dir="$(pwd)";
dir=${dir##*/};
if [ -n "$2" ]; then
errLog=$2
if [[ -n "$2" ]]; then
errLog=$2;
else
errLog="execution of \"$1\" failed"
errLog="execution of \"$1\" failed";
fi
if ! $1; then
@ -41,34 +97,33 @@ execute() {
# executes command and notifies upon success or failure
executeAndNotify () {
dir="$(pwd)";
dir=${dir##*/};
if [ -n "$2" ]; then
winLog=$2
dir=${dir##*/}; # cut off previous path (/path/to/foo.txt -> foo.txt)
if [[ -n "$2" ]]; then
winLog=$2;
else
winLog="execution of \"$1\" succeeded"
winLog="execution of \"$1\" succeeded";
fi
if ! execute "$1" "$3"; then # arguments in quotes so they are interpreted as ONE argument each by execute()
return 1;
fi
notifyInfo "$dir: $winLog"
notifyInfo "$dir: $winLog";
}
# find file but don't print errors (e.g. can't access directory etc.)
: 'seems to be working as alias as well:
finds () {
find $* 2>/dev/null
}'
find $* 2>/dev/null;
}
# sends a desktop-notification with an icon signalling an error
notifyError () {
notify-send "$1" --icon=data-warning
notify-send "$1" --icon=data-warning;
}
# sends a desktop-notification with an icon signalling a simple information
notifyInfo () {
notify-send "$1" --icon=preferences-desktop-notification
notify-send "$1" --icon=preferences-desktop-notification;
}

View File

@ -0,0 +1,21 @@
#!/usr/bin/env bash
updatePackages() {
noconfirm=
if [[ $1 == "-y" ]]; then
noconfirm="--assume-yes"
fi
full=
if [[ $2 == "--full" ]]; then
full="full-"
fi
executeAndNotify "doUpdatePackages $noconfirm $full" "system updated" "system update failed";
}
doUpdatePackages() {
sudo apt update;
sudo apt ${2}upgrade $1;
sudo apt autoremove $1;
}

View File

@ -1,10 +0,0 @@
alias mount_garrus='sshMount fabian FabisDokumente && sshMount media Filme'
alias unmount_garrus='sshUnmount FabisDokumente && sshUnmount Filme'
sshMount() {
sshfs fabian@garrus:/citadel/$1/ /home/fabian/$2/ -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=8
}
sshUnmount() {
fusermount -u /home/fabian/$1
}

View File

@ -2,6 +2,9 @@
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
set -o pipefail
# set -u
# If not running interactively, don't do anything
if [[ $- != *i* ]]; then
return
@ -43,6 +46,8 @@ shopt -s checkwinsize
# match all files and zero or more directories and subdirectories.
shopt -s globstar
shopt -s dotglob
# make less more friendly for non-text input files, see lesspipe(1)
if [ -x /usr/bin/lesspipe ]; then
eval "$(SHELL=/bin/sh lesspipe)"
@ -134,16 +139,12 @@ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
source ~/.bash_aliases
fi
if [ -f ~/.bash_aliases_extra ]; then
. ~/.bash_aliases_extra
fi
if [ -f ~/.bash_aliases_local ]; then
. ~/.bash_aliases_local
fi
for file in ~/.bash_aliases_*; do
source $file
done
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
@ -185,32 +186,41 @@ colours() {
# ex - archive extractor
# usage: ex <file>
ex ()
{
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xjf $1 ;;
*.tar.gz) tar xzf $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xf $1 ;;
*.tbz2) tar xjf $1 ;;
*.tgz) tar xzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1;;
*.7z) 7z x $1 ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
ex() {
if [[ ! -f "$1" ]]; then
echo "'$1' is not a valid file"
return 1;
fi
# FIXME 7z kann (theoretisch) tar
outdir=${1%.*}
case "$1" in
*.tar.bz2 | *.tbz | *.tbz2)
tar xjf $1 -C $outdir;;
*.tar.gz | *.tgz)
tar xzf $1 -C $outdir;;
*.tar)
tar xf $1 -C $outdir;;
*.7z | *.zip | *.gz | *.bz | *.bz2)
7z x -o$outdir $1;;
*.rar)
unrar x $1;;
*.Z)
uncompress $1;;
*)
echo "'$1' cannot be extracted via ex()";;
esac
}
# BEGIN_KITTY_SHELL_INTEGRATION
if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
if [[ -n "$KITTY_INSTALLATION_DIR" && -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" ]]; then
source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash";
fi
# END_KITTY_SHELL_INTEGRATION
#THIS MUST BE AT THE END OF THE FILE FOR SDKMAN TO WORK!!!
export SDKMAN_DIR="$HOME/.sdkman"
[[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]] && source "$HOME/.sdkman/bin/sdkman-init.sh"
if [[ -s "$HOME/.sdkman/bin/sdkman-init.sh" ]]; then
source "$HOME/.sdkman/bin/sdkman-init.sh"
fi
export PATH=$PATH:/sync/scripts

View File

@ -0,0 +1,307 @@
## Sample initialization file for GNU nano.
##
## For the options that take parameters, the default value is shown.
## Other options are unset by default. To make sure that an option
## is disabled, you can use "unset <option>".
##
## Characters that are special in a shell should not be escaped here.
## Inside string parameters, quotes should not be escaped -- the last
## double quote on the line will be seen as the closing quote.
## Make 'nextword' (Ctrl+Right) and 'chopwordright' (Ctrl+Delete)
## stop at word ends instead of at beginnings.
# even more unintuitive than normal behaviour
# set afterends
## When soft line wrapping is enabled, make it wrap lines at blanks
## (tabs and spaces) instead of always at the edge of the screen.
set atblanks
## Automatically indent a newly created line to the same number of
## tabs and/or spaces as the preceding line -- or as the next line
## if the preceding line is the beginning of a paragraph.
set autoindent
## Back up files to the current filename plus a tilde.
# set backup
## The directory to put unique backup files in.
# set backupdir ""
## Use bold text instead of reverse video text.
# set boldtext
## Treat any line with leading whitespace as the beginning of a paragraph.
# set bookstyle
## The characters treated as closing brackets when justifying paragraphs.
## This may not include any blank characters. Only closing punctuation,
## optionally followed by these closing brackets, can end sentences.
set brackets ""')>]}"
## Automatically hard-wrap the current line when it becomes overlong.
# set breaklonglines
## Do case-sensitive searches by default.
# set casesensitive
## Constantly display the cursor position in the status bar or minibar.
set constantshow
## Use cut-from-cursor-to-end-of-line by default.
# set cutfromcursor
## Do not use the line below the title bar, leaving it entirely blank.
# set emptyline
## Set the target width for automatic hard-wrapping and for justifying
## paragraphs. If the specified value is 0 or less, the wrapping point
## will be the terminal's width minus this number.
# only works with hard wrap which does not work with atblanks
# set fill -8
## mark soft wrap indicator ##
set guidestripe 121
## Remember the used search/replace strings for the next session.
# set historylog
## Display a "scrollbar" on the righthand side of the edit window.
set indicator
## Scroll the buffer contents per half-screen instead of per line.
# set jumpyscrolling
## Display line numbers to the left (and any anchors in the margin).
set linenumbers
## Enable vim-style lock-files. This is just to let a vim user know you
## are editing a file [s]he is trying to edit and vice versa. There are
## no plans to implement vim-style undo state in these files.
# set locking
## Fall back to slow libmagic to try and determine an applicable syntax.
# set magic
## The opening and closing brackets that can be found by bracket
## searches. They cannot contain blank characters. The former set must
## come before the latter set, and both must be in the same order.
set matchbrackets "(<[{)>]}"
## Suppress title bar and show file name and editor state at the bottom.
# set minibar
## Enable mouse support, if available for your system. When enabled,
## mouse clicks can be used to place the cursor, set the mark (with a
## double click), and execute shortcuts. The mouse will work in the X
## Window System, and on the console when gpm is running.
# unintuitive
# set mouse
## Switch on multiple file buffers (inserting a file will put it into
## a separate buffer).
# set multibuffer
## Don't convert files from DOS/Mac format.
# set noconvert
## Don't display the helpful shortcut lists at the bottom of the screen.
# set nohelp
## Don't automatically add a newline when a file does not end with one.
# set nonewlines
## Set operating directory. nano will not read or write files outside
## this directory and its subdirectories. Also, the current directory
## is changed to here, so any files are inserted from this dir. A blank
## string means the operating-directory feature is turned off.
# set operatingdir ""
## Remember the cursor position in each file for the next editing session.
# set positionlog
## Preserve the XON and XOFF keys (^Q and ^S).
# set preserve
## The characters treated as closing punctuation when justifying
## paragraphs. They cannot contain blank characters. Only closing
## punctuation, optionally followed by closing brackets, can end
## sentences.
# set punct "!.?"
## Make status-bar messages disappear after 1 keystroke instead of after 20.
# set quickblank
## The regular expression that matches quoting characters in email
## or line-comment introducers in source code. The default is:
# set quotestr "^([ ]*([!#%:;>|}]|//))+"
## Try to work around a mismatching terminfo terminal description.
# set rawsequences
## Fix Backspace/Delete confusion problem.
# set rebinddelete
## Do regular-expression searches by default.
## Regular expressions are of the extended type (ERE).
# set regexp
## Save a changed buffer automatically on exit; don't prompt.
# set saveonexit
## (The old form of this option, 'set tempfile', is deprecated.)
## Put the cursor on the highlighted item in the file browser, and show
## the cursor in the help viewer; useful for people who use a braille
## display and people with poor vision.
# set showcursor
## Make the Home key smarter. When Home is pressed anywhere but at the
## very beginning of non-whitespace characters on a line, the cursor
## will jump to that beginning (either forwards or backwards). If the
## cursor is already at that position, it will jump to the true
## beginning of the line.
set smarthome
## Spread overlong lines over multiple screen lines.
set softwrap
## Use this spelling checker instead of the internal one. This option
## does not have a default value.
# set speller "aspell -x -c"
## Use the end of the title bar for some state flags: I = auto-indenting,
## M = mark, L = hard-wrapping long lines, R = recording, S = soft-wrapping.
set stateflags
## Allow nano to be suspended (with ^Z by default).
# set suspendable
## (The old form of this option, 'set suspend', is deprecated.)
## Use this tab size instead of the default; it must be greater than 0.
set tabsize 3
## Convert typed tabs to spaces.
set tabstospaces
## Snip whitespace at the end of lines when justifying or hard-wrapping.
set trimblanks
## The two single-column characters used to display the first characters
## of tabs and spaces. 187 in ISO 8859-1 (0000BB in Unicode) and 183 in
## ISO-8859-1 (0000B7 in Unicode) seem to be good values for these.
## The default when in a UTF-8 locale:
# set whitespace "»·"
## The default otherwise:
# set whitespace ">."
## Detect word boundaries differently by treating punctuation
## characters as parts of words.
# set wordbounds
## The characters (besides alphanumeric ones) that should be considered
## as parts of words. This option does not have a default value. When
## set, it overrides option 'set wordbounds'.
# set wordchars "<_>."
## Let an unmodified Backspace or Delete erase the marked region (instead
## of a single character, and without affecting the cutbuffer).
# set zap
## Paint the interface elements of nano. These are examples; there are
## no colors by default, except for errorcolor and spotlightcolor.
# set titlecolor bold,lightwhite,blue
# set promptcolor lightwhite,lightblack
# set statuscolor bold,lightwhite,green
# set errorcolor bold,lightwhite,red
# set spotlightcolor black,lime
# set selectedcolor lightwhite,magenta
# set stripecolor ,yellow
# set scrollercolor cyan
# set numbercolor cyan
# set keycolor cyan
# set functioncolor green
## In root's .nanorc you might want to use:
# set titlecolor bold,lightwhite,magenta
# set promptcolor black,yellow
# set statuscolor bold,lightwhite,magenta
# set errorcolor bold,lightwhite,red
# set spotlightcolor black,orange
# set selectedcolor lightwhite,cyan
# set stripecolor ,yellow
# set scrollercolor magenta
# set numbercolor magenta
# set keycolor lightmagenta
# set functioncolor magenta
## === Syntax coloring ===
## For all details, see 'man nanorc', section SYNTAX HIGHLIGHTING.
## To include most of the existing syntax definitions, you can do:
include "/usr/share/nano/*.nanorc"
## Or you can select just the ones you need. For example:
# include "/usr/share/nano/html.nanorc"
# include "/usr/share/nano/python.nanorc"
# include "/usr/share/nano/sh.nanorc"
## In /usr/share/nano/extra/ you can find some syntaxes that are
## specific for certain distros or for some less common languages.
## If <Tab> should always produce four spaces when editing a Python file,
## independent of the settings of 'tabsize' and 'tabstospaces':
# extendsyntax python tabgives " "
## If <Tab> should always produce an actual TAB when editing a Makefile:
# extendsyntax makefile tabgives " "
## === Key bindings ===
## For all details, see 'man nanorc', section REBINDING KEYS.
## The <Ctrl+Delete> keystroke deletes the word to the right of the cursor.
## On some terminals the <Ctrl+Backspace> keystroke produces ^H, which is
## the ASCII character for backspace, so it is bound by default to the
## backspace function. The <Backspace> key itself produces a different
## keycode, which is hard-bound to the backspace function. So, if you
## normally use <Backspace> for backspacing and not ^H, you can make
## <Ctrl+Backspace> delete the word to the left of the cursor with:
# bind ^H chopwordleft main
## If you would like nano to have keybindings that are more "usual",
## such as ^O for Open, ^F for Find, ^H for Help, and ^Q for Quit,
## then uncomment these:
#bind ^Q exit all
#bind ^S savefile main
#bind ^W writeout main
#bind ^O insert main
#bind ^H help all
#bind ^H exit help
#bind ^F whereis all
#bind ^G findnext all
#bind ^B wherewas all
#bind ^D findprevious all
#bind ^R replace main
#bind M-X flipnewbuffer all
#bind ^X cut all
#bind ^C copy main
#bind ^V paste all
#bind ^P location main
#bind ^A mark main
#unbind ^K main
#unbind ^U all
#unbind ^N main
#unbind ^Y all
#unbind M-J main
#unbind M-T main
#bind ^T gotoline main
#bind ^T gotodir browser
#bind ^Y speller main
#bind M-U undo main
#bind M-R redo main
#bind ^U undo main
#bind ^E redo main
#set multibuffer

View File

@ -139,13 +139,13 @@ configuration {
/* me-select-entry: "MousePrimary";*/
/* me-accept-entry: "MouseDPrimary";*/
/* me-accept-custom: "Control+MouseDPrimary";*/
timeout {
/* timeout {
action: "kb-cancel";
delay: 0;
}
filebrowser {
directories-first: true;
sorting-method: "name";
}
}*/
}
@theme "/usr/share/rofi/themes/Arc-Dark.rasi"

View File

@ -0,0 +1,16 @@
[
{ "keys": ["ctrl+alt+up"], "command": "select_lines", "args": {"forward": false} },
{ "keys": ["ctrl+alt+down"], "command": "select_lines", "args": {"forward": true} },
{ "keys": ["ctrl+tab"], "command": "next_view" },
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
{ "keys": ["ctrl+shift+x"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
{ "keys": ["alt+keypad_plus"], "command": "jump_forward" },
{ "keys": ["ctrl+b"], "command": "none" },
{ "keys": ["ctrl+keypad_enter"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Add Line.sublime-macro"} },
// { "keys": ["shift+tab"], "command": "insert", "args": {"characters": "\t"} },
// { "keys": ["tab"], "command": "insert_best_completion", "args": {"default": "\t", "exact": true} } // can't unset this. fuck you.
{ "keys": ["ctrl+alt+n"], "command": "new_snippet" },
{ "keys": ["ctrl+alt+f"], "command": "auto_indent" }
// { "keys": [""], "command": "lower_case" }
// { "keys": [""], "command": "upper_case" }
]

View File

@ -0,0 +1,48 @@
// Settings in here override those in "Default/Preferences.sublime-settings",
// and are overridden in turn by syntax-specific settings.
{
"always_show_minimap_viewport": true,
"auto_complete_commit_on_tab": true,
"auto_complete_trailing_symbols": true,
"auto_complete_with_fields": true,
"bold_folder_labels": true,
"color_scheme": "Mariana.sublime-color-scheme",
"drag_text": false,
"draw_white_space": ["selection", "all_mixed"],
"enable_tab_scrolling": false,
"ensure_newline_at_eof_on_save": true,
"fade_fold_buttons": false,
"fallback_encoding": "UTF-8",
"font_size": 11,
"font_face": "JetBrains Mono Regular",
"highlight_line": true,
"highlight_modified_tabs": true,
"ignored_packages":
[
"Vintage",
],
"indent_to_bracket": false,
"margin": 0,
"rulers":
[
0,
3,
120
],
"shift_tab_unindent": true,
"show_encoding": true,
"show_line_endings": true,
"tab_completion": false,
"remember_full_screen": true,
"scroll_past_end": false,
"tab_size": 3,
"theme": "Adaptive.sublime-theme",
"translate_tabs_to_spaces": true,
"trim_automatic_white_space": false,
"trim_trailing_white_space_on_save": "all",
"ui_scale": 1.1,
"use_tab_stops": false,
"word_wrap": true,
"wrap_width": 120,
"index_files": true,
}

View File

@ -1,563 +0,0 @@
Installing
==========
Windows
-------
In the ttf folder, double-click each font file, click “Install font”; to install all at once, select all files, right-click, and choose “Install”
OR
Use https://chocolatey.org:
choco install firacode
macOS
-----
In the downloaded TTF folder:
1. Select all font files
2. Right click and select `Open` (alternatively `Open With Font Book`)
3. Select "Install Font"
OR
Use http://brew.sh:
`brew tap homebrew/cask-fonts`
`brew install font-fira-code`
Ubuntu Zesty (17.04), Debian Stretch (9) or newer
-------------------------------------------------
1. Make sure that the `universe` (for Ubuntu) or `contrib` (for Debian) repository is enabled (see https://askubuntu.com/questions/148638/how-do-i-enable-the-universe-repository or https://wiki.debian.org/SourcesList#Component)
2. Install `fonts-firacode` package either by executing `sudo apt install fonts-firacode` in the terminal or via GUI tool (like “Software Center”)
Arch Linux
----------
Fira Code package is available in the official repository: https://www.archlinux.org/packages/community/any/ttf-fira-code/.
Variant of Fira Code package is available in the AUR: https://aur.archlinux.org/packages/otf-fira-code-git/.
Gentoo
------
emerge -av media-fonts/fira-code
Fedora
------
To install, perform the following commands:
dnf install fira-code-fonts
Solus
-----
Fira Code package is available in the official repository: `font-firacode-ttf` and `font-firacode-otf`.
They can be installed by running:
sudo eopkg install font-firacode-ttf font-firacode-otf
Void linux
----------
xbps-install font-firacode
Linux Manual Installation
-------------------------
With most desktop-oriented distributions, double-clicking each font file in the ttf folder and selecting “Install font” should be enough. If it isnt, create and run `download_and_install.sh` script:
#!/usr/bin/env bash
fonts_dir="${HOME}/.local/share/fonts"
if [ ! -d "${fonts_dir}" ]; then
echo "mkdir -p $fonts_dir"
mkdir -p "${fonts_dir}"
else
echo "Found fonts dir $fonts_dir"
fi
for type in Bold Light Medium Regular Retina; do
file_path="${HOME}/.local/share/fonts/FiraCode-${type}.ttf"
file_url="https://github.com/tonsky/FiraCode/blob/master/distr/ttf/FiraCode-${type}.ttf?raw=true"
if [ ! -e "${file_path}" ]; then
echo "wget -O $file_path $file_url"
wget -O "${file_path}" "${file_url}"
else
echo "Found existing file $file_path"
fi;
done
echo "fc-cache -f"
fc-cache -f
More details: https://github.com/tonsky/FiraCode/issues/4
FreeBSD
-------
Using pkg(8):
pkg install firacode
OR
Using ports:
cd /usr/ports/x11-fonts/firacode && make install clean
Enabling ligatures
==================
Atom
----
To change your font to Fira Code, open Atom's preferences (`cmd + ,` on a Mac, `ctrl + ,` on PC), make sure the "Settings" tab is selected, or the "Editor" in Atom 1.10+, and scroll down to "Editor Settings". In the "Font Family" field, enter `Fira Code`.
If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS).
Ligatures are enabled by default in Atom 1.9 and above.
VS Code
-------
To open the settings editor, first from the File menu choose Preferences, Settings or use keyboard shortcut `Ctrl + ,` (Windows) or `Cmd + ,` (macOS).
To enable FiraCode in the settings editor, under "Commonly Used", expand the "Text Editor" settings and then click on "Font". In the "Font Family" input box type `Fira Code`, replacing any content. Tick the check box "Enables/Disables font ligatures" under "Font Ligatures" to enable the special ligatures.
If you wish to specify a font weight, for example, Light, use `Fira Code Light` as a font name (Windows) or `FiraCode-Light` (macOS).
IntelliJ products
-----------------
1. Enable in Settings → Editor → Font → Enable Font Ligatures
2. Select `Fira Code` as "Primary font" under Settings → Editor → Font
Additionally, if a Color Scheme is selected:
3. Enable in Settings → Editor → Color Scheme → Color Scheme Font → Enable Font Ligatures
4. Select Fira Code as "Primary font" under Settings → Editor → Color Scheme → Color Scheme Font
BBEdit, TextWrangler
--------------------
Run in your terminal:
defaults write com.barebones.bbedit "EnableFontLigatures_Fira Code" -bool YES
Source: https://www.barebones.com/support/bbedit/ExpertPreferences.html
Brackets
--------
1. From the `View` menu choose `Themes....`
2. Paste `'Fira Code'`, at the beginning of `Font Family`
Emacs
-----
There are a few options when it comes down to using ligatures in
Emacs. They are listed in order of preferred to less-preferred. Pick one!
1. Using composition mode in Emacs Mac port
If you're using the latest Mac port of Emacs (https://bitbucket.org/mituharu/emacs-mac by Mitsuharu Yamamoto) for macOS, you can use:
(mac-auto-operator-composition-mode)
This is generally the easiest solution, but can only be used on macOS.
2. Using prettify-symbols
These instructions are pieced together by https://github.com/Triavanicus, taking some pieces from https://github.com/minad/hasklig-mode.
This method requires you to install the Fira Code Symbol font, made by https://github.com/siegebell:
https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632
(defun fira-code-mode--make-alist (list)
"Generate prettify-symbols alist from LIST."
(let ((idx -1))
(mapcar
(lambda (s)
(setq idx (1+ idx))
(let* ((code (+ #Xe100 idx))
(width (string-width s))
(prefix ())
(suffix '(?\s (Br . Br)))
(n 1))
(while (< n width)
(setq prefix (append prefix '(?\s (Br . Bl))))
(setq n (1+ n)))
(cons s (append prefix suffix (list (decode-char 'ucs code))))))
list)))
(defconst fira-code-mode--ligatures
'("www" "**" "***" "**/" "*>" "*/" "\\\\" "\\\\\\"
"{-" "[]" "::" ":::" ":=" "!!" "!=" "!==" "-}"
"--" "---" "-->" "->" "->>" "-<" "-<<" "-~"
"#{" "#[" "##" "###" "####" "#(" "#?" "#_" "#_("
".-" ".=" ".." "..<" "..." "?=" "??" ";;" "/*"
"/**" "/=" "/==" "/>" "//" "///" "&&" "||" "||="
"|=" "|>" "^=" "$>" "++" "+++" "+>" "=:=" "=="
"===" "==>" "=>" "=>>" "<=" "=<<" "=/=" ">-" ">="
">=>" ">>" ">>-" ">>=" ">>>" "<*" "<*>" "<|" "<|>"
"<$" "<$>" "<!--" "<-" "<--" "<->" "<+" "<+>" "<="
"<==" "<=>" "<=<" "<>" "<<" "<<-" "<<=" "<<<" "<~"
"<~~" "</" "</>" "~@" "~-" "~=" "~>" "~~" "~~>" "%%"
"x" ":" "+" "+" "*"))
(defvar fira-code-mode--old-prettify-alist)
(defun fira-code-mode--enable ()
"Enable Fira Code ligatures in current buffer."
(setq-local fira-code-mode--old-prettify-alist prettify-symbols-alist)
(setq-local prettify-symbols-alist (append (fira-code-mode--make-alist fira-code-mode--ligatures) fira-code-mode--old-prettify-alist))
(prettify-symbols-mode t))
(defun fira-code-mode--disable ()
"Disable Fira Code ligatures in current buffer."
(setq-local prettify-symbols-alist fira-code-mode--old-prettify-alist)
(prettify-symbols-mode -1))
(define-minor-mode fira-code-mode
"Fira Code ligatures minor mode"
:lighter " Fira Code"
(setq-local prettify-symbols-unprettify-at-point 'right-edge)
(if fira-code-mode
(fira-code-mode--enable)
(fira-code-mode--disable)))
(defun fira-code-mode--setup ()
"Setup Fira Code Symbols"
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol"))
(provide 'fira-code-mode)
Alternative instructions: https://github.com/Profpatsch/blog/blob/master/posts/ligature-emulation-in-emacs/post.md#appendix-b-update-1-firacode-integration
3. Using composition char table
Thanks to https://github.com/seanfarley for putting this together; extended by https://github.com/jrblevin.
Put this lisp in your .emacs:
(when (window-system)
(set-frame-font "Fira Code"))
(let ((alist '((33 . ".\\(?:\\(?:==\\|!!\\)\\|[!=]\\)")
(35 . ".\\(?:###\\|##\\|_(\\|[#(?[_{]\\)")
(36 . ".\\(?:>\\)")
(37 . ".\\(?:\\(?:%%\\)\\|%\\)")
(38 . ".\\(?:\\(?:&&\\)\\|&\\)")
(42 . ".\\(?:\\(?:\\*\\*/\\)\\|\\(?:\\*[*/]\\)\\|[*/>]\\)")
(43 . ".\\(?:\\(?:\\+\\+\\)\\|[+>]\\)")
(45 . ".\\(?:\\(?:-[>-]\\|<<\\|>>\\)\\|[<>}~-]\\)")
(46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=-]\\)")
(47 . ".\\(?:\\(?:\\*\\*\\|//\\|==\\)\\|[*/=>]\\)")
(48 . ".\\(?:x[a-zA-Z]\\)")
(58 . ".\\(?:::\\|[:=]\\)")
(59 . ".\\(?:;;\\|;\\)")
(60 . ".\\(?:\\(?:!--\\)\\|\\(?:~~\\|->\\|\\$>\\|\\*>\\|\\+>\\|--\\|<[<=-]\\|=[<=>]\\||>\\)\\|[*$+~/<=>|-]\\)")
(61 . ".\\(?:\\(?:/=\\|:=\\|<<\\|=[=>]\\|>>\\)\\|[<=>~]\\)")
(62 . ".\\(?:\\(?:=>\\|>[=>-]\\)\\|[=>-]\\)")
(63 . ".\\(?:\\(\\?\\?\\)\\|[:=?]\\)")
(91 . ".\\(?:]\\)")
(92 . ".\\(?:\\(?:\\\\\\\\\\)\\|\\\\\\)")
(94 . ".\\(?:=\\)")
(119 . ".\\(?:ww\\)")
(123 . ".\\(?:-\\)")
(124 . ".\\(?:\\(?:|[=|]\\)\\|[=>|]\\)")
(126 . ".\\(?:~>\\|~~\\|[>=@~-]\\)")
)
))
(dolist (char-regexp alist)
(set-char-table-range composition-function-table (car char-regexp)
`([,(cdr char-regexp) 0 font-shape-gstring]))))
**Note!** If you get `error in process filter: Attempt to shape unibyte text`, check out https://github.com/tonsky/FiraCode/issues/42. Emacs Cider users may avoid this issue by commenting the following line from the above config:
;; (46 . ".\\(?:\\(?:\\.[.<]\\)\\|[.=-]\\)")
Char `45` is also known to have issues in macOS Mojave.
If you are having problems with helm you can disable ligatures in helm:
(add-hook 'helm-major-mode-hook
(lambda ()
(setq auto-composition-mode nil)))
4. Using font-lock keywords
If none of the above worked, you can try this method.
This method requires you to install the Fira Code Symbol font, made by https://github.com/siegebell:
https://github.com/tonsky/FiraCode/issues/211#issuecomment-239058632
;;; Fira code
;; This works when using emacs --daemon + emacsclient
(add-hook 'after-make-frame-functions (lambda (frame) (set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")))
;; This works when using emacs without server/client
(set-fontset-font t '(#Xe100 . #Xe16f) "Fira Code Symbol")
;; I haven't found one statement that makes both of the above situations work, so I use both for now
(defconst fira-code-font-lock-keywords-alist
(mapcar (lambda (regex-char-pair)
`(,(car regex-char-pair)
(0 (prog1 ()
(compose-region (match-beginning 1)
(match-end 1)
;; The first argument to concat is a string containing a literal tab
,(concat " " (list (decode-char 'ucs (cadr regex-char-pair)))))))))
'(("\\(www\\)" #Xe100)
("[^/]\\(\\*\\*\\)[^/]" #Xe101)
("\\(\\*\\*\\*\\)" #Xe102)
("\\(\\*\\*/\\)" #Xe103)
("\\(\\*>\\)" #Xe104)
("[^*]\\(\\*/\\)" #Xe105)
("\\(\\\\\\\\\\)" #Xe106)
("\\(\\\\\\\\\\\\\\)" #Xe107)
("\\({-\\)" #Xe108)
("\\(\\[\\]\\)" #Xe109)
("\\(::\\)" #Xe10a)
("\\(:::\\)" #Xe10b)
("[^=]\\(:=\\)" #Xe10c)
("\\(!!\\)" #Xe10d)
("\\(!=\\)" #Xe10e)
("\\(!==\\)" #Xe10f)
("\\(-}\\)" #Xe110)
("\\(--\\)" #Xe111)
("\\(---\\)" #Xe112)
("\\(-->\\)" #Xe113)
("[^-]\\(->\\)" #Xe114)
("\\(->>\\)" #Xe115)
("\\(-<\\)" #Xe116)
("\\(-<<\\)" #Xe117)
("\\(-~\\)" #Xe118)
("\\(#{\\)" #Xe119)
("\\(#\\[\\)" #Xe11a)
("\\(##\\)" #Xe11b)
("\\(###\\)" #Xe11c)
("\\(####\\)" #Xe11d)
("\\(#(\\)" #Xe11e)
("\\(#\\?\\)" #Xe11f)
("\\(#_\\)" #Xe120)
("\\(#_(\\)" #Xe121)
("\\(\\.-\\)" #Xe122)
("\\(\\.=\\)" #Xe123)
("\\(\\.\\.\\)" #Xe124)
("\\(\\.\\.<\\)" #Xe125)
("\\(\\.\\.\\.\\)" #Xe126)
("\\(\\?=\\)" #Xe127)
("\\(\\?\\?\\)" #Xe128)
("\\(;;\\)" #Xe129)
("\\(/\\*\\)" #Xe12a)
("\\(/\\*\\*\\)" #Xe12b)
("\\(/=\\)" #Xe12c)
("\\(/==\\)" #Xe12d)
("\\(/>\\)" #Xe12e)
("\\(//\\)" #Xe12f)
("\\(///\\)" #Xe130)
("\\(&&\\)" #Xe131)
("\\(||\\)" #Xe132)
("\\(||=\\)" #Xe133)
("[^|]\\(|=\\)" #Xe134)
("\\(|>\\)" #Xe135)
("\\(\\^=\\)" #Xe136)
("\\(\\$>\\)" #Xe137)
("\\(\\+\\+\\)" #Xe138)
("\\(\\+\\+\\+\\)" #Xe139)
("\\(\\+>\\)" #Xe13a)
("\\(=:=\\)" #Xe13b)
("[^!/]\\(==\\)[^>]" #Xe13c)
("\\(===\\)" #Xe13d)
("\\(==>\\)" #Xe13e)
("[^=]\\(=>\\)" #Xe13f)
("\\(=>>\\)" #Xe140)
("\\(<=\\)" #Xe141)
("\\(=<<\\)" #Xe142)
("\\(=/=\\)" #Xe143)
("\\(>-\\)" #Xe144)
("\\(>=\\)" #Xe145)
("\\(>=>\\)" #Xe146)
("[^-=]\\(>>\\)" #Xe147)
("\\(>>-\\)" #Xe148)
("\\(>>=\\)" #Xe149)
("\\(>>>\\)" #Xe14a)
("\\(<\\*\\)" #Xe14b)
("\\(<\\*>\\)" #Xe14c)
("\\(<|\\)" #Xe14d)
("\\(<|>\\)" #Xe14e)
("\\(<\\$\\)" #Xe14f)
("\\(<\\$>\\)" #Xe150)
("\\(<!--\\)" #Xe151)
("\\(<-\\)" #Xe152)
("\\(<--\\)" #Xe153)
("\\(<->\\)" #Xe154)
("\\(<\\+\\)" #Xe155)
("\\(<\\+>\\)" #Xe156)
("\\(<=\\)" #Xe157)
("\\(<==\\)" #Xe158)
("\\(<=>\\)" #Xe159)
("\\(<=<\\)" #Xe15a)
("\\(<>\\)" #Xe15b)
("[^-=]\\(<<\\)" #Xe15c)
("\\(<<-\\)" #Xe15d)
("\\(<<=\\)" #Xe15e)
("\\(<<<\\)" #Xe15f)
("\\(<~\\)" #Xe160)
("\\(<~~\\)" #Xe161)
("\\(</\\)" #Xe162)
("\\(</>\\)" #Xe163)
("\\(~@\\)" #Xe164)
("\\(~-\\)" #Xe165)
("\\(~=\\)" #Xe166)
("\\(~>\\)" #Xe167)
("[^<]\\(~~\\)" #Xe168)
("\\(~~>\\)" #Xe169)
("\\(%%\\)" #Xe16a)
("[0\[]\\(x\\)" #Xe16b)
("[^:=]\\(:\\)[^:=]" #Xe16c)
("[^\\+<>]\\(\\+\\)[^\\+<>]" #Xe16d)
("[^\\*/<>]\\(\\*\\)[^\\*/<>]" #Xe16f))))
(defun add-fira-code-symbol-keywords ()
(font-lock-add-keywords nil fira-code-font-lock-keywords-alist))
(add-hook 'prog-mode-hook
#'add-fira-code-symbol-keywords)
On some systems, `==` will appear incorrectly as a blank space in certain modes unless you add the following lines to your init file:
(set-language-environment "UTF-8")
(set-default-coding-systems 'utf-8)
GoormIDE
--------
In a workspace:
1. Click goormIDE, then Preferences.
2. Go to Theme, then focus Custom Theme CSS.
3. Copy & paste the following:
@font-face{
font-family: 'Fira Code';
src: url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/eot/FiraCode-Regular.eot') format('embedded-opentype'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff2/FiraCode-Regular.woff2') format('woff2'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff/FiraCode-Regular.woff') format('woff'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/ttf/FiraCode-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
.editor_container pre {
-webkit-font-feature-settings: "liga" on, "calt" on;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: 'Fira Code';
}
4. Click Aplly or OK
5. Happy coding!
Cloud9
------
In a workspace:
1. Click Cloud9, then Preferences (or use keyboard shortcut CTRL + ,)
2. Go to Themes, then click on You can also style Cloud9 by editing your stylesheet (this will open a blank styles.css file in the C9 editor)
3. Copy & paste the following:
@font-face{
font-family: 'Fira Code';
src: url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/eot/FiraCode-Regular.eot') format('embedded-opentype'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff2/FiraCode-Regular.woff2') format('woff2'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/woff/FiraCode-Regular.woff') format('woff'),
url('https://raw.githubusercontent.com/tonsky/FiraCode/master/distr/ttf/FiraCode-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
.ace_editor{
-webkit-font-feature-settings: "liga" on, "calt" on;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
font-family: 'Fira Code';
}
4. Back in Preferences tab, click on User Settings, then click on Code Editor (Ace)
5. In Font Family field, enter Fira Code
6. Optionally, repeat step 5 for Preferences > User Settings > Terminal, if you want Fira Code font in C9 terminal.
MacVim
------
Add this to ~/.gvimrc:
set macligatures
set guifont=Fira\ Code:h12
MacVim supports ligatures starting from version 7.4.
RStudio
-------
In RStudio:
1. Go to Tools > Global Options > Appearance
2. Select "Fira Code" as Editor Font. In older versions of RStudio, check "Use Ligatures".
3. Hit "OK" and enjoy
Sublime Text
------------
Preferences --> Settings
Add before "ignored_packages":
"font_face": "Fira Code",
"font_options": ["subpixel_antialias"],
If you want enable antialias, add in font_options: "gray_antialias"
Visual Studio
-------------
1. Launch Visual Studio (2015 or later).
2. Launch the Options dialog by opening the "Tools" menu and selecting "Options".
3. In the Options dialog, under the "Environment" category, you'll find "Fonts and Colors". Click on that. You'll see a combo-box on the right hand side of the dialog labelled "Font". Select "Fira Code" from that combo-box.
4. Click "OK" to dismiss.
5. Restart Visual Studio.
Now, most FiraCode ligatures will work. A notable exception is the hyphen-based ligatures (e.g. the C++ dereference '->'). See https://github.com/tonsky/FiraCode/issues/422 for details.
Troubleshooting
===============
See https://github.com/tonsky/FiraCode/wiki/Troubleshooting

View File

@ -1,48 +0,0 @@
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Light.woff2') format('woff2'),
url("woff/FiraCode-Light.woff") format("woff");
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Regular.woff2') format('woff2'),
url("woff/FiraCode-Regular.woff") format("woff");
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Medium.woff2') format('woff2'),
url("woff/FiraCode-Medium.woff") format("woff");
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-SemiBold.woff2') format('woff2'),
url("woff/FiraCode-SemiBold.woff") format("woff");
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Fira Code';
src: url('woff2/FiraCode-Bold.woff2') format('woff2'),
url("woff/FiraCode-Bold.woff") format("woff");
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Fira Code VF';
src: url('woff2/FiraCode-VF.woff2') format('woff2-variations'),
url('woff/FiraCode-VF.woff') format('woff-variations');
/* font-weight requires a range: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide#Using_a_variable_font_font-face_changes */
font-weight: 300 700;
font-style: normal;
}

View File

@ -1,95 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Fira Code Specimen</title>
<link rel="stylesheet" href="fira_code.css">
<style>
body { font: 14px/1.5em "Fira Code"; }
.code {
font-feature-settings: "calt" 1; /* Enable ligatures for IE 10+, Edge */
text-rendering: optimizeLegibility; /* Force ligatures for Webkit, Blink, Gecko */
width: 30em;
margin: 5em auto;
white-space: pre-wrap;
word-break: break-all;
}
.light { font-weight: 300; }
.regular { font-weight: 400; }
.medium { font-weight: 500; }
.semibold { font-weight: 600; }
.bold { font-weight: 700; }
.variable { font-family: 'Fira Code VF'; font-variation-settings: 'wght' 400; }
i { font-style: normal; color: #c33; }
b { font-weight: inherit; color: #c33; }
</style>
<script type="text/javascript">
function onWeightChange(weight) {
// code_variable.style['font-weight'] = weight;
code_variable.style['font-variation-settings'] = "'wght' " + weight;
span_wght.innerText = weight;
}
</script>
<body>
<div class="code light"><b># Fira Code Light</b>
take = (n, [x, <i>...</i>xs]:list) <i>--&gt;</i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>
<div class="code regular"><b># Fira Code Regular</b>
take = (n, [x, <i>...</i>xs]:list) <i>--></i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>
<div class="code medium"><b># Fira Code Medium</b>
take = (n, [x, <i>...</i>xs]:list) <i>--&gt;</i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>
<div class="code semibold"><b># Fira Code SemiBold</b>
take = (n, [x, <i>...</i>xs]:list) <i>--&gt;</i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>
<div class="code bold"><b># Fira Code Bold</b>
take = (n, [x, <i>...</i>xs]:list) <i>--&gt;</i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>
<div id="code_variable" class="code variable"><b># Fira Code Variable</b>
<input type="range" min="300" max="700" value="400" step="10" style="width: 300px;" oninput="onWeightChange(this.value)" onchange="onWeightChange(this.value)"> <span id="span_wght">400</span>
take = (n, [x, <i>...</i>xs]:list) <i>--&gt;</i>
| n <i>&lt;=</i> 0 <i>=&gt;</i> []
| empty list <i>=&gt;</i> []
| otherwise <i>=&gt;</i> [x] <i>++</i> take n-1, xs
last3 = reverse <i>&gt;&gt;</i> take 3 <i>&gt;&gt;</i> reverse</div>

View File

@ -1,10 +0,0 @@
# This is the official list of project authors for copyright purposes.
# This file is distinct from the CONTRIBUTORS.txt file.
# See the latter for an explanation.
#
# Names should be added to this file as:
# Name or Organization <email address>
JetBrains <>
Philipp Nurullin <philipp.nurullin@jetbrains.com>
Konstantin Bulenkov <kb@jetbrains.com>

View File

@ -1,93 +0,0 @@
Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at: https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

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