Merge branch 'main' of ssh://git.rcjohnstone.com:2222/connor/dotfiles

This commit is contained in:
connor committed 2026-10-22 09:28:07 -04:00
commit 849c1048a0
15 files changed
+268 -27

No files matched your search

+2
View File
@@ -43,6 +43,8 @@ awww img "$background" \
--transition-duration 2.5
wallust -q run -s "$background"
# Applied live rather than sourced; see the wallust.toml comment on the hypr template.
hyprctl --batch "$(<"${XDG_CACHE_HOME:-$HOME/.cache}/wallust/hyprland-colors.batch")" >/dev/null
for s in /tmp/kitty-*; do
kitten @ --to "unix:$s" set-colors --all --configured \
"${XDG_CACHE_HOME:-$HOME/.cache}/wallust/colors-kitty.conf" 2>/dev/null || true
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
# Toggle padding on the focused kitty window. Bound to Super+middle click in
# hyprland.conf; follow_mouse = 1 means the focused window is the one under the
# cursor. Uses the per-process socket from `listen_on unix:/tmp/kitty`, which
# kitty suffixes with -<pid>. The user var nopad records the toggle state.
win=$(hyprctl activewindow -j)
[[ $(jq -r .class <<<"$win") == kitty ]] || exit 0
k=(kitty @ --to "unix:/tmp/kitty-$(jq -r .pid <<<"$win")")
m=(--match state:focused)
nopad=$("${k[@]}" ls "${m[@]}" | jq -r '.[0].tabs[0].windows[0].user_vars.nopad // empty')
if [[ $nopad == 1 ]]; then
"${k[@]}" set-spacing "${m[@]}" padding=default
"${k[@]}" set-user-vars "${m[@]}" nopad
else
"${k[@]}" set-spacing "${m[@]}" padding=0
"${k[@]}" set-user-vars "${m[@]}" nopad=1
fi
+5 -1
View File
@@ -1,4 +1,7 @@
source = ~/.config/hypr/colors.conf
# Border colors come from wallust via hyprctl (see bin/hypr_refresh), not a
# sourced file: a changed sourced file triggers a config reload, which leaks
# DRM mode blobs and slows the compositor over days.
exec-once = hyprctl --batch "$(cat ~/.cache/wallust/hyprland-colors.batch)"
# Host layer, part 1 of 2 — must come BEFORE any use of $browser or the
# monitor/env keywords. Hyprland resolves variables in file order, so a
@@ -220,6 +223,7 @@ bind = $mainMod SHIFT ALT CTRL, h, movecurrentworkspacetomonitor, -1
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod, mouse:274, exec, $bin/kitty_padding_toggle
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
+1 -1
View File
@@ -990,7 +990,7 @@ window_padding_width 5 15
# Color scheme {{{
background_opacity 0.7
background_opacity 0.8
background_image none
# background_image_layout tiled
@@ -0,0 +1,213 @@
17:40:37.627: Platform: Wayland
17:40:37.627: CPU Name: AMD Ryzen AI 9 HX 370 w/ Radeon 890M
17:40:37.627: CPU Speed: 3560.990MHz
17:40:37.627: Physical Cores: 12, Logical Cores: 24
17:40:37.627: Physical Memory: 63575MB Total, 17104MB Free
17:40:37.627: Kernel Version: Linux 7.0.0-31-generic
17:40:37.627: Distribution: "Ubuntu" "24.04"
17:40:37.627: Desktop Environment: Hyprland (hyprland)
17:40:37.627: Session Type: wayland
17:40:37.628: Current Date/Time: 2026-10-05, 05:40:37 PM
17:40:37.628: Browser Hardware Acceleration: true
17:40:37.628: Qt Version: 6.4.2 (runtime), 6.4.2 (compiled)
17:40:37.628: Portable mode: false
17:40:37.685: OBS 32.2.0 (linux)
17:40:37.685: ---------------------------------
17:40:37.686: ---------------------------------
17:40:37.686: audio settings reset:
17:40:37.686: samples per sec: 48000
17:40:37.686: speakers: 2
17:40:37.686: max buffering: 960 milliseconds
17:40:37.686: buffering type: dynamically increasing
17:40:37.687: ---------------------------------
17:40:37.687: Initializing OpenGL...
17:40:37.687: Using EGL/Wayland
17:40:37.728: Initialized EGL 1.5
17:40:37.748: Loading up OpenGL on adapter AMD AMD Radeon 890M Graphics (radeonsi, gfx1150, LLVM 20.1.2, DRM 3.64, 7.0.0-31-generic)
17:40:37.748: OpenGL loaded successfully, version 4.6 (Core Profile) Mesa 25.2.8-0ubuntu0.24.04.2, shading language 4.60
17:40:37.778: ---------------------------------
17:40:37.778: video settings reset:
17:40:37.778: base resolution: 1920x1080
17:40:37.778: output resolution: 1280x720
17:40:37.778: downscale filter: Bicubic
17:40:37.778: fps: 30/1
17:40:37.778: format: NV12
17:40:37.778: YUV mode: Rec. 709/Partial
17:40:37.778: NV12 texture support enabled
17:40:37.778: P010 texture support not available
17:40:37.780: Audio monitoring device:
17:40:37.780: name: Default
17:40:37.780: id: default
17:40:37.782: ---------------------------------
17:40:37.787: No AJA devices found, skipping loading AJA UI plugin
17:40:37.787: Failed to initialize module 'aja-output-ui.so'
17:40:37.791: No AJA devices found, skipping loading AJA plugin
17:40:37.791: Failed to initialize module 'aja.so'
17:40:37.792: Failed to load 'en-US' text for module: 'decklink-captions.so'
17:40:37.794: Failed to load 'en-US' text for module: 'decklink-output-ui.so'
17:40:37.796: A DeckLink iterator could not be created. The DeckLink drivers may not be installed
17:40:37.796: Failed to initialize module 'decklink.so'
17:40:37.929: [pipewire] Available capture sources:
17:40:37.929: [pipewire] - Monitor source
17:40:37.929: [pipewire] - Window source
17:40:37.939: [obs-browser]: Version 2.26.9
17:40:37.939: [obs-browser]: CEF Version 127.0.6533.120 (runtime), 127.0.0-6533-fix-stutter-and-osr-extra-info.3042+g176b09c+chromium-127.0.6533.120 (compiled)
17:40:37.987: VAAPI: API version 1.20
17:40:37.988: FFmpeg VAAPI H264 encoding supported
17:40:37.992: FFmpeg VAAPI AV1 encoding supported
17:40:37.996: FFmpeg VAAPI HEVC encoding supported
17:40:38.000: os_dlopen(libnvidia-encode.so.1->libnvidia-encode.so.1): libnvidia-encode.so.1: cannot open shared object file: No such file or directory
17:40:38.000:
17:40:38.000: NVENC not supported
17:40:38.000: Failed to initialize module 'obs-nvenc.so'
17:40:38.017: [obs-websocket] [obs_module_load] you can haz websockets (Version: 5.7.4 | RPC Version: 1)
17:40:38.017: [obs-websocket] [obs_module_load] Qt version (compile-time): 6.4.2 | Qt version (run-time): 6.4.2
17:40:38.017: [obs-websocket] [obs_module_load] Linked ASIO Version: 102801
17:40:38.023: [obs-websocket] [obs_module_load] Module loaded.
17:40:38.027: os_dlopen(libvlc.so.5->libvlc.so.5): libvlc.so.5: cannot open shared object file: No such file or directory
17:40:38.027:
17:40:38.027: [vlc-video]: Couldn't find VLC installation, VLC video source disabled
17:40:38.027: ---------------------------------
17:40:38.027: Loaded Modules:
17:40:38.027: vlc-video.so
17:40:38.027: text-freetype2.so
17:40:38.027: rtmp-services.so
17:40:38.027: obs-x264.so
17:40:38.027: obs-websocket.so
17:40:38.027: obs-vst.so
17:40:38.027: obs-transitions.so
17:40:38.027: obs-qsv11.so
17:40:38.027: obs-outputs.so
17:40:38.027: obs-libfdk.so
17:40:38.027: obs-filters.so
17:40:38.027: obs-ffmpeg.so
17:40:38.027: obs-browser.so
17:40:38.027: linux-v4l2.so
17:40:38.027: linux-pulseaudio.so
17:40:38.027: linux-pipewire.so
17:40:38.027: linux-jack.so
17:40:38.027: linux-capture.so
17:40:38.027: linux-alsa.so
17:40:38.027: image-source.so
17:40:38.027: frontend-tools.so
17:40:38.027: decklink-output-ui.so
17:40:38.027: decklink-captions.so
17:40:38.027: ---------------------------------
17:40:38.027: ---------------------------------
17:40:38.027: Available Encoders:
17:40:38.027: Video Encoders:
17:40:38.027: - ffmpeg_svt_av1 (SVT-AV1)
17:40:38.027: - ffmpeg_aom_av1 (AOM AV1)
17:40:38.027: - ffmpeg_vaapi_tex (FFmpeg VAAPI H.264)
17:40:38.027: - av1_ffmpeg_vaapi_tex (FFmpeg VAAPI AV1)
17:40:38.027: - hevc_ffmpeg_vaapi_tex (FFmpeg VAAPI HEVC)
17:40:38.027: - obs_x264 (x264)
17:40:38.027: Audio Encoders:
17:40:38.027: - ffmpeg_aac (FFmpeg AAC)
17:40:38.027: - ffmpeg_opus (FFmpeg Opus)
17:40:38.027: - ffmpeg_pcm_s16le (FFmpeg PCM (16-bit))
17:40:38.027: - ffmpeg_pcm_s24le (FFmpeg PCM (24-bit))
17:40:38.027: - ffmpeg_pcm_f32le (FFmpeg PCM (32-bit float))
17:40:38.027: - ffmpeg_alac (FFmpeg ALAC (24-bit))
17:40:38.027: - ffmpeg_flac (FFmpeg FLAC (16-bit))
17:40:38.027: - libfdk_aac (libfdk AAC)
17:40:38.027: ==== Startup complete ===============================================
17:40:38.050: All scene data cleared
17:40:38.050: ------------------------------------------------
17:40:38.055: Device for 'Audio Output Capture' source Desktop Audio is also used for audio monitoring.
17:40:38.055: Deduplication logic is being applied to all monitored sources.
17:40:38.055: pulse-input: Server name: 'PulseAudio (on PipeWire 1.2.4) 15.0.0'
17:40:38.055: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
17:40:38.055: pulse-input: Started recording from 'alsa_output.pci-0000_c1_00.6.HiFi__Speaker__sink.monitor' (default)
17:40:38.055: [Loaded global audio device]: 'Desktop Audio'
17:40:38.056: pulse-input: Server name: 'PulseAudio (on PipeWire 1.2.4) 15.0.0'
17:40:38.056: pulse-input: Audio format: s32le, 48000 Hz, 2 channels
17:40:38.056: pulse-input: Started recording from 'alsa_input.pci-0000_c1_00.6.HiFi__Mic2__source' (default)
17:40:38.056: [Loaded global audio device]: 'Mic/Aux'
17:40:38.056: v4l2-input: Start capture from /dev/video2
17:40:38.056: v4l2-input: Unable to open device
17:40:38.056: v4l2-input: Initialization failed, errno: No such file or directory
17:40:38.056: PipeWire initialized
17:40:38.057: PipeWire initialized
17:40:38.057: Switched to scene 'Scene'
17:40:38.057: ------------------------------------------------
17:40:38.057: Loaded scenes:
17:40:38.057: - scene 'Scene':
17:40:38.057: - source: 'Video Capture Device (V4L2)' (v4l2_input)
17:40:38.057: - filter: 'Kodak DSCS 3151' (clut_filter)
17:40:38.057: - filter: 'Vista' (clut_filter)
17:40:38.057: - filter: 'Webcam 3' (clut_filter)
17:40:38.058: - source: 'Screen Capture (PipeWire) 2' (pipewire-screen-capture-source)
17:40:38.058: - source: 'Screen Capture (PipeWire)' (pipewire-screen-capture-source)
17:40:38.058: ------------------------------------------------
17:40:38.290: Device for 'Audio Output Capture' source Desktop Audio is also used for audio monitoring.
17:40:38.290: Deduplication logic is being applied to all monitored sources.
17:40:38.291: Failed to open file '/tmp/LUTpack/Film Presets/kodak_dscs_3151.png': No such file or directory
17:40:38.291: gs_image_file_init_internal: Failed to load file '/tmp/LUTpack/Film Presets/kodak_dscs_3151.png'
17:40:38.293: Failed to open file '/tmp/LUTpack/Film Presets/agfa_agfacolor_vista_800.png': No such file or directory
17:40:38.293: gs_image_file_init_internal: Failed to load file '/tmp/LUTpack/Film Presets/agfa_agfacolor_vista_800.png'
17:40:38.293: Failed to open file '/tmp/LUTpack/Webcam Presets/webcam_preset_3.png': No such file or directory
17:40:38.293: gs_image_file_init_internal: Failed to load file '/tmp/LUTpack/Webcam Presets/webcam_preset_3.png'
17:40:38.333: [pipewire] Screencast session created
17:40:38.333: [pipewire] Screencast session created
17:40:38.431: [rtmp-services plugin] Successfully updated file 'services.json' (version 293)
17:40:38.431: [rtmp-services plugin] Successfully updated package (version 293)
17:40:38.817: adding 21 milliseconds of audio buffering, total audio buffering is now 21 milliseconds (source: Desktop Audio)
17:40:38.817:
17:40:41.359: [pipewire] Failed to select source, denied or cancelled by user
18:10:02.530: adding 21 milliseconds of audio buffering, total audio buffering is now 42 milliseconds (source: Mic/Aux)
18:10:02.530:
09:00:07.721: v4l2-input: Device /dev/video2 reconnected
09:00:07.722: v4l2-input: Start capture from /dev/video2
09:00:07.726: v4l2-input: Input: 0
09:00:07.730: v4l2-input: Resolution: 1920x1080
09:00:07.730: v4l2-input: Pixelformat: MJPG
09:00:07.730: v4l2-input: Linesize: 0 Bytes
09:00:07.736: v4l2-input: Framerate: 30.00 fps
09:00:07.742: v4l2-input: /dev/video2: select timeout set to 166666 (5x frame periods)
09:00:07.912: v4l2-input: /dev/video2: select timed out
09:00:07.912: v4l2-input: /dev/video2: failed to log status
09:00:08.078: v4l2-input: /dev/video2: select timed out
09:00:08.079: v4l2-input: /dev/video2: failed to log status
09:00:08.245: v4l2-input: /dev/video2: select timed out
09:00:08.245: v4l2-input: /dev/video2: failed to log status
09:00:08.412: v4l2-input: /dev/video2: select timed out
09:00:08.412: v4l2-input: /dev/video2: failed to log status
09:00:08.579: v4l2-input: /dev/video2: select timed out
09:00:08.579: v4l2-input: /dev/video2: failed to log status
09:00:08.746: v4l2-input: /dev/video2: select timed out
09:00:08.746: v4l2-input: /dev/video2: failed to log status
09:00:08.913: v4l2-input: /dev/video2: select timed out
09:00:08.913: v4l2-input: /dev/video2: failed to log status
09:00:09.080: v4l2-input: /dev/video2: select timed out
09:00:09.080: v4l2-input: /dev/video2: failed to log status
09:00:09.247: v4l2-input: /dev/video2: select timed out
09:00:09.247: v4l2-input: /dev/video2: failed to log status
09:00:09.414: v4l2-input: /dev/video2: select timed out
09:00:09.414: v4l2-input: /dev/video2: failed to log status
09:00:09.581: v4l2-input: /dev/video2: select timed out
09:00:09.581: v4l2-input: /dev/video2: failed to log status
09:00:09.747: v4l2-input: /dev/video2: select timed out
09:00:09.748: v4l2-input: /dev/video2: failed to log status
09:00:09.914: v4l2-input: /dev/video2: select timed out
09:00:09.914: v4l2-input: /dev/video2: failed to log status
09:00:10.081: v4l2-input: /dev/video2: select timed out
09:00:10.081: v4l2-input: /dev/video2: failed to log status
10:43:37.897: v4l2-input: /dev/video2: select timed out
10:43:37.897: v4l2-input: /dev/video2: failed to log status
10:57:59.050: [pipewire] Failed to select source, denied or cancelled by user
10:58:01.131: ==== Shutting down ==================================================
10:58:01.136: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.136: pulse-input: Stopped recording from 'alsa_output.pci-0000_c1_00.6.HiFi__Speaker__sink.monitor'
10:58:01.136: pulse-input: Got 1841630 packets with 2209956000 frames
10:58:01.136: Deduplication logic stopped.
10:58:01.136: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.136: pulse-input: Stopped recording from 'alsa_input.pci-0000_c1_00.6.HiFi__Mic2__source'
10:58:01.136: pulse-input: Got 1841624 packets with 2209948800 frames
10:58:01.136: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.137: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.161: v4l2-input: /dev/video2: Stopped capture after 164939 frames
10:58:01.166: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.166: QMetaMethod::invoke: Unable to handle unregistered datatype 'std::string'
10:58:01.183: All scene data cleared
10:58:01.183: ------------------------------------------------
@@ -1 +1 @@
{"$schema":"schema/package-schema.json","url":"https://obsproject.com/obs2_update/rtmp-services/v5","version":290,"files":[{"name":"services.json","version":290}]}
{"$schema":"schema/package-schema.json","url":"https://obsproject.com/obs2_update/rtmp-services/v5","version":293,"files":[{"name":"services.json","version":293}]}
@@ -1 +1 @@
{"$schema":"schema/service-schema-v5.json","format_version":5,"services":[{"name":"Twitch","common":true,"stream_key_link":"https://dashboard.twitch.tv/settings/stream","multitrack_video_configuration_url":"https://ingest.twitch.tv/api/v3/GetClientConfiguration","multitrack_video_name":"Enhanced Broadcasting","multitrack_video_learn_more_link":"https://help.twitch.tv/s/article/multiple-encodes","servers":[{"name":"Asia: Hong Kong","url":"rtmp://live-hkg.twitch.tv/app"},{"name":"Asia: Seoul, South Korea","url":"rtmp://live-sel.twitch.tv/app"},{"name":"Asia: Singapore","url":"rtmp://live-sin.twitch.tv/app"},{"name":"Asia: Taipei, Taiwan","url":"rtmp://live-tpe.twitch.tv/app"},{"name":"Asia: Tokyo, Japan","url":"rtmp://live-tyo.twitch.tv/app"},{"name":"Australia: Sydney","url":"rtmp://live-syd.twitch.tv/app"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-ams.twitch.tv/app"},{"name":"EU: Berlin, DE","url":"rtmp://live-ber.twitch.tv/app"},{"name":"Europe: Copenhagen, DK","url":"rtmp://live-cph.twitch.tv/app"},{"name":"EU: Frankfurt, DE","url":"rtmp://live-fra.twitch.tv/app"},{"name":"EU: Helsinki, FI","url":"rtmp://live-hel.twitch.tv/app"},{"name":"EU: Lisbon, Portugal","url":"rtmp://live-lis.twitch.tv/app"},{"name":"EU: London, UK","url":"rtmp://live-lhr.twitch.tv/app"},{"name":"EU: Madrid, Spain","url":"rtmp://live-mad.twitch.tv/app"},{"name":"EU: Marseille, FR","url":"rtmp://live-mrs.twitch.tv/app"},{"name":"EU: Milan, Italy","url":"rtmp://live-mil.twitch.tv/app"},{"name":"EU: Norway, Oslo","url":"rtmp://live-osl.twitch.tv/app"},{"name":"EU: Paris, FR","url":"rtmp://live-cdg.twitch.tv/app"},{"name":"EU: Prague, CZ","url":"rtmp://live-prg.twitch.tv/app"},{"name":"EU: Stockholm, SE","url":"rtmp://live-arn.twitch.tv/app"},{"name":"EU: Vienna, Austria","url":"rtmp://live-vie.twitch.tv/app"},{"name":"EU: Warsaw, Poland","url":"rtmp://live-waw.twitch.tv/app"},{"name":"NA: Mexico City","url":"rtmp://live-qro.twitch.tv/app"},{"name":"NA: Quebec, Canada","url":"rtmp://live-ymq.twitch.tv/app"},{"name":"NA: Toronto, Canada","url":"rtmp://live-yto.twitch.tv/app"},{"name":"South America: Argentina","url":"rtmp://live-eze.twitch.tv/app"},{"name":"South America: Chile","url":"rtmp://live-scl.twitch.tv/app"},{"name":"South America: Lima, Peru","url":"rtmp://live-lim.twitch.tv/app"},{"name":"South America: Medellin, Colombia","url":"rtmp://live-mde.twitch.tv/app"},{"name":"South America: Rio de Janeiro, Brazil","url":"rtmp://live-rio.twitch.tv/app"},{"name":"South America: Sao Paulo, Brazil","url":"rtmp://live-sao.twitch.tv/app"},{"name":"US Central: Dallas, TX","url":"rtmp://live-dfw.twitch.tv/app"},{"name":"US Central: Denver, CO","url":"rtmp://live-den.twitch.tv/app"},{"name":"US Central: Houston, TX","url":"rtmp://live-hou.twitch.tv/app"},{"name":"US Central: Salt Lake City, UT","url":"rtmp://live-slc.twitch.tv/app"},{"name":"US East: Ashburn, VA","url":"rtmp://live-iad.twitch.tv/app"},{"name":"US East: Atlanta, GA","url":"rtmp://live-atl.twitch.tv/app"},{"name":"US East: Chicago","url":"rtmp://live-ord.twitch.tv/app"},{"name":"US East: Miami, FL","url":"rtmp://live-mia.twitch.tv/app"},{"name":"US East: New York, NY","url":"rtmp://live-jfk.twitch.tv/app"},{"name":"US West: Los Angeles, CA","url":"rtmp://live-lax.twitch.tv/app"},{"name":"US West: Phoenix, AZ","url":"rtmp://live-phx.twitch.tv/app"},{"name":"US West: Portland, Oregon","url":"rtmp://live-pdx.twitch.tv/app"},{"name":"US West: San Francisco, CA","url":"rtmp://live-sfo.twitch.tv/app"},{"name":"US West: San Jose, CA","url":"rtmp://live-sjc.twitch.tv/app"},{"name":"US West: Seattle, WA","url":"rtmp://live-sea.twitch.tv/app"}],"recommended":{"keyint":2,"max video bitrate":6000,"max audio bitrate":320,"x264opts":"scenecut=0"},"supported video codecs":["h264"]},{"name":"YouTube - HLS","common":false,"more_info_link":"https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison","stream_key_link":"https://www.youtube.com/live_dashboard","protocol":"HLS","supported video codecs":["h264","hevc"],"servers":[{"name":"Primary YouTube ingest server","url":"https://a.upload.youtube.com/http_upload_hls?cid={stream_key}&copy=0&file=out.m3u8"},{"name":"Backup YouTube ingest server","url":"https://b.upload.youtube.com/http_upload_hls?cid={stream_key}&copy=1&file=out.m3u8"}],"recommended":{"keyint":2,"output":"ffmpeg_hls_muxer","max video bitrate":51000,"max audio bitrate":160}},{"name":"YouTube - RTMPS","common":true,"stream_key_link":"https://www.youtube.com/live_dashboard","alt_names":["YouTube / YouTube Gaming","YouTube - RTMP","YouTube - RTMPS (Beta)"],"supported video codecs":["h264","hevc","av1"],"servers":[{"name":"Primary YouTube ingest server","url":"rtmps://a.rtmps.youtube.com:443/live2"},{"name":"Backup YouTube ingest server","url":"rtmps://b.rtmps.youtube.com:443/live2?backup=1"},{"name":"Primary YouTube ingest server (legacy RTMP)","url":"rtmp://a.rtmp.youtube.com/live2"},{"name":"Backup YouTube ingest server (legacy RTMP)","url":"rtmp://b.rtLine truncated
{"$schema":"schema/service-schema-v5.json","format_version":5,"services":[{"name":"Twitch","common":true,"stream_key_link":"https://dashboard.twitch.tv/settings/stream","multitrack_video_configuration_url":"https://ingest.twitch.tv/api/v3/GetClientConfiguration","multitrack_video_name":"Enhanced Broadcasting","multitrack_video_learn_more_link":"https://help.twitch.tv/s/article/multiple-encodes","servers":[{"name":"Asia: Hong Kong","url":"rtmp://live-hkg.twitch.tv/app"},{"name":"Asia: Seoul, South Korea","url":"rtmp://live-sel.twitch.tv/app"},{"name":"Asia: Singapore","url":"rtmp://live-sin.twitch.tv/app"},{"name":"Asia: Taipei, Taiwan","url":"rtmp://live-tpe.twitch.tv/app"},{"name":"Asia: Tokyo, Japan","url":"rtmp://live-tyo.twitch.tv/app"},{"name":"Australia: Sydney","url":"rtmp://live-syd.twitch.tv/app"},{"name":"EU: Amsterdam, NL","url":"rtmp://live-ams.twitch.tv/app"},{"name":"EU: Berlin, DE","url":"rtmp://live-ber.twitch.tv/app"},{"name":"Europe: Copenhagen, DK","url":"rtmp://live-cph.twitch.tv/app"},{"name":"EU: Frankfurt, DE","url":"rtmp://live-fra.twitch.tv/app"},{"name":"EU: Helsinki, FI","url":"rtmp://live-hel.twitch.tv/app"},{"name":"EU: Lisbon, Portugal","url":"rtmp://live-lis.twitch.tv/app"},{"name":"EU: London, UK","url":"rtmp://live-lhr.twitch.tv/app"},{"name":"EU: Madrid, Spain","url":"rtmp://live-mad.twitch.tv/app"},{"name":"EU: Marseille, FR","url":"rtmp://live-mrs.twitch.tv/app"},{"name":"EU: Milan, Italy","url":"rtmp://live-mil.twitch.tv/app"},{"name":"EU: Norway, Oslo","url":"rtmp://live-osl.twitch.tv/app"},{"name":"EU: Paris, FR","url":"rtmp://live-cdg.twitch.tv/app"},{"name":"EU: Prague, CZ","url":"rtmp://live-prg.twitch.tv/app"},{"name":"EU: Stockholm, SE","url":"rtmp://live-arn.twitch.tv/app"},{"name":"EU: Vienna, Austria","url":"rtmp://live-vie.twitch.tv/app"},{"name":"EU: Warsaw, Poland","url":"rtmp://live-waw.twitch.tv/app"},{"name":"NA: Mexico City","url":"rtmp://live-qro.twitch.tv/app"},{"name":"NA: Quebec, Canada","url":"rtmp://live-ymq.twitch.tv/app"},{"name":"NA: Toronto, Canada","url":"rtmp://live-yto.twitch.tv/app"},{"name":"South America: Argentina","url":"rtmp://live-eze.twitch.tv/app"},{"name":"South America: Chile","url":"rtmp://live-scl.twitch.tv/app"},{"name":"South America: Lima, Peru","url":"rtmp://live-lim.twitch.tv/app"},{"name":"South America: Medellin, Colombia","url":"rtmp://live-mde.twitch.tv/app"},{"name":"South America: Rio de Janeiro, Brazil","url":"rtmp://live-rio.twitch.tv/app"},{"name":"South America: Sao Paulo, Brazil","url":"rtmp://live-sao.twitch.tv/app"},{"name":"US Central: Dallas, TX","url":"rtmp://live-dfw.twitch.tv/app"},{"name":"US Central: Denver, CO","url":"rtmp://live-den.twitch.tv/app"},{"name":"US Central: Houston, TX","url":"rtmp://live-hou.twitch.tv/app"},{"name":"US Central: Salt Lake City, UT","url":"rtmp://live-slc.twitch.tv/app"},{"name":"US East: Ashburn, VA","url":"rtmp://live-iad.twitch.tv/app"},{"name":"US East: Atlanta, GA","url":"rtmp://live-atl.twitch.tv/app"},{"name":"US East: Chicago","url":"rtmp://live-ord.twitch.tv/app"},{"name":"US East: Miami, FL","url":"rtmp://live-mia.twitch.tv/app"},{"name":"US East: New York, NY","url":"rtmp://live-jfk.twitch.tv/app"},{"name":"US West: Los Angeles, CA","url":"rtmp://live-lax.twitch.tv/app"},{"name":"US West: Phoenix, AZ","url":"rtmp://live-phx.twitch.tv/app"},{"name":"US West: Portland, Oregon","url":"rtmp://live-pdx.twitch.tv/app"},{"name":"US West: San Francisco, CA","url":"rtmp://live-sfo.twitch.tv/app"},{"name":"US West: San Jose, CA","url":"rtmp://live-sjc.twitch.tv/app"},{"name":"US West: Seattle, WA","url":"rtmp://live-sea.twitch.tv/app"}],"recommended":{"keyint":2,"max video bitrate":6000,"max audio bitrate":320,"x264opts":"scenecut=0"},"supported video codecs":["h264"]},{"name":"YouTube - HLS","common":false,"more_info_link":"https://developers.google.com/youtube/v3/live/guides/ingestion-protocol-comparison","stream_key_link":"https://www.youtube.com/live_dashboard","protocol":"HLS","supported video codecs":["h264","hevc"],"servers":[{"name":"Primary YouTube ingest server","url":"https://a.upload.youtube.com/http_upload_hls?cid={stream_key}&copy=0&file=out.m3u8"},{"name":"Backup YouTube ingest server","url":"https://b.upload.youtube.com/http_upload_hls?cid={stream_key}&copy=1&file=out.m3u8"}],"recommended":{"keyint":2,"output":"ffmpeg_hls_muxer","max video bitrate":51000,"max audio bitrate":160}},{"name":"YouTube - RTMPS","common":true,"stream_key_link":"https://www.youtube.com/live_dashboard","alt_names":["YouTube / YouTube Gaming","YouTube - RTMP","YouTube - RTMPS (Beta)"],"supported video codecs":["h264","hevc","av1"],"servers":[{"name":"Primary YouTube ingest server","url":"rtmps://a.rtmps.youtube.com:443/live2"},{"name":"Backup YouTube ingest server","url":"rtmps://b.rtmps.youtube.com:443/live2?backup=1"},{"name":"Primary YouTube ingest server (legacy RTMP)","url":"rtmp://a.rtmp.youtube.com/live2"},{"name":"Backup YouTube ingest server (legacy RTMP)","url":"rtmp://b.rtLine truncated
+1 -1
View File
@@ -42,7 +42,7 @@ MultiviewMouseSwitch=true
MultiviewDrawNames=true
MultiviewDrawAreas=true
MediaControlsCountdownTimer=true
geometry=AdnQywADAAAAAAoAAAAAAAAAE+cAAAVQAAAKAAAAAAAAABP/AAAFnwAAAAECAAAACgAAAAoAAAAAAAAAE+cAAAVQ
geometry=AdnQywADAAAAAAAAAAAAAAAACecAAAVQAAAAAAAAAAAAAAn/AAAGPwAAAAACAAAACgAAAAAAAAAAAAAACecAAAVQ
DockState=AAAA/wAAAAD9AAAAAQAAAAMAAAnoAAABA/wBAAAABvsAAAAUAHMAYwBlAG4AZQBzAEQAbwBjAGsBAAAAAAAAAekAAACYAP////sAAAAWAHMAbwB1AHIAYwBlAHMARABvAGMAawEAAAHtAAAB6gAAAJgA////+wAAABIAbQBpAHgAZQByAEQAbwBjAGsBAAAD2wAAAgMAAAECAP////sAAAAeAHQAcgBhAG4AcwBpAHQAaQBvAG4AcwBEAG8AYwBrAQAABeIAAAICAAAAggD////7AAAAGABjAG8AbgB0AHIAbwBsAHMARABvAGMAawEAAAfoAAACAAAAAM4A////+wAAABIAcwB0AGEAdABzAEQAbwBjAGsCAAADogAAAmwAAAK8AAAAyAAACegAAAQOAAAABAAAAAQAAAAIAAAACPwAAAAA
AlwaysOnTop=false
EditPropertiesMode=false
+2 -2
View File
@@ -1,6 +1,6 @@
[FileDialog]
history=file:///home/connorjohnstone/scout/projects/sim_prototype, file:///home/connorjohnstone/scout/projects/sim_prototype/ui/scripts, file:///home/connorjohnstone/scout/projects/sim_prototype/build, file:///tmp, file:///home/connorjohnstone/scout, file:///tmp/jessica
lastVisited=file:///tmp/jessica
history=file:///tmp/jah, file:///home/connorjohnstone, file:///home/connorjohnstone/scout/projects/odyn/sandbox, file:///tmp/novi, file:///tmp
lastVisited=file:///tmp/novi
qtVersion=6.11.1
shortcuts=file:, file:///home/connorjohnstone, file:///home/connorjohnstone/scout, file:///tmp, file:///mnt
sidebarWidth=110
+3 -2
View File
@@ -99,8 +99,7 @@ wenzel_lge https://my.lge-ku.com/cs/doStart.sap
wenzel_internet https://www.att.com/acctmgmt/overview?authNState=Y&haloSuccess=true&lt=QHVBdylFK25HdGFncnh8dmd5a0x8ZCZRNDgmPiVPPGpuJiJnPyhbSzY0ODduPiZGVCRxeVoiJkA%3D
box https://console.hetzner.com/projects/11834759/storage-boxes/474410/overview
git_arcfield https://gitlab.arcfield.com/users/sign_in
lazylibrarian https://lazylibrarian.rcjohnstone.com/authors
ll https://lazylibrarian.rcjohnstone.com/authors
books https://books.rcjohnstone.com/
drawers https://www.printables.com/model/1149008-improved-modular-gridfinity-drawers/files
gridfinity https://gridfinity.tools/
itatorrents https://itatorrents.xyz/
@@ -133,3 +132,5 @@ moey_rent https://moeyproperties.managebuilding.com/Resident/portal/
jessica https://meet.google.com/pez-pnzg-nxo
dashboard https://docs.google.com/spreadsheets/d/1vwAxNKKzGNAPbqasXk52l8O0v4WfCXaxZmDd4ZzQYl8/edit?gid=1259809999#gid=1259809999
flexio https://flexio.rcjohnstone.com/
seerr https://seerr.rcjohnstone.com/login
guideline (401k) https://my.guideline.com/savers/401k/m28902fdrw?token=a95ab8a2d1d81fa857a64ba9dac18aa2
+10
View File
@@ -20,3 +20,13 @@ Host system76
Host work_laptop
HostName 10.0.0.8
User connorjohnstone
Host fw1
HostName 100.100.61.12
User scout-dev
Host sp240
#Hostname 10.8.11.123
Hostname localhost
User novi
Port 7002
+1 -15
View File
@@ -1,15 +1 @@
# Hyprland with colors from wallust
# The
# You can use this template by adding the following to wallust.toml:
# hypr = { src = "hyprland-colors.conf", dst = "~/.config/hypr/colors.conf" }
# and then on hyprland.conf:
# source = ~/.config/hypr/colors.conf
general {
# Here we use `saturate` filter to have more vibrant colors,
# not matter the scheme, since the border should seek the attention
col.active_border = rgb({{color1 | saturate(0.6) | strip}}) rgb({{color2 | saturate(0.6) | strip}}) rgb({{color3 | saturate(0.6) | strip}}) rgb({{color4 | saturate(0.6) | strip}}) rgb({{color5 | saturate(0.6) | strip}}) rgb({{color6 | saturate(0.6) | strip}})
# color0 is almost the same as the background color,
# by putting ee as the alpha, it makes it 100% transparent
col.inactive_border = rgba({{color0 | strip}}ee)
}
keyword general:col.active_border rgb({{color1 | saturate(0.6) | strip}}) rgb({{color2 | saturate(0.6) | strip}}) rgb({{color3 | saturate(0.6) | strip}}) rgb({{color4 | saturate(0.6) | strip}}) rgb({{color5 | saturate(0.6) | strip}}) rgb({{color6 | saturate(0.6) | strip}}) ; keyword general:col.inactive_border rgba({{color0 | strip}}ee)
+3 -1
View File
@@ -42,7 +42,9 @@ check_contrast = true
[templates]
waybar = { src = "waybar-colors.css", dst = "~/.config/waybar/colors.css" }
kitty = { src='kitty.conf', dst='~/.config/kitty/colors.conf'}
hypr = { src = "hyprland.conf", dst = "~/.config/hypr/colors.conf" }
# hyprctl --batch commands, applied by hypr_refresh. Not sourced by hyprland.conf:
# a changed sourced file triggers a config reload, which leaks DRM mode blobs.
hypr = { src = "hyprland.conf", dst = "~/.cache/wallust/hyprland-colors.batch" }
qutebrowser = { src = "qutebrowser.py", dst = "~/.config/qutebrowser/colors.py" }
swaync = { template = "colors-swaync.css", dst = "~/.config/swaync/colors.css" }
+2
View File
@@ -34,6 +34,8 @@ source "$DOTFILES/common/zsh/aliases.zsh"
for _f in "$DOTFILES/hosts/$DOTFILES_HOST"/zsh/*.zsh(N); do source "$_f"; done
unset _f
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
command -v pyenv >/dev/null 2>&1 && eval "$(pyenv init -)"
# zoxide's cd override confuses Claude Code's shell snapshotting.
+2 -2
View File
@@ -1,5 +1,5 @@
profile generated_dock {
output DP-6 enable position 0,0 scale 1.5
output DP-5 enable position 2560,0 scale 1.5
output DP-5 enable position 0,0 scale 1.5
output DP-6 enable position 2560,0 scale 1.5
output eDP-1 disable
}