Compare commits
64 Commits
6b734aabf3
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
288be4bd96
|
|||
|
afec522f39
|
|||
|
4d8ad1d6d3
|
|||
|
fe51ba9a90
|
|||
|
291dcd3955
|
|||
|
94c6278db4
|
|||
|
2b7b2a5e58
|
|||
|
412212719c
|
|||
|
3bc57b4593
|
|||
|
572854dbd0
|
|||
|
5d9699df24
|
|||
|
336bb2a2b8
|
|||
|
50f09af5e9
|
|||
|
3e6baf384c
|
|||
|
4d5c984575
|
|||
|
a83bbd299d
|
|||
|
1787b7da6a
|
|||
|
5c326f2e01
|
|||
|
7eb67000e4
|
|||
|
d582f89568
|
|||
|
c70388ba07
|
|||
|
5d80befa63
|
|||
|
fd17f874d7
|
|||
|
9b73bc787b
|
|||
|
1dd5e8f092
|
|||
|
e136885293
|
|||
|
c7f1c7ac6b
|
|||
|
c2d829b34d
|
|||
|
877bdb115f
|
|||
|
a6d65a3f7c
|
|||
|
97a5faf876
|
|||
|
9d44d0d25f
|
|||
|
ce95f5c5c0
|
|||
|
6cef994d2c
|
|||
|
5e924530ba
|
|||
|
34990f45c5
|
|||
|
26a36504d0
|
|||
|
666ba4e5d9
|
|||
|
1129dcabb0
|
|||
|
b3f64d4683
|
|||
|
6475998fc7
|
|||
|
2e6c12c4f9
|
|||
|
421401c207
|
|||
|
30d8b5404c
|
|||
|
8b817c8e54
|
|||
|
87e2f7f595
|
|||
|
39e1dd3e1f
|
|||
|
f3b83e85df
|
|||
|
4a8e71c6d5
|
|||
|
60a829f526
|
|||
|
43a56b7bfc
|
|||
|
1bb7c44c37
|
|||
|
7541dd8954
|
|||
|
ace73a76be
|
|||
|
cc3e6654df
|
|||
|
672b735752
|
|||
|
10ccea25a3
|
|||
|
474357ed98
|
|||
|
bcec83476c
|
|||
|
87cbce4084
|
|||
|
554b794ad2
|
|||
|
2db9446294
|
|||
|
3bfa8383bb
|
|||
|
88d7f81d1c
|
@@ -8,7 +8,7 @@ import:
|
|||||||
incremental: yes
|
incremental: yes
|
||||||
quiet_fallback: skip
|
quiet_fallback: skip
|
||||||
timid: no
|
timid: no
|
||||||
plugins: fetchart embedart
|
plugins: fetchart embedart musicbrainz
|
||||||
art_filename: folder
|
art_filename: folder
|
||||||
fetchart:
|
fetchart:
|
||||||
cover_format: jpeg
|
cover_format: jpeg
|
||||||
|
|||||||
BIN
colord/.config/colord/E14-G3.icm
Normal file
BIN
colord/.config/colord/E14-G3.icm
Normal file
Binary file not shown.
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
@@ -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"
|
||||||
|
}
|
||||||
BIN
easyeffects/.config/easyeffects/irs/KZ-ZVX.irs
Normal file
BIN
easyeffects/.config/easyeffects/irs/KZ-ZVX.irs
Normal file
Binary file not shown.
BIN
easyeffects/.config/easyeffects/irs/Koss KPH40.irs
Normal file
BIN
easyeffects/.config/easyeffects/irs/Koss KPH40.irs
Normal file
Binary file not shown.
BIN
easyeffects/.config/easyeffects/irs/T14S_G3_Music_Movies.irs
Normal file
BIN
easyeffects/.config/easyeffects/irs/T14S_G3_Music_Movies.irs
Normal file
Binary file not shown.
BIN
easyeffects/.config/easyeffects/irs/Tin HiFi C0.irs
Normal file
BIN
easyeffects/.config/easyeffects/irs/Tin HiFi C0.irs
Normal file
Binary file not shown.
16
easyeffects/.config/easyeffects/output/Koss KPH40.json
Normal file
16
easyeffects/.config/easyeffects/output/Koss KPH40.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
16
easyeffects/.config/easyeffects/output/Laptop speakers.json
Normal file
16
easyeffects/.config/easyeffects/output/Laptop speakers.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
16
easyeffects/.config/easyeffects/output/Tin HiFi C0.json
Normal file
16
easyeffects/.config/easyeffects/output/Tin HiFi C0.json
Normal 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"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,9 +11,11 @@ alias vim "nvim"
|
|||||||
alias docker-compose "podman-compose"
|
alias docker-compose "podman-compose"
|
||||||
alias sc "systemctl"
|
alias sc "systemctl"
|
||||||
alias scu "systemctl --user"
|
alias scu "systemctl --user"
|
||||||
alias jc "journalctl -u"
|
alias jc "journalctl -eu"
|
||||||
alias jcu "journalctl --user -u"
|
alias jcu "journalctl --user -eu"
|
||||||
alias webtorrent "webtorrent -i -o /tmp/webtorrent --mpv --player-args='--sub-auto=all --sub-file-paths=Subs:subs'"
|
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
|
# Additional paths
|
||||||
set PATH $PATH $HOME/.emacs.d/bin
|
set PATH $PATH $HOME/.emacs.d/bin
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
SETUVAR __fish_init_2_39_8:\x1d
|
SETUVAR __fish_init_2_39_8:\x1d
|
||||||
SETUVAR __fish_init_2_3_0:\x1d
|
SETUVAR __fish_init_2_3_0:\x1d
|
||||||
SETUVAR __fish_init_3_x:\x1d
|
SETUVAR __fish_init_3_x:\x1d
|
||||||
SETUVAR __fish_initialized:3400
|
SETUVAR __fish_initialized:3800
|
||||||
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
SETUVAR fish_color_autosuggestion:555\x1ebrblack
|
||||||
SETUVAR fish_color_cancel:\x2dr
|
SETUVAR fish_color_cancel:\x2dr
|
||||||
SETUVAR fish_color_command:white\x1e\x2d\x2dbold
|
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_param:cyan
|
||||||
SETUVAR fish_color_quote:green
|
SETUVAR fish_color_quote:green
|
||||||
SETUVAR fish_color_redirection:red
|
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_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrblack
|
||||||
SETUVAR fish_color_status:red
|
SETUVAR fish_color_status:red
|
||||||
SETUVAR fish_color_user:brgreen
|
SETUVAR fish_color_user:brgreen
|
||||||
|
|||||||
@@ -16,9 +16,6 @@
|
|||||||
user = akasroua
|
user = akasroua
|
||||||
[lfs]
|
[lfs]
|
||||||
activitytimeout = 60
|
activitytimeout = 60
|
||||||
[filter "git-ignore-line.sh"]
|
|
||||||
clean = /home/coolneng/.dotfiles/scripts/.local/share/scripts/git-ignore-line.sh
|
|
||||||
smudge = cat
|
|
||||||
[filter "lfs"]
|
[filter "lfs"]
|
||||||
clean = git-lfs clean -- %f
|
clean = git-lfs clean -- %f
|
||||||
smudge = git-lfs smudge -- %f
|
smudge = git-lfs smudge -- %f
|
||||||
|
|||||||
@@ -4,8 +4,10 @@ CMakeFiles/
|
|||||||
cmake_install.cmake
|
cmake_install.cmake
|
||||||
compile_commands.json
|
compile_commands.json
|
||||||
Debug/
|
Debug/
|
||||||
|
.ccls
|
||||||
.ccls-cache
|
.ccls-cache
|
||||||
.cache
|
.cache
|
||||||
|
.clang_complete
|
||||||
*.o
|
*.o
|
||||||
# LaTeX
|
# LaTeX
|
||||||
auto
|
auto
|
||||||
@@ -32,3 +34,7 @@ __pycache__
|
|||||||
.classpath
|
.classpath
|
||||||
.project
|
.project
|
||||||
.settings
|
.settings
|
||||||
|
# Emacs
|
||||||
|
.projectile-cache.eld
|
||||||
|
# Platformio
|
||||||
|
.pio
|
||||||
|
|||||||
@@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
22
goimapnotify/.config/goimapnotify/goimapnotify.yaml
Normal file
22
goimapnotify/.config/goimapnotify/goimapnotify.yaml
Normal 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
|
||||||
@@ -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"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
profile multihead-DP {
|
profile multihead-dock {
|
||||||
output eDP-1 enable
|
output eDP-1 enable position 1920,0
|
||||||
output DP-1 enable mode 1920x1080
|
output DP-1 enable mode 1920x1080 position 0,0
|
||||||
exec swaymsg workspace "1: ", move workspace to eDP-1
|
exec swaymsg workspace "1: ", move workspace to eDP-1
|
||||||
exec swaymsg workspace "3: ", 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 "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 100
|
||||||
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
|
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
|
||||||
}
|
}
|
||||||
|
|
||||||
profile multihead-HDMI {
|
profile multihead-HDMI {
|
||||||
output eDP-1 enable
|
output eDP-1 enable position 0,0
|
||||||
output HDMI-A-2 enable mode 1920x1080
|
output HDMI-A-1 enable mode 1920x1080 position 1920,0
|
||||||
exec swaymsg workspace "1: ", move workspace to eDP-1
|
exec swaymsg workspace "1: ", move workspace to eDP-1
|
||||||
exec swaymsg workspace "3: ", 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 "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 100
|
||||||
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
|
exec light -s sysfs/leds/tpacpi::kbd_backlight -S 0
|
||||||
}
|
}
|
||||||
|
|
||||||
profile nomad {
|
profile nomad {
|
||||||
output eDP-1 enable
|
output eDP-1 enable
|
||||||
exec light -S 60
|
exec light -S 50
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -997,3 +997,9 @@ confirm_os_window_close 0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# BEGIN_KITTY_THEME
|
||||||
|
# Nord
|
||||||
|
include current-theme.conf
|
||||||
|
# END_KITTY_THEME
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Host imap.gmail.com
|
|||||||
User akasroua@gmail.com
|
User akasroua@gmail.com
|
||||||
AuthMechs LOGIN
|
AuthMechs LOGIN
|
||||||
PassCmd "pass mail/gmail"
|
PassCmd "pass mail/gmail"
|
||||||
SSLType IMAPS
|
TLSType IMAPS
|
||||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
IMAPStore gmail-remote
|
IMAPStore gmail-remote
|
||||||
@@ -61,82 +61,12 @@ Channel sync-gmail-trash
|
|||||||
Channel sync-gmail-junk
|
Channel sync-gmail-junk
|
||||||
Channel sync-gmail-archive
|
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
|
IMAPAccount disroot
|
||||||
Host disroot.org
|
Host disroot.org
|
||||||
User akasroua@disroot.org
|
User akasroua@disroot.org
|
||||||
AuthMechs LOGIN
|
AuthMechs LOGIN
|
||||||
PassCmd "pass mail/disroot"
|
PassCmd "pass mail/disroot"
|
||||||
SSLType IMAPS
|
TLSType IMAPS
|
||||||
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
CertificateFile /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
IMAPStore disroot-remote
|
IMAPStore disroot-remote
|
||||||
@@ -222,6 +152,14 @@ Create Both
|
|||||||
Expunge Both
|
Expunge Both
|
||||||
SyncState *
|
SyncState *
|
||||||
|
|
||||||
|
|
||||||
|
Channel sync-disroot-jobs
|
||||||
|
Far :disroot-remote:"Jobs"
|
||||||
|
Near :disroot-local:jobs
|
||||||
|
Create Both
|
||||||
|
Expunge Both
|
||||||
|
SyncState *
|
||||||
|
|
||||||
Group disroot
|
Group disroot
|
||||||
Channel sync-disroot-default
|
Channel sync-disroot-default
|
||||||
Channel sync-disroot-sent
|
Channel sync-disroot-sent
|
||||||
@@ -234,3 +172,4 @@ Channel sync-disroot-services
|
|||||||
Channel sync-disroot-smart
|
Channel sync-disroot-smart
|
||||||
Channel sync-disroot-travel
|
Channel sync-disroot-travel
|
||||||
Channel sync-disroot-archive
|
Channel sync-disroot-archive
|
||||||
|
Channel sync-disroot-jobs
|
||||||
|
|||||||
@@ -1,8 +1,72 @@
|
|||||||
|
|
||||||
[Default Applications]
|
[Default Applications]
|
||||||
application/pdf=org.pwmt.zathura.desktop
|
|
||||||
text/html=firefox.desktop
|
|
||||||
x-scheme-handler/http=firefox.desktop
|
x-scheme-handler/http=firefox.desktop
|
||||||
x-scheme-handler/https=firefox.desktop
|
x-scheme-handler/https=firefox.desktop
|
||||||
x-scheme-handler/about=firefox.desktop
|
x-scheme-handler/about=firefox.desktop
|
||||||
x-scheme-handler/unknown=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
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ profile=gpu-hq
|
|||||||
volume-max=200
|
volume-max=200
|
||||||
af=acompressor
|
af=acompressor
|
||||||
## Youtube-dl settings
|
## Youtube-dl settings
|
||||||
ytdl-format=bestvideo[height<=?1080][vcodec!=vp9]+bestaudio/best
|
ytdl-format=bestvideo[height<=1080][vcodec!=av1]+bestaudio/best
|
||||||
## Wayland
|
## Wayland
|
||||||
gpu-context=wayland
|
gpu-context=wayland
|
||||||
## Default window size
|
## Default window size
|
||||||
@@ -21,3 +21,5 @@ geometry=70%x70%
|
|||||||
script-opts-append=sponsorblock-local_database=no
|
script-opts-append=sponsorblock-local_database=no
|
||||||
## Use pipewire for audio
|
## Use pipewire for audio
|
||||||
ao=pipewire
|
ao=pipewire
|
||||||
|
## Save position of the video
|
||||||
|
save-position-on-quit
|
||||||
|
|||||||
@@ -13,13 +13,6 @@ from akasroua@gmail.com
|
|||||||
user akasroua@gmail.com
|
user akasroua@gmail.com
|
||||||
passwordeval "pass mail/gmail"
|
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
|
account disroot
|
||||||
host disroot.org
|
host disroot.org
|
||||||
from akasroua@disroot.org
|
from akasroua@disroot.org
|
||||||
|
|||||||
@@ -38,5 +38,7 @@ Plug 'LnL7/vim-nix'
|
|||||||
call plug#end()
|
call plug#end()
|
||||||
""Colors
|
""Colors
|
||||||
set termguicolors
|
set termguicolors
|
||||||
|
colorscheme nord
|
||||||
|
set background=light
|
||||||
""Disabe status line
|
""Disabe status line
|
||||||
set laststatus=0
|
set laststatus=0
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
allowUnfree = true;
|
|
||||||
android_sdk.accept_license = true;
|
|
||||||
}
|
|
||||||
@@ -3,6 +3,11 @@ target=api/gitea
|
|||||||
username_extractor=specific_line
|
username_extractor=specific_line
|
||||||
line_username=1
|
line_username=1
|
||||||
skip_username=7
|
skip_username=7
|
||||||
|
[git.psydnd.org*]
|
||||||
|
target=api/gitea
|
||||||
|
username_extractor=specific_line
|
||||||
|
line_username=1
|
||||||
|
skip_username=7
|
||||||
[github.com*]
|
[github.com*]
|
||||||
target=api/github
|
target=api/github
|
||||||
username_extractor=specific_line
|
username_extractor=specific_line
|
||||||
|
|||||||
22
scripts/.local/share/scripts/cliphist-rofi-img
Executable file
22
scripts/.local/share/scripts/cliphist-rofi-img
Executable 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"
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
search_directory=~/Documents
|
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")"
|
rofi -threads 0 -dmenu -sort -sorting-method fzf -i -p "find")"
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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"
|
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
ACCOUNT="$1"
|
||||||
|
|
||||||
if [ $# -lt 1 ]; then
|
if [ $# -lt 1 ]; then
|
||||||
echo "Usage: mail-sync <account name>"
|
ACCOUNT="-a"
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mbsync "$1"
|
mbsync "$ACCOUNT"
|
||||||
if pgrep -f 'mu server'; then
|
if pgrep -f 'mu server'; then
|
||||||
emacsclient -e '(mu4e-update-index)'
|
emacsclient -e '(mu4e-update-index)'
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -5,7 +5,8 @@ player=mpv
|
|||||||
data_file=$HOME/Documents/Misc/peerflix-db.csv
|
data_file=$HOME/Documents/Misc/peerflix-db.csv
|
||||||
|
|
||||||
parse_csv() {
|
parse_csv() {
|
||||||
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:]]*$//')
|
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")
|
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")
|
line_number=$(awk -F ',' -v var="$show_name" '$1 ~ var {print NR}' "$data_file")
|
||||||
}
|
}
|
||||||
@@ -15,6 +16,15 @@ increment_episode() {
|
|||||||
sed -e "$line_number s/$episode/$next_episode/" -i "$data_file"
|
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"
|
parse_csv "$1"
|
||||||
if [ -z "$episode" ]; then
|
if [ -z "$episode" ]; then
|
||||||
webtorrent download "$1" -s -o "$directory" --"$player"
|
webtorrent download "$1" -s -o "$directory" --"$player"
|
||||||
|
|||||||
@@ -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()
|
|
||||||
@@ -15,7 +15,6 @@ usage() {
|
|||||||
copy_nix_files() {
|
copy_nix_files() {
|
||||||
if [ "$1" = "flake" ]; then
|
if [ "$1" = "flake" ]; then
|
||||||
cp ~/Projects/devenv/flake-template.nix flake.nix
|
cp ~/Projects/devenv/flake-template.nix flake.nix
|
||||||
cp ~/Projects/devenv/shell.nix .
|
|
||||||
elif [ "$1" = "nix-ld" ]; then
|
elif [ "$1" = "nix-ld" ]; then
|
||||||
cp ~/Projects/devenv/nix-ld.nix shell.nix
|
cp ~/Projects/devenv/nix-ld.nix shell.nix
|
||||||
elif [ "$1" = "datasci" ]; then
|
elif [ "$1" = "datasci" ]; then
|
||||||
|
|||||||
6
scripts/.local/share/scripts/set-zfs-mountpoint
Normal file
6
scripts/.local/share/scripts/set-zfs-mountpoint
Normal 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
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
LIGHT_THEME="rose-pine"
|
LIGHT_THEME="rose-pine"
|
||||||
DARK_THEME="nord"
|
DARK_THEME="nord"
|
||||||
KITTY_LIGHT_THEME="Rosé Pine Dawn"
|
KITTY_LIGHT_THEME="Rosé Pine Dawn"
|
||||||
NVIM_COLORSCHEME_LINE=44
|
NVIM_COLORSCHEME_LINE=41
|
||||||
|
|
||||||
capitalize() {
|
capitalize() {
|
||||||
printf '%s' "$1" | head -c 1 | tr "[:lower:]" "[:upper:]"
|
printf '%s' "$1" | head -c 1 | tr "[:lower:]" "[:upper:]"
|
||||||
@@ -40,7 +40,7 @@ fi
|
|||||||
mode=$1
|
mode=$1
|
||||||
|
|
||||||
if [ "$mode" = "light" ]; then
|
if [ "$mode" = "light" ]; then
|
||||||
emacsclient --eval "(load-theme 'doom-solarized-light 'no-confirm)"
|
emacsclient --eval "(load-theme 'os1 'no-confirm)"
|
||||||
change_theme "$DARK_THEME" "$LIGHT_THEME"
|
change_theme "$DARK_THEME" "$LIGHT_THEME"
|
||||||
recolor_zathura
|
recolor_zathura
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
host zion
|
host zion
|
||||||
user coolneng
|
user coolneng
|
||||||
hostname 192.168.13.2
|
hostname 192.168.128.2
|
||||||
port 22
|
port 22
|
||||||
identityfile ~/.ssh/zion
|
identityfile ~/.ssh/zion
|
||||||
|
|
||||||
@@ -20,12 +20,8 @@ host kobo
|
|||||||
port 22
|
port 22
|
||||||
identityfile ~/.ssh/kobo
|
identityfile ~/.ssh/kobo
|
||||||
|
|
||||||
host kermit-gpu
|
host kathreftis
|
||||||
user aminka
|
user root
|
||||||
hostname bw26gpu1.ugent.be
|
hostname 192.168.13.131
|
||||||
port 4480
|
port 22
|
||||||
identityfile ~/.ssh/kermit-gpu
|
identityfile ~/.ssh/kathreftis
|
||||||
|
|
||||||
host bds
|
|
||||||
user student
|
|
||||||
hostname 193.191.169.70
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -134,12 +134,12 @@ bindsym $mod+L focus right
|
|||||||
set $workspace1 "1: "
|
set $workspace1 "1: "
|
||||||
set $workspace2 "2: "
|
set $workspace2 "2: "
|
||||||
set $workspace3 "3: "
|
set $workspace3 "3: "
|
||||||
set $workspace4 "4: "
|
set $workspace4 "4: "
|
||||||
set $workspace5 "5: "
|
set $workspace5 "5: "
|
||||||
set $workspace6 "6: "
|
set $workspace6 "6: "
|
||||||
set $workspace7 "7: "
|
set $workspace7 "7: "
|
||||||
set $workspace8 "8: "
|
set $workspace8 "8: "
|
||||||
set $workspace9 "9: 辶"
|
set $workspace9 "9: "
|
||||||
set $workspace10 "10: "
|
set $workspace10 "10: "
|
||||||
# Switch to workspace
|
# Switch to workspace
|
||||||
bindsym $mod+1 workspace $workspace1
|
bindsym $mod+1 workspace $workspace1
|
||||||
@@ -274,21 +274,22 @@ bindsym XF86AudioMicMute exec ~/.local/share/scripts/pulseaudio-mic-mute
|
|||||||
bindsym XF86MonBrightnessUp exec light -A 10
|
bindsym XF86MonBrightnessUp exec light -A 10
|
||||||
bindsym XF86MonBrightnessDown exec light -U 10
|
bindsym XF86MonBrightnessDown exec light -U 10
|
||||||
# Media control
|
# Media control
|
||||||
bindsym XF86Tools exec mpc toggle
|
bindsym XF86Messenger exec mpc toggle
|
||||||
bindsym XF86AudioPlay exec mpc toggle
|
bindsym XF86AudioPlay exec mpc toggle
|
||||||
bindsym XF86Search exec mpc stop
|
bindsym XF86Go exec mpc stop
|
||||||
bindsym XF86LaunchA exec mpc prev
|
bindsym Cancel exec mpc prev
|
||||||
bindsym XF86Explorer exec mpc next
|
bindsym XF86Favorites exec mpc next
|
||||||
|
|
||||||
#
|
#
|
||||||
# Program keybindings
|
# Program keybindings
|
||||||
#
|
#
|
||||||
# clipman
|
# 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
|
# grim
|
||||||
bindsym Print exec grim
|
bindsym Print exec grim
|
||||||
# slurp + grim to clipboard
|
# slurp + grim to clipboard
|
||||||
bindsym Shift+Print exec slurp | grim -g - - | wl-copy
|
bindsym Shift+Print exec slurp | grim -g - - | wl-copy
|
||||||
|
#bindsym Shift+Super_L exec slurp | grim -g - - | wl-copy
|
||||||
# find PDFs with rofi
|
# find PDFs with rofi
|
||||||
bindsym $mod+f exec ~/.local/share/scripts/finder
|
bindsym $mod+f exec ~/.local/share/scripts/finder
|
||||||
# recurrent action launcher
|
# recurrent action launcher
|
||||||
@@ -318,11 +319,15 @@ set $lock_bg ~/Photos/Wallpapers/wallhaven-638719.png
|
|||||||
exec swayidle -w \
|
exec swayidle -w \
|
||||||
before-sleep 'swaylock -f -c 000000 -i $lock_bg'
|
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
|
# Autostart programs
|
||||||
#
|
#
|
||||||
# clipman
|
# 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
|
# kanshi
|
||||||
exec kanshi
|
exec kanshi
|
||||||
# easyeffects
|
# easyeffects
|
||||||
@@ -334,7 +339,7 @@ exec kitty --class tmux -- tmuxp load ~/.tmuxp/local.yaml
|
|||||||
assign [app_id="firefox"] $workspace2
|
assign [app_id="firefox"] $workspace2
|
||||||
exec firefox
|
exec firefox
|
||||||
# emacs
|
# emacs
|
||||||
assign [class=".*[Ee]macs.*"] $workspace3
|
assign [app_id="emacs"] $workspace3
|
||||||
# HACK Run a doom sync before launching emacs
|
# HACK Run a doom sync before launching emacs
|
||||||
exec ~/.emacs.d/bin/doom sync && exec emacs
|
exec ~/.emacs.d/bin/doom sync && exec emacs
|
||||||
|
|
||||||
@@ -354,9 +359,9 @@ assign [app_id="mpv"] $workspace9
|
|||||||
# calibre
|
# calibre
|
||||||
assign [app_id="calibre"] $workspace10
|
assign [app_id="calibre"] $workspace10
|
||||||
# chromium
|
# chromium
|
||||||
assign [class="Chromium-browser"] $workspace10
|
assign [app_id="chromium-browser"] $workspace10
|
||||||
# teams
|
# teams
|
||||||
assign [class="Microsoft Teams - Preview"] $workspace6
|
assign [class="teams-for-linux"] $workspace6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ set -g bell-action any
|
|||||||
|
|
||||||
## Set default terminal
|
## Set default terminal
|
||||||
set -g default-terminal "screen-256color"
|
set -g default-terminal "screen-256color"
|
||||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
|
||||||
|
|
||||||
|
|
||||||
# i3 split bindings
|
# i3 split bindings
|
||||||
|
|||||||
@@ -6,15 +6,15 @@ windows:
|
|||||||
focus: true
|
focus: true
|
||||||
layout: even-vertical
|
layout: even-vertical
|
||||||
panes:
|
panes:
|
||||||
- ssh -C root@zion
|
- ssh root@zion
|
||||||
- ssh -C root@zion
|
- ssh root@zion
|
||||||
|
|
||||||
- window_name: canvas
|
- window_name: canvas
|
||||||
layout: even-vertical
|
layout: even-vertical
|
||||||
panes:
|
panes:
|
||||||
- ssh -C zion
|
- ssh zion
|
||||||
- ssh -C zion
|
- ssh zion
|
||||||
|
|
||||||
- window_name: monitor
|
- window_name: monitor
|
||||||
panes:
|
panes:
|
||||||
- ssh -C -t zion "htop"
|
- ssh -t zion "htop"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"height": 25,
|
"height": 25,
|
||||||
"modules-left": ["sway/workspaces" ],
|
"modules-left": ["sway/workspaces" ],
|
||||||
"modules-center": ["custom/org-pomodoro", "clock"],
|
"modules-center": ["custom/org-pomodoro", "clock"],
|
||||||
"modules-right": ["mpd", "network", "pulseaudio", "battery", "battery#bat2"],
|
"modules-right": ["mpd", "network", "pulseaudio", "battery" ],
|
||||||
"mpd": {
|
"mpd": {
|
||||||
"format": "<span foreground='#88C0D0'>{stateIcon}</span> {title}",
|
"format": "<span foreground='#88C0D0'>{stateIcon}</span> {title}",
|
||||||
"format-disconnected": "",
|
"format-disconnected": "",
|
||||||
@@ -14,8 +14,8 @@
|
|||||||
"on": " "
|
"on": " "
|
||||||
},
|
},
|
||||||
"state-icons": {
|
"state-icons": {
|
||||||
"paused": "",
|
"paused": "",
|
||||||
"playing": ""
|
"playing": ""
|
||||||
},
|
},
|
||||||
"tooltip-format": "{elapsedTime:%H:%M:%S}/{totalTime:%H:%M:%S}",
|
"tooltip-format": "{elapsedTime:%H:%M:%S}/{totalTime:%H:%M:%S}",
|
||||||
"tooltip-format-disconnected": "MPD (disconnected)",
|
"tooltip-format-disconnected": "MPD (disconnected)",
|
||||||
@@ -35,25 +35,11 @@
|
|||||||
"critical": 10
|
"critical": 10
|
||||||
},
|
},
|
||||||
"format": "<span foreground='#88C0D0'>{icon}</span> {capacity}%",
|
"format": "<span foreground='#88C0D0'>{icon}</span> {capacity}%",
|
||||||
"format-charging": "<span foreground='#88C0D0'></span> {capacity}%",
|
"format-charging": "<span foreground='#88C0D0'></span> {capacity}%",
|
||||||
"format-plugged": "<span foreground='#88C0D0'></span> {capacity}%",
|
"format-plugged": "<span foreground='#88C0D0'></span> {capacity}%",
|
||||||
"format-alt": "{time} {icon}",
|
"format-alt": "{time} {icon}",
|
||||||
"format-full": "<span foreground='#88C0D0'></span> 100%",
|
"format-full": "<span foreground='#88C0D0'></span> 100%",
|
||||||
"format-icons": ["", "", ""]
|
"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": {
|
"network": {
|
||||||
"format-wifi": "<span foreground='#88C0D0'>{icon}</span> {essid}",
|
"format-wifi": "<span foreground='#88C0D0'>{icon}</span> {essid}",
|
||||||
@@ -61,22 +47,17 @@
|
|||||||
"format-linked": "{ifname} (No IP) ",
|
"format-linked": "{ifname} (No IP) ",
|
||||||
"format-disconnected": "<span foreground='#88C0D0'>睊</span> Disconnected",
|
"format-disconnected": "<span foreground='#88C0D0'>睊</span> Disconnected",
|
||||||
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
"format-alt": "{ifname}: {ipaddr}/{cidr}",
|
||||||
"format-icons": ["直", "直", "直"],
|
"format-icons": ["", "", ""],
|
||||||
"tooltip-format": "Online",
|
"tooltip-format": "Online",
|
||||||
"tooltip-format-disconnected": "Offline"
|
"tooltip-format-disconnected": "Offline"
|
||||||
},
|
},
|
||||||
"pulseaudio": {
|
"pulseaudio": {
|
||||||
"format": "<span foreground='#88C0D0'>{icon}</span> {volume}%",
|
"format": "<span foreground='#88C0D0'>{icon}</span> {volume}%",
|
||||||
"format-muted": "<span foreground='#88C0D0'>婢</span>",
|
"format-muted": "<span foreground='#88C0D0'></span>",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"default": ["", "墳", ""]
|
"default": ["", "", ""]
|
||||||
},
|
},
|
||||||
"on-click": "",
|
"on-click": "",
|
||||||
"ignored-sinks": ["Easy Effects Sink"]
|
"ignored-sinks": ["Easy Effects Sink"]
|
||||||
},
|
|
||||||
"custom/org-pomodoro": {
|
|
||||||
"format": "<span foreground='#88C0D0'>祥</span> {}",
|
|
||||||
"exec": "$HOME/.local/share/scripts/org-clock-status",
|
|
||||||
"interval": 2
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
4
yt-dlp/.config/yt-dlp/config
Normal file
4
yt-dlp/.config/yt-dlp/config
Normal 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
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
# Zathura configuration
|
# Zathura configuration
|
||||||
set adjust-open "best-fit"
|
set adjust-open "best-fit"
|
||||||
set selection-clipboard clipboard
|
set selection-clipboard clipboard
|
||||||
set recolor true
|
|
||||||
set recolor-keephue true
|
set recolor-keephue true
|
||||||
set window-title-basename true
|
set window-title-basename true
|
||||||
set completion-bg "#161821"
|
set completion-bg "#161821"
|
||||||
set highlight-color "#a093c7"
|
set highlight-color "#a093c7"
|
||||||
set highlight-active-color "#a093c7"
|
set highlight-active-color "#a093c7"
|
||||||
set font "Terminus \(TTF\) 15"
|
set font "Terminus \(TTF\) 15"
|
||||||
|
|
||||||
|
include nord.conf
|
||||||
|
|||||||
Reference in New Issue
Block a user