Compare commits

..

No commits in common. "db1ee8957db638fdfbd3574e7575217944f7ec85" and "9002e98b5e2a082407810c9ba1c6899c757e1a5f" have entirely different histories.

8 changed files with 13 additions and 381 deletions

View file

@ -2,6 +2,5 @@
alias mk-venv='python -m venv .venv' alias mk-venv='python -m venv .venv'
alias do-venv='. .venv/bin/activate' alias do-venv='. .venv/bin/activate'
alias rm-venv='rm -rf .venv' alias rm-venv='rm -rf .venv'
[ $(command -v pdb) ] || alias pdb='python -m pdb'
command -v pdb > /dev/null || alias pdb='python -m pdb' [ $(command -v pip) ] || alias pip='python -m pip'
command -v pip > /dev/null || alias pip='python -m pip'

13
.bashrc
View file

@ -1,10 +1,14 @@
#!/usr/bin/env bash #!/usr/bin/env bash
for af in "$HOME/.aliases"/*; do
. "$af"
done
HISTSIZE=10000 HISTSIZE=10000
HISTFILESIZE=900000 HISTFILESIZE=900000
case ${TERM} in case ${TERM} in
xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty*|tmux-256color|linux) xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty*|tmux-256color)
PS1='\[\033]2;\h:\W \u\007\]\h:\[\033[38;5;219m\]\W\[\033[00m\] \[\033[01;35m\]\u\[\033[00m\]\$ ' PS1='\[\033]2;\h:\W \u\007\]\h:\[\033[38;5;219m\]\W\[\033[00m\] \[\033[01;35m\]\u\[\033[00m\]\$ '
;; ;;
*) *)
@ -24,9 +28,6 @@ command -v uname >/dev/null &&
Linux) Linux)
alias ls='ls --color' alias ls='ls --color'
[ -z "$ID" ] && [ -f /etc/os-release ] && . /etc/os-release [ -z "$ID" ] && [ -f /etc/os-release ] && . /etc/os-release
[ -r /usr/share/bash-completion/bash_completion ] \
&& . /usr/share/bash-completion/bash_completion
;; ;;
Darwin) Darwin)
command -v port >/dev/null && . /opt/local/etc/bashrc.mac command -v port >/dev/null && . /opt/local/etc/bashrc.mac
@ -39,7 +40,3 @@ command -v uname >/dev/null &&
;; ;;
esac \ esac \
; ;
for af in "$HOME/.aliases"/*; do
. "$af"
done

View file

@ -1,334 +0,0 @@
{
"config.name": "pipewire.conf",
#"config.path": "/usr/share/pipewire/pipewire.conf",
"context.properties": {
## Configure properties in the system.
#library.name.system = support/libspa-support
#context.data-loop.library.name.system = support/libspa-support
#support.dbus = true
#link.max-buffers = 64
link.max-buffers = 16 # version < 3 clients can't handle more
#mem.warn-mlock = false
#mem.allow-mlock = true
#mem.mlock-all = false
#clock.power-of-two-quantum = true
#log.level = 2
#cpu.zero.denormals = false
loop.rt-prio = -1 # -1 = use module-rt prio, 0 disable rt
loop.class = data.rt
#thread.affinity = [ 0 1 ] # optional array of CPUs
context.num-data-loops = -1 # -1 = num-cpus, 0 = no data loops
context.data-loops = [
{ loop.rt-prio = -1
loop.class = [ data.rt audio.rt ]
#library.name.system = support/libspa-support
thread.name = data-loop.0
#thread.affinity = [ 0 1 ] # optional array of CPUs
}
]
core.daemon = true # listening for socket connections
core.name = pipewire-0 # core name and socket name
## Properties for the DSP configuration.
default.clock.rate = 192000
default.clock.allowed-rates = [ 192000, 96000, 48000, 384000 44100 ]
#default.clock.quantum = 1024
#default.clock.min-quantum = 32
#default.clock.max-quantum = 2048
#default.clock.quantum-limit = 8192
#default.clock.quantum-floor = 4
#default.video.width = 640
#default.video.height = 480
#default.video.rate.num = 25
#default.video.rate.denom = 1
#
settings.check-quantum = true
settings.check-rate = true
# keys checked below to disable module loading
module.x11.bell = true
# enables autoloading of access module, when disabled an alternative
# access module needs to be loaded.
module.access = true
# enables autoloading of module-jackdbus-detect
module.jackdbus-detect = true
},
"context.properties.rules": [
{ matches = [ { cpu.vm.name = !null } ]
actions = {
update-props = {
# These overrides are only applied when running in a vm.
default.clock.min-quantum = 1024
}
}
}
],
"context.spa-libs": {
#<factory-name regex> = <library-name>
#
# Used to find spa factory names. It maps an spa factory name
# regular expression to a library name that should contain
# that factory.
#
audio.convert.* = audioconvert/libspa-audioconvert
avb.* = avb/libspa-avb
api.alsa.* = alsa/libspa-alsa
api.v4l2.* = v4l2/libspa-v4l2
api.libcamera.* = libcamera/libspa-libcamera
api.bluez5.* = bluez5/libspa-bluez5
api.vulkan.* = vulkan/libspa-vulkan
api.jack.* = jack/libspa-jack
support.* = support/libspa-support
video.convert.* = videoconvert/libspa-videoconvert
#videotestsrc = videotestsrc/libspa-videotestsrc
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
},
"context.modules": [
#{ name = <module-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( ifexists ) ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Loads a module with the given parameters.
# If ifexists is given, the module is ignored when it is not found.
# If nofail is given, module initialization failures are ignored.
# If condition is given, the module is loaded only when the context
# properties all match the match rules.
#
# Uses realtime scheduling to boost the audio thread priorities. This uses
# RTKit if the user doesn't have permission to use regular realtime
# scheduling. You can also clamp utilisation values to improve scheduling
# on embedded and heterogeneous systems, e.g. Arm big.LITTLE devices.
{ name = libpipewire-module-rt
args = {
nice.level = -11
rt.prio = 88
rt.time.soft = -1
#rt.time.hard = -1
#uclamp.min = 0
#uclamp.max = 1024
}
flags = [ ifexists nofail ]
}
# The native communication protocol.
{ name = libpipewire-module-protocol-native
args = {
# List of server Unix sockets, and optionally permissions
#sockets = [ { name = "pipewire-0" }, { name = "pipewire-0-manager" } ]
}
}
# The profile module. Allows application to access profiler
# and performance data. It provides an interface that is used
# by pw-top and pw-profiler.
{ name = libpipewire-module-profiler }
# Allows applications to create metadata objects. It creates
# a factory for Metadata objects.
{ name = libpipewire-module-metadata }
# Creates a factory for making devices that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-device-factory }
# Creates a factory for making nodes that run in the
# context of the PipeWire server.
{ name = libpipewire-module-spa-node-factory }
# Allows creating nodes that run in the context of the
# client. Is used by all clients that want to provide
# data to PipeWire.
{ name = libpipewire-module-client-node }
# Allows creating devices that run in the context of the
# client. Is used by the session manager.
{ name = libpipewire-module-client-device }
# The portal module monitors the PID of the portal process
# and tags connections with the same PID as portal
# connections.
{ name = libpipewire-module-portal
flags = [ ifexists nofail ]
}
# The access module can perform access checks and block
# new clients.
{ name = libpipewire-module-access
args = {
# Socket-specific access permissions
#access.socket = { pipewire-0 = "default", pipewire-0-manager = "unrestricted" }
# Deprecated legacy mode (not socket-based),
# for now enabled by default if access.socket is not specified
#access.legacy = true
}
condition = [ { module.access = true } ]
}
# Makes a factory for wrapping nodes in an adapter with a
# converter and resampler.
{ name = libpipewire-module-adapter }
# Makes a factory for creating links between ports.
{ name = libpipewire-module-link-factory }
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
# Use libcanberra to play X11 Bell
{ name = libpipewire-module-x11-bell
args = {
#sink.name = "@DEFAULT_SINK@"
#sample.name = "bell-window-system"
#x11.display = null
#x11.xauthority = null
}
flags = [ ifexists nofail ]
condition = [ { module.x11.bell = true } ]
}
{ name = libpipewire-module-jackdbus-detect
args = {
#jack.library = libjack.so.0
#jack.server = null
#jack.client-name = PipeWire
#jack.connect = true
#tunnel.mode = duplex # source|sink|duplex
source.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
sink.props = {
#audio.channels = 2
#midi.ports = 1
#audio.position = [ FL FR ]
# extra sink properties
}
}
flags = [ ifexists nofail ]
condition = [ { module.jackdbus-detect = true } ]
}
],
"context.objects": [
#{ factory = <factory-name>
# ( args = { <key> = <value> ... } )
# ( flags = [ ( nofail ) ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Creates an object from a PipeWire factory with the given parameters.
# If nofail is given, errors are ignored (and no object is created).
# If condition is given, the object is created only when the context properties
# all match the match rules.
#
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc node.description = videotestsrc "Spa:Pod:Object:Param:Props:patternType" = 1 } }
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test node.description = audiotestsrc } }
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
# A default dummy driver. This handles nodes marked with the "node.always-process"
# property when no other driver is currently active. JACK clients need this.
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Dummy-Driver
node.group = pipewire.dummy
node.sync-group = sync.dummy
priority.driver = 200000
#clock.id = monotonic # realtime | tai | monotonic-raw | boottime
#clock.name = "clock.system.monotonic"
}
}
{ factory = spa-node-factory
args = {
factory.name = support.node.driver
node.name = Freewheel-Driver
priority.driver = 190000
node.group = pipewire.freewheel
node.sync-group = sync.dummy
node.freewheel = true
#freewheel.wait = 10
}
}
# This creates a new Source node. It will have input ports
# that you can link, to provide audio for this source.
#{ factory = adapter
# args = {
# factory.name = support.null-audio-sink
# node.name = "my-mic"
# node.description = "Microphone"
# media.class = "Audio/Source/Virtual"
# audio.position = "FL,FR"
# monitor.passthrough = true
# }
#}
# This creates a single PCM source device for the given
# alsa device path hw:0. You can change source to sink
# to make a sink in the same way.
#{ factory = adapter
# args = {
# factory.name = api.alsa.pcm.source
# node.name = "alsa-source"
# node.description = "PCM Source"
# media.class = "Audio/Source"
# api.alsa.path = "hw:0"
# api.alsa.period-size = 1024
# api.alsa.headroom = 0
# api.alsa.disable-mmap = false
# api.alsa.disable-batch = false
# audio.format = "S16LE"
# audio.rate = 48000
# audio.channels = 2
# audio.position = "FL,FR"
# }
#}
# Use the metadata factory to create metadata and some default values.
#{ factory = metadata
# args = {
# metadata.name = my-metadata
# metadata.values = [
# { key = default.audio.sink value = { name = somesink } }
# { key = default.audio.source value = { name = somesource } }
# ]
# }
#}
],
"context.exec": [
#{ path = <program-name>
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Execute the given program with arguments.
# If condition is given, the program is executed only when the context
# properties all match the match rules.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = ""
# condition = [ { exec.session-manager = null } { exec.session-manager = true } ] }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = [ "-c" "pipewire-pulse.conf" ]
# condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }
],
"config.name.d": "pipewire.conf.d"
}

View file

@ -22,6 +22,3 @@ command -v uname >/dev/null &&
; ;
export EDITOR=`which vim` export EDITOR=`which vim`
# Make GPG and Git signing behave!
export GPG_TTY=$(tty)

View file

@ -1,8 +0,0 @@
perl_env() { eval $(perl -I $HOME/perl5/lib/perl5/ -Mlocal::lib) ; }
perl_env \
|| (
command -v cpanm \
&& cpanm --local-lib=$HOME/perl5 local::lib \
&& perl_env \
)

View file

@ -1,7 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
shopt -q login_shell && . $HOME/.bashrc
# Make compositor behave on Alpine # Make compositor behave on Alpine
if [ -z "$XDG_RUNTIME_DIR" ]; then if [ -z "$XDG_RUNTIME_DIR" ]; then
export XDG_RUNTIME_DIR=/tmp/runtime-$UID export XDG_RUNTIME_DIR=/tmp/runtime-$UID

View file

@ -1,6 +1,6 @@
#[%MACPORTS%]# #[%MACPORTS%]#
# MacPorts Installer addition on 2023-01-11_at_01:28:57: adding an appropriate PATH variable for use with MacPorts. # MacPorts Installer addition on 2023-01-11_at_01:28:57: adding an appropriate PATH variable for use with MacPorts.
export PATH="$HOME/Library/Python/3.12/bin:$HOME/Library/Python/3.11/bin:$HOME/.local/bin:$HOME/.local/sbin:/opt/local/bin:/opt/local/sbin:/Applications/ArmGNUToolchain/12.2.rel1/arm-none-eabi/bin:$PATH" export PATH="$HOME/Library/Python/3.12/bin:$HOME/Library/Python/3.11/bin:$HOME/perl5/bin:$HOME/.local/bin:$HOME/.local/sbin:/opt/local/bin:/opt/local/sbin:/Applications/ArmGNUToolchain/12.2.rel1/arm-none-eabi/bin:$PATH"
# Finished adapting your PATH environment variable for use with MacPorts. # Finished adapting your PATH environment variable for use with MacPorts.
#[%MACPORTS%]# #[%MACPORTS%]#
@ -27,6 +27,3 @@ fi
# Makes Vim and friends behave! # Makes Vim and friends behave!
export LANG=en_US.UTF-8 export LANG=en_US.UTF-8
# Make GPG and Git signing behave!
export GPG_TTY=$(tty)

View file

@ -1,4 +1,4 @@
DEFAULT_TARGETS += $(HOME)/.bash_profile \ DEFAULT_TARGETS += $(HOME)/.profile \
$(HOME)/.vim/bundle/Vundle.vim $(HOME)/.vimrc \ $(HOME)/.vim/bundle/Vundle.vim $(HOME)/.vimrc \
$(HOME)/.inputrc \ $(HOME)/.inputrc \
$(HOME)/.config/alacritty/alacritty.toml \ $(HOME)/.config/alacritty/alacritty.toml \
@ -6,7 +6,6 @@ DEFAULT_TARGETS += $(HOME)/.bash_profile \
$(HOME)/.profile.d profileds $(HOME)/.profile.d profileds
ALIASES = $(foreach a,$(wildcard .aliases/*),$(subst .aliases/,$(HOME)/.aliases/,$(a))) ALIASES = $(foreach a,$(wildcard .aliases/*),$(subst .aliases/,$(HOME)/.aliases/,$(a)))
PROFILEDS = $(foreach p,$(wildcard .profile.d/*),$(subst .profile.d/,$(HOME)/.profile.d/,$(p))) PROFILEDS = $(foreach p,$(wildcard .profile.d/*),$(subst .profile.d/,$(HOME)/.profile.d/,$(p)))
DOSU ?= $(shell command -v sudo || which doas)
UNAME = $(shell uname -s) UNAME = $(shell uname -s)
ifeq ($(UNAME),Darwin) ifeq ($(UNAME),Darwin)
@ -52,7 +51,7 @@ $(HOME)/.profile.d/%: .profile.d/% $(HOME)/.profile.d
profileds: $(PROFILEDS) profileds: $(PROFILEDS)
$(HOME)/.bash_profile: $(PROFILE) $(HOME)/.profile: $(PROFILE)
cp $< $@ cp $< $@
$(HOME)/.profile.%: .profile.% $(HOME)/.profile.%: .profile.%
@ -61,9 +60,6 @@ $(HOME)/.profile.%: .profile.%
$(HOME)/.bashrc: .bashrc $(HOME)/.bashrc: .bashrc
cp $< $@ cp $< $@
/etc/bash.bashrc: .bashrc
$(DOSU) cp $< $@
$(HOME)/.inputrc: .inputrc $(HOME)/.inputrc: .inputrc
cp $< $@ cp $< $@
@ -71,18 +67,16 @@ $(HOME)/.bashrc.%: .bashrc.%
cp $< $@ cp $< $@
/opt/local/etc/bashrc: .bashrc /opt/local/etc/bashrc: .bashrc
$(DOSU) cp $< $@ sudo cp $< $@
/opt/local/etc/bashrc.%: .bashrc.% /opt/local/etc/bashrc.%: .bashrc.%
$(DOSU) cp $< $@ sudo cp $< $@
### TERMINAL EMULATOR ########################################################## ### TERMINAL EMULATOR ##########################################################
$(HOME)/.config/alacritty/alacritty.toml: .config/alacritty/alacritty.toml $(HOME)/.config/alacritty/alacritty.toml: .config/alacritty/alacritty.toml
$(INSTALL) -D -m 644 $< $@ $(INSTALL) -D -m 644 $< $@
alacritty: $(HOME)/.config/alacritty/alacritty.toml
### SWAY ####################################################################### ### SWAY #######################################################################
$(HOME)/.sway/config: .sway/config $(HOME)/.sway/config: .sway/config
@ -106,14 +100,6 @@ $(HOME)/.vim/bundle:
$(HOME)/.vim/bundle/Vundle.vim: $(HOME)/.vim/bundle $(HOME)/.vim/bundle/Vundle.vim: $(HOME)/.vim/bundle
git clone https://github.com/VundleVim/Vundle.vim.git $@ || cd $@; git pull; exit 0 git clone https://github.com/VundleVim/Vundle.vim.git $@ || cd $@; git pull; exit 0
### PIPEWIRE ###################################################################
$(HOME)/.config/pipewire/pipewire.conf: .config/pipewire/pipewire.conf
$(INSTALL) -D -m 644 $< $@
restart-pw:
systemctl restart --user pipewire{,-pulse}{.service,.socket}
### X.ORG CRAP ################################################################# ### X.ORG CRAP #################################################################
$(HOME)/.Xmodcapslock: x-crap/.Xmodcapslock $(HOME)/.Xmodcapslock: x-crap/.Xmodcapslock
@ -132,7 +118,7 @@ x-crap: $(HOME)/.Xmodcapslock $(HOME)/.Xdefaults $(HOME)/.Xresources $(HOME)/.xi
### "PHONY" TARGETS ############################################################ ### "PHONY" TARGETS ############################################################
.PHONY: aliases profileds README x-crap sway i3status restart-pw pipewire alacritty .PHONY: aliases profileds README x-crap sway i3status
### README ##################################################################### ### README #####################################################################