Compare commits

..

1 Commits

Author SHA1 Message Date
d2a1edf021 Switch to Gruvbox as light theme 2023-02-01 03:40:42 +01:00
57 changed files with 675 additions and 347 deletions

View File

@@ -22,5 +22,5 @@ cd ~/.dotfiles
3. Run stow
#+BEGIN_SRC sh
stow */
stow *
#+END_SRC

View File

@@ -8,7 +8,7 @@ import:
incremental: yes
quiet_fallback: skip
timid: no
plugins: fetchart embedart musicbrainz
plugins: fetchart embedart
art_filename: folder
fetchart:
cover_format: jpeg

Binary file not shown.

View File

@@ -0,0 +1,6 @@
{
"device": "alsa_output.pci-0000_00_1f.3.analog-stereo",
"device-description": "Built-in Audio Analog Stereo",
"device-profile": "analog-output-headphones",
"preset-name": "AKG K361"
}

View File

@@ -0,0 +1,6 @@
{
"device": "alsa_output.pci-0000_00_1f.3.analog-stereo",
"device-description": "Built-in Audio Analog Stereo",
"device-profile": "analog-output-speaker",
"preset-name": "Advanced Auto Gain"
}

View File

@@ -1,6 +0,0 @@
{
"device": "alsa_output.pci-0000_04_00.6.analog-stereo",
"device-description": "Family 17h/19h HD Audio Controller Analog Stereo",
"device-profile": "analog-output-headphones",
"preset-name": "AKG K361"
}

View File

@@ -1,6 +0,0 @@
{
"device": "alsa_output.pci-0000_04_00.6.analog-stereo",
"device-description": "Family 17h/19h HD Audio Controller Analog Stereo",
"device-profile": "analog-output-speaker",
"preset-name": "Laptop speakers"
}

View File

@@ -1,16 +0,0 @@
{
"output": {
"blocklist": [],
"convolver#0": {
"autogain": true,
"bypass": false,
"input-gain": 0.0,
"ir-width": 100,
"kernel-path": "/home/coolneng/.config/easyeffects/irs/AKG K361.irs",
"output-gain": 0.0
},
"plugins_order": [
"convolver#0"
]
}
}

View File

@@ -1,16 +0,0 @@
{
"output": {
"blocklist": [],
"convolver#0": {
"autogain": true,
"bypass": false,
"input-gain": 0.0,
"ir-width": 100,
"kernel-path": "/home/coolneng/.config/easyeffects/irs/AKG K361.irs",
"output-gain": 0.0
},
"plugins_order": [
"convolver#0"
]
}
}

View File

@@ -1,16 +0,0 @@
{
"output": {
"blocklist": [],
"convolver#0": {
"autogain": true,
"bypass": false,
"input-gain": 0.0,
"ir-width": 100,
"kernel-name": "AKG K361",
"output-gain": 0.0
},
"plugins_order": [
"convolver#0"
]
}
}

View File

@@ -11,11 +11,9 @@ alias vim "nvim"
alias docker-compose "podman-compose"
alias sc "systemctl"
alias scu "systemctl --user"
alias jc "journalctl -eu"
alias jcu "journalctl --user -eu"
alias jc "journalctl -u"
alias jcu "journalctl --user -u"
alias webtorrent "webtorrent -i -o /tmp/webtorrent --mpv --player-args='--sub-auto=all --sub-file-paths=Subs:subs'"
alias ns "nix-shell -p"
alias tmpdir "cd $(mktemp -d)"
# Additional paths
set PATH $PATH $HOME/.emacs.d/bin

View File

@@ -3,7 +3,7 @@
SETUVAR __fish_init_2_39_8:\x1d
SETUVAR __fish_init_2_3_0:\x1d
SETUVAR __fish_init_3_x:\x1d
SETUVAR __fish_initialized:3800
SETUVAR __fish_initialized:3400
SETUVAR fish_color_autosuggestion:555\x1ebrblack
SETUVAR fish_color_cancel:\x2dr
SETUVAR fish_color_command:white\x1e\x2d\x2dbold
@@ -22,7 +22,7 @@ SETUVAR fish_color_operator:red
SETUVAR fish_color_param:cyan
SETUVAR fish_color_quote:green
SETUVAR fish_color_redirection:red
SETUVAR fish_color_search_match:white\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:brgreen

View File

@@ -16,6 +16,9 @@
user = akasroua
[lfs]
activitytimeout = 60
[filter "git-ignore-line.sh"]
clean = /home/coolneng/.dotfiles/scripts/.local/share/scripts/git-ignore-line.sh
smudge = cat
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f

View File

@@ -4,10 +4,8 @@ CMakeFiles/
cmake_install.cmake
compile_commands.json
Debug/
.ccls
.ccls-cache
.cache
.clang_complete
*.o
# LaTeX
auto
@@ -21,7 +19,6 @@ auto
.mypy_cache
__pycache__
.ipynb_checkpoints
.venv
# Dev environment with Nix
.envrc
.direnv
@@ -34,7 +31,3 @@ __pycache__
.classpath
.project
.settings
# Emacs
.projectile-cache.eld
# Platformio
.pio

View File

@@ -0,0 +1,14 @@
{
"host": "disroot.org",
"port": 993,
"tls": true,
"tlsOptions": {
"rejectUnauthorized": true
},
"username": "akasroua@disroot.org",
"passwordCmd": "pass mail/disroot",
"onNewMail": "~/.local/share/scripts/mail-sync disroot",
"boxes": [
"INBOX"
]
}

View File

@@ -0,0 +1,14 @@
{
"host": "imap.gmail.com",
"port": 993,
"tls": true,
"tlsOptions": {
"rejectUnauthorized": true
},
"username": "akasroua@gmail.com",
"passwordCmd": "pass mail/gmail",
"onNewMail": "~/.local/share/scripts/mail-sync gmail",
"boxes": [
"INBOX"
]
}

View File

@@ -1,22 +0,0 @@
configurations:
-
host: disroot.org
port: 993
tls: true
tlsOptions:
rejectUnauthorized: true
username: akasroua@disroot.org
passwordCmd: 'pass mail/disroot'
onNewMail: '~/.local/share/scripts/mail-sync disroot'
-
host: imap.gmail.com
port: 993
tls: true
tlsOptions:
rejectUnauthorized: true
username: akasroua@gmail.com
passwordCmd: 'pass mail/gmail'
onNewMail: '~/.local/share/scripts/mail-sync gmail'
boxes:
-
mailbox: INBOX

View File

@@ -0,0 +1,15 @@
{
"host": "outlook.office365.com",
"port": 993,
"tls": true,
"tlsOptions": {
"rejectUnauthorized": true
},
"username": "amin.kasrouaouam@ugent.be",
"passwordCmd": "/home/coolneng/.local/share/scripts/mutt_oauth2.py /home/coolneng/.cache/tokenfile",
"xoauth2": true,
"onNewMail": "~/.local/share/scripts/mail-sync ugent",
"boxes": [
"INBOX"
]
}

View File

@@ -1,26 +1,26 @@
profile multihead-dock {
output eDP-1 enable position 1920,0
output DP-1 enable mode 1920x1080 position 0,0
profile multihead-DP {
output eDP-1 enable
output DP-1 enable mode 1920x1080
exec swaymsg workspace "1: ", move workspace to eDP-1
exec swaymsg workspace "3: ", move workspace to eDP-1
exec swaymsg workspace "2: ", move workspace to DP-1
exec swaymsg workspace "4: 󱓷", move workspace to DP-1
exec swaymsg workspace "4: ", move workspace to DP-1
exec light -S 100
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
}
profile multihead-HDMI {
output eDP-1 enable position 0,0
output HDMI-A-1 enable mode 1920x1080 position 1920,0
output eDP-1 enable
output HDMI-A-2 enable mode 1920x1080
exec swaymsg workspace "1: ", move workspace to eDP-1
exec swaymsg workspace "3: ", move workspace to eDP-1
exec swaymsg workspace "2: ", move workspace to HDMI-A-2
exec swaymsg workspace "4: 󱓷", move workspace to HDMI-A-2
exec swaymsg workspace "4: ", move workspace to HDMI-A-2
exec light -S 100
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
}
profile nomad {
output eDP-1 enable
exec light -S 50
exec light -S 60
}

View File

@@ -997,9 +997,3 @@ confirm_os_window_close 0
# BEGIN_KITTY_THEME
# Nord
include current-theme.conf
# END_KITTY_THEME

View File

@@ -0,0 +1,33 @@
## name: Gruvbox Light
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-light.conf
selection_foreground #3c3836
selection_background #d65d0e
background #fbf1c7
foreground #3c3836
color0 #ebdbb2
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #7c6f64
color8 #928374
color9 #9d0006
color10 #79740e
color11 #b57614
color12 #076678
color13 #8f3f71
color14 #427b58
color15 #282828
cursor #665c54
cursor_text_color #bdae93
url_color #458588

View File

@@ -0,0 +1,50 @@
# vim:ft=kitty
## name: Nord
## author: Connor Holyday
## license: MIT
## upstream: https://raw.githubusercontent.com/connorholyday/nord-kitty/master/nord.conf
## blurb: An arctic, north-bluish clean and elegant Kitty theme.
# Nord Colorscheme for Kitty
# Based on:
# - https://gist.github.com/marcusramberg/64010234c95a93d953e8c79fdaf94192
# - https://github.com/arcticicestudio/nord-hyper
foreground #D8DEE9
background #2E3440
selection_foreground #000000
selection_background #FFFACD
url_color #0087BD
cursor #81A1C1
# black
color0 #3B4252
color8 #4C566A
# red
color1 #BF616A
color9 #BF616A
# green
color2 #A3BE8C
color10 #A3BE8C
# yellow
color3 #EBCB8B
color11 #EBCB8B
# blue
color4 #81A1C1
color12 #81A1C1
# magenta
color5 #B48EAD
color13 #B48EAD
# cyan
color6 #88C0D0
color14 #8FBCBB
# white
color7 #E5E9F0
color15 #ECEFF4

View File

@@ -4,7 +4,7 @@ Host imap.gmail.com
User akasroua@gmail.com
AuthMechs LOGIN
PassCmd "pass mail/gmail"
TLSType IMAPS
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore gmail-remote
@@ -61,12 +61,82 @@ Channel sync-gmail-trash
Channel sync-gmail-junk
Channel sync-gmail-archive
IMAPAccount ugent
Host outlook.office365.com
User amin.kasrouaouam@ugent.be
AuthMechs XOAUTH2
PassCmd "nix-shell -p python3 --command 'python /home/coolneng/.local/share/scripts/mutt_oauth2.py /home/coolneng/.cache/tokenfile'"
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore ugent-remote
Account ugent
MaildirStore ugent-local
Subfolders Verbatim
# The trailing "/" is important
Path ~/.mail/ugent/
Inbox ~/.mail/ugent/inbox/
Channel ugent-default
Far :ugent-remote:
Near :ugent-local:
Create Both
Expunge Both
SyncState *
Channel ugent-sent
Far :ugent-remote:"Sent Items"
Near :ugent-local:sent
Create Both
Expunge Both
SyncState *
Channel ugent-trash
Far :ugent-remote:"Deleted Items"
Near :ugent-local:trash
Create Both
Expunge Both
SyncState *
Channel ugent-archive
Far :ugent-remote:"Archive"
Near :ugent-local:archive
Create Both
Expunge Both
SyncState *
Channel ugent-junk
Far :ugent-remote:"Junk Email"
Near :ugent-local:junk
Create Both
Expunge Both
SyncState *
Channel ugent-mailing-lists
Far :ugent-remote:"Mailing Lists"
Near :ugent-local:mailing-lists
Create Both
Expunge Both
SyncState *
Group ugent
Channel ugent-default
Channel ugent-sent
Channel ugent-trash
Channel ugent-archive
Channel ugent-junk
Channel ugent-mailing-lists
IMAPAccount disroot
Host disroot.org
User akasroua@disroot.org
AuthMechs LOGIN
PassCmd "pass mail/disroot"
TLSType IMAPS
SSLType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore disroot-remote
@@ -152,14 +222,6 @@ Create Both
Expunge Both
SyncState *
Channel sync-disroot-jobs
Far :disroot-remote:"Jobs"
Near :disroot-local:jobs
Create Both
Expunge Both
SyncState *
Group disroot
Channel sync-disroot-default
Channel sync-disroot-sent
@@ -172,4 +234,3 @@ Channel sync-disroot-services
Channel sync-disroot-smart
Channel sync-disroot-travel
Channel sync-disroot-archive
Channel sync-disroot-jobs

View File

@@ -1,72 +1,8 @@
[Default Applications]
application/pdf=org.pwmt.zathura.desktop
text/html=firefox.desktop
x-scheme-handler/http=firefox.desktop
x-scheme-handler/https=firefox.desktop
x-scheme-handler/about=firefox.desktop
x-scheme-handler/unknown=firefox.desktop
x-scheme-handler/msteams=teams-for-linux.desktop
application/vnd.ms-asf=mpv.desktop
application/vnd.rn-realmedia=mpv.desktop
application/smil+xml=mpv.desktop
application/x-matroska=mpv.desktop
application/mxf=mpv.desktop
application/ogg=mpv.desktop
application/x-shorten=mpv.desktop
application/x-mobipocket-ebook=calibre-gui.desktop
application/x-sony-bbeb=calibre-gui.desktop
application/pdf=org.pwmt.zathura.desktop
application/vnd.oasis.opendocument.spreadsheet-flat-xml=calc.desktop
application/vnd.ms-works=calc.desktop
application/vnd.ms-excel=calc.desktop
application/x-quattropro=calc.desktop
application/vnd.dbf=calc.desktop
application/vnd.stardivision.calc=calc.desktop
application/vnd.oasis.opendocument.spreadsheet-template=calc.desktop
application/vnd.oasis.opendocument.chart=calc.desktop
application/vnd.oasis.opendocument.chart-template=calc.desktop
application/vnd.sun.xml.calc.template=calc.desktop
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet=calc.desktop
application/x-gnumeric=calc.desktop
application/vnd.apple.numbers=calc.desktop
application/vnd.lotus-1-2-3=calc.desktop
application/vnd.oasis.opendocument.spreadsheet=calc.desktop
application/vnd.sun.xml.calc=calc.desktop
application/vnd.openxmlformats-officedocument.spreadsheetml.template=calc.desktop
application/vnd.stardivision.chart=calc.desktop
image/jpeg=swayimg.desktop
image/tiff=swayimg.desktop
image/x-tga=swayimg.desktop
image/png=swayimg.desktop
image/x-exr=swayimg.desktop
image/gif=swayimg.desktop
image/x-portable-anymap=swayimg.desktop
image/webp=swayimg.desktop
image/heif=swayimg.desktop
image/avif=swayimg.desktop
image/bmp=swayimg.desktop
image/svg+xml=swayimg.desktop
text/x-tex=emacsclient.desktop
text/x-c++src=emacsclient.desktop
text/x-java=emacsclient.desktop
text/x-chdr=emacsclient.desktop
text/tcl=emacsclient.desktop
text/markdown=emacsclient.desktop
text/x-pascal=emacsclient.desktop
text/x-makefile=emacsclient.desktop
text/x-moc=emacsclient.desktop
text/plain=emacsclient.desktop
text/x-csrc=emacsclient.desktop
text/x-c++hdr=emacsclient.desktop
text/html=firefox.desktop
application/bitwig-device=com.bitwig.BitwigStudio.desktop
application/bitwig-remote-controls=com.bitwig.BitwigStudio.desktop
application/bitwig-package=com.bitwig.BitwigStudio.desktop
application/bitwig-preset=com.bitwig.BitwigStudio.desktop
application/bitwig-module=com.bitwig.BitwigStudio.desktop
application/bitwig-scene=com.bitwig.BitwigStudio.desktop
application/vnd.bitwig.dawproject=com.bitwig.BitwigStudio.desktop
application/bitwig-project=com.bitwig.BitwigStudio.desktop
application/bitwig-template=com.bitwig.BitwigStudio.desktop
application/bitwig-modulator=com.bitwig.BitwigStudio.desktop
application/bitwig-extension=com.bitwig.BitwigStudio.desktop
application/bitwig-clip=com.bitwig.BitwigStudio.desktop

View File

@@ -6,13 +6,13 @@ sub-auto=all
sub-file-paths=Subs:subs
## HW Decoding
hwdec=vaapi
vo=gpu
vo=dmabuf-wayland
profile=gpu-hq
## Volume settings
volume-max=200
af=acompressor
## Youtube-dl settings
ytdl-format=bestvideo[height<=1080][vcodec!=av1]+bestaudio/best
ytdl-format=bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best
## Wayland
gpu-context=wayland
## Default window size
@@ -21,5 +21,3 @@ geometry=70%x70%
script-opts-append=sponsorblock-local_database=no
## Use pipewire for audio
ao=pipewire
## Save position of the video
save-position-on-quit

View File

@@ -13,6 +13,13 @@ from akasroua@gmail.com
user akasroua@gmail.com
passwordeval "pass mail/gmail"
account ugent
auth xoauth2
host smtp.office365.com
from amin.kasrouaouam@ugent.be
user amin.kasrouaouam@ugent.be
passwordeval "nix-shell -p python3 --command 'python /home/coolneng/.local/share/scripts/mutt_oauth2.py /home/coolneng/.cache/tokenfile'"
account disroot
host disroot.org
from akasroua@disroot.org

View File

@@ -32,13 +32,11 @@ let g:UltiSnipsJumpBackwardTrigger = '<s-tab>'
""Vim-plug
call plug#begin('~/.config/nvim/plugged')
Plug 'Raimondi/delimitMate'
Plug 'nordtheme/vim'
Plug 'rose-pine/neovim'
Plug 'arcticicestudio/nord-vim'
Plug 'morhetz/gruvbox'
Plug 'LnL7/vim-nix'
call plug#end()
""Colors
set termguicolors
colorscheme nord
set background=light
""Disabe status line
set laststatus=0

View File

@@ -0,0 +1,4 @@
{
allowUnfree = true;
android_sdk.accept_license = true;
}

View File

@@ -3,11 +3,6 @@ target=api/gitea
username_extractor=specific_line
line_username=1
skip_username=7
[git.psydnd.org*]
target=api/gitea
username_extractor=specific_line
line_username=1
skip_username=7
[github.com*]
target=api/github
username_extractor=specific_line

View File

@@ -1,2 +0,0 @@
[virtualenvs]
in-project = true

View File

@@ -1,22 +0,0 @@
#!/usr/bin/env bash
tmp_dir="/tmp/cliphist"
rm -rf "$tmp_dir"
if [[ -n "$1" ]]; then
cliphist decode <<<"$1" | wl-copy
exit
fi
mkdir -p "$tmp_dir"
read -r -d '' prog <<EOF
/^[0-9]+\s<meta http-equiv=/ { next }
match(\$0, /^([0-9]+)\s(\[\[\s)?binary.*(jpg|jpeg|png|bmp)/, grp) {
system("echo " grp[1] "\\\\\t | cliphist decode >$tmp_dir/"grp[1]"."grp[3])
print \$0"\0icon\x1f$tmp_dir/"grp[1]"."grp[3]
next
}
1
EOF
cliphist list | gawk "$prog"

View File

@@ -1,7 +1,6 @@
#!/bin/sh
search_directory=~/Documents
downloads=~/Downloads
xdg-open "$(rg --no-messages --no-ignore --files $search_directory $downloads -g "*.{pdf,docx,doc,xlsx,xls,pptx,ppt}" |
xdg-open "$(rg --no-messages --no-ignore --files $search_directory -g "{*.pdf}" -g "{*.doc[x]}" -g "{*.xls[x]}" -g "{*.ppt[x]}" |
rofi -threads 0 -dmenu -sort -sorting-method fzf -i -p "find")"

View File

@@ -0,0 +1,87 @@
#!/bin/sh
# Git filter to ignore lines in your files.
#
# Copyright (c) 2017-2019 Aryel Mota Góis <aryel.gois@gmail.com>
#
# MIT License
#
#
# SETUP:
#
# cp git-ignore-line.sh ~/bin/git-ignore-line
#
#
# USAGE:
#
# Mark single lines you want to ignore with 'GITIGNORE'. It ignores
# the whole line. It is recommended to be inside a comment in your code.
#
# Mark multiple lines surrounding them with 'GITIGNORE START' and
# 'GITIGNORE END'. It can not be nested.
#
# NOTE: Ignored lines might be lost on checkout.
#
#
# Add files to ignore:
#
# git ignore-line <pattern>
#
# Remove patterns with:
#
# git ignore-line -r <pattern>
#
# List configured patterns:
#
# git ignore-line -l
#
# PATTERN can be a file or a glob pattern: '*.html'. Remember to
# escape the `*`.
#
#
# TODO:
#
# - Stash the lines ignored by this filter before a git checkout.
set -eu
# Check if stdin is not tty and remove ignored lines from it.
[ -t 0 ] || exec sed \
'/GITIGNORE START/,/GITIGNORE END/d; /GITIGNORE/d' \
/dev/stdin
# Running from tty.
program=$(basename "$0")
# Find git repository.
git_dir=$(git rev-parse --git-dir)
# Path to attributes file.
attr_file=$git_dir/info/attributes
# Check arguments.
if [ $# -eq 2 ] && [ "$1" = '-r' ]; then
# Remove filter for pattern.
sed "s|^$2 filter=$program||" "$attr_file" > "$attr_file.tmp"
mv -- "$attr_file.tmp" "$attr_file"
elif [ $# -eq 1 ]; then
if [ "$1" = '-l' ]; then
# List patterns.
grep "filter=$program" "$attr_file" || true
else
# Add filter for pattern.
echo "$1 filter=$program" >> "$attr_file"
# Configure filter.
git config --global "filter.$program.clean" "$program"
git config --global "filter.$program.smudge" cat
fi
else
# Show help.
>&2 echo "Usage: $program [-r] <pattern>"
>&2 echo " or: $program -l"
exit 1
fi

View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
DOCKER_IMAGE=magnetikonline/acestream-server:3.1.49_debian_8.11
PORT=6878
select_channel() {
channel_list=(
"Gol TV"
"Gol 2 TV"
"beIN Sports 1 France"
"BBC One"
)
channel=$(printf '%s\n' "${channel_list[@]}" | rofi -no-auto-select -i "$@" -dmenu -p "Choose a channel")
channel_selection "$channel"
}
streaming_server() {
if [ "$1" = "start" ]; then
docker run --publish "$PORT:$PORT" --rm --tmpfs "/dev/disk/by-id:noexec,rw,size=4k" \
--tmpfs "/root/ACEStream:noexec,rw,size=4096m" \
$DOCKER_IMAGE >/dev/null 2>&1
echo "Server started"
else
docker stop $DOCKER_IMAGE >/dev/null 2>&1
echo "Server stopped"
fi
}
stream_channel() {
nix-shell -p vlc --run "$HOME/.local/share/scripts/playstream.py --ace-stream-pid $1 --player '$(whereis vlc | cut -d ':' -f 2)'"
}
channel_selection() {
case "$1" in
"Gol ") stream_channel "dfffbcdd9c7e32d5dc88d268dee830ff2a0d3ab6" ;;
"Gol 2") stream_channel "2aab272d05089ce881538a1b3288d391de152d53" ;;
"beIN Sports 1 France") stream channel "bba1905fcd1c4975aec544047bf8e4cd23ce3fe0" ;;
"BBC One") stream channel "243eaccd38b9a0c43b800b6c7a30b1ad2cadc1f1" ;;
esac
}
streaming_server "start"
select_channel "$@"
streaming_server "stop"

View File

@@ -1,12 +1,11 @@
#!/bin/sh
ACCOUNT="$1"
if [ $# -lt 1 ]; then
ACCOUNT="-a"
echo "Usage: mail-sync <account name>"
exit 1
fi
mbsync "$ACCOUNT"
mbsync "$1"
if pgrep -f 'mu server'; then
emacsclient -e '(mu4e-update-index)'
else

View File

@@ -0,0 +1,5 @@
#!/bin/sh
niv init
niv update nixpkgs -b nixpkgs-unstable
sed "s/pkgs ? import <nixpkgs>/sources ? import .\/nix\/sources.nix, pkgs ? import sources.nixpkgs/" -i shell.nix

View File

@@ -5,8 +5,7 @@ player=mpv
data_file=$HOME/Documents/Misc/peerflix-db.csv
parse_csv() {
show_name=$(echo "$1" | cut -d "=" -f 3 | awk -F "S[0-9]|[S|s]eason|[C|c]omplete|([0-9]+)" '{print $1}' |
tr -d "[:digit:]" | tr "[:punct:]" " " | sed -e 's/[[:space:]]*$//')
show_name=$(echo "$1" | cut -d "=" -f 3 | awk -F "S[0-9]|[S|s]eason|[C|c]omplete" '{print $1}' | tr -d "[:digit:]%" | tr +. " " | sed -e 's/[[:space:]]*$//')
episode=$(awk -F ',' -v var="$show_name" '$1 ~ var {print $2}' "$data_file")
line_number=$(awk -F ',' -v var="$show_name" '$1 ~ var {print NR}' "$data_file")
}
@@ -16,15 +15,6 @@ increment_episode() {
sed -e "$line_number s/$episode/$next_episode/" -i "$data_file"
}
usage() {
echo "Usage: peerflix <magnet link>"
exit 1
}
if [ $# -ne 1 ]; then
usage
fi
parse_csv "$1"
if [ -z "$episode" ]; then
webtorrent download "$1" -s -o "$directory" --"$player"

View File

@@ -0,0 +1,187 @@
#!/usr/bin/env python3
import argparse
import hashlib
import json
import re
import signal
import subprocess
import sys
import time
import urllib.request
DEFAULT_SERVER_HOSTNAME = "127.0.0.1"
DEFAULT_SERVER_PORT = 6878
SERVER_POLL_TIME = 2
SERVER_STATUS_STREAM_ACTIVE = "dl"
def exit_error(message):
print(f"Error: {message}", file=sys.stderr)
sys.exit(1)
class WatchSigint:
_sent = None
def __init__(self):
if WatchSigint._sent is None:
# install handler
WatchSigint._sent = False
signal.signal(signal.SIGINT, self._handler)
def _handler(self, signal, frame):
# Ctrl-C (SIGINT) sent to process
WatchSigint._sent = True
def sent(self):
return WatchSigint._sent
def read_arguments():
# create parser
parser = argparse.ArgumentParser(
description="Instructs server to commence a given program ID. "
"Will optionally execute a local media player once playback has started."
)
parser.add_argument(
"--ace-stream-pid", help="program ID to stream", metavar="HASH", required=True
)
parser.add_argument("--player", help="media player to execute once stream active")
parser.add_argument(
"--progress",
action="store_true",
help=f"continue to output stream statistics (connected peers/transfer rates) every {SERVER_POLL_TIME} seconds",
)
parser.add_argument(
"--server",
default=DEFAULT_SERVER_HOSTNAME,
help="server hostname, defaults to %(default)s",
metavar="HOSTNAME",
)
parser.add_argument(
"--port",
default=DEFAULT_SERVER_PORT,
help="server HTTP API port, defaults to %(default)s",
)
arg_list = parser.parse_args()
if not re.search(r"^[a-f0-9]{40}$", arg_list.ace_stream_pid):
exit_error(f"invalid stream program ID of [{arg_list.ace_stream_pid}] given")
# return arguments
return (
arg_list.ace_stream_pid,
arg_list.player,
arg_list.progress,
arg_list.server,
arg_list.port,
)
def api_request(url):
response = urllib.request.urlopen(url)
return json.load(response).get("response", {})
def start_stream(server_hostname, server_port, stream_pid):
# build stream UID from PID
stream_uid = hashlib.sha1(stream_pid.encode()).hexdigest()
# call API to commence stream
response = api_request(
f"http://{server_hostname}:{server_port}/ace/getstream?format=json&sid={stream_uid}&id={stream_pid}"
)
# return statistics API endpoint and HTTP video stream URLs
return (response["stat_url"], response["playback_url"])
def stream_stats_message(response):
return (
f'Peers: {response.get("peers", 0)} // '
f'Down: {response.get("speed_down", 0)}KB // '
f'Up: {response.get("speed_up", 0)}KB'
)
def await_playback(watch_sigint, statistics_url):
while True:
response = api_request(statistics_url)
if response.get("status") == SERVER_STATUS_STREAM_ACTIVE:
# stream is ready
print("Ready!\n")
return True
if watch_sigint.sent():
# user sent SIGINT, exit now
print("\nExit!")
return False
# pause and check again
print(f"Waiting... [{stream_stats_message(response)}]")
time.sleep(SERVER_POLL_TIME)
def execute_media_player(media_player_bin, playback_url):
subprocess.Popen(
media_player_bin.split() + [playback_url],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
)
def stream_progress(watch_sigint, statistics_url):
print()
while True:
print(f"Streaming... [{stream_stats_message(api_request(statistics_url))}]")
if watch_sigint.sent():
# user sent SIGINT, exit now
print("\nExit!")
return
time.sleep(SERVER_POLL_TIME)
def main():
# read CLI arguments
(
stream_pid,
media_player_bin,
progress_follow,
server_hostname,
server_port,
) = read_arguments()
# create Ctrl-C watcher
watch_sigint = WatchSigint()
print(f"Connecting to program ID [{stream_pid}]")
statistics_url, playback_url = start_stream(
server_hostname, server_port, stream_pid
)
print("Awaiting successful connection to stream")
if not await_playback(watch_sigint, statistics_url):
# exit early
return
print(f"Playback available at [{playback_url}]")
if media_player_bin is not None:
print("Starting media player...")
execute_media_player(media_player_bin, playback_url)
if progress_follow:
stream_progress(watch_sigint, statistics_url)
if __name__ == "__main__":
main()

View File

@@ -1,6 +0,0 @@
#!/bin/sh
# Convert ZFS legacy mountpoints to ZFS mounts
zfs list -Ho name | while read -r dataset; do
zfs set mountpoint="/$dataset" "$dataset"
done

View File

@@ -1,5 +1,6 @@
#!/bin/sh
if [ $# -lt 2 ]; then
echo "Usage: subject <subject name> <subject type>"
echo "subject type 0: programming"
@@ -10,11 +11,10 @@ fi
name=$1
type=$2
formatted_name=$(echo "$name" | tr -s ' ' '_')
mkdir -p "$formatted_name"/Labs
mkdir -p "$formatted_name"/Exercises
touch "$formatted_name"/.project
mkdir -p "$name"/Labs
mkdir -p "$name"/Exercises
touch "$name"/.project
if [ "$type" -eq 0 ]; then
mkdir -p "$formatted_name"/Code
mkdir -p "$name"/Code
fi

View File

@@ -1,23 +1,18 @@
#!/bin/sh
LIGHT_THEME="rose-pine"
LIGHT_THEME="gruvbox"
DARK_THEME="nord"
KITTY_LIGHT_THEME="Rosé Pine Dawn"
NVIM_COLORSCHEME_LINE=41
capitalize() {
printf '%s' "$1" | head -c 1 | tr "[:lower:]" "[:upper:]"
printf '%s' "$1" | tail -c '+2' | tr "-" " " | tr "e" "é"
printf '%s' "$1" | tail -c '+2'
}
change_theme() {
sed -e "$NVIM_COLORSCHEME_LINE s/$1/$2/" -i ~/.config/nvim/init.vim
sed -i "s/$1/$2/" ~/.config/kitty/kitty.conf
sed -i "s/$1/$2/" ~/.config/nvim/init.vim
sed -i "s/$1/$2/" ~/.config/zathura/zathurarc
if [ "$2" = "$LIGHT_THEME" ]; then
kitty +kitten themes --reload-in=all "$KITTY_LIGHT_THEME"
else
kitty +kitten themes --reload-in=all "$(capitalize "$2")"
fi
kitty +kitten themes --reload-in=all "$(capitalize "$2")"
nvr --remote-send ":source ~/.config/nvim/init.vim <CR>"
}
@@ -40,7 +35,7 @@ fi
mode=$1
if [ "$mode" = "light" ]; then
emacsclient --eval "(load-theme 'os1 'no-confirm)"
emacsclient --eval "(load-theme 'doom-solarized-light 'no-confirm)"
change_theme "$DARK_THEME" "$LIGHT_THEME"
recolor_zathura
else

View File

@@ -1,6 +1,6 @@
host zion
user coolneng
hostname 192.168.128.2
hostname 192.168.13.2
port 22
identityfile ~/.ssh/zion
@@ -20,8 +20,8 @@ host kobo
port 22
identityfile ~/.ssh/kobo
host kathreftis
user root
hostname 192.168.13.131
port 22
identityfile ~/.ssh/kathreftis
host kermit-gpu
user aminka
hostname bw26gpu1.ugent.be
port 4480
identityfile ~/.ssh/kermit-gpu

BIN
ssh/.ssh/kermit-gpu Normal file

Binary file not shown.

BIN
ssh/.ssh/kermit-gpu.pub Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -134,12 +134,12 @@ bindsym $mod+L focus right
set $workspace1 "1: "
set $workspace2 "2: "
set $workspace3 "3: "
set $workspace4 "4: 󱓷"
set $workspace4 "4: "
set $workspace5 "5: "
set $workspace6 "6: "
set $workspace7 "7: "
set $workspace8 "8: "
set $workspace9 "9: 󰕧"
set $workspace9 "9: "
set $workspace10 "10: "
# Switch to workspace
bindsym $mod+1 workspace $workspace1
@@ -274,22 +274,21 @@ bindsym XF86AudioMicMute exec ~/.local/share/scripts/pulseaudio-mic-mute
bindsym XF86MonBrightnessUp exec light -A 10
bindsym XF86MonBrightnessDown exec light -U 10
# Media control
bindsym XF86Messenger exec mpc toggle
bindsym XF86Tools exec mpc toggle
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86Go exec mpc stop
bindsym Cancel exec mpc prev
bindsym XF86Favorites exec mpc next
bindsym XF86Search exec mpc stop
bindsym XF86LaunchA exec mpc prev
bindsym XF86Explorer exec mpc next
#
# Program keybindings
#
# clipman
bindsym $mod+c exec rofi -modi clipboard:~/.local/share/scripts/cliphist-rofi-img -show clipboard -show-icons
bindsym $mod+c exec clipman pick -t rofi --max-items=50
# grim
bindsym Print exec grim
# slurp + grim to clipboard
bindsym Shift+Print exec slurp | grim -g - - | wl-copy
#bindsym Shift+Super_L exec slurp | grim -g - - | wl-copy
# find PDFs with rofi
bindsym $mod+f exec ~/.local/share/scripts/finder
# recurrent action launcher
@@ -319,15 +318,11 @@ set $lock_bg ~/Photos/Wallpapers/wallhaven-638719.png
exec swayidle -w \
before-sleep 'swaylock -f -c 000000 -i $lock_bg'
# apply color profile to laptop screen
output eDP-1 color_profile icc ~/.config/colord/E14-G3.icm
#
# Autostart programs
#
# clipman
exec wl-paste -t text --watch cliphist store
exec wl-paste -t image --watch cliphist store
exec wl-paste -t text --watch clipman store --max-items=50
# kanshi
exec kanshi
# easyeffects
@@ -339,7 +334,7 @@ exec kitty --class tmux -- tmuxp load ~/.tmuxp/local.yaml
assign [app_id="firefox"] $workspace2
exec firefox
# emacs
assign [app_id="emacs"] $workspace3
assign [class=".*[Ee]macs.*"] $workspace3
# HACK Run a doom sync before launching emacs
exec ~/.emacs.d/bin/doom sync && exec emacs
@@ -359,9 +354,7 @@ assign [app_id="mpv"] $workspace9
# calibre
assign [app_id="calibre"] $workspace10
# chromium
assign [app_id="chromium-browser"] $workspace10
# teams
assign [class="teams-for-linux"] $workspace6
assign [class="Chromium-browser"] $workspace10

View File

@@ -8,6 +8,7 @@ set -g bell-action any
## Set default terminal
set -g default-terminal "screen-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
# i3 split bindings

View File

@@ -6,15 +6,15 @@ windows:
focus: true
layout: even-vertical
panes:
- ssh root@zion
- ssh root@zion
- ssh -C root@zion
- ssh -C root@zion
- window_name: canvas
layout: even-vertical
panes:
- ssh zion
- ssh zion
- ssh -C zion
- ssh -C zion
- window_name: monitor
panes:
- ssh -t zion "htop"
- ssh -C -t zion "htop"

View File

@@ -3,7 +3,7 @@
"height": 25,
"modules-left": ["sway/workspaces" ],
"modules-center": ["custom/org-pomodoro", "clock"],
"modules-right": ["mpd", "network", "pulseaudio", "battery" ],
"modules-right": ["mpd", "network", "pulseaudio", "battery", "battery#bat2"],
"mpd": {
"format": "<span foreground='#88C0D0'>{stateIcon}</span> {title}",
"format-disconnected": "",
@@ -14,8 +14,8 @@
"on": " "
},
"state-icons": {
"paused": "󰝚",
"playing": "󰝚"
"paused": "",
"playing": ""
},
"tooltip-format": "{elapsedTime:%H:%M:%S}/{totalTime:%H:%M:%S}",
"tooltip-format-disconnected": "MPD (disconnected)",
@@ -35,11 +35,25 @@
"critical": 10
},
"format": "<span foreground='#88C0D0'>{icon}</span> {capacity}%",
"format-charging": "<span foreground='#88C0D0'>󰂄</span> {capacity}%",
"format-plugged": "<span foreground='#88C0D0'>󰂄</span> {capacity}%",
"format-charging": "<span foreground='#88C0D0'></span> {capacity}%",
"format-plugged": "<span foreground='#88C0D0'></span> {capacity}%",
"format-alt": "{time} {icon}",
"format-full": "<span foreground='#88C0D0'>󰁹</span> 100%",
"format-icons": ["󰁼", "󰁿", "󰂁"]
"format-full": "<span foreground='#88C0D0'></span> 100%",
"format-icons": ["", "", ""]
},
"battery#bat2": {
"bat": "BAT1",
"states": {
"good": 95,
"warning": 30,
"critical": 10
},
"format": "<span foreground='#88C0D0'>{icon}</span> {capacity}%",
"format-charging": "<span foreground='#88C0D0'></span> {capacity}%",
"format-plugged": "<span foreground='#88C0D0'></span> {capacity}%",
"format-alt": "{time} {icon}",
"format-full": "<span foreground='#88C0D0'></span> 100%",
"format-icons": ["", "", ""]
},
"network": {
"format-wifi": "<span foreground='#88C0D0'>{icon}</span> {essid}",
@@ -47,17 +61,22 @@
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "<span foreground='#88C0D0'>睊</span> Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}",
"format-icons": ["󰤟", "󰤢", "󰤥"],
"format-icons": ["", "", ""],
"tooltip-format": "Online",
"tooltip-format-disconnected": "Offline"
},
"pulseaudio": {
"format": "<span foreground='#88C0D0'>{icon}</span> {volume}%",
"format-muted": "<span foreground='#88C0D0'>󰖁</span>",
"format-muted": "<span foreground='#88C0D0'></span>",
"format-icons": {
"default": ["", "󰕾", ""]
"default": ["", "", ""]
},
"on-click": "",
"ignored-sinks": ["Easy Effects Sink"]
},
"custom/org-pomodoro": {
"format": "<span foreground='#88C0D0'>祥</span> {}",
"exec": "$HOME/.local/share/scripts/org-clock-status",
"interval": 2
}
}

View File

@@ -1,4 +0,0 @@
# Limit resolution to 1080p and exclude AV1
-f bestvideo[height<=1080][vcodec!=av1]+bestaudio/best
# Use HEVC codec to save space
-S vcodec:h265

View File

@@ -0,0 +1,40 @@
set notification-error-bg "#fbf1c7" # bg
set notification-error-fg "#9d0006" # bright:red
set notification-warning-bg "#fbf1c7" # bg
set notification-warning-fg "#b57614" # bright:yellow
set notification-bg "#fbf1c7" # bg
set notification-fg "#79740e" # bright:green
set completion-bg "#d5c4a1" # bg2
set completion-fg "#3c3836" # fg
set completion-group-bg "#ebdbb2" # bg1
set completion-group-fg "#928374" # gray
set completion-highlight-bg "#076678" # bright:blue
set completion-highlight-fg "#d5c4a1" # bg2
# Define the color in index mode
set index-bg "#d5c4a1" # bg2
set index-fg "#3c3836" # fg
set index-active-bg "#076678" # bright:blue
set index-active-fg "#d5c4a1" # bg2
set inputbar-bg "#fbf1c7" # bg
set inputbar-fg "#3c3836" # fg
set statusbar-bg "#d5c4a1" # bg2
set statusbar-fg "#3c3836" # fg
set highlight-color "#b57614" # bright:yellow
set highlight-active-color "#af3a03" # bright:orange
set default-bg "#fbf1c7" # bg
set default-fg "#3c3836" # fg
set render-loading true
set render-loading-bg "#fbf1c7" # bg
set render-loading-fg "#3c3836" # fg
# Recolor book content's color
set recolor-lightcolor "#fbf1c7" # bg
set recolor-darkcolor "#3c3836" # fg
set recolor "true"
# set recolor-keephue true # keep original color

View File

@@ -1,38 +0,0 @@
# https://github.com/rose-pine/rose-pine-theme
# Soho vibes for Zathura: Rosé Pine Dawn
#
# Usage:
# Copy contents of this file to ~/.config/zathura/zathurarc
#
# Change 'recolor' and 'recolor-keephue' to true to change
# the document colors for a more uniform viewing experience.
set default-bg "#faf4ed"
set default-fg "#575279"
set statusbar-fg "#9893a5"
set statusbar-bg "#fffaf3"
set inputbar-bg "#6e6a86"
set inputbar-fg "#faf4ed"
set notification-bg "#6e6a86"
set notification-fg "#faf4ed"
set notification-error-bg "#6e6a86"
set notification-error-fg "#ea9d34"
set notification-warning-bg "#6e6a86"
set notification-warning-fg "#ea9d34"
set highlight-color "#b4637a"
set highlight-active-color "#d7827e"
set completion-bg "#6e6a86"
set completion-fg "#d7827e"
set completion-highlight-fg "#575279"
set completion-highlight-bg "#d7827e"
set recolor-lightcolor "#faf4ed"
set recolor-darkcolor "#575279"

View File

@@ -1,5 +1,5 @@
# Zathura configuration
set adjust-open "best-fit"
set adjust-open "width"
set selection-clipboard clipboard
set recolor-keephue true
set window-title-basename true
@@ -7,5 +7,3 @@ set completion-bg "#161821"
set highlight-color "#a093c7"
set highlight-active-color "#a093c7"
set font "Terminus \(TTF\) 15"
include nord.conf