diff --git a/.gitignore b/.gitignore index d02d49a..1a73c22 100644 --- a/.gitignore +++ b/.gitignore @@ -28,7 +28,12 @@ **/hcache/ **/node_modules/ -# Never, under any circumstances. +# Never, under any circumstances. These are shapes that have actually held +# live credentials on these machines: Claude OAuth tokens, restic repo keys, +# subsonic passwords, the Proton bridge and LiteLLM virtual keys. **/credentials +**/credentials/** **/.credentials.json +**/password +**/*.env .secrets.zsh diff --git a/common/lazygit/config.yml b/common/lazygit/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/common/ncmpcpp/error.log b/common/ncmpcpp/error.log new file mode 100644 index 0000000..e69de29 diff --git a/common/neofetch/config.conf b/common/neofetch/config.conf new file mode 100644 index 0000000..cdba4c6 --- /dev/null +++ b/common/neofetch/config.conf @@ -0,0 +1,864 @@ +# See this wiki page for more info: +# https://github.com/dylanaraps/neofetch/wiki/Customizing-Info +print_info() { + info title + info underline + + info "OS" distro + info "Host" model + info "Kernel" kernel + info "Uptime" uptime + info "Packages" packages + info "Shell" shell + info "Resolution" resolution + info "DE" de + info "WM" wm + info "WM Theme" wm_theme + info "Theme" theme + info "Icons" icons + info "Terminal" term + info "Terminal Font" term_font + info "CPU" cpu + info "GPU" gpu + info "Memory" memory + + # info "GPU Driver" gpu_driver # Linux/macOS only + # info "CPU Usage" cpu_usage + # info "Disk" disk + # info "Battery" battery + # info "Font" font + # info "Song" song + # [[ "$player" ]] && prin "Music Player" "$player" + # info "Local IP" local_ip + # info "Public IP" public_ip + # info "Users" users + # info "Locale" locale # This only works on glibc systems. + + info cols +} + +# Title + + +# Hide/Show Fully qualified domain name. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --title_fqdn +title_fqdn="off" + + +# Kernel + + +# Shorten the output of the kernel function. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --kernel_shorthand +# Supports: Everything except *BSDs (except PacBSD and PC-BSD) +# +# Example: +# on: '4.8.9-1-ARCH' +# off: 'Linux 4.8.9-1-ARCH' +kernel_shorthand="on" + + +# Distro + + +# Shorten the output of the distro function +# +# Default: 'off' +# Values: 'on', 'tiny', 'off' +# Flag: --distro_shorthand +# Supports: Everything except Windows and Haiku +distro_shorthand="off" + +# Show/Hide OS Architecture. +# Show 'x86_64', 'x86' and etc in 'Distro:' output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --os_arch +# +# Example: +# on: 'Arch Linux x86_64' +# off: 'Arch Linux' +os_arch="on" + + +# Uptime + + +# Shorten the output of the uptime function +# +# Default: 'on' +# Values: 'on', 'tiny', 'off' +# Flag: --uptime_shorthand +# +# Example: +# on: '2 days, 10 hours, 3 mins' +# tiny: '2d 10h 3m' +# off: '2 days, 10 hours, 3 minutes' +uptime_shorthand="on" + + +# Memory + + +# Show memory pecentage in output. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --memory_percent +# +# Example: +# on: '1801MiB / 7881MiB (22%)' +# off: '1801MiB / 7881MiB' +memory_percent="off" + +# Change memory output unit. +# +# Default: 'mib' +# Values: 'kib', 'mib', 'gib' +# Flag: --memory_unit +# +# Example: +# kib '1020928KiB / 7117824KiB' +# mib '1042MiB / 6951MiB' +# gib: ' 0.98GiB / 6.79GiB' +memory_unit="mib" + + +# Packages + + +# Show/Hide Package Manager names. +# +# Default: 'tiny' +# Values: 'on', 'tiny' 'off' +# Flag: --package_managers +# +# Example: +# on: '998 (pacman), 8 (flatpak), 4 (snap)' +# tiny: '908 (pacman, flatpak, snap)' +# off: '908' +package_managers="on" + + +# Shell + + +# Show the path to $SHELL +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --shell_path +# +# Example: +# on: '/bin/bash' +# off: 'bash' +shell_path="off" + +# Show $SHELL version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --shell_version +# +# Example: +# on: 'bash 4.4.5' +# off: 'bash' +shell_version="on" + + +# CPU + + +# CPU speed type +# +# Default: 'bios_limit' +# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'. +# Flag: --speed_type +# Supports: Linux with 'cpufreq' +# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value. +speed_type="bios_limit" + +# CPU speed shorthand +# +# Default: 'off' +# Values: 'on', 'off'. +# Flag: --speed_shorthand +# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz +# +# Example: +# on: 'i7-6500U (4) @ 3.1GHz' +# off: 'i7-6500U (4) @ 3.100GHz' +speed_shorthand="off" + +# Enable/Disable CPU brand in output. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_brand +# +# Example: +# on: 'Intel i7-6500U' +# off: 'i7-6500U (4)' +cpu_brand="on" + +# CPU Speed +# Hide/Show CPU speed. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --cpu_speed +# +# Example: +# on: 'Intel i7-6500U (4) @ 3.1GHz' +# off: 'Intel i7-6500U (4)' +cpu_speed="on" + +# CPU Cores +# Display CPU cores in output +# +# Default: 'logical' +# Values: 'logical', 'physical', 'off' +# Flag: --cpu_cores +# Support: 'physical' doesn't work on BSD. +# +# Example: +# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores) +# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores) +# off: 'Intel i7-6500U @ 3.1GHz' +cpu_cores="logical" + +# CPU Temperature +# Hide/Show CPU temperature. +# Note the temperature is added to the regular CPU function. +# +# Default: 'off' +# Values: 'C', 'F', 'off' +# Flag: --cpu_temp +# Supports: Linux, BSD +# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable +# coretemp kernel module. This only supports newer Intel processors. +# +# Example: +# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]' +# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]' +# off: 'Intel i7-6500U (4) @ 3.1GHz' +cpu_temp="off" + + +# GPU + + +# Enable/Disable GPU Brand +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gpu_brand +# +# Example: +# on: 'AMD HD 7950' +# off: 'HD 7950' +gpu_brand="on" + +# Which GPU to display +# +# Default: 'all' +# Values: 'all', 'dedicated', 'integrated' +# Flag: --gpu_type +# Supports: Linux +# +# Example: +# all: +# GPU1: AMD HD 7950 +# GPU2: Intel Integrated Graphics +# +# dedicated: +# GPU1: AMD HD 7950 +# +# integrated: +# GPU1: Intel Integrated Graphics +gpu_type="all" + + +# Resolution + + +# Display refresh rate next to each monitor +# Default: 'off' +# Values: 'on', 'off' +# Flag: --refresh_rate +# Supports: Doesn't work on Windows. +# +# Example: +# on: '1920x1080 @ 60Hz' +# off: '1920x1080' +refresh_rate="off" + + +# Gtk Theme / Icons / Font + + +# Shorten output of GTK Theme / Icons / Font +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --gtk_shorthand +# +# Example: +# on: 'Numix, Adwaita' +# off: 'Numix [GTK2], Adwaita [GTK3]' +gtk_shorthand="off" + + +# Enable/Disable gtk2 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk2 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Adwaita [GTK3]' +gtk2="on" + +# Enable/Disable gtk3 Theme / Icons / Font +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --gtk3 +# +# Example: +# on: 'Numix [GTK2], Adwaita [GTK3]' +# off: 'Numix [GTK2]' +gtk3="on" + + +# IP Address + + +# Website to ping for the public IP +# +# Default: 'http://ident.me' +# Values: 'url' +# Flag: --ip_host +public_ip_host="http://ident.me" + +# Public IP timeout. +# +# Default: '2' +# Values: 'int' +# Flag: --ip_timeout +public_ip_timeout=2 + + +# Desktop Environment + + +# Show Desktop Environment version +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --de_version +de_version="on" + + +# Disk + + +# Which disks to display. +# The values can be any /dev/sdXX, mount point or directory. +# NOTE: By default we only show the disk info for '/'. +# +# Default: '/' +# Values: '/', '/dev/sdXX', '/path/to/drive'. +# Flag: --disk_show +# +# Example: +# disk_show=('/' '/dev/sdb1'): +# 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 823G / 893G (93%)' +# +# disk_show=('/'): +# 'Disk (/): 74G / 118G (66%)' +# +disk_show=('/') + +# Disk subtitle. +# What to append to the Disk subtitle. +# +# Default: 'mount' +# Values: 'mount', 'name', 'dir', 'none' +# Flag: --disk_subtitle +# +# Example: +# name: 'Disk (/dev/sda1): 74G / 118G (66%)' +# 'Disk (/dev/sdb2): 74G / 118G (66%)' +# +# mount: 'Disk (/): 74G / 118G (66%)' +# 'Disk (/mnt/Local Disk): 74G / 118G (66%)' +# 'Disk (/mnt/Videos): 74G / 118G (66%)' +# +# dir: 'Disk (/): 74G / 118G (66%)' +# 'Disk (Local Disk): 74G / 118G (66%)' +# 'Disk (Videos): 74G / 118G (66%)' +# +# none: 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +# 'Disk: 74G / 118G (66%)' +disk_subtitle="mount" + +# Disk percent. +# Show/Hide disk percent. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --disk_percent +# +# Example: +# on: 'Disk (/): 74G / 118G (66%)' +# off: 'Disk (/): 74G / 118G' +disk_percent="on" + + +# Song + + +# Manually specify a music player. +# +# Default: 'auto' +# Values: 'auto', 'player-name' +# Flag: --music_player +# +# Available values for 'player-name': +# +# amarok +# audacious +# banshee +# bluemindo +# clementine +# cmus +# deadbeef +# deepin-music +# dragon +# elisa +# exaile +# gnome-music +# gmusicbrowser +# gogglesmm +# guayadeque +# io.elementary.music +# iTunes +# juk +# lollypop +# mocp +# mopidy +# mpd +# muine +# netease-cloud-music +# olivia +# playerctl +# pogo +# pragha +# qmmp +# quodlibet +# rhythmbox +# sayonara +# smplayer +# spotify +# strawberry +# tauonmb +# tomahawk +# vlc +# xmms2d +# xnoise +# yarock +music_player="auto" + +# Format to display song information. +# +# Default: '%artist% - %album% - %title%' +# Values: '%artist%', '%album%', '%title%' +# Flag: --song_format +# +# Example: +# default: 'Song: Jet - Get Born - Sgt Major' +song_format="%artist% - %album% - %title%" + +# Print the Artist, Album and Title on separate lines +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --song_shorthand +# +# Example: +# on: 'Artist: The Fratellis' +# 'Album: Costello Music' +# 'Song: Chelsea Dagger' +# +# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger' +song_shorthand="off" + +# 'mpc' arguments (specify a host, password etc). +# +# Default: '' +# Example: mpc_args=(-h HOST -P PASSWORD) +mpc_args=() + + +# Text Colors + + +# Text Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --colors +# +# Each number represents a different part of the text in +# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info' +# +# Example: +# colors=(distro) - Text is colored based on Distro colors. +# colors=(4 6 1 8 8 6) - Text is colored in the order above. +colors=(distro) + + +# Text Options + + +# Toggle bold text +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bold +bold="on" + +# Enable/Disable Underline +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --underline +underline_enabled="on" + +# Underline character +# +# Default: '-' +# Values: 'string' +# Flag: --underline_char +underline_char="-" + + +# Info Separator +# Replace the default separator with the specified string. +# +# Default: ':' +# Flag: --separator +# +# Example: +# separator="->": 'Shell-> bash' +# separator=" =": 'WM = dwm' +separator=":" + + +# Color Blocks + + +# Color block range +# The range of colors to print. +# +# Default: '0', '15' +# Values: 'num' +# Flag: --block_range +# +# Example: +# +# Display colors 0-7 in the blocks. (8 colors) +# neofetch --block_range 0 7 +# +# Display colors 0-15 in the blocks. (16 colors) +# neofetch --block_range 0 15 +block_range=(0 15) + +# Toggle color blocks +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --color_blocks +color_blocks="on" + +# Color block width in spaces +# +# Default: '3' +# Values: 'num' +# Flag: --block_width +block_width=3 + +# Color block height in lines +# +# Default: '1' +# Values: 'num' +# Flag: --block_height +block_height=1 + +# Color Alignment +# +# Default: 'auto' +# Values: 'auto', 'num' +# Flag: --col_offset +# +# Number specifies how far from the left side of the terminal (in spaces) to +# begin printing the columns, in case you want to e.g. center them under your +# text. +# Example: +# col_offset="auto" - Default behavior of neofetch +# col_offset=7 - Leave 7 spaces then print the colors +col_offset="auto" + +# Progress Bars + + +# Bar characters +# +# Default: '-', '=' +# Values: 'string', 'string' +# Flag: --bar_char +# +# Example: +# neofetch --bar_char 'elapsed' 'total' +# neofetch --bar_char '-' '=' +bar_char_elapsed="-" +bar_char_total="=" + +# Toggle Bar border +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --bar_border +bar_border="on" + +# Progress bar length in spaces +# Number of chars long to make the progress bars. +# +# Default: '15' +# Values: 'num' +# Flag: --bar_length +bar_length=15 + +# Progress bar colors +# When set to distro, uses your distro's logo colors. +# +# Default: 'distro', 'distro' +# Values: 'distro', 'num' +# Flag: --bar_colors +# +# Example: +# neofetch --bar_colors 3 4 +# neofetch --bar_colors distro 5 +bar_color_elapsed="distro" +bar_color_total="distro" + + +# Info display +# Display a bar with the info. +# +# Default: 'off' +# Values: 'bar', 'infobar', 'barinfo', 'off' +# Flags: --cpu_display +# --memory_display +# --battery_display +# --disk_display +# +# Example: +# bar: '[---=======]' +# infobar: 'info [---=======]' +# barinfo: '[---=======] info' +# off: 'info' +cpu_display="off" +memory_display="off" +battery_display="off" +disk_display="off" + + +# Backend Settings + + +# Image backend. +# +# Default: 'ascii' +# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off', +# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty' +# Flag: --backend +image_backend="ascii" + +# Image Source +# +# Which image or ascii file to display. +# +# Default: 'auto' +# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/' +# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")' +# Flag: --source +# +# NOTE: 'auto' will pick the best image source for whatever image backend is used. +# In ascii mode, distro ascii art will be used and in an image mode, your +# wallpaper will be used. +image_source="auto" + + +# Ascii Options + + +# Ascii distro +# Which distro's ascii art to display. +# +# Default: 'auto' +# Values: 'auto', 'distro_name' +# Flag: --ascii_distro +# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS", +# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs, +# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock, +# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD, +# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS, +# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover, +# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin, +# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary, +# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD, +# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo, +# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra, +# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion, +# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite, +# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva, +# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib, +# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner, +# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba, +# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD, +# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint, +# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix, +# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan, +# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific, +# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz, +# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS, +# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails, +# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio, +# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin, +# and IRIX have ascii logos +# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants. +# Use '{distro name}_old' to use the old logos. +# NOTE: Ubuntu has flavor variants. +# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME, +# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors. +# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu, +# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android, +# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola, +# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS, +# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian, +# postmarketOS, and Void have a smaller logo variant. +# Use '{distro name}_small' to use the small variants. +ascii_distro="auto" + +# Ascii Colors +# +# Default: 'distro' +# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num' +# Flag: --ascii_colors +# +# Example: +# ascii_colors=(distro) - Ascii is colored based on Distro colors. +# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors. +ascii_colors=(distro) + +# Bold ascii logo +# Whether or not to bold the ascii logo. +# +# Default: 'on' +# Values: 'on', 'off' +# Flag: --ascii_bold +ascii_bold="on" + + +# Image Options + + +# Image loop +# Setting this to on will make neofetch redraw the image constantly until +# Ctrl+C is pressed. This fixes display issues in some terminal emulators. +# +# Default: 'off' +# Values: 'on', 'off' +# Flag: --loop +image_loop="off" + +# Thumbnail directory +# +# Default: '~/.cache/thumbnails/neofetch' +# Values: 'dir' +thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" + +# Crop mode +# +# Default: 'normal' +# Values: 'normal', 'fit', 'fill' +# Flag: --crop_mode +# +# See this wiki page to learn about the fit and fill options. +# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F +crop_mode="normal" + +# Crop offset +# Note: Only affects 'normal' crop mode. +# +# Default: 'center' +# Values: 'northwest', 'north', 'northeast', 'west', 'center' +# 'east', 'southwest', 'south', 'southeast' +# Flag: --crop_offset +crop_offset="center" + +# Image size +# The image is half the terminal width by default. +# +# Default: 'auto' +# Values: 'auto', '00px', '00%', 'none' +# Flags: --image_size +# --size +image_size="auto" + +# Gap between image and text +# +# Default: '3' +# Values: 'num', '-num' +# Flag: --gap +gap=3 + +# Image offsets +# Only works with the w3m backend. +# +# Default: '0' +# Values: 'px' +# Flags: --xoffset +# --yoffset +yoffset=0 +xoffset=0 + +# Image background color +# Only works with the w3m backend. +# +# Default: '' +# Values: 'color', 'blue' +# Flag: --bg_color +background_color= + + +# Misc Options + +# Stdout mode +# Turn off all colors and disables image backend (ASCII/Image). +# Useful for piping into another command. +# Default: 'off' +# Values: 'on', 'off' +stdout="off" diff --git a/hosts/mainframe/config/bob/config.json b/hosts/mainframe/config/bob/config.json new file mode 100644 index 0000000..45f1831 --- /dev/null +++ b/hosts/mainframe/config/bob/config.json @@ -0,0 +1,3 @@ +{ + "add_neovim_binary_to_path": true +} \ No newline at end of file diff --git a/hosts/mainframe/config/inbox-tidy/tidy.toml b/hosts/mainframe/config/inbox-tidy/tidy.toml new file mode 100644 index 0000000..e80098e --- /dev/null +++ b/hosts/mainframe/config/inbox-tidy/tidy.toml @@ -0,0 +1,99 @@ +# inbox_tidy -- archive stale unread mail out of the Proton inbox. +# +# Nothing here deletes anything. The only operation is an IMAP MOVE from INBOX +# to Archive, recorded in ~/.local/share/inbox-tidy/archived.jsonl so any run +# can be reversed with `inbox_tidy --undo `. + +# ARMED? Left false until `--check` has been compared against the Proton web +# UI and `--dry-run` has been read. --check and --dry-run work regardless. +enabled = true + +# Unread for longer than this many days is a candidate. +age_days = 3 + +# Most that will be archived in one run. A backlog drains over several days +# rather than in one sweep, which also caps how much a bad guard list can move +# before you notice. `--max` overrides. +max_per_run = 250 + +# --------------------------------------------------------------------------- +# Interlocks. Both abort the run rather than archiving; both exist because of +# something actually observed, not as theoretical caution. +# --------------------------------------------------------------------------- + +# Bridge reported 1249 unread in INBOX while the Proton UI showed 646. Resolved +# 2026-09-09: NOT a flag problem. The initial sync finished at 100% and the +# count did not move, and the messages were spot-checked in the web UI as +# genuinely unread and genuinely in the Inbox. Threading was also ruled out +# (1249 messages -> 1247 RFC thread roots, 1026 distinct subjects; no grouping +# scheme reaches 648). Most likely Proton's inbox categories showing a subset +# in the badge. Unresolved, but no longer load-bearing. +# +# Backlog drained 2026-09-09 (1180 archived over 5 runs; INBOX went to 14 +# messages / 0 unread). Lowered back from the temporary 1400 now that steady +# state is one day's mail -- at 1400 this interlock could never fire, and an +# interlock that cannot fire is not one. 200 is roughly a week of arrivals, so +# it tolerates a holiday without tripping while still catching a runaway. +expected_unread_max = 200 + +# The correspondent allowlist is derived from the Sent mailbox. If Sent is +# nearly empty (as it was mid-sync, at 11 messages) that guard silently does +# nothing. Refuse to run rather than sweep up mail from people you write to. +min_correspondents = 25 + +# --------------------------------------------------------------------------- +# Guards. Evaluated in this order, before the archive decision, so anything +# uncertain resolves to leaving the message where it is. +# +# 1. \Flagged or \Answered (no config; always protected) +# 2. protect_senders +# 3. anyone in the Sent-derived correspondent list +# 4. protect_subjects +# 5. no Message-ID (could not be undone, so is not moved) +# --------------------------------------------------------------------------- + +# An entry containing @ matches that address exactly. An entry without one +# matches the domain AND its subdomains, so "chase.com" also covers +# "fraudalert.chase.com" -- which is the case that actually matters. +protect_senders = [ + # Deliberately empty to start. Add whatever gets archived that you wanted + # kept; the log names the sender for every move, so this list can be grown + # from evidence rather than guessed at up front. +] + +# Case-insensitive regexes tested against the Subject. These are the mails +# where not noticing has a real cost, so they are held back across every +# sender rather than relying on protect_senders being complete. +protect_subjects = [ + 'fraud', + 'security alert', + 'suspicious', + 'unauthori[sz]ed', + 'action (needed|required)', + 'verify your', + 'past due', + 'overdue', + 'final notice', + 'court|subpoena|jury', + '\bIRS\b', +] + +[ntfy] +url = "https://ntfy.rcjohnstone.com" +# Its own topic, NOT rent-utilities -- that one is a monthly message worth +# reading, and burying it under a daily archive summary would train you to +# swipe both away. `ntfy access bot inbox-tidy rw` was granted so delivery can +# be verified by polling, not just inferred from a 200 (the `bot` user is +# write-only on `*`, so polling with its token otherwise returns an empty list +# even when messages are sitting there). +topic = "inbox-tidy" + +[imap] +host = "127.0.0.1" +port = 1143 +starttls = true +user = "c@rcjohnstone.com" +password_env = "PROTON_BRIDGE_PASSWORD" +sent_mailbox = "Sent" +# Cap on how much of Sent is read to build the allowlist. +sent_scan_limit = 3000 diff --git a/hosts/mainframe/config/llmfit/filters.json b/hosts/mainframe/config/llmfit/filters.json new file mode 100644 index 0000000..f666e28 --- /dev/null +++ b/hosts/mainframe/config/llmfit/filters.json @@ -0,0 +1,1556 @@ +{ + "fit_filter": "All", + "availability_filter": "All", + "tp_filter": "All", + "sort_column": "Score", + "sort_ascending": false, + "installed_first": false, + "search_query": null, + "providers": { + "lgaalves": true, + "ba2han": true, + "gbueno86": true, + "weyaxi": true, + "bytedance-research": true, + "nasiruddin15": true, + "koalajun": true, + "aisingapore": true, + "anwgpt": true, + "nondzu": true, + "BAAI": true, + "roadqaq": true, + "harvard-dcml": true, + "anjajar": true, + "jackrong": true, + "onurdemircioglu": true, + "sankalpjha1": true, + "joaoffg": true, + "prithivmlmods": true, + "leaderboardmodel1": true, + "aehrc": true, + "idea-research": true, + "trevon": true, + "yurg99": true, + "prashasst": true, + "dfurman": true, + "dvruette": true, + "genevera": true, + "mckerm1t": true, + "whiterabbitneo": true, + "rasyosef": true, + "duliadotio": true, + "yousefbahr": true, + "eshmo-ai": true, + "lm-provers": true, + "contextboxai": true, + "argilla-warehouse": true, + "mratsim": true, + "pankajmathur": true, + "tiny-random": true, + "pretergeek": true, + "maykeye": true, + "opengpt-x": true, + "nos-pt": true, + "ilsp": true, + "calamitousfelicitousness": true, + "goodbaibai88": true, + "hitz": true, + "intel": true, + "johnblick187": true, + "jongyeop": true, + "mtgv": true, + "nytopop": true, + "distil-labs": true, + "inference-net": true, + "mantis2024": true, + "browser-use": true, + "muscaria": true, + "ozertuu": true, + "swiss-ai": true, + "llm-blender": true, + "ncsoft": true, + "alexzander85": true, + "davidau": true, + "gy2233": true, + "paloalma": true, + "ticklingshell": true, + "wavecut": true, + "wenchuanzhang": true, + "lamini": true, + "xlnet": true, + "xtuner": true, + "cookinai": true, + "pybbb": true, + "double7": true, + "migtissera": true, + "abhishekchohan": true, + "khazarai": true, + "ordenwills": true, + "akhooli": true, + "techxgenus": true, + "shahriarferdoush": true, + "gsai-ml": true, + "sciphi": true, + "vohuythu89": true, + "castironmind": true, + "davzoku": true, + "jetlm": true, + "jxm": true, + "deepmount00": true, + "libraxisai": true, + "muxodious": true, + "knutjaegersberg": true, + "georgeuwaifo": true, + "plezan": true, + "rishanthrajendhran": true, + "thunderbolt215215": true, + "ystemsrx": true, + "squ11z1": true, + "Upstage": true, + "sweepai": true, + "omni-research": true, + "hweri": true, + "jeonsworld": true, + "hotdogs": true, + "activedap": true, + "mewaeltsegay": true, + "rrivera1849": true, + "yaojialzc": true, + "t1anyu": true, + "georgesung": true, + "m8than": true, + "villanovaai": true, + "yukang": true, + "Alibaba": true, + "robertgshaw2": true, + "opceanai": true, + "anechaev": true, + "tomg-group-umd": true, + "paudelnirajan": true, + "tex70": true, + "girinath11": true, + "simonlee711": true, + "dahghostblogger": true, + "cncl-penn-state": true, + "lovedheart": true, + "multiversecomputingcai": true, + "junaid008": true, + "magistrtheone": true, + "chrispalmsprings89": true, + "ucla-agi": true, + "paust": true, + "erwanf": true, + "abhiramtirumala": true, + "sentence-transformers": true, + "candan77": true, + "bharatgenai": true, + "lightonai": true, + "tanganke": true, + "selode-ai": true, + "giux78": true, + "xenova": true, + "adamlucek": true, + "hkust-nlp": true, + "rdtand": true, + "suayptalha": true, + "tushargoel": true, + "jenerallee78": true, + "lightricks": true, + "gratefulasi": true, + "jackfram": true, + "jarradh": true, + "pucpr-br": true, + "neural-ice": true, + "obliteratus": true, + "openbmb": true, + "vkatg": true, + "selimaktas": true, + "lmms-lab": true, + "lukealonso": true, + "varjosoft": true, + "adeelahmad": true, + "openvla": true, + "biomistral": true, + "maximuslee07": true, + "rhymes-ai": true, + "smcleish": true, + "wangzejun": true, + "combinhorizon": true, + "twobombs": true, + "openthaigpt": true, + "kurakurai": true, + "logosnodos": true, + "playingyoyo": true, + "facebook": true, + "luckylobster": true, + "numind": true, + "stanfordaimi": true, + "cyfragovpl": true, + "anjoe": true, + "croll83": true, + "polygl0t": true, + "sakanaai": true, + "mmnga": true, + "undi95": true, + "jinmang2": true, + "haoranxu": true, + "tinaxie": true, + "jaygala24": true, + "zjunlp": true, + "laap-ai": true, + "wynn747": true, + "22jay": true, + "alibaba-aaig": true, + "justindal": true, + "z-lab": true, + "locutusque": true, + "lukebailey181pub": true, + "minlik": true, + "goekdeniz-guelmez": true, + "ethzanalytics": true, + "liaaron1": true, + "omi-health": true, + "agentica-org": true, + "tartunlp": true, + "yifanyu": true, + "ai-mo": true, + "sarvamai": true, + "ollieturnbull": true, + "dengcao": true, + "catalystsec": true, + "naver-hyperclovax": true, + "beetle-humanscale": true, + "distilbert": true, + "ethicalabs": true, + "vmware": true, + "lenalibon": true, + "tenyx": true, + "refuelai": true, + "iqbalamo93": true, + "iker": true, + "baichuan-inc": true, + "nicholaskluge": true, + "sao10k": true, + "kasimat": true, + "etsien": true, + "open-thoughts": true, + "lumasik": true, + "jsfs11": true, + "orionllm": true, + "qqlabs": true, + "42dot": true, + "magpie-align": true, + "humain-ai": true, + "karakuri-ai": true, + "osaurusai": true, + "m42-health": true, + "thesven": true, + "dreamgen": true, + "northerntribe-research": true, + "veenn": true, + "DeepSeek": true, + "hampsonw": true, + "latitudegames": true, + "jangq-ai": true, + "monsoon-nlp": true, + "kylehessling1": true, + "veriloop-lab": true, + "histai": true, + "henrik3": true, + "mehuldamani": true, + "miromind-ai": true, + "stellalisy": true, + "arkoda": true, + "alevnokc": true, + "vikhyatk": true, + "casperhansen": true, + "bofenghuang": true, + "ascendkernelgen": true, + "abhishekcr448": true, + "minachist": true, + "open-machine": true, + "khairi": true, + "wwtcyberlab": true, + "maidacundo": true, + "fuseai": true, + "ai-forever": true, + "junhowie": true, + "aazurez": true, + "boboliu": true, + "lewtun": true, + "vikhrmodels": true, + "almawave": true, + "abner0803": true, + "abacusai": true, + "flwrlabs": true, + "guangyangnlp": true, + "2imi9": true, + "ministral": true, + "mradermacher": true, + "norallm": true, + "ggml-org": true, + "haykgrigorian": true, + "nvfp4": true, + "tongyi-mai": true, + "avitotech": true, + "muverqqw": true, + "rombodawg": true, + "shenzhi-wang": true, + "anakin87": true, + "unbabel": true, + "zdy1995love": true, + "l3cube-pune": true, + "monero": true, + "xinnanzhang": true, + "jackf857": true, + "pleias": true, + "danielbrdz": true, + "palmfuture": true, + "mconcat": true, + "igorktech": true, + "cminst": true, + "cpatonn": true, + "seallms": true, + "ericspencer00": true, + "liuhaotian": true, + "tjunlp": true, + "cccczshao": true, + "kmkrworks": true, + "nova-vision-language": true, + "coherelabs": true, + "silma-ai": true, + "aletheia-ng": true, + "gadflyii": true, + "sparsellm": true, + "roendar": true, + "vilm": true, + "thebloke": true, + "rmanluo": true, + "walid-iguider": true, + "jorgevanco": true, + "kisti-koni": true, + "jdchang": true, + "oobabooga": true, + "axisquant": true, + "state-spaces": true, + "stas": true, + "densec02": true, + "decompute": true, + "kmhf": true, + "lightseekorg": true, + "shisa-ai": true, + "maracatu-ai": true, + "empirischtech": true, + "fredithefish": true, + "florence-community": true, + "occiglot": true, + "nn-tech": true, + "kanocz": true, + "bunsenfeng": true, + "patronusai": true, + "kanishka": true, + "chentong00": true, + "projecte-aina": true, + "biomechanist": true, + "fdtn-ai": true, + "flink-ddd": true, + "openmoss-team": true, + "radheneev": true, + "steelstorage": true, + "thelamapi": true, + "elinas": true, + "rghosh8": true, + "anrilombard": true, + "medalpaca": true, + "typhoon-ai": true, + "aidxteam": true, + "alexwortega": true, + "kirim-ai": true, + "vagosolutions": true, + "dnfs": true, + "poedator": true, + "ketiswp": true, + "koalaai": true, + "alibaba-nlp": true, + "pytorch": true, + "yahid": true, + "concedo": true, + "bm-k": true, + "calderaai": true, + "ghost-x": true, + "ykarout": true, + "thisisiron": true, + "tucanobr": true, + "opengvlab": true, + "xiangxinai": true, + "hcy123902": true, + "Community": true, + "sophosympatheia": true, + "kengurukleo": true, + "kkhya": true, + "speakleash": true, + "arcee-ai": true, + "tildeai": true, + "mrm8488": true, + "bytedance": true, + "hit-scir": true, + "0xsero": true, + "emirkaanozdemr": true, + "OpenChat": true, + "inclusionai": true, + "berkerdooo": true, + "philippelaban": true, + "colinglab": true, + "mistral-community": true, + "samsungsds-research": true, + "sicariussicariistuff": true, + "teichai": true, + "scottzillasystems": true, + "modularai": true, + "novaglow646": true, + "bosonai": true, + "asselab": true, + "bullerwins": true, + "pjmixers-dev": true, + "ronigold": true, + "trelis": true, + "jinaai": true, + "graf": true, + "namaa-space": true, + "royallab": true, + "mcgill-nlp": true, + "skywork": true, + "valdemardi": true, + "dphn": true, + "wang7776": true, + "melihceyhan": true, + "jet-ai": true, + "epflight": true, + "ravichandranj": true, + "inceptionai": true, + "bounharabdelaziz": true, + "ibnzterrell": true, + "apolo13x": true, + "ramblingpolymath": true, + "marin-community": true, + "isotr0py": true, + "fesalfayed": true, + "llm-os-models": true, + "discoresearch": true, + "numbersstation": true, + "choonok": true, + "pyoakum": true, + "reaperdoesntknow": true, + "ibivibiv": true, + "sakamakismile": true, + "yuyu1015": true, + "mookiezii": true, + "essentialai": true, + "evilfreelancer": true, + "hf1bitllm": true, + "line-corporation": true, + "eustlb": true, + "namanbnsl": true, + "newstar": true, + "alwaysgood": true, + "sombra-x": true, + "aeala": true, + "anouarelidrissi": true, + "beowolx": true, + "moonshotai": true, + "1bitllm": true, + "open-bee": true, + "flagalpha": true, + "decruz07": true, + "llm-lat": true, + "benjamin": true, + "cmarkea": true, + "vectionlabs": true, + "languagebind": true, + "kejian": true, + "mbley": true, + "nik9999": true, + "ramikan-br": true, + "abcorrea": true, + "espressor": true, + "harborwater": true, + "BigCode": true, + "context-labs": true, + "poolside": true, + "nina2811aw": true, + "blivioniag": true, + "cahya": true, + "kernelpool": true, + "pfnet": true, + "neelectric": true, + "fairdataihub": true, + "opi-pg": true, + "afmck": true, + "sudo-0x2a": true, + "huihui-ai": true, + "sapienzanlp": true, + "sensellm": true, + "bineric": true, + "suhailult777": true, + "kendrickfff": true, + "martyn": true, + "0xvoid0000": true, + "zigeng": true, + "rlhflow": true, + "kakaocorp": true, + "elon-trump": true, + "santiagoc": true, + "codefuse-ai": true, + "bdanko": true, + "mixedbread-ai": true, + "redwoodresearch": true, + "sejal-k": true, + "lunahr": true, + "gordonhu": true, + "mjf-su": true, + "x-izhang": true, + "tedgxnhh": true, + "abhinav-anand": true, + "eryk-mazus": true, + "mcult01": true, + "olka-fi": true, + "ai21labs": true, + "rachneet": true, + "shadowml": true, + "sonoisa": true, + "titan087": true, + "Nomic": true, + "neko-institute-of-science": true, + "holten51": true, + "mjpansa": true, + "severian": true, + "webhie": true, + "stephenlzc": true, + "zirtech": true, + "kamilamila": true, + "katanemo": true, + "norod78": true, + "gitcat404": true, + "c-bone": true, + "lordneel": true, + "shunk031": true, + "supralabs": true, + "warshanks": true, + "ybelkada": true, + "w341e": true, + "onnx-internal-testing": true, + "codingmonster1234": true, + "bigscience": true, + "nytk": true, + "simplestories": true, + "stratosphere": true, + "abhinav-hf": true, + "g4me": true, + "thkim0305": true, + "syzymon": true, + "novaciano": true, + "abubakaraabi786": true, + "xuefengli": true, + "llmfan46": true, + "shieldstar": true, + "ucsc-vlaa": true, + "azure99": true, + "withinusai": true, + "ethangou": true, + "lco-embedding": true, + "crumb": true, + "devhunterai": true, + "babylm": true, + "sail": true, + "thu-coai": true, + "dutir-bionlp": true, + "arafus": true, + "clause-bielefeld": true, + "gitmylo": true, + "mistral-experimental": true, + "elyza": true, + "bespokelabs": true, + "iamjb": true, + "voicelab": true, + "duxiaoman-di": true, + "abeja": true, + "618ai": true, + "mtsair": true, + "neuracraft": true, + "nex-agi": true, + "neuralcrew": true, + "pleisto": true, + "risys-lab": true, + "clear-blue-sky": true, + "cointegrated": true, + "henk717": true, + "mideind": true, + "pthinc": true, + "turbulencedeterministe": true, + "brunopio": true, + "rohansingh2612": true, + "tokyotech-llm": true, + "ced6688": true, + "babylm-anon": true, + "contactdoctor": true, + "zed-industries": true, + "0xa50c1a1": true, + "edp1096": true, + "maziyarpanahi": true, + "yanolja": true, + "sakalti": true, + "dhruvil237": true, + "kirili4ik": true, + "vamsi": true, + "ssmits": true, + "amd": true, + "shreemj": true, + "raxcore-dev": true, + "nickypro": true, + "dealignai": true, + "ruternorway": true, + "bartowski": true, + "eslzzyl": true, + "kuleshov-group": true, + "carlyou": true, + "cais": true, + "mikkkaiikkk": true, + "argilla": true, + "redhatai": true, + "cybermotaz": true, + "bearzi": true, + "humarin": true, + "relik-ie": true, + "zassa": true, + "zero-point-ai": true, + "mkurman": true, + "arliai": true, + "garage-baind": true, + "gradientai": true, + "techwolf": true, + "bezzam": true, + "habanoz": true, + "jslin09": true, + "madras1": true, + "starvector": true, + "primeintellect": true, + "cyburn": true, + "ciocan": true, + "mlx-community": true, + "zyphra": true, + "abdallalswaiti": true, + "allenai": true, + "eekay": true, + "aeon-7": true, + "pku-onelab": true, + "mudler": true, + "muse-bench": true, + "osoleve": true, + "bgraudt": true, + "dogukanvzr": true, + "intfloat": true, + "lilmeaty": true, + "caiovicentino1": true, + "mbzuai": true, + "minthy": true, + "explosion-testing": true, + "prawinin": true, + "telugu-llm-labs": true, + "audcor": true, + "ragavsachdeva": true, + "turboderp": true, + "pruna-test": true, + "vector-institute": true, + "jerryzh168": true, + "tourniquetrules": true, + "pranavguhan": true, + "fedir-ilina": true, + "aiteamvn": true, + "cjiao": true, + "lrudl-workshop": true, + "infly": true, + "liautoad": true, + "anthonym21": true, + "ridger": true, + "armgpt": true, + "kai-os": true, + "etherll": true, + "idea-ccnl": true, + "carsenk": true, + "ducanhdinh": true, + "hcompany": true, + "jetmoe": true, + "llm-jp": true, + "mii-llm": true, + "phonsiri": true, + "ricdomolm": true, + "uniswap": true, + "claudioitaly": true, + "openhubresearch": true, + "katuni4ka": true, + "elliott": true, + "owkin": true, + "aijuud": true, + "huggingfacetb": true, + "maple-research-lab": true, + "lapa-llm": true, + "vishalmysore": true, + "mochiva-team": true, + "oxdev": true, + "nbailab": true, + "nrl-ai": true, + "republicofkorokke": true, + "opendatalab": true, + "txn545": true, + "TII": true, + "pursuitofdatascience": true, + "valiantlabs": true, + "k-compression": true, + "anserwise": true, + "rei-xx1": true, + "trohrbaugh": true, + "lyon28": true, + "atbender": true, + "bytedance-seed": true, + "dbmdz": true, + "convexai": true, + "rafacalifornia": true, + "tencentarc": true, + "cckevinn": true, + "0x7o": true, + "vikp": true, + "bg-digitalservices": true, + "optimum-intel-internal-testing": true, + "universitytehran": true, + "e-palmisano": true, + "yunjae-won": true, + "shanchen": true, + "allegrolab": true, + "aisquared": true, + "hbx": true, + "nebius": true, + "sensenova": true, + "acon96": true, + "breadlicker45": true, + "youssofal": true, + "littlenicky55": true, + "majeks": true, + "h2oai": true, + "kquant03": true, + "aeyeops": true, + "ai-sweden-models": true, + "iquestlab": true, + "llava-hf": true, + "fredzhang7": true, + "inflatebot": true, + "kblueleaf": true, + "meditsolutions": true, + "kristaller486": true, + "enfuse": true, + "jondurbin": true, + "dtestnyrr": true, + "jacopo-gab": true, + "tvall43": true, + "ysmao": true, + "tqiqbal": true, + "zyh3826": true, + "deephat": true, + "manjunathshiva": true, + "huggingfacem4": true, + "abaryan": true, + "aifeifei798": true, + "juierror": true, + "brucethemoose": true, + "coreworxlab": true, + "nmihtrug": true, + "unsloth": true, + "zju-ai4h": true, + "Microsoft": true, + "llamafactory": true, + "tacodevs": true, + "deepcogito": true, + "gghfez": true, + "mlabonne": true, + "aws-prototyping": true, + "norglm": true, + "sapientinc": true, + "thehouseofthedude": true, + "freedomintelligence": true, + "dervig": true, + "gaussalgo": true, + "sartifyllc": true, + "lyf": true, + "henrysentinel": true, + "vandijklab": true, + "webbigdata": true, + "jiosephlee": true, + "babylm-community": true, + "surajp": true, + "liminerity": true, + "quanttrio": true, + "eleutherai": true, + "flowaicom": true, + "peft-internal-testing": true, + "kyutai": true, + "rinna": true, + "vicgalle": true, + "lumiopen": true, + "psyche": true, + "liufanfanlff": true, + "xerv-ai": true, + "nvidia": true, + "saminx22": true, + "sasa2000": true, + "koboldai": true, + "bedeviler": true, + "0labs-in": true, + "surpem": true, + "thudm": true, + "scottgl": true, + "cjvt": true, + "azurro": true, + "unfilteredai": true, + "TheBloke": true, + "chrimerss": true, + "lnl-ai": true, + "hengchang-liu": true, + "datalab-to": true, + "nlpai-lab": true, + "openlm-research": true, + "prefeitura-rio": true, + "swordhealth": true, + "NCAI": true, + "duoneural": true, + "openpipe": true, + "sparse-encoder-testing": true, + "langboat": true, + "epfl-llm": true, + "stanford-crfm": true, + "ebircak": true, + "Mistral AI": true, + "ed001": true, + "gaunernst": true, + "thanhhoangnvbg": true, + "timpal0l": true, + "kyujinpy": true, + "utter-project": true, + "antoinelouis": true, + "wowolf": true, + "snehangshu511": true, + "k-intelligence": true, + "btbtyler09": true, + "ai-isl": true, + "cuongpp": true, + "hypaai": true, + "ordalietech": true, + "solidrust": true, + "guardiangate1775": true, + "vrfai": true, + "sometimesanotion": true, + "trevorjs": true, + "ajibawa-2023": true, + "cyankiwi": true, + "yasserrmd": true, + "hugohrban": true, + "realtreetune": true, + "dhmeltzer": true, + "hesamation": true, + "ibm-ai-platform": true, + "intelligent-internet": true, + "tinypixel": true, + "torchllm": true, + "meituan-longcat": true, + "ai4pd": true, + "cosmo3769": true, + "dineth554": true, + "swap-uniba": true, + "weiboai": true, + "alsandeer33": true, + "neuralnovel": true, + "dicta-il": true, + "qiyinmiss": true, + "lhca521": true, + "nthngdy": true, + "alignment-handbook": true, + "applied-innovation-center": true, + "gokaygokay": true, + "kormo-team": true, + "anarlavrenov": true, + "NousResearch": true, + "chromadb": true, + "lcu0312": true, + "sh0ck0r": true, + "rakuten": true, + "feanors": true, + "smalldoge": true, + "wisdomik": true, + "iffyuan": true, + "pushkar27": true, + "sorry-bench": true, + "sociopacific": true, + "zeroentropy": true, + "ziaulkarim245": true, + "teolm30": true, + "cazzz307": true, + "admijgjtjtjtjjg": true, + "hmellor": true, + "thoughtworks": true, + "ceia-rl": true, + "smsk1999": true, + "tribewarez": true, + "zhangchuheng123": true, + "mikiv": true, + "momix-44": true, + "aichenkai": true, + "financialsupport": true, + "ccssne": true, + "n-bot-int": true, + "goedel-lm": true, + "1038lab": true, + "baebii": true, + "cognica": true, + "m-ric": true, + "komeijiforce": true, + "alonsoko": true, + "rwkv": true, + "saisudan": true, + "svc-nai-cci": true, + "ttimofeyka": true, + "amead10": true, + "codgician": true, + "overcastlab": true, + "salesforce": true, + "teknium": true, + "m-a-p": true, + "deepparag": true, + "trillionlabs": true, + "optimizellm": true, + "minimaxai": true, + "catherinearnett": true, + "yerevann": true, + "authormist": true, + "gl198976": true, + "dotvignesh": true, + "crataco": true, + "lorenzodemattei": true, + "sagorsarker": true, + "ex0bit": true, + "naphula": true, + "gritlm": true, + "sayhan": true, + "manishthota": true, + "fxmarty": true, + "p1atdev": true, + "prem-research": true, + "pygmalionai": true, + "tri-ml": true, + "llmat": true, + "perceptronai": true, + "skytnt": true, + "tiger-lab": true, + "virtue-ai-hub": true, + "fromthesky": true, + "yosef-samy019": true, + "natong19": true, + "yannqi": true, + "akjindal53244": true, + "malteos": true, + "seacomsrl": true, + "descript": true, + "openai": true, + "username5577": true, + "cartik": true, + "lorbus": true, + "staedi": true, + "badaoui": true, + "novasky-ai": true, + "defog": true, + "codellama": true, + "arkohut": true, + "beomi": true, + "cultrix": true, + "huggyllama": true, + "skis-ai-research": true, + "arif-butt": true, + "alpindale": true, + "stepfun-ai": true, + "sunbird": true, + "taobao-mnn": true, + "yam-peleg": true, + "chwan": true, + "dream-org": true, + "OpenAI": true, + "mafgit": true, + "beanapologist": true, + "rahul7star": true, + "longsafari": true, + "yejingfu": true, + "summersigh": true, + "saylortwift": true, + "t2ance": true, + "aysunner": true, + "moadata": true, + "openbuddy": true, + "c4tdr0ut": true, + "neuralmagic": true, + "xiaomimimo": true, + "ibm-granite": true, + "shibing624": true, + "instruction-pretrain": true, + "polypo": true, + "artificialguybr": true, + "invalid-coder": true, + "optimum-internal-testing": true, + "pearl-ai": true, + "vngrs-ai": true, + "kbsdjames": true, + "kekmodel": true, + "monologg": true, + "arnir0": true, + "bramvanroy": true, + "steelskull": true, + "ten-framework": true, + "mu-nlpc": true, + "torpedosoftware": true, + "chargoddard": true, + "ilyagusev": true, + "Meta": true, + "generteam": true, + "bbarn4": true, + "clonebo": true, + "jeffreylau": true, + "lkhl": true, + "fblgit": true, + "paretoqaft": true, + "rednote-hilab": true, + "tuguberk": true, + "ahczhg": true, + "devio": true, + "tzervas": true, + "linq-ai-research": true, + "danielheinz": true, + "mayaph": true, + "orion-zhen": true, + "zypchn": true, + "skt": true, + "yunconglong": true, + "infinirc": true, + "yujiepan": true, + "quwsarohi": true, + "gustavosta": true, + "turing-motors": true, + "kaitchup": true, + "lasimeri": true, + "uss-inferprise": true, + "secbone": true, + "agentlans": true, + "freewheelin": true, + "robowaifudev": true, + "coder3101": true, + "kalpeshk2011": true, + "cpagac": true, + "kukedlc": true, + "jphme": true, + "evolai": true, + "sammysoso": true, + "tencent": true, + "asingh15": true, + "bigatuna": true, + "cobramamba": true, + "greatcaptainnemo": true, + "twinkle-ai": true, + "intelia-lab-uah": true, + "augmxnt": true, + "fancyfeast": true, + "hpcai-tech": true, + "alibaba-damo-academy": true, + "lgai-exaone": true, + "meragpt": true, + "zerofata": true, + "ai-sage": true, + "causallm": true, + "pomni": true, + "bullpoint": true, + "gwkrsrch2": true, + "armurai": true, + "hai929": true, + "leondz": true, + "likewendy": true, + "echarlaix": true, + "chompa1422": true, + "danielhanchen": true, + "felladrin": true, + "ilyasmoutawwakil": true, + "quixiai": true, + "saricles": true, + "spitfire4794": true, + "prometheus-eval": true, + "mcg-221": true, + "sdadas": true, + "zipaltrivedi": true, + "jiminmun": true, + "rajpurkarlab": true, + "csrosex": true, + "neu-hai": true, + "kurmaai": true, + "den4ikai": true, + "openrlhf": true, + "toloka": true, + "opensearch-project": true, + "libertaidai": true, + "vlsp2025-legalsml": true, + "yuhuili": true, + "perplexity-ai": true, + "happypatrick": true, + "corover": true, + "nexaai": true, + "chankhavu": true, + "openai-community": true, + "ruslanmv": true, + "ryzdfm": true, + "okazaki-lab": true, + "unstablellama": true, + "nightmedia": true, + "mesolitica": true, + "vishva007": true, + "snowflake": true, + "mrs83": true, + "rudyon": true, + "openonerec": true, + "astromlab": true, + "rubiellabarta": true, + "demo-leaderboard": true, + "nm-testing": true, + "ltc-ai-labs": true, + "mergebench": true, + "bccard": true, + "hugging-quants": true, + "lightblue": true, + "ubc-nlp": true, + "ludocomito": true, + "bllossom": true, + "adept": true, + "failspy": true, + "hitelcy": true, + "anthonypa57": true, + "gronlp": true, + "jiangchengchengnlp": true, + "dllm-hub": true, + "petals-team": true, + "resilient-coders": true, + "snumin44": true, + "ytu-ce-cosmos": true, + "nlpark": true, + "RWKV": true, + "gshasiri": true, + "grimjim": true, + "roystar": true, + "hiroshi19781111": true, + "locailabs": true, + "ntu-spml": true, + "rzoro": true, + "vaiv": true, + "yhavinga": true, + "bertin-project": true, + "breadai": true, + "cambridgeltl": true, + "nexusflow": true, + "iaar-shanghai": true, + "s3cur": true, + "riolee": true, + "lzw1008": true, + "mssfj": true, + "openaccess-ai-collective": true, + "Cohere": true, + "cloudyu": true, + "onnx-community": true, + "maxjeblick": true, + "cyberagent": true, + "cheonggyemountain-sherpa": true, + "equall": true, + "final-bench": true, + "ncbi": true, + "axiomiclabs": true, + "corianas": true, + "grizleeber": true, + "arnomatic": true, + "mihai-777": true, + "joshuasundance": true, + "mlnomad": true, + "mmaaz60": true, + "second-state": true, + "szymonrucinski": true, + "barryfutureman": true, + "maxcurrent": true, + "pahajokiconsulting": true, + "timinar": true, + "harethahmo": true, + "xlangai": true, + "rexeed": true, + "canada-quant": true, + "danggia": true, + "parasail-ai": true, + "rekaai": true, + "baffo32": true, + "i3-lab": true, + "vladshash": true, + "HuggingFace": true, + "cosmicproc": true, + "shoppal": true, + "menlo": true, + "kurtpayne": true, + "cactusfriend": true, + "heegyu": true, + "0rn0": true, + "hishab": true, + "jiunsong": true, + "ninedaywang": true, + "fla-hub": true, + "byroneverson": true, + "pszemraj": true, + "apple": true, + "altomek": true, + "qingy2024": true, + "qpieimitation": true, + "silx-ai": true, + "moondream": true, + "teezee": true, + "wangzhang": true, + "ib-ssm": true, + "lomahony": true, + "grayswanai": true, + "hyper-accel": true, + "snsfl": true, + "alchemab": true, + "list-cloud": true, + "harley-ml": true, + "my-ai-stack": true, + "lihaoxin2020": true, + "engineering-group": true, + "infomaniak-ai": true, + "jiagaoxiang": true, + "yacht": true, + "kmewhort": true, + "zhiqing": true, + "max-and-omnis": true, + "dreamfast": true, + "vectorzhou": true, + "internlm": true, + "nameistoken": true, + "marketeam": true, + "rico03": true, + "mediatek-research": true, + "dbddv01": true, + "doradus-ai": true, + "jessed": true, + "jetbrains": true, + "sakonii": true, + "ksjsjjdj": true, + "redix": true, + "berkeley-nest": true, + "p-e-w": true, + "uygarkurt": true, + "batsclamp": true, + "baidu": true, + "sanjiwatsuki": true, + "brain-bzh": true, + "janhq": true, + "locuslab": true, + "insait-institute": true, + "nanbeige": true, + "stelterlab": true, + "winninghealth": true, + "vihangd": true, + "zai-org": true, + "tabularisai": true, + "mlfoundations": true, + "aubmindlab": true, + "generalanalysis": true, + "orionstarai": true, + "qcri": true, + "frontiersmind": true, + "axel-datos": true, + "octomed": true, + "oshkorinova": true, + "psychopenguin": true, + "jiayi-pan": true, + "bingsu": true, + "thhaus": true, + "baseten": true, + "amazon": true, + "01.ai": true, + "chimbiwide": true, + "kerolos1": true, + "kojima-lab": true, + "rinnic": true, + "s4nfs": true, + "ista-daslab": true, + "amitbehura": true, + "linjc16": true, + "genezc": true, + "fpadovani": true, + "indonesian-nlp": true, + "Google": true, + "5cd-ai": true, + "chunity": true, + "henrychur": true, + "lordx64": true, + "boods": true, + "nicklas373": true, + "qnguyen3": true, + "rl-research": true, + "castorini": true, + "konstantinoskk": true, + "stefan-it": true, + "superqai2050": true, + "aidc-ai": true, + "anthracite-org": true, + "tomergamertv": true, + "treadon": true, + "aaditya": true, + "adaptllm": true, + "empero-ai": true, + "friendliai": true, + "kldzj": true, + "uukuguy": true, + "ibm-research": true, + "lex-hue": true, + "openllm-france": true, + "artples": true, + "sauce1337": true, + "w601sxs": true, + "chat2find": true, + "jedisct1": true, + "openresearcher": true, + "xcuros": true, + "abinayam": true, + "t-systems-onsite": true, + "unicamp-dl": true, + "xingyu-zheng": true, + "yentinglin": true, + "isotonic": true, + "lingshu-medical-mllm": true, + "ddvd233": true, + "phamhai": true, + "Stability AI": true, + "aviralgusain": true, + "felprot75": true, + "xlabs-ai": true, + "yec019": true, + "kitsuvp": true, + "lilarest": true, + "samuelfaj": true, + "kasper-bankler": true, + "ermiaazarkhalili": true, + "chujiamo": true, + "chujiezheng": true, + "enzan9": true, + "bounthisanh": true, + "eth-nlped": true, + "fav-kky": true, + "mii-community": true, + "djdeniro": true, + "opendataarena": true, + "mohamedrashad": true, + "WizardLM": true, + "brian6145": true, + "rev124": true, + "t-tech": true, + "tiyupi-ece": true, + "vilsonrodrigues": true, + "hyeongwon": true, + "mixtao": true, + "nyu-visionx": true, + "servicenow-ai": true, + "voidful": true, + "worstchan": true, + "farbodtavakkoli": true, + "yuwangx": true, + "carperai": true, + "yu-mo": true, + "bsc-lt": true, + "0xbonge": true, + "automerger": true, + "manycore-research": true, + "nanonets": true, + "orenguteng": true, + "ilia2003mah": true, + "drawais": true, + "louismuk": true, + "outlier-ai": true, + "deepseek-community": true, + "gmongaras": true, + "sbintuitions": true, + "Liquid AI": true, + "ruslandev": true, + "finnish-nlp": true, + "hf-audio": true, + "beetle-fineweb": true, + "reducto": true, + "moxoffsrl": true, + "getonit": true, + "deviad": true, + "dity": true, + "winglian": true, + "razor534": true, + "taeminlee": true, + "922-ca": true, + "cstr": true, + "itstechuse": true, + "ig1": true, + "axolotl-ai-co": true, + "paddlepaddle": true, + "groxaxo": true, + "princeton-nlp": true, + "stanford-oval": true, + "star-ga": true, + "ansulev": true, + "dizza01": true, + "hfl": true, + "pawin205": true, + "nexveridian": true, + "nilq": true, + "cs1090b": true, + "gf43hhd": true, + "LMSYS": true, + "prothamd": true, + "datajuicer": true, + "cerebras": true, + "nectec": true, + "kaist-ai": true, + "flax-community": true, + "omalve": true, + "principled-intelligence": true, + "singh8898": true, + "stephenjhardy": true, + "countcandy": true, + "wenbopan": true, + "selfrag": true, + "axionml": true, + "natfii": true, + "yiwenx": true, + "chandar-lab": true, + "titanml": true, + "olafangensan": true, + "acrastt": true, + "scut-dlvclab": true, + "kgrabko": true, + "leon-se": true, + "postbot": true, + "alignmentresearch": true, + "lsx-uniwue": true, + "np-cr": true, + "tommymir4444": true, + "toxicityprompts": true, + "ar4ikov": true + }, + "use_cases": { + "General": true, + "Coding": true, + "Reasoning": true, + "Chat": true, + "Embedding": true, + "Multimodal": true + }, + "capabilities": { + "Vision": true, + "Tool Use": true, + "Audio": true + }, + "quants": { + "AutoRound-4bit": true, + "GPTQ-Int8": true, + "Q3_K_M": true, + "Q6_K": true, + "AutoRound-8bit": true, + "GPTQ-Int4": true, + "Q2_K": true, + "Q4_K_M": true, + "AWQ-8bit": true, + "Q8_0": true, + "GPTQ-Int2": true, + "Q5_K_M": true, + "AWQ-4bit": true + }, + "run_modes": { + "CPU+GPU": true, + "GPU": true, + "MoE": true, + "CPU": true + }, + "params_buckets": { + "3-7B": true, + "7-14B": true, + "30-70B": true, + "<3B": true, + "14-30B": true, + "70B+": true + }, + "licenses": { + "tencent-hunyuan-a13b": true, + "tongyi-qianwen": true, + "iquestcoder": true, + "minimax": true, + "tongyi-qianwen-license-agreement": true, + "wtfpl": true, + "cc-by-4.0": true, + "apache-2.0": true, + "gemma": true, + "hyperclovax": true, + "openmdw-1.1": true, + "deepseek-license": true, + "cc-by-sa-4.0": true, + "falcon-llm-license": true, + "llama3.1": true, + "exaone": true, + "llama3.2": true, + "llama4": true, + "kohaku-license-1.0": true, + "openrail": true, + "plamo-community-license": true, + "qwen-research": true, + "tongyi-qianwen-research": true, + "llama2": true, + "llama3": true, + "modified-mit": true, + "unknown": true, + "bsd-3-clause": true, + "Unknown": true, + "hyperclovax-seed": true, + "k-exaone": true, + "mrl": true, + "nvidia-nemotron-open-model-license": true, + "nvidia-open-model-license": true, + "other": true, + "mit": true, + "apache-license-2.0": true, + "deepseek": true, + "minimax-community": true, + "qwen": true, + "llama3.1,gemma": true, + "falcon-mamba-7b-license": true, + "jamba-open-model-license": true, + "llama3.3": true, + "bigcode-openrail-m": true, + "cc-by-nc-sa-4.0": true, + "llama3.3,gemma": true, + "nvidia-internal-scientific-research-and-development-model-license": true, + "cc-by-nc-4.0": true, + "bigscience-bloom-rail-1.0": true, + "apple-amlr": true, + "glm-4": true, + "health-ai-developer-foundations": true, + "nvidia-software-and-model-evaluation-license": true, + "lfm1.0": true + }, + "runtimes": { + "vLLM": true, + "MLX": true, + "llama.cpp": true + }, + "filter_params_min": null, + "filter_params_max": null, + "filter_mem_pct_min": null, + "filter_mem_pct_max": null, + "download_dir": null +} \ No newline at end of file diff --git a/hosts/mainframe/config/llmfit/theme b/hosts/mainframe/config/llmfit/theme new file mode 100644 index 0000000..29d4807 --- /dev/null +++ b/hosts/mainframe/config/llmfit/theme @@ -0,0 +1 @@ +Gruvbox \ No newline at end of file diff --git a/hosts/mainframe/config/mimeapps.list b/hosts/mainframe/config/mimeapps.list new file mode 100644 index 0000000..169dcfb --- /dev/null +++ b/hosts/mainframe/config/mimeapps.list @@ -0,0 +1,3 @@ + +[Default Applications] +x-scheme-handler/claude-cli=claude-code-url-handler.desktop diff --git a/hosts/mainframe/config/user-dirs.dirs b/hosts/mainframe/config/user-dirs.dirs new file mode 100644 index 0000000..7375b4a --- /dev/null +++ b/hosts/mainframe/config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/" +XDG_DOWNLOAD_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/" diff --git a/hosts/nas/config/bob/config.json b/hosts/nas/config/bob/config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/hosts/nas/config/bob/config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/hosts/sctfw004/config/bob/config.json b/hosts/sctfw004/config/bob/config.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/hosts/sctfw004/config/bob/config.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/hosts/sctfw004/config/fastfetch/config-compact.jsonc b/hosts/sctfw004/config/fastfetch/config-compact.jsonc new file mode 100644 index 0000000..94187c5 --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-compact.jsonc @@ -0,0 +1,75 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "source": "~/.config/fastfetch/ubuntu.png", + "type": "kitty-direct", + "height": 10, + "width": 20, + "padding": { + "top": 1 + } + }, + "display": { + "separator": " -> " + }, + "modules": [ + "break", + { + "type": "title", + "keyWidth": 10, + "format": " {6}{7}{8}" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "kernel", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " ", + "keyColor": "blue" + }, + { + "type": "shell", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "terminal", + "key": " ", + "keyColor": "blue" + }, + /* + { + "type": "packages", + "key": "󰏖 ", + "keyColor": "yellow" + }, + */ + { + "type": "memory", + "key": "󰍛 ", + "keyColor": "magenta", + // format: used / total + "format": "{1} / {2}" + }, + { + "type": "uptime", + "key": "󰔛 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "custom", + "format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc b/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc new file mode 100644 index 0000000..2b4522f --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-pokemon.jsonc @@ -0,0 +1,73 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "height": 5, + "width": 10, + "padding": { + "top": 1 + } + }, + "display": { + "separator": " -> " + }, + "modules": [ + "break", + { + "type": "title", + "keyWidth": 10, + "format": " {6}{7}{8}" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "kernel", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " ", + "keyColor": "blue" + }, + { + "type": "shell", + "key": " ", + "keyColor": "yellow" + }, + { + "type": "terminal", + "key": " ", + "keyColor": "blue" + }, + /* + { + "type": "packages", + "key": "󰏖 ", + "keyColor": "yellow" + }, + */ + { + "type": "memory", + "key": "󰍛 ", + "keyColor": "magenta", + // format: used / total + "format": "{1} / {2}" + }, + { + "type": "uptime", + "key": "󰔛 ", + "keyColor": "green" + }, + { + "type": "custom", + "format": " ─────────────────────────── " + }, + { + "type": "custom", + "format": " \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/config-v2.jsonc b/hosts/sctfw004/config/fastfetch/config-v2.jsonc new file mode 100644 index 0000000..cee27fd --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config-v2.jsonc @@ -0,0 +1,112 @@ +{ +"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", +"logo": { + //"source": "~/.config/fastfetch/nixos.png", + //"type": "kitty-direct", + "height": 15, + "width": 30, + "padding": { + "top": 1 + } + }, +"display": { + "separator": " ➜ " +}, + +"modules": [ + "break", + { + "type": "os", + "key": " DISTRO", + "keyColor": "31", + }, + { + "type": "kernel", + "key": " ├  ", + "keyColor": "31", + }, + { + "type": "packages", + "key": " ├ 󰏖 ", + "keyColor": "31", + }, + { + "type": "shell", + "key": " └  ", + "keyColor": "31", + }, + "break", + { + "type": "wm", + "key": " DE/WM", + "keyColor": "32", + }, + { + "type": "wmtheme", + "key": " ├ 󰉼 ", + "keyColor": "32", + }, + { + "type": "icons", + "key": " ├ 󰀻 ", + "keyColor": "32", + }, + { + "type": "cursor", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminal", + "key": " ├  ", + "keyColor": "32", + }, + { + "type": "terminalfont", + "key": " └  ", + "keyColor": "32", + }, + "break", + { + "type": "host", + "format": "{2}", + "key": "󰌢 SYSTEM", + "keyColor": "33", + }, + { + "type": "cpu", + "format": "{1} ({3}) @ {7} GHz", + "key": " ├  ", + "keyColor": "33", + }, + { + "type": "gpu", + "format": "{2}", + "key": " ├ 󰢮 ", + "keyColor": "33", + }, + { + "type": "memory", + "key": " ├  ", + "keyColor": "33", + }, + { + "type": "swap", + "key": " ├ 󰓡 ", + "keyColor": "33", + }, + { + "type": "disk", + "key": " ├ 󰋊 ", + "keyColor": "33", + }, + { + "type": "display", + "key": " └  ", + "compactType": "original-with-refresh-rate", + "keyColor": "33", + }, + "break", + "break", +] +} diff --git a/hosts/sctfw004/config/fastfetch/config.jsonc b/hosts/sctfw004/config/fastfetch/config.jsonc new file mode 100644 index 0000000..dfbe1c8 --- /dev/null +++ b/hosts/sctfw004/config/fastfetch/config.jsonc @@ -0,0 +1,128 @@ + +{ +"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", +"logo": { +"padding": { +"top": 1 +} +}, +"display": { +"separator": " 󰑃 " +}, +"modules": [ + "break", + { + "type": "os", + "key": " DISTRO", + "keyColor": "yellow" + }, + { + "type": "kernel", + "key": "│ ├", + "keyColor": "yellow" + }, + { + "type": "packages", + "key": "│ ├󰏖", + "keyColor": "yellow" + }, + { + "type": "shell", + "key": "│ └", + "keyColor": "yellow" + }, + { + "type": "wm", + "key": " DE/WM", + "keyColor": "blue" + }, + { + "type": "wmtheme", + "key": "│ ├󰉼", + "keyColor": "blue" + }, + { + "type": "icons", + "key": "│ ├󰀻", + "keyColor": "blue" + }, + { + "type": "cursor", + "key": "│ ├", + "keyColor": "blue", + }, + { + "type": "terminalfont", + "key": "│ ├", + "keyColor": "blue", + }, + { + "type": "terminal", + "key": "│ └", + "keyColor": "blue" + }, + { + "type": "host", + "key": "󰌢 SYSTEM", + "keyColor": "green" + }, + { + "type": "cpu", + "key": "│ ├󰻠", + "keyColor": "green" + }, + { + "type": "gpu", + "key": "│ ├󰻑", + "format": "{2}", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ ├󰍹", + "keyColor": "green", + "compactType": "original-with-refresh-rate" + }, + { + "type": "memory", + "key": "│ ├󰾆", + "keyColor": "green" + }, + { + "type": "swap", + "key": "│ ├󰓡", + "keyColor": "green" + }, + { + "type": "uptime", + "key": "│ ├󰅐", + "keyColor": "green" + }, + { + "type": "display", + "key": "│ └󰍹", + "keyColor": "green" + }, + { + "type": "sound", + "key": " AUDIO", + "format": "{2}", + "keyColor": "magenta" + }, + { + "type": "player", + "key": "│ ├󰥠", + "keyColor": "magenta" + }, + { + "type": "media", + "key": "│ └󰝚", + "keyColor": "magenta" + }, + { + "type": "custom", + "format": "\u001b[90m \u001b[31m \u001b[32m \u001b[33m \u001b[34m \u001b[35m \u001b[36m \u001b[37m \u001b[38m \u001b[39m \u001b[39m  \u001b[38m \u001b[37m \u001b[36m \u001b[35m \u001b[34m \u001b[33m \u001b[32m \u001b[31m \u001b[90m " + }, + "break", + ] +} diff --git a/hosts/sctfw004/config/fastfetch/ubuntu.png b/hosts/sctfw004/config/fastfetch/ubuntu.png new file mode 100644 index 0000000..f54657e Binary files /dev/null and b/hosts/sctfw004/config/fastfetch/ubuntu.png differ diff --git a/hosts/sctfw004/config/gh/config.yml b/hosts/sctfw004/config/gh/config.yml new file mode 100644 index 0000000..5d14b83 --- /dev/null +++ b/hosts/sctfw004/config/gh/config.yml @@ -0,0 +1,17 @@ +# The current version of the config schema +version: 1 +# What protocol to use when performing git operations. Supported values: ssh, https +git_protocol: https +# What editor gh should run when creating issues, pull requests, etc. If blank, will refer to environment. +editor: +# When to interactively prompt. This is a global config that cannot be overridden by hostname. Supported values: enabled, disabled +prompt: enabled +# A pager program to send command output to, e.g. "less". If blank, will refer to environment. Set the value to "cat" to disable the pager. +pager: +# Aliases allow you to create nicknames for gh commands +aliases: + co: pr checkout +# The path to a unix socket through which send HTTP connections. If blank, HTTP traffic will be handled by net/http.DefaultTransport. +http_unix_socket: +# What web browser gh should use when opening URLs. If blank, will refer to environment. +browser: diff --git a/hosts/sctfw004/config/gh/hosts.yml b/hosts/sctfw004/config/gh/hosts.yml new file mode 100644 index 0000000..c32664e --- /dev/null +++ b/hosts/sctfw004/config/gh/hosts.yml @@ -0,0 +1,5 @@ +github.com: + git_protocol: ssh + users: + connor-johnstone: + user: connor-johnstone diff --git a/hosts/sctfw004/config/gtk-2.0/gtkfilechooser.ini b/hosts/sctfw004/config/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..2c980e0 --- /dev/null +++ b/hosts/sctfw004/config/gtk-2.0/gtkfilechooser.ini @@ -0,0 +1,11 @@ +[Filechooser Settings] +LocationMode=path-bar +ShowHidden=false +ShowSizeColumn=true +GeometryX=31 +GeometryY=0 +GeometryWidth=948 +GeometryHeight=647 +SortColumn=name +SortOrder=ascending +StartupMode=recent diff --git a/hosts/sctfw004/config/gtk-3.0/bookmarks b/hosts/sctfw004/config/gtk-3.0/bookmarks new file mode 100644 index 0000000..47a7810 --- /dev/null +++ b/hosts/sctfw004/config/gtk-3.0/bookmarks @@ -0,0 +1,6 @@ +file:///tmp +file:///home/connorjohnstone/Documents +file:///home/connorjohnstone/Music +file:///home/connorjohnstone/Pictures +file:///home/connorjohnstone/Videos +file:///home/connorjohnstone/Downloads diff --git a/hosts/sctfw004/config/mimeapps.list b/hosts/sctfw004/config/mimeapps.list new file mode 100644 index 0000000..311a118 --- /dev/null +++ b/hosts/sctfw004/config/mimeapps.list @@ -0,0 +1,6 @@ +[Default Applications] +x-scheme-handler/sc-1a5d6cc5d5f07e3e=/home/connorjohnstone/.local/share/applications/connectwisecontrol-1a5d6cc5d5f07e3e.desktop +x-scheme-handler/claude-cli=claude-code-url-handler.desktop + +[Added Associations] +application/pdf=org.pwmt.zathura-pdf-poppler.desktop; diff --git a/hosts/sctfw004/config/pavucontrol.ini b/hosts/sctfw004/config/pavucontrol.ini new file mode 100644 index 0000000..0d78034 --- /dev/null +++ b/hosts/sctfw004/config/pavucontrol.ini @@ -0,0 +1,8 @@ +[window] +width=1896 +height=1121 +sinkInputType=1 +sourceOutputType=1 +sinkType=0 +sourceType=1 +showVolumeMeters=1 diff --git a/hosts/sctfw004/config/swayimg/config b/hosts/sctfw004/config/swayimg/config new file mode 100644 index 0000000..af62bf3 --- /dev/null +++ b/hosts/sctfw004/config/swayimg/config @@ -0,0 +1,149 @@ +-- General config +swayimg.set_mode("viewer") -- mode at startup +swayimg.enable_antialiasing(true) -- anti-aliasing +swayimg.enable_decoration(true) -- window title/buttons/borders +swayimg.enable_overlay(false) -- window overlay mode +swayimg.enable_exif_orientation(true) -- image orientation by EXIF +swayimg.set_dnd_button("MouseRight") -- drag-and-drop mouse button + +-- Image list configuration +swayimg.imagelist.set_order("numeric") -- list order +swayimg.imagelist.enable_reverse(false) -- reverse order +swayimg.imagelist.enable_recursive(false) -- recursive directory reading +swayimg.imagelist.enable_adjacent(false) -- add adjacent files from same dir +swayimg.imagelist.enable_fsmon(true) -- enable file system monitoring + +-- Text overlay configuration +swayimg.text.set_font("FiraCode Nerd Font") -- font name +swayimg.text.set_size(24) -- font size in pixels +swayimg.text.set_spacing(0) -- line spacing +swayimg.text.set_padding(10) -- padding from window edge +swayimg.text.set_foreground(0xffcccccc) -- foreground text color +swayimg.text.set_background(0x00000000) -- text background color +swayimg.text.set_shadow(0x0d000000) -- text shadow color +swayimg.text.set_timeout(5) -- layer hide timeout +swayimg.text.set_status_timeout(3) -- status message hide timeout + +-- Image viewer mode +swayimg.viewer.set_default_scale("optimal") -- default image scale +swayimg.viewer.set_default_position("center") -- default image position +swayimg.viewer.set_drag_button("MouseLeft") -- mouse button to drag image +swayimg.viewer.set_window_background(0xff000000) -- window background color +swayimg.viewer.set_image_chessboard(20, 0xff333333, 0xff4c4c4c) -- chessboard +swayimg.viewer.enable_centering(true) -- enable automatic centering +swayimg.viewer.enable_loop(true) -- enable image list loop mode +swayimg.viewer.limit_preload(1) -- number of images to preload +swayimg.viewer.limit_history(1) -- number of the history cache +swayimg.viewer.set_mark_color(0xff808080) -- mark icon color +swayimg.viewer.set_pinch_factor(1.0) -- pinch gesture factor +swayimg.viewer.set_text("topleft", { -- top left text block scheme + "File: {name}", + "Format: {format}", + "File size: {sizehr}", + "File time: {time}", + "EXIF date: {meta.Exif.Photo.DateTimeOriginal}", + "EXIF camera: {meta.Exif.Image.Model}" +}) +swayimg.viewer.set_text("topright", { -- top right text block scheme + "Image: {list.index} of {list.total}", + "Frame: {frame.index} of {frame.total}", + "Size: {frame.width}x{frame.height}" +}) +swayimg.viewer.set_text("bottomleft", { -- bottom left text block scheme + "Scale: {scale}" +}) + +-- Key and mouse bindings in viewer mode (example only, not all): + +-- bind Escape key for exit +swayimg.viewer.on_key("Escape", function() + swayimg.exit() +end) +-- bind the left arrow key to move the image to the left by 1/10 of the application window size +swayimg.viewer.on_key("Left", function() + local wnd = swayimg.get_window_size() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(math.floor(pos.x + wnd.width / 10), pos.y); +end) +-- bind mouse vertical scroll button with pressed Ctrl to zoom in the image at mouse pointer coordinates +swayimg.viewer.on_mouse("Ctrl-ScrollUp", function() + local pos = swayimg.get_mouse_pos() + local scale = swayimg.viewer.get_scale() + scale = scale + scale / 10 + swayimg.viewer.set_abs_scale(scale, pos.x, pos.y); +end) + + +-- Slide show mode, same config as for viewer mode with the following defaults: +swayimg.slideshow.set_timeout(5) -- timeout to switch image +swayimg.slideshow.set_default_scale("fit") -- default image scale +swayimg.slideshow.set_window_background("auto") -- window background mode +swayimg.slideshow.limit_history(0) -- number of the history cache +swayimg.slideshow.set_text("topleft", { "{name}" }) -- top left text block scheme + + +-- Gallery mode +swayimg.gallery.set_aspect("fill") -- thumbnail aspect ratio +swayimg.gallery.set_thumb_size(200) -- thumbnail size in pixels +swayimg.gallery.set_padding_size(5) -- padding between thumbnails +swayimg.gallery.set_border_size(5) -- border size for selected thumbnail +swayimg.gallery.set_border_color(0xffaaaaaa) -- border color for selected thumbnail +swayimg.gallery.set_selected_scale(1.15) -- scale for selected thumbnail +swayimg.gallery.set_selected_color(0xff404040) -- background color for selected thumbnail +swayimg.gallery.set_unselected_color(0xff202020) -- background color for unselected thumbnail +swayimg.gallery.set_window_color(0xff000000) -- window background color +swayimg.gallery.set_pinch_factor(100.0) -- pinch gesture factor +swayimg.gallery.enable_hover(true) -- enable mouse following +swayimg.gallery.limit_cache(100) -- number of thumbnails stored in memory +swayimg.gallery.enable_embedded_thumb(true) -- use embedded thumbnails +swayimg.gallery.enable_preload(false) -- preloading invisible thumbnails +swayimg.gallery.enable_pstore(false) -- enable persistent storage for thumbnails +swayimg.gallery.set_text("topleft", { -- top left text block scheme + "File: {name}" +}) +swayimg.gallery.set_text("topright", { -- top right text block scheme + "{list.index} of {list.total}" +}) + +-- Key and mouse bindings in gallery mode (example only, not all): + +-- bind Enter key to open image in viewer +swayimg.gallery.on_key("Return", function() + swayimg.set_mode("viewer") +end) +-- bind the left arrow key to select thumbnail on the left side +swayimg.gallery.on_key("Left", function() + swayimg.gallery.switch_image("left") +end) + +-- +-- Other configuration examples +-- + +-- force set scale mode on window resize (useful for tiling compositors) +swayimg.on_window_resize(function() + swayimg.viewer.set_fix_scale("optimal") +end) + +-- bind the Delete key in slide show mode to delete the current file and display a status message +swayimg.slideshow.on_key("Delete", function() + local image = swayimg.slideshow.get_image() + os.remove(image.path) + swayimg.text.set_status("File "..image.path.." removed") +end) + +-- set a custom window title in gallery mode +swayimg.gallery.on_image_change(function() + local image = swayimg.gallery.get_image() + swayimg.set_title("Gallery: "..image.path) +end) + +-- print paths to all marked files by pressing Ctrl-p in gallery mode +swayimg.gallery.on_key("Ctrl-p", function() + local entries = swayimg.imagelist.get() + for _, entry in ipairs(entries) do + if entry.mark then + print(entry.path) + end + end +end) diff --git a/hosts/sctfw004/config/swayimg/init.lua b/hosts/sctfw004/config/swayimg/init.lua new file mode 100644 index 0000000..2d4c67f --- /dev/null +++ b/hosts/sctfw004/config/swayimg/init.lua @@ -0,0 +1,148 @@ +-- General config +swayimg.set_mode("viewer") -- mode at startup +swayimg.enable_antialiasing(true) -- anti-aliasing +swayimg.enable_decoration(true) -- window title/buttons/borders +swayimg.enable_overlay(false) -- window overlay mode +swayimg.enable_exif_orientation(true) -- image orientation by EXIF +swayimg.set_dnd_button("MouseRight") -- drag-and-drop mouse button + +-- Image list configuration +swayimg.imagelist.set_order("numeric") -- list order +swayimg.imagelist.enable_reverse(false) -- reverse order +swayimg.imagelist.enable_recursive(false) -- recursive directory reading +swayimg.imagelist.enable_adjacent(false) -- add adjacent files from same dir +swayimg.imagelist.enable_fsmon(true) -- enable file system monitoring + +-- Text overlay configuration +swayimg.text.set_font("FiraCode Nerd Font") -- font name +swayimg.text.set_size(12) -- font size in pixels +swayimg.text.set_spacing(0) -- line spacing +swayimg.text.set_padding(10) -- padding from window edge +swayimg.text.set_foreground(0xffcccccc) -- foreground text color +swayimg.text.set_background(0x00000000) -- text background color +swayimg.text.set_shadow(0x0d000000) -- text shadow color +swayimg.text.set_timeout(5) -- layer hide timeout +swayimg.text.set_status_timeout(3) -- status message hide timeout + +-- Image viewer mode +swayimg.viewer.set_default_scale("optimal") -- default image scale +swayimg.viewer.set_default_position("center") -- default image position +swayimg.viewer.set_drag_button("MouseLeft") -- mouse button to drag image +swayimg.viewer.set_window_background(0xff000000) -- window background color +swayimg.viewer.set_image_chessboard(20, 0xff333333, 0xff4c4c4c) -- chessboard +swayimg.viewer.enable_centering(true) -- enable automatic centering +swayimg.viewer.enable_loop(true) -- enable image list loop mode +swayimg.viewer.limit_preload(1) -- number of images to preload +swayimg.viewer.limit_history(1) -- number of the history cache +swayimg.viewer.set_mark_color(0xff808080) -- mark icon color +swayimg.viewer.set_pinch_factor(1.0) -- pinch gesture factor +swayimg.viewer.set_text("topleft", { -- top left text block scheme + "File: {name}", + "Format: {format}", + "File size: {sizehr}", + "File time: {time}", + "EXIF date: {meta.Exif.Photo.DateTimeOriginal}", + "EXIF camera: {meta.Exif.Image.Model}" +}) +swayimg.viewer.set_text("topright", { -- top right text block scheme + "Image: {list.index} of {list.total}", + "Frame: {frame.index} of {frame.total}", + "Size: {frame.width}x{frame.height}" +}) +swayimg.viewer.set_text("bottomleft", { -- bottom left text block scheme + "Scale: {scale}" +}) + +-- Key and mouse bindings in viewer mode (example only, not all): + +-- bind Escape key for exit +swayimg.viewer.on_key("Escape", function() + swayimg.exit() +end) +swayimg.viewer.on_key("q", function() + swayimg.exit() +end) +swayimg.viewer.on_key("h", function() + swayimg.viewer.switch_image("prev") +end) +swayimg.viewer.on_key("l", function() + swayimg.viewer.switch_image("next") +end) +-- bind mouse vertical scroll button with pressed Ctrl to zoom in the image at mouse pointer coordinates +swayimg.viewer.on_mouse("Ctrl-ScrollUp", function() + local pos = swayimg.get_mouse_pos() + local scale = swayimg.viewer.get_scale() + scale = scale + scale / 10 + swayimg.viewer.set_abs_scale(scale, pos.x, pos.y); +end) + + +-- Slide show mode, same config as for viewer mode with the following defaults: +swayimg.slideshow.set_timeout(5) -- timeout to switch image +swayimg.slideshow.set_default_scale("fit") -- default image scale +swayimg.slideshow.set_window_background("auto") -- window background mode +swayimg.slideshow.limit_history(0) -- number of the history cache +swayimg.slideshow.set_text("topleft", { "{name}" }) -- top left text block scheme + + +-- Gallery mode +swayimg.gallery.set_aspect("fill") -- thumbnail aspect ratio +swayimg.gallery.set_thumb_size(200) -- thumbnail size in pixels +swayimg.gallery.set_padding_size(5) -- padding between thumbnails +swayimg.gallery.set_border_size(5) -- border size for selected thumbnail +swayimg.gallery.set_border_color(0xffaaaaaa) -- border color for selected thumbnail +swayimg.gallery.set_selected_scale(1.15) -- scale for selected thumbnail +swayimg.gallery.set_selected_color(0xff404040) -- background color for selected thumbnail +swayimg.gallery.set_unselected_color(0xff202020) -- background color for unselected thumbnail +swayimg.gallery.set_window_color(0xff000000) -- window background color +swayimg.gallery.set_pinch_factor(100.0) -- pinch gesture factor +swayimg.gallery.enable_hover(true) -- enable mouse following +swayimg.gallery.limit_cache(100) -- number of thumbnails stored in memory +swayimg.gallery.enable_embedded_thumb(true) -- use embedded thumbnails +swayimg.gallery.enable_preload(false) -- preloading invisible thumbnails +swayimg.gallery.enable_pstore(false) -- enable persistent storage for thumbnails +swayimg.gallery.set_text("topleft", { -- top left text block scheme + "File: {name}" +}) +swayimg.gallery.set_text("topright", { -- top right text block scheme + "{list.index} of {list.total}" +}) + +-- Key and mouse bindings in gallery mode (example only, not all): + +-- bind Enter key to open image in viewer +swayimg.gallery.on_key("Return", function() + swayimg.set_mode("viewer") +end) + +-- +-- Other configuration examples +-- + +-- force set scale mode on window resize (useful for tiling compositors) +swayimg.on_window_resize(function() + swayimg.viewer.set_fix_scale("optimal") +end) + +-- bind the Delete key in slide show mode to delete the current file and display a status message +swayimg.slideshow.on_key("Delete", function() + local image = swayimg.slideshow.get_image() + os.remove(image.path) + swayimg.text.set_status("File "..image.path.." removed") +end) + +-- set a custom window title in gallery mode +swayimg.gallery.on_image_change(function() + local image = swayimg.gallery.get_image() + swayimg.set_title("Gallery: "..image.path) +end) + +-- print paths to all marked files by pressing Ctrl-p in gallery mode +swayimg.gallery.on_key("Ctrl-p", function() + local entries = swayimg.imagelist.get() + for _, entry in ipairs(entries) do + if entry.mark then + print(entry.path) + end + end +end) diff --git a/hosts/sctfw004/config/swaync/colors.css b/hosts/sctfw004/config/swaync/colors.css new file mode 100644 index 0000000..78b12c5 --- /dev/null +++ b/hosts/sctfw004/config/swaync/colors.css @@ -0,0 +1,19 @@ +@define-color background #121110; +@define-color foreground #FCF7F2; + +@define-color color0 #3A3939; +@define-color color1 #A78C72; +@define-color color2 #A99F97; +@define-color color3 #ABB0A9; +@define-color color4 #C9BBAC; +@define-color color5 #F8DEC5; +@define-color color6 #F7E7D9; +@define-color color7 #F3EAE3; +@define-color color8 #AAA49F; +@define-color color9 #A78C72; +@define-color color10 #A99F97; +@define-color color11 #ABB0A9; +@define-color color12 #C9BBAC; +@define-color color13 #F8DEC5; +@define-color color14 #F7E7D9; +@define-color color15 #F3EAE3; diff --git a/hosts/sctfw004/config/tiling-assistant/tiledSessionRestore.json b/hosts/sctfw004/config/tiling-assistant/tiledSessionRestore.json new file mode 100644 index 0000000..f6e1da3 --- /dev/null +++ b/hosts/sctfw004/config/tiling-assistant/tiledSessionRestore.json @@ -0,0 +1 @@ +{"windows":[{"windowId":3,"isTiled":false,"tiledRect":null,"untiledRect":{"x":-233,"y":32,"width":2612,"height":1492}},{"windowId":45,"isTiled":true,"tiledRect":{"x":2560,"y":0,"width":963,"height":1440},"untiledRect":{"x":4005,"y":602,"width":978,"height":736}},{"windowId":28,"isTiled":true,"tiledRect":{"x":3523,"y":0,"width":1597,"height":1440},"untiledRect":{"x":4567,"y":337,"width":983,"height":529}}],"tileGroups":[[3538281541,[3538281558,3538281541]],[3538281558,[3538281558,3538281541]]]} \ No newline at end of file diff --git a/hosts/sctfw004/config/traggo/token b/hosts/sctfw004/config/traggo/token new file mode 100644 index 0000000..8ccdadb --- /dev/null +++ b/hosts/sctfw004/config/traggo/token @@ -0,0 +1 @@ +p5zLx2PnMWdldJdRKSqB \ No newline at end of file diff --git a/hosts/sctfw004/config/user-dirs.dirs b/hosts/sctfw004/config/user-dirs.dirs new file mode 100644 index 0000000..c238ea2 --- /dev/null +++ b/hosts/sctfw004/config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/" +XDG_DOWNLOAD_DIR="$HOME/Downloads" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/" diff --git a/hosts/sctfw004/config/uv/uv-receipt.json b/hosts/sctfw004/config/uv/uv-receipt.json new file mode 100644 index 0000000..fd5028a --- /dev/null +++ b/hosts/sctfw004/config/uv/uv-receipt.json @@ -0,0 +1 @@ +{"binaries":["uv","uvx"],"binary_aliases":{},"cdylibs":[],"cstaticlibs":[],"install_layout":"flat","install_prefix":"/home/connorjohnstone/.local/bin","modify_path":true,"provider":{"source":"cargo-dist","version":"0.31.0"},"source":{"app_name":"uv","name":"uv","owner":"astral-sh","release_type":"github"},"version":"0.11.28"} diff --git a/hosts/sctfw004/config/xdg-desktop-portal/portals.conf b/hosts/sctfw004/config/xdg-desktop-portal/portals.conf new file mode 100644 index 0000000..73fbfb5 --- /dev/null +++ b/hosts/sctfw004/config/xdg-desktop-portal/portals.conf @@ -0,0 +1,6 @@ +[preferred] +default=hyprland;gtk +org.freedesktop.impl.portal.ScreenCast=hyprland +org.freedesktop.impl.portal.Screenshot=hyprland +org.freedesktop.impl.portal.FileChooser=gtk +org.freedesktop.impl.portal.Settings=gtk diff --git a/hosts/sctfw004/config/zoom.conf b/hosts/sctfw004/config/zoom.conf new file mode 100644 index 0000000..ae27d19 --- /dev/null +++ b/hosts/sctfw004/config/zoom.conf @@ -0,0 +1,3 @@ +[General] +initialize_flag=1 +random_key="vdMTT5fo/jNYQ34IidotpXAfH9STJX7BbHw0Cixytbw=" diff --git a/hosts/sctfw004/config/zoomus.conf b/hosts/sctfw004/config/zoomus.conf new file mode 100644 index 0000000..7059f74 --- /dev/null +++ b/hosts/sctfw004/config/zoomus.conf @@ -0,0 +1,66 @@ +[General] +GeoLocale=system +SensitiveInfoMaskOn=true +ShowBiDirecSyncNoti=true +autoPlayGif=false +bForceMaximizeWM=false +captureHDCamera=true +cefInstanceCountLimit=-1 +cefRefreshTime=0 +chatListPanelLastWidth=320 +com.zoom.client.langid=0 +conf.webserver=https://zoom.us +currentMeetingId=82199284629 +deviceID=44:F7:9F:DA:68:95 +disableCef=false +disableUsePasskey=false +enable.host.auto.grab=true +enableAlphaBuffer=true +enableCefGpu=false +enableCefLog=false +enableCefOsrMode=true +enableCefTa=false +enableCloudSwitch=true +enableLog=true +enableMiniWindow=true +enableQmlCache=true +enableScreenSaveGuard=false +enableStartMeetingWithRoomSystem=false +enableTestMode=false +enableUnifywebviewTa=false +enablegpucomputeutilization=false +fake.version= +flashChatTime=0 +forceEnableTrayIcon=true +forceSSOURL= +hideCrashReport=false +host.auto.grab.interval=10 +isTransCoding=false +legacyAvatarCacheCleaned=1781022922 +logLevel=info +newMeetingWithVideo=true +noSandbox=false +playSoundForNewMessage=false +shareBarTopMargin=0 +shortcut_as_global_ShortcutID_Screenshot=false +shortcut_as_global_ShortcutID_ShowHideFloatingMeetingControls=true +showOneTimePTAICTipHubble=false +showOneTimeQueriesOptionTip=true +showOneTimeSmartRecognitionCoackMark=true +showOneTimeTranslationUpSellTip=false +showSystemTitlebar=false +speaker_volume=255 +sso_domain=.zoom.us +sso_gov_domain=.zoomgov.com +system.audio.type=default +systemDockMargin=0 +timeFormat12HoursEnable=true +translationFreeTrialTipShowTime=0 +upcoming_meeting_header_image= +useSystemTheme=false +userEmailAddress= +webview.debug.enable=false +xwayland=true + +[AS] +showframewindow=true diff --git a/hosts/system76/config/beets/config.yaml b/hosts/system76/config/beets/config.yaml new file mode 100644 index 0000000..fabcccf --- /dev/null +++ b/hosts/system76/config/beets/config.yaml @@ -0,0 +1,9 @@ +directory: /srv/audio/music/gaps +library: ~/.cache/beets/musiclibrary.db + +import: + copy: no + # write: no # Don't modify tags + +plugins: + - musicbrainz diff --git a/hosts/system76/config/beets/state.pickle b/hosts/system76/config/beets/state.pickle new file mode 100644 index 0000000..712d854 Binary files /dev/null and b/hosts/system76/config/beets/state.pickle differ diff --git a/hosts/system76/config/bob/config.json b/hosts/system76/config/bob/config.json new file mode 100644 index 0000000..45f1831 --- /dev/null +++ b/hosts/system76/config/bob/config.json @@ -0,0 +1,3 @@ +{ + "add_neovim_binary_to_path": true +} \ No newline at end of file diff --git a/hosts/system76/config/bottom/bottom.toml b/hosts/system76/config/bottom/bottom.toml new file mode 100644 index 0000000..0f86c4c --- /dev/null +++ b/hosts/system76/config/bottom/bottom.toml @@ -0,0 +1,317 @@ +# This is a default config file for bottom. All of the settings are commented +# out by default; if you wish to change them uncomment and modify as you see +# fit. + +# This group of options represents a command-line option. Flags explicitly +# added when running (ie: btm -a) will override this config file if an option +# is also set here. +[flags] +# Whether to hide the average cpu entry. +#hide_avg_cpu = false + +# Whether to use a dedicated row for the average cpu entry +#average_cpu_row = false + +# Whether to use dot markers rather than braille. +#dot_marker = false + +# The update rate of the application. +#rate = "1s" + +# Whether to put the CPU legend to the left. +#cpu_left_legend = false + +# Whether to set CPU% on a process to be based on the total CPU or just current usage. +#current_usage = false + +# Whether to set CPU% on a process to be based on the total CPU or per-core CPU% (not divided by the number of cpus). +#unnormalized_cpu = false + +# Whether to group processes with the same name together by default. Doesn't do anything +# if tree is set to true or --tree is set. +#group_processes = false + +# Whether to make process searching case sensitive by default. +#case_sensitive = false + +# Whether to make process searching look for matching the entire word by default. +#whole_word = false + +# Whether to make process searching use regex by default. +#regex = false + +# The temperature unit. One of the following, defaults to "c" for Celsius: +#temperature_type = "c" +##temperature_type = "k" +##temperature_type = "f" +##temperature_type = "kelvin" +##temperature_type = "fahrenheit" +##temperature_type = "celsius" + +# The default time interval (in milliseconds). +#default_time_value = "60s" + +# The time delta on each zoom in/out action (in milliseconds). +#time_delta = 15000 + +# Hides the time scale. +#hide_time = false + +# Override layout default widget +#default_widget_type = "proc" +#default_widget_count = 1 + +# Expand selected widget upon starting the app +#expanded = true + +# Use basic mode +#basic = false + +# Use the old network legend style +#use_old_network_legend = false + +# Remove space in tables +#hide_table_gap = false + +# Show the battery widgets +#battery = false + +# Disable mouse clicks +#disable_click = false + +# Disable keyboard shortcuts +#disable_keys = false + +# Show memory values in the processes widget as values by default +#process_memory_as_value = false + +# Show tree mode by default in the processes widget. +#tree = false + +# Shows an indicator in table widgets tracking where in the list you are. +#show_table_scroll_position = false + +# Show processes as their commands by default in the process widget. +#process_command = false + +# Displays the network widget with binary prefixes. +#network_use_binary_prefix = false + +# Displays the network widget using bytes. +#network_use_bytes = false + +# Displays the network widget with a log scale. +#network_use_log = false + +# Hides advanced options to stop a process on Unix-like systems. +#disable_advanced_kill = false + +# Prevents performing any actions that affect the system (e.g. stopping processes). +#read_only = false + +# Hides the kernel threads +#hide_k_threads = false + +# Hide GPU(s) information +#disable_gpu = false + +# Shows cache and buffer memory +#enable_cache_memory = false + +# Subtract freeable ARC from memory usage +#free_arc = false + +# How much data is stored at once in terms of time. +#retention = "10m" + +# Where to place the legend for the memory widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right". +#memory_legend = "top-right" + +# Where to place the legend for the network widget. One of "none", "top-left", "top", "top-right", "left", "right", "bottom-left", "bottom", "bottom-right". +#network_legend = "top-right" + + +# Processes widget configuration +#[processes] +# The columns shown by the process widget. The following columns are supported (the GPU columns are only available if the GPU feature is enabled when built): +# PID, Name, CPU%, Mem%, R/s, W/s, T.Read, T.Write, User, State, Time, GMem%, GPU%, Nice, Priority +#columns = ["PID", "Name", "CPU%", "Mem%", "Virt", "R/s", "W/s", "T.Read", "T.Write", "User", "State", "GMem%", "GPU%", "Priority"] + +# Gather process child thread information +#get_threads = false + + +# CPU widget configuration +#[cpu] +# One of "all" (default), "average"/"avg" +#default = "average" + + +# Disk widget configuration +#[disk] +# The columns shown by the process widget. The following columns are supported: +# Disk, Mount, Used, Free, Total, Used%, Free%, R/s, W/s +#columns = ["Disk", "Mount", "Used", "Free", "Total", "Used%", "R/s", "W/s"] + +# By default, there are no disk name filters enabled. These can be turned on to filter out specific data entries if you +# don't want to see them. An example use case is provided below. +#[disk.name_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + +# By default, there are no mount name filters enabled. An example use case is provided below. +#[disk.mount_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["/mnt/.*", "/boot"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# Temperature widget configuration +#[temperature] +# By default, there are no temperature sensor filters enabled. An example use case is provided below. +#[temperature.sensor_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["cpu", "wifi"] + +# Whether to use regex. Defaults to false. +#regex = false + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# Network widget configuration +#[network] +# By default, there are no network interface filters enabled. An example use case is provided below. +#[network.interface_filter] +# Whether to ignore any matches. Defaults to true. +#is_list_ignored = true + +# A list of filters to try and match. +#list = ["virbr0.*"] + +# Whether to use regex. Defaults to false. +#regex = true + +# Whether to be case-sensitive. Defaults to false. +#case_sensitive = false + +# Whether to be require matching the whole word. Defaults to false. +#whole_word = false + + +# These are all the components that support custom theming. Note that colour support +# will depend on terminal support. +#[styles] # Uncomment if you want to use custom styling +# Built-in themes. Valid values are: +# - "default" +# - "default-light" +# - "gruvbox" +# - "gruvbox-light" +# - "nord" +# - "nord-light". +# +# This will have the lowest precedence if a custom colour palette is set, +# or overridden if the command-line flag for a built-in theme is set. +#theme = "default" + +#[styles.cpu] +#all_entry_color = "green" +#avg_entry_color = "red" +#cpu_core_colors = ["light magenta", "light yellow", "light cyan", "light green", "light blue", "cyan", "green", "blue"] + +#[styles.memory] +#ram_color = "light magenta" +#cache_color = "light red" +#swap_color = "light yellow" +#arc_color = "light cyan" +#gpu_colors = ["light blue", "light red", "cyan", "green", "blue", "red"] + +#[styles.network] +#rx_color = "light magenta" +#tx_color = "light yellow" +#rx_total_color = "light cyan" +#tx_total_color = "light green" + +#[styles.battery] +#high_battery_color = "green" +#medium_battery_color = "yellow" +#low_battery_color = "red" + +#[styles.tables] +#headers = {color = "light blue", bold = true} + +#[styles.graphs] +#graph_color = "gray" +#legend_text = {color = "gray"} + +#[styles.widgets] +#border_color = "gray" +#selected_border_color = "light blue" +#widget_title = {color = "gray"} +#text = {color = "gray"} +#selected_text = {color = "black", bg_color = "light blue"} +#disabled_text = {color = "dark gray"} + +# Only on Linux +#thread_text = {color = "green"} + +# Layout - layouts follow a pattern like this: +# [[row]] represents a row in the application. +# [[row.child]] represents either a widget or a column. +# [[row.child.child]] represents a widget. +# +# All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. +# All layout components have a ratio value - if this is not set, then it defaults to 1. +# The default widget layout: +#[[row]] +# ratio=30 +# [[row.child]] +# type="cpu" +#[[row]] +# ratio=40 +# [[row.child]] +# ratio=4 +# type="mem" +# [[row.child]] +# ratio=3 +# [[row.child.child]] +# type="temp" +# [[row.child.child]] +# type="disk" +#[[row]] +# ratio=30 +# [[row.child]] +# type="net" +# [[row.child]] +# type="proc" +# default=true diff --git a/hosts/system76/config/glow/glow.yml b/hosts/system76/config/glow/glow.yml new file mode 100644 index 0000000..271e9a1 --- /dev/null +++ b/hosts/system76/config/glow/glow.yml @@ -0,0 +1,8 @@ +# style name or JSON path (default "auto") +style: "auto" +# mouse support (TUI-mode only) +mouse: false +# use pager to display markdown +pager: false +# word-wrap at width +width: 80 diff --git a/hosts/system76/config/gtk-2.0/gtkfilechooser.ini b/hosts/system76/config/gtk-2.0/gtkfilechooser.ini new file mode 100644 index 0000000..8f4b507 --- /dev/null +++ b/hosts/system76/config/gtk-2.0/gtkfilechooser.ini @@ -0,0 +1,11 @@ +[Filechooser Settings] +LocationMode=path-bar +ShowHidden=false +ShowSizeColumn=true +GeometryX=3336 +GeometryY=579 +GeometryWidth=1008 +GeometryHeight=692 +SortColumn=name +SortOrder=ascending +StartupMode=recent diff --git a/hosts/system76/config/gtk-3.0/bookmarks b/hosts/system76/config/gtk-3.0/bookmarks new file mode 100644 index 0000000..db3fbb3 --- /dev/null +++ b/hosts/system76/config/gtk-3.0/bookmarks @@ -0,0 +1,6 @@ +file:///home/connor/docs/revolution +file:///home/connor/docs/lightburn +file:///home/connor/docs +file:///home/connor/docs/canonical_app +file:///home/connor/downloads +file:///tmp diff --git a/hosts/system76/config/mimeapps.list b/hosts/system76/config/mimeapps.list new file mode 100644 index 0000000..d6a46fe --- /dev/null +++ b/hosts/system76/config/mimeapps.list @@ -0,0 +1,5 @@ +[Added Associations] +application/x-compressed-tar=xarchiver.desktop;org.gnome.Nautilus.desktop; + +[Default Applications] +x-scheme-handler/claude-cli=claude-code-url-handler.desktop diff --git a/hosts/system76/config/mpd/mpd.conf b/hosts/system76/config/mpd/mpd.conf new file mode 100644 index 0000000..d63e472 --- /dev/null +++ b/hosts/system76/config/mpd/mpd.conf @@ -0,0 +1,419 @@ +# An example configuration file for MPD. +# Read the user manual for documentation: http://www.musicpd.org/doc/user/ + + +# Files and directories ####################################################### +# +# This setting controls the top directory which MPD will search to discover the +# available audio files and add them to the daemon's online database. This +# setting defaults to the XDG directory, otherwise the music directory will be +# be disabled and audio files will only be accepted over ipc socket (using +# file:// protocol) or streaming files over an accepted protocol. +# +music_directory "~/audio/music" +# +# This setting sets the MPD internal playlist directory. The purpose of this +# directory is storage for playlists created by MPD. The server will use +# playlist files not created by the server but only if they are in the MPD +# format. This setting defaults to playlist saving being disabled. +# +playlist_directory "~/audio/playlists" +# +# This setting sets the location of the MPD database. This file is used to +# load the database at server start up and store the database while the +# server is not up. This setting defaults to disabled which will allow +# MPD to accept files over ipc socket (using file:// protocol) or streaming +# files over an accepted protocol. +# +db_file "~/audio/mpd/database" + +# These settings are the locations for the daemon log files for the daemon. +# +# The special value "syslog" makes MPD use the local syslog daemon. This +# setting defaults to logging to syslog. +# +# If you use systemd, do not configure a log_file. With systemd, MPD +# defaults to the systemd journal, which is fine. +# +log_file "~/audio/mpd/log" + +# This setting sets the location of the file which stores the process ID +# for use of mpd --kill and some init scripts. This setting is disabled by +# default and the pid file will not be stored. +# +# If you use systemd, do not configure a pid_file. +# +pid_file "~/audio/mpd/pid" + +# This setting sets the location of the file which contains information about +# most variables to get MPD back into the same general shape it was in before +# it was brought down. This setting is disabled by default and the server +# state will be reset on server start up. +# +state_file "~/audio/mpd/state" +# +# The location of the sticker database. This is a database which +# manages dynamic information attached to songs. +# +sticker_file "~/audio/mpd/sticker.sql" +# +############################################################################### + + +# General music daemon options ################################################ +# +# This setting specifies the user that MPD will run as. MPD should never run as +# root and you may use this setting to make MPD change its user ID after +# initialization. This setting is disabled by default and MPD is run as the +# current user. +# +#user "nobody" +# +# This setting specifies the group that MPD will run as. If not specified +# primary group of user specified with "user" setting will be used (if set). +# This is useful if MPD needs to be a member of group such as "audio" to +# have permission to use sound card. +# +#group "nogroup" +# +# This setting sets the address for the daemon to listen on. Careful attention +# should be paid if this is assigned to anything other than the default, any. +# This setting can deny access to control of the daemon. Not effective if +# systemd socket activation is in use. +# +# For network +#bind_to_address "any" +# +# And for Unix Socket +#bind_to_address "~/.mpd/socket" +# +# This setting is the TCP port that is desired for the daemon to get assigned +# to. +# +#port "6600" +# +# Suppress all messages below the given threshold. Use "verbose" for +# troubleshooting. Available setting arguments are "notice", "info", "verbose", +# "warning" and "error". +# +#log_level "notice" +# +# Setting "restore_paused" to "yes" puts MPD into pause mode instead +# of starting playback after startup. +# +#restore_paused "no" +# +# This setting enables MPD to create playlists in a format usable by other +# music players. +# +#save_absolute_paths_in_playlists "no" +# +# This setting defines a list of tag types that will be extracted during the +# audio file discovery process. The complete list of possible values can be +# found in the user manual. +#metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc" +# +# This example just enables the "comment" tag without disabling all +# the other supported tags: +#metadata_to_use "+comment" +# +# This setting enables automatic update of MPD's database when files in +# music_directory are changed. +# +#auto_update "yes" +# +# Limit the depth of the directories being watched, 0 means only watch +# the music directory itself. There is no limit by default. +# +#auto_update_depth "3" +# +############################################################################### + + +# Symbolic link behavior ###################################################### +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links outside of the configured music_directory. +# +#follow_outside_symlinks "yes" +# +# If this setting is set to "yes", MPD will discover audio files by following +# symbolic links inside of the configured music_directory. +# +#follow_inside_symlinks "yes" +# +############################################################################### + + +# Zeroconf / Avahi Service Discovery ########################################## +# +# If this setting is set to "yes", service information will be published with +# Zeroconf / Avahi. +# +#zeroconf_enabled "yes" +# +# The argument to this setting will be the Zeroconf / Avahi unique name for +# this MPD server on the network. %h will be replaced with the hostname. +# +#zeroconf_name "Music Player @ %h" +# +############################################################################### + + +# Permissions ################################################################# +# +# If this setting is set, MPD will require password authorization. The password +# setting can be specified multiple times for different password profiles. +# +#password "password@read,add,control,admin" +# +# This setting specifies the permissions a user has who has not yet logged in. +# +#default_permissions "read,add,control,admin" +# +############################################################################### + + +# Database ####################################################################### +# +# An example of a database section instead of the old 'db_file' setting. +# It enables mounting other storages into the music directory. +# +#database { +# plugin "simple" +# path "~/.local/share/mpd/db" +# cache_directory "~/.local/share/mpd/cache" +#} +# +# An example of database config for a satellite setup +# +#music_directory "nfs://fileserver.local/srv/mp3" +#database { +# plugin "proxy" +# host "other.mpd.host" +# port "6600" +#} + +# Input ####################################################################### +# +input { + plugin "curl" +# proxy "proxy.isp.com:8080" +# proxy_user "user" +# proxy_password "password" +} + +# +############################################################################### + +# Audio Output ################################################################ +# +# MPD supports various audio output types, as well as playing through multiple +# audio outputs at the same time, through multiple audio_output settings +# blocks. Setting this block is optional, though the server will only attempt +# autodetection for one sound card. +# +# An example of an ALSA output: +# +#audio_output { +# type "alsa" +# name "My ALSA Device" +## device "hw:0,0" # optional +## mixer_type "hardware" # optional +## mixer_device "default" # optional +## mixer_control "PCM" # optional +## mixer_index "0" # optional +#} +# +# An example of an OSS output: +# +#audio_output { +# type "oss" +# name "My OSS Device" +## device "/dev/dsp" # optional +## mixer_type "hardware" # optional +## mixer_device "/dev/mixer" # optional +## mixer_control "PCM" # optional +#} +# +# An example of a shout output (for streaming to Icecast): +# +#audio_output { +# type "shout" +# encoder "vorbis" # optional +# name "My Shout Stream" +# host "localhost" +# port "8000" +# mount "/mpd.ogg" +# password "hackme" +# quality "5.0" +# bitrate "128" +# format "44100:16:1" +## protocol "icecast2" # optional +## user "source" # optional +## description "My Stream Description" # optional +## url "http://example.com" # optional +## genre "jazz" # optional +## public "no" # optional +## timeout "2" # optional +## mixer_type "software" # optional +#} +# +# An example of a recorder output: +# +#audio_output { +# type "recorder" +# name "My recorder" +# encoder "vorbis" # optional, vorbis or lame +# path "/var/lib/mpd/recorder/mpd.ogg" +## quality "5.0" # do not define if bitrate is defined +# bitrate "128" # do not define if quality is defined +# format "44100:16:1" +#} +# +# An example of a httpd output (built-in HTTP streaming server): +# +#audio_output { +# type "httpd" +# name "My HTTP Stream" +# encoder "vorbis" # 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 +#} +# +# An example of a pulseaudio output (streaming to a remote pulseaudio server) +# +audio_output { +type "pulse" +name "PulseAudio MPD Output" +# server "remote_server" # optional +# sink "remote_server_sink" # optional +# media_role "media_role" #optional +} +# +# An example of a winmm output (Windows multimedia API). +# +#audio_output { +# type "winmm" +# name "My WinMM output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +#} +# +# An example of a wasapi output (Windows multimedia API). +# +#audio_output { +# type "wasapi" +# name "My WASAPI output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +# or +## device "0" # optional +## mixer_type "hardware" # optional +## Exclusive mode blocks all other audio source, and get best audio quality without resampling. +## exclusive "no" # optional +## Enumerate all devices in log. +## enumerate "no" # optional +#} +# +# An example of an openal output. +# +#audio_output { +# type "openal" +# name "My OpenAL output" +## device "Digital Audio (S/PDIF) (High Definition Audio Device)" # optional +#} +# +# An example of an sndio output. +# +#audio_output { +# type "sndio" +# name "sndio output" +# mixer_type "hardware" +#} +# +# An example of an OS X output: +# +#audio_output { +# type "osx" +# name "My OS X Device" +## device "Built-in Output" # optional +## channel_map "-1,-1,0,1" # optional +#} +# +## Example "pipe" output: +# +#audio_output { +# type "pipe" +# name "my pipe" +# command "aplay -f cd 2>/dev/null" +## Or if you're want to use AudioCompress +# command "AudioCompress -m | aplay -f cd 2>/dev/null" +## Or to send raw PCM stream through PCM: +# command "nc example.org 8765" +# format "44100:16:2" +#} +# +## An example of a null output (for no audio output): +# +#audio_output { +# type "null" +# name "My Null Output" +# mixer_type "none" # optional +#} +# +############################################################################### + + +# Normalization automatic volume adjustments ################################## +# +# This setting specifies the type of ReplayGain to use. This setting can have +# the argument "off", "album", "track" or "auto". "auto" is a special mode that +# chooses between "track" and "album" depending on the current state of +# random playback. If random playback is enabled then "track" mode is used. +# See for +# more details about ReplayGain. +# This setting is off by default. +# +replaygain "album" +# +# This setting sets the pre-amp used for files that have ReplayGain tags. By +# default this setting is disabled. +# +#replaygain_preamp "0" +# +# This setting sets the pre-amp used for files that do NOT have ReplayGain tags. +# By default this setting is disabled. +# +#replaygain_missing_preamp "0" +# +# This setting enables or disables ReplayGain limiting. +# MPD calculates actual amplification based on the ReplayGain tags +# and replaygain_preamp / replaygain_missing_preamp setting. +# If replaygain_limit is enabled MPD will never amplify audio signal +# above its original level. If replaygain_limit is disabled such amplification +# might occur. By default this setting is enabled. +# +#replaygain_limit "yes" +# +# This setting enables on-the-fly normalization volume adjustment. This will +# result in the volume of all playing audio to be adjusted so the output has +# equal "loudness". This setting is disabled by default. +# +volume_normalization "no" +# +############################################################################### + +# Character Encoding ########################################################## +# +# If file or directory names do not display correctly for your locale then you +# may need to modify this setting. +# +#filesystem_charset "UTF-8" +# +############################################################################### diff --git a/hosts/system76/config/mpv/script-opts/subs2srs.conf b/hosts/system76/config/mpv/script-opts/subs2srs.conf new file mode 100644 index 0000000..cd67003 --- /dev/null +++ b/hosts/system76/config/mpv/script-opts/subs2srs.conf @@ -0,0 +1,326 @@ +### +### Main mpvacious configuration file. +### Save this file to ~/.config/mpv/script-opts/subs2srs.conf +### + +## +## General settings +## + +# Anki deck for new cards. Subdecks are supported. +deck_name=Italian + +# Model names are listed in `Tools -> Manage note types` menu in Anki. +# If you don't have a model for Japanese, get it from +# https://tatsumoto.neocities.org/blog/setting-up-anki.html#import-an-example-mining-deck +model_name=Italian + +# Field names as they appear in the selected note type. +# If you set `audio_field` or `image_field` empty, +# the corresponding media file will not be created. +sentence_field=Italian +secondary_field=English +audio_field=Audio +image_field=Image + +# The tag(s) added to new notes. Spaces separate multiple tags. +# Leave nothing after `=` to disable tagging completely. +# The following substitutions are supported: +# %n - the name of the video +# %t - timestamp +# %d - episode number (if none, returns nothing) +# %e - SUBS2SRS_TAGS environment variable (if you have it set) +note_tag=subs2srs +#note_tag=%n %t %e +#note_tag= + +# Size and name of the font used in the menu +menu_font_size=24 +menu_font_name=Noto Serif CJK JP + +# AnkiConnect server address +# The default address for a server on the same device is http://127.0.0.1:8765. +# If Anki is running and AnkiConnect is installed, opening this URL should +# open a page showing the current version of AnkiConnect. +# Change this if you have changed webBindAddress in AnkiConnect's settings. +ankiconnect_url=127.0.0.1:8765 + +## +## Toggleables. +## Possible values: `yes` or `no`. +## + +# Use FFmpeg encoder instead of mpv encoder +# If mpvacious encounters problems creating audio and images for Anki cards, +# setting this to `yes` should fix them. +# +# You need to install ffmpeg and add it to the PATH first. +# https://wiki.archlinux.org/title/FFmpeg +# https://www.ffmpeg.org/download.html +# +# FFmpeg encoder is unable to create audio and images from remote content (like YouTube videos). +use_ffmpeg=no + +# Automatically create the deck for new cards (see deck_name option) +create_deck=yes + +# Allow making notes with the same sentence field. +allow_duplicates=no + +# When mpv starts, automatically copy subs to the clipboard as they appear on screen. +# This option can be also toggled in the addon's OSD menu. +autoclip=yes + +# Possible options: +# "disabled" - autocopy is disabled +# "clipboard" - copy to the system clipboard (e.g. uses xclip) +# "goldendict" - send the subtitle string to goldendict (goldendict-ng). +# "custom_command" - run any custom command specified in `autoclip_custom_args`. +autoclip_method=clipboard + +# Command to run when autoclip is enabled and set to "custom_command". +# If empty, nothing will be done. +# If set, calls the external program. +# The following substitutions are supported: +# %MPV_PRIMARY% - primary subtitle line +# %MPV_SECONDARY% - secondary subtitle line +autoclip_custom_args=/usr/local/bin/goldendict %MPV_PRIMARY% + +# Remove all spaces from the primary subtitle text. +# Set this to "yes" for languages without spaces like Japanese. +# However, if mpvacious detects any latin characters in the string, spaces will not be removed. +nuke_spaces=yes + +# if set to `yes`, the volume of the outputted audio file +# depends on the volume of the player at the time of export +tie_volumes=no + +# Remove text in parentheses and leading/trailing spaces or +# newlines that may interfere with Rikaitan before copying +# subtitles to the clipboard +clipboard_trim_enabled=yes + +# Add media to fields before or after existing data +append_media=yes + +# Remove text in brackets before substituting %n into tag +tag_nuke_brackets=yes + +# Remove text in parentheses before substituting %n into tag +tag_nuke_parentheses=no + +# Remove the episode number before substituting %n into tag +tag_del_episode_num=yes + +# Remove everything after the episode number before substituting %n into tag +# Does nothing if the previous option tag_del_episode_num is disabled. +tag_del_after_episode_num=yes + +# Convert filename to lowercase for tagging. +tag_filename_lowercase=no + +# Lets you disable anki browser manipulation by mpvacious. +disable_gui_browse=no + +# Play audio clip automatically in background +# after note creation (or note update) to ensure that the audio is correctly cut. +preview_audio=no + +# When selecting subtitle lines, print them on the screen. +show_selected_text=yes + +# For convenience, read config file from disk before a card is made. +# Useful if you change your config often since you won't have to restart mpv every time, +# but reading from disk takes some time. +reload_config_before_card_creation=yes + +## +## Image settings +## + +# Snapshot format. +# Do not switch to `jpg` unless your computer doesn't support `webp` or `avif`. +snapshot_format=avif +#snapshot_format=webp +#snapshot_format=jpg + +# Quality of produced image files. 0 = lowest, 100=highest. +snapshot_quality=15 + +# Image dimensions +# If either (but not both) of the width or height parameters is -2, +# the value will be calculated preserving the aspect-ratio. +snapshot_width=-2 +snapshot_height=200 + +# Screenshot (yes, no) +# Usually not required. +# When making Anki cards, create a screenshot (by calling 'screenshot-to-file') instead of a snapshot. +# If set to yes, image dimensions and quality cannot be controlled due to mpv limitations. +# 'snapshot_format' is still respected. +# When using this, a custom sync server is recommended, e.g. https://github.com/ankicommunity/anki-sync-server +screenshot=no + +# The exact image template used when exporting to Anki's image field. +# Adding data-editor-shrink="true" makes the image smaller by default within the Anki viewer +# on versions 2.1.53+ (equivalent of double-clicking on the image). +# You likely would not want to change this unless you know what you are doing. +image_template=snapshot +#image_template=snapshot + +# Similar to image_template but with audio. +# Normally, the user doesn't need to change this setting, +# but it may be needed for audio files to be playable on AnkiWeb. +audio_template=[sound:%s] +#audio_template= + +## +## Animated snapshots +## Animated snapshots will capture the video from the start to the end times selected when using mpvacious. +## + +# If enabled, generates animated snapshots (something like GIFs) instead of static snapshots. +animated_snapshot_enabled=no + +# Animated snapshot format. Like "snapshot_format" but for animated images. Can be either avif or webp. +animated_snapshot_format=avif +#animated_snapshot_format=webp + +# Number of frame per seconds, a value between 0 and 30 (30 included) +# Higher values will increase both quality and file size, lower values will do the opposite +animated_snapshot_fps=10 + +# Animated snapshot dimensions +# If either (but not both) of the width or height parameters is -2, +# the value will be calculated preserving the aspect-ratio. +animated_snapshot_width=-2 +animated_snapshot_height=200 + +# Quality of the produced animation, 0 = lowest, 100 = highest +animated_snapshot_quality=5 + +## +## Audio settings +## + +# Audio format. +# Opus is the recommended format. +audio_format=opus +#audio_format=mp3 + +# Container for opus files. +# It may be required to use a different container for Opus. +# This is the case on certain computers or devices +# which are running proprietary operating systems, e.g. AnkiMobile. Using them is discouraged. +# ・ Ogg/Opus play everywhere except AnkiWeb in Safari and AnkiMobile. +# ・ M4A (iOS 17.2 and probably even earlier) and WEBM (since iOS 17.4) play everywhere. +# ・ Opus in CAF can be used with older iOS. CAF plays only on Anki Desktop, Safari and AnkiMobile. +# ・ (iOS Lockdown Mode disables Opus support completely, +# though you may try to add an exception for AnkiMobile.) +opus_container=ogg +#opus_container=opus +#opus_container=m4a +#opus_container=webm +#opus_container=caf + +# Sane values are 16k-32k for opus, 64k-128k for mp3. +audio_bitrate=24k + +# Set a pad to the dialog timings. 0.5 = half a second. +# Pads are never applied to manually set timings. +audio_padding=0.0 +#audio_padding=0.5 + +## +## Forvo support (Rikaitan users only) +## + +# yes - fetch audio from Forvo if Rikaitan couldn't find the audio (default) +# always - always fetch audio from Forvo and replace the audio added by Rikaitan +# no - never use Forvo +use_forvo=yes + +# Vocab field should be equal to {expression} field in Rikaitan +vocab_field=VocabKanji + +# Vocab Audio field should be equal to {audio} field in Rikaitan +vocab_audio_field=VocabAudio + +## +## Misc info +## Various context information that can be written on your cards in a specified field. +## + +# yes to enable or no to disable. +miscinfo_enable=yes + +# Field name +miscinfo_field=Notes + +# Format string used to fill the misc info field. +# It supports the same substitutions as `note_tag`. HTML is supported. +miscinfo_format=%n EP%d (%t) +#miscinfo_format=From mpvacious %n at %t. + +## +## Secondary subtitles +## Mpvacious can try automatically loading secondary subtitles that will appear at the top. +## For example, you may want to load English subs alongside Japanese subs. +## +## Secondary subtitles should be present in the container. +## But if you manually set secondary sid from the command line, mpvacious won't change it. +## + +# Load secondary subtitle track automatically when a file is opened. +secondary_sub_auto_load=yes + +# Language of secondary subs. This is your native language or a language you know well. +# If you leave this parameter empty, secondary subs will NOT be automatically loaded. +secondary_sub_lang=eng,en,rus,ru +#secondary_sub_lang= + +# Hover area. +# Proportion of the top part of the mpv window where the secondary subtitles are visible when hovered over. +# Possible values: from 0.0 to 1.0 +secondary_sub_area=0.15 + +# Visibility state +# Can be set to: 'auto', 'never', 'always'. +# If set to 'never' or 'always', secondary_sub_area has no effect. +# If set to 'auto', visibility behaves according to the value of secondary_sub_area. +# Default binding to cycle this value: Ctrl+v. +secondary_sub_visibility=auto + +# Perform two-pass loudness normalization. +# Parameter explanation can be found e.g. at: +# https://auphonic.com/blog/2013/01/07/loudness-targets-mobile-audio-podcasts-radio-tv/ +# https://auphonic.com/blog/2019/08/19/dynamic-range-processing/ +# MAKE SURE TO REMOVE loudnorm FROM CUSTOM ARGS BEFORE ENABLING. +loudnorm=no +loudnorm_target=-16 +loudnorm_range=11 +loudnorm_peak=-1.5 + +## +## Custom audio encoding arguments +## These arguments are added to the command line. +## `mpv` and `ffmpeg` accept slightly different parameters. +## Feel free to experiment for yourself, but be careful or media creation might stop working. +## + +# loudnorm IN CUSTOM ARGS IS LEFT FOR BACKWARD COMPATIBILITY. +# MAKE SURE TO REMOVE ALL MENTIONS OF loudnorm FROM CUSTOM ARGS +# (E.G. SET TO EMPTY STRINGS) BEFORE ENABLING TWO-PASS loudnorm. +# ENABLING loudnorm BOTH THROUGH THE SWITCH AND THROUGH CUSTOM ARGS +# CAN LEAD TO UNPREDICTABLE RESULTS. + +# Ffmpeg +ffmpeg_audio_args=-af loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true +#ffmpeg_audio_args= +#ffmpeg_audio_args=-af silenceremove=1:0:-50dB + +# mpv +# mpv accepts each filter as a separate argument, e.g. --af-append=1 --af-append=2 +mpv_audio_args=--af-append=loudnorm=I=-16:TP=-1.5:LRA=11:dual_mono=true +#mpv_audio_args= +#mpv_audio_args=--af-append=silenceremove=1:0:-50dB diff --git a/hosts/system76/config/pavucontrol.ini b/hosts/system76/config/pavucontrol.ini new file mode 100644 index 0000000..d67bbba --- /dev/null +++ b/hosts/system76/config/pavucontrol.ini @@ -0,0 +1,8 @@ +[window] +width=500 +height=400 +sinkInputType=1 +sourceOutputType=1 +sinkType=0 +sourceType=1 +showVolumeMeters=1 diff --git a/hosts/system76/config/swayimg/config b/hosts/system76/config/swayimg/config new file mode 100644 index 0000000..85451d7 --- /dev/null +++ b/hosts/system76/config/swayimg/config @@ -0,0 +1,278 @@ +# Swayimg configuration file. +# vim: filetype=dosini + +# This file contains the default configuration. +# The viewer searches for the config file in the following locations: +# 1. $XDG_CONFIG_HOME/swayimg/config +# 2. $HOME/.config/swayimg/config +# 3. $XDG_CONFIG_DIRS/swayimg/config +# 4. /etc/xdg/swayimg/config + +# Any of these options can be overridden using the --config argument +# on the command line, for instance: +# $ swayimg --config="general.mode=gallery" + +################################################################################ +# General configuration +################################################################################ +[general] +# Mode at startup (viewer/slideshow/gallery) +mode = viewer +# Window size (fullscreen/image, or absolute size) +size = image +# Sway/Hyprland only: Window position (auto or absolute coordinates, e.g. 10,20) +position = auto +# Sway/Hyprland only: create floating window above the currently focused one +overlay = no +# Use window decoration (yes/no) +decoration = no +# Action performed by SIGUSR1 signal (same format as for key bindings) +sigusr1 = reload +# Action performed by SIGUSR2 signal (same format as for key bindings) +sigusr2 = next_file +# Application ID and window class name +app_id = swayimg + +################################################################################ +# Viewer mode configuration +################################################################################ +[viewer] +# Window background color (auto/extend/mirror/RGBA) +window = #00000000 +# Background for transparent images (grid/RGBA) +transparency = grid +# Default image scale (optimal/width/height/fit/fill/real/keep) +scale = optimal +# Initial image position on the window (center/top/bottom/free/...) +position = center +# Anti-aliasing mode (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 +# Loop image list: jump to first image when end of list is reached (yes/no) +loop = yes +# Number of previously viewed images to store in cache +history = 1 +# Number of preloaded images (read ahead) +preload = 1 + +################################################################################ +# Slideshow mode configuration +################################################################################ +[slideshow] +# Slideshow image display time (seconds) +time = 3 +# Window background color (auto/extend/mirror/RGBA) +window = auto +# Background for transparent images (grid/RGBA) +transparency = #000000ff +# Default image scale (optimal/width/height/fit/fill/real) +scale = fit +# Initial image position on the window (center/top/bottom/free/...) +position = center +# Anti-aliasing mode (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 + +################################################################################ +# Gallery mode configuration +################################################################################ +[gallery] +# Height and width of each thumbnail (pixels) +size = 200 +# Max number of invisible thumbnails stored in memory cache +cache = 100 +# Load not only visible but also adjacent thumbnails +preload = no +# Enable/disable storing thumbnails in persistent storage (yes/no) +pstore = no +# Fill the entire tile with thumbnail (yes/no) +fill = yes +# Anti-aliasing mode for thumbnails (none/box/bilinear/bicubic/mks13) +antialiasing = mks13 +# Background color of the window (RGBA) +window = #00000000 +# Background color of non-selected tiles (RGBA) +background = #202020ff +# Background color of the selected tile (RGBA) +select = #404040ff +# Border color of the selected tile (RGBA) +border = #000000ff +# Shadow color of the selected tile (RGBA) +shadow = #000000ff + +################################################################################ +# Image list configuration +################################################################################ +[list] +# Default order (none/alpha/numeric/mtime/size/random) +order = alpha +# Reverse order (yes/no) +reverse = no +# Read directories recursively (yes/no) +recursive = no +# Add files from the same directory as the first file (yes/no) +all = no +# Enable file system monitoring for adding new images to the list (yes/no) +fsmon = yes + +################################################################################ +# Font configuration +################################################################################ +[font] +# Font name +name = monospace +# Font size (pt) +size = 14 +# Font color (RGBA) +color = #ccccccff +# Shadow color (RGBA) +shadow = #000000d0 +# Background color (RGBA) +background = #00000000 + +################################################################################ +# Image meta info scheme (format, size, EXIF, etc.) +################################################################################ +[info] +# Show on startup (yes/no) +show = no +# Text padding from window edges +padding = 10 +# Timeout to hide info (seconds, 0 to always show) +info_timeout = 5 +# Timeout to hide status message (seconds) +status_timeout = 3 + +# Display scheme for viewer mode (position = content) +[info.viewer] +top_left = +name,+format,+filesize,+imagesize,+exif +top_right = index +bottom_left = scale,frame +bottom_right = status + +# Display scheme for slideshow mode (position = content) +[info.slideshow] +top_left = none +top_right = none +bottom_left = none +bottom_right = dir,status + +# Display scheme for gallery mode (position = content) +[info.gallery] +top_left = none +top_right = index +bottom_left = none +bottom_right = name,status + +################################################################################ +# Viewer mode key binding configuration: key = action [parameters] +################################################################################ +[keys.viewer] +F1 = help +Home = first_file +End = last_file +Prior = prev_file +Next = next_file +Space = next_file +Shift+r = rand_file +Shift+d = prev_dir +d = next_dir +Shift+o = prev_frame +o = next_frame +c = skip_file +s = mode slideshow +n = animation +f = fullscreen +Return = mode gallery +Left = step_left 10 +Right = step_right 10 +Up = step_up 10 +Down = step_down 10 +Equal = zoom +10 +Plus = zoom +10 +Minus = zoom -10 +w = zoom width +Shift+w = zoom height +z = zoom fit +Shift+z = zoom fill +0 = zoom real +BackSpace = zoom optimal +k = zoom keep +Alt+s = zoom +Alt+p = position +bracketleft = rotate_left +bracketright = rotate_right +m = flip_vertical +Shift+m = flip_horizontal +a = antialiasing +r = reload +i = info +Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file +Escape = exit +q = exit +# Mouse related +ScrollLeft = step_right 5 +ScrollRight = step_left 5 +ScrollUp = step_up 5 +ScrollDown = step_down 5 +Ctrl+ScrollUp = zoom +10 mouse +Ctrl+ScrollDown = zoom -10 mouse +Shift+ScrollUp = prev_file +Shift+ScrollDown = next_file +Alt+ScrollUp = prev_frame +Alt+ScrollDown = next_frame +MouseLeft = drag +MouseSide = prev_file +MouseExtra = next_file + +################################################################################ +# Slideshow mode key binding configuration: key = action [parameters] +################################################################################ +[keys.slideshow] +F1 = help +Home = first_file +End = last_file +Prior = prev_file +Next = next_file +Shift+r = rand_file +Shift+d = prev_dir +d = next_dir +Space = pause +i = info +f = fullscreen +Return = mode +Escape = exit +q = exit + +################################################################################ +# Gallery mode key binding configuration: key = action [parameters] +################################################################################ +[keys.gallery] +F1 = help +Home = first_file +End = last_file +Left = step_left +Right = step_right +Up = step_up +Down = step_down +Prior = page_up +Next = page_down +c = skip_file +s = mode slideshow +f = fullscreen +Return = mode viewer +a = antialiasing +r = reload +i = info +Equal = thumb +20 +Plus = thumb +20 +Minus = thumb -20 +Shift+Delete = exec rm -f '%' && echo "File removed: %"; skip_file +Escape = exit +q = exit +# Mouse related +ScrollLeft = step_right +ScrollRight = step_left +ScrollUp = step_up +ScrollDown = step_down +Ctrl+ScrollUp = thumb +20 +Ctrl+ScrollDown = thumb -20 +MouseLeft = mode viewer diff --git a/hosts/system76/config/swaync/colors.css b/hosts/system76/config/swaync/colors.css new file mode 100644 index 0000000..24513a7 --- /dev/null +++ b/hosts/system76/config/swaync/colors.css @@ -0,0 +1,19 @@ +@define-color background #121412; +@define-color foreground #CDFEFF; + +@define-color color0 #393B3A; +@define-color color1 #8FA47F; +@define-color color2 #9A9DB8; +@define-color color3 #B29C9E; +@define-color color4 #A0B483; +@define-color color5 #C9D9AE; +@define-color color6 #70FCFE; +@define-color color7 #AFF5F6; +@define-color color8 #7AABAC; +@define-color color9 #8FA47F; +@define-color color10 #9A9DB8; +@define-color color11 #B29C9E; +@define-color color12 #A0B483; +@define-color color13 #C9D9AE; +@define-color color14 #70FCFE; +@define-color color15 #AFF5F6; diff --git a/hosts/system76/config/swaync/config.json b/hosts/system76/config/swaync/config.json new file mode 100644 index 0000000..380a4ee --- /dev/null +++ b/hosts/system76/config/swaync/config.json @@ -0,0 +1,35 @@ +{ + "positionX": "right", + "positionY": "top", + "layer": "overlay", + "control-center-layer": "top", + "control-center-margin-top": 8, + "control-center-margin-bottom": 8, + "control-center-margin-right": 8, + "control-center-margin-left": 0, + "notification-icon-size": 48, + "notification-body-image-height": 100, + "notification-body-image-width": 200, + "timeout": 8, + "timeout-low": 5, + "timeout-critical": 0, + "fit-to-screen": false, + "control-center-width": 350, + "control-center-height": 700, + "notification-window-width": 350, + "widgets": ["title", "dnd", "mpris", "notifications"], + "widget-config": { + "title": { + "text": "Notifications", + "clear-all-button": true, + "button-text": "Clear All" + }, + "dnd": { + "text": "Do Not Disturb" + }, + "mpris": { + "image-size": 72, + "image-radius": 8 + } + } +} diff --git a/hosts/system76/config/swaync/style.css b/hosts/system76/config/swaync/style.css new file mode 100644 index 0000000..b29676e --- /dev/null +++ b/hosts/system76/config/swaync/style.css @@ -0,0 +1,201 @@ +@import "colors.css"; + +* { + all: unset; + font-family: Roboto, sans-serif; + font-size: 13px; +} + +/* Notification popup */ +.notification-row { + outline: none; + margin: 10px 30px; +} + +.notification-row:focus, +.notification-row:hover { + background: transparent; +} + +.notification { + background: @background; + border: 1px solid @color4; + border-radius: 12px; + padding: 0; + margin: 5px; + min-width: 500px; + opacity: 0.85; +} + +/* Urgency variants */ +.notification.critical { + border-color: @color1; +} + +.notification.low { + border-color: @color3; +} + +/* Header bar (app name + timestamp + close button) */ +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary { + color: @color7; + font-size: 14px; + font-weight: 600; + padding: 10px 20px; +} + +.notification-default-action { + padding: 0; + border-radius: 12px; +} + +.notification-default-action:hover { + background: rgba(255, 255, 255, 0.05); + border-radius: 12px; +} + +/* Content area */ +.notification-content { + padding: 10px 40px; +} + +.notification-icon { + min-width: 0; + min-height: 0; + opacity: 0; + margin: 20px; +} + +.notification-summary { + font-weight: 500; + color: @foreground; +} + +.notification-body { + color: @foreground; +} + +.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body { + /* Notification body */ + font-weight: normal; + background: transparent; + text-shadow: none; + padding: 5px 20px; +} + +/* Action buttons (e.g. "Reply", "Mark as read") */ +.notification-action { + background: rgba(26, 110, 207, 0.2); + border: 1px solid rgba(26, 110, 207, 0.4); + border-radius: 6px; + color: rgba(255, 255, 255, 0.8); + padding: 5px; + margin: 10px; +} + +.notification-action:hover { + background: rgba(26, 110, 207, 0.4); +} + +/* ── Control center panel ── */ + +.control-center { + background: rgba(10, 14, 22, 0.95); + border-left: 1px solid rgba(26, 110, 207, 0.3); + border-radius: 0 0 0 12px; + min-width: 500px; +} + +/* Title widget */ +.widget-title { + color: rgba(255, 255, 255, 0.9); + font-size: 15px; + font-weight: 500; + padding: 16px 16px 8px; +} + +.widget-title > button { + background: rgba(26, 110, 207, 0.2); + border: 1px solid rgba(26, 110, 207, 0.4); + border-radius: 6px; + color: rgba(255, 255, 255, 0.7); + font-size: 11px; + padding: 3px 10px; +} + +.widget-title > button:hover { + background: rgba(26, 110, 207, 0.4); +} + +/* DND toggle */ +.widget-dnd { + padding: 8px 16px; + color: rgba(255, 255, 255, 0.8); + font-size: 13px; +} + +.widget-dnd > switch { + background: rgba(255, 255, 255, 0.1); + border-radius: 12px; + border: none; +} + +.widget-dnd > switch:checked { + background: rgba(26, 110, 207, 0.7); +} + +.widget-dnd > switch slider { + background: white; + border-radius: 50%; + min-width: 18px; + min-height: 18px; + margin: 2px; +} + +/* MPRIS widget */ +.widget-mpris { + padding: 12px 16px; + background: rgba(26, 110, 207, 0.08); + border-radius: 10px; + margin: 0 8px 8px; +} + +.widget-mpris-player { + padding: 4px 0; +} + +.widget-mpris-title { + font-weight: 500; + font-size: 13px; + color: rgba(255, 255, 255, 0.9); +} + +.widget-mpris-subtitle { + font-size: 11px; + color: rgba(255, 255, 255, 0.5); +} + +/* Notification list inside control center */ +.control-center-list { + padding: 4px 8px; +} + +.control-center-list-placeholder { + color: rgba(255, 255, 255, 0.25); + font-size: 13px; +} + +/* Close buttons */ +.close-button { + background: transparent; + color: rgba(255, 255, 255, 0.4); + border-radius: 50%; + padding: 2px; + min-width: 18px; + min-height: 18px; +} + +.close-button:hover { + background: rgba(255, 74, 110, 0.3); + color: rgba(255, 255, 255, 0.9); +} diff --git a/hosts/system76/config/user-dirs.dirs b/hosts/system76/config/user-dirs.dirs new file mode 100644 index 0000000..7375b4a --- /dev/null +++ b/hosts/system76/config/user-dirs.dirs @@ -0,0 +1,15 @@ +# This file is written by xdg-user-dirs-update +# If you want to change or add directories, just edit the line you're +# interested in. All local changes will be retained on the next run. +# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped +# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an +# absolute path. No other format is supported. +# +XDG_DESKTOP_DIR="$HOME/" +XDG_DOWNLOAD_DIR="$HOME/" +XDG_TEMPLATES_DIR="$HOME/" +XDG_PUBLICSHARE_DIR="$HOME/" +XDG_DOCUMENTS_DIR="$HOME/" +XDG_MUSIC_DIR="$HOME/" +XDG_PICTURES_DIR="$HOME/" +XDG_VIDEOS_DIR="$HOME/" diff --git a/hosts/system76/config/zoom.conf b/hosts/system76/config/zoom.conf new file mode 100644 index 0000000..d05fc50 --- /dev/null +++ b/hosts/system76/config/zoom.conf @@ -0,0 +1,3 @@ +[General] +initialize_flag=1 +random_key="iWXNyZBvOkqtifCZhpYbhHkKdWvhAG7CjZekjmmfcd8=" diff --git a/hosts/system76/config/zoomus.conf b/hosts/system76/config/zoomus.conf new file mode 100644 index 0000000..c8f9471 --- /dev/null +++ b/hosts/system76/config/zoomus.conf @@ -0,0 +1,81 @@ +[General] +CefOsrWindowlessFrameRate=30 +GeoLocale=system +SensitiveInfoMaskOn=true +ShowBiDirecSyncNoti=true +autoPlayGif=false +autoScale=true +bForceMaximizeWM=false +captureHDCamera=true +cefInstanceCountLimit=-1 +cefRefreshTime=0 +chatListPanelLastWidth=230 +com.disable.connection.pk.status=false +com.zoom.client.langid=0 +com.zoom.pt.settings.closedcaption.fontsize=16 +conf.webserver=https://zoom.us +currentMeetingId=82199284629 +deviceID=28:A0:6B:E5:A9:C0 +disableCef=false +disableUsePasskey=false +enable.host.auto.grab=true +enableAlphaBuffer=true +enableCefGpu=false +enableCefLog=false +enableCefOsrIme=true +enableCefOsrMode=true +enableCefRemoteDebug=false +enableCefRemoteDebugPort=9222 +enableCefTa=false +enableCloudSwitch=true +enableLog=true +enableMiniWindow=true +enableQmlCache=true +enableScreenSaveGuard=false +enableStartMeetingWithRoomSystem=false +enableTestMode=false +enableUnifywebviewTa=false +enableWaylandShare=false +enablegpucomputeutilization=false +fake.version= +flashChatTime=0 +forceEnableTrayIcon=true +forceSSOURL= +hideCrashReport=false +host.auto.grab.interval=10 +isTransCoding=false +legacyAvatarCacheCleaned=1776020340 +logLevel=info +newMeetingWithVideo=true +noSandbox=false +playSoundForNewMessage=false +shareBarTopMargin=0 +shortcut_as_global_ShortcutID_Screenshot=false +shortcut_as_global_ShortcutID_ScreenshotIncludeChatWindow=false +shortcut_as_global_ShortcutID_ShowHideFloatingMeetingControls=true +showOneTimePTAICTipHubble=false +showOneTimeQAMostUpvoteHubble=true +showOneTimeQueriesOptionTip=true +showOneTimeSmartRecognitionCoackMark=true +showOneTimeTranslationUpSellTip=false +showSystemTitlebar=false +speaker_volume=255 +sso_domain=.zoom.us +sso_gov_domain=.zoomgov.com +system.audio.type=default +systemDockMargin=0 +timeFormat12HoursEnable=true +translationFreeTrialTipShowTime=0 +upcoming_meeting_header_image= +useSystemTheme=false +userEmailAddress= +waylandDesktopNotifications=false +webview.debug.enable=false +xwayland=true + +[AS] +showframewindow=true + +[CodeSnippet] +lastCodeType=0 +wrapMode=0 diff --git a/meta/base.conf.yaml b/meta/base.conf.yaml index 24f755e..bcd7573 100644 --- a/meta/base.conf.yaml +++ b/meta/base.conf.yaml @@ -25,3 +25,7 @@ ~/.config/starship.toml: common/starship.toml ~/.gitconfig: common/git/config ~/.ssh/config: common/ssh/config + ~/.config/lazygit: common/lazygit + ~/.config/ncmpcpp: common/ncmpcpp + ~/.config/neofetch: common/neofetch + ~/.config/matplotlib: common/matplotlib diff --git a/meta/hosts/mainframe.conf.yaml b/meta/hosts/mainframe.conf.yaml index 9689a68..400da12 100644 --- a/meta/hosts/mainframe.conf.yaml +++ b/meta/hosts/mainframe.conf.yaml @@ -10,6 +10,12 @@ force: true - link: + ~/.config/bob: hosts/mainframe/config/bob + ~/.config/gtk-3.0: hosts/mainframe/config/gtk-3.0 + ~/.config/inbox-tidy: hosts/mainframe/config/inbox-tidy + ~/.config/llmfit: hosts/mainframe/config/llmfit + ~/.config/mimeapps.list: hosts/mainframe/config/mimeapps.list + ~/.config/user-dirs.dirs: hosts/mainframe/config/user-dirs.dirs ~/.ssh/config.local: hosts/mainframe/ssh/config.local ~/.config/git/identity: hosts/mainframe/git/identity ~/.config/paru: common/paru diff --git a/meta/hosts/nas.conf.yaml b/meta/hosts/nas.conf.yaml index 0ac1471..dece73a 100644 --- a/meta/hosts/nas.conf.yaml +++ b/meta/hosts/nas.conf.yaml @@ -10,6 +10,7 @@ force: true - link: + ~/.config/bob: hosts/nas/config/bob ~/.ssh/config.local: hosts/nas/ssh/config.local ~/.config/git/identity: hosts/nas/git/identity ~/.config/paru: common/paru diff --git a/meta/hosts/sctfw004.conf.yaml b/meta/hosts/sctfw004.conf.yaml index e374738..565b6d9 100644 --- a/meta/hosts/sctfw004.conf.yaml +++ b/meta/hosts/sctfw004.conf.yaml @@ -10,6 +10,24 @@ force: true - link: + ~/.config/bob: hosts/sctfw004/config/bob + ~/.config/fastfetch: hosts/sctfw004/config/fastfetch + ~/.config/gh: hosts/sctfw004/config/gh + ~/.config/gtk-2.0: hosts/sctfw004/config/gtk-2.0 + ~/.config/gtk-3.0: hosts/sctfw004/config/gtk-3.0 + ~/.config/gtk-4.0: hosts/sctfw004/config/gtk-4.0 + ~/.config/mimeapps.list: hosts/sctfw004/config/mimeapps.list + ~/.config/mpv: hosts/sctfw004/config/mpv + ~/.config/pavucontrol.ini: hosts/sctfw004/config/pavucontrol.ini + ~/.config/swayimg: hosts/sctfw004/config/swayimg + ~/.config/swaync: hosts/sctfw004/config/swaync + ~/.config/tiling-assistant: hosts/sctfw004/config/tiling-assistant + ~/.config/traggo: hosts/sctfw004/config/traggo + ~/.config/user-dirs.dirs: hosts/sctfw004/config/user-dirs.dirs + ~/.config/uv: hosts/sctfw004/config/uv + ~/.config/xdg-desktop-portal: hosts/sctfw004/config/xdg-desktop-portal + ~/.config/zoom.conf: hosts/sctfw004/config/zoom.conf + ~/.config/zoomus.conf: hosts/sctfw004/config/zoomus.conf ~/.ssh/config.local: hosts/sctfw004/ssh/config.local ~/.config/wallust: common/wallust ~/.config/hypr/colors.conf: hosts/sctfw004/hypr/colors.conf diff --git a/meta/hosts/system76.conf.yaml b/meta/hosts/system76.conf.yaml index e35546b..64aafc6 100644 --- a/meta/hosts/system76.conf.yaml +++ b/meta/hosts/system76.conf.yaml @@ -9,6 +9,22 @@ force: true - link: + ~/.config/beets: hosts/system76/config/beets + ~/.config/bob: hosts/system76/config/bob + ~/.config/bottom: hosts/system76/config/bottom + ~/.config/glow: hosts/system76/config/glow + ~/.config/gtk-2.0: hosts/system76/config/gtk-2.0 + ~/.config/gtk-3.0: hosts/system76/config/gtk-3.0 + ~/.config/gtk-4.0: hosts/system76/config/gtk-4.0 + ~/.config/mimeapps.list: hosts/system76/config/mimeapps.list + ~/.config/mpd: hosts/system76/config/mpd + ~/.config/mpv: hosts/system76/config/mpv + ~/.config/pavucontrol.ini: hosts/system76/config/pavucontrol.ini + ~/.config/swayimg: hosts/system76/config/swayimg + ~/.config/swaync: hosts/system76/config/swaync + ~/.config/user-dirs.dirs: hosts/system76/config/user-dirs.dirs + ~/.config/zoom.conf: hosts/system76/config/zoom.conf + ~/.config/zoomus.conf: hosts/system76/config/zoomus.conf ~/.ssh/config.local: hosts/system76/ssh/config.local ~/.config/wallust: common/wallust ~/.config/hypr/colors.conf: hosts/system76/hypr/colors.conf