Compare commits
71 Commits
6b6202a7f8
...
master
Author | SHA1 | Date | |
---|---|---|---|
33a73e4bf6 | |||
70bac5be34 | |||
59f0106d5e | |||
777b011479 | |||
acab78d596 | |||
a30bef3b29 | |||
ec66d63089 | |||
1739580bb2 | |||
1244faa0e9 | |||
85823dc511 | |||
2d16fe1338 | |||
b555b50451 | |||
42278169d5 | |||
50087596d0 | |||
6a91454943 | |||
8bcf1a838f | |||
0460efb2e5 | |||
dcf6c34fec | |||
fee028a501 | |||
3b2b41703f | |||
e56e0e41d2 | |||
c92d6e43f5 | |||
262e95e42e | |||
1f800423ec | |||
6a242b158e | |||
09fea918af | |||
91ed57b89f | |||
def626a207 | |||
6529a5f7f2 | |||
6003c3df32 | |||
1738913e09 | |||
443d10db43 | |||
157509fdba | |||
73489aa090 | |||
42e10464b9 | |||
30371a5b94 | |||
b8d70b202f | |||
c9442f04b3 | |||
c14f0357ab | |||
490f2f3eb8 | |||
2015ad637c | |||
446893f232 | |||
80b1cc73a8 | |||
b1807eb72b | |||
1561926840 | |||
32338dff76 | |||
209860b3ed | |||
05da2bb9a4 | |||
16343fc8cb | |||
462ff99b9a | |||
b94ba8d94c | |||
79c02ee730 | |||
f3a766c0d0 | |||
44d5c75c31 | |||
400b7fdb8f | |||
54b4f67a2a | |||
440d420adb | |||
a539bcd743 | |||
c40f6216d4 | |||
fb3c67693c | |||
86447da7e2 | |||
a1ee37e168 | |||
cef71f461e | |||
bc0414010c | |||
2c9c5b490c | |||
d9941f5f9b | |||
02edcf2d48 | |||
cb8808ac0a | |||
b6c34a620e | |||
fa5c85f728 | |||
0070dbb3a0 |
5
boot/loader/entries/arch-fallback.conf
Executable file
5
boot/loader/entries/arch-fallback.conf
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
title Arch Linux
|
||||||
|
linux /vmlinuz-linux
|
||||||
|
initrd /amd-ucode.img
|
||||||
|
initrd /initramfs-linux-fallback.img
|
||||||
|
options rd.luks.name=3927d3f3-175f-4b72-9e05-395ef5664c81=cryptlvm rd.luks.options=discard root=/dev/ssd1/root resume=/dev/ssd1/swap rw add_efi_memmap kernel=30
|
5
boot/loader/entries/arch.conf
Executable file
5
boot/loader/entries/arch.conf
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
title Arch Linux
|
||||||
|
linux /vmlinuz-linux
|
||||||
|
initrd /amd-ucode.img
|
||||||
|
initrd /initramfs-linux.img
|
||||||
|
options rd.luks.name=3927d3f3-175f-4b72-9e05-395ef5664c81=cryptlvm rd.luks.options=discard root=/dev/ssd1/root resume=/dev/ssd1/swap rw add_efi_memmap kernel=30
|
@ -4,8 +4,7 @@
|
|||||||
# run. Advanced users may wish to specify all system modules
|
# run. Advanced users may wish to specify all system modules
|
||||||
# in this array. For instance:
|
# in this array. For instance:
|
||||||
# MODULES=(piix ide_disk reiserfs)
|
# MODULES=(piix ide_disk reiserfs)
|
||||||
MODULES=(nvidia nvidia_modeset nvidia_uvm nvidia_drm)
|
MODULES=()
|
||||||
# MODULES=()
|
|
||||||
|
|
||||||
# BINARIES
|
# BINARIES
|
||||||
# This setting includes any additional binaries a given user may
|
# This setting includes any additional binaries a given user may
|
||||||
|
@ -20,6 +20,7 @@ HoldPkg = pacman glibc
|
|||||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||||
#CleanMethod = KeepInstalled
|
#CleanMethod = KeepInstalled
|
||||||
#UseDelta = 0.7
|
#UseDelta = 0.7
|
||||||
|
ParallelDownloads = 20
|
||||||
Architecture = auto
|
Architecture = auto
|
||||||
|
|
||||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||||
@ -85,13 +86,10 @@ LocalFileSigLevel = Optional
|
|||||||
[core]
|
[core]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[extra]
|
#[extra-testing]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
|
||||||
|
|
||||||
#[community-testing]
|
|
||||||
#Include = /etc/pacman.d/mirrorlist
|
#Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
[community]
|
[extra]
|
||||||
Include = /etc/pacman.d/mirrorlist
|
Include = /etc/pacman.d/mirrorlist
|
||||||
|
|
||||||
# If you want to run 32 bit applications on your x86_64 system,
|
# If you want to run 32 bit applications on your x86_64 system,
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
no-greeting
|
no-greeting
|
||||||
no-permission-warning
|
no-permission-warning
|
||||||
lock-never
|
|
||||||
#keyserver-options timeout=10
|
#keyserver-options timeout=10
|
||||||
keyserver hkps://hkps.pool.sks-keyservers.net:443
|
keyserver hkps://hkps.pool.sks-keyservers.net:443
|
||||||
#keyserver hkp://pgp.mit.edu:11371
|
#keyserver hkp://pgp.mit.edu:11371
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
[Trigger]
|
|
||||||
Operation=Install
|
|
||||||
Operation=Upgrade
|
|
||||||
Operation=Remove
|
|
||||||
Type=Package
|
|
||||||
Target=nvidia
|
|
||||||
Target=linux-lts
|
|
||||||
# Change the linux part above and in the Exec line if a different kernel is used
|
|
||||||
|
|
||||||
[Action]
|
|
||||||
Description=Update Nvidia module in initcpio
|
|
||||||
Depends=mkinitcpio
|
|
||||||
When=PostTransaction
|
|
||||||
NeedsTargets
|
|
||||||
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux-lts) exit 0; esac; done; /usr/bin/mkinitcpio -P'
|
|
1
etc/ssh/sshrc
Normal file
1
etc/ssh/sshrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
/home/default/syncthing/default/scripts/login-notify
|
136
etc/sudoers
Normal file
136
etc/sudoers
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
## sudoers file.
|
||||||
|
##
|
||||||
|
## This file MUST be edited with the 'visudo' command as root.
|
||||||
|
## Failure to use 'visudo' may result in syntax or file permission errors
|
||||||
|
## that prevent sudo from running.
|
||||||
|
##
|
||||||
|
## See the sudoers man page for the details on how to write a sudoers file.
|
||||||
|
##
|
||||||
|
|
||||||
|
##
|
||||||
|
## Host alias specification
|
||||||
|
##
|
||||||
|
## Groups of machines. These may include host names (optionally with wildcards),
|
||||||
|
## IP addresses, network numbers or netgroups.
|
||||||
|
# Host_Alias WEBSERVERS = www1, www2, www3
|
||||||
|
|
||||||
|
##
|
||||||
|
## User alias specification
|
||||||
|
##
|
||||||
|
## Groups of users. These may consist of user names, uids, Unix groups,
|
||||||
|
## or netgroups.
|
||||||
|
# User_Alias ADMINS = millert, dowdy, mikef
|
||||||
|
|
||||||
|
##
|
||||||
|
## Cmnd alias specification
|
||||||
|
##
|
||||||
|
## Groups of commands. Often used to group related commands together.
|
||||||
|
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \
|
||||||
|
# /usr/bin/pkill, /usr/bin/top
|
||||||
|
#
|
||||||
|
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff
|
||||||
|
#
|
||||||
|
# Cmnd_Alias DEBUGGERS = /usr/bin/gdb, /usr/bin/lldb, /usr/bin/strace, \
|
||||||
|
# /usr/bin/truss, /usr/bin/bpftrace, \
|
||||||
|
# /usr/bin/dtrace, /usr/bin/dtruss
|
||||||
|
#
|
||||||
|
# Cmnd_Alias PKGMAN = /usr/bin/apt, /usr/bin/dpkg, /usr/bin/rpm, \
|
||||||
|
# /usr/bin/yum, /usr/bin/dnf, /usr/bin/zypper, \
|
||||||
|
# /usr/bin/pacman
|
||||||
|
|
||||||
|
##
|
||||||
|
## Defaults specification
|
||||||
|
##
|
||||||
|
## Preserve editor environment variables for visudo.
|
||||||
|
## To preserve these for all commands, remove the "!visudo" qualifier.
|
||||||
|
Defaults!/usr/bin/visudo env_keep += "SUDO_EDITOR EDITOR VISUAL"
|
||||||
|
##
|
||||||
|
## Use a hard-coded PATH instead of the user's to find commands.
|
||||||
|
## This also helps prevent poorly written scripts from running
|
||||||
|
## artbitrary commands under sudo.
|
||||||
|
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/bin"
|
||||||
|
##
|
||||||
|
## You may wish to keep some of the following environment variables
|
||||||
|
## when running commands via sudo.
|
||||||
|
##
|
||||||
|
## Locale settings
|
||||||
|
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET"
|
||||||
|
##
|
||||||
|
## Run X applications through sudo; HOME is used to find the
|
||||||
|
## .Xauthority file. Note that other programs use HOME to find
|
||||||
|
## configuration files and this may lead to privilege escalation!
|
||||||
|
# Defaults env_keep += "HOME"
|
||||||
|
##
|
||||||
|
## X11 resource path settings
|
||||||
|
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH"
|
||||||
|
##
|
||||||
|
## Desktop path settings
|
||||||
|
# Defaults env_keep += "QTDIR KDEDIR"
|
||||||
|
##
|
||||||
|
## Allow sudo-run commands to inherit the callers' ConsoleKit session
|
||||||
|
# Defaults env_keep += "XDG_SESSION_COOKIE"
|
||||||
|
##
|
||||||
|
## Uncomment to enable special input methods. Care should be taken as
|
||||||
|
## this may allow users to subvert the command being run via sudo.
|
||||||
|
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER"
|
||||||
|
##
|
||||||
|
## Uncomment to disable "use_pty" when running commands as root.
|
||||||
|
## Commands run as non-root users will run in a pseudo-terminal,
|
||||||
|
## not the user's own terminal, to prevent command injection.
|
||||||
|
# Defaults>root !use_pty
|
||||||
|
##
|
||||||
|
## Uncomment to run commands in the background by default.
|
||||||
|
## This can be used to prevent sudo from consuming user input while
|
||||||
|
## a non-interactive command runs if "use_pty" or I/O logging are
|
||||||
|
## enabled. Some commands may not run properly in the background.
|
||||||
|
# Defaults exec_background
|
||||||
|
##
|
||||||
|
## Uncomment to send mail if the user does not enter the correct password.
|
||||||
|
# Defaults mail_badpass
|
||||||
|
##
|
||||||
|
## Uncomment to enable logging of a command's output, except for
|
||||||
|
## sudoreplay and reboot. Use sudoreplay to play back logged sessions.
|
||||||
|
## Sudo will create up to 2,176,782,336 I/O logs before recycling them.
|
||||||
|
## Set maxseq to a smaller number if you don't have unlimited disk space.
|
||||||
|
# Defaults log_output
|
||||||
|
# Defaults!/usr/bin/sudoreplay !log_output
|
||||||
|
# Defaults!/usr/local/bin/sudoreplay !log_output
|
||||||
|
# Defaults!REBOOT !log_output
|
||||||
|
# Defaults maxseq = 1000
|
||||||
|
##
|
||||||
|
## Uncomment to disable intercept and log_subcmds for debuggers and
|
||||||
|
## tracers. Otherwise, anything that uses ptrace(2) will be unable
|
||||||
|
## to run under sudo if intercept_type is set to "trace".
|
||||||
|
# Defaults!DEBUGGERS !intercept, !log_subcmds
|
||||||
|
##
|
||||||
|
## Uncomment to disable intercept and log_subcmds for package managers.
|
||||||
|
## Some package scripts run a huge number of commands, which is made
|
||||||
|
## slower by these options and also can clutter up the logs.
|
||||||
|
# Defaults!PKGMAN !intercept, !log_subcmds
|
||||||
|
|
||||||
|
##
|
||||||
|
## Runas alias specification
|
||||||
|
##
|
||||||
|
|
||||||
|
##
|
||||||
|
## User privilege specification
|
||||||
|
##
|
||||||
|
root ALL=(ALL:ALL) ALL
|
||||||
|
default ALL=(ALL:ALL) ALL
|
||||||
|
|
||||||
|
## Uncomment to allow members of group wheel to execute any command
|
||||||
|
%wheel ALL=(ALL:ALL) ALL
|
||||||
|
|
||||||
|
## Same thing without a password
|
||||||
|
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL
|
||||||
|
|
||||||
|
## Uncomment to allow members of group sudo to execute any command
|
||||||
|
# %sudo ALL=(ALL:ALL) ALL
|
||||||
|
|
||||||
|
## Uncomment to allow any user to run sudo if they know the password
|
||||||
|
## of the user they are running the command as (root by default).
|
||||||
|
# Defaults targetpw # Ask for the password of the target user
|
||||||
|
# ALL ALL=(ALL:ALL) ALL # WARNING: only use this together with 'Defaults targetpw'
|
||||||
|
|
||||||
|
## Read drop-in files from /etc/sudoers.d
|
||||||
|
@includedir /etc/sudoers.d
|
1
etc/sysctl.d/99-swappiness.conf
Normal file
1
etc/sysctl.d/99-swappiness.conf
Normal file
@ -0,0 +1 @@
|
|||||||
|
vm.swappiness=5
|
14
etc/systemd/user/wayvnc.service
Normal file
14
etc/systemd/user/wayvnc.service
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=A VNC server for wlroots based Wayland compositors
|
||||||
|
BindsTo=sway-session.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/bin/wayvnc
|
||||||
|
Environment="WAYLAND_DISPLAY=wayland-1"
|
||||||
|
Restart=on-failure
|
||||||
|
RestartSec=1
|
||||||
|
TimeoutStopSec=10
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=sway-session.target
|
0
home/default/.bashrc
Normal file → Executable file
0
home/default/.bashrc
Normal file → Executable file
3
home/default/.config/alacritty/alacritty.toml
Normal file
3
home/default/.config/alacritty/alacritty.toml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[window]
|
||||||
|
opacity=0.85
|
||||||
|
decorations="None"
|
@ -1,2 +0,0 @@
|
|||||||
window:
|
|
||||||
opacity: 0.85
|
|
27
home/default/.config/fcitx5/conf/classicui.conf
Normal file
27
home/default/.config/fcitx5/conf/classicui.conf
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# Vertical Candidate List
|
||||||
|
Vertical Candidate List=False
|
||||||
|
# Use Per Screen DPI
|
||||||
|
PerScreenDPI=True
|
||||||
|
# Use mouse wheel to go to prev or next page
|
||||||
|
WheelForPaging=True
|
||||||
|
# Font
|
||||||
|
Font="Sans 10"
|
||||||
|
# Menu Font
|
||||||
|
MenuFont="Sans 10"
|
||||||
|
# Tray Font
|
||||||
|
TrayFont="Sans Bold 10"
|
||||||
|
# Tray Label Outline Color
|
||||||
|
TrayOutlineColor=#000000
|
||||||
|
# Tray Label Text Color
|
||||||
|
TrayTextColor=#ffffff
|
||||||
|
# Prefer Text Icon
|
||||||
|
PreferTextIcon=False
|
||||||
|
# Show Layout Name In Icon
|
||||||
|
ShowLayoutNameInIcon=True
|
||||||
|
# Use input method language to display text
|
||||||
|
UseInputMethodLangaugeToDisplayText=True
|
||||||
|
# Theme
|
||||||
|
Theme=solarized-dark
|
||||||
|
# Force font DPI on Wayland
|
||||||
|
ForceWaylandDPI=0
|
||||||
|
|
145
home/default/.config/fcitx5/conf/pinyin.conf
Normal file
145
home/default/.config/fcitx5/conf/pinyin.conf
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
# Shuangpin Profile
|
||||||
|
ShuangpinProfile=Ziranma
|
||||||
|
# Show current shuangpin mode
|
||||||
|
ShowShuangpinMode=True
|
||||||
|
# Page size
|
||||||
|
PageSize=7
|
||||||
|
# Enable Spell
|
||||||
|
SpellEnabled=True
|
||||||
|
# Enable Symbols
|
||||||
|
SymbolsEnabled=True
|
||||||
|
# Enable Chaizi
|
||||||
|
ChaiziEnabled=True
|
||||||
|
# Enable Characters in Unicode CJK Extension B
|
||||||
|
ExtBEnabled=True
|
||||||
|
# Enable Cloud Pinyin
|
||||||
|
CloudPinyinEnabled=True
|
||||||
|
# Cloud Pinyin Index
|
||||||
|
CloudPinyinIndex=1
|
||||||
|
# Show animation when Cloud Pinyin is loading
|
||||||
|
CloudPinyinAnimation=True
|
||||||
|
# Always show Cloud Pinyin place holder
|
||||||
|
KeepCloudPinyinPlaceHolder=False
|
||||||
|
# Preedit Mode
|
||||||
|
PreeditMode="Composing pinyin"
|
||||||
|
# Fix embedded preedit cursor at the beginning of the preedit
|
||||||
|
PreeditCursorPositionAtBeginning=True
|
||||||
|
# Show complete pinyin in preedit
|
||||||
|
PinyinInPreedit=False
|
||||||
|
# Enable Prediction
|
||||||
|
Prediction=False
|
||||||
|
# Prediction Size
|
||||||
|
PredictionSize=10
|
||||||
|
# Action when switching input method
|
||||||
|
SwitchInputMethodBehavior="Commit current preedit"
|
||||||
|
# Select 2nd Candidate
|
||||||
|
SecondCandidate=
|
||||||
|
# Select 3rd Candidate
|
||||||
|
ThirdCandidate=
|
||||||
|
# Use Keypad as Selection key
|
||||||
|
UseKeypadAsSelection=False
|
||||||
|
# Use BackSpace to cancel the selection
|
||||||
|
BackSpaceToUnselect=True
|
||||||
|
# Number of Sentences
|
||||||
|
Number of sentence=2
|
||||||
|
# Prompt long word length when input length over (0 for disable)
|
||||||
|
LongWordLengthLimit=4
|
||||||
|
# Key to trigger quickphrase
|
||||||
|
QuickPhraseKey=semicolon
|
||||||
|
# Use V to trigger quickphrase
|
||||||
|
VAsQuickphrase=True
|
||||||
|
# FirstRun
|
||||||
|
FirstRun=False
|
||||||
|
|
||||||
|
[ForgetWord]
|
||||||
|
0=Control+7
|
||||||
|
|
||||||
|
[PrevPage]
|
||||||
|
0=minus
|
||||||
|
1=Up
|
||||||
|
2=KP_Up
|
||||||
|
|
||||||
|
[NextPage]
|
||||||
|
0=equal
|
||||||
|
1=Down
|
||||||
|
2=KP_Down
|
||||||
|
|
||||||
|
[PrevCandidate]
|
||||||
|
0=Shift+Tab
|
||||||
|
|
||||||
|
[NextCandidate]
|
||||||
|
0=Tab
|
||||||
|
|
||||||
|
[CurrentCandidate]
|
||||||
|
0=space
|
||||||
|
1=KP_Space
|
||||||
|
|
||||||
|
[CommitRawInput]
|
||||||
|
0=Return
|
||||||
|
1=KP_Enter
|
||||||
|
2=Control+Return
|
||||||
|
3=Control+KP_Enter
|
||||||
|
4=Shift+Return
|
||||||
|
5=Shift+KP_Enter
|
||||||
|
6=Control+Shift+Return
|
||||||
|
7=Control+Shift+KP_Enter
|
||||||
|
|
||||||
|
[ChooseCharFromPhrase]
|
||||||
|
0=bracketleft
|
||||||
|
1=bracketright
|
||||||
|
|
||||||
|
[FilterByStroke]
|
||||||
|
0=grave
|
||||||
|
|
||||||
|
[QuickPhrase trigger]
|
||||||
|
0=www.
|
||||||
|
1=ftp.
|
||||||
|
2=http:
|
||||||
|
3=mail.
|
||||||
|
4=bbs.
|
||||||
|
5=forum.
|
||||||
|
6=https:
|
||||||
|
7=ftp:
|
||||||
|
8=telnet:
|
||||||
|
9=mailto:
|
||||||
|
|
||||||
|
[Fuzzy]
|
||||||
|
# ue -> ve
|
||||||
|
VE_UE=True
|
||||||
|
# Common Typo
|
||||||
|
NG_GN=True
|
||||||
|
# Inner Segment (xian -> xi'an)
|
||||||
|
Inner=True
|
||||||
|
# Inner Segment for Short Pinyin (qie -> qi'e)
|
||||||
|
InnerShort=True
|
||||||
|
# Match partial finals (e -> en, eng, ei)
|
||||||
|
PartialFinal=True
|
||||||
|
# Match partial shuangpin if input length is longer than 4
|
||||||
|
PartialSp=False
|
||||||
|
# u <-> v
|
||||||
|
V_U=False
|
||||||
|
# an <-> ang
|
||||||
|
AN_ANG=False
|
||||||
|
# en <-> eng
|
||||||
|
EN_ENG=False
|
||||||
|
# ian <-> iang
|
||||||
|
IAN_IANG=False
|
||||||
|
# in <-> ing
|
||||||
|
IN_ING=False
|
||||||
|
# u <-> ou
|
||||||
|
U_OU=False
|
||||||
|
# uan <-> uang
|
||||||
|
UAN_UANG=False
|
||||||
|
# c <-> ch
|
||||||
|
C_CH=False
|
||||||
|
# f <-> h
|
||||||
|
F_H=False
|
||||||
|
# l <-> n
|
||||||
|
L_N=False
|
||||||
|
# s <-> sh
|
||||||
|
S_SH=False
|
||||||
|
# z <-> zh
|
||||||
|
Z_ZH=False
|
||||||
|
# Correction Layout
|
||||||
|
Correction=None
|
||||||
|
|
66
home/default/.config/fcitx5/config
Normal file
66
home/default/.config/fcitx5/config
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
[Hotkey]
|
||||||
|
# Enumerate when press trigger key repeatedly
|
||||||
|
EnumerateWithTriggerKeys=True
|
||||||
|
# Temporally switch between first and current Input Method
|
||||||
|
AltTriggerKeys=
|
||||||
|
# Enumerate Input Method Forward
|
||||||
|
EnumerateForwardKeys=
|
||||||
|
# Enumerate Input Method Backward
|
||||||
|
EnumerateBackwardKeys=
|
||||||
|
# Skip first input method while enumerating
|
||||||
|
EnumerateSkipFirst=False
|
||||||
|
# Enumerate Input Method Group Forward
|
||||||
|
EnumerateGroupForwardKeys=
|
||||||
|
# Enumerate Input Method Group Backward
|
||||||
|
EnumerateGroupBackwardKeys=
|
||||||
|
# Activate Input Method
|
||||||
|
ActivateKeys=
|
||||||
|
# Deactivate Input Method
|
||||||
|
DeactivateKeys=
|
||||||
|
|
||||||
|
[Hotkey/TriggerKeys]
|
||||||
|
0=Control+Shift+space
|
||||||
|
|
||||||
|
[Hotkey/PrevPage]
|
||||||
|
0=Up
|
||||||
|
|
||||||
|
[Hotkey/NextPage]
|
||||||
|
0=Down
|
||||||
|
|
||||||
|
[Hotkey/PrevCandidate]
|
||||||
|
0=Shift+Tab
|
||||||
|
|
||||||
|
[Hotkey/NextCandidate]
|
||||||
|
0=Tab
|
||||||
|
|
||||||
|
[Hotkey/TogglePreedit]
|
||||||
|
0=Control+Alt+P
|
||||||
|
|
||||||
|
[Behavior]
|
||||||
|
# Active By Default
|
||||||
|
ActiveByDefault=False
|
||||||
|
# Share Input State
|
||||||
|
ShareInputState=No
|
||||||
|
# Show preedit in application
|
||||||
|
PreeditEnabledByDefault=True
|
||||||
|
# Show Input Method Information when switch input method
|
||||||
|
ShowInputMethodInformation=True
|
||||||
|
# Show Input Method Information when changing focus
|
||||||
|
showInputMethodInformationWhenFocusIn=False
|
||||||
|
# Show compact input method information
|
||||||
|
CompactInputMethodInformation=True
|
||||||
|
# Show first input method information
|
||||||
|
ShowFirstInputMethodInformation=True
|
||||||
|
# Default page size
|
||||||
|
DefaultPageSize=5
|
||||||
|
# Override Xkb Option
|
||||||
|
OverrideXkbOption=False
|
||||||
|
# Custom Xkb Option
|
||||||
|
CustomXkbOption=
|
||||||
|
# Force Enabled Addons
|
||||||
|
EnabledAddons=
|
||||||
|
# Force Disabled Addons
|
||||||
|
DisabledAddons=
|
||||||
|
# Preload input method to be used by default
|
||||||
|
PreloadInputMethod=True
|
||||||
|
|
23
home/default/.config/fcitx5/profile
Normal file
23
home/default/.config/fcitx5/profile
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
[Groups/0]
|
||||||
|
# Group Name
|
||||||
|
Name=Default
|
||||||
|
# Layout
|
||||||
|
Default Layout=us
|
||||||
|
# Default Input Method
|
||||||
|
DefaultIM=pinyin
|
||||||
|
|
||||||
|
[Groups/0/Items/0]
|
||||||
|
# Name
|
||||||
|
Name=keyboard-us
|
||||||
|
# Layout
|
||||||
|
Layout=
|
||||||
|
|
||||||
|
[Groups/0/Items/1]
|
||||||
|
# Name
|
||||||
|
Name=pinyin
|
||||||
|
# Layout
|
||||||
|
Layout=
|
||||||
|
|
||||||
|
[GroupOrder]
|
||||||
|
0=Default
|
||||||
|
|
@ -1,13 +1,4 @@
|
|||||||
profile {
|
profile {
|
||||||
output eDP-1 scale 2.00 position 0,540 mode 3200x1800
|
output "LG Electronics LG IPS QHD 201NTPCGD520" enable scale 1.30 position 0,0 mode 2560x1440@75Hz
|
||||||
output "Acer Technologies G257HU T1WAA0012432" scale 1.00 position 1600,0 mode 2560x1440
|
output "LG Electronics LG IPS QHD 309NTABDW064" enable scale 1.30 position 1974,0 mode 2560x1440@75Hz
|
||||||
}
|
|
||||||
|
|
||||||
profile {
|
|
||||||
output eDP-1 scale 2.00 position 0,540 mode 3200x1800
|
|
||||||
}
|
|
||||||
|
|
||||||
profile {
|
|
||||||
output "Goldstar Company Ltd LG ULTRAWIDE 0x00000101" position 0,360 mode 2560x1080
|
|
||||||
output "Dell Inc. DELL U2711 D971T25M14NL" position 2560,0 mode 2560x1440
|
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,21 @@
|
|||||||
font=IBMPlexMono 10
|
sort=-time
|
||||||
|
layer=overlay
|
||||||
background-color=#222222
|
background-color=#222222
|
||||||
|
width=500
|
||||||
|
height=120
|
||||||
|
border-size=1
|
||||||
border-color=#333333
|
border-color=#333333
|
||||||
anchor=top-right
|
border-radius=3
|
||||||
default-timeout=6000
|
icons=0
|
||||||
width=350
|
font=IBMPlexMono 11
|
||||||
|
default-timeout=0
|
||||||
|
padding=10
|
||||||
|
|
||||||
|
[urgency=low]
|
||||||
|
border-color=#333333
|
||||||
|
|
||||||
|
[urgency=normal]
|
||||||
|
border-color=#555555
|
||||||
|
|
||||||
|
[urgency=high]
|
||||||
|
border-color=#aaaaaa
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
# mpd.conf
|
|
||||||
|
|
||||||
pid_file "/home/default/.config/mpd/mpd.pid"
|
|
||||||
db_file "/home/default/.config/mpd/mpd.db"
|
|
||||||
state_file "/home/default/.config/mpd/mpd.state"
|
|
||||||
playlist_directory "/home/default/.config/mpd/music/music/playlists/mpd"
|
|
||||||
music_directory "/home/default/.config/mpd/music"
|
|
||||||
sticker_file "/home/default/.config/mpd/sticker.sql"
|
|
||||||
log_file "syslog"
|
|
||||||
auto_update "yes"
|
|
||||||
user "default"
|
|
||||||
bind_to_address "localhost"
|
|
||||||
port "6600"
|
|
||||||
volume_normalization "yes"
|
|
||||||
|
|
||||||
# pulse audio
|
|
||||||
audio_output {
|
|
||||||
type "pulse"
|
|
||||||
name "pulse audio"
|
|
||||||
}
|
|
||||||
|
|
||||||
# httpd stream
|
|
||||||
# audio_output {
|
|
||||||
# type "httpd"
|
|
||||||
# name "My HTTP Stream"
|
|
||||||
# encoder "wave" # optional, vorbis or lame
|
|
||||||
# port "8000"
|
|
||||||
# bind_to_address "0.0.0.0" # optional, IPv4 or IPv6
|
|
||||||
# quality "5.0" # do not define if bitrate is defined
|
|
||||||
# bitrate "128" # do not define if quality is defined
|
|
||||||
# format "44100:16:1"
|
|
||||||
# max_clients "0" # optional 0=no limit
|
|
||||||
#}
|
|
||||||
|
|
3
home/default/.config/nvim/init.vim
Normal file
3
home/default/.config/nvim/init.vim
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
" set default vim register to normal clipboard
|
||||||
|
set clipboard+=unnamedplus
|
||||||
|
colorscheme vim
|
@ -1,46 +0,0 @@
|
|||||||
ChatLine {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
MultiLineEdit {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
ChatLine#plain {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Font: UI Global Font */
|
|
||||||
QWidget {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
ChatListItem {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
NickListItem {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
StyledLabel#topicLabel {
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Topic Box */
|
|
||||||
StyledLabel#topicLabel {
|
|
||||||
background: palette(base);
|
|
||||||
font-family: Noto Sans;
|
|
||||||
font-size: 15px;
|
|
||||||
font-weight: normal;
|
|
||||||
}
|
|
||||||
|
|
3
home/default/.config/ranger/rc.conf
Normal file
3
home/default/.config/ranger/rc.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
set preview_images true
|
||||||
|
set preview_images_method ueberzug
|
||||||
|
map DD shell trash %s
|
@ -9,7 +9,7 @@ set $down j
|
|||||||
set $up k
|
set $up k
|
||||||
set $right l
|
set $right l
|
||||||
|
|
||||||
set $term kitty
|
set $term alacritty
|
||||||
set $menu rofi -show combi | xargs swaymsg exec --
|
set $menu rofi -show combi | xargs swaymsg exec --
|
||||||
|
|
||||||
# wallpaper
|
# wallpaper
|
||||||
@ -43,8 +43,10 @@ exec_always {
|
|||||||
|
|
||||||
# timeout
|
# timeout
|
||||||
exec swayidle -w \
|
exec swayidle -w \
|
||||||
timeout 300 'playerctl -a pause && swaylock' \
|
timeout 300 'playerctl -a pause' \
|
||||||
|
timeout 300 'swaylock' \
|
||||||
timeout 600 'swaymsg "output * dpms off"' \
|
timeout 600 'swaymsg "output * dpms off"' \
|
||||||
|
timeout 15 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' \
|
||||||
before-sleep 'playerctl -a pause' \
|
before-sleep 'playerctl -a pause' \
|
||||||
lock 'swaylock' \
|
lock 'swaylock' \
|
||||||
resume 'swaymsg "output * dpms on"'
|
resume 'swaymsg "output * dpms on"'
|
||||||
@ -60,8 +62,8 @@ bindsym Ctrl+Alt+l exec "playerctl -a pause; \
|
|||||||
|
|
||||||
### input configuration
|
### input configuration
|
||||||
|
|
||||||
# ibus
|
# fcitx5
|
||||||
exec --no-startup-id ibus-daemon -drxR
|
exec --no-startup-id fcitx5 -d
|
||||||
|
|
||||||
### key bindings
|
### key bindings
|
||||||
|
|
||||||
@ -218,9 +220,6 @@ bindsym XF86Search exec $menu
|
|||||||
# screenshot
|
# screenshot
|
||||||
bindsym Ctrl+Shift+p exec ~/scripts/screenshot
|
bindsym Ctrl+Shift+p exec ~/scripts/screenshot
|
||||||
|
|
||||||
# record screen
|
|
||||||
bindsym Ctrl+Alt+p exec ~/scripts/record-screen
|
|
||||||
|
|
||||||
### gaps
|
### gaps
|
||||||
gaps inner 25
|
gaps inner 25
|
||||||
# smart_gaps on
|
# smart_gaps on
|
||||||
@ -230,6 +229,9 @@ bindsym $mod+Shift+d border toggle
|
|||||||
bindsym $mod+m exec makoctl dismiss
|
bindsym $mod+m exec makoctl dismiss
|
||||||
bindsym $mod+n exec makoctl restore
|
bindsym $mod+n exec makoctl restore
|
||||||
|
|
||||||
|
# wayvnc
|
||||||
|
bindsym $mod+Shift+o exec wayvncctl output-cycle
|
||||||
|
|
||||||
### styles
|
### styles
|
||||||
|
|
||||||
# class border backgr text
|
# class border backgr text
|
||||||
@ -240,4 +242,38 @@ client.unfocused #222222 #222222 #AAAAAA
|
|||||||
# font
|
# font
|
||||||
font pango: IBMPlexMono Regular 10
|
font pango: IBMPlexMono Regular 10
|
||||||
|
|
||||||
|
input "5215:621:SINO_WEALTH_GXT_144_Gaming_Mouse" {
|
||||||
|
accel_profile "flat"
|
||||||
|
dwt disabled
|
||||||
|
left_handed disabled
|
||||||
|
pointer_accel -0.78
|
||||||
|
}
|
||||||
|
|
||||||
|
# wacom
|
||||||
|
input "1386:770:Wacom_Intuos_PT_S_Pen" {
|
||||||
|
accel_profile "flat"
|
||||||
|
pointer_accel 0
|
||||||
|
map_to_output "Goldstar Company Ltd LG IPS QHD 201NTPCGD520"
|
||||||
|
}
|
||||||
|
|
||||||
|
input "1386:770:Wacom_Intuos_PT_S_Finger" {
|
||||||
|
click_method clickfinger
|
||||||
|
drag enabled
|
||||||
|
scroll_method two_finger
|
||||||
|
tap enabled
|
||||||
|
accel_profile adaptive
|
||||||
|
}
|
||||||
|
|
||||||
|
input "1386:770:Wacom_Intuos_PT_S_Pad" {
|
||||||
|
click_method clickfinger
|
||||||
|
drag enabled
|
||||||
|
scroll_method two_finger
|
||||||
|
tap enabled
|
||||||
|
accel_profile adaptive
|
||||||
|
dwt enable
|
||||||
|
}
|
||||||
|
|
||||||
|
# sway-session.target
|
||||||
|
exec_always systemctl --user start sway-session.target
|
||||||
|
|
||||||
include /etc/sway/config.d/*
|
include /etc/sway/config.d/*
|
||||||
|
2
home/default/.config/wayvnc/config
Normal file
2
home/default/.config/wayvnc/config
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
address=localhost
|
||||||
|
enable_auth=false
|
4
home/default/.local/share/applications/defaults.list
Normal file
4
home/default/.local/share/applications/defaults.list
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
inode/directory=ranger.desktop
|
||||||
|
x-scheme-handler/steamvr=valve-URI-steamvr.desktop
|
||||||
|
application/x-vrmonitor=valve-vrmonitor.desktop
|
||||||
|
x-scheme-handler/vrmonitor=valve-URI-vrmonitor.desktop
|
@ -1,44 +1,32 @@
|
|||||||
# qt5ct
|
# qt5ct
|
||||||
export QT_QPA_PLATFORMTHEME=qt5ct
|
export QT_QPA_PLATFORMTHEME=qt5ct
|
||||||
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
export QT_AUTO_SCREEN_SCALE_FACTOR=1
|
||||||
|
export QT_STYLE_OVERRIDE=Adwaita-Dark
|
||||||
|
|
||||||
# waybar
|
# waybar
|
||||||
export XDG_CURRENT_DESKTOP=Unity
|
export XDG_CURRENT_DESKTOP=sway
|
||||||
|
|
||||||
# gtk
|
# gtk
|
||||||
export GTK_THEME=Materia:dark
|
export GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc
|
||||||
|
export GTK_THEME=Adwaita:dark
|
||||||
|
|
||||||
# ibus
|
# ibus
|
||||||
export GTK_IM_MODULE=ibus
|
export GTK_IM_MODULE=fcitx
|
||||||
export XMODIFIERS=@im=ibus
|
export XMODIFIERS=@im=fcitx
|
||||||
export QT_IM_MODULE=ibus
|
export QT_IM_MODULE=fcitx
|
||||||
|
|
||||||
# set neovim as default editor
|
# set neovim as default editor
|
||||||
export VISUAL=nvim
|
export VISUAL=nvim
|
||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
|
|
||||||
# dotnet
|
|
||||||
export MSBuildSDKsPath="/usr/share/dotnet/sdk/`dotnet --version`/Sdks/"
|
|
||||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
|
||||||
export PATH="/home/default/.dotnet/tools:$PATH"
|
|
||||||
|
|
||||||
# git
|
# git
|
||||||
export GIT_DISCOVERY_ACROSS_FILESYSTEM=true
|
export GIT_DISCOVERY_ACROSS_FILESYSTEM=true
|
||||||
|
|
||||||
## sway on nvidia
|
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
|
||||||
# General wayland environment variables
|
# General wayland environment variables
|
||||||
export XDG_SESSION_TYPE=wayland
|
export XDG_SESSION_TYPE=wayland
|
||||||
export QT_QPA_PLATFORM=wayland
|
export QT_QPA_PLATFORM=wayland
|
||||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
# export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
||||||
# Firefox wayland environment variable
|
# Firefox wayland environment variable
|
||||||
export MOZ_ENABLE_WAYLAND=1
|
export MOZ_ENABLE_WAYLAND=1
|
||||||
export MOZ_USE_XINPUT2=1
|
export MOZ_USE_XINPUT2=1
|
||||||
# OpenGL Variables
|
|
||||||
export GBM_BACKEND=nvidia-drm
|
|
||||||
export __GL_GSYNC_ALLOWED=0
|
|
||||||
export __GL_VRR_ALLOWED=0
|
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
||||||
# hardware acceleration
|
|
||||||
export VDPAU_DRIVER=nvidia
|
|
||||||
export LIBVA_DRIVER_NAME=vdpau
|
|
||||||
|
7
home/default/scripts/add-song
Executable file
7
home/default/scripts/add-song
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
echo "$1" | wget-titles-from-urls >> titles.txt
|
||||||
|
echo "$1" | youtube-audio
|
||||||
|
ls -Art | tail -n 1 | xargs -d '\n' kid3
|
||||||
|
standardize-music
|
@ -1,23 +0,0 @@
|
|||||||
#!/usr/bin/env sh
|
|
||||||
set -eou pipefail
|
|
||||||
|
|
||||||
# Old script to get json url for some reason? Don't know why I did this
|
|
||||||
# youtube-dl -j --flat-playlist -a - | \
|
|
||||||
# jq -r '.id' | \
|
|
||||||
# sed 's_^_https://youtu.be/_' | \
|
|
||||||
# wget-titles-from-urls >> titles.txt
|
|
||||||
|
|
||||||
test -f append.txt
|
|
||||||
if [[ $? -ne 0 ]]; then
|
|
||||||
echo No append.txt found! Cannot append
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! -s append.txt ]]; then
|
|
||||||
echo append.txt is empty
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat append.txt | wget-titles-from-urls >> titles.txt
|
|
||||||
cat append.txt | youtube-audio
|
|
||||||
> append.txt
|
|
@ -1,46 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Requires ffmpeg (audio splitting) and my `tag` wrapper script.
|
|
||||||
|
|
||||||
[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit
|
|
||||||
|
|
||||||
echo "Enter the album/book title:"; read -r booktitle
|
|
||||||
|
|
||||||
echo "Enter the artist/author:"; read -r author
|
|
||||||
|
|
||||||
echo "Enter the publication year:"; read -r year
|
|
||||||
|
|
||||||
inputaudio="$1"
|
|
||||||
|
|
||||||
# Get a safe file name from the book.
|
|
||||||
#escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
||||||
escbook="$(echo "$booktitle" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
||||||
|
|
||||||
! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && exit 1
|
|
||||||
|
|
||||||
# As long as the extension is in the tag script, it'll work.
|
|
||||||
ext="opus"
|
|
||||||
#ext="${1#*.}"
|
|
||||||
|
|
||||||
# Get the total number of tracks from the number of lines.
|
|
||||||
total="$(wc -l < "$2")"
|
|
||||||
|
|
||||||
while read -r x;
|
|
||||||
do
|
|
||||||
end="$(echo "$x" | cut -d' ' -f1)"
|
|
||||||
[ -n "$start" ] &&
|
|
||||||
echo "From $start to $end; $track $title"
|
|
||||||
file="$escbook/$(printf "%.2d" "$track") - $author - $esctitle.$ext"
|
|
||||||
[ -n "$start" ] && echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -to "$end" -vn "$file" &&
|
|
||||||
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
|
|
||||||
title="$(echo "$x" | cut -d' ' -f 2-)"
|
|
||||||
# esctitle="$(echo "$title" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
||||||
esctitle="$(echo "$title" | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
|
|
||||||
track="$((track+1))"
|
|
||||||
start="$end"
|
|
||||||
done < "$2"
|
|
||||||
# The last track must be done outside the loop.
|
|
||||||
echo "From $start to the end: $title"
|
|
||||||
file="$escbook/$track - $author - $esctitle.$ext"
|
|
||||||
echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -vn "$file" &&
|
|
||||||
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
|
|
0
home/default/scripts/del-macos-folders
Normal file → Executable file
0
home/default/scripts/del-macos-folders
Normal file → Executable file
@ -1,64 +1,8 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
set -ou pipefail
|
set -ou pipefail
|
||||||
|
|
||||||
# Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder
|
for dir in */; do
|
||||||
|
name=`echo "$dir" | sed 's/\/$//g'`
|
||||||
PLAYLIST_FOLDER="/home/default/Music/playlists/mpd" # Playlist folder for mpd
|
(cd $dir && echo "#EXTM3U" > "$name.m3u" && ls | grep -v -E '\.txt|\.m3u' >> "$name.m3u")
|
||||||
PREFIX="music/playlists" # relative links to add to playlists, based on mpd virtual file structure
|
|
||||||
EXTENSIONS=("mp3" "opus" "flac" "m4a" "mkv" "webm")
|
|
||||||
|
|
||||||
# Disable nullglob and set pattern matching to fix spaces
|
|
||||||
shopt -s nullglob
|
|
||||||
SAVEIFS=$IFS
|
|
||||||
IFS=$(echo -en "\n\b")
|
|
||||||
|
|
||||||
cd $PLAYLIST_FOLDER || { echo "Could not cd into PLAYLIST_FOLDER"; exit 1; }
|
|
||||||
parent=`basename $PWD`
|
|
||||||
|
|
||||||
# Delete old generated playlists
|
|
||||||
if [[ -f "*.gen.m3u" ]]; then
|
|
||||||
rm *.gen.m3u
|
|
||||||
fi
|
|
||||||
if [[ -f ".trackNames" ]]; then
|
|
||||||
rm .trackNames
|
|
||||||
fi
|
|
||||||
|
|
||||||
# For all playlist directories to generate
|
|
||||||
for playlistDir in ../*; do
|
|
||||||
if [[ -d "$playlistDir" ]] && [[ "$playlistDir" != "../$parent" ]]; then
|
|
||||||
# playlist filename needed for mpd
|
|
||||||
playlist=`echo "$playlistDir" | sed "s/^\.\.\///g"`
|
|
||||||
# escaped version of filename needed for bash
|
|
||||||
escaped=`printf '%q\n' "$playlist"`
|
|
||||||
|
|
||||||
# echo "playlist=$playlist"
|
|
||||||
# echo "escaped=$escaped"
|
|
||||||
|
|
||||||
# touch file
|
|
||||||
> "$playlist.gen.m3u"
|
|
||||||
|
|
||||||
# write all files with newlines
|
|
||||||
> .track-names
|
|
||||||
|
|
||||||
for EXT in ${EXTENSIONS[@]}; do
|
|
||||||
# echo `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c`
|
|
||||||
if [[ `find "../$playlist" -mindepth 1 -type f -name "*.$EXT" -printf x | wc -c` != 0 ]]; then
|
|
||||||
ls -1 ../$escaped/*.$EXT >> .track-names 2> /dev/null
|
|
||||||
# echo `ls -1 ../$playlist/*.$EXT >> 2> /dev/null`
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# echo `cat .track-names`
|
|
||||||
cat .track-names | while IFS="" read -r song || [ -n "$song" ] ; do
|
|
||||||
unprefixed=`echo "$song" | sed "s/^\.\.\///g"`
|
|
||||||
# echo "$PREFIX/$unprefixed"
|
|
||||||
echo "$PREFIX/$unprefixed" >> "$playlist.gen.m3u"
|
|
||||||
done < .track-names
|
|
||||||
|
|
||||||
if [[ -f ".track-names" ]]; then
|
|
||||||
rm .track-names
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
|
|
||||||
IFS=$SAVEIFS
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
git log --all --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative -n 20
|
|
@ -1,6 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
set -eou pipefail
|
set -eou pipefail
|
||||||
|
|
||||||
echo $(pacman -Qqn) $(pacman -Qqm) | \
|
sudo bash -c 'echo $(pacman -Qqe) | tr " " "\n" | sort > /packages.txt'
|
||||||
tr " " "\n" | \
|
|
||||||
sort
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
for i in *.mp3; do ffmpeg -i "$i" -c:a libopus "${i%.*}.opus"; done
|
|
||||||
trash *.mp3
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -eou pipefail
|
|
||||||
|
|
||||||
echo $(pacman -Qqn) $(pacman -Qqm) | \
|
|
||||||
tr " " "\n" | \
|
|
||||||
sort
|
|
7
home/default/scripts/prep-camera-photo
Executable file
7
home/default/scripts/prep-camera-photo
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set +eou pipefail
|
||||||
|
|
||||||
|
# Takes the latest photo from my camera stream and removes exif data from it
|
||||||
|
LATEST_PHOTO=$(ls -t1 /home/default/syncthing/camera/Camera | head -n 1)
|
||||||
|
cp "/home/default/syncthing/camera/Camera/${LATEST_PHOTO}" /home/default/Downloads/temp
|
||||||
|
cd /home/default/Downloads/temp && remove-exif
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Take a screenshot
|
# record video
|
||||||
dir=~/Downloads/temp
|
dir=~/Downloads/temp
|
||||||
(cd $dir && wf-recorder -g "$(slurp)")
|
(cd $dir && wf-recorder -g "$(slurp)" -a alsa_output.pci-0000_0b_00.4.analog-stereo.monitor --file=$(date +%Y-%m-%d_%H-%m-%s).mp4)
|
||||||
xdg-open $dir
|
xdg-open $dir
|
||||||
|
6
home/default/scripts/record-screen-no-audio
Executable file
6
home/default/scripts/record-screen-no-audio
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# record video
|
||||||
|
dir=~/Downloads/temp
|
||||||
|
(cd $dir && wf-recorder -g "$(slurp)" --file="$(date +%Y-%m-%d_%H-%m-%s).mp4")
|
||||||
|
xdg-open $dir
|
5
home/default/scripts/refresh-screens
Executable file
5
home/default/scripts/refresh-screens
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
swaymsg "output * dpms off" && \
|
||||||
|
swaymsg "output * dpms on"
|
@ -6,11 +6,17 @@ if [ $count != 0 ]; then
|
|||||||
rename JPG jpg *.JPG
|
rename JPG jpg *.JPG
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# rename .jpeg -> .jpg
|
||||||
|
count=`ls -1 *.jpeg 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
rename jpeg jpg *.jpeg
|
||||||
|
fi
|
||||||
|
|
||||||
# remove exif except orientation from .jpg
|
# remove exif except orientation from .jpg
|
||||||
count=`ls -1 *.jpg 2>/dev/null | wc -l`
|
count=`ls -1 *.jpg 2>/dev/null | wc -l`
|
||||||
if [ $count != 0 ]; then
|
if [ $count != 0 ]; then
|
||||||
for i in *.jpg; do
|
for i in *.jpg; do
|
||||||
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
|
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -24,7 +30,7 @@ fi
|
|||||||
count=`ls -1 *.png 2>/dev/null | wc -l`
|
count=`ls -1 *.png 2>/dev/null | wc -l`
|
||||||
if [ $count != 0 ]; then
|
if [ $count != 0 ]; then
|
||||||
for i in *.png; do
|
for i in *.png; do
|
||||||
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
|
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -euo pipefail
|
set -euox pipefail
|
||||||
|
|
||||||
|
pkill -f blueman-manager || true
|
||||||
|
|
||||||
echo stopping bluetooth-autoconnect...
|
|
||||||
sudo systemctl stop bluetooth-autoconnect
|
|
||||||
echo stopping bluetooth...
|
echo stopping bluetooth...
|
||||||
sudo systemctl stop bluetooth
|
sudo systemctl stop bluetooth
|
||||||
|
sudo modprobe -r btusb
|
||||||
|
|
||||||
echo starting bluetooth...
|
echo starting bluetooth...
|
||||||
|
sudo modprobe btusb
|
||||||
sudo systemctl start bluetooth
|
sudo systemctl start bluetooth
|
||||||
echo starting bluetooth-autoconnect...
|
sudo rfkill unblock bluetooth
|
||||||
sudo systemctl start bluetooth-autoconnect
|
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
echo "Stopping firewall and allowing everyone..."
|
|
||||||
ipt="/usr/bin/iptables"
|
|
||||||
## Failsafe - die if /sbin/iptables not found
|
|
||||||
[ ! -x "$ipt" ] && { echo "$0: \"${ipt}\" command not found."; exit 1; }
|
|
||||||
$ipt -P INPUT ACCEPT
|
|
||||||
$ipt -P FORWARD ACCEPT
|
|
||||||
$ipt -P OUTPUT ACCEPT
|
|
||||||
$ipt -F
|
|
||||||
$ipt -X
|
|
||||||
$ipt -t nat -F
|
|
||||||
$ipt -t nat -X
|
|
||||||
$ipt -t mangle -F
|
|
||||||
$ipt -t mangle -X
|
|
||||||
$ipt iptables -t raw -F
|
|
||||||
$ipt -t raw -X
|
|
@ -1,4 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
cat input.txt | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-
|
|
53
home/default/scripts/standardize-music
Executable file
53
home/default/scripts/standardize-music
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -ou pipefail
|
||||||
|
|
||||||
|
count=`ls -1 *.OGG 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
rename OGG ogg *.OGG
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.ogg 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
for i in *.ogg; do
|
||||||
|
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.WEBM 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
rename WEBM webm *.WEBM
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.webm 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
for i in *.webm; do
|
||||||
|
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.OPUS 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
rename OPUS opus *.OPUS
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.opus 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
for i in *.opus; do
|
||||||
|
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.M4A 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
rename M4A m4a *.M4A
|
||||||
|
fi
|
||||||
|
|
||||||
|
count=`ls -1 *.m4a 2>/dev/null | wc -l`
|
||||||
|
if [ $count != 0 ]; then
|
||||||
|
for i in *.m4a; do
|
||||||
|
ffmpeg -y -i "$i" -map_metadata 0:s:a:0 "${i%.*}.mp3" && rm "$i"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
shopt -s nullglob
|
||||||
|
rsgain custom --skip-existing --lowercase --tagmode=i *.mp3 *.flac
|
21
home/default/scripts/sync-car
Executable file
21
home/default/scripts/sync-car
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
sudo mkdir -p /run/media/default
|
||||||
|
|
||||||
|
echo "mounting /run/media/default/MUSIC"
|
||||||
|
sudo fsck -fy /dev/disk/by-uuid/E6F8-C183 || true
|
||||||
|
sudo mkdir /run/media/default/MUSIC || true
|
||||||
|
sudo mount -U E6F8-C183 /run/media/default/MUSIC
|
||||||
|
|
||||||
|
echo "syncing music..."
|
||||||
|
sudo rsync --info=progress2 -W -r --delete /home/default/Music/* /run/media/default/MUSIC/
|
||||||
|
sudo sync /run/media/default/MUSIC/
|
||||||
|
|
||||||
|
cd /run/media/default/MUSIC
|
||||||
|
sudo /home/default/scripts/generate-playlists
|
||||||
|
cd /home/default
|
||||||
|
|
||||||
|
echo "unmounting /run/media/default/MUSIC"
|
||||||
|
sudo umount /dev/disk/by-uuid/E6F8-C183
|
||||||
|
sudo rmdir /run/media/default/MUSIC
|
21
home/default/scripts/sync-mp3-player
Executable file
21
home/default/scripts/sync-mp3-player
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
sudo mkdir -p /run/media/default
|
||||||
|
|
||||||
|
echo "mounting /run/media/default/MUSIC"
|
||||||
|
sudo fsck -fy /dev/disk/by-uuid/4619-9B49 || true
|
||||||
|
sudo mkdir -p /run/media/default/MUSIC || true
|
||||||
|
sudo mount -U 4619-9B49 /run/media/default/MUSIC
|
||||||
|
|
||||||
|
echo "syncing music..."
|
||||||
|
sudo rsync --info=progress2 -W -r --delete /home/default/Music/* /run/media/default/MUSIC/
|
||||||
|
sudo sync /run/media/default/MUSIC/
|
||||||
|
|
||||||
|
cd /run/media/default/MUSIC
|
||||||
|
sudo /home/default/scripts/generate-playlists
|
||||||
|
cd /home/default
|
||||||
|
|
||||||
|
echo "unmounting /run/media/default/MUSIC"
|
||||||
|
sudo umount /run/media/default/MUSIC
|
||||||
|
sudo rmdir /run/media/default/MUSIC
|
4
home/default/scripts/syncthing-rm-conflicts
Executable file
4
home/default/scripts/syncthing-rm-conflicts
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
find ~/syncthing/ -type f -name "*.sync-conflict*" -exec rm {} \;
|
9
home/default/scripts/syncthing-rm-stversions
Executable file
9
home/default/scripts/syncthing-rm-stversions
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if compgen -G "/home/default/syncthing/*/.stversions/*" > /dev/null; then
|
||||||
|
rm -rf /home/default/syncthing/*/.stversions/*
|
||||||
|
echo "deleted all .stversions"
|
||||||
|
else
|
||||||
|
echo "no .stversions to remove"
|
||||||
|
fi
|
5
home/default/scripts/system-download
Normal file
5
home/default/scripts/system-download
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eou pipefail
|
||||||
|
|
||||||
|
system-update-mirrors
|
||||||
|
pacman -Syuw --noconfirm
|
8
home/default/scripts/system-free-space
Executable file
8
home/default/scripts/system-free-space
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -eoux pipefail
|
||||||
|
|
||||||
|
rm -rf ~/.cache
|
||||||
|
sudo rm -rf /var/cache/pacman/pkg/*
|
||||||
|
yay -Sc --noconfirm
|
||||||
|
sudo pacman -Sc --noconfirm
|
||||||
|
sudo journalctl --vacuum-size=1G
|
6
home/default/scripts/system-update
Executable file
6
home/default/scripts/system-update
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -eoux pipefail
|
||||||
|
|
||||||
|
system-free-space
|
||||||
|
yay --noconfirm -Syu --overwrite \*
|
||||||
|
system-free-space
|
4
home/default/scripts/system-update-mirrors
Executable file
4
home/default/scripts/system-update-mirrors
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -eoux pipefail
|
||||||
|
|
||||||
|
rate-mirrors arch | sudo tee /etc/pacman.d/mirrorlist
|
@ -1,59 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
err() { echo "Usage:
|
|
||||||
tag [OPTIONS] file
|
|
||||||
Options:
|
|
||||||
-a: artist/author
|
|
||||||
-t: song/chapter title
|
|
||||||
-A: album/book title
|
|
||||||
-n: track/chapter number
|
|
||||||
-N: total number of tracks/chapters
|
|
||||||
-d: year of publication
|
|
||||||
-g: genre
|
|
||||||
-c: comment
|
|
||||||
You will be prompted for title, artist, album and track if not given." && exit 1 ;}
|
|
||||||
|
|
||||||
while getopts "a:t:A:n:N:d:g:c:f:" o; do case "${o}" in
|
|
||||||
a) artist="${OPTARG}" ;;
|
|
||||||
t) title="${OPTARG}" ;;
|
|
||||||
A) album="${OPTARG}" ;;
|
|
||||||
n) track="${OPTARG}" ;;
|
|
||||||
N) total="${OPTARG}" ;;
|
|
||||||
d) date="${OPTARG}" ;;
|
|
||||||
g) genre="${OPTARG}" ;;
|
|
||||||
c) comment="${OPTARG}" ;;
|
|
||||||
f) file="${OPTARG}" ;;
|
|
||||||
*) printf "Invalid option: -%s\\n" "$OPTARG" && err ;;
|
|
||||||
esac done
|
|
||||||
|
|
||||||
shift $((OPTIND - 1))
|
|
||||||
|
|
||||||
file="$1"
|
|
||||||
|
|
||||||
[ ! -f "$file" ] && echo "Provide file to tag." && err
|
|
||||||
|
|
||||||
[ -z "$title" ] && echo "Enter a title." && read -r title
|
|
||||||
[ -z "$artist" ] && echo "Enter an artist." && read -r artist
|
|
||||||
[ -z "$album" ] && echo "Enter an album." && read -r album
|
|
||||||
[ -z "$track" ] && echo "Enter a track number." && read -r track
|
|
||||||
|
|
||||||
case "$file" in
|
|
||||||
*.ogg) echo "Title=$title
|
|
||||||
Artist=$artist
|
|
||||||
Album=$album
|
|
||||||
Track=$track
|
|
||||||
Total=$total
|
|
||||||
Date=$date
|
|
||||||
Genre=$genre
|
|
||||||
Comment=$comment" | vorbiscomment -w "$file" ;;
|
|
||||||
*.opus) echo "Title=$title
|
|
||||||
Artist=$artist
|
|
||||||
Album=$album
|
|
||||||
Track=$track
|
|
||||||
Total=$total
|
|
||||||
Date=$date
|
|
||||||
Genre=$genre
|
|
||||||
Comment=$comment" | opustags -i -S "$file" ;;
|
|
||||||
*.mp3) eyeD3 -Q --remove-all -a "$artist" -A "$album" -t "$title" -n "$track" -N "$total" -Y "$date" "$file" ;;
|
|
||||||
*) echo "File type not implemented yet." ;;
|
|
||||||
esac
|
|
@ -1,6 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -eoux pipefail
|
|
||||||
|
|
||||||
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
|
|
||||||
sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup
|
|
||||||
rankmirrors -n 20 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist
|
|
@ -1,8 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
set -eoux pipefail
|
|
||||||
|
|
||||||
yay -Syu \
|
|
||||||
--ignore=linux \
|
|
||||||
--ignore=linux-headers \
|
|
||||||
--ignore=zfs-linux \
|
|
||||||
--ignore=zfs-linux-headers
|
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# --embed-thumbnail \
|
# --embed-thumbnail \
|
||||||
# --audio-format opus \
|
# --audio-format opus \
|
||||||
youtube-dl \
|
yt-dlp \
|
||||||
--ignore-errors \
|
--ignore-errors \
|
||||||
-f bestaudio \
|
-f bestaudio \
|
||||||
--rm-cache-dir \
|
--rm-cache-dir \
|
||||||
|
1960
packages.txt
1960
packages.txt
File diff suppressed because it is too large
Load Diff
@ -28,7 +28,7 @@ please let me know if i've forgotten one!
|
|||||||
- waybar (topbar)
|
- waybar (topbar)
|
||||||
- swayidle (idle daemon)
|
- swayidle (idle daemon)
|
||||||
- swaylock (lockscreen)
|
- swaylock (lockscreen)
|
||||||
- kitty (terminal)
|
- alacritty (terminal)
|
||||||
- ranger (file browser)
|
- ranger (file browser)
|
||||||
- rofi (launcher)
|
- rofi (launcher)
|
||||||
- mako (notification daemon)
|
- mako (notification daemon)
|
||||||
@ -39,7 +39,7 @@ please let me know if i've forgotten one!
|
|||||||
- playerctl (music controller)
|
- playerctl (music controller)
|
||||||
- materia-dark (gtk theme)
|
- materia-dark (gtk theme)
|
||||||
- papirus-dark (icon theme)
|
- papirus-dark (icon theme)
|
||||||
- ibus (intl. keyboard input)
|
- fcitx5 (intl. keyboard input)
|
||||||
- grim (screenshots on wayland)
|
- grim (screenshots on wayland)
|
||||||
- wf-recorder (screen recorder on wayland)
|
- wf-recorder (screen recorder on wayland)
|
||||||
- slurp (to select region in wayland)
|
- slurp (to select region in wayland)
|
||||||
|
Reference in New Issue
Block a user