Compare commits

...

45 Commits

Author SHA1 Message Date
288be4bd96 Set external monitor to fixed position 2025-11-07 02:04:18 +01:00
afec522f39 Update fish variables 2025-11-07 01:16:22 +01:00
4d8ad1d6d3 Set default applications via MIME 2025-10-30 11:12:22 +01:00
fe51ba9a90 Disable recoloring by default in Zathura 2025-10-30 11:11:28 +01:00
291dcd3955 Add tmpdir alias 2025-10-30 11:11:14 +01:00
94c6278db4 Parse through Downloads folder with finder script 2025-10-29 17:11:45 +01:00
2b7b2a5e58 Remove unused scripts 2025-10-09 16:54:58 +02:00
412212719c Restore autotagging functionality of beets 2025-10-09 16:54:33 +02:00
3bc57b4593 Use clipboard manager with image support 2025-10-04 19:24:15 +02:00
572854dbd0 Disable org pomodoro functionality in Waybar 2025-08-29 01:46:51 +02:00
5d9699df24 Fix automatic assignment of Chromium to workspace 2025-08-29 01:41:00 +02:00
336bb2a2b8 Update known hosts 2025-08-29 01:40:37 +02:00
50f09af5e9 Add keybinding for screenshots 2025-08-29 01:39:25 +02:00
3e6baf384c Initialize Flake dev projects only with one file 2025-08-29 01:38:09 +02:00
4d5c984575 Update global gitignore 2025-08-29 01:37:32 +02:00
a83bbd299d Add yt-dlp configuration 2025-08-27 11:08:33 +02:00
1787b7da6a Adapt goimapnotify configuration to YAML 2025-05-18 17:45:52 +02:00
5c326f2e01 Add git credential mapping for new domain 2025-04-10 13:20:34 +02:00
7eb67000e4 Add new mail folder to mail configuration 2025-04-10 13:20:09 +02:00
d582f89568 Remove catt config 2025-04-10 13:19:57 +02:00
c70388ba07 Update global gitignore 2025-04-10 13:19:48 +02:00
5d80befa63 Apply color profile for laptop screen 2025-04-01 00:58:44 +02:00
fd17f874d7 Add script to convert ZFS legacy mountpoint 2025-04-01 00:49:03 +02:00
9b73bc787b Remove UGent email account configuration 2025-04-01 00:38:23 +02:00
1dd5e8f092 Update SSH hosts 2025-04-01 00:37:35 +02:00
e136885293 Set quality settings for yt-dlp 2025-04-01 00:36:03 +02:00
c7f1c7ac6b Remove kathreftis from SSH hosts 2024-11-19 13:59:22 +01:00
c2d829b34d Change IP of kathreftis 2024-09-15 23:24:07 +02:00
877bdb115f Add TinHifi C0 convolver 2024-09-15 23:23:22 +02:00
a6d65a3f7c Remove CGM value script from Waybar 2024-07-30 20:53:20 +02:00
97a5faf876 Add kathreftis to SSH hosts 2024-05-28 13:19:57 +02:00
9d44d0d25f Add Koss KPH40 convolver 2024-05-28 13:19:00 +02:00
ce95f5c5c0 Revert "Improve performance of yt-dlp with user agent"
This reverts commit 34990f45c5.
2024-03-15 00:08:04 +01:00
6cef994d2c Ignore ccls files in git 2024-03-05 23:51:26 +01:00
5e924530ba Add KZ ZVX convolver 2024-02-05 23:39:02 +01:00
34990f45c5 Improve performance of yt-dlp with user agent 2024-02-05 23:38:24 +01:00
26a36504d0 Parse year in peerflix script 2024-02-05 23:36:58 +01:00
666ba4e5d9 Simplify search pattern for file finder script 2024-01-18 22:14:46 +01:00
1129dcabb0 Remove kermit-gpu from SSH hosts 2024-01-15 14:25:17 +01:00
b3f64d4683 Update kanshi config to new device 2024-01-15 02:54:18 +01:00
6475998fc7 Remove git-ignore-line script 2024-01-08 22:35:29 +01:00
2e6c12c4f9 Adapt config to new device 2024-01-08 03:01:54 +01:00
421401c207 Revert "Use dmabuf backend in mpv"
This reverts commit 60a829f526.
2024-01-08 02:38:44 +01:00
30d8b5404c Adapt Easyeffects presets to new device 2024-01-07 08:10:20 +01:00
8b817c8e54 Use the proper terminal name in tmux 2024-01-05 18:07:39 +01:00
50 changed files with 254 additions and 577 deletions

View File

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

View File

@@ -1,2 +0,0 @@
[options]
device = Kasroucast

Binary file not shown.

View File

@@ -1,6 +0,0 @@
{
"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

@@ -1,6 +0,0 @@
{
"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

@@ -0,0 +1,6 @@
{
"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

@@ -0,0 +1,6 @@
{
"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"
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,16 @@
{
"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

@@ -0,0 +1,16 @@
{
"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

@@ -0,0 +1,16 @@
{
"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

@@ -15,6 +15,7 @@ alias jc "journalctl -eu"
alias jcu "journalctl --user -eu"
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:3400
SETUVAR __fish_initialized:3800
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:bryellow\x1e\x2d\x2dbackground\x3dbrblack
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

View File

@@ -16,9 +16,6 @@
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,8 +4,10 @@ CMakeFiles/
cmake_install.cmake
compile_commands.json
Debug/
.ccls
.ccls-cache
.cache
.clang_complete
*.o
# LaTeX
auto
@@ -32,3 +34,7 @@ __pycache__
.classpath
.project
.settings
# Emacs
.projectile-cache.eld
# Platformio
.pio

View File

@@ -1,14 +0,0 @@
{
"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

@@ -1,14 +0,0 @@
{
"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

@@ -0,0 +1,22 @@
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

@@ -1,15 +0,0 @@
{
"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-DP {
output eDP-1 enable
output DP-1 enable mode 1920x1080
profile multihead-dock {
output eDP-1 enable position 1920,0
output DP-1 enable mode 1920x1080 position 0,0
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
output HDMI-A-2 enable mode 1920x1080
output eDP-1 enable position 0,0
output HDMI-A-1 enable mode 1920x1080 position 1920,0
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 70
exec light -S 50
}

View File

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

View File

@@ -4,7 +4,7 @@ Host imap.gmail.com
User akasroua@gmail.com
AuthMechs LOGIN
PassCmd "pass mail/gmail"
SSLType IMAPS
TLSType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore gmail-remote
@@ -61,82 +61,12 @@ 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"
SSLType IMAPS
TLSType IMAPS
CertificateFile /etc/ssl/certs/ca-certificates.crt
IMAPStore disroot-remote
@@ -222,6 +152,14 @@ 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
@@ -234,3 +172,4 @@ Channel sync-disroot-services
Channel sync-disroot-smart
Channel sync-disroot-travel
Channel sync-disroot-archive
Channel sync-disroot-jobs

View File

@@ -1,8 +1,72 @@
[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=dmabuf-wayland
vo=gpu
profile=gpu-hq
## Volume settings
volume-max=200
af=acompressor
## Youtube-dl settings
ytdl-format=bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best
ytdl-format=bestvideo[height<=1080][vcodec!=av1]+bestaudio/best
## Wayland
gpu-context=wayland
## Default window size

View File

@@ -13,13 +13,6 @@ 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

@@ -38,5 +38,7 @@ Plug 'LnL7/vim-nix'
call plug#end()
""Colors
set termguicolors
colorscheme nord
set background=light
""Disabe status line
set laststatus=0

View File

@@ -3,6 +3,11 @@ 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,38 +0,0 @@
#!/bin/sh
NIGHTSCOUT_URL="https://nightscout.coolneng.duckdns.org"
CONNECTIVITY_URL="freebsd.org"
fetch_value() {
CGM_VALUE=$(curl -s -H "api-secret: $(pass api/nightscout)" -H "accept: application/json" \
"$NIGHTSCOUT_URL/api/v1/entries?count=1")
GLUCOSE=$(echo "$CGM_VALUE" | grep -o '"sgv":[0-9]*' | cut -d ":" -f 2)
DIRECTION=$(
echo "$CGM_VALUE" | grep -o '"direction":"[a-zA-Z]*"' | cut -d ":" -f 2 | tr -d \"
)
}
format_output() {
case "$DIRECTION" in
*"Up"*)
printf "{\"text\": \"%s\",\"alt\": \"up\"}" "$GLUCOSE"
;;
*"Down"*)
printf "{\"text\": \"%s\",\"alt\": \"down\"}" "$GLUCOSE"
;;
"Flat")
printf "{\"text\": \"%s\",\"alt\": \"flat\"}" "$GLUCOSE"
;;
esac
}
check_connectivity() {
if nc -zw1 "$CONNECTIVITY_URL" 443; then
fetch_value
else
echo "{\"text\": \"NA\"}"
fi
}
check_connectivity
format_output

View File

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

View File

@@ -1,87 +0,0 @@
#!/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

@@ -1,48 +0,0 @@
#!/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
echo "Spinning up the server"
docker run --publish "$PORT:$PORT" --name acestream-server --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
echo "Stopping the server"
docker stop acestream-server >/dev/null 2>&1
echo "Server stopped"
fi
}
stream_channel() {
echo "Starting the stream"
nix-shell -p vlc --run "$HOME/.local/share/scripts/playstream.py --ace-stream-pid $1 --player '$(whereis vlc | cut -d ":" -f 2)'"
}
channel_selection() {
echo "Selection time"
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,11 +1,12 @@
#!/bin/sh
ACCOUNT="$1"
if [ $# -lt 1 ]; then
echo "Usage: mail-sync <account name>"
exit 1
ACCOUNT="-a"
fi
mbsync "$1"
mbsync "$ACCOUNT"
if pgrep -f 'mu server'; then
emacsclient -e '(mu4e-update-index)'
else

View File

@@ -1,5 +0,0 @@
#!/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,7 +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" '{print $1}' |
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:]]*$//')
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")

View File

@@ -1,187 +0,0 @@
#!/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

@@ -15,7 +15,6 @@ usage() {
copy_nix_files() {
if [ "$1" = "flake" ]; then
cp ~/Projects/devenv/flake-template.nix flake.nix
cp ~/Projects/devenv/shell.nix .
elif [ "$1" = "nix-ld" ]; then
cp ~/Projects/devenv/nix-ld.nix shell.nix
elif [ "$1" = "datasci" ]; then

View File

@@ -0,0 +1,6 @@
#!/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

@@ -3,7 +3,7 @@
LIGHT_THEME="rose-pine"
DARK_THEME="nord"
KITTY_LIGHT_THEME="Rosé Pine Dawn"
NVIM_COLORSCHEME_LINE=44
NVIM_COLORSCHEME_LINE=41
capitalize() {
printf '%s' "$1" | head -c 1 | tr "[:lower:]" "[:upper:]"

View File

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

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -274,21 +274,22 @@ bindsym XF86AudioMicMute exec ~/.local/share/scripts/pulseaudio-mic-mute
bindsym XF86MonBrightnessUp exec light -A 10
bindsym XF86MonBrightnessDown exec light -U 10
# Media control
bindsym XF86Tools exec mpc toggle
bindsym XF86Messenger exec mpc toggle
bindsym XF86AudioPlay exec mpc toggle
bindsym XF86Search exec mpc stop
bindsym XF86LaunchA exec mpc prev
bindsym XF86Explorer exec mpc next
bindsym XF86Go exec mpc stop
bindsym Cancel exec mpc prev
bindsym XF86Favorites exec mpc next
#
# Program keybindings
#
# clipman
bindsym $mod+c exec clipman pick -t rofi --max-items=50
bindsym $mod+c exec rofi -modi clipboard:~/.local/share/scripts/cliphist-rofi-img -show clipboard -show-icons
# 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
@@ -318,11 +319,15 @@ 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 clipman store --max-items=50
exec wl-paste -t text --watch cliphist store
exec wl-paste -t image --watch cliphist store
# kanshi
exec kanshi
# easyeffects
@@ -354,7 +359,7 @@ assign [app_id="mpv"] $workspace9
# calibre
assign [app_id="calibre"] $workspace10
# chromium
assign [class="Chromium-browser"] $workspace10
assign [app_id="chromium-browser"] $workspace10
# teams
assign [class="teams-for-linux"] $workspace6

View File

@@ -8,7 +8,6 @@ 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

@@ -2,8 +2,8 @@
"layer": "top",
"height": 25,
"modules-left": ["sway/workspaces" ],
"modules-center": ["custom/org-pomodoro", "clock", "custom/cgm-value"],
"modules-right": ["mpd", "network", "pulseaudio", "battery", "battery#bat2"],
"modules-center": ["custom/org-pomodoro", "clock"],
"modules-right": ["mpd", "network", "pulseaudio", "battery" ],
"mpd": {
"format": "<span foreground='#88C0D0'>{stateIcon}</span> {title}",
"format-disconnected": "",
@@ -41,20 +41,6 @@
"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}",
"format-ethernet": "<span foreground='#88C0D0'></span> Connected",
@@ -73,21 +59,5 @@
},
"on-click": "",
"ignored-sinks": ["Easy Effects Sink"]
},
"custom/org-pomodoro": {
"format": "<span foreground='#88C0D0'>󰅐</span> {}",
"exec": "$HOME/.local/share/scripts/org-clock-status",
"interval": 60
},
"custom/cgm-value": {
"format": "<span foreground='#88C0D0'>󱄦</span> {}{icon} ",
"exec": "$HOME/.local/share/scripts/cgm-value",
"interval": 300,
"return-type":"json",
"format-icons": {
"up": "󰁜",
"down": "󰁃",
"flat": "󰁔",
}
}
}

View File

@@ -0,0 +1,4 @@
# 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

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