Compare commits

..

108 Commits

Author SHA1 Message Date
33a73e4bf6 fix music scripts 2025-05-05 09:23:23 -04:00
70bac5be34 add gaming mouse 2024-12-02 14:09:18 -05:00
59f0106d5e tweak song script 2024-12-02 14:09:18 -05:00
777b011479 update monitor config 2024-11-29 22:15:33 -05:00
acab78d596 add new changes 2024-11-02 15:38:28 -04:00
a30bef3b29 improve scripts 2024-11-02 15:38:09 -04:00
ec66d63089 update packages 2024-09-21 15:56:51 -04:00
1739580bb2 improve replaygain tagging 2024-09-21 15:56:51 -04:00
1244faa0e9 add replaygain tagger 2024-09-21 15:56:51 -04:00
85823dc511 update fcitx5 config 2024-09-21 15:56:51 -04:00
2d16fe1338 improve scripts 2024-09-21 15:56:51 -04:00
b555b50451 improve sway locking 2024-09-21 15:56:51 -04:00
42278169d5 improve scripts 2024-09-21 15:56:51 -04:00
50087596d0 update fcitx5 config 2024-05-22 15:49:32 -04:00
6a91454943 use dark mode for qt5 and 6 2024-05-22 15:48:58 -04:00
8bcf1a838f update packages 2024-05-22 15:43:29 -04:00
0460efb2e5 add neovim settings 2024-05-22 15:40:44 -04:00
dcf6c34fec improve scripts 2024-05-08 14:25:20 -04:00
fee028a501 add sudoers 2024-05-08 14:24:25 -04:00
3b2b41703f update packages 2024-05-08 14:24:25 -04:00
e56e0e41d2 add bootloader entries 2024-05-08 14:24:25 -04:00
c92d6e43f5 switch to alacritty to fix lag bug for now 2024-05-08 14:24:25 -04:00
262e95e42e remove some unused scripts 2024-05-02 22:41:20 -04:00
1f800423ec improve bluetooth restart script 2024-05-02 22:41:20 -04:00
6a242b158e add standardize-music script 2024-05-02 22:41:20 -04:00
09fea918af use yt-dlp 2024-03-22 16:22:38 -04:00
91ed57b89f improve wayvnc integration 2024-03-22 16:22:21 -04:00
def626a207 fix media kanshi config 2024-03-01 18:51:37 -05:00
6529a5f7f2 remove more packages 2024-01-21 12:00:06 -05:00
6003c3df32 update packages 2024-01-21 11:41:54 -05:00
1738913e09 remove broken screen record script 2024-01-21 11:41:39 -05:00
443d10db43 update pinyin config 2024-01-21 11:40:36 -05:00
157509fdba remove pipewire-media-session 2024-01-21 11:40:04 -05:00
73489aa090 update scripts 2023-11-15 11:19:51 -05:00
42e10464b9 update package list 2023-11-15 11:19:51 -05:00
30371a5b94 modify configs 2023-11-15 11:19:51 -05:00
b8d70b202f use parallel downloads 2023-10-30 14:50:56 -04:00
c9442f04b3 add syncthing conflict script 2023-10-30 14:04:10 -04:00
c14f0357ab update pacman scripts 2023-10-30 13:18:00 -04:00
490f2f3eb8 update scripts 2023-10-16 09:24:46 -04:00
2015ad637c update packages 2023-10-16 09:23:21 -04:00
446893f232 adjust kanshi 2023-10-15 15:02:22 -04:00
80b1cc73a8 totally restart bluetooth 2023-10-15 15:01:14 -04:00
b1807eb72b update packages 2023-09-04 09:59:36 -04:00
1561926840 add steamvr defaults 2023-06-07 22:58:33 -04:00
32338dff76 set sway as current desktop 2023-06-07 22:58:33 -04:00
209860b3ed remove community repo 2023-06-07 22:58:28 -04:00
05da2bb9a4 add printer stuff 2023-05-17 13:15:39 -04:00
16343fc8cb add wayvnc and sway-session.target 2023-05-05 22:47:56 -04:00
462ff99b9a add cheese 2023-05-05 07:22:04 -04:00
b94ba8d94c use fcitx5 2023-04-19 22:38:43 -04:00
79c02ee730 update package list 2023-04-02 15:22:57 -04:00
f3a766c0d0 remove unused packages 2023-03-15 21:51:25 -04:00
44d5c75c31 remove nvidia hook 2023-03-13 18:39:45 -04:00
400b7fdb8f remove unused script 2023-03-13 18:38:08 -04:00
54b4f67a2a remove duplicate script 2023-03-13 18:36:54 -04:00
440d420adb remove quassel 2023-03-13 18:32:02 -04:00
a539bcd743 remove alacritty config 2023-03-13 18:30:07 -04:00
c40f6216d4 update kanshi 2023-03-13 18:25:35 -04:00
fb3c67693c update package list 2023-03-13 18:25:35 -04:00
86447da7e2 add xdg-utils defaults list 2023-01-13 20:50:04 -05:00
a1ee37e168 set swappiness to 5 2022-12-25 11:14:10 -05:00
cef71f461e remove nvidia env vars 2022-12-23 20:30:26 -05:00
bc0414010c remove nvidia from boot modules 2022-12-12 17:40:47 -05:00
2c9c5b490c add tv 2022-10-19 09:41:09 -04:00
d9941f5f9b update screen recording commands 2022-08-25 15:08:54 -04:00
02edcf2d48 fix update-nonsystem 2022-08-25 15:04:27 -04:00
cb8808ac0a add ranger config 2022-08-16 16:02:21 -04:00
b6c34a620e add config for wacom tablet 2022-08-07 18:46:51 -04:00
fa5c85f728 disable flickering fix for performance 2022-08-07 14:23:49 -04:00
0070dbb3a0 update kanshi config for new monitor 2022-08-07 14:22:59 -04:00
6b6202a7f8 switch to nvidia drivers 2022-07-25 10:40:22 -04:00
098be21c2b remove deluge 2022-05-11 13:57:43 -04:00
13cd0e7fac fix generate playlists 2022-03-31 10:07:45 -04:00
54ee85d052 remove mpd in restart music script 2022-03-22 21:08:59 -04:00
c367c670e4 remove old scripts 2022-03-22 19:14:34 -04:00
23d7932d68 fix zfs-linux-lts repo 2022-03-22 19:10:16 -04:00
628df06afc close with background processes 2022-03-01 12:34:27 -05:00
2ec84fef83 fix screenshot script 2022-03-01 10:57:22 -05:00
51c6ddb1d0 use kitty 2022-03-01 10:57:09 -05:00
716a061350 add package list 2022-02-14 00:07:24 -05:00
7655048b2c add home kanshi config 2022-02-13 22:09:36 -05:00
c2a557a89c tweak waybar 2022-02-10 16:25:33 -05:00
24bfa8c4fc tweak youtube-archive 2022-02-03 11:20:43 -05:00
d3625a1a15 add git discovery to profile 2022-01-31 14:46:40 -05:00
fd21b8de5e use hkps for keyservers 2022-01-31 14:41:56 -05:00
04bd25a8e4 add mkinitcpio for luks 2022-01-31 14:41:45 -05:00
bb8d707a09 update alacritty config 2022-01-31 14:36:14 -05:00
9ba5500e54 fix readme 2022-01-25 23:22:12 -05:00
82b5bfdb14 remove stock mkinitcpio.conf 2022-01-25 23:18:05 -05:00
03767483e3 change port 2022-01-25 23:17:20 -05:00
f0dd42818d use gnome-polkit 2022-01-20 22:00:56 -05:00
1e68f959a2 tweak restart scripts 2022-01-19 12:31:54 -05:00
6644bddb74 add mpv config 2022-01-17 10:13:11 -05:00
d3ec941faa add custom quassel text fix 2022-01-14 20:03:37 -05:00
c717712f1a add border command to sway 2022-01-13 13:34:59 -05:00
23e37329c6 move env vars to .profile 2022-01-13 13:34:46 -05:00
5d47047ccf add .profile 2022-01-13 11:51:57 -05:00
24543c05ed untrack bootloader entries 2022-01-11 17:07:51 -05:00
2e833c3558 switch to ibus 2022-01-11 17:07:51 -05:00
6815d828fe add bluetooth applet 2022-01-10 10:08:26 -05:00
30e32f41fe add secret scripts folder to path 2022-01-07 22:26:55 -05:00
81dd721a6f add mkinitcpio config 2021-12-12 17:46:47 -05:00
93df1dae0d add systemd-boot entries 2021-12-12 17:46:36 -05:00
e1f62561c5 add screen recorder script 2021-11-29 13:02:12 -05:00
f89b2838ba fix pipefail 2021-11-29 12:59:03 -05:00
da2c2e8a33 use absolute paths 2021-11-28 13:09:36 -05:00
54e44982c5 don't make lock command reliant on playerctl 2021-11-28 13:09:10 -05:00
69 changed files with 1456 additions and 421 deletions

View 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
View 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

66
etc/mkinitcpio.conf Normal file
View File

@@ -0,0 +1,66 @@
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=()
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=()
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS=(base udev systemd autodetect keyboard sd-vconsole modconf block sd-encrypt lvm2 filesystems resume fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()

109
etc/pacman.conf Normal file
View File

@@ -0,0 +1,109 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
ParallelDownloads = 20
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
ILoveCandy
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
# [archzfs]
# Server = http://archzfs.com/$repo/x86_64
# Server = http://mirror.sum7.eu/archlinux/archzfs/$repo/x86_64
# Server = https://mirror.biocrafting.net/archlinux/archzfs/$repo/x86_64
# Server = https://mirror.in.themindsmaze.com/archzfs/$repo/x86_64
# [zfs-linux-lts]
# Server = http://kernels.archzfs.com/$repo/
#[testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

View File

@@ -0,0 +1,7 @@
no-greeting
no-permission-warning
#keyserver-options timeout=10
keyserver hkps://hkps.pool.sks-keyservers.net:443
#keyserver hkp://pgp.mit.edu:11371
#keyserver hkp://keyserver.ubuntu.com
keyserver hkps://keyserver.ubuntu.com

View File

@@ -10,7 +10,7 @@
# possible, but leave them commented. Uncommented options override the
# default value.
Port 22
Port 8889
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

1
etc/ssh/sshrc Normal file
View File

@@ -0,0 +1 @@
/home/default/syncthing/default/scripts/login-notify

136
etc/sudoers Normal file
View 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

View File

@@ -0,0 +1 @@
vm.swappiness=5

View 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

25
home/default/.bashrc Normal file → Executable file
View File

@@ -1,29 +1,14 @@
# if not running interactively, don't do anything
[[ $- != *i* ]] && return
# hidpi potential fix
export QT_AUTO_SCREEN_SCALE_FACTOR=1
# for waybar
export XDG_CURRENT_DESKTOP=Unity
# dark gtk themes
export GTK_THEME=Materia:dark
# set neovim as default editor
export VISUAL=nvim
export EDITOR=nvim
# add environment vars
. ~/.profile
# add scripts folder to path
export PATH="~/scripts:$PATH"
export PATH="/home/default/scripts:$PATH"
# dotnet
export MSBuildSDKsPath="/usr/share/dotnet/sdk/`dotnet --version`/Sdks/"
export DOTNET_CLI_TELEMETRY_OPTOUT=1
export PATH="~/.dotnet/tools:$PATH"
# fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
# add secret scripts folder to path
export PATH="/home/default/syncthing/default/scripts:$PATH"
# aliases
alias v=nvim

View File

@@ -0,0 +1,3 @@
[window]
opacity=0.85
decorations="None"

View File

@@ -1 +0,0 @@
background_opacity: 0.85

View 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

View 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

View 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

View 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

View File

@@ -1,8 +1,4 @@
profile {
output eDP-1 scale 2.00 position 0,540 mode 3200x1800
output "Acer Technologies G257HU T1WAA0012432" scale 1.00 position 1600,0 mode 2560x1440
}
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 "LG Electronics LG IPS QHD 309NTABDW064" enable scale 1.30 position 1974,0 mode 2560x1440@75Hz
}

View File

@@ -0,0 +1,21 @@
globinclude kitty.d/**/*.conf
font_family monospace
bold_font auto
italic_font auto
bold_italic_font auto
cursor_shape block
detect_urls yes
open_url_with default
url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh ipfs xmpp
background #222222
background_opacity 0.85
allow_hyperlinks yes
shell_integration enabled
shell_integration no-cursor
wayland_titlebar_color system
linux_display_server wayland
close_on_child_death yes

View File

@@ -1,6 +1,21 @@
font=IBMPlexMono 10
sort=-time
layer=overlay
background-color=#222222
width=500
height=120
border-size=1
border-color=#333333
anchor=top-right
default-timeout=6000
width=350
border-radius=3
icons=0
font=IBMPlexMono 11
default-timeout=0
padding=10
[urgency=low]
border-color=#333333
[urgency=normal]
border-color=#555555
[urgency=high]
border-color=#aaaaaa

View File

@@ -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
#}

View File

@@ -0,0 +1,103 @@
# use gui
player-operation-mode=pseudo-gui
##################
# video settings #
##################
# force starting with centered window
geometry=50%:50%
# don't allow a new window to have a size larger than 90% of the screen size
autofit-larger=90%x90%
# Specify high quality video rendering preset (for --vo=gpu only)
# Can cause performance problems with some drivers and GPUs.
# profile=gpu-hq
# scale=ewa_lanczossharp
# cscale=ewa_lanczossharp
# video-sync=display-resample
interpolation
tscale=oversample
# Enable hardware decoding if available. Often, this does not work with all
# video outputs, but should work well with default settings on most systems.
# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs
# may or may not help.
# vo=xv
#hwdec=auto
##################
# audio settings #
##################
volume-max=250
# Specify default audio device. You can list devices with: --audio-device=help
# The option takes the device string (the stuff between the '...').
#audio-device=alsa/default
# Do not filter audio to keep pitch when changing playback speed.
# audio-pitch-correction=no
# Output 5.1 audio natively, and upmix/downmix audio with a different format.
#audio-channels=5.1
# Disable any automatic remix, _if_ the audio output accepts the audio format.
# of the currently played file. See caveats mentioned in the manpage.
# (The default is "auto-safe", see manpage.)
#audio-channels=auto
##################
# other settings #
##################
screenshot-directory=/home/default/Downloads/temp
# Don't close after finishing media
keep-open
# Pretend to be a web browser. Might fix playback with some streaming sites,
# but also will break with shoutcast streams.
#user-agent="Mozilla/5.0"
# cache settings
#
# Use 150MB input cache by default. The cache is enabled for network streams only.
#cache-default=153600
#
# Use 150MB input cache for everything, even local files.
#cache=153600
#
# Disable the behavior that the player will pause if the cache goes below a
# certain fill size.
#cache-pause=no
#
# Read ahead about 5 seconds of audio and video packets.
# demuxer-readahead-secs=5.0
#
# Raise readahead from demuxer-readahead-secs to this value if a cache is active.
# cache-secs=50.0
slang=jp,jpn,en,eng
alang=jp,jpn,en,eng
# Change subtitle encoding. For Arabic subtitles use 'cp1256'.
# If the file seems to be valid UTF-8, prefer UTF-8.
# (You can add '+' in front of the codepage to force it.)
#sub-codepage=cp1256
# You can also include other configuration files.
#include=/path/to/the/file/you/want/to/include
############
# Profiles #
############
# The options declared as part of profiles override global default settings,
# but only take effect when the profile is active.
# The following profile can be enabled on the command line with: --profile=eye-cancer
#[eye-cancer]
#sharpen=5

View File

@@ -0,0 +1,3 @@
" set default vim register to normal clipboard
set clipboard+=unnamedplus
colorscheme vim

View File

@@ -0,0 +1,3 @@
set preview_images true
set preview_images_method ueberzug
map DD shell trash %s

View File

@@ -24,10 +24,11 @@ exec --no-startup-id mako
exec --no-startup-id kanshi
# polkit
exec --no-startup-id lxpolkit
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# wifi applet
# applets
exec nm-applet --indicator
exec blueman-tray
### gtk settings
@@ -42,25 +43,27 @@ exec_always {
# timeout
exec swayidle -w \
timeout 300 'playerctl -a pause && swaylock' \
timeout 300 'playerctl -a pause' \
timeout 300 'swaylock' \
timeout 600 'swaymsg "output * dpms off"' \
timeout 15 'if pgrep -x swaylock; then swaymsg "output * dpms off"; fi' \
before-sleep 'playerctl -a pause' \
lock 'swaylock' \
resume 'swaymsg "output * dpms on"'
# screen lock
bindsym Ctrl+Shift+l exec playerctl -a pause && \
bindsym Ctrl+Shift+l exec "playerctl -a pause; \
systemctl suspend && \
swaylock
swaylock"
# screen lock
bindsym Ctrl+Alt+l exec playerctl -a pause && \
bindsym Ctrl+Alt+l exec "playerctl -a pause; \
swaylock
### input configuration
# fcitx
exec --no-startup-id fcitx -d
# fcitx5
exec --no-startup-id fcitx5 -d
### key bindings
@@ -220,11 +223,15 @@ bindsym Ctrl+Shift+p exec ~/scripts/screenshot
### gaps
gaps inner 25
# smart_gaps on
bindsym $mod+Shift+d border toggle
# notifications
bindsym $mod+m exec makoctl dismiss
bindsym $mod+n exec makoctl restore
# wayvnc
bindsym $mod+Shift+o exec wayvncctl output-cycle
### styles
# class border backgr text
@@ -235,4 +242,38 @@ client.unfocused #222222 #222222 #AAAAAA
# font
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/*

View File

@@ -6,7 +6,7 @@
// Choose the order of the modules
"modules-left": ["sway/workspaces", "sway/mode", "custom/media"],
"modules-center": [],
"modules-right": ["mpd", "idle_inhibitor", "pulseaudio", "network", "cpu", "battery", "clock", "tray"],
"modules-right": ["idle_inhibitor", "pulseaudio", "bluetooth", "network", "cpu", "memory", "temperature", "battery", "clock", "tray"],
"sway/workspaces": {
"disable-scroll-wraparound": true
},

View File

@@ -0,0 +1,2 @@
address=localhost
enable_auth=false

View 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

32
home/default/.profile Normal file
View File

@@ -0,0 +1,32 @@
# qt5ct
export QT_QPA_PLATFORMTHEME=qt5ct
export QT_AUTO_SCREEN_SCALE_FACTOR=1
export QT_STYLE_OVERRIDE=Adwaita-Dark
# waybar
export XDG_CURRENT_DESKTOP=sway
# gtk
export GTK2_RC_FILES=/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc
export GTK_THEME=Adwaita:dark
# ibus
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export QT_IM_MODULE=fcitx
# set neovim as default editor
export VISUAL=nvim
export EDITOR=nvim
# git
export GIT_DISCOVERY_ACROSS_FILESYSTEM=true
# General wayland environment variables
export XDG_SESSION_TYPE=wayland
export QT_QPA_PLATFORM=wayland
# export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# Firefox wayland environment variable
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1

1
home/default/.xprofile Symbolic link
View File

@@ -0,0 +1 @@
/home/default/.profile

7
home/default/scripts/add-song Executable file
View 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

View File

@@ -1,23 +0,0 @@
#!/usr/bin/env sh
set pipefail -eou
# 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

View File

@@ -1,40 +0,0 @@
#!/usr/bin/env bash
set -uo pipefail #set -e causes errors since most playlist will throw errors
PARENT='/run/media/default/backup'
# audio
PARENT_AUDIO="$PARENT/audio"
(cd "$PARENT_AUDIO/anjunadeep" && echo https://www.youtube.com/playlist?list=UUbDgBFAketcO26wz-pR6OKA | youtube-archive-audio)
(cd "$PARENT_AUDIO/eeuphonious" && echo https://www.youtube.com/playlist?list=UUaHM7hKCwJ_eR-dP3c7PKHw | youtube-archive-audio)
(cd "$PARENT_AUDIO/trianglemusic" && echo https://www.youtube.com/playlist?list=UUDBdeEaSnlu-AU-ITBTRkeQ | youtube-archive-audio)
(cd "$PARENT_AUDIO/ikiru" && echo https://www.youtube.com/playlist?list=UUVg1vfzDjkT9T_F-PZGC5Mw | youtube-archive-audio)
# video
PARENT_VIDEO="$PARENT/youtube"
(cd "$PARENT_VIDEO/yotsu" && echo https://www.youtube.com/playlist?list=UU0FplT88irKbHeZucDiFplw | youtube-archive)
(cd "$PARENT_VIDEO/jeb-gardener" && echo https://www.youtube.com/playlist?list=UU5zdi4KM3ewwfYMNo_KnU0A | youtube-archive)
(cd "$PARENT_VIDEO/vagrant-holiday" && echo https://www.youtube.com/channel/UCgNqlRGqHdxNRPR6ycynWhw | youtube-archive)
(cd "$PARENT_VIDEO/fredrik-knudsen" && echo https://www.youtube.com/channel/UCbWcXB0PoqOsAvAdfzWMf0w | youtube-archive)
(cd "$PARENT_VIDEO/internet-historian" && echo https://www.youtube.com/channel/UCR1D15p_vdP3HkrH8wgjQRw | youtube-archive)
(cd "$PARENT_VIDEO/breadsword" && echo https://www.youtube.com/channel/UCcScIr2iskFm-zRo8FZ7cRw | youtube-archive)
#(cd "$PARENT_VIDEO/" && echo | youtube-archive)
# git
PARENT_GIT="$PARENT/git"
(cd "$PARENT_GIT/deluge" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/calibre" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/hydrus" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/kdeconnect-kde" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/keepassxc" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/liferea" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/mpd" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/mpv" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/quassel" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/syncthing" && git remote update && git fetch --all && git reset --hard origin/main)
(cd "$PARENT_GIT/syncthing-android" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/trackma" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/bibanon" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/deemix" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/deemix-pyweb" && git remote update && git fetch --all && git reset --hard origin/master)
(cd "$PARENT_GIT/deemix-webui" && git remote update && git fetch --all && git reset --hard origin/master)

View File

@@ -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
View File

View File

@@ -1,68 +0,0 @@
#!/usr/bin/env sh
set -ou pipefail
# Generates playlists for all mp3 and flac files in a directory, ignoring itself in the "parent" folder
PLAYLIST_FOLDER="/home/default/Music/playlists/mpd" # Playlist folder for mpd
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
# Use mpc to update mpd database
update-mpd > /dev/null
restart-music
IFS=$SAVEIFS

View File

@@ -0,0 +1,8 @@
#!/usr/bin/env sh
set -ou pipefail
for dir in */; do
name=`echo "$dir" | sed 's/\/$//g'`
(cd $dir && echo "#EXTM3U" > "$name.m3u" && ls | grep -v -E '\.txt|\.m3u' >> "$name.m3u")
done

View File

@@ -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

View File

@@ -1,6 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash
set -eou pipefail
echo $(pacman -Qqn) $(pacman -Qqm) | \
tr " " "\n" | \
sort
sudo bash -c 'echo $(pacman -Qqe) | tr " " "\n" | sort > /packages.txt'

View File

@@ -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

View File

@@ -1,6 +0,0 @@
#!/usr/bin/env bash
set -eou pipefail
echo $(pacman -Qqn) $(pacman -Qqm) | \
tr " " "\n" | \
sort

View File

@@ -1,12 +0,0 @@
#!/bin/sh
while [ 1 ]
do
ping -c5 https://google.com
if [ $? -eq 0]; then
echo Ping check ok, waiting...
else
poweroff
fi
done

View 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

View File

@@ -0,0 +1,6 @@
#!/bin/sh
# record video
dir=~/Downloads/temp
(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

View 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

View File

@@ -0,0 +1,5 @@
#!/bin/bash
set -eou pipefail
swaymsg "output * dpms off" && \
swaymsg "output * dpms on"

View File

@@ -6,11 +6,17 @@ if [ $count != 0 ]; then
rename JPG jpg *.JPG
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
count=`ls -1 *.jpg 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.jpg; do
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi
@@ -24,7 +30,7 @@ fi
count=`ls -1 *.png 2>/dev/null | wc -l`
if [ $count != 0 ]; then
for i in *.png; do
exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
/usr/bin/vendor_perl/exiftool -all= -overwrite_original -tagsfromfile @ -Orientation "$i"
done
fi

View File

@@ -0,0 +1,13 @@
#!/usr/bin/env bash
set -euox pipefail
pkill -f blueman-manager || true
echo stopping bluetooth...
sudo systemctl stop bluetooth
sudo modprobe -r btusb
echo starting bluetooth...
sudo modprobe btusb
sudo systemctl start bluetooth
sudo rfkill unblock bluetooth

View File

@@ -1,33 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
CANTATA_RUNNING=0
if pgrep -f cantata &>/dev/null 2>&1; then
echo killing cantata...
CANTATA_RUNNING=1
pkill -f cantata
fi
# echo stopping pipewire-media-session...
# systemctl --user stop pipewire-media-session
echo stopping pipewire...
systemctl --user stop pipewire
echo starting pipewire...
systemctl --user start pipewire
# echo starting pipewire-media-session...
# systemctl --user start pipewire-media-session
echo stopping mpDris2...
systemctl --user stop mpd-mpris
echo stopping mpd...
systemctl --user stop mpd
echo starting mpd...
systemctl --user start mpd
echo starting mpDris2...
systemctl --user start mpd-mpris
if [[ $CANTATA_RUNNING == 1 ]]; then
echo starting cantata...
cantata& &>/dev/null
fi

View File

@@ -1,6 +1,7 @@
#!/bin/sh
set -oue pipefail
# Take a screenshot
dir=~/Downloads/temp
(cd $dir && grim -g "$(slurp)")
(cd $dir && grim -g "$(slurp)" ./$(date +%Y-%m-%d_%H-%m-%s).png)
xdg-open $dir

View File

@@ -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

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
cat input.txt | awk '{ print length, $0 }' | sort -n | cut -d" " -f2-

View 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
View 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

View 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

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -euo pipefail
find ~/syncthing/ -type f -name "*.sync-conflict*" -exec rm {} \;

View 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

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env sh
set -eou pipefail
system-update-mirrors
pacman -Syuw --noconfirm

View 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

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -eoux pipefail
system-free-space
yay --noconfirm -Syu --overwrite \*
system-free-space

View File

@@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -eoux pipefail
rate-mirrors arch | sudo tee /etc/pacman.d/mirrorlist

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +0,0 @@
#!/bin/sh
set -eoux pipefail
# uses mpc to manually trigger a mpd update
mpc -h localhost -p 6600 --password update

View File

@@ -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

View File

@@ -5,11 +5,11 @@ set -eou pipefail
# --write-info-json \
# --write-annotations \
# --write-all-thumbnails \
# --write-auto-sub \
youtube-dl \
--format bestvideo+bestaudio \
--ignore-errors \
--geo-bypass \
--sub-lang en --embed-subs \
--write-sub --write-auto-sub --sub-format best --sub-lang en --embed-subs \
--output "%(title)s.%(ext)s" \
--add-metadata \
--embed-thumbnail \

View File

@@ -2,7 +2,7 @@
# --embed-thumbnail \
# --audio-format opus \
youtube-dl \
yt-dlp \
--ignore-errors \
-f bestaudio \
--rm-cache-dir \

388
packages.txt Normal file
View File

@@ -0,0 +1,388 @@
adobe-source-han-sans-jp-fonts
adobe-source-han-sans-kr-fonts
adwaita-qt5-git
adwaita-qt6-git
aic94xx-firmware
alacritty
amd-ucode
android-udev
anki-bin
arch-install-scripts
arduino-ide-bin
asdf-vm
atomicparsley
atool
autoconf
automake
base
base-devel
bash
bash-completion
beets
bind
binutils
bison
blueman
brightnessctl
bzip2
calibre
cbonsai
ccache
cheese
chromium
cnrdrvcups-lb
corectrl
coreutils
cowsay
cryptsetup
cups
darktable
device-mapper
dhcpcd
dialog
diffutils
dino
direnv
downgrade
dxvk-bin
e2fsprogs
efibootmgr
electrum
elinks
esptool
etcher-bin
evince
f2fs-tools
fail2ban
fakeroot
fcitx5
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk
fcitx5-pinyin-zhwiki
fcitx5-qt
fcitx5-solarized
ffmpegthumbnailer
file
filesystem
findutils
flex
font-manager
fortune-mod
fortune-mod-calvin
fortune-mod-confucius
fortune-mod-doctorwho-new-series
fortune-mod-ferengi_rules_of_acquisition
fortune-mod-firefly
fortune-mod-hitchhiker
fortune-mod-matrix
fortune-mod-portal-game
fortune-mod-starwars
freecad
freerdp
fwbuilder
fwupd
gamemode
gawk
gcc
gcc-libs
gdlauncher-bin
gdm
gedit
geoclue
gettext
gimp
git
git-lfs
glibc
gnome-disk-utility
gnome-firmware
gnome-sound-recorder
gnu-free-fonts
gnu-netcat
gnutls
google-chrome
gparted
gphoto2
grep
grim
grub
gsmartcontrol
gsound
gst-libav
gst-plugins-bad
gst-plugins-ugly
gstreamer-vaapi
gtk-engine-murrine
gvfs-gphoto2
gwakeonlan
gzip
handbrake
hddtemp
hexedit
highlight
htop
hugin
hunspell-en_us
inkscape
inotify-tools
iotop
iperf
iproute2
iputils
itstool
iw
jammr
jansson
jq
kanshi
keepassxc
kid3
kitty
kochmorse
krita
lagrange
leptonica
less
lib32-gamemode
lib32-giflib
lib32-gnutls
lib32-gst-plugins-base-libs
lib32-libgpg-error
lib32-libldap
lib32-libpng
lib32-libpulse
lib32-libva
lib32-libva-mesa-driver
lib32-libxcomposite
lib32-libxinerama
lib32-libxslt
lib32-mesa-vdpau
lib32-mpg123
lib32-ocl-icd
lib32-openal
lib32-sqlite
lib32-vkd3d
lib32-vulkan-icd-loader
libappindicator-gtk3
libdvdcss
libffado
libglvnd
libgnome-keyring
libgooglepinyin
libime
libjbig-shared
libjpeg6-turbo
libpinyin
libpng
libreoffice-extension-languagetool
libreoffice-still
libretro-overlays
libretro-shaders-slang
librewolf-bin
libva-mesa-driver
libva-utils
libvncserver
libxkbcommon
licenses
linux
linux-firmware
linux-firmware-qlogic
linux-headers
lmms
logrotate
lshw
lsp-plugins
ltunify-git
lvm2
m4
make
mako
mallard-ducktype
man-db
man-pages
materia-gtk-theme
mcomix
mcpp
mdadm
mediainfo
mesa
minecraft-launcher
mixxx
mousetweaks
mpc
mpv
mpv-mpris
mumble
namcap
nano
nautilus
ncdu
neofetch
neovim
networkmanager
network-manager-applet
networkmanager-openvpn
nmap
nomacs
noto-fonts-cjk
noto-fonts-emoji
noto-fonts-extra
ntfs-3g
ntp
nvtop
ocl-icd
odt2txt
opencc
opendesktop-fonts
openh264
openshot
opustags
overdue
package-query
papirus-icon-theme
patch
pavucontrol
pciutils
perl
perl-image-exiftool
perl-rename
picard
piper
pipewire-alsa
pipewire-jack
pipewire-pulse
pixman
pkgconf
pkgstats
playerctl
playonlinux
polkit-gnome
postgresql-libs
prismlauncher
procps-ng
psensor
psmisc
pv
pyside2
python
python-axolotl
python-levenshtein
python-matplotlib
python-mutagen
python-pip
python-pycryptodome
python-pyenchant
python-pylast
python-pynvim
python-wxpython
qt5ct
qt5-graphicaleffects
qt5-imageformats
quodlibet
ranger
rar
rate-mirrors
realtime-privileges
remmina
retroarch
retroarch-assets-xmb
rofi
rsgain
rsnapshot
rsync
samsung_magician-consumer-ssd
seahorse
sed
shadow
shellcheck
shotcut
signal-desktop
simple-scan
slurp
smartmontools
s-nail
sndio
speedtest-cli
ssh-audit
sshpass
stalonetray
steam
sudo
sway
swaybg
swayidle
swaylock
swayrst-git
syncplay
syncthing
syncthing-gtk
sysfsutils
systemd-resolvconf
systemd-sysvcompat
systemd-ui
tar
telegram-desktop
texinfo
texlive-bin
thunderbird
tlp
tmux
traceroute
trash-cli
tree
ttf-dejavu
ttf-ibm-plex
ttf-joypixels
ttf-liberation
ttf-ms-fonts
ttf-opensans
ttf-symbola-free
ttf-ubuntu-font-family
ueberzugpp
unicode-emoji
upd72020x-fw
usbutils
util-linux
vi
vim
visual-studio-code-bin
vkd3d
vlc
vnstat
vpnc
vulkan-mesa-layers
vulkan-radeon
vulkan-tools
w3m
wacomtablet
wakeonlan
waybar
wayland-utils
wayvnc
wd719x-firmware
wdisplays
wf-recorder
wget
which
wine-staging
winetricks
wireguard-tools
wl-clipboard
wol
wpa_supplicant
xclip
xdg-desktop-portal
xdg-desktop-portal-wlr
xf86-input-wacom
xf86-video-amdgpu
xfsprogs
xorg-xdpyinfo
xorg-xev
xorg-xinput
xorg-xwayland
xsel
xterm
yay
yt-dlp
zimg

View File

@@ -3,6 +3,7 @@
![preview](preview.png)
these are my dotfiles, custom desktop entries, and scripts for my personal machine
to use these verbatim, clone the repo and merge it onto root with rsync, like below.
this repo also contains configuration files for services with arch linux. feel
@@ -28,16 +29,27 @@ please let me know if i've forgotten one!
- swayidle (idle daemon)
- swaylock (lockscreen)
- alacritty (terminal)
- ranger (file browser)
- rofi (launcher)
- moki (notification daemon)
- mako (notification daemon)
- kanshi (screen config manager)
- lxpolkit (auth helper)
- nm-applet (network gui manager)
- gnome-polkit (auth helper)
- nm-applet (network gui tray applet)
- blueman-tray (bluetooth gui tray applet)
- playerctl (music controller)
- materia-dark (gtk theme)
- papirus-dark (icon theme)
- fctix (intl. keyboard input)
- fcitx5 (intl. keyboard input)
- grim (screenshots on wayland)
- wf-recorder (screen recorder on wayland)
- slurp (to select region in wayland)
- neovim (editor)
- direnv (per-directory environment variables)
- asdf (language agnostic dependency management)
#### packages.txt
i also have a list of packages at `/packages.txt`. this list contains a ton
of random junk and stuff since i've had this setup for a while, and i mostly
use it to help sync packages between multiple machines.