All significant changes to PopOS Setup will be documented here.
- popOS_setup.sh:
- Given that now some post-install.d processes use parallelization to run things in the
background and work faster, a
wait
command was implemented in the final clean-up step so users don't close the shell while things are still running.
- Given that now some post-install.d processes use parallelization to run things in the
background and work faster, a
- gnome_settings.sh:
- The script now configures the new GNOME Text Editor.
- packages.txt:
- There's a new entry in the Development category called Debian Packaging (.deb), which lists
dpkg-dev
anddebhelper
, two packages needed to create .deb packages.
- There's a new entry in the Development category called Debian Packaging (.deb), which lists
- flatpaks.txt:
- The app Metadata Cleaner was added to the list.
- popOS_setup.sh:
- There
Separate
function was optimized.
- There
- packages.txt:
- The Gitg entry in the Development category was renamed to Git & Gitg.
- post-install.d:
- Some files now use child subshells that run in parallel
( .. ) &
to speed things up by running things in the background.
- Some files now use child subshells that run in parallel
- git.sh:
- Tweaked the git slog alias so it does not specify the number of commits to show, allowing the user to specify it instead.
- The
now-ignored
alias was renamed tolist-ignored
because the keyword list better explains what the alias does. - The placeholders for all
log --format
aliases were updated to use %C(auto) instead of %C(r). - The alias
list-ignored
now uses the option-o
because of an update to git.
- .zshrc:
- Changed the way coloring works for all the ls aliases.
ls
itselft is now aliased tols -BhF --group-directories-first
, raw ls can still be used in the shell by typing\ls
.
- Changed the way coloring works for all the ls aliases.
- zsh.sh:
- The script now makes a copy of .zshrc in /etc/skel/.zshrc.
- The script now configures useradd to use zsh as the default shell when the user changes their default shell to zsh.
- init.vim:
- The filetype gitcommit was added to an autocommand group to display colorcolumns at columns 50 and 70 to help keep git commit messages at a reasonable length.
- The color of the mode in the statusline was changed to blue.
- Allow neovim to use the guicursor.
- .vimrc:
- The filetype gitcommit was added to an autocommand group to display colorcolumns at columns 50 and 70 to help keep git commit messages at a reasonable length.
- The color of the mode in the statusline was changed to blue.
- back_me_up.sh:
- The script was updated to be able to handle drives in /run/media/user as well as in /media.
- The script also syncs the drive so unmounting it after using the script is faster.
- mc_server_builder.sh:
- The version was updated to 1.19.2.
- gnome_settings.sh:
- Removed the keybindings configurations as they were rather clunky.
- GNOME Terminal is no longer configured twice.
- git.sh:
- The alias
mrc
was removed because it is only useful in very rare situations.
- The alias
Version 2.4.0 - 2021-11-21
This release comes after 16 commits, though the changes are extensive. These were the most important changes:
- Fixing bugs
- Improving (slightly) code maintainabilty
- Correcting outdated comments
- Categorizing the apt packages so the user can now choose to skip an entire software category when selecting packages to install
- init.vim:
- The file type limits was added to use tabs with a length of 8.
- vimrc:
- The file type limits was added to use tabs with a length of 8.
- remove.txt:
- Document Scanner was added to the list.
- back_me_up.sh:
- Added a notification to signal when the backup is finished.
- The script now also backs up the
~/.gitconfig
file.
- popOS_setup.sh:
- The mecanism to process the packages.txt file was changed for something that allows the user to skip entire categories of software.
- The loops that process remove.txt, packages.txt, and flatpaks.txt now use a file in memory for performance optimizations, this file is protected by unique names, chmod and umask.
- packages.txt:
- The format of the file was changed:
- Lines that are not indented represent categories
- Indented lines represent apps
- Indented lines belong to the category above them
- Indented lines must use a hard tab for indentation
- The packages Firefox and Geary Mail were added in their categories.
- The format of the file was changed:
- kdev.sh:
- The config option no longer reads the
Makefile
if you don't specify a config name, instead, it reads.config
.
- The config option no longer reads the
- .zshrc:
- The code for the git prompt was changed to be much faster by using zsh's vcs_info. This means less functionality, but much less code to run every time the prompt needs to be renderes.
- The shell can now detect when it is running inside GNOME Builder, and use the vscode prompt.
- The
la
alias now groups folders first. - Made many other tweaks to improve code maintainability and speed.
- .bashrc:
- The
la
alias now groups folders first.
- The
- kdev.sh:
- Stop assuming the user's cwd when using
kdev config
. - Fixed
kdev config
failing to find the config type currently in use. - The
kdev clean
option on level 4 now also removes git untracked directories.
- Stop assuming the user's cwd when using
- init.vim:
- Fixed local settings that lingered when changing filetype from markdown, text, or limits to anything else.
- .vimrc:
- Fixed local settings that lingered when changing filetype from markdown, text, or limits to anything else.
Version 2.3.0 - 2021-10-17
This is a small release made in parity with the Fedora Setup project to syncronize changes to this date.
- remove.txt:
- Added Eddy to the list.
- remove.txt:
- Fixed popsicle package not removing popsicle-gtk
Version 2.2.1 - 2021-10-15
This release completes the plan for 2.2.0 by adding support for installing Virt Manager (a type 1 hypervisor) and tools for kernel development. Additionally, many bugs were patched.
- packages.txt:
- Added Kernel development to the list.
- Added Virt Manager to the list.
- Added Trash CLI to the list.
- fakeroot.sh:
- This file is triggered by the selection of Kernel development, and helps to help the user set up some kernel development tools.
- kdev.sh:
- This file will be installed by fakeroot.sh and it's role is to help the user manage config files and kernel installations and uninstallations.
- virt-manager.sh:
- This file configures libvirt to allow the user to run and manage virtual machines.
- popOS_setup.sh:
- The package pixz is now installed as essential.
- flatpaks.txt:
- Added Discord to the list.
- remove.txt:
- Added popsicle and gnome help to the list.
- popOS_setup.sh:
- Fixed the welcome message.
- Fixed system installation of flatpaks.
- gnome_settings.sh:
- Fixed bad usage of dconf when configuring gedit.
- zsh.sh:
- Fixed permission denied when writing to
/etc/zsh/zshenv
.
- Fixed permission denied when writing to
- .zshrc:
- The git prompt now doesn't dissapear if you're not in the root folder of a repository.
- .bashrc:
- The git prompt now doesn't dissapear if you're not in the root folder of a repository.
Version 2.2.0 - 2021-10-11
This update comes after a very long time, the main things it brings are:
- Defined behaviour for running the popOS_setup.sh script as root.
- Using
/etc/zsh/zshenv
to configure the $PATH for all users.
- popOS_setup.sh:
- The script now stops if you run it as root, you should run it as your user. You can use the
-s
- The script now sorts the package lists and removes duplicates.
- Added a few more options for nvidia drivers.
- The script now stops if you run it as root, you should run it as your user. You can use the
- packages.txt:
- Added Krita drawing software.
- Added Chromium browser.
- Added some fun terminal commands.
- duc_noip_install.sh:
- Now, if you pass the
-s
flag to the script, it will set up a systemd service and a systemd timer so it runs every time you boot the computer. - If you run the script as root, the "supporting" files such as No-IP's icon and the desktop entry
will be placed in
/usr/local
instead of~/.local
. - The script now shows the status of the installation as Success or Failed when it finishes.
- The script now writes an installation log to
/usr/local/src
to help system admins delete the program if they no longer need it.
- Now, if you pass the
- gnome_settings.sh:
- The script now sets up geary in a lot more depth.
- mc_server_builder.sh:
- The
compress.sh
script written by this script now shows a progress percentage while creating backups of the server.
- The
- remove.txt:
- Added Videos and Archive Manager to the list of possible packages to remove.
- gnome_appearance.sh:
- The file now has support for compressed archives that are not gzip format.
- The file now extracts the themes and icons into
~/.local/share
.
- tlp.sh:
- The script now offers many more configuration choices for handling the lid switch.
- The script now restarts the systemd-logind service after writing to the config file.
- zsh.sh:
- The script now writes to
/etc/zsh/zshenv
code to add~/.local/bin
to the $PATH for all users.
- The script now writes to
- .zshrc:
- The file no longer modifies the $PATH. As that is now handled by
/etc/zsh/zshenv
.
- The file no longer modifies the $PATH. As that is now handled by
- .bashrc:
- Some of the improvements for the Z-Shell were added to this file.
- post-install.d:
- It now shows the separator to avoid cluttering in the terminal.
- .zshrc:
- The file no longer causes the shell to open with error code 1.
- .vimrc:
- Fixed mode() related eror when interactively replacing text.
- init.vim:
- Fixed mode() related eror when interactively replacing text.
- .zshrc:
- The file no longer reads
~/.zsh_aliases
.
- The file no longer reads
Version 2.1.0 - 2021-07-15
This update had many more commits than usual, though there aren't that many new things. The main improvements are:
- Heavily improved the configuration of Vim and added Neovim with a similar configuration.
- Added flags to the back_me_up.sh script.
- Reworked the mc_server_builder.sh script to make it more stable.
- back_me_up.sh:
- Added
-r
flag, which tells the script to replace the latest backup. - Added
-s
flag, which tells the script to backup the~/.ssh
and~/.safe
directories.
- Added
- golang.sh:
- Added the choice to install development tools for Visual Studio Code.
- packages.txt:
- Added Neovim package.
- .zshrc:
- Added
lz
andllz
aliases to easily see SELinux tags when listing files.
- Added
- nvim.vim:
- Added a config file for neovim with many of the features of the current .vimrc.
- neovim.sh:
- Can set up Neovim as the default
$EDITOR
. - Can write a special function to the config file to check which editor you're running when you also install Vim.
- Can set up Neovim as the default
- .vimrc:
- A dynamic statusline for non-powerline vim editors. It changes based on wether the user is in an active or inactive split.
- Set a scroll offset of 5 lines to keep your sight further from the edge of the screen.
- Integrate with the system clipboard.
- vim.sh:
- Can write a special function to the config file to check which editor you're running when you also install Neovim.
- git.sh:
- Integrate Vim and Neovim more deeply with Git.
- New aliases
eflog
andnow-ignores
. They show commit log with commiter emails and tracked files that should be ignored by git, respectively.
- deskcuts:
- Many files inside the folder were updated to use paths such as
~/.local/share/icons/hicolor
and/usr/local
.
- Many files inside the folder were updated to use paths such as
- mc_server_builder.sh:
- The script was heavily modified to make it more stable.
- It no longer sets up the firewall by default.
- Option
-mc
is now-v
(for visible). - You now use the
-f
flag to tell the script to configure the firewall. - It no longer needs user assistance to delete firewall rules.
- The download link is now at the top of the script for it to be easy to update.
- There's a list of possible exit codes and their meanings.
- .zshrc:
- Use
awk
commands instead of combininggrep
,rev
andcut
for the git prompt. (Less subprocesses)
- Use
- .vimrc:
- Put backup, undo, and swap files in
~/.cache/vim
, and set their permissions so other users cannot read them. - Set textwidth for plain text and markdown to 100 characters.
- Reconfigured some of the coloring to be more consistent on terminal and gui.
- Put backup, undo, and swap files in
- vim.sh:
- Reworded some prompts to avoid confusion with neovim.
- vim.sh:
- Fixed typo in .csh config file.
- mc_server_builder.sh:
- The animation does no longer lingers in your shell if you interrupt the script (^C).
Version 2.0.0 - 2021-06-19
This version, while it doesn't bring much new. Reworked an important step of the main script, installing apt repositories, to be much more expandable than before, without requiring editing the main script to modify the step. However, some small features were added, such as:
- New packages in the installation list.
- Line highlighting in Vim
- A post-install script to set up the GNOME Sdk
- sources.d:
- This folder will contain sources to be added before installing packages.
- packages.txt:
- Added Kitty Terminal, and Visual Studio Code Insiders packages.
- gnome-builder.sh:
- Added the file, it gives the user a choice to install the GNOME SDK before they start using GNOME Builder.
- flatpaks.txt:
- Added Bitwarden flatpak to the list.
- .zshrc:
- Added support for Kitty terminal.
- .vimrc:
- Added line highlighting.
- popOS_setup.sh:
- Changed methodology for adding repositories. Now the sources.d folder contains the sources in files named according to the package that needs the source.
- .zshrc:
- The vscode prompt can now be chosen by assigning the value
vscode
to theprompt_style
variable. - Made vscode prompt trigger when
$VSCODE_GIT_IPC_HANDLE
is set, instead of"$VSCODE_TERM" == "yes"
. This means the user won't have to manually set the variable from the vscode settings. - Now edits the
$PATH
more carefully.
- The vscode prompt can now be chosen by assigning the value
- .vimrc:
- Fixed root user not getting powerline set up after the user chooses to install it.
- .zshrc:
- Fixed prompt starting with error code 1 when
~/.zsh_aliases
is missing.
- Fixed prompt starting with error code 1 when
Version 1.2.0 - 2021-06-11
This version contains a few improvements, a rewritten script, and fixes. The most significant additions were:
- Added VS Codium package.
- Added Golang with a post-install script that sets
$GOPATH
to~/.local/golang
. - Improved and faster git info prompt
- Rewrote the duc_noip_install.sh script.
- packages.txt:
- popOS_setup.sh:
- Added VS Codium source.
- .zshrc:
- Added info about staged and untracked files to the git prompt.
- Aliases and configs are now sourced from files under the
~/.zshrc.d
folder, as well as from a~/.zsh_aliases
file.
- .bashrc:
- Brought some of the powerful git prompt to this file.
- back_me_up.sh:
- The script now also looks for
~/.zshrc.d
,~/.bashrc.d
, and~/.bash_aliases
.
- The script now also looks for
- duc_noip_install.sh:
- Rewrote the script to be much more reliable and simple to edit.
- popOS_setup.sh:
- The extra scripts are now loaded and executed through loops, this is much more expandable (and reliable) than loading them individually.
- vim.sh:
- Switched from user installation of powerline-status to sytem installation.
- zsh.sh:
- Switched from user installation of powerline-shell to sytem installation.
- .zshrc:
- Improved performance of the git info in the prompt.
- vim.sh:
- Fixed excessive arguments.
- zsh.sh:
- Fixed missing space when prompting the user.
- git.sh:
- Fixed faulty config for the vim editor.
- .zshrc:
- This file will continue sourcing the
~/.zsh_aliases
file, but it will be fully replaced by~/.zshrc.d
in an upcoming release. Because of this, the~/.zsh_aliases
file will no longer be automatically created.
- This file will continue sourcing the
Version 1.1.0 - 2021-06-05
This update is mostly a cumulative release of minor additions. The biggest introductions are the choice to use the powerline plugin in Vim, better prompts for the Z-Shell, and a few changes and fixes.
- .vimrc:
- Added variable fg color for the vim statusline: red if you're root, white if you're not.
- vim.sh:
- Added the posibility to set vim as the default
$EDITOR
. - Added the posibility of installing the powerline-status plugin for the editor.
- Added the posibility to set vim as the default
- .zshrc:
- Added gear (
⚙
) for fedora and ubuntu sytle prompts to show there are background jobs running. - Ubuntu style prompt (default) now has path shortening when deep in a directory structure.
- Added gear (
- git.sh:
- Added
now-ignored
alias to find files that should be untracked after updating a.gitignore
.
- Added
- .zshrc:
- Kali style prompt now has softer edges:
╭──
instead of┌──
.
- Kali style prompt now has softer edges:
- zsh.sh:
- The script will no longer attempt to install powerline automatically, instead, it will ask the user if they want to install it.
- git.sh:
- Changed
flog
andsflog
aliases. You can specify a path to theunstage
alias now.
- Changed
- .vimrc:
- Fixed the statusline showing current line instead of total lines after the
/
.
- Fixed the statusline showing current line instead of total lines after the
- back_me_up.sh:
- Fixed trying to keep less than 1 backup.
Version 1.0.0 - 2021-05-28
Some time before this release, the Fedora Setup project started by reworking this project to work in Fedora. There were a lot of innovations. This release focuses on porting them back. Some of the most notable innovations have been:
- The creation of the packages.txt file.
- The creation of the post-install.d folder, which stores .sh files that are sourced by the main script.
- And many improvements to the codebase that make expanding and modifying functionality easier.
- popOS_setup.sh
- The script now gives a welcome message when started.
- packages.txt:
- This file contains the list of packages and dependencies that the popOS_setup.sh script installs. By putting this list in a file, adding and removing packages becomes very easy.
- post-install.d:
- This new folder contains shell scripts that should be sourced from popOS_setup.sh, they contain the post-installation instructions previously found in the main script.
- scripts:
- The scritps folder contains a few scripts that can be run without being sourced by popOS_setup.sh. These scripts were previously in the root of the repository.
- update_recovery.sh:
- The functionality to update the recovery partition was moved from the main script to this external script.
- .zshrc:
- Introduced "prompt styles", so the user can choose a prompt style from the templates when the main script is sourcing the zsh.sh script.
- Now the paths
~/.local/bin
and~/bin
are added to the $PATH environment variable. - A few other small changes.
- .vimrc:
- The file now creates a
~/.vimdata
folder to store all the temporary files used by vim. - The file lightly customizes some of the coloring and style of the vim editor.
- The file now creates a
- popOS_setup.sh:
- The main script (pop_OS_start.sh) was renamed to be like the name of the project.
- There were innumerable changes to how the script works, but the user experience remains very familiar.
- duc_noip_install.sh:
- The script now writes its files in
~/.local/bin
and~/.local/share/applications
.
- The script now writes its files in
- popOS_setup.sh:
- The script no longer restarts the computer, making the code simpler.
- The script no longer copies the deskcuts.
- The script no longer supports installing downloaded packages in the
~/Downloads
folder.
- deskcuts:
- Removed a few redundant deskcuts.
- mc_server_builder.sh:
- The script no longer executes the command
sudo update-desktop-database
.
- The script no longer executes the command
- vscode.sh:
- The script was removed as it is no longer necessary.
- Fonts folder:
- The fonts folder was removed.
Version 0.2.2 - 2021-05-07
- .zshrc
new
function to create a directory and cd into it.
- vscode.sh
- Added git alias
sflog
to show output likeflog
and check gpg signatures for each commit.
- Added git alias
- .zshrc
- Improved gpg filter from history.
- Improved comment with instructions to use powerline prompt.
- gnome_appearance.sh
- Changed terminal transparency to be less transparent as it makes it difficult to read.
- gnome_appearance.sh
- Fixed uncommented comment.