diff --git a/README.md b/README.md new file mode 100755 index 0000000..3519d85 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# Desktop + +My personal setup scripts made for [Fedora Linux](https://getfedora.org) desktop. diff --git a/config/_scripts/gnome-install-extension.sh b/config/_scripts/gnome-install-extension.sh deleted file mode 100755 index fc6c389..0000000 --- a/config/_scripts/gnome-install-extension.sh +++ /dev/null @@ -1,8 +0,0 @@ -VERSION_TAG=$(curl -Lfs "https://extensions.gnome.org/extension-query/?search=$1" | jq '.extensions[0] | .shell_version_map | map(.pk) | max') -wget -O $1.zip "https://extensions.gnome.org/download-extension/$1.shell-extension.zip?version_tag=$VERSION_TAG" -q -gnome-extensions install --force $1.zip -q -if ! gnome-extensions list | grep --quiet $1; then - busctl --user call org.gnome.Shell.Extensions /org/gnome/Shell/Extensions org.gnome.Shell.Extensions InstallRemoteExtension s $1 -fi -gnome-extensions enable $1 -rm $1.zip \ No newline at end of file diff --git a/config/_scripts/run.py b/config/_scripts/run.py deleted file mode 100755 index 092c3d1..0000000 --- a/config/_scripts/run.py +++ /dev/null @@ -1,104 +0,0 @@ -from pathlib import Path - -import yaml -import subprocess - -cwd = Path(__file__).parent.parent - -variables = { - "$home": str(Path.home()) -} - -def replace_variables(string: str): - for variable in variables: - string = string.replace(variable, variables[variable]) - return string - -def get_files(folder: Path, files: list[str]) -> set[Path]: - result = set() - for file in files: - if not (folder / file).exists(): - for d in (folder).glob(file): - result.add(d) - else: - result.add(folder / file) - return result - -def is_enabled(config: dict, key: str) -> bool: - if "disabled" in config: - if config["disabled"] and key in config["disabled"]: - return False - key_parts = key.split(".") - parent = config - for part in key_parts: - if part in parent: - parent = parent[part] - else: - return False - return True - -# Setup dotfiles - -def set_dotfiles(folder: str, config: dict): - all_files = set() - for where in config: - files = get_files(cwd / folder, config[where]).difference(all_files) - for file in files: - where_file = Path(replace_variables(where)) / file.relative_to(cwd / folder) - if where_file.exists(): - where_file.unlink() - where_file.symlink_to(file) - all_files.update(files) - -# Install GNOME extensions - -def install_gnome_extension(ext): - #p = subprocess.Popen(f"{cwd / '_scripts' / 'gnome-install-extension.sh'} {ext}", shell=True) - p = subprocess.Popen(f"busctl --user call org.gnome.Shell.Extensions /org/gnome/Shell/Extensions org.gnome.Shell.Extensions InstallRemoteExtension s {ext}", shell=True) - p.wait() - -# Import / Export GNOME settings - -def configure_gnome(file: str, path: str, export: bool = False): - dconf = cwd / "gnome" / (file+".dconf"); - p = subprocess.Popen(f"dconf {'dump' if export else 'load'} {path} {'>' if export else '<'} {dconf}", shell=True) - p.wait() - -# Main part - -def main(): - - config_file = cwd / "config.yml" - if not config_file.exists(): - return - config = yaml.safe_load(config_file.read_text()) - if not config: - return - - if is_enabled(config, "dotfiles"): - print("Installing dotfiles...") - for folder in config["dotfiles"]: - print(f" - {folder}") - set_dotfiles(folder, config["dotfiles"][folder]) - - if is_enabled(config, "gnome"): - - if is_enabled(config, "gnome.extensions"): - print("Installing GNOME extensions...") - for ext in config["gnome"]["extensions"]: - print(f" - {ext}") - install_gnome_extension(ext) - - if is_enabled(config, "gnome.import"): - print("Importing GNOME settings...") - for file in config["gnome"]["import"]: - print(f" - {file}") - configure_gnome(file, config["gnome"]["import"][file]) - - if is_enabled(config, "gnome.export"): - print("Exporting GNOME settings...") - for file in config["gnome"]["export"]: - print(f" - {file}") - configure_gnome(file, config["gnome"]["export"][file], True) - -main() diff --git a/config/bash/.bash_logout b/config/bash/.bash_logout deleted file mode 100644 index de4f5f7..0000000 --- a/config/bash/.bash_logout +++ /dev/null @@ -1,7 +0,0 @@ -# ~/.bash_logout: executed by bash(1) when login shell exits. - -# when leaving the console clear the screen to increase privacy - -if [ "$SHLVL" = 1 ]; then - [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q -fi diff --git a/config/bash/.bashrc b/config/bash/.bashrc deleted file mode 100644 index 7a09bc2..0000000 --- a/config/bash/.bashrc +++ /dev/null @@ -1,122 +0,0 @@ -# ~/.bashrc: executed by bash(1) for non-login shells. -# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) -# for examples - -# If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac - -# don't put duplicate lines or lines starting with space in the history. -# See bash(1) for more options -HISTCONTROL=ignoreboth - -# append to the history file, don't overwrite it -shopt -s histappend - -# for setting history length see HISTSIZE and HISTFILESIZE in bash(1) -HISTSIZE=1000 -HISTFILESIZE=2000 - -# check the window size after each command and, if necessary, -# update the values of LINES and COLUMNS. -shopt -s checkwinsize - -# If set, the pattern "**" used in a pathname expansion context will -# match all files and zero or more directories and subdirectories. -#shopt -s globstar - -# make less more friendly for non-text input files, see lesspipe(1) -[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# set variable identifying the chroot you work in (used in the prompt below) -if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then - debian_chroot=$(cat /etc/debian_chroot) -fi - -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in - xterm-color|*-256color) color_prompt=yes;; -esac - -# uncomment for a colored prompt, if the terminal has the capability; turned -# off by default to not distract the user: the focus in a terminal window -# should be on the output of commands, not on the prompt -#force_color_prompt=yes - -if [ -n "$force_color_prompt" ]; then - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - # We have color support; assume it's compliant with Ecma-48 - # (ISO/IEC-6429). (Lack of such support is extremely rare, and such - # a case would tend to support setf rather than setaf.) - color_prompt=yes - else - color_prompt= - fi -fi - -if [ "$color_prompt" = yes ]; then - PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' -else - PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' -fi -unset color_prompt force_color_prompt - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*) - PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" - ;; -*) - ;; -esac - -# enable color support of ls and also add handy aliases -if [ -x /usr/bin/dircolors ]; then - test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" - alias ls='ls --color=auto' - #alias dir='dir --color=auto' - #alias vdir='vdir --color=auto' - - alias grep='grep --color=auto' - alias fgrep='fgrep --color=auto' - alias egrep='egrep --color=auto' -fi - -# colored GCC warnings and errors -#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' - -# some more ls aliases -alias ll='ls -alF' -alias la='ls -A' -alias l='ls -CF' - -# Add an "alert" alias for long running commands. Use like so: -# sleep 10; alert -alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' - -# Alias definitions. -# You may want to put all your additions into a separate file like -# ~/.bash_aliases, instead of adding them here directly. -# See /usr/share/doc/bash-doc/examples in the bash-doc package. - -if [ -f ~/.bash_aliases ]; then - . ~/.bash_aliases -fi - -# enable programmable completion features (you don't need to enable -# this, if it's already enabled in /etc/bash.bashrc and /etc/profile -# sources /etc/bash.bashrc). -if ! shopt -oq posix; then - if [ -f /usr/share/bash-completion/bash_completion ]; then - . /usr/share/bash-completion/bash_completion - elif [ -f /etc/bash_completion ]; then - . /etc/bash_completion - fi -fi - -# pnpm -export PNPM_HOME="/home/filip/.local/share/pnpm" -export PATH="$PNPM_HOME:$PATH" -# pnpm end diff --git a/config/bash/.profile b/config/bash/.profile deleted file mode 100644 index d89ea5a..0000000 --- a/config/bash/.profile +++ /dev/null @@ -1,27 +0,0 @@ -# ~/.profile: executed by the command interpreter for login shells. -# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login -# exists. -# see /usr/share/doc/bash/examples/startup-files for examples. -# the files are located in the bash-doc package. - -# the default umask is set in /etc/profile; for setting the umask -# for ssh logins, install and configure the libpam-umask package. -#umask 022 - -# if running bash -if [ -n "$BASH_VERSION" ]; then - # include .bashrc if it exists - if [ -f "$HOME/.bashrc" ]; then - . "$HOME/.bashrc" - fi -fi - -# set PATH so it includes user's private bin if it exists -if [ -d "$HOME/bin" ] ; then - PATH="$HOME/bin:$PATH" -fi - -# set PATH so it includes user's private bin if it exists -if [ -d "$HOME/.local/bin" ] ; then - PATH="$HOME/.local/bin:$PATH" -fi diff --git a/config/config.yml b/config/config.yml deleted file mode 100644 index a9a5b69..0000000 --- a/config/config.yml +++ /dev/null @@ -1,32 +0,0 @@ -dotfiles: - bash: - $home: - - .bashrc - - .bash_logout - - .profile - etc: - $home: - - .selected_editor - git: - $home: - - .gitconfig - -gnome: - extensions: - - cpupower@mko-sl.de - - dash-to-panel@jderose9.github.com - - gnome-clipboard@b00f.github.io - - blur-my-shell@aunetx - - hibernate-status@dromi - - gsconnect@andyholmes.github.io - import: - extensions/cpupower: /org/gnome/shell/extensions/cpupower/ - extensions/dash-to-panel: /org/gnome/shell/extensions/dash-to-panel/ - # extensions/dash-to-panel-larger: /org/gnome/shell/extensions/dash-to-panel/ - extensions/blur-my-shell: /org/gnome/shell/extensions/blur-my-shell/ - extensions/rounded-window-corners: /org/gnome/shell/extensions/rounded-window-corners/ - -# disabled: -# - gnome -# - gnome.import -# - dotfiles diff --git a/config/etc/.selected_editor b/config/etc/.selected_editor deleted file mode 100644 index 67f9f4d..0000000 --- a/config/etc/.selected_editor +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by /usr/bin/select-editor -SELECTED_EDITOR="/bin/nano" diff --git a/config/git/.gitconfig b/config/git/.gitconfig deleted file mode 100644 index 13151f3..0000000 --- a/config/git/.gitconfig +++ /dev/null @@ -1,8 +0,0 @@ -[user] - name = Filip Znachor - email = filip@znachor.cz - signingkey = 64E821421B5F3D9A! -[credential] - helper = manager -[commit] - gpgsign = true diff --git a/setup/gnome/configure-gnome.sh b/gnome/configure-gnome.sh similarity index 100% rename from setup/gnome/configure-gnome.sh rename to gnome/configure-gnome.sh diff --git a/gnome/extensions-config.sh b/gnome/extensions-config.sh new file mode 100644 index 0000000..1cdb48b --- /dev/null +++ b/gnome/extensions-config.sh @@ -0,0 +1,5 @@ +# Load GNOME extensions configuration +dconf load /org/gnome/shell/extensions/dash-to-panel/ < extensions/dash-to-panel.dconf +dconf load /org/gnome/shell/extensions/blur-my-shell/ < extensions/blur-my-shell.dconf +dconf load /org/gnome/shell/extensions/cpupower/ < extensions/cpupower.dconf +dconf load /org/gnome/shell/extensions/rounded-window-corners/ < extensions/rounded-window-corners.dconf diff --git a/config/gnome/extensions/blur-my-shell.dconf b/gnome/extensions/blur-my-shell.dconf similarity index 100% rename from config/gnome/extensions/blur-my-shell.dconf rename to gnome/extensions/blur-my-shell.dconf diff --git a/config/gnome/extensions/cpupower.dconf b/gnome/extensions/cpupower.dconf similarity index 100% rename from config/gnome/extensions/cpupower.dconf rename to gnome/extensions/cpupower.dconf diff --git a/config/gnome/extensions/dash-to-panel-larger.dconf b/gnome/extensions/dash-to-panel-larger.dconf similarity index 100% rename from config/gnome/extensions/dash-to-panel-larger.dconf rename to gnome/extensions/dash-to-panel-larger.dconf diff --git a/config/gnome/extensions/dash-to-panel.dconf b/gnome/extensions/dash-to-panel.dconf similarity index 100% rename from config/gnome/extensions/dash-to-panel.dconf rename to gnome/extensions/dash-to-panel.dconf diff --git a/config/gnome/extensions/rounded-window-corners.dconf b/gnome/extensions/rounded-window-corners.dconf similarity index 100% rename from config/gnome/extensions/rounded-window-corners.dconf rename to gnome/extensions/rounded-window-corners.dconf diff --git a/setup/gnome/install-theme.sh b/gnome/install-theme.sh similarity index 100% rename from setup/gnome/install-theme.sh rename to gnome/install-theme.sh diff --git a/setup/tweaks/different-refresh-rates.sh b/setup/tweaks/different-refresh-rates.sh deleted file mode 100755 index 15f7356..0000000 --- a/setup/tweaks/different-refresh-rates.sh +++ /dev/null @@ -1,8 +0,0 @@ -# 1. "Force Full Composition Pipeline" in nvidia-settings for all monitors -# 2. Disable "Sync to VBlank" and "Allow Flipping" in nvidia-settings -> OpenGL Settings -# 3. Put these lines in /etc/environment: - -echo "CLUTTER_DEFAULT_FPS=144" | sudo tee -a /etc/environment -echo "__GL_SYNC_DISPLAY_DEVICE=DP-0" | sudo tee -a /etc/environment -echo "__GL_SYNC_TO_VBLANK=0" | sudo tee -a /etc/environment - diff --git a/setup/tweaks/enable-hibernation.sh b/setup/tweaks/enable-hibernation.sh deleted file mode 100644 index 151821a..0000000 --- a/setup/tweaks/enable-hibernation.sh +++ /dev/null @@ -1,16 +0,0 @@ -# Run this to get required swap size in KiB and create swap partition -# echo $(($(cat /proc/meminfo | awk '/MemTotal/ {print $2}')+5000)) - -# Disable Fedora's ZRAM -sudo dnf remove zram-generator-defaults - -sudo swapoff -a -# Get UUID using sudo blkid /dev/sda3 -echo 'UUID=56a260a8-5a66-40db-bcb6-701f72a890bb none swap sw 0 0' | sudo tee -a /etc/fstab -sudo swapon -a - - -# Get UUID and physical offset and edit /etc/default/grub -# To GRUB_CMDLINE_LINUX_DEFAULT add "resume=UUID=56a260a8-5a66-40db-bcb6-701f72a890bb" -# Regenerate grub -# sudo grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)" diff --git a/setup/software/dev.sh b/software/dev.sh similarity index 100% rename from setup/software/dev.sh rename to software/dev.sh diff --git a/setup/software/essentials.sh b/software/essentials.sh similarity index 100% rename from setup/software/essentials.sh rename to software/essentials.sh diff --git a/setup/software/games.sh b/software/games.sh similarity index 100% rename from setup/software/games.sh rename to software/games.sh diff --git a/setup/software/multimedia.sh b/software/multimedia.sh similarity index 100% rename from setup/software/multimedia.sh rename to software/multimedia.sh diff --git a/setup/software/office.sh b/software/office.sh similarity index 100% rename from setup/software/office.sh rename to software/office.sh diff --git a/setup/software/other.sh b/software/other.sh similarity index 100% rename from setup/software/other.sh rename to software/other.sh diff --git a/setup/software/social.sh b/software/social.sh similarity index 100% rename from setup/software/social.sh rename to software/social.sh diff --git a/tweaks/different-refresh-rates.md b/tweaks/different-refresh-rates.md new file mode 100755 index 0000000..205a810 --- /dev/null +++ b/tweaks/different-refresh-rates.md @@ -0,0 +1,13 @@ +# Different refresh rates + +1. Enable `Force Full Composition Pipeline` in **nvidia-settings** for all monitors. +2. Disable `Sync to VBlank` and `Allow Flipping` in **nvidia-settings** -> **OpenGL Settings**. +3. Add following lines to the `/etc/environment`. + +```sh +echo "CLUTTER_DEFAULT_FPS=144" | sudo tee -a /etc/environment +echo "__GL_SYNC_DISPLAY_DEVICE=DP-0" | sudo tee -a /etc/environment +echo "__GL_SYNC_TO_VBLANK=0" | sudo tee -a /etc/environment +``` + +Or just use Wayland. \ No newline at end of file diff --git a/setup/tweaks/flathub.sh b/tweaks/flathub.sh similarity index 100% rename from setup/tweaks/flathub.sh rename to tweaks/flathub.sh diff --git a/tweaks/hibernation.md b/tweaks/hibernation.md new file mode 100644 index 0000000..c2b4c16 --- /dev/null +++ b/tweaks/hibernation.md @@ -0,0 +1,38 @@ +# Enable hibernation + +Run this command to get required **swap size** in **KiB** and then create the swap partition. +```sh +echo $(($(cat /proc/meminfo | awk '/MemTotal/ {print $2}')+5000)) +``` + +If you dont need it, disable Fedora's ZRAM. +```sh +sudo dnf remove zram-generator-defaults +``` + +# Swap + +Disable all used swaps. +```sh +sudo swapoff -a +``` + +Get swap partition UUID, add it to the fstab and enable swap. +```sh +sudo blkid /dev/sda3 +``` +```sh +echo 'UUID=56a260a8-5a66-40db-bcb6-701f72a890bb none swap sw 0 0' | sudo tee -a /etc/fstab +sudo swapon -a +``` + +# Grub + +Get swap partition UUID and physical offset and edit GRUB's config in `/etc/default/grub`. + +Add `resume=UUID=56a260a8-5a66-40db-bcb6-701f72a890bb` to `GRUB_CMDLINE_LINUX_DEFAULT`. + +Regenerate grub config and hibernation should be possible. +```sh +sudo grub2-mkconfig -o "$(readlink -e /etc/grub2.conf)" +``` \ No newline at end of file