diff --git a/.aliases/python.bash b/.aliases/python.bash index 522a729..24b9878 100644 --- a/.aliases/python.bash +++ b/.aliases/python.bash @@ -2,6 +2,5 @@ alias mk-venv='python -m venv .venv' alias do-venv='. .venv/bin/activate' alias rm-venv='rm -rf .venv' - -command -v pdb > /dev/null || alias pdb='python -m pdb' -command -v pip > /dev/null || alias pip='python -m pip' +[ $(command -v pdb) ] || alias pdb='python -m pdb' +[ $(command -v pip) ] || alias pip='python -m pip' diff --git a/.bashrc b/.bashrc index 83395c0..80e38f5 100644 --- a/.bashrc +++ b/.bashrc @@ -1,10 +1,14 @@ #!/usr/bin/env bash +for af in "$HOME/.aliases"/*; do + . "$af" +done + HISTSIZE=10000 HISTFILESIZE=900000 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\]\$ ' ;; *) @@ -24,9 +28,6 @@ command -v uname >/dev/null && Linux) alias ls='ls --color' [ -z "$ID" ] && [ -f /etc/os-release ] && . /etc/os-release - - [ -r /usr/share/bash-completion/bash_completion ] \ - && . /usr/share/bash-completion/bash_completion ;; Darwin) command -v port >/dev/null && . /opt/local/etc/bashrc.mac @@ -39,7 +40,3 @@ command -v uname >/dev/null && ;; esac \ ; - -for af in "$HOME/.aliases"/*; do - . "$af" -done diff --git a/.config/pipewire/pipewire.conf b/.config/pipewire/pipewire.conf deleted file mode 100644 index 0aefb0e..0000000 --- a/.config/pipewire/pipewire.conf +++ /dev/null @@ -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": { - # = - # - # 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 = - # ( args = { = ... } ) - # ( flags = [ ( ifexists ) ( nofail ) ] ) - # ( condition = [ { = ... } ... ] ) - #} - # - # 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 = - # ( args = { = ... } ) - # ( flags = [ ( nofail ) ] ) - # ( condition = [ { = ... } ... ] ) - #} - # - # 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 = - # ( args = "" | [ ... ] ) - # ( condition = [ { = ... } ... ] ) - #} - # - # 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" -} diff --git a/.profile b/.profile index 783a0da..5a34f0e 100644 --- a/.profile +++ b/.profile @@ -22,6 +22,3 @@ command -v uname >/dev/null && ; export EDITOR=`which vim` - -# Make GPG and Git signing behave! -export GPG_TTY=$(tty) diff --git a/.profile.d/perl.bash b/.profile.d/perl.bash deleted file mode 100644 index ca889c8..0000000 --- a/.profile.d/perl.bash +++ /dev/null @@ -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 \ - ) diff --git a/.profile.linux b/.profile.linux index 7bdd557..43274e3 100644 --- a/.profile.linux +++ b/.profile.linux @@ -1,7 +1,5 @@ #!/usr/bin/env bash -shopt -q login_shell && . $HOME/.bashrc - # Make compositor behave on Alpine if [ -z "$XDG_RUNTIME_DIR" ]; then export XDG_RUNTIME_DIR=/tmp/runtime-$UID diff --git a/.profile.mac b/.profile.mac index 59de1b1..b7dfdfd 100644 --- a/.profile.mac +++ b/.profile.mac @@ -1,6 +1,6 @@ #[%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. #[%MACPORTS%]# @@ -27,6 +27,3 @@ fi # Makes Vim and friends behave! export LANG=en_US.UTF-8 - -# Make GPG and Git signing behave! -export GPG_TTY=$(tty) diff --git a/GNUmakefile b/GNUmakefile index 721288b..62878b5 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -1,4 +1,4 @@ -DEFAULT_TARGETS += $(HOME)/.bash_profile \ +DEFAULT_TARGETS += $(HOME)/.profile \ $(HOME)/.vim/bundle/Vundle.vim $(HOME)/.vimrc \ $(HOME)/.inputrc \ $(HOME)/.config/alacritty/alacritty.toml \ @@ -6,7 +6,6 @@ DEFAULT_TARGETS += $(HOME)/.bash_profile \ $(HOME)/.profile.d profileds ALIASES = $(foreach a,$(wildcard .aliases/*),$(subst .aliases/,$(HOME)/.aliases/,$(a))) PROFILEDS = $(foreach p,$(wildcard .profile.d/*),$(subst .profile.d/,$(HOME)/.profile.d/,$(p))) -DOSU ?= $(shell command -v sudo || which doas) UNAME = $(shell uname -s) ifeq ($(UNAME),Darwin) @@ -52,7 +51,7 @@ $(HOME)/.profile.d/%: .profile.d/% $(HOME)/.profile.d profileds: $(PROFILEDS) -$(HOME)/.bash_profile: $(PROFILE) +$(HOME)/.profile: $(PROFILE) cp $< $@ $(HOME)/.profile.%: .profile.% @@ -61,9 +60,6 @@ $(HOME)/.profile.%: .profile.% $(HOME)/.bashrc: .bashrc cp $< $@ -/etc/bash.bashrc: .bashrc - $(DOSU) cp $< $@ - $(HOME)/.inputrc: .inputrc cp $< $@ @@ -71,18 +67,16 @@ $(HOME)/.bashrc.%: .bashrc.% cp $< $@ /opt/local/etc/bashrc: .bashrc - $(DOSU) cp $< $@ + sudo cp $< $@ /opt/local/etc/bashrc.%: .bashrc.% - $(DOSU) cp $< $@ + sudo cp $< $@ ### TERMINAL EMULATOR ########################################################## $(HOME)/.config/alacritty/alacritty.toml: .config/alacritty/alacritty.toml $(INSTALL) -D -m 644 $< $@ -alacritty: $(HOME)/.config/alacritty/alacritty.toml - ### SWAY ####################################################################### $(HOME)/.sway/config: .sway/config @@ -106,14 +100,6 @@ $(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 -### 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 ################################################################# $(HOME)/.Xmodcapslock: x-crap/.Xmodcapslock @@ -132,7 +118,7 @@ x-crap: $(HOME)/.Xmodcapslock $(HOME)/.Xdefaults $(HOME)/.Xresources $(HOME)/.xi ### "PHONY" TARGETS ############################################################ -.PHONY: aliases profileds README x-crap sway i3status restart-pw pipewire alacritty +.PHONY: aliases profileds README x-crap sway i3status ### README #####################################################################