Skip to content
Snippets Groups Projects
Commit 74f33ab8 authored by Montaño Sarria, Andres Felipe's avatar Montaño Sarria, Andres Felipe
Browse files

Cleaning pc

parent 63a0e103
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env bash
# Autor: Thiago Silva
# Contact: thiagos.dasilva@gmail.com
# URL: https://github.com/thiggy01/change-gdm-background
# =================================================================== #
# Check if script is run by root.
if [ "$(id -u)" -ne 0 ] ; then
echo 'This script must be run as root or with the sudo command.'
exit 1
fi
# Check what linux distro is being used.
distro="$(lsb_release -c | cut -f 2)"
if ! [[ "$distro" =~ (focal|groovy|hirsute) ]]; then
echo 'Sorry, this script only works with focal, groovy or hirsute distros.'
exit 1
fi
# Check if glib 2.0 development libraries are installed.
if [ ! -x "$(command -v glib-compile-resources)" ]; then
echo 'Additional glib 2.0 libraries need to be installed.'
read -p 'Type y or Y to proceed. Any other key to exit: ' -n 1
if [[ "$REPLY" =~ ^[yY]$ ]]; then
apt install libglib2.0-dev-bin
else
echo "This tool can't run without required libraries"
echo "Exiting."
echo
exit 1
fi
fi
# Assign the default gdm theme file path.
if [ "$(lsb_release -i | awk '{print $3}')" == 'Ubuntu' ]; then
gdm3Resource=/usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource
elif [ "$(lsb_release -i | awk '{print $3}')" == 'Pop' ]; then
gdm3Resource=/usr/share/gnome-shell/theme/Pop/gnome-shell-theme.gresource
fi
# Create a backup file of the original theme if there isn't one.
[ ! -f "$gdm3Resource"~ ] && cp "$gdm3Resource" "$gdm3Resource~"
# Restore backup function.
restore () {
mv "$gdm3Resource~" "$gdm3Resource"
if [ "$?" -eq 0 ]; then
chmod 644 "$gdm3Resource"
echo 'GDM background sucessfully restored.'
read -p 'Do you want to restart gdm to apply change? (y/n):' -n 1
echo
if [[ "$REPLY" =~ ^[yY]$ ]]; then
service gdm restart
else
echo 'Restart GDM service to apply change.'
exit 0
fi
fi
}
# Restore the original gdm3 theme.
[ "$1" == "--restore" ] && restore
#Define main variables.
gdm3xml=$(basename "$gdm3Resource").xml
workDir="/tmp/gdm3-theme"
# Create directories from resource list.
CreateDirs() {
for resource in `gresource list "$gdm3Resource~"`; do
resource="${resource#\/org\/gnome\/shell\/}"
if [ ! -d "$workDir"/"${resource%/*}" ]; then
mkdir -p "$workDir"/"${resource%/*}"
fi
done
}
# Extract resources from binary file.
ExtractRes() {
for resource in `gresource list "$gdm3Resource~"`; do
gresource extract "$gdm3Resource~" "$resource" > \
"$workDir"/"${resource#\/org\/gnome\/shell\/}"
done
}
# Compile resources into a gresource binary file.
CompileRes() {
glib-compile-resources --sourcedir=$workDir/theme/ $workDir/theme/"$gdm3xml"
}
# Moves the newly created resource to its default place.
MoveRes() {
mv $workDir/theme/gnome-shell-theme.gresource $gdm3Resource
}
# Check if gresource was sucessfuly moved to its default folder.
Check() {
if [ "$?" -eq 0 ]; then
# Solve a permission change issue (thanks to @huepf from github).
chmod 644 "$gdm3Resource"
echo 'GDM background sucessfully changed.'
read -p 'Do you want to restart gdm to apply change? (y/n):' -n 1
echo
# If change was successful apply ask for gdm restart.
if [[ "$REPLY" =~ ^[yY]$ ]]; then
service gdm restart
else
echo "Change will be applied only after restarting gdm"
echo
fi
else
# If something went wrong, restore backup file.
echo 'something went wrong.'
restore
echo 'No changes were applied.'
fi
}
CleanUp() {
# Remove temporary directories and files.
rm -r "$workDir"
exit 0
}
# Test if argument is an image file.
if [[ $(file --mime-type -b "$1") == image/*g ]]; then
# Define image variables.
gdmBgImg=$(realpath "$1")
imgFile=$(basename "$gdmBgImg")
# Call procedures to create directories and extract resources to them.
CreateDirs
ExtractRes
# Copy selected image to the resources directory.
cp "$gdmBgImg" "$workDir"/theme
# Change gdm background to the image you submited.
oldBg="#lockDialogGroup \{.*?\}"
newBg="#lockDialogGroup {
background: url('resource:\/\/\/org\/gnome\/shell\/theme\/$imgFile');
background-size: cover; }"
perl -i -0777 -pe "s/$oldBg/$newBg/s" "$workDir"/theme/gdm3.css
# Generate gresource xml file.
echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">' > "$workDir"/theme/"$gdm3xml"
for file in `gresource list "$gdm3Resource~"`; do
echo " <file>${file#\/org\/gnome/shell\/theme\/}</file>" \
>> "$workDir"/theme/"$gdm3xml"
done
echo " <file>$imgFile</file>" >> "$workDir"/theme/"$gdm3xml"
echo ' </gresource>
</gresources>' >> "$workDir"/theme/"$gdm3xml"
# Compile the new gresource.
CompileRes
# Move gresource to the default place.
MoveRes
# Check if everything was successful.
Check
# Remove temporary files and exit.
CleanUp
# Change background colors.
elif [[ "$1" =~ ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ ]]; then
# Store selected background color.
BgColor="$1"
CreateDirs
ExtractRes
# Change gdm background to the color you submited.
oldBg="#lockDialogGroup \{.*?\}"
newBg="#lockDialogGroup {
background: $BgColor;
background-size: cover; }"
perl -i -0777 -pe "s/$oldBg/$newBg/s" "$workDir"/theme/gdm3.css
# Generate the gresource xml file.
echo '<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/shell/theme">' > "$workDir"/theme/"$gdm3xml"
for file in `gresource list "$gdm3Resource~"`; do
echo " <file>${file#\/org\/gnome/shell\/theme\/}</file>" \
>> "$workDir"/theme/"$gdm3xml"
done
echo ' </gresource>
</gresources>' >> "$workDir"/theme/"$gdm3xml"
# Compile the new gresource.
CompileRes
# Move gresource to the default place.
MoveRes
# Remove temporary files and exit.
CleanUp
else
# If no file was submited or file submited isn't an image,
# show this message.
echo 'Image file not found or wrong color hex code.'
echo 'Please, submit a .jpg or .png image file or a valid hex code.'
echo 'Usage: sudo ./ubuntu-20.04-change-gdm-background /path/to/image.*g'
echo 'Usage: sudo ./ubuntu-20.04-change-gdm-background \#yourhexcode'
fi
FROM osrf/ros:foxy-desktop-focal
ENV ROS_DISTRO foxy
ENV RUNNING_IN_DOCKER true
# Avoid warnings by switching to noninteractive
ENV DEBIAN_FRONTEND=noninteractive
# Setup environment
RUN apt-get update && apt-get install -y \
locales \
&& sed -i '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# Configure apt and install packages
RUN apt-get -y install --no-install-recommends \
apt-transport-https \
ca-certificates \
software-properties-common \
curl \
gnupg-agent \
apt-utils dialog 2>&1 \
git \
git-lfs \
nano \
less \
xterm \
zsh \
&& rm -rf /var/lib/apt/lists/*
# Configure system to look for debian packages in the Artifactory repository
ARG USER_API_KEY_ARTIFACTS_TECNALIA
RUN sh -c "echo \
'deb https://${USER_API_KEY_ARTIFACTS_TECNALIA}@artifact.tecnalia.com/artifactory/tecnalia-robotics-debian xenial main' \
>> /etc/apt/sources.list.d/tecnalia.list"
# Import the key in order to be able to use the packages from the repository
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 7E72C5B4111A50084C63C9489E7A9B1D990CF897
# Configure rosdep
RUN sh -c "echo 'yaml https://git.code.tecnalia.com/tecnalia_robotics-public/gitlab_templates/raw/master/rosdistro/rosdep_tecnalia.yaml' \
>> /etc/ros/rosdep/sources.list.d/20-default.list"
RUN add-apt-repository ppa:ros-industrial/ppa
RUN apt-get update && apt-get install -y \
taskflow
RUN apt-get update \
&& apt-get upgrade ca-certificates -y
# Update final image
RUN apt-get update && apt-get -y upgrade && apt-get -y autoremove
RUN apt-get clean
# Set entrypoint
COPY ./ros_entrypoint.sh /
RUN chmod a+x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["zsh"]
ENV SHELL /usr/bin/zsh
# Switch back to dialog for any ad-hoc use of apt-get
ENV DEBIAN_FRONTEND=
ARG FROM_IMAGE=osrf/ros:foxy-desktop
ARG OVERLAY_WS=/opt/ros/snpd_ws
# multi-stage for caching
FROM $FROM_IMAGE AS cacher
# clone overlay source
ARG OVERLAY_WS
WORKDIR $OVERLAY_WS/src
RUN git clone https://github.com/tecnalia-advancedmanufacturing-robotics/scan_n_plan_workshop.git
RUN vcs import ./ < scan_n_plan_workshop/dependencies_tesseract.repos
RUN vcs import ./ < scan_n_plan_workshop/dependencies.repos
RUN vcs import ./ < scan_n_plan_workshop/snp_automate_2022/dependencies.repos
# copy manifests for caching
WORKDIR /opt
RUN mkdir -p /tmp/opt && \
find ./ -name "package.xml" | \
xargs cp --parents -t /tmp/opt && \
find ./ -name "COLCON_IGNORE" | \
xargs cp --parents -t /tmp/opt || true
# multi-stage for building
FROM $FROM_IMAGE AS builder
# Configure apt and install packages
RUN apt-get update && apt-get -y install --no-install-recommends \
apt-transport-https \
apt-utils dialog 2>&1 \
software-properties-common \
git \
nano \
less \
xterm \
zsh \
&& rm -rf /var/lib/apt/lists/*
# Install taskflow dependency from the ROS-I PPA
RUN add-apt-repository ppa:ros-industrial/ppa
RUN apt-get update && apt-get install -y \
taskflow
# Install missing dependencies
RUN apt-get update && apt-get install -y \
ros-foxy-control-msgs \
ros-foxy-diagnostic-updater \
ros-foxy-ifopt \
ros-foxy-joint-state-publisher \
ros-foxy-joint-state-publisher-gui \
ros-foxy-librealsense2 \
ros-foxy-octomap \
ros-foxy-octomap-msgs \
ros-foxy-ompl \
ros-foxy-xacro \
lcov \
libxmlrpcpp-dev \
libyaml-cpp-dev \
libbullet-dev libbullet-extras-dev libbullet2.88 libbulletml-dev
# install overlay dependencies
# finish rosdep command with true because some dependencies are not found
ARG OVERLAY_WS
WORKDIR $OVERLAY_WS
COPY --from=cacher /tmp/$OVERLAY_WS/src ./src
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
apt-get update && rosdep install -y \
--from-paths \
src \
--ignore-src \
|| true \
&& rm -rf /var/lib/apt/lists/*
# build overlay source
COPY --from=cacher $OVERLAY_WS/src ./src
ARG OVERLAY_MIXINS="release"
RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
colcon build \
--cmake-args \
-DTESSERACT_BUILD_FCL=OFF \
--mixin $OVERLAY_MIXINS
# source entrypoint setup
ENV OVERLAY_WS $OVERLAY_WS
RUN sed --in-place --expression \
'$isource "$OVERLAY_WS/install/setup.bash"' \
/ros_entrypoint.sh
# run launch file
CMD ["ros2", "launch", "snp_automate_2022", "start.launch.xml"]
......@@ -104,7 +104,7 @@ source ${HOME}/srcs/development_environment/dotfiles/system.bash
eval "$(direnv hook zsh)"
# [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
......
......@@ -3,7 +3,7 @@
###################################################################
# Define ROS_DISTRO before source ROS
if [ -z $ROS_DISTRO ]; then export ROS_DISTRO=noetic; fi
# if [ -z $ROS_DISTRO ]; then export ROS_DISTRO=noetic; fi
# Determine shell extension
if [ -z $SHELL ]; then echo "SHELL not set"; else ext=$(basename ${SHELL}); fi
......@@ -55,15 +55,15 @@ function cib(){
}
# If terminal starts in a ws, auto source it (useful for vscode)
pwd_init=${PWD}
cropped=${PWD#${HOME}/ros/${ROS_DISTRO}/}
WS_name=${cropped%%/*}
WS_path=${HOME}/ros/${ROS_DISTRO}/${WS_name}
FILE=${WS_path}/devel/setup.${ext}
if [[ -f $FILE ]]; then
cd ${WS_path}
source $FILE
cd ${pwd_init}
else
source /opt/ros/${ROS_DISTRO}/setup.${ext}
fi
#pwd_init=${PWD}
#cropped=${PWD#${HOME}/ros/${ROS_DISTRO}/}
#WS_name=${cropped%%/*}
#WS_path=${HOME}/ros/${ROS_DISTRO}/${WS_name}
#FILE=${WS_path}/devel/setup.${ext}
#if [[ -f $FILE ]]; then
# cd ${WS_path}
# source $FILE
# cd ${pwd_init}
#else
# source /opt/ros/${ROS_DISTRO}/setup.${ext}
#fi
File added
# Godel
## godel_plugins
## godel_process_planning
## godel_process_path_generation
## godel_msgs
## godel_surface_detection
<https://github.com/PointCloudLibrary/pcl/issues/410>
>>>
It's pretty simple actually. Although the qhull dev(s) made it pretty hard to debug this due to
obfuscated code and design flaws.. At least they put a note about the solution onto their NEWS page <http://www.qhull.org/news/qhull-news.html> .
QHull now provides qh_QHpointer and global struct versions of the library as static and shared libraries each and the new libqhull.so is compiled without qh_QHpointer in 2012.
PCL detects libqhull.so and uses it as if it was compiled with qh_QHpointer aaand voila, you're in the middle of a jungle of undetected code incompatibilities..
I changed the library to the new "libqhull_p.so" and things work as expected.
Would be great to see this fixed in 1.7.2 :)
This brings us to politics though... It looks like ubuntu/debian didn't care to include these qh_QHpointer shared libs in their libqhull6 packages until now.
I therefore assume pcl will only work with the static libs they provide.
Also, it's important to fix PCLConfig.cmake.in:141. Not everyone's on Windows (why is this even "most likely" the case?) and this shared/wrong static mixup makes it even harder to see through this linking mess.
I should get around to create a pull-request for this over the weekend..
>>>
Using CMake to generate the correct solution file, works definitively, but on Windows, qhullstatic_p and qhullstatic_pd must be linked, instead of qhull_p and qhull_pd, as suggested, otherwise an undefined reference on 'qh_qh' is given.
>>>
Linking pcl to libqhullstatic.a solved it, as described above. As far as I can tell, this thread is the only explanation of this issue anywhere.
>>>
The only solution is to use the 8.0.0 version of qhull until PCL fixes the obsolete code.
## godel_polygon_offset
## godel_process_execution
## godel_openvoronoi
Repository that contains a ROS-Industrial Godel project-specific fork of the OpenVoronoi library.
It has been converted to a ROS catkin package by adding a package manifest (`package.xml`) and a replacement build script (`CMakeLists.txt`). It has additionally been patched to provide a getter for the `MachiningGraph` member variable `g` in the `OffsetSorter` class.
Apart from these changes (and this new `README.md` file), all sources and other files have been left unchanged and are identical to those in the [source repository][].
## Setups
### Melodic Ubuntu Bionic
libqhull7:amd64 2015.2-4
libpcl-dev 1.8.1+dfsg1-2ubuntu2.18.04.1
### Noetic Ubuntu Focal
libqhull7:amd64 2015.2-4
libpcl-dev 1.10.0+dfsg-5ubuntu1
-- Experimental on Docker - Noetic
2/11/2022
To build exmaples:
- git:
local-name: ros_industrial_cmake_boilerplate
uri: 'https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git'
version: 0.2.8
- git:
local-name: perception_pcl
uri: 'https://github.com/ros-perception/perception_pcl.git'
version: 1.7.1
-git:
local-name: noether
uri: 'https://github.com/ros-industrial/noether.git'
version: 9b500301059fc9ed3cb8cffca6aa48dbe9fdbba5
mon launch noether_examples mesh_segmenter_server_client.launch filename:=/home/andres/ros/noetic/noether_ws/src/noether/noether_examples/data/plane_defect.ply
mon launch noether_examples mesh_segmenter_node.launch filename:=/home/andres/ros/noetic/noether_ws/src/noether/noether_examples/data/raw_mesh.ply show_individually:=true save_outputs:=true
mon launch noether_examples eigen_value_edge_generator_demo.launch mesh_file:=/home/andres/ros/noetic/noether_ws/src/noether/noether_examples/data/plane_defect.ply
File added
File added
File added
File added
gdm-tools
https://github.com/realmazharhussain/gdm-tools.git
pdfmixtool
git@gitlab.com:scarpetta/pdfmixtool.git
plymouth-theme
https://github.com/pop-os/plymouth-theme.git
pop-fonts
https://github.com/pop-os/fonts.git
pop-theme
https://github.com/pop-os/gtk-theme
vortex-ubuntu-plymouth-theme
https://github.com/emanuele-scarsella/vortex-ubuntu-plymouth-theme.git
disk-usage-space
https://github.com/anfemosa/disk-usage-space.git
powerlevel10k
roscon_2015
https://github.com/ros-industrial-consortium/roscon_2015.git
roscon_workshop_2021
https://github.com/ros-industrial-consortium/roscon_workshop_2021
ros_tutorial
https://github.com/anfemosa/ros_tutorial.git
bat
https://github.com/sharkdp/bat.git
iscan-bundle
https://support.epson.net/linux/en/iscan_c.php?version=2.30.4
lsd
https://github.com/Peltoche/lsd.git
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment