distro specific fixes
[distro-setup] / .bashrc
diff --git a/.bashrc b/.bashrc
index ba355b41afc20b1fcb533d414d8f33ea8568c081..ac78814f350e48ee565201e335e4af9f19216859 100644 (file)
--- a/.bashrc
+++ b/.bashrc
@@ -1,6 +1,26 @@
 #!/bin/bash
-# Copyright (C) 2019 Ian Kelling
-# SPDX-License-Identifier: AGPL-3.0-or-later
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
+
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+
+#     http://www.apache.org/licenses/LICENSE-2.0
+
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# shellcheck disable=SC2317
 
 # to debug
 #set -x
@@ -31,18 +51,32 @@ HISTCONTROL=ignoredups
 # but meh. dunno why, but just " *" does glob expansion, so use [ ] to avoid it.
 HISTIGNORE='pass *:otp *:oathtool *:histrm *'
 
+# note: duplicated in /a/bin/ds/filesystem/etc/profile.d/environment.sh
+umask 022
 
 
-#### begin section that works with sl() function to return from
-# noninteractive ssh shells, or tty. tty because often i
-# use it when something is going and io is slow and my bashrc
-# is too slow.
+if [[ $EUID == 1000 && $TERM == linux && ! $DISPLAY && $(tty) = /dev/tty1 && -x /usr/bin/startx ]]; then
+  if tmp=$(systemctl status |& head) && \
+      grep -qi '^ *state: running' <<<"$tmp"  && grep -qi '^ *failed: 0' <<<"$tmp" && grep -qi '^ *jobs: 0' <<<"$tmp"; then
+    startx
+  else
+    echo "systemctl status |& head:"
+    printf "%s\n" "$tmp"
+    echo: systemctl list-jobs:
+    systemctl list-jobs
+  fi
+fi
+
+#### if (in
+# noninteractive ssh shells or tty). tty because often i use it when
+# something is going and io is slow and my bashrc is too slow.
 if [[ $LC_USEBASHRC != t && ( $SSH_CONNECTION || $TERM == linux ) ]];  then
   # Here we did not opt-in to running our .bashrc file so we just
   # return, but we still setup a function to source it without returning
   # so if we want it we don't have to restart our ssh connection.
   brc() {
     export LC_USEBASHRC=t
+    # shellcheck disable=SC1090 # obviously, no need to follow a sourcing of this file
     source ~/.bashrc
   }
   return 0
@@ -85,6 +119,9 @@ else
       source $_tmp
     fi
   fi
+  if [[ $IANK_BASHRC_RUN ]]; then
+    $IANK_BASHRC_RUN ||:
+  fi
   ###### End sourcing of files #####
 fi
 #### end section that works with sl() function to return from
@@ -97,6 +134,13 @@ return 0
 # kitty puts this here on startup, i need to build with some option to
 # avoid it, whatever.
 
-# BEGIN_KITTY_SHELL_INTEGRATION
-if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
-# END_KITTY_SHELL_INTEGRATION
+## BEGIN_KITTY_SHELL_INTEGRATION
+# if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
+## END_KITTY_SHELL_INTEGRATION
+
+# Automatically added by the Guix install script.
+if [ -n "$GUIX_ENVIRONMENT" ]; then
+  if [[ $PS1 =~ (.*)"\\$" ]]; then
+    PS1="${BASH_REMATCH[1]} [env]\\\$ "
+  fi
+fi