From 265bb76b8523b5d2a3b97c6c57111bfb0e810679 Mon Sep 17 00:00:00 2001 From: Pavel Sobolev Date: Sat, 1 May 2021 18:06:54 +0300 Subject: [PATCH] (#144) Apply fixes, switch to Fish shell: * Fix the command that sets the `DISPLAY` variable; * Switch to the `bitnami/git` base image; * Check what is provided by the image; * Don't use `--storage-opt` option when building; * Setup Fish shell; * Update the description; * Add `--chown` to `COPY` instructions in `Dockerfile`; * Update the screenshot. --- .github/pictures/color-scheme.png | Bin 0 -> 38669 bytes .github/pictures/color-theme.png | Bin 48686 -> 0 bytes .github/scripts/publish.bash | 2 +- .github/workflows/build.yml | 2 +- Dockerfile | 23 ++--- LICENSE.md | 2 +- README.md | 40 +++----- .../root/install-essential-packages.bash | 24 ++--- build-scripts/root/install-fish.bash | 13 +++ build-scripts/root/install-zsh.bash | 11 --- build-scripts/root/set-up-a-new-user.bash | 6 +- build-scripts/user/add-configs.bash | 13 --- build-scripts/user/install-ohmyzsh.bash | 90 ------------------ configs/.config/fish/config.fish | 31 ++++++ .../.config/fish/functions/fish_prompt.fish | 37 +++++++ configs/.nanorc | 1 + configs/.ssh/config | 1 + user-scripts/Julia.bash | 4 +- user-scripts/Rust.bash | 4 +- 19 files changed, 125 insertions(+), 179 deletions(-) create mode 100644 .github/pictures/color-scheme.png delete mode 100644 .github/pictures/color-theme.png create mode 100644 build-scripts/root/install-fish.bash delete mode 100644 build-scripts/root/install-zsh.bash delete mode 100644 build-scripts/user/add-configs.bash delete mode 100644 build-scripts/user/install-ohmyzsh.bash create mode 100644 configs/.config/fish/config.fish create mode 100644 configs/.config/fish/functions/fish_prompt.fish create mode 100644 configs/.nanorc create mode 100644 configs/.ssh/config diff --git a/.github/pictures/color-scheme.png b/.github/pictures/color-scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..f4d2aa5724396b092ea65e0f434de49aa522d48a GIT binary patch literal 38669 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 P9=wLC?t@b0r*HokX!KG} diff --git a/.github/scripts/publish.bash b/.github/scripts/publish.bash index d3f3701..20831d1 100644 --- a/.github/scripts/publish.bash +++ b/.github/scripts/publish.bash @@ -3,7 +3,7 @@ # A script to build and push the image # Build the image -podman --storage-opt=overlay.mount_program=/usr/bin/fuse-overlayfs build --squash-all -t ${IMAGENAME} . +podman build --squash-all -t ${IMAGENAME} . # Login to the GHCR echo ${GHCR_PAT} | podman login ghcr.io -u ${USERNAME} --password-stdin diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8b1936c..a1bd522 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout the repository uses: actions/checkout@master - name: Build the image - run: podman --storage-opt=overlay.mount_program=/usr/bin/fuse-overlayfs build --squash-all -t dev . + run: podman build --squash-all -t dev . - name: Run a container run: | podman run --name container -td dev diff --git a/Dockerfile b/Dockerfile index 98d7103..de86e63 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # Base image -FROM docker.io/bitnami/minideb:buster +FROM docker.io/bitnami/git:2 # Meta information LABEL maintainer="Pavel Sobolev (https://github.com/Paveloom)" -LABEL version="0.5.0" +LABEL version="0.6.0" LABEL description="This is an image containing paveloom's personal development environment." LABEL github-repository="https://github.com/paveloom-d/dev" LABEL image-repository="https://github.com/orgs/paveloom-d/packages/container/package/dev" @@ -17,11 +17,11 @@ RUN chmod -R +x /build-scripts # Install essential packages RUN /build-scripts/root/install-essential-packages.bash -# Install Zsh -RUN /build-scripts/root/install-zsh.bash +# Install Fish +RUN /build-scripts/root/install-fish.bash -# Set `SHELL` to Zsh -ENV SHELL /bin/zsh +# Set `SHELL` to Fish +ENV SHELL /bin/fish # Specify new user ENV USER=paveloom @@ -36,19 +36,16 @@ RUN /build-scripts/root/set-up-a-new-user.bash WORKDIR $HOME # Copy user scripts -COPY user-scripts Scripts +COPY --chown=$USER:$USER user-scripts Scripts # Allow their execution and let the user own them -RUN chown -R $USER:$USER Scripts && chmod -R +x Scripts +RUN chmod -R +x Scripts # Switch to the created user USER $USER -# Point to the hosts file for SSH -RUN /build-scripts/user/add-configs.bash - -# Install OhMyZsh -RUN /build-scripts/user/install-ohmyzsh.bash +# Copy the user's configuration files +COPY --chown=$USER:$USER configs /home/$USER # Remove build scripts RUN sudo rm -rf /build-scripts diff --git a/LICENSE.md b/LICENSE.md index 2681a1c..aeac6bf 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2020 Pavel Sobolev +Copyright (c) 2021 Pavel Sobolev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 334b50e..74ff570 100644 --- a/README.md +++ b/README.md @@ -19,47 +19,29 @@ See all details under the spoiler:
Content of the image
@@ -104,10 +86,10 @@ You can then run a container based on this image as follows: podman run --name container -t -d dev ``` -Since Zsh is the default shell, you can enter the container using the following command: +Since Fish is the default shell, you can enter the container using the following command: ```bash -podman exec -it container zsh +podman exec -it container fish ``` ### I don't see any password requests. Is that normal? @@ -147,7 +129,7 @@ This will prompt for the `username`'s password. If you haven't done this yet, Instead of calling `ssh-add` every time you log-in, you can add your SSH key(s) using [`keychain`](https://linux.die.net/man/1/keychain). The corresponding lines are present -in the `~/.zshrc`, just uncomment them and specify your keys. +in the `~/.config/fish/config.fish`, just uncomment them and specify your keys. ### Auxiliary user scripts, huh? What's that? @@ -159,7 +141,7 @@ Also, scripts to install the latest stable versions of Julia and Rust are includ They are located in `~/Scripts`. -### Theme adjustments? Why? +### Color scheme? Different terminals (like Xterm), programs (like Visual Studio Code) and utilities (like PuTTY) have their own color pallettes. So the current theme can look ugly depending @@ -195,4 +177,4 @@ It's based on [`synthwave-everything`](https://atomcorp.github.io/themes/?theme=synthwave-everything). With everything else set correctly, the terminal window should look like this: -![](https://github.com/paveloom-d/dev/raw/master/.github/pictures/color-theme.png) +![](./.github/pictures/color-scheme.png) diff --git a/build-scripts/root/install-essential-packages.bash b/build-scripts/root/install-essential-packages.bash index 34ac010..5a32d5b 100644 --- a/build-scripts/root/install-essential-packages.bash +++ b/build-scripts/root/install-essential-packages.bash @@ -2,17 +2,20 @@ echo -e '\n\e[1;36mInstalling essential packages:\e[0m' +# Create a symbolic link to Git +ln -s /opt/bitnami/git/bin/git /usr/bin/git + echo -e '\e[1;36m> Installing `apt-utils`...\e[0m' install_packages apt-utils >/dev/null 2>&1 -echo -e '\e[1;36m> Installing `htop`...\e[0m' -install_packages htop >/dev/null +echo -e '\e[1;36m> Installing `exa`...\e[0m' +install_packages exa >/dev/null -echo -e '\e[1;36m> Installing `ca-certificates`...\e[0m' -install_packages ca-certificates >/dev/null +echo -e '\e[1;36m> Installing `ncurses-bin`...\e[0m' +install_packages ncurses-bin >/dev/null -echo -e '\e[1;36m> Installing `git`...\e[0m' -install_packages git >/dev/null +echo -e '\e[1;36m> Installing `htop`...\e[0m' +install_packages htop >/dev/null echo -e '\e[1;36m> Installing `ncdu`...\e[0m' install_packages ncdu >/dev/null @@ -29,18 +32,9 @@ install_packages less >/dev/null echo -e '\e[1;36m> Installing `wget`...\e[0m' install_packages wget >/dev/null -echo -e '\e[1;36m> Installing `curl`...\e[0m' -install_packages curl >/dev/null - echo -e '\e[1;36m> Installing `gpg` and `gnupg-agent`...\e[0m' install_packages gpg gnupg-agent >/dev/null -echo -e '\e[1;36m> Installing `sudo`...\e[0m' -install_packages sudo >/dev/null - -echo -e '\e[1;36m> Installing `ssh`...\e[0m' -install_packages ssh >/dev/null - echo -e '\e[1;36m> Installing `keychain`...\e[0m' install_packages keychain >/dev/null diff --git a/build-scripts/root/install-fish.bash b/build-scripts/root/install-fish.bash new file mode 100644 index 0000000..ff1a493 --- /dev/null +++ b/build-scripts/root/install-fish.bash @@ -0,0 +1,13 @@ +#!/bin/bash + +echo -e '\n\e[1;36mInstalling Fish:\e[0m' + +echo -e '\e[1;36m> Installing the package...\e[0m' +echo 'deb http://download.opensuse.org/repositories/shells:/fish:/release:/3/Debian_10/ /' >> /etc/apt/sources.list.d/shells:fish:release:3.list +curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg > /dev/null +install_packages fish >/dev/null + +echo -e '\e[1;36m> Changing the default shell...\e[0m' +sed -i -e "s/bin\/ash/usr\/bin\/fish/" /etc/passwd + +echo diff --git a/build-scripts/root/install-zsh.bash b/build-scripts/root/install-zsh.bash deleted file mode 100644 index edbadcd..0000000 --- a/build-scripts/root/install-zsh.bash +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -echo -e '\n\e[1;36mInstalling Zsh:\e[0m' - -echo -e '\e[1;36m> Installing the package...\e[0m' -install_packages zsh >/dev/null - -echo -e '\e[1;36m> Changing the default shell...\e[0m' -sed -i -e "s/bin\/ash/bin\/zsh/" /etc/passwd - -echo diff --git a/build-scripts/root/set-up-a-new-user.bash b/build-scripts/root/set-up-a-new-user.bash index 479c8bf..0925976 100644 --- a/build-scripts/root/set-up-a-new-user.bash +++ b/build-scripts/root/set-up-a-new-user.bash @@ -3,7 +3,7 @@ echo -e '\n\e[1;36mSetting up a user:\e[0m' echo -e '\e[1;36m> Adding a user...\e[0m' -useradd -ms /bin/zsh $USER +useradd -ms /usr/bin/fish $USER echo -e '\e[1;36m> Disabling the password prompt...\e[0m' echo "$USER ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/$USER @@ -14,4 +14,8 @@ chmod 0440 /etc/sudoers.d/$USER echo -e '\e[1;36m> Letting the user to own the home directory...\e[0m' chown -R $USER:$USER $HOME +echo -e '\e[1;36m> Creating `/etc/wsl.conf`...\e[0m' +echo -e "[user] +default = $USER" > /etc/wsl.conf + echo diff --git a/build-scripts/user/add-configs.bash b/build-scripts/user/add-configs.bash deleted file mode 100644 index 4851f93..0000000 --- a/build-scripts/user/add-configs.bash +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -echo -e '\n\e[1;36mAdding configs:\e[0m' - -echo -e '\e[1;36m> Creating `~/.ssh/config`...\e[0m' -mkdir -p ~/.ssh -echo -e 'UserKnownHostsFile ~/.ssh/known_hosts' > ~/.ssh/config - -echo -e '\e[1;36m> Creating `/etc/wsl.conf`...\e[0m' -sudo bash -c "echo -e '[user] -default = ${USER}' > /etc/wsl.conf" - -echo diff --git a/build-scripts/user/install-ohmyzsh.bash b/build-scripts/user/install-ohmyzsh.bash deleted file mode 100644 index 28d23ea..0000000 --- a/build-scripts/user/install-ohmyzsh.bash +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash - -echo -e '\n\e[1;36mInstalling OhMyZsh:\e[0m' - -echo -e '\e[1;36m> Installing the framework...\e[0m' -(sh -c "$(wget -O- https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)") >/dev/null 2>&1 - -echo -e '\e[1;36m> Downloading the `zsh-autosuggestions` plugin...\e[0m' -git clone --quiet https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions >/dev/null - -echo -e '\e[1;36m> Activating the plugin...\e[0m' -sed -i '/plugins=(git)/c\plugins=(git zsh-autosuggestions)' ~/.zshrc - -echo -e '\e[1;36m> Activating `zshcfg` alias...\e[0m' -sed -i '/# alias zshconfig="mate ~\/\.zshrc"/c\alias zshcfg="nano ~\/\.zshrc"' ~/.zshrc - -echo -e '\e[1;36m> Appending custom config changes...\e[0m' -echo ' -# Key bindings - -## Bind `Ctrl+Backspace` to delete a word behind the cursor -bindkey '\''^H'\'' backward-kill-word - -## Bind `Ctrl+Delete` to delete a word after the cursor -bindkey '\''5~'\'' kill-word - -# Settings for the `zsh-autosuggestions` plugin - -## Change the color of a suggestion -ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff" - -# Theme settings - -## Change colors of public directories in the `ls` output -export LS_COLORS="$LS_COLORS:ow=1;35:tw=1;35:" - -# SSH / Keychain - -## Start an `ssh-agent` -eval "$(ssh-agent -s)" >/dev/null 2>&1 - -## Start SSH service -sudo service ssh start >/dev/null - -## Add an SSH key to the keys chain -# keychain ~/.ssh/id_rsa 2>/dev/null -# . ~/.keychain/`uname -n`-sh - -# Other - -## Fix `TTY` for GPG -export GPG_TTY=$(tty) - -## Switch to UTF-8 encoding -export LC_ALL=C.UTF-8 - -## Make `less` not open a window -## if text takes up less space -export LESS=-FXR - -## Set up the display (for WSL) -export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 - -## Go home at the start -cd $HOME' >> ~/.zshrc - -echo -e '\e[1;36m> Creating a theme...\e[0m' -echo 'PROMPT="%(?:%{$fg_bold[green]%}~>:%{$fg_bold[red]%}~>)" -PROMPT+='\'' %{$fg[cyan]%}%c%{$reset_color%} $(git_prompt_info)'\'' - -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[red]%}<" -ZSH_THEME_GIT_PROMPT_SUFFIX=">%{$reset_color%} "' > ~/.oh-my-zsh/custom/themes/paveloom.zsh-theme - -echo -e '\e[1;36m> Adjusting the theme...\e[0m' -sed -i '/ZSH_THEME="robbyrussell"/c\ZSH_THEME="paveloom"' ~/.zshrc - -echo -e '\e[1;36m> Activating `nano`'\''s default syntax highlighting...\e[0m' -echo 'include /usr/share/nano/*.nanorc' > ~/.nanorc - -echo -e '\e[1;36m> Adding the configuration before sourcing...\e[0m' -sed -i '/source $ZSH\/oh-my-zsh./c\ -# Change the colors of public directories\ -export LS_COLORS="$LS_COLORS:di=1;34:ow=1;31:tw=1;31:"\ -\ -# Disable the verification of insecure directories\ -ZSH_DISABLE_COMPFIX="true"\ -\ -source $ZSH/oh-my-zsh.sh' ~/.zshrc - -echo diff --git a/configs/.config/fish/config.fish b/configs/.config/fish/config.fish new file mode 100644 index 0000000..7ec06d1 --- /dev/null +++ b/configs/.config/fish/config.fish @@ -0,0 +1,31 @@ +# Go home +cd $HOME + +# Disable greeting +set fish_greeting + +# Key bindings + +## Bind `Ctrl+Backspace` to delete a word behind the cursor +bind \b backward-kill-word + +## Bind `Ctrl+Delete` to delete a word after the cursor +bind \e\[3\;5~ kill-word + +# Variables + +## Switch to UTF-8 encoding +set -gx LC_ALL C.UTF-8 + +## Make `less` not open a window if text takes up less space +set -gx LESS -FXR + +## Set up the display (for WSL) +set -gx DISPLAY (cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 + +# Aliases +alias ls=exa +alias cfg="nano ~/.config/fish/config.fish" + +# Keychain +# eval keychain -q --noask --eval id_rsa >/dev/null diff --git a/configs/.config/fish/functions/fish_prompt.fish b/configs/.config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..26ce8eb --- /dev/null +++ b/configs/.config/fish/functions/fish_prompt.fish @@ -0,0 +1,37 @@ +function fish_prompt --description 'Write out the prompt' + set -l last_pipestatus $pipestatus + + set -g __fish_git_prompt_show_informative_status 1 + set -g __fish_git_prompt_hide_untrackedfiles 1 + set -g __fish_git_prompt_color_branch magenta --bold + set -g __fish_git_prompt_showupstream informative + set -g __fish_git_prompt_char_upstream_ahead "↑" + set -g __fish_git_prompt_char_upstream_behind "↓" + set -g __fish_git_prompt_char_upstream_prefix "" + set -g __fish_git_prompt_char_stagedstate "●" + set -g __fish_git_prompt_char_dirtystate "✚" + set -g __fish_git_prompt_char_untrackedfiles "…" + set -g __fish_git_prompt_char_invalidstate "✖" + set -g __fish_git_prompt_char_cleanstate "" + set -g __fish_git_prompt_char_stateseparator + set -g __fish_git_prompt_color red + set -g __fish_git_prompt_color_dirtystate blue + set -g __fish_git_prompt_color_stagedstate yellow + set -g __fish_git_prompt_color_invalidstate red + set -g __fish_git_prompt_color_untrackedfiles $fish_color_normal + set -g __fish_git_prompt_color_cleanstate green --bold + + set -l prefix_color + if test $pipestatus = 0 + set prefix_color green + else + set prefix_color red + end + + # PWD + echo -n (set_color $prefix_color)"~> "(set_color -o cyan)(basename (prompt_pwd))(set_color normal) + set_color normal + + printf '%s' (fish_vcs_prompt) + echo -n ' ' +end diff --git a/configs/.nanorc b/configs/.nanorc new file mode 100644 index 0000000..7fa0d6c --- /dev/null +++ b/configs/.nanorc @@ -0,0 +1 @@ +include /usr/share/nano/*.nanorc diff --git a/configs/.ssh/config b/configs/.ssh/config new file mode 100644 index 0000000..a5c8f7d --- /dev/null +++ b/configs/.ssh/config @@ -0,0 +1 @@ +UserKnownHostsFile ~/.ssh/known_hosts diff --git a/user-scripts/Julia.bash b/user-scripts/Julia.bash index 75f20f0..40f525e 100644 --- a/user-scripts/Julia.bash +++ b/user-scripts/Julia.bash @@ -19,9 +19,9 @@ tar -xf ~/Other/julia/julia-${JULIA_VERSION}-linux-x86_64.tar.gz -C ~/Other/juli echo -e '\e[1;36m> Deleting the tarball...\e[0m' rm ~/Other/julia/julia*.tar.gz -echo -e '\e[1;36m> Explicitly updating the PATH variable in the `~/.zshrc`...\e[0m' +echo -e '\e[1;36m> Explicitly updating the PATH variable in the `~/.config/fish/config.fish`...\e[0m' echo ' # Add Julia binary to the `PATH` -export PATH=$PATH:/home/$USER/Other/julia/bin' >> ~/.zshrc +set -a PATH /home/$USER/Other/julia/bin' >> ~/.config/fish/config.fish echo diff --git a/user-scripts/Rust.bash b/user-scripts/Rust.bash index eb169aa..0129b39 100644 --- a/user-scripts/Rust.bash +++ b/user-scripts/Rust.bash @@ -10,9 +10,9 @@ echo -e '\n\e[1;36mInstalling Rust:\e[0m' echo -e '\e[1;36m> Installing `rustup`...\e[0m' curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh &>/dev/null -s -- -y -echo -e '\e[1;36m> Explicitly updating the PATH variable in the `~/.zshrc`...\e[0m' +echo -e '\e[1;36m> Explicitly updating the PATH variable in the `~/.config/fish/config.fish`...\e[0m' echo ' # Add Rust binaries to the `PATH` -export PATH=$PATH:/home/$USER/.cargo/bin' >> ~/.zshrc +set -a PATH /home/$USER/.cargo/bin' >> ~/.config/fish/config.fish echo